[cap-talk] What sustained interest in capabilities

Charles Landau clandau at macslab.com
Mon Dec 29 18:07:41 EST 2008


Mitsu Hadeishi wrote:
> Every security approach is ultimately  
> implemented "on top of" an insecure "layer" --- the physical world.   
> The physical world is itself highly insecure in and of itself.  All  
> approaches to security involve creating a layer of some sort of  
> another on top of an insecure layer; it's not possible to completely  
> rewrite the laws of physics, for example, to be "capability secure"  
> --- nor is it necessary.

It sounds like you are saying "security is impossible, so let's not 
bother trying." The goal is to not add any insecurity to whatever layer 
we're starting with.

> A layer is more akin to a wrapper (as in packaging) than it is to a  
> building resting on a foundation.  If the wrapper has a hole in it,  
> yes, there can be a breach in security, but again that applies to  
> every approach to security --- we're always building wrappers of one  
> sort or another, even in a top-to-bottom approach.

You said you "wrap an external ACL-based service in a capability." If I 
understand your approach, the service can then be accessed using the 
capability, but you do not take away the ability of other programs to 
access the service via its ACL-based interface. After all, if your 
wrapper is able to access the underlying ACL-based interface, presumably 
others can too.

In that case, the wrapper metaphor is inapt. You have a layer that makes 
no attempt to completely surround the underlying non-capability-based 
service. It's not a wrapper with a small hole due to some flaw that 
might in principle be plugged.

"Top-to-bottom" is not really the right description of the pure 
capability systems that have been attempted. Those systems enforce 
capability security completely at a single low layer, not at all layers. 
("Pure" means there is no way around it.) Starting with a foundation of 
rock, you can build with either more rock or sand. But starting with a 
foundation of sand, you can never increase the stability of the system.

It appears to me that you're advocating the layered approach to simplify 
the part of the system that uses the capability layer. Your critics are 
saying it does not simplify the entire system and does not increase the 
security of the entire system. I think you are both right.

On the other hand, if you have built a capability layer such that there 
is no way around it, then you have built a pure capability system, and 
congratulations! If the performance and security of such a system meets 
your goals, then great. But you still have the drawback of all pure 
capability systems, that legacy software doesn't work.

A pure capability system can be built on either bare hardware or another 
suitable operating system. But from a security standpoint, I would have 
higher confidence in the security of the less-complex underlying platform.


More information about the cap-talk mailing list