[E-Lang] Re: Hash Chaining & Capabilities, Proposal #2d:
Deputizing Remote Vats
Mark S. Miller
markm@caplet.com
Wed, 22 Nov 2000 08:58:36 -0800
At 07:32 PM 11/14/00, David Wagner wrote:
>For instance, another good reason to prefer offline active certificates
>is to support partial disconnection. Most people who access the net
>through a modem are only rarely connected; if you have to check with
>them online to verify all privileges they've delegated, they'll never
>be able to usefully delegate anything to anyone else.
Let's assume for the moment, as SPKI does, that the exercise of a delegated
right is an on-line activity involving the exerciser and the resource host.
In our terms, if Alice delegates to Bob and right to invoke Carol, no matter
whether the delegation by Alice is online or offline, let's assume the
invocation of Carol by Bob involves an online connection between VatB and
VatC.
If Alice delegates to Bob full access to Carol, this is just our old
Pluribus implementation of the Granovetter diagram. If Alice goes offline
after delegating, no problem. If Alice wants to delegate a subset of the
rights represented by Carol, and there is no prearrangement on VatC for
Alice to express the kind of subsetting she's interested in (ie, it falls
outside the expressiveness of the SPKI subsetting language, and there is no
pre-existing abstraction on VatC for providing the desired subset (in Norm's
terminology, no "forseen facet"), then Alice needs to express an unforseen
facet in code.
In E as it stands now, Alice can only reasonably arrange for such code to
run in VatA, which creates all the disconnection problems you point out. To
avoid these, as inspired by Nikita's work and as explained at
http://www.eros-os.org/pipermail/e-lang/2000-November/003911.html Alice will
usually seek to run her subsetting agent on VatC, requiring support for
secure mobile code, whether this happens online or off. However, as the
text at that URL demonstrates, the use of mobile code for active subsetting
solves the disconnection problem fully as much in the online case as in the
offline case.
A related real difference: In the online case, the subsetting agent must be
loaded into VatC at time of delegation, whereas in the offline case, where
the mobile-code is embedded in the cert, the agent isn't loaded until Bob
wants to exercise the delegated right.
>Also, there are cases of asymmetric connectivity. I'm thinking especially
>of folks behind a firewall who can connect out (to give an outsider an
>active certificate) but where outsiders cannot connect in (to verify
>delegated authority); in these cases, an "offline" protocol is useful.
Wow. One could wall bang out a cert through a covert one way channel, but
one couldn't create an on-line connection through such a channel. Neat.
There is lurking here a calculus of which security arrangements can hop over
the walls created by which other security arrangements.
>In general, you can take any certificate system and replace all offline
>certificate-verification steps with an online query to the trusted
>certification authority. Certificates are just an offline version of
>an online protocol. There are plenty of good reasons to prefer offline
>authentication (certs) to the online protocol, and I think most of those
>will also apply to active certificates.
Btw, just to be clear. I was never questioning the "active" part, just the
"offline" part. Ever since my epiphany in Nikita's office, I was
convinced that if I wanted offline certs at all I wanted active ones. I'm
now convinced of the whole proposition.
Cheers,
--MarkM