Public Key Distribution and X 509 Wade Trappe
Public Key Distribution and X. 509 Wade Trappe
Distribution of Public Keys l There are several techniques proposed for the distribution of public keys: – – Public announcement Publicly available directory Public key authority Public key certificates
Public Announcement l Idea: Each person can announce or broadcast their public key to the world. l Example: People attach their PGP or RSA keys at the end of their emails. l 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 l l 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. l 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 l Idea: More security is achieved if the authority has tighter control over who gets the keys. l 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. l 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 4 A Step 1 Step 2 Step 5 Step 3 Step 6 Step 7 1. A Sends: {Request || Time 1} 2. PK Auth: Ed. Auth[ e. B|| {Request || Time 1}] 3. A Sends B: Ee. B(IDA||N 1) 4 and 5. B does steps 1 and 2. 6. B Sends: Ee. A(N 1||N 2) 7. A Sends: Ee. B(N 2) B
Public Key Certificates l l 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. l l 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 e. A securely to CA A Securely give e. B to CA Cert. B = Ed. Auth{Time 2||IDB||e. B} Cert. A = Ed. Auth{Time 1||IDA||e. A} Cert. A 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 l l X. 509 is a very commonly used public key certificate framework. Version The certificate structure and authentication protocols are used in: Algorithm & Parms – IP SEC – SSL – SET l X. 509 Certificate Format: – Version 1/2/3 – Serial is unique within the CA – First and last time of validity Cert Serial # Issuer Name Validity Time: Not before/after Subject Name PK Info: Algorithm, Parms, Key . . . Signature (w/ hash)
X. 509 Certificate Chaining l l l Its not feasible to have one CA for a large group of users. Suppose A knows CA X 1, B knows CA X 2. If A does not know X 2’s PK then Cert. X 2(B) is useless to A. If X 1 and X 2 have certified each other then A can get B’s PK by: – A obtains Cert. X 1(X 2) – A obtains Cert. X 2(B) – Because B has a trusted copy of X 2’s PK, A can verify B’s certificate and get B’s PK. l Certificate Chain: – {Cert. X 1(X 2)|| Cert. X 2(B)} l Procedure can be generalized to more levels. Cert. X 1(X 2) Cert. X 2(X 1) X 1 X 2 A B {Cert. X 1(X 2)|| Cert. X 2(B)}
- Slides: 10