[cap-talk] More Heresey: ACLs not inherently bad

Jed Donnelley capability at webstart.com
Tue Sep 16 17:27:16 CDT 2008


At 10:57 AM 9/15/2008, Karp, Alan H wrote:
>Shap wrote:
>
> > Only in the sense that replicating ACLs with Caps isn't an advantage,
> > which probably means that Horton isn't the right approach.
>
>ACLs in conventional systems serve two roles, recording the access 
>policy and making an authorization decision.  It is the latter that 
>leads to many of the problems.  The solutions that have been 
>proposed in this thread, including Horton, separate the two 
>roles.  In each of these solutions, the ACL is checked to see which 
>capabilities to grant, but the actual access is done by invoking a 
>capability.  That approach preserves the advantages of capabilities, 
>such as delegation and no confused deputy, while allowing all the 
>joys of administering ACLs.

Nice summary of something like the 50k foot view of what we seemed to 
come to last Friday Alan.

Unfortunately, it reads to me as if what Jonathan is requiring is a 
Unix compatible interface.  I don't believe you can achieve such 
compatibility using an underlying capability infrastructure without 
significant (we could debate how much "significant" is) 
overhead.  From the perspective of a Unix compatible interface any 
such overhead is an unnecessary cost.  If what you want is exactly 
Unix and no other values are worth any extra overhead (e.g. simple 
individual object delegation via messages for better POLA, binding of 
delegation and authorization to avoid confused deputies, network 
delegation of objects across administrative boundaries, etc.) then it 
seems pretty clear that a minimalist Unix implementation is the right 
technical choice.

It's interesting to me that this is about the same position we found 
ourselves in at LLNL circa 1988.  We were able to argue from a 
somewhat stronger position because we had already emulated our 
previous operating system, LTSS, on a capability infrastructure, with 
acceptable overhead.  Adding a Unix emulation with comparable 
overhead would have been straight forward.  However, at that point we 
would have an operating system which, while it would provide the 
needed LTSS and Unix APIs, we would have to continue to support.  We 
had no prospect of selling the nascent open source community on our 
system, so a lower cost approach was to develop LTSS compatibility 
libraries for Unix.

The above suggests to me (as similar arguments have in the past) that 
it will require a different interface, not an operating system API, 
to "sell" the capability interface.  I was encouraged by some of the 
discussion last Friday about the developing Webkeys interface(s?).

--Jed  http://www.webstart.com/jed-signature.html 



More information about the cap-talk mailing list