Title: Hortons Who Done It
1Hortons Who Done It?
- Communicating Authority with
- Responsibility Tracking
Mark S. Miller Google Research1 Jed
Donnelley LBNL/NERSC Alan H. Karp
HP Labs
Usenix HotSec Workshop, August 7, 2007 1Work
done while at HP Labs
2Communicating Object Access with Delegation
Bob
Alice
Alice
Alice
Doc Chapters Chapter 1
Chapter 1
Initial Conditions Alice has 1. A capability
to send to Bob and 2. A
capability to a document with chapters.
3Capability Communication of the Document Reference
Bob
Alice
Alice
heres( )
Alice
Doc Chapters Chapter 1
Chapter 1
Alice sends a message to Bob containinga
reference to the document.
4Horton Magic Bob Receives a Delegated Capability
Bob
Alice
Alice
Alice
Alice-gtBob
Doc Chapters Chapter 1
Chapter 1
Alice cant act with Bobs responsibility Bob
cant act with Alices responsibility
5Delegating Least Authority
A
B
C
6Delegating Least Authority
b.foo(c)
A
B
C
7Delegating Least Authority
A
B
foo( )
C
8Delegating Least Authority
A
B
C
9Delegating Least Authority
- Msgs are only means to cause effects
- Refs control authority
- Leverage OO patterns
A
B
C
10Delegating Least Authority
- Msgs are only means to cause effects
- Refs control authority
- Leverage OO patterns
- Anonymous
A
B
C
11Alice
- Cant vet code or actions of each object.
12Alice
- Cant vet code or actions of each object.
13Alice
- Cant vet code or actions of each object.
14Alice
- Cant vet code or actions of each object.
15Alice
- Cant vet code or actions of each object.
16Alice
- Cant vet code or actions of each object.
17Alice
- Cant vet code or actions of each object.
18Alice
- Cant vet code or actions of each object.
19Alice
- Cant vet code or actions of each object.
20Alice
- Cant vet code or actions of each object.
- Aggregate into long-lived responsible identity.
A
21Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
?
22Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
?
23Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
Polaris, Plash
24Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
Hybrid Cap Systems (SCAP, Sys/38)
25Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
?
26Two styles, relative strengths
- Automated
- Fine-grained
- Built for safety
- Least authority
- Virus resistant
- Authorization-based
- Object-capabilities (ocaps)
- Human decisions
- Large-grained
- Built for damage control
- Most responsibility
- Spam resistant
- Identity-based
- ACLs
Horton
27Story Needs Four Characters
- Alice Bob
- Old patterns for identity-based control
- Alice introduces Bob Carol
- Builds new relationships from old
- Carol also hears of Bob from Dave
- Corroborates Bobs independence from Alice
28Two-party intermediation
- A message travels through anidentity tunnel
29Alice
Bob
Bob
Alice
A
B
30Alice
Bob
b.foo()
Bob
Alice
A
B
31Alice
Bob
Bob
Alice
A
B
foo()
32Do I still use Bobs services?
Alice
Bob
Bob
Alice
A
B
foo()
33Bob, deliver to B
foo()
Alice
Bob
Bob
Alice
A
B
34Alice
Bob
Bob
Alice
A
B
deliver(foo,)
35Do I still honor Alices requests?
Alice
Bob
Bob
Alice
A
B
foo()
36Deliver to B for Alice
foo()
Alice
Bob
Bob
Alice
A
B
37Alice
Bob
Bob
Alice
A
B
foo()
38Alice
Bob
A
B
39Three-party intermediation
- Build new relationships from old
40Alice
Bob
A
B
C
Carol
41b.foo(c)
Alice
Bob
A
B
C
Carol
42Alice
Bob
A
B
foo( )
C
Carol
43Carol, please provide Bob access to C
Alice
Bob
A
B
foo(?)
Bob
intro( )
C
Carol
44Carol, please provide Bob access to C
Alice
Bob
A
B
foo(?)
Alice needs tunnel for Bob
Bob
intro( )
C
Carol
45Carol, please provide Bob access to C
Alice
Bob
A
B
foo(?)
Gift wrap it for Bob
Bob
intro( )
C
Carol
46Carol, please provide Bob access to C
Alice
Bob
A
B
foo(?)
Gift wrap it for Bob
Bob
intro( )
To Bob From Carol
C
Carol
47Carol, please provide Bob access to C
Alice
Bob
A
B
foo(?)
return Bobs gift to Alice
Bob
intro( )
To Bob From Carol
C
Carol
48Bob, deliver fo__ to B with Carols ( )
foo( )
Alice
Bob
A
B
To Bob From Carol
C
Carol
49Alice
Bob
A
B
deliver(foo, , )
Carol
To Bob From Carol
C
Carol
50Unwrap Carols gift from Alice
Alice
Bob
A
B
deliver(foo, , )
Carol
To Bob From Carol
C
Carol
51Unwrap Carols gift from Alice
Alice
Bob
A
B
foo( )
C
Carol
52Alice
Bob
A
B
foo( )
C
Carol
53Alice
Bob
A
B
C
Carol
54Four party intermediation
- Only corroborating introductions let Alice shed
blame
55Alice
Bob
A
B
Is Bob a pseudonym for Alice?
C
Carol
56Alice
Bob
A
B
Is Carol a pseudonym for Alice?
C
Carol
57Alice
Bob
A
B
C
Carol
58Alice
Bob
A
B
C
D
Carol
Dave
59Alice
Bob
A
B
bar( )
C
D
Carol
Dave
60Alice
Bob
A
B
C
D
Carol
Dave
61Alice
Bob
A
B
Bob
C
D
Carol
Dave
62Alice
Bob
A
B
Carol
Bob
C
D
Carol
Dave
63Better Identities than ACLs
- No global administrator or name server
- Track bilateral responsibility
- For requests and for service
- Track delegation chain
- Revoke only improperly delegated rights
- Sybil resistant aggregation strategy
- Corroboration-driven disaggregation
64Conclusions
- Fine-grain least authorizations for safety.
- Large-grain identities for damage control.
- Horton is a protocol scaffold
- on which to hang identity-based policies,
- transparently to interacting app-objects.
- Supports delegating narrow authority, while
- assigning responsibility for using that
authority.
65(No Transcript)
66Three-party intermediation
67Rights Amplification
- Inspired by PK
- Simple oo pattern
- No explicit crypto
- Can represent responsible identity
68(No Transcript)
69b.foo(c)
70(No Transcript)
71Carol, please provide Bob access to C
72Carol, please provide Bob access to C
73Bob, please use Carols C
74(No Transcript)
75Make a stub for Bobs use
76Make a stub for Bobs use
77Gift wrap it for Bob
78wrap(s3, whoBob, beCarol)
79pr
wrap(s3, whoBob, beCarol)
80pr
wrap(s3, whoBob, beCarol)
seal( )
81pr
wrap(s3, whoBob, beCarol)
82pr
return gift
83pr
84unwrap( , whoCarol, beBob)
pr
85unwrap( , whoCarol, beBob)
unseal( )
pr
86unwrap( , whoCarol, beBob)
pr
87unwrap( , whoCarol, beBob)
pr
88unwrap( , whoCarol, beBob)
seal( )
pr
89unwrap( , whoCarol, beBob)
pr
90unwrap( , whoCarol, beBob)
( )
pr
91unwrap( , whoCarol, beBob)
pr
92unwrap( , whoCarol, beBob)
pr
93unwrap( , whoCarol, beBob)
( )
pr
94unwrap( , whoCarol, beBob)
95makeProxy(..)
96makeProxy(..)
97E.call(..)
98(No Transcript)
99Alice
Bob
A
B
C
D
Carol
Dave
100Bob
B
C
D
Carol
Dave
101Bob
B
C
D
Carol
Dave
102CapWiki with attribution
103The Web Good, Bad, and Ugly
- Good Internet hypertext, wonderful!
- Bad Username/passwords for every site that has
any sort of access control. - Ugly Hard to share limited access to network
objects. Hard to combine network objects with
access restrictions.
104Alices Domain
Sends BobSend EveSend IvanSend
105Alices Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
CapWiki Finances Investor Market
106Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
107Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
108Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
109Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
110Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
Here are the CapWiki Finances Dave
Receives BobReceive
Davess Domain
111Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
Here are the CapWiki Finances Dave
Receives BobReceive
Davess Domain
112Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
Here are the CapWiki Finances Dave
Receives BobReceive
Davess Domain
113Alices Domain
Bobs Domain
CapWiki CapWiki Stuff Concepts Finances Other
Sends BobSend EveSend IvanSend
Receives AliceReceive
Sends AliceSend DaveSend
CapWiki Finances Investor Market
Here are the CapWiki Finances Dave
Receives BobReceive
Davess Domain
114Better Web Access Control
- No more passwords Send a ltmegtSend to a
ltservicegtSend. They know who you are, you know
who they are. - Side benefit SPAM resistance. Dont like a
source of SPAM, cut it off to any delegation
level. - Principle Of Least Authority (POLA) sharing that
can facilitate cross site services.