Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
474,5 KB
Nội dung
Overview of Key Establishment Techniques: Key Distribution, Key Agreement and PKI Wade Trappe Lecture Overview We now begin our look at building protocols using the basic tools that we have discussed The discussion in this lecture will focus on issues of key establishment and the associated notion of authentication These protocols are not real, but instead are meant to serve just as a high-level survey Later lectures will go into specific protocols and will uncover practical challenges faced when implementing these protocols Key Establishment: The problem Securing communication requires that the data is encrypted before being transmitted Associated with encryption and decryption are keys that must be shared by the participants The problem of securing the data then becomes the problem of securing the establishment of keys Task: If the participants not physically meet, then how the participants establish a shared key? Two types of key establishment: – Key Agreement – Key Distribution Key Distribution Key Agreement protocols: the key isn’t determined until after the protocol is performed Key Distribution protocols: one party generates the key and distributes it to Bob and/or Alice (Shamir’s 3pass, Kerberos) Shamir’s Three-Pass Protocol: – Alice generates a ∈ Z* and Bob generates b ∈ Z* p p – A key K is distributed by: Alice K1 = K a mod p b K = K1 mod p a −1 mod p K3 = ( K ) Bob Calculates: b −1 mod p K = ( K3 ) Bob Basic TTP Key Distribution KDC Kb Ka Step Step Step Step Step A Sends: {Request || IDA || IDB || N1} KDC Sends: EKa[ KAB|| {Request || IDA || IDB || N1}||EKb(KAB, IDA)] A Sends: EKb(KAB, IDA) B Sends: EKAB(N2) A Sends: EKAB(f(N2)) Key Agreement In many scenarios, it is desirable for two parties to exchange messages in order to establish a shared secret that may be used to generate a key The Diffie-Hellman (DH) protocol is a basic tool used to establish shared keys in two-party communication Two parties, A and B, establish a shared secret by: The security of the DH scheme is based upon the intractibility of the Diffie-Hellman Problem: A → B : g a mod p ( ) B → A : g b mod p ( ) The Diffie-Hellman scheme can be extended to work on arbitrary groups (e.g Elliptic Curves) A: g b a mod p = g ab mod p B: g a b mod p = g ab mod p a Given a prime p, a generator g of Z* , and elements g mod p and g b mod p , p it is computationally difficult to find g ab mod p Intruder In The Middle The Intruder-in-the-Middle attack on Diffie-Hellman is based upon the following strategy to improve one’s chess ranking: – Eve challenges two grandmasters, and uses GM1’s moves against GM2 Eve can either win one game, or tie both games Eve has z ∈ Z* and can perform the Intruder-in-the-Middle attack by: p Alice Begins DH Calculates g a mod p g z mod p ( ) mod p K AE = g a z Encrypts data with KAE E K AE ( DATA ) Eve Calculates K AE , K BE Decrypts data with KAE, uses data and encrypts with KBE g b mod p g z mod p Bob Begins DH Calculates ( ) z K BE = g b mod p E K BE ( DATA ) Decrypts data with KBE Station-to-Station Protocol Digital signatures can be used to prevent this protocol failure (STS Protocol) A digital signature is a scheme that ties a message and its author together – Private sig( ) function and Public ver( ) function Alice g a mod p Bob ( ( g b mod p , E K sig B g b , g a Calculates ( )a sig B (g b , g a ) )) Calculates ( ) K= g a b mod p K = g b mod p Decrypts to get: Verifies sig ( ( E K sig A g a , g b )) Verifies sig N-to-N Group Key Establishment Many group scenarios require contributory key establishment protocols 1-to-1 Key Establishment: Diffie-Hellman (DH) protocol Two parties, A and B, establish a shared secret by: Extensions to B : g a mod p A → multi-user scenarios: B → A : g b mod p – Ingemarsson: Requires N-1 rounds and O(N2) exponentiations b a ab rounds a b – Burmester-Desmedt: Requires 2mod pbut full broadcast A : g mod p = g B : g mod p = g ab mod p – GDH (Steiner et al.): Requires N rounds and O(N) exp ( ) ( ) Butterfly Group Diffie-Hellman Example: α1 1x1 x1 u1 → u g g gmod p p p u1 → : : mod u→ u u : mod u u → :u: α 2g2x mod p p → u u g g x mod p u → 1 : mod x1 = α1α1x1mod p p p x2 2 mod g = g1x 2xmod x1 1= g x u1 u2 u3 u4 u5 u6 u7 u8 Can be extended to arbitrary radix b using Ingemarsson as the basic building block Total Rounds: TR = (b − 1) log b N Total Messages: TM ≈ (b − 1) N log b N Optimal radix in both cases is The Conference Tree Group key formation procedure is described by: – Communication flow diagram – Conference Tree Conference tree describes the subgroups and subgroup keys u1 u2 Kε u3 u4 K0 u5 u6 u7 u8 K00 K1 K01 K10 K11 K000 K001 K010 K011 K100 K101 K110 K111 Distribution of Public Keys There are several techniques proposed for the distribution of public keys: – Public announcement – Publicly available directory – Public key authority – Public key certificates Public Announcement Idea: Each person can announce or broadcast their public key to the world Example: People attach their PGP or RSA keys at the end of their emails Weakness: – No authenticity: Anyone can forge such an announcement – User B could pretend to be User A, but really announce User B’s public key Public Directory Service Idea: Have a public directory or “phone book” of public keys This directory is under the control/maintenance of a trusted third party (e.g the government) Involves: – Authority maintains a directory of {name, PK} – Each user registers public key Registration should involve authentication – A user may replace or update keys – Authority periodically publishes directory or updates to directory – Participants can access directory through secure channel Weaknesses: – If private key of directory service is compromised, then opponent can pretend to be directory service – Directory is a single point of failure Public Key Authority Idea: More security is achieved if the authority has tighter control over who gets the keys Assumptions: – Central authority maintains a dynamic directory of public keys of all users – Central authority only gives keys out based on requests – Each user knows the public key of the authority Weaknesses: – Public Key Authority is a single point of failure – User has to contact PK Authority, thus the PK Authority can be a bottleneck for service Public Key Authority, protocol PK Auth Step A Step Step Step Step Step Step A Sends: {Request || Time1} PK Auth: EdAuth[ eB|| {Request || Time1}] A Sends B: EeB(IDA||N1) and B does steps and B Sends: EeA(N1||N2) A Sends: EeB(N2) B Public Key Certificates Idea: Use certificates! Participants exchange keys without contacting a PK Authority in a way that is reliable Certificates contain: – A public key (created/verified by a certificate authority) – Other information Certificates are given to a participant using the authority’s private key A participant conveys its key information to another by transmitting its certificate Other parties can verify that the certificate was created/verified by the authority Weakness: – Requires secure time synchronization Public Key Certificates, overview Cert Auth Give eA securely to CA A Securely give eB to CA CertB = EdAuth{Time2||IDB||eB} CertA = EdAuth{Time1||IDA||eA} CertA Cert B Requirements: •Any participant can read a certificate to determine the name and public key of the certificate’s owner •Any participant can verify that the certificate originated from the certificate authority and is not counterfeit •Only the certificate authority can create and update certificates •Any participant can verify the currency of the certificate B X.509 PK Certificates X.509 is a very commonly used public key certificate framework Version The certificate structure and authentication protocols are used in: Cert Serial # – IP SEC – SSL – SET X.509 Certificate Format: – Version 1/2/3 – Serial is unique within the CA – First and last time of validity Algorithm & Parms Issuer Name Validity Time: Not before/after Subject Name PK Info: Algorithm, Parms, Key Signature (w/ hash) X.509 Certificate Chaining Its not feasible to have one CA for a large group of users Suppose A knows CA X1, B knows CA X2 If A does not know X2’s PK then CertX2(B) is useless to A If X1 and X2 have certified each other then A can get B’s PK by: – A obtains CertX1(X2) – A obtains CertX2(B) – Because B has a trusted copy of X2’s PK, A can verify B’s certificate and get B’s PK Certificate Chain: – {CertX1(X2)|| CertX2(B)} Procedure can be generalized to more levels CertX1(X2) CertX2(X1) X1 X2 A B {CertX1(X2)|| CertX2(B)} ... Two types of key establishment: – Key Agreement – Key Distribution Key Distribution Key Agreement protocols: the key isn’t determined until after the protocol is performed Key Distribution... N-to-N Group Key Establishment Many group scenarios require contributory key establishment protocols 1-to-1 Key Establishment: Diffie-Hellman (DH) protocol Two parties, A and B, establish... the keys Assumptions: – Central authority maintains a dynamic directory of public keys of all users – Central authority only gives keys out based on requests – Each user knows the public key of