[cap-talk] Capabilities and Freedom vs. Safety
Jonathan S. Shapiro
shap at eros-os.com
Wed Jul 25 13:49:09 EDT 2007
On Wed, 2007-07-25 at 13:11 -0400, David Chizmadia (JHU) wrote:
Can you expand "AA"?
> Using this mental model, I would claim that if the AA and OCap
> models (irrespective of whether each is consistent and complete) are
> not diametrically opposed in a formal modeling sense, they are
> sufficiently far apart to seem that way to the casual observer.
Yes and no. I have not seen any advocate of ACL systems deny the math
when it is presented to them. In this sense, everyone really does agree
on what these things mean mathematically.
The point of disagreement seems to be about whether the math is relevant
to the problem that the user (or more likely in this case the
adminstrator) wants to solve.
Administrator: I want to be able to disable user A's access to data X.
Me: If A can communicate with B, and B has access to X, that is not
possible. The only way to get that is to turn off A's account
entirely.
Administrator: I want to do it anyway.
Me: And I want a pony for Christmas.
The root problem, I think, is that administrators and users tacitly
accept Microsoft's First Law, which may be paraphrased as:
If you run hostile code on a Microsoft system you're screwed.
What the administrators accept is a consequent of this:
.. therefore I should work real hard to control what code gets
installed, and having done so **I shall proceed on the assumption
that the code obeys the user**.
[Or more precisely, that I can draw a neat line between code that
does and code that does not.]
There is a second tacit assumption made in all human organizations:
Most of the participants are trying to comply as best they can.
They will violate policy locally when this is common sense, but
they will attempt to do sensibly.
Consequent: if A get's kicked off the X access list, and A goes
to B, then B is going to ask why, and is *probably* not going to
knowingly run a proxy agent for A.
If you proceed from these two assumptions, then the "disable A's access"
really *is* reducible to the ACL problem, because you are trusting both
B and B's software.
Of course, you have made two false assumptions by that point. The
problem is that these assumptions are only falsified in practice by a
small fraction of programs and users. Humans are very bad at reasoning
about sensible behavior in the face of low-likelihood events.
shap
More information about the cap-talk
mailing list