[cap-talk] Capability begginer questions
Kevin Reid
kpreid at mac.com
Wed Oct 3 10:50:06 EDT 2007
On Oct 3, 2007, at 10:15, Matheus Morais wrote:
> Yes your assumption are correct, I'm wanted to create a protected
> capabilitie environment. Well, now I'm a bit lost, the key is the
> identifier to point for an object which has that capabilitie or for
> what _action_ that capabilitie could provide to the object? I was
> thinking in that manner, the key is used to identify what object
> that capabilitie is assigned to and the r_list will provide what
> permissions are given by that capabilitie.
The capability data structure must contain information to specify (in
the understanding of the capability-system-kernel) what should happen
when that particular capability is invoked. That is the necessary and
sufficient information.
> For example, when a program P call to write in a file F, the system
> will check in P's capability list if the key pointed to F exists
> and then look what actions(r_list) will be available to P over F.
This is not a capability system; it implements ambient authority, and
has the Confused Deputy problem.
To be a capability system, the program *MUST* be required to specify
*which capability* it wishes to invoke, and there must not be any
*separate* way of specifying which file it wishes to write.
As soon as you search a capability list for a matching authority, you
have created a confused deputy: a program may accidentally use a
capability it has for the wrong purpose.
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the cap-talk
mailing list