download

CMSC 414
Computer (and Network) Security
Lecture 17
Jonathan Katz
More on PKI
(Chapter 15, KPS)
PKI components
 CAs…
 Repository for retrieving certificates
 Revocation method
 Method for evaluating a chain based on
known “trust anchors”
 (Orthogonal issue: how are the keys of the
trust anchors distributed?)
Some terminology
 If A signs a certificate for B’s name/key, then A is
the issuer and B is the subject
 If A wants to find a path to B’s key, then B is the
target and A is the verifier
 A trust anchor is a public key that the verifier
trusts to sign certificates (typically known to the
verifier through some out-of-band mechanism)
Trust models
 Define how a verifier chooses trust anchors,
and what certification paths create a legal
chain from trust anchor to target
Monopoly model
 A single CA certifies everyone
 Drawbacks
– Single point of failure
– Not very convenient
– Complete monopoly…
 Pure monopoly not used in practice
Monopoly + RAs…
 The CA can appoint RAs
 RAs check identities and vouch for keys,
but the CA does all actual signing
– Certainly more convenient
– Not necessarily more secure
 (Note: RAs can be integrated into other
models as well)
Monopoly + delegated CAs
 As seen in class last time…
 CA can issue certificates to other CAs
– Vouch for their key and also their
trustworthiness as a CA
– Delegated CA can sign certificates itself
 (Note: delegation can be incorporated into
other models as well)
Oligarchy
 Multiple trust anchors
– E.g., multiple keys pre-configured in software
– User can add/remove trust anchors
 Issues:
– Less resistant to compromise!
– Who says the user trusts the trust anchors?
– Can user be tricked into adding or using a
“bad” anchor?
Anarchy model
 Users responsible for defining the trust
anchors they want to use
 Drawbacks
– Scalability?
– How much trust to place in a certificate chain
“Top down” w/ name constraints
 Like monopoly model with delegated CAs
– But delegated CAs are only allowed to certify
their portions of the namespace
– This makes it easier to find a certificate chain,
and also is more likely to be trustworthy
Revocation
 Revocation is a key component of a PKI
– Secret keys stolen/compromised, user leaves
organization, etc.
 This is in addition to expiration dates
included in certificates
– Certificate might need to be revoked before
expiration date
– Expiration dates improve efficiency
Cert. revocation lists (CRLs)
 CA issues signed list of (un-expired)
revoked keys
– Must be updated and released periodically
– Must include timestamp
– Verifier must obtain most recent CRLs before
verifying a certificate
 Using “delta CRLs” improves efficiency
OLRS
 “On-line revocation server”
 Verifier queries an OLRS to find out if a
certificate is still valid
 If OLRS has its own key, it can certify that
a certificate is valid at a certain time
“Good lists”
 The previous approaches basically use lists
of “bad” certificates
 Also possible to use a list containing only
“good” certificates
– Likely to be less efficient
Directories
 PKIs do not require directories
– Users can store and present their own certificate
chains to a trust anchor
 Directories can make things easier, and
enable non-interactive setup
Finding certificate chains
 Two approaches: work “forward” from
target toward a trust anchor, or “backward”
from trust anchor to target
 The better approach depends on
implementation details
– For example, in system with name constraints,
easier to work “backward”
Final notes: PKI in practice
 PKIs are implemented in web browsers!
 Security notes:
– A certificate is meaningless without verifying
the name in the certificate
– A certificate from an unknown CA is useless
– “Trust” is only as good as your trust anchors
• Do you know who your trust anchors are?