[cap-talk] POLA and Mungi / Iguana style APIs
Toby Murray
toby.murray at dsto.defence.gov.au
Mon May 16 20:27:36 EDT 2005
I'm writing to see if I can get the list's opinion on APIs that attempt
to "hide" capabilities from the programmer.
The specific examples I have in mind are the Mungi / Iguana systems from
Uni NSW (http://www.disy.cse.unsw.edu.au/Software/Iguana/).
In the Iguana API (which I believe inherits a lot from Mungi), the
programmer presents an "Object ID" which designates the target of a
method invocation. The kernel then searches the c-lists of the caller to
find a capability that might grant the access. I believe that this is
done to hide the capabilities form the programmer in the common case
where operations on the protection domain aren't required (eg. to
achieve confinement or whatever)
With this system, has designation and authorisation been separated? Does
this separation reduce the ability to provide /enable POLA? More
specifically, does it allow the application to become "confused" and use
the wrong authority at the wrong time.
My suspicion is that it does allow the application to become confused
and as a result, reduces the ability of the capability system to promote
least authority.
That said, I'd be interested in the opinions of others here with more
experience. Particularly those of Professor Heiser, who I believe is the
main architect of these systems.
While I understand the potential benefits of hiding the capabilities
form the programmer in order to provide a more comfortable system, I
believe that if the API instead called capabilities "object pointers"
(or some equivelent) then we get the familiarity without fear of losing
POLA. (I'm thinking Joe-E).
As an aside, I believe that Shap and Gernot has some discussion during
the early stages of the development of the ideas surrounding Iguana and
Coyotos that ultimately led to an "agreement to disagree" and to pursue
separate projects. I'm curious to know if this issue was discussed and
any conclusions that may have been reached by either party.
At the moment, I tend to feel that the only real way to get the benefits
of capabilities is by having the application handle them explicitly.
Furthermore, these benefits can be endhanced if the capabilities (or the
objects they address) themselves are reified in the user interface, such
that individual user actions map to capability (method) invocations. But
that's just me...
Thanks all,
Toby
--
Toby Murray
Advanced Computer Capabilities Unit
Information Networks Division
DSTO, Australia
IMPORTANT: This e-mail remains the property of the Australian Defence
Organisation and is subject to the jurisdiction of section 70 of the
Crimes Act 1914. If you have received this e-mail in error, you are
requested to contact the sender and delete the e-mail.
More information about the cap-talk
mailing list