Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extensible proof-carrying authorization in Alpaca October 31, 2007 ACM CCS – Alexandria, VA Chris Lesniewski-Laas, Bryan Ford, Jacob Strauss, Robert Morris,

Similar presentations


Presentation on theme: "Extensible proof-carrying authorization in Alpaca October 31, 2007 ACM CCS – Alexandria, VA Chris Lesniewski-Laas, Bryan Ford, Jacob Strauss, Robert Morris,"— Presentation transcript:

1 Extensible proof-carrying authorization in Alpaca October 31, 2007 ACM CCS – Alexandria, VA Chris Lesniewski-Laas, Bryan Ford, Jacob Strauss, Robert Morris, and M. Frans Kaashoek MIT

2 Authorization proliferation “Peggy” Carol Peggy

3 Authorization proliferation “Peggy” Carol Victor “MIT” put(  ) ? Peggy

4 Authorization proliferation “Peggy” Carol Victor “MIT” put(  ) “Peggy@MIT” put(  ) Peggy

5 Authorization proliferation “Peggy” Carol Victor “MIT” ? MIT! put(  ) Peggy

6 Solution approach “Peggy” Carol Victor “MIT” put(  ) ? DSA for Dummies Peggy @MIT! How do we build this? Peggy

7 Our system: Alpaca Logic-based authentication framework Bridges the gaps between PKIs – Verifier doesn’t know details of prover’s PKI CarolVictor put(  ) Peggy DSA for Dummies put(x)put(x) DSA for Dummies put(x)put(x) put(  ) DSA for Dummies put(x)put(x) DSA for Dummies put(x)put(x) put(  )

8 Proof-carrying authorization Appel, Felten. PCA. In CCS 1999 Requests are logical formulas Credentials are proofs of logical formulas flexible certificates, delegation policy Victor request: formula [Peggy says put(  )] Peggy (says Peggy (apply ‘put bytes  )) credential: proof of [Peggy says put(  )] (speaks-for-elim (axiom p.K ca p) (…) ) (axiom p.K ca p) speaks-for-elim

9 Alpaca’s new techniques “Dynamic” principals defined by logical rules Signatures built from more elementary primitives Enables Victor’s Alpaca PKI to check foreign signatures and credentials Victor request: formula [Peggy says put(  )] Peggy (says Peggy (apply ‘put bytes  )) credential: proof of [Peggy says put(  )] (speaks-for-elim (axiom p.K ca p) (…) ) Peggy

10 Principals are name chains A/N/M Built-in “authorities” – emit statements defined by axiom schema – e.g., math authority: emit 1+1=2, 2 3 mod 7 = 1, … Name (role) connective A/N – A is a principal, N is a name (“Peggy”, 0x96, tuple) – Proof checker rule: A speaks for A/N – A controls all principals A/N/M/… (A’s “sandbox”) math (axiom ‘math (= (+ 1 1) 2)) math says 1+1=2

11 Bootstrap familiar principals Built-in “authorities” Name (role) connective A/B Bootstrap other principal types Public key K a (emits statements signed by K a ) User name (“Peggy”) Compound names (“localname@domain.com”, “Dad’s dentist”, …) others (see paper)

12 Key principals defined by rsa authority Goal: – if K n,e is an RSA key, – and K n,e -1 signs repr[], – then can construct proof of [K n,e says ].

13 Key principals defined by rsa authority Goal: if K n,e is an RSA key, and K n,e -1 signs repr[], then can prove [K n,e says ]. Principal K n,e ≝ expression rsa/n,e – (/ ‘rsa (cons 0x8f1f… 0x10001)) rsa authority contains one axiom * : rsa says ( σ e = (mod n))  rsa/n,e says uses [rsa  rsa/n,e] σ e = (mod n) rsa/n,e says iff RSA-Verify(, K n,e, σ ) Goal

14 Credential = signature + proof tree PeggyVictor K p says put(  ) proof of [K p says put(  )] Compose proof tree: axiom [math says σ e  (mod n)] + axiom [rsa says( σ e  (mod n))  rsa/n,e says ] + substitute = repr [ put(  ) ] + implies-eliminate, … = proof of: [rsa/n,e says put(  )] Compose proof tree: axiom [math says σ e  (mod n)] + axiom [rsa says( σ e  (mod n))  rsa/n,e says ] + substitute = repr [ put(  ) ] + implies-eliminate, … = proof of: [rsa/n,e says put(  )] Compute: = repr [ put(  ) ] σ = 1/e mod n [rsa/n,e says put(  )] Checks axioms and proof steps

15 rsa/n,esays(r = g /s y r/s (mod p))  rsa/n,e/p,q,g,ysays rsasays( e = (mod n))  rsa/n,esays dsasays(r = g /s y r/s (mod p))  dsa/p,q,g,ysays Not everyone uses RSA signatures Victor doesn’t want all algorithms in TCB rsa/n,e: could be K carol or anyone else Bootstrap from one-time-pad authenticator – Victor starts with just OTP Signed statement: “meta-credential” Built-in authority Bootstrap other crypto from RSA rsa/n,e ≈ dsa

