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

Slides:



Advertisements
Similar presentations
Towards Remote Policy Enforcement for Runtime Protection of Mobile Code Using Trusted Computing Xinwen Zhang Francesco Parisi-Presicce Ravi Sandhu
Advertisements

Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown.
Logical Attestation: An Authorization Architecture for Trustworthy Computing Emin Gün Sirer Willem de Bruijn †, Patrick Reynolds *, Alan Shieh ‡, Kevin.
Spring 2000CS 4611 Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
SSL Implementation Guide Onno W. Purbo
1 Network Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown.
Grid Security Infrastructure Tutorial Von Welch Distributed Systems Laboratory U. Of Chicago and Argonne National Laboratory.
CSCE 715: Network Systems Security Chin-Tser Huang University of South Carolina.
ESign-Online Digital Signature Service February 2015 Controller of Certifying Authorities Department of Electronics and Information Technology Ministry.
Chapter 4 Authentication Applications. Objectives: authentication functions developed to support application-level authentication & digital signatures.
Authentication Cristian Solano. Cryptography is the science of using mathematics to encrypt and decrypt data. Public Key Cryptography –Problems with key.
Environmental Council of States Network Authentication and Authorization Services The Shared Security Component February 28, 2005.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
Computer Security Key Management. Introduction We distinguish between a session key and a interchange key ( long term key ). The session key is associated.
Apr 2, 2002Mårten Trolin1 Previous lecture On the assignment Certificates and key management –Obtaining a certificate –Verifying a certificate –Certificate.
CMSC 414 Computer (and Network) Security Lecture 17 Jonathan Katz.
Computer Security Key Management
 Authorization via symmetric crypto  Key exchange o Using asymmetric crypto o Using symmetric crypto with KDC  KDC shares a key with every participant.
Trusted Platform Modules: Building a Trusted Software Stack and Remote Attestation Dane Brandon, Hardeep Uppal CSE551 University of Washington.
Introduction to PKI Seminar What is PKI? Robert Brentrup July 13, 2004.
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz.
Spring 2002CS 4611 Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Edward Tsai – CS 239 – Spring 2003 Strong Security for Active Networks CS 239 – Network Security Edward Tsai Tuesday, May 13, 2003.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 20 Jonathan Katz.
ISA 3200 NETWORK SECURITY Chapter 10: Authenticating Users.
Spring 2003CS 4611 Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Public Key Distribution and X.509 Wade Trappe. Distribution of Public Keys There are several techniques proposed for the distribution of public keys:
IPhone Security: Understanding the KeyChain Nicholis Bufmack and Ryan Thomas CS 691 Summer 2009.
1 CS 194: Distributed Systems Security Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences.
CAMP - June 4-6, Copyright Statement Copyright Robert J. Brentrup and Mark J. Franklin This work is the intellectual property of the authors.
Computer Science Public Key Management Lecture 5.
Public Key Infrastructure from the Most Trusted Name in e-Security.
14 May 2002© TrueTrust Ltd1 Privilege Management in X.509(2000) David W Chadwick BSc PhD.
Security Protocols in Automation Dwaine Clarke MIT Laboratory for Computer Science January 8, 2002 With help from: Matt Burnside, Todd.
Wolfgang Schneider NSI: A Client-Server-Model for PKI Services.
Introduction to Secure Messaging The Open Group Messaging Forum April 30, 2003.
Authenticating Users Chapter 6. Learning Objectives Understand why authentication is a critical aspect of network security Describe why firewalls authenticate.
1 Role-Based Cascaded Delegation: A Decentralized Delegation Model for Roles Roberto Tamassia Danfeng Yao William H. Winsborough Brown University Brown.
NENA Development Conference | October 2014 | Orlando, Florida Security Certificates Between i3 ESInet’s and FE’s Nate Wilcox Emergicom, LLC Brian Rosen.
Java Security Pingping Ma Nov 2 nd, Overview Platform Security Cryptography Authentication and Access Control Public Key Infrastructure (PKI)
Chapter 9: Using and Managing Keys Security+ Guide to Network Security Fundamentals Second Edition.
Topic 22: Digital Schemes (2)
Introduction1-1 Data Communications and Computer Networks Chapter 6 CS 3830 Lecture 31 Omar Meqdadi Department of Computer Science and Software Engineering.
Implementing EFECT Easy Fast Efficient Certification Technique Ivan Nestlerode Bell Labs Lucent Technologies Based on EFECT paper by: Phil MacKenzie, Bell.
Proof-Carrying Code & Proof-Carrying Authentication Stuart Pickard CSCI 297 June 2, 2005.
Network Security7-1 CIS3360: Chapter 8: Cryptography Application of Public Cryptography Cliff Zou Spring 2012 TexPoint fonts used in EMF. Read the TexPoint.
Security (and privacy) Larry Rudolph With help from Srini Devedas, Dwaine Clark.
The TAOS Authentication System: Reasoning Formally About Security Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
Merkle trees Introduced by Ralph Merkle, 1979 An authentication scheme
Cryptography and Network Security Chapter 14 Fourth Edition by William Stallings Lecture slides by Lawrie Brown.
Brian A. LaMacchia Director, XCG Security & Cryptography, Microsoft Research.
Pkiuniversity.com. Alice Bob Honest Abe’s CA Simple PKI hierarchy.
A Simple Traceable Pseudonym Certificate System for RSA-based PKI SCGroup Jinhae Kim.
1 APNIC Trial of Certification of IP Addresses and ASes RIPE October 2005 Geoff Huston.
Newcastle uopn Tyne, September 2002 V. Ghini, G. Lodi, N. Mezzetti, F. Panzieri Department of Computer Science University of Bologna.
1 Public Key Infrastructure Rocky K. C. Chang 6 March 2007.
CMSC 414 Computer and Network Security Lecture 18 Jonathan Katz.
MIT Computer Science and Artificial Intelligence Laboratory UIA: Unmanaged Internet Architecture Bryan Ford, Jacob Strauss, Chris Lesniewski-Laas, Sean.
Pertemuan #8 Key Management Kuliah Pengaman Jaringan.
Prof. Reuven Aviv, Nov 2013 Public Key Infrastructure1 Prof. Reuven Aviv Tel Hai Academic College Department of Computer Science Public Key Infrastructure.
Decentralized Access Control: Overview Deepak Garg Foundations of Security and Privacy Fall 2009.
Decentralized Access Control: Policy Languages and Logics
Cryptography and Network Security
SSL Implementation Guide
کاربرد گواهی الکترونیکی در سیستمهای کاربردی (امضای دیجیتال)
Public Key Infrastructure from the Most Trusted Name in e-Security
Re(AC)t Reputation and Anonymous Credentials for Access Control (t=2)
Presentation transcript:

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

Authorization proliferation “Peggy” Carol Peggy

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

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

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

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

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(  )

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

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

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

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 “Dad’s dentist”, …) others (see paper)

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 ].

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

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

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

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

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

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

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

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(  ) says to put(  ) ! X.509 for Dummies X.509 for Dummies Peggy

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

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

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

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

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?

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, …)

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