Week 4 - Wednesday.  What did we talk about last time?  RSA algorithm.

Slides:



Advertisements
Similar presentations
CMSC 414 Computer (and Network) Security Lecture 22 Jonathan Katz.
Advertisements

Key Management. Shared Key Exchange Problem How do Alice and Bob exchange a shared secret? Offline – Doesnt scale Using public key cryptography (possible)
ECE454/CS594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2011.
Last Class: The Problem BobAlice Eve Private Message Eavesdropping.
CIS 725 Key Exchange Protocols. Alice ( PB Bob (M, PR Alice (hash(M))) PB Alice Confidentiality, Integrity and Authenication PR Bob M, hash(M) M, PR Alice.
1 Security in Wireless Protocols Bluetooth, , ZigBee.
1 Digital Signatures & Authentication Protocols. 2 Digital Signatures have looked at message authentication –but does not address issues of lack of trust.
Computer Security Key Management
Mar 12, 2002Mårten Trolin1 This lecture Diffie-Hellman key agreement Authentication Certificates Certificate Authorities SSL/TLS.
CSCI283 Fall 2005 GWU All slides from Bishop’s slide set Public Key Infrastructure (PKI)
 Authorization via symmetric crypto  Key exchange o Using asymmetric crypto o Using symmetric crypto with KDC  KDC shares a key with every participant.
 Public key (asymmetric) cryptography o Modular exponentiation for encryption/decryption  Efficient algorithms for this o Attacker needs to factor large.
ECOMMERCE TECHNOLOGY FALL 2003 COPYRIGHT © 2003 MICHAEL I. SHAMOS Cryptography.
Chap 3: Key exchange protocols In most systems, we distinguish the short term keys from the long term ones: –A short term key (session key) is used to.
Authenticated Key Exchange. Lecture Outline Example of how poor security design can cause problems Design Principles for building security protocols Key.
Chapter 9: Key Management
Key Management/Distribution. Administrivia Snafu on books Probably best to buy it elsewhere Paper assignment and first homework Next week (9/24)
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 7 Wenbing Zhao Department of Electrical and Computer Engineering.
1 Key Management CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute April 1, 2004.
CMSC 414 Computer and Network Security Lecture 22 Jonathan Katz.
EEC 688/788 Secure and Dependable Computing Lecture 7 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
Authentication Advanced Software Engineering (CSE870) Instructor: Dr. B. Cheng Contact info: chengb at cse dot msu dot edu Eduardo Diaz Dan Fiedler Andres.
Computer Security1 Bishop: Chapter 9 Key Management.
ELECTRONIC PAYMENT SYSTEMSFALL 2001COPYRIGHT © 2001 MICHAEL I. SHAMOS Electronic Payment Systems Lecture 6 Epayment Security II.
Network Security – Part 2 V.T. Raja, Ph.D., Oregon State University.
Slide #9-1 Chapter 9: Key Management Session and Interchange Keys Key Exchange Cryptographic Key Infrastructure Storing and Revoking Keys Digital Signatures.
Alexander Potapov.  Authentication definition  Protocol architectures  Cryptographic properties  Freshness  Types of attack on protocols  Two-way.
Page 1 Secure Communication Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Bob can sign a message using a digital signature generation algorithm
Part Two Network Security Applications Chapter 4 Key Distribution and User Authentication.
Network Security – Part 2 (Continued) Lecture Notes for May 8, 2006 V.T. Raja, Ph.D., Oregon State University.
Symmetric versus Asymmetric Cryptography. Why is it worth presenting cryptography? Top concern in security Fundamental knowledge in computer security.
How cryptography is used to secure web services Josh Benaloh Cryptographer Microsoft Research.
1 Chapter 9: Key Management All algorithms we have introduced are based on one assumption: keys have been distributed. But how to do that? Key generation,
Chapter 3: Basic Protocols Dulal C. Kar. Key Exchange with Symmetric Cryptography Session key –A separate key for one particular communication session.
Security protocols  Authentication protocols (this lecture)  Electronic voting protocols  Fair exchange protocols  Digital cash protocols.
Key Management. Session and Interchange Keys  Key management – distribution of cryptographic keys, mechanisms used to bind an identity to a key, and.
Lecture 13 Page 1 Advanced Network Security Authentication and Authorization in Local Networks Advanced Network Security Peter Reiher August, 2014.
Chapter 3 (B) – Key Management; Other Public Key Cryptosystems.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
Courtesy of Professors Chris Clifton & Matt Bishop INFSCI 2935: Introduction of Computer Security1 Nov 4, 2003 Introduction to Computer Security Lecture.
Lecture 16: Security CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9.
Digital Signatures, Message Digest and Authentication Week-9.
14.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 14 Entity Authentication.
Lecture 5.2: Key Distribution: Private Key Setting CS 436/636/736 Spring 2012 Nitesh Saxena.
6 June Lecture 2 1 TU Dresden - Ws on Proof Theory and Computation Formal Methods for Security Protocols Catuscia Palamidessi Penn State University,
Protocols for public-key management. Key management –two problems Distribution of public keys (for public- key cryptography) Distribution of secret keys.
Week 4 - Friday.  What did we talk about last time?  Snow day  But you should have read about  Key management.
Using Cryptography for Network Security Common problems: –Authentication - A and B want to prove their identities to one another –Key-distribution - A.
31.1 Chapter 31 Network Security Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
15-499Page :Algorithms and Applications Cryptography I – Introduction – Terminology – Some primitives – Some protocols.
A A E E D D C C B B # Symmetric Keys = n*(n-1)/2 F F
1 Chapter 10: Key Management in Public key cryptosystems Fourth Edition by William Stallings Lecture slides by Lawrie Brown (Modified by Prof. M. Singhal,
The School of Electrical Engineering and Computer Science (EECS) CS/ECE Network Security Dr. Attila Altay Yavuz Authentication Protocols (I): Secure Handshake.
Network Security Continued. Digital Signature You want to sign a document. Three conditions. – 1. The receiver can verify the identity of the sender.
Key Management Network Systems Security Mort Anvari.
Csci5233 Computer Security1 Bishop: Chapter 10 Key Management.
Week 4 - Friday.  What did we talk about last time?  Public key cryptography  A little number theory.
1 Authenticated Key Exchange Rocky K. C. Chang 20 March 2007.
Lecture 9 Overview. Digital Signature Properties CS 450/650 Lecture 9: Digital Signatures 2 Unforgeable: Only the signer can produce his/her signature.
Fall 2006CS 395: Computer Security1 Key Management.
Pertemuan #8 Key Management Kuliah Pengaman Jaringan.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Fourth Edition by William Stallings Lecture slides by Lawrie Brown
Chapter 9. Key management
Web Applications Security Cryptography 1
Key Management Session and Interchange Key Key Exchange
Computer Communication & Networks
Diffie/Hellman Key Exchange
Presentation transcript:

Week 4 - Wednesday

 What did we talk about last time?  RSA algorithm

 Public key cryptography would come crashing down if  Advances in number theory could make RSA easy to break  Quantum computers could make it easy to factor large composites

 Choose your primes carefully  p < q < 2p  But, the primes can't be too close together either  Some standards insist that p and q are strong primes, meaning that p – 1 = 2m and p + 1 = 2n where m and n have large prime factors  There are ways to factor poorly chosen pairs of primes  Pad your data carefully  Take the example of a credit card number  If you know a credit card number is encrypted using RSA using a public n and an e of 3, how do you discover the credit card number?

 Once you have great cryptographic primitives, managing keys is still a problem  How do you distribute new keys?  When you have a new user  When old keys have been cracked or need to be replaced  How do you store keys?  As with the One Time Pad, if you could easily send secret keys confidentially, why not send messages the same way?

 We will refer to several schemes for sending data  Let X and Y be parties and Z be a message  { Z } k means message Z encrypted with key k  Thus, our standard notation will be:  X  Y: { Z } k  Which means, X sends message Z, encrypted with key k, to Y  X and Y will be participants like Alice and Bob and k will be a clearly labeled key  A || B means concatenate message A with B

 Typical to key exchanges is the idea of interchange keys and session keys  An interchange key is a key associated with a particular user over a (long) period of time  A session key is a key used for a particular set of communication events  Why have both kinds of keys?

 If only a single key (instead of interchange and session keys) were used, participants are more vulnerable to:  Known plaintext attacks (and potentially chosen plaintext attacks)  Attacks requiring many copies of encrypted material for comparison  Replay attacks in which old encrypted data is sent again from a malicious party  Forward search attacks in which a user computes many likely messages using a public key and thereby learns the contents of such a message when it is sent

 To be secure, a key exchange whose goal is to allow secret communication from Alice to Bob must meet this criteria: 1. Alice and Bob cannot transmit their key unencrypted 2. Alice and Bob may decide to trust a third party (Cathy or Trent) 3. Cryptosystems and protocols must be public, only the keys are secret

 If Bob and Alice have no prior arrangements, classical cryptosystems require a trusted third party Trent  Trent and Alice share a secret key k Alice and Trent and Bob share a secret key k Bob  Here is the protocol: 1. Alice  Trent: {request session key to Bob} k Alice 2. Trent  Alice: { k session } k Alice || { k session } k Bob 3. Alice  Bob: { k session } k Bob

 Unfortunately, this protocol is vulnerable to a replay attack  (Evil user) Eve records { k session } k Bob sent in step 3 and also some message enciphered with k session (such as "Deposit $500 in Dan's bank account")  Eve can send the session key to Bob and then send the replayed message  Maybe Eve is in cahoots with Dan to get him paid twice  Eve may or may not know the contents of the message she is sending  The real problem is no authentication

 We modify the protocol to add random numbers (called nonces) and user names for authentication 1. Alice  Trent: { Alice || Bob || rand 1 } 2. Trent  Alice: { Alice || Bob || rand 1 || k session || {Alice || k session }k Bob } k Alice 3. Alice  Bob: { Alice || k session }k Bob 4. Bob  Alice: { rand 2 } k session 5. Alice  Bob: { rand 2 – 1 } k session

 Needham-Schroeder assumes that all keys are secure  Session keys may be less secure since they are generated with some kind of (possibly predictable) pseudorandom generator  If Eve can recover a session key (maybe after a great deal of computational work), she can trick Bob into thinking she's Alice as follows: 1. Eve  Bob: { Alice || k session }k Bob 2. Bob  Alice: { rand 3 } k session [intercepted by Eve] 3. Eve  Bob: { rand 3 – 1 } k session

 Denning and Sacco use timestamps (T) to let Bob detect the replay 1. Alice  Trent: { Alice || Bob || rand 1 } 2. Trent  Alice: { Alice || Bob || rand 1 || k session || {Alice || T || k session }k Bob } k Alice 3. Alice  Bob: { Alice || T || k session }k Bob 4. Bob  Alice: { rand 2 } k session 5. Alice  Bob: { rand 2 – 1 } k session  Unfortunately, this system requires synchronized clocks and a useful definition of when timestamp T is "too old"

 The Otway-Rees protocol fixes these problem by using a unique integer num to label each session 1. Alice  Bob: num || Alice || Bob || { rand 1 || num || Alice || Bob } k Alice 2. Bob  Trent: num || Alice || Bob || {rand 1 || num || Alice || Bob } k Alice || { rand 2 || num || Alice || Bob } k Bob 3. Trent  Bob: num || { rand 1 || k session } k Alice || { rand 2 || k session } k Bob 4. Bob  Alice: num || { rand 1 || k session } k Alice

 Strange as it seems, these key exchange protocols are actually used  Kerberos was created at MIT as a modified Needham- Schroeder protocol (with timestamps)  Originally used to control access to network services for MIT students and staff  Current versions of Windows use a modified version of Kerberos for authentication  Many Linux and Unix implementations have an implementation of Kerberos  Kerberos uses a central server that issues tickets to users which give them the authority to access a service on some other server

 Suddenly, the sun comes out!  Public key exchanges should be really easy  The basic outline is: 1. Alice  Bob: { k session } e Bob  e Bob is Bob's public key  Only Bob can read it, everything's perfect!  Except…  There is still no authentication

 Alice only needs to encrypt the session key with her private key  That way, Bob will be able to decrypt it with her public key when it arrives  New protocol: 1. Alice  Bob: {{ k session } d Alice }e Bob  Any problems now?

 A vulnerability arises if Alice needs to fetch Bob's public key from a public server Peter  Then, Eve can cause problems  Attack: 1. Alice  Peter: Send me Bob's key [intercepted by Eve] 2. Eve  Peter: Send me Bob's key 3. Peter  Eve: e Bob 4. Eve  Alice: e Eve 5. Alice  Bob: { k session } e Eve [intercepted by Eve] 6. Eve  Bob { k session } e Bob

 The previous man in the middle attack shows a significant problem  How do we know whose public key is whose?  We could sign a public key with a private key, but then…  We would still be dependent on knowing the public key matching the private key used for signing  It's a massive chicken and egg or bootstrapping problem

 A typical approach is to create a long chain of individuals you trust  Then, you can get the public key from someone you trust who trusts someone else who… etc.  This can be arranged in a tree layout, with a central root certificate everyone knows and trusts  This system is used by X.509  Alternatively, it can be arranged haphazardly, with an arbitrary web of trust  This system is used by PGP, which incorporates different levels of trust

 What magic happens when you type your password into…  Windows or Unix to log on?  Amazon.com to make a purchase?  A Twilight fan site so that you can post on the forums?  A genie from the 8 th dimension travels back in time and checks to see what password you originally created

 The password is checked against a file on a computer  But, how safe is the whole process?  Twilight fan site may not be safe at all  Amazon.com is complicated, much depends on the implementation of public key cryptography  What about your Windows or Unix computer?

 Your computer needs to be able read the password file to check passwords  But, even an administrator shouldn’t be able to read everyone’s passwords  Hash functions to the rescue!

 Cryptographic hash functions

 Read Section 2.8  Keep working on Project 1  Assignment 2 is assigned