[e-lang] Invited talk: Tradeoffs in Retrofitting Security: An Experience Report

Mark Miller erights at gmail.com
Sun Jul 29 18:55:08 EDT 2007


I have been invited to give a talk at this years Dynamic Languages
Symposium <http://www.swa.hpi.uni-potsdam.de/dls07/>, co-located with
OOPSLA 2007.

Together, we've now learned enough from our various attempts at
retrofitting ocap security into existing memory-safe languages. Rather
than talk about work I've been directly involved in, I thought instead
I'd try to summarize the work of our community, and summarize some of
the lessons we've learned.


Tradeoffs in Retrofitting Security: An Experience Report

In 1973, John Reynold's and James Morris' Gedanken Language retrofit
object-capability security into an Algol-like language. Today, there
are active projects retrofitting Java, Javascript, Python, Mozart/Oz,
OCaml, Perl, and Pict. These represent a variety of approaches, with
different tradeoffs regarding legacy compatibility, safety, and
expressivity. In this talk I propose a taxonomy of these approaches,
and discuss some of the lessons learned to date.



Note that my mention of Javascript is hopeful. I expect we will have
progress on this front to talk about by then.

I hope representatives of most of the active efforts are available
here on e-lang and interested in refining a mutually agreed taxonomy
of approaches. Perhaps it would be good to use our wiki for the
process?

Simply to get the ball rolling, here's a proposed start:

Object granularity, static verification, library import taming, new
library wrappers
    Joe-E, Emily, Backwater?

Object granularity, dynamic sandboxing by scope manipulation, library
virtualization
    W7, CaPerl?

Language-engine granularity, platform sandboxing, virtualizing
per-sandbox ambient authorities
   J-Kernel (& Java Isolates?), Brett's Python work, anticipated
Javascript work?

New design & engineering, but similar in spirit
   Gedanken, E, Oz-E, Squeak-E? / Tweak Islands?

Anyone have any idea how Oleg & Shan's "lightweight static
capabilities" relate? Is this just use of ocap ideas in a non-ocap
language, or can these be used somehow to turn their base language (ML
& Haskell) into an ocap language by using their type systems?

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

    Cheers,
    --MarkM


More information about the e-lang mailing list