[cap-talk] Capabilities - the rub, an account

Marc Stiegler marcs at skyhunter.com
Thu Nov 16 12:53:25 CST 2006

> We talk a good line about revocable capabilities, membranes and
> such.  We all know how such mechanisms can work in capability
> systems.  However, consider capabilities in the light of what I hear
> are the absolute minimum access control/audibility requirements
> that many (most?) people dealing with computer security demand,
> including:
> 1.  It's possible to look at the access control data on the system
> and determine who has access to what (both starting from who
> and finding what or starting from what and finding who),
> 2.  It must be possible to audit the system - find out who gave
> what to who.  I'm not sure today's market leading systems
> (e.g. Unix, Windows) actually succeed in this area, but it's
> one that certainly gets a lot of lip service).

This topic does seem to keep recurring here. Points:

1. It makes no difference whether you are using caps or acls, you cannot 
tell who has access, you can only tell who was given a direct enough 
access such that you can hold them accountable. Those who have direct 
access can proxy, thereby spreading access beyond your control but not 
spreading accountability beyond your control. The beginning of sanity is 
for everyone, both people on this list and computer security pros in 
general, to understand this. Accountability is what you really wanted 
anyway. So the 2 requirements deserve to be rewritten to reflect what 
people actually want and actually can get (which happen to be the same) 
rather than what they think they have and think they can get (which are 
similar though different). A first necessary step toward security is 
discarding one's illusions, for the attackers will discard your 
illusions whether you do or not.

2. Windows sucks at telling you what you have authority to access. One 
day at HP I accidentally discovered that I had been given a massive 
authority to edit the entire application server for HP Labs. I had had 
this authority for a considerable time before learning I had it. I was a 
weapon of mass destruction and did not know it. I have seen nothing 
about Linux, or any other popular system, that does any better.

3. It is easy with acls to ask a resource for a list of who to hold 
accountable/who has direct access. It is easy with caps to ask an object 
what authorities it holds. Going the other/unnatural way is hard with 
either system. But it is not impossible with either system, even though 
no acl system seems in my experience to be bidirectionally informative. 
For the CapWiki, part of the design is, every time a user creates a cap 
for delegation, we put an entry for the revoker and audit trail on that 
user's home page, and include as much info as we can extract from the 
context and the user's explicit entries about who/why/how long this cap 
is for. This will give the user as much (well, actually, more) 
understanding of what authorities he has passed out, and who he passed 
them to, and what those people he gave the authority to should be held 
accountable for, than he gets with any traditional popular acl system.


More information about the cap-talk mailing list