Reasoning about Object Capabilities using Logical Relations and Effect Parametricity

Dominique Devriese <[email protected]> Thu, 24 Mar 2016 11:57:16 +0100
Newsgroups gmane.comp.capabilities.general
Message-ID <CAML5wvuW=0eDutrYkVYdUtaJrUop3JGUks7J97+-VArsSa7Ymg@mail.gmail.com>
All,

Since I think this is relevant for the object capabilities community,
I'd like to advertise a paper by Lars Birkedal, Frank Piessens and
myself in which we propose a new formal characterisation of object
capabilities. The main messages of the paper are:

* The "topology-only bound on authority" (as formalised by properties
like "no authority amplification" and "only connectivity begets
connectivity") is fundamentally insufficient for characterising
capability-safe languages and for reasoning about ocap code.

* We propose an alternative characterisation using recent reasoning
techniques from the programming languages research community as well
as some ideas of our own.

* We demonstrate how to reason (on paper) about some non-trivial examples.

* We show that our characterisation implies the topology-only bound on
authority.

* Capability-safety can be safely understood as grouping together
three (more or less independent) language features/properties:
  * standard encapsulation of private state (as present in many languages)
  * primitive effects only available through capabilities
  * no static mutable global state

If you want to take a closer look, the paper is available at:
  https://lirias.kuleuven.be/bitstream/123456789/529252/1/paper-preprint.pdf
The presentation I gave about the work here yesterday at the IEEE
EuroS&P conference is available too:
  https://people.cs.kuleuven.be/dominique.devriese/obj-cap-log-rel-eff-param.pdf
Technical details and proofs are available in an associated technical report:
  https://lirias.kuleuven.be/bitstream/123456789/524074/1/CW690.pdf

We welcome any comments, insights and questions that you may have.

Regards,
Dominique