Re: Capabilities interact nicely with Substructural Types and Reactivity

Mark Miller <[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <CAK5yZYhYKHgjU2Fwx8jc7v_VgpWx7NxphNyJc++WHbiWsEvWNA@mail.gmail.com>
The most relevant paper is <
http://www.cs.berkeley.edu/~daw/papers/pure-ccs08.pdf>. It is a good read
and describes excellent work. Highly recommended.

Regarding all the points made so far on this thread, E and Joe-E are
equivalent. There are subtle differences which I will mention if they
become relevant.

DavidB,

Your point about the whitelist is valid though. DeepFrozen is equivalent in
expressiveness to the KeyKOS Factory without a whitelist. In fact, I got to
it by starting with the KeyKOS Factory and simplifying it, mostly by
throwing out the whitelist. I knew at the time that this results in a loss
of expressiveness. See the section "Can We Do Less?" at <
http://www.erights.org/elib/capability/factory.html>.

I would be interested in your opinion about whether the KeyKOS Factory with
whitelist is compositional in the way you mean. It is certainly
compositional in many ways, but I don't know precisely what you mean here
by compositional.

Whether an auditing-based system could be extended with a
KeyKOS-Factory-like whitelist is an interesting question I don't know the
answer to.



On Thu, Sep 12, 2013 at 3:00 PM, David Wagner <[email protected]> wrote:

> I admit I'm puzzled by your email.  Have you looked at
> E's DeepFrozen and Joe-E's Immutable in detail?  There
> seem to be a number of points that don't seem to match
> how I would have described the situation.
>
> I confess I don't understand how using immutable/DeepFrozen
> objects/types is "selling out", but maybe that just reflects a
> difference in values or philosophy or something.  So I'll let
> that one pass by.
>
> Despite what you write, in Joe-E, the Immutable type does
> not forbid code from constructing its own local mutable state.
> In Joe-E it is possible to write a method that is verifiably
> deterministic (meaning that its externally-observable
> behavior is deterministic) yet also uses local mutable state.
> So, your characterization is not quite right.
>
> As far as loss of expressivity, the Joe-E paper discusses some
> implementation experience with using Joe-E, so there is some data
> on this you can peruse if you are interested.  Would you like
> references to the Joe-E papers?
>
> Contrary to what you write, Joe-E's Immutable type does provide a
> way to ensure determinism.  Read the papers for details of how that
> works; it's a little more detailed than I want to try to summarize in
> this
> email.  It's a good idea to understand the design before critiquing
> it.  E's DeepFrozen might work a little bit differently, and I can't
> speak
> to the details of how it interacts with verifiable determinism, but
> others might be able to.
>
> Generally speaking, in a capability design, if you want to let untrusted
> code access some capabilities and not others, a typical strategy
> is to pass the untrusted code the capabilities you want it to have
> access to and take care to never pass it the capabilities you don't.
>
> I suspect we're talking past each other somehow....
>
> -- David
>
> On Thu, Sep 12, 2013, at 01:42 PM, David Barbour wrote:
> > What draws me to capability security is the promise of
> > security-by-construction, the promise of robust composition. I want
> > flexible expression without a computer telling me 'no' after I obey the
> > rules that are locally and syntactically valid.
> >
> > It is true that relying on deep introspection and white-box analysis can
> > offer extra guarantees.
> >
> > But to depend on it seems like cheating, like selling out.
> >
> > Further, relying on analysis can damage expressiveness. For example, it
> > may
> > be that we want to forbid the untrusted code from constructing its own
> > local state, while at the same time we wish for the untrusted code to use
> > capabilities that provide access to our (potentially audited) state.
> > Unless
> > DeepFrozen is designed with this idea in mind (e.g. accepting a
> > capability
> > whitelist), it can reject valid programs; and even if it does accept a
> > whitelist, the act of building the whitelist results in a
> > non-compositional
> > system.
> >
> > Compare: if obtaining state is granted by capability, rather than by
> > ambient authority, then you could easily enforce deep frozen or immutable
> > structures, or partially frozen, or anything in between. Without
> > analysis.
> > It would be constructive, compositional.
> >
> > ...
> >
> > And despite your selling out, a DeepFrozen auditor still doesn't address
> > the issue of determinism. It can still create a unique stateful object
> > every time it is called with the same argument.
> _______________________________________________
> cap-talk mailing list
> [email protected]
> http://www.eros-os.org/mailman/listinfo/cap-talk
>



-- 
Text by me above is hereby placed in the public domain

  Cheers,
  --MarkM

_______________________________________________
cap-talk mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/cap-talk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.