16 Certificates and CAs Goal: bind “Peggy” to K p (attested by K ca ) Using K ca -1, sign formula [K p  K ca /“Peggy”] – “K p speaks for K ca ’s name Peggy ” Proof is a certificate! Nothing special about K ca – users or apps choose namespaces to use by, e.g., adopting axioms  x. K ca /x  K user /x

17 Credential = signature + certificate + proof tree PeggyVictor K ca /“Peggy” says put(  ) proof of [K ca /“Peggy” says put(  )] Compose proof tree: Incorporate RSA signature proof… subproof of: [K p says K ca /“Peggy” says put(  )] + subproof of: [K p  K ca /“Peggy”] + speaks-for-rule, … = proof of: [K ca /“Peggy” says put(  )] Compose proof tree: Incorporate RSA signature proof… subproof of: [K p says K ca /“Peggy” says put(  )] + subproof of: [K p  K ca /“Peggy”] + speaks-for-rule, … = proof of: [K ca /“Peggy” says put(  )] Compute: = repr [ K ca /“Peggy” says put(  ) ] σ = 1/e mod n [rsa/n,e ca /“Peggy” says put(  )] Checks axioms and proof steps Carol

18 Policy in the logic: authorization Can roll access control into logic – ACL entries could be ( K ca /“Peggy” says put(x) )  put(x) Requires Peggy to prove [put(  )]: – First prove [K ca /“Peggy” says put(  )] – Then combine with ACL (or other policy logic) to get [put(  )] See, e.g., DCC [Abadi 2006] for variations

19 Credential = signature + certificate + policy + proof tree PeggyVictor put(  ) proof of [put(  )] Compose proof tree: Blah blah blah… [proof from some credential] + [maybe some axioms] + deductive rules, … = proof of: [put(  )] Compose proof tree: Blah blah blah… [proof from some credential] + [maybe some axioms] + deductive rules, … = proof of: [put(  )] Compute: = repr [ K ca /“Peggy” says put(  ) ] σ = 1/e mod n [put(  )] Checks axioms and proof steps

20 X.509 cert { CN=“Peggy”, RSAPK=(n,e) } Kca X.509 cert { CN=“Peggy”, RSAPK=(n,e) } Kca Foreign credentials Carol Victor Alpaca: [K ca  “MIT”] put(  ) Peggy@MIT says to put(  ) ! X.509 for Dummies X.509 for Dummies Peggy

21 Alpaca can use foreign credentials Carol publishes X.509 meta-credential: Now Peggy can present X.509 cert to Victor What if MIT uses DSA certificates? K ca says ∀ x509 : str. signed( K ca, x509 )  (n,e) = RSAPK(x509)  name = CN(x509)  rsa/n,e  K ca /name

22 Alpaca can use foreign credentials Carol publishes X.509 meta-credential: + DSA meta-credential: Now Peggy can present X.509 cert to Victor using DSA private key to sign requests K ca says ∀ x509 : str. signed( K ca, x509 )  (p,q,g,y) = DSAPK(x509)  name = CN(x509)  K ca /dsa/p,q,g,y  K ca /name K ca says (r = g /s y r/s (mod p))  K ca /dsa/p,q,g,y says not built-in authority

23 Other cool things Alpaca can do Policy – restricted delegation – conjunctive/disjunctive principals – flexible quota assignment policies PKI namespace structures (SPKI, hash-IDs, …) Enabling incremental improvements – encoding (padding, batching, hash chains, …) – vanilla SHA, RSA  wizzbang new crypto (IBE, …) – secure root of trust for updates: one-time MAC

24 Implementation features (in paper) Python library and API – 3500 non-blank LOC (TCB: 800 LOC) – Proof construction language Efficient sandboxed computations – Hashing as fast as native evaluation Replay protection (nonces) Integrated with UIA name system

25 Future directions What’s nice about Alpaca right now? – Apps can say new things with logic – Flexibly specify who holds credential and delimit what they can do with it What’s still to do? – Meta-credentials need to be self-describing – How to use this credential? – Why is this credential valid?

26 Related work Proof-carrying (authorization|code) Logic of authorization (BAN, TAOS, ABLP, DCC) Decentralized PKI (SPKI/SDSI) Mobile code (Active certificates) Policy languages (SecPAL, Binder, Daisy, SD3, RT, …)

27 Summary Alpaca: a logic-based authorization framework – introduces “dynamic” principals – decentralizes definition of authorization rules – extensible PKI, signatures, hashes, credentials – flexible delegation and access control policy Make logic an explicit part of wire protocols – request :: formula, credential :: proof – enables incremental improvement of PKI http://pdos.csail.mit.edu/alpaca/


Download ppt "Extensible proof-carrying authorization in Alpaca October 31, 2007 ACM CCS – Alexandria, VA Chris Lesniewski-Laas, Bryan Ford, Jacob Strauss, Robert Morris,"

Similar presentations


Ads by Google