Security Protocols in Automation : Security Protocols in Automation Dwaine Clarke
declarke@mit.edu
MIT Laboratory for Computer Science
January 8, 2002 With help from: Matt Burnside, Todd Mills,
Andrew Maywah, Srinivas Devadas, Ronald Rivest
Slide2 : Problem Description
SPKI/SDSI Introduction
Name Certificate
Authorization Certificate
Proxy-to-Proxy protocol
Examples
Status
Questions Overview
Problem: Proxy to Proxy Security : Problem: Proxy to Proxy Security All proxies talk to each other with the same protocol
SPKI/SDSI Introduction(Simple Public-Key Infrastructure/Simple Distributed Security Infrastructure) : SPKI/SDSI Introduction (Simple Public-Key Infrastructure/Simple Distributed Security Infrastructure) Build secure distributed computing systems
Access control over the network
Simple, flexible, trust policy model with specific authorizations
Fine-grained access control
Scalable infrastructure
SPKI/SDSI Introduction(Simple Public-Key Infrastructure/Simple Distributed Security Infrastructure) : SPKI/SDSI Introduction (Simple Public-Key Infrastructure/Simple Distributed Security Infrastructure) Designed by Ron Rivest, Butler Lampson and Carl Ellison
Each public key is a CA
Name certificate: defines a name in issuer’s name space
Authorization certificate: grants a specific authorization from issuer to subject
SPKI/SDSI: Name Certificates : SPKI/SDSI: Name Certificates Local name spaces
Groups
SPKI/SDSI: Name Certificate : SPKI/SDSI: Name Certificate (cert
(issuer
(name
(public-key
(rsa-pkcs1-md5
(e #23#)
(n
|AMMgMuKpqK13pHMhC8kuxaSeCo+yt8TadcgnG8bEo+erdrSBveY3C
MBkkZqrM0St4KkmMuHMXhsp5FX71XBiVW1+JGCBLfI7hxWDZCxGTMg
bR4Fk+ctyUxIv3CQ93uYVkg9ca6awCxtS0EI7sLuEB+HKuOLjzTsH+
+Txw9NAHq4r|)))
friends))
(subject
(public-key
(rsa-pkcs1-md5
(e #23#)
(n
|AKg3tOzoJ5PGQ5q9jzxzwxE8o6bIZ6/cE8gEL+1xJa23viE3bz68ru
hpD5muqJ+uyDCNxgAZ0JVXJazmX1QjiGudj9kEmuni8gJRLZRu0T5E3
K7OU2dodu0kdDg32kym7+ooZNe/F0zWGekfESeezyQ25kvNO3XQvMHX
afWcYjRw|)))))
SPKI/SDSI: Authorization Model : SPKI/SDSI: Authorization Model Simple trust policy model
Authorizations specified in flexible, user-defined tags
Authorizations can be defined as specific or as general as the user desires
Delegation (specific)
SPKI/SDSI: Authorization Certificate : SPKI/SDSI: Authorization Certificate (cert
(issuer
(public-key
(rsa-pkcs1-md5
(e #23#)
(n
|AMMgMuKpqK13pHMhC8kuxaSeCo+yt8TadcgnG8bEo+erdrSBveY3C
MBkkZqrM0St4KkmMuHMXhsp5FX71XBiVW1+JGCBLfI7hxWDZCxGTMg
bR4Fk+ctyUxIv3CQ93uYVkg9ca6awCxtS0EI7sLuEB+HKuOLjzTsH+
+Txw9NAHq4r|))))
(subject
(public-key
(rsa-pkcs1-md5
(e #23#)
(n
|AKg3tOzoJ5PGQ5q9jzxzwxE8o6bIZ6/cE8gEL+1xJa23viE3bz68ru
hpD5muqJ+uyDCNxgAZ0JVXJazmX1QjiGudj9kEmuni8gJRLZRu0T5E3
K7OU2dodu0kdDg32kym7+ooZNe/F0zWGekfESeezyQ25kvNO3XQvMHX
afWcYjRw|))))
(tag
(http
(* set GET POST)
(* prefix http://ostrich.lcs.mit.edu/demo/)))
(propagate))
SPKI/SDSI: Tag : (tag
(http
(* set GET POST)
(* prefix http://ostrich.lcs.mit.edu/demo/)))
SPKI/SDSI: Tag Intuitively, a tag is a set of requests.
Proxy to Proxy : Proxy to Proxy Alice (Client Proxy) Bob (Server Proxy) Da (private key)
Ea (public key)
Alice’s client certs
List of CA certs Db (private key)
Eb (public key)
ACL
Server certs Set up SSL connection:
Server auth
Session key for privacy
Freshness
Protection from MIM Initialization:
Proxy to ProxyCase 1: user’s key is directly on the ACL : Proxy to Proxy Case 1: user’s key is directly on the ACL Alice (Client) Bob (Server) Da (private key)
Ea (public key)
Alice’s client certs
List of CA certs Db (private key)
Eb (public key)
ACL
Server certs [tag]Da Response ACL: {Ec,
Eb,
Ea}
Proxy to Proxy : Proxy to Proxy Case 2: user’s key is “indirectly” on the ACL Client performs
certificate chain
discovery. Server verifies
certificate
chain. ACL: {‘Eb friends’}
Certificate Chaining Example : Certificate Chaining Example Bob’s ACL says only MIT faculty are allowed to access his server.
Alice’s first request is simply signed with Alice’s key, and Bob rejects this request.
Alice’s second request contains a chain consisting of the following certificates:
A certificate saying she is an LCS Professor
A second certificate saying LCS Professors are MIT faculty
Certificate Chain Discovery(Client Proxy) : Certificate Chain Discovery (Client Proxy) Derive certificate chains
Input: device’s ACL, requestor’s public key, requestor’s set of signed certificates, tag
Output: a chain of certificates leading from an entry on the ACL to the requestor’s public key.
(The certificate chain consists of signed certificates. It proves that the requestor is authorized to perform the tag’s operations on the device.) * Recall, intuitively, a tag is a set of requests.
Certificate Chain Verification (Server Proxy) : Certificate Chain Verification (Server Proxy) Verify certificate chains
Input: device’s ACL, requestor’s public key, requestor’s certificate chain, tag
Output: 1 if certificate chain proves that the public key is authorized to perform the tag’s operations on the device; 0 otherwise.
Proxy to Proxy : Proxy to Proxy Alice (Client Proxy) Bob (Server Proxy) Da (private key)
Ea (public key)
Alice’s client certs
List of CA certs Db (private key)
Eb (public key)
ACL
Server certs [tag]Da Rejected: [tag]Da, certs ACL Case 2 revisited
user’s key is “indirectly” on the ACL Signed request provides proof of authenticity of the request
Certificate chain provides proof that the request is authorized
Example: Public resource : Example: Public resource Mary wants to turn on/off a public light switch.
Light switch’s proxy may require requests to be signed for auditing purposes.
Example: user’s key directly on ACL : Example: user’s key directly on ACL Mary wants to log into an account on a dialup machine. ACL: {Ec,
Ef,
Em}
Example:user’s key is indirectly on ACL : Example:user’s key is indirectly on ACL Mary wants to play music on John’s speaker. ACL: {‘Ej friends’}
Summary:Issues we are dealing with : Summary: Issues we are dealing with Specifying, granting, delegating and revoking authorizations
Creating, maintaining and auditing groups
Attribute searching
Facilitating scalability
Designing simple, user-friendly systems
Questions? : Questions?