[cap-talk] Need Challenge Problems
Toby Murray
toby.murray at dsto.defence.gov.au
Tue Jul 18 23:54:44 EDT 2006
Mark S. Miller wrote:
>Toby Murray wrote:
>
>
>>Also, the "confinement" term has also been used in the context of
>>criticising unrestricted delegation. In this instance it has been used
>>when talking about the "capability confinement problem" in
>>http://www2.cs.uregina.ca/~pwlfong/Pub/esorics2006.pdf
>>
>>
>
>I just skimmed that paper, "Discretionary Capability Confinement", by Philip
>Fong. It seemed like he started out standing on some of the right feet, but
>then he lost me. Do you understand this paper? Can you explain it? Anyone?
>
>
Sorry, I hadn't actually read it when I posted the above. I was looking
for another paper that I'd forgotten the name of, that used the term
"capability confinement problem" but instead found that one. I just
found the original paper, here:
http://fpl.cs.depaul.edu/rjagadeesan/ftp/neighborhood.pdf
"Static support for capability-based programming in Java", which I know
some on this list are familiar with. (End of digression)
>In particular, is his "Heros and Sidekicks" game an interesting challenge
>problem for language-based security? Can someone state the problem so that we
>could think about meeting the challenge using just pure object-capabilities,
>without any of this fancier type machinery. Or so that we could understand why
>his proposed type machinery helps? Thanks.
>
>
He describes a setup where instances of a Hero class keep a set of
Sidekick instances. The Sidekick instances also act as Observers (in the
usual Observer pattern) of the Hero. When the broadcast() method of the
Hero class is run, it updates all Sidekicks by calling their update()
method and passing a reference to itself (ie. a reference to the Hero
object).
The problems they want to solve (I think) are:
1. Prevention of the creation of arbitrary new Sidekicks by Heros.
2. Heros stealing Sidekick references.
3. Sidekicks gaining authority that they shouldn't have through use of
the Hero reference they're given when their update() method is called.
I don't see how Problem 1 should really be an issue if one follows the
idea that upon instantiation, an instantiated object can have no more
authority than its instantiator.
Problem 2 looks to me like the usual argument against delegation.
Problem 3 looks just like a failure to observe the "separate distinct
authorities into distinct objects" principle.
A Hero exposes two different authorities. One authority is captured by
the Observable interface, the other by the other Hero methods. If facets
were used to separate these distinct authorities into distinct objects,
then Sidekicks could be given a reference to just the Observable facet
of the Hero (which would, by design, prevent them obtaining a reference
to the other Hero facet(s)).
Or have I misinterpreted his problem?
>What other interesting challenge problems might we find in the literature of
>the other access control schools? We'd like to gather together challenge
>problems for comparing schools, in order to grow a "secure cooperation
>shootout" wiki.
>
>
>
--
Toby Murray
Advanced Computer Capabilities Group
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