[cap-talk] horton questions
Peter Amstutz
tetron at interreality.org
Fri Jun 8 17:38:41 EDT 2007
I've read the Horton paper and I'm explicitly looking at this as a
component in designing a practical distributed object system (see my
previous thread) so perhaps I can also help broaden the (somewhat
contentious) discussion to more concrete issues.
One thing I found confusing about Horton was the use of "sealing",
"unsealing", "wrapping", "unwrapping" and "getGuts". I think the paper
would be more accessable if it used conventional terminology from public
key cryptography -- which I believe is how such a system will inevitably
be implemented, even if the abstract model doesn't require public key
crypto per se.
Let me describe how I understand Horton (which reflects how I plan to
implement it.)
First, the goal of Horton is allow Alice to delegate to Bob a capability
for Carol, such that Carol can track the responsible party behind each
action, Alice cannot impersonate Bob, and Bob cannot impersonate Alice.
The two "obvious" means of delegation, where either Alice gives Bob her
capability, or Alice asks for a capability from Carol in clear text,
both suffer from the impersonation problem, so the contribution of
Horton is that it provides a simple protocol by which neither Alice nor
Bob compromise their own identities in sharing the capability.
Horton works by having Alice ask Carol to generate a new capability, and
providing Bob's public key. Carol creates a capability, attaches
auditing information to it (who requested the capability, and who the
capability is for), encrypts the capability using Bob's public key, and
returns it to Alice. Alice receives the capability intended for Bob.
Because it is encrypted, it is inaccessable to Alice and cannot be used
to impersonate Bob.
Alice passes the encrypted capability to Bob. Bob uses his private key
to decrypt it and extract the capability to access Carol. He can now
use that capability; on Carol's side any actions performed using that
capability will be logged as coming from Bob rather than Alice.
Assumptions:
* Alice, Bob and Carol are "self identifying" in that fundamental
identity is derived from a public/private key pair.
* If Bob and Carol reside on different hosts, Bob may need to ask Alice
how to contact Carol to establish a direct connection. Alice provides a
connection string which is digitally signed by Carol (so the connection
string and public identity are tied) and Bob performs a
challenge/response protocol on connection to verify that Carol is
actually on the other side of the connection.
* This may be beyond the scope of discussion about capabilities, but
what are the implications of allowing Alice to volunteer to proxy
between Carol and Bob? Man-in-the-middle attacks traditionally work by
assuming the user is using a less-secure form of identifier (IP addresse
or domain name) that can be taken over and inject their own public key
in place of the party they are spoofing. If the primary identifier is
the public key (and the network address is treated as secondary) then I
believe this would defeat that sort of attack.
A couple other questions:
* One aspect of the Horton paper I don't quite understand is the need
for an extra interaction between Bob and Carol to fetch the actual
capability. As you can see I omitted it in my description above in
favor of encrypting the capability directly, but I would like to know
why that was considered necessary.
* Someone mentioned the desire to avoid requiring a communication
between Alice and Carol. How about this: Alice creates a message
containing her capability and Bob's public key, and is signed using
Alice's private key. This is in turn encrypted using Carol's public
key, and passed to Bob. Bob can turn in this message to Carol to get a
capability back at his leasure (provided Alice's capability isn't
revoked in the mean time).
On a side note, it occurs to me that Horton provides a nice way to
better support implementing groups -- when a user asks for a capability
from a shared group keyring (as discussed the previous thread), it can
use Horton or something similar to ensure that the entire group isn't
blamed (and revoked) for the actions of a specific user.
--
[ Peter Amstutz ][ tetron at interreality.org ][ peter.amstutz at gdit.com ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.eros-os.org/pipermail/cap-talk/attachments/20070608/81522fa1/attachment.bin
More information about the cap-talk
mailing list