CMSC 414 Computer and Network Security Lecture 15 Jonathan Katz

advertisement
CMSC 414
Computer and Network Security
Lecture 15
Jonathan Katz
Announcement
 Anyone interested in a summer internship at NIST
related to programming in support of quantum key
distribution (no prior knowledge of QM required),
please contact me
Basic authentication protocols…
 Server stores H(pw); user sends pw
– “Secure” against server compromise, but not
eavesdropping (or replay attacks)
 Server stores pw, sends R; user sends Fpw(R)
– If pw is a high-entropy key, then this is secure against
eavesdropping (but not server compromise)
– If pw is a password, then this is insecure against an offline dictionary attack
A public-key protocol
 Server stores pk; user stores sk
 Server sends R; user signs R
– Using a secure signature scheme…
 Is this secure against eavesdropping/server
compromise?
– What if we had used encryption instead?
 Can we achieve security against eavesdropping
and server compromise without public-key
crypto?
Lamport’s protocol
 Server stores Hn(pw), sends n; user sends Hn-1(pw)
– Server updates user’s entry…
 Can also add “salt” to hash
– Server sends salt to user as first flow
– Allows user to use same password on different sites
– Can use same password (but different salt) when
password “expires”
– Protects against pre-computation
 Deployed as S/Key
Some drawbacks…
 Secret expires at some point and a new secret must
be shared
 Security against active attacks?
– Can use “paper-and-pencil” method to prevent this…
– …but at that point, better solutions are also possible!
Session key establishment
 There are very few applications for which
authentication alone is sufficient!
– Can you think of any?
– What do you do once you are authenticated?
 Generally, need to establish a session key to
authenticate (and encrypt) subsequent
communication
– Also efficiency advantages to using symmetric-key
techniques if public-key authentication is used
– Advantages even if a symmetric key is already shared…
Session keys
 Reduces effectiveness of cryptanalysis
 If key compromised, only one session affected
 Prevents replay of messages from other sessions
Basic key exchange
 Public-key based…
 Diffie-Hellman key exchange
– Secure against passive eavesdropping…
– …but insecure against a man-in-the-middle attack
Adding key exchange
 Not sufficient to simply “add on” key
establishment before/after authentication
– Splicing attack…
 Need “authenticated key exchange”
KDCs
 Key Distribution Centers
 Advantages of symmetric-key crypto, without
O(n2) keys
– But requires a trusted intermediary
– Single point of failure/attack
 We will see an example (Kerberos) later
Multiple intermediaries
 Allows users in different domains to communicate
securely
 Use multiple KDCs…
– Can have all pairs of KDCs share a key
– More likely, there will be a hierarchy of KDCs
Authentication Protocols
(Chapter 11, KPS)
Overview
 Protocol design is subtle
– Small changes can make a protocol insecure!
– Historically, designed in an “ad-hoc” way, by checking
protocol for known weaknesses
– Great example of where provable security helps!
Challenge-response
 Client and server share a key k
 Generically: server sends R; user sends f(k, R)
 For which f will this be secure?
 What if R is non-repeating, but predictable?
 Drawbacks
– No mutual authentication
– No key exchange
– Dictionary attack if k is low entropy
– Insecure against server compromise
Download