[cap-talk] Selling capabilities programming
Jonathan S. Shapiro
shap at eros-os.com
Wed Jul 25 12:25:44 EDT 2007
On Wed, 2007-07-25 at 21:21 +1000, James A. Donald wrote:
> > And as confinement has been shown to be quite
> > fundamental in being able to verify some security
> > properties of a system,
>
> The security properties of programs are not changed by
> whether they are "confined" in this sense.
I have realized recently that I (and others) have used the term
"confinement" sloppily in the past weeks. When speaking of definitions,
I have been careful to use the term correctly (confinement = all
permissions providing outward communication are authorized). But when
speaking of the impact of confinement on systems I have sometimes used
the term to mean "having no initial write authority to anything."
In my mind, there are three variants of confinement that are interesting
to consider:
1. mere confinement: I know what the authorities are. They may include
broad authorities. This is fairly weak, because my choices are
very limited: I can run the program or I can choose not to run
the program.
2. strict confinement: I know that the program has no initial write
authority to anything. In consequence, I am in full control of
where it can send information.
3. TCB confinement: I know that the only write authorities initially
held by the program are to "trusted subsystems". For example,
the program may have access to a known directory instance.
The directory instance is not confined, but it executes trusted
code, and I happen to know that this directory instance contains
(by construction) only capabilities to constructors of confined
subsystems.
The Coyotos equivalent to /usr/bin falls in this category.
TCB confinement is less strong than strict confinement, but
for pragmatic purposes we may consider them equivalent.
Now. What you say above is strictly true: confinement (any kind) does
not alter the intrinsic properties of the program.
However: strict confinement or TCB confinement DO significantly alter
the environment in which the program executes. In many cases this
reduces the authority of the program to the point where even a hostile
program is effectively innocuous.
shap
More information about the cap-talk
mailing list