1 / 15

Using Cryptography for Network Security

Learn about authentication and key distribution protocols for network security using cryptography. Explore common problems and solutions for proving identities and agreeing on session keys.

linasmith
Download Presentation

Using Cryptography for Network Security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP Internet Host A Host B Using Cryptography for Network Security • Common problems: • Authentication - A and B want to prove their identities to one another • Key-distribution - A and B want to agree on a session key that can be used to encrypt all subsequent communications • Solution: cryptographic protocols

  2. Authentication • Authentication is the process of proving your identity to someone else • One-way • Two-way • Authentication protocols are often designed using a challenge and response mechanism • Authenticator creates a random challenge • Authenticatee proves identity by replying with the appropriate response

  3. One-way Authentication Using Symmetric-Key Cryptography • Assume that Alice and Bob share a secret symmetric key, KAB • One-way authentication protocol: • Alice creates a nonce, NA, and sends it to Bob as a challenge • Bob encrypts Alice’s nonce with their secret key and returns the result, Encrypt(NA, KAB), to Alice • Alice can decrypt Bob’s response and verify that the result is her nonce A: => B(NA); B: => A(Encrypt(NA, KAB));

  4. One-way Authentication Using Symmetric-Key Cryptography • Problem: an adversary, Mallory, might be able to impersonate Bob to Alice: • Alice sends challenge to Bob (intercepted by Mallory) • Mallory does not know KAB and thus cannot create the appropriate response • Mallory may be able to trick Bob (or Alice) into creating the appropriate response for her: A: => M(NA); M: => B(NA); B: => M(Encrypt(NA, KAB)); M: => A(Encrypt(NA, KAB));

  5. One-way Authentication Using Public-Key Cryptography • Alice sends a nonce to Bob as a challenge • Bob replies by encrypting the nonce with his private key • Alice decrypts the response using Bob’s public key and verify that the result is her nonce A: => B(NA); B: => A(Encrypt(NA, BPrivate)); • Encrypting any message that someone sends as an authentication challenge might not be a good idea

  6. One-way Authentication Using Public-Key Cryptography • Another challenge-and-response authentication protocol: • Alice performs a computation based on some random numbers (chosen by Alice) and her private key and sends the result to Bob • Bob sends Alice a random number (chosen by Bob) • Alice makes some computation based on her private key, her random numbers, and the random number received from Bob and sends the result to Bob • Bob performs some computations on the various numbers and Alice’s public key to verify that Alice knows her private key • Advantage: Alice never encrypts a message chosen by someone else

  7. Authentication and Key-Exchange Protocols • Combine authentication and key-exchange • Assume Carla and Diane are on opposite ends of a network and want to talk securely • Want to agree on a new session key securely • Want to each be sure that they are talking to the other and not an intruder • Wide-Mouth Frog • Assumes a trusted third-party, Sam, who shares a secret keys, KC and KD, respectively, with Carla and Diane

  8. Authentication and Key-Exchange Protocols • Wide-Mouth Frog C: => S (C,Encrypt((D,KCD,TC),KCS)); S: => D (Encrypt((C, KCD, TS), KDS)); • Observations: • Reliance on synchronized clocks to generate timestamps • Depends on a third-party that both participants trust • Initiator is trusted to generate good session keys

  9. Authentication and Key-Exchange Protocols • Needham and Schroeder C => S: (C, D, NC); S => C: (Encrypt((NC, B, KCD, Encrypt((C,KCD),KD)),KC)); C => D: (Encrypt((C,KCD),KD); D => C: (Encrypt(ND, KCD)); C => D: (Encrypt(ND-1, KCD));

  10. Attacking the Protocol • As seen previously: • Carla and Diane set up a secure session protected by KCD • Mallory, watches them do this and stores their messages • Mallory cryptanalyzes the session and recovers KCD • Mallory replays the old message containing KCD • Mallory can fool Diane into thinking she is talking “securely” to Carla

  11. Attacking the Protocol (cont) C => S: (C, D, NC); S => C: (Encrypt((NC, B, KCD, Encrypt((C,KCD),KD)),KC)); C => D: (Encrypt((C,KCD),KD); D => C: (Encrypt(ND, KCD)); C => D: (Encrypt(ND-1, KCD)); // Carla and Diane encrypt their messages using KCD // Mallory recovers KCD by analyzing the session C => S: (C, D, NC’); S => C: (Encrypt((NC’, B, KCD, Encrypt((C,KCD’),KD)),KC)); C => D: (Encrypt((C,KCD’),KD); // Mallory intercepts the above message and replaces it M => D: (Encrypt((C,KCD),KD); D => M: (Encrypt(ND’, KCD)); M => D: (Encrypt(ND’-1, KCD));

  12. Authentication and Key-Exchange Protocols • Yahalom C => D (C,NC); D => S (D,Encrypt((C,NC,ND),KD)); S => C (Encrypt((D,KCD,NC,ND),KC),Encrypt((C,KCD),KD)); C => D (Encrypt((C,KCD),KD),Encrypt(ND,KCD)); • Note: Diane is the first one to contact Sam who only sends one message to Carla

  13. Authentication and Key-Exchange Protocols • Denning and Sacco (public-key) • Carla sends a message to Sam including her name and Diane’s name • Sam replies with signed copies of both Carla and Diane’s public key C: => S(C,D); S: => C(Encrypt((C,CPublic,TS),SPriavte),Encrypt((D,DPublic,TS),SPriavte)); C: => D(Encrypt((C,CPublic,TS),SPriavte),Encrypt((D,DPublic,TS),SPriavte)); • Carla generates the session key, KCD, and signed a message containing it and a timestamp with her private key C: => D(Encrypt(Encrypt((KCD,TC),CPrivate),DPublic));

  14. Authentication and Key-Exchange Protocols • A weakness of the Denning and Sacco protocol • Harry can trick Diane into thinking that she is communicating with Carla when she is really communicating with Harry • Harry establishes a session key, KCH, with Carla C: => H(Encrypt(Encrypt((KCH,TC),CPrivate),HPublic)); • Harry decrypts Carla’s message and learns KCH • Harry encrypts Carla’s signed message with Diane’s public key, and sends the result to Diane claiming to be Carla H: => D(Encrypt(Encrypt((KCH,TC),CPrivate),DPublic)); • Diane will decrypt the message, check the signature and timestamp, and believe that she is talking to Carla with KCH as the session key

  15. Authentication and Key-Exchange Protocols • Fixing the Denning and Sacco protocol: • Add the other party’s name to the key exchange message: • C: => D(Encrypt(Encrypt((D,KCD,TC),CPrivate),DPublic));

More Related