COMP Distributed Systems Protocols Kevin Jeffay Department of Computer Science University of North Carolina at Chapel Hill jeffay@cs.unc.edu October 5, 999 http://www.cs.unc.edu/~jeffay/courses/compf99 Protocols Concept u is concerned with the question Who said this?» Did smithfd@buzzard.cs.unc.edu really request this file? v Who made the request? v Is the request received actually the one made?» Did buzzard.cs.unc.edu really send me this file? v Which server sent the file? v Did I receive the file that was actually sent?» Is this message from Steve Weiss about my pay raise legit? v Are the contents of the message genuine? v Can Weiss deny he sent it?
Protocols Outline text E(key e, text) key e E D text key d u Classic Needham & Schroeder authentication model» Theory u Kerberos» Practice u How safe is safe?» Weaknesses in Kerberos Protocols Overview Get a session key and credentials u -Way authentication Perform mutual authentication u Variations on the theme» Remote authentication» -Way authentication u Concerns» State requirements» Susceptibility to replay attacks & corrupted keys Exchange messages Bob
-Way Using symmetric cryptography Step Obtain a session key (, Bob, random ). s key. Bob s key.... {random, Bob, session key, {session key, } Bob } Bob 5 -Way Using symmetric cryptography Step introduces herself to Bob {..., {session key, } Bob } {session key, } Bob {message} session key?? 6
-Way Using symmetric cryptography Step Bob challenges {random Bob } session key 5 {random Bob } session key 6 {message} session key?? 7 -Way Using symmetric cryptography What if allowed the session key to be stolen? {session key, } Bob {session key, } Bob {random Bob } session key 5 {random Bob } session key 8
-Way Communicating with untrusted parties Bob needs to challenge by requiring her to reauthenticate herself to the server (, Bob, random, {, random Bob } Bob ) {random, Bob, session key, {session key,, random Bob } Bob } {session key,, random Bob } Bob {, random Bob } Bob 9 -Way Communicating with untrusted parties Step 0 requests to communicate with Bob. s key. Bob s key.... ( ) {, random Bob } Bob 0
-Way Communicating with untrusted parties Step Obtain a session key (, Bob, random, {, random Bob } Bob ). s key. Bob s key.... {random, Bob, session key, {session key,, random Bob } Bob } {session key,, random Bob } Bob 5 Step authenticates herself to Bob -Way Using asymmetric cryptography Step Obtain Bob s public key (, Bob ). s public key. Bob s public key.... {Bob s public key, Bob } s Private Key
-Way Using asymmetric cryptography Step introduces herself to Bob {random, } Bob s public key -Way Using asymmetric cryptography Step Bob looks up. s public key. Bob s public key.... { s public key, } s Private Key 5 ( Bob, ) 6 {random, message} s public key??
-Way Using asymmetric cryptography Step Bob & authenticate themselves to each other {random, random Bob } s public key 6 7 {random Bob } Bob s public key 5 -Way Using asymmetric cryptography Step 5 & Bob exchange messages {{message} s private key, random Bob + n} Bob s public key {{message} Bob s private key, random + m} s public key 6
-Way Using asymmetric cryptography Did & Bob s messages have to be private? {message, random Bob + n} s private key {message, random + m} Bob s private key 7 Across Administrative Domains Symmetric cryptography s.. Local users users.. Remote s (, Bob, random ) {session key,, Bob, random } Inter- key a {session key,, Bob, random, {session key, } Bob } Inter- key b {random, Bob, session key, {session key, } Bob } Bob s.. Local users users.. Remote s Bob 8
Across Administrative Domains Asymmetric cryptography (, Bob ) Bob s.. Local users users.. Remote s {Bob s public key, Bob } s Private Key Bob 9 -Way Symmetric cryptography Step Obtain a message key (, Bob, random ). s key. Bob s key.... {random, Bob, session key, {session key, } Bob } Bob 0
-Way Symmetric cryptography Step communicates with Bob {session key, } Bob {timestamp, message} session key George Latest time stamp Latest time stamp -Way Asymmetric cryptography Step Obtain a message key. Õs key. BobÕs key.... (, Bob ) {Bob s public key, Bob } s Private Key Bob
-Way Asymmetric cryptography Step communicates with Bob {timestamp, random,, { Bob } s private key } Bob s public key {message, random } Bob s public key