-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Entry Cap is a subset of AccountCall Cap? #2
Comments
To me it looks more like any
This can be described in a similar way as follows: any But it is not clear to us whether these exceptions (including combinations of them) should be explicitly formalised in the specification, or whether they should be mitigated in some way by changing the specification?
Today we had a serious internal discussion about the possibility of describing the separation concept. For now it seems that it is possible, but the exact form is quite difficult to formulate. And it will certainly require a complete formal specification, which we do not have yet. |
They way I see it, the Entry capability is the risky "master" key that underpins all of these issues. Account Call and Procedure Call are quite straightforward in what they can and can't do. The only risk seems to be that someone might not fully appreciate the power of the Entry capability. It's the Entry capability that allows you to take control of the system. The other capabilities don't interact with it in a special way, they are just the normal tools you would use once you have taken control of a system (if you were malicious or otherwise). |
One of the main features we want to keep as strongly as possible is that all capabilities are "seperate" to each other. Such that having a Write Cap will not allow a procedure to do anything a Log Cap does and vice versa.
This orthogonality has exceptions in the case of:
By themselves they don't worry me too much, however I am worried what happens if you combine them. With the
AccountCall
Cap and theEntry
Cap, a procedure could potentially assign any procedure as the entry procedure, then in the same execution do a re-entrancy callto access the new entry procedure's capabilities.
It seems to me that with the introduction of the concept of an Entry Procedure itself requires additional semantics to describe the relationship it has between the
ProcedureCall
andAccountCall
Capabilities. To a certain extent it looks like theEntryCap
is a subset of both of these Capabilities, but the exact reasoning isn't very clear. Which means the definition of the "Entry Capability" isn't very fleshed out in terms of it's effects on the system.My question is, is there a more clear way we could describe the relationship between these three capabilities? And if so, what are the invariants that describe this "seperation"?
The text was updated successfully, but these errors were encountered: