[cap-talk] What sustained interest in capabilities
Mitsu Hadeishi
mitsu at syntheticzero.com
Mon Dec 29 19:19:21 EST 2008
On Dec 29, 2008, at 6:07 PM, Charles Landau wrote:
> 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.
Not at all, precisely the opposite. My point is all systems are
essentially layers on top of an insecure foundation, so simply saying
that something is a layer isn't in itself a valid critique. One has
to look at the layer itself.
> 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.
No, other programs can't access the service via the ACL-based
interface unless they breach the security layer. That is to say, in
the systems we're discussing, the only public interface is the
security layer. However, systems "inside" the layer (i.e., behind the
firewall, etc.) can of course access the systems via pre-existing ACL-
based authentication schemes.
For example, consider using the approach we're discussing to present
an external web interface to underlying backend systems. Many of the
backend systems may be built, internally, using legacy ACL-based
technology, but the external interface uses capability security to
control access.
>
> 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.
> _______________________________________________
The disconnect here I believe is coming from a different conception of
the environment software is running in. The systems I've been working
with recently have been designed in the world of software-as-a-service
or SOA style designs. What you're referring to are ordinary programs
running inside an ordinary OS. But when you transition to software in
the cloud, or software services, the picture changes radically. The
layer can in fact be the entirety of what is exposed (at least to the
class of clients "outside" the layer), and thus the capability
security picture can be and is quite total, from the point of view of
entities interfacing with the service through the exposed interfaces
of the layer. However, what makes this different from approaches
which attempt to put capabilities all the way down to the OS is that
the backend does not have to be based on capability security, and can
be built with ordinary technologies such as Linux, Java, etc. If the
*layer* is not breachable, then from the POV of clients of the layer
it is a "top to bottom" capability world.
>
> cap-talk mailing list
> cap-talk at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/cap-talk
More information about the cap-talk
mailing list