[cap-talk] What's "Discretionary Security" (was: Another "core"principle, capability communication)
Jonathan S. Shapiro
shap at eros-os.com
Tue Jan 2 00:05:55 CST 2007
On Mon, 2007-01-01 at 23:30 -0600, Karp, Alan H wrote:
> Shap wrote:
> >
> > Alan wouldn't have given that answer if he had caught up with
> > the policy
> > vs. point of view discussion.
> >
> I would have, and I am caught up. I don't believe "point of view" is
> the proper perspective when you only consider two parties. I believe
> that there must be three parties for there to be non-discretionary
> access. The third party enforces the policy.
What you are saying is that mandatory controls are imposed by A on
interactions between two parties B and C. This seems like a workable
view.
I find this view confusing for two reasons:
It is confusing to explain mandatory access controls on memory objects
this way, because memory objects are not processes and do not quite
participate in communications (whereas in your approach we need to
somehow make the memory object look like party (C).
It seems to me that in your model discretionary controls only involve
two parties, and this makes it hard to compare discretionary vs.
mandatory policies.
So I tend to think of this as (A is the policy enforcer):
B invokes ProxyToCProxiedByA(withArguments)
A executes some boolean predicate using B, C, Arguments, and other
reference monitor state as inputs.
A decides whether to allow (forward) or disallow (generate an
exception) the operation.
I think of this as A performing mandatory enforcement on B, because if
the operation is denied C never knows that anything happened. If C is a
(passive) memory object, it's difficult to think of it as a subject.
Offhand, I suspect that either approach works as long as it is used
consistently.
shap
More information about the cap-talk
mailing list