Re: [Caja] Important new paper: The Need for Capability Policiies

Tom Van Cutsem <[email protected]> Mon, 22 Jul 2013 11:12:32 +0200
Newsgroups gmane.comp.lang.e.general
Message-ID <CAKDfNj8gPgToNipeMK0jN4xC8=skQ_kb8EBfLdjKFwExAY0TWQ@mail.gmail.com>
Tangentially related:

I once wrote an article "Why programming
languages?<http://soft.vub.ac.be/~tvcutsem/invokedynamic/node/11>"
where I make the point that a language designer, unlike a library designer,
has the ability to define a language as a little universe with "physical
laws" by which all programs written in that language must abide. The
opening sentence I used was: "no amount of library code is going to turn C
into a memory-safe language. Just so, no amount of library code is going to
turn Java into a thread-safe language."

To me, these properties feel closely related to the "deny" properties that
Sophia and James point out. In fact, a fruitful line of related work might
be tools that aim to prove certain safety and liveness properties such as
data race and deadlock freedom for programs written in a language with
shared mutable state (such as Java). These properties, like ocap security,
depend on *all code* in the system to play by the rules.

Regards,
Tom



2013/7/18 Mark S. Miller <[email protected]>

> Shriram, I appreciate the distinction you point out, but it does not fit
> with my sense of the meaning of "policy". Policies need to be expressed,
> understood, and enforced. To be enforced, there needs to be some mechanism
> that brings about the enforcement. Does this mechanism succeed at enforcing
> the stated policy? How should we verify this? This question seems
> independent of whether the code we're verifying is the code which also
> implements the functionality, or is separate from that code. Sophia's
> formulation would seem to apply equally well to both scenarios.
>
> Many policies of interest cannot be enforced separately from the code
> implementing the functionality -- which I think echoes what Ben was saying.
> Hence the subtitle of <http://www.erights.org/talks/no-sep/> is "Why
> security is not a separable concern". (This expanded into Part 4 of my
> thesis, but I unwisely dropped the subtitle at that time. I've always
> missed it.)
>
> Shriram, this is the second message from you where I saw only the replies.
> I also don't see your messages in the e-lang archive. Do you know why we're
> missing these?
>
>
>
>
>
> On Wed, Jul 17, 2013 at 1:49 PM, Drossopoulou, Sophia <
> s.drossopoulou-AQ/[email protected]> wrote:
>
>>  Hi Shriram,
>>
>>  Thank you for clarifying the terminology.
>>
>>   Sophia Drossopoulou asked about a distinction I introduced in my
>> message. To repeat it -- and I should be clear that I don't think
>> there is any standard terminology here -- I want to make a distinction
>> between "statements about programs that are automatically enforced by
>> the implementation mechanism" and "statements about programs that need
>> to be checked for by some external mechanism". I use the terms
>> "policy" for the former and "property" for the latter. Properties are
>> the things that verification engines have consumed for ages, and the
>> properties I saw in the very nice Drossopoulou/Noble paper struck me,
>> ultimately, are not much different from a variety of properties that
>> have been written down about programs down the ages. (Short answer to
>> Sophia's question: Yes.)
>>
>>
>>  Indeed, with the terminology suggested by Shriram Krishnamurthi, what
>> James Noble and I are looking for is "properties".
>>
>>  However, I believe that expressing policies through program properties
>> leads to properties which are somewhat different from those usually written
>> down about programs,  because a) they are "open|, and b) they have "deny"
>> elements. "Open" means that these properties need to be maintained by the
>> code as well as any extension of that code, and "deny" elements are
>> properties of the code itself rather than of the effects of the code.
>> Policy Pol_2 from the paper has such deny elements.
>>
>>  In a sun strand of this discussion, together with Greg Meredith, Mike
>> Stay, Mark Miller and James Noble, we discussed more the shape of
>> formalisation of  such properties, and we came up with the following
>> proposal:
>>
>>   a module P satisfies Policy(E,A)                 ****
>>             iff****
>>  for all modules Q, and code CD:
>>            if we execute code CD in the presence of P augmented with Q,
>>  and observe effect E, then the code CD has property A.
>>
>>  Cheers,
>>
>>  Sophia
>>
>> _______________________________________________
>> e-lang mailing list
>> [email protected]
>> http://www.eros-os.org/mailman/listinfo/e-lang
>>
>>
>
>
> --
>     Cheers,
>     --MarkM
>
> _______________________________________________
> e-lang mailing list
> [email protected]
> http://www.eros-os.org/mailman/listinfo/e-lang
>
>

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang