10
Public Key Distribution and X.509 Public Key Distribution and X.509 Wade Trappe

Public Key Distribution and X.509

Embed Size (px)

DESCRIPTION

Public Key Distribution and X.509. Wade Trappe. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Public Key Distribution and X.509

Public Key Distribution and X.509Public Key Distribution and X.509

Wade Trappe

Page 2: Public Key Distribution and X.509

Distribution of Public KeysDistribution 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

Page 3: Public Key Distribution and X.509

Public AnnouncementPublic 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.

Page 4: Public Key Distribution and X.509

Public Directory ServicePublic 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.

Page 5: Public Key Distribution and X.509

Public Key AuthorityPublic 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.

Page 6: Public Key Distribution and X.509

Public Key Authority, protocolPublic Key Authority, protocol

PK Auth

ABStep 1Step 2

1. A Sends: {Request || Time1}

2. PK Auth: EdAuth[ eB|| {Request || Time1}]

Step 3

Step 6

3. A Sends B: EeB(IDA||N1)

Step 7

4 and 5. B does steps 1 and 2.

6. B Sends: EeA(N1||N2)

Step 4

Step 5

7. A Sends: EeB(N2)

Page 7: Public Key Distribution and X.509

Public Key CertificatesPublic 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.

Page 8: Public Key Distribution and X.509

Public Key Certificates, overview Public Key Certificates, overview

Cert Auth

A B

Give eA securely to CA

CertA = EdAuth{Time1||IDA||eA}

CertA

Cert B

Securely give eB to CA

CertB = EdAuth{Time2||IDB||eB}

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.

Page 9: Public Key Distribution and X.509

X.509 PK CertificatesX.509 PK Certificates

X.509 is a very commonly used public key certificate framework.

The certificate structure and authentication protocols are used in:– IP SEC– SSL– SET

X.509 Certificate Format:– Version 1/2/3– Serial is unique within the CA– First and last time of validity

Version

Cert Serial #

Algorithm & Parms

Issuer Name

Validity Time: Not before/after

Subject Name

PK Info: Algorithm, Parms, Key

. . .

Signature (w/ hash)

Page 10: Public Key Distribution and X.509

X.509 Certificate ChainingX.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.

A B

X1 X2

{CertX1(X2)|| CertX2(B)}

CertX1(X2) CertX2(X1)