7.1 pretty good privacy phil zimmerman (mit):

62
1 7.1 Pretty Good Privacy Phil Zimmerman (MIT): 1. Selected best available cryptographic algorithms (Table 7.1) 2. Integrated them into a general-purpose package 3. Made package and documentation readily available (“Freeware,” June 1991) 4. Agreed for company to provide a commercial version (Network Associates later let the agreement expire) Chapter 7 – Electronic Mail Security

Upload: alexandra-morton

Post on 03-Jan-2016

11 views

Category:

Documents


0 download

DESCRIPTION

Chapter 7 – Electronic Mail Security. 7.1 Pretty Good Privacy Phil Zimmerman (MIT):. 1. Selected best available cryptographic algorithms (Table 7.1). 2. Integrated them into a general-purpose package. 3. Made package and documentation readily available - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

1

7.1 Pretty Good Privacy

Phil Zimmerman (MIT):

1. Selected best available cryptographic algorithms (Table 7.1)

2. Integrated them into a general-purpose package

3. Made package and documentation readily available (“Freeware,” June

1991)

4. Agreed for company to provide a commercial version (Network Associates later let the agreement expire)

Chapter 7 – Electronic Mail Security

Page 2: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

2

Growth of PGP

Reasons:

1. readily available free versions

2. algorithms have survived public scrutiny and are considered extremely secure

3. wide range of applicability (different key lengths)

4. no government involvement

(3-year criminal investigation under Arms Export Control Act – abandoned in 1996 without indictment)

5. Internet Standard

(“OpenPGP,” RFCs 3156 and 4880 – November, 2007)

Page 3: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

3

Using PGP to Authenticate the Sender

Recall figure 3.2(b) for digital signatures:

Alice Bob

Page 4: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

4

Figure 7.1(a)

Alice Bob

Alice Bob

compression

Decompression

There will be an extra step – radix-64 encoding

Page 5: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

5

Although fig 7.1(a) shows the usual situation, with the signature attached to the message, detached signatures are supported by PGP

These can be useful:

► to check that no changes (viruses, etc.)

have been made in an executable program

► when several people, possibly at different locations,

need to sign a document

Unlike a physical signature, a digital signature does not need to be attached to the document. Because of the properties of the hash function, a given hash could apply to only one message (to a high degree of confidence).

Using PGP for confidentiality – next slide

Page 6: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

6

Recall Figure 3.9(a) for confidentiality:

BobAlice

Alice Bob

Figure 7.1(b)We discussed the basic idea in section 4.3 (page 116)

Compress before encryption

Session key not entire message

Page 7: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

7

What if we want both confidentiality and authentication?

2 possibilities:

On sending side (Alice):

► encryption before digital signature (sign the ciphertext)

► digital signature before encryption (sign the plaintext)

On receiving side (Bob):

► with first option if Bob wanted to retain evidence that Alice sent the message, he would have to retain the plaintext,

the ciphertext and the digital signature.

► with second option Bob would have to retain only the plaintext and the digital signature.

Figure 7.1(c)

Second option

Page 8: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

8

Similarly, we sign the uncompressed file, not the compressed file.

Compression:

Page 9: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

9

Page 10: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

10

E-mail compatibility - Radix-64 conversion:

Page 11: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

11

Table 7.9 Radix-64 Encoding

Page 12: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

12

Summary:

Page 13: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

13

Table 7.1 Summary of PGP Services

Page 14: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

14

Cryptographic Keys and Key Rings

PGP uses four types of key:

* one-time "session" (conventional) key

* public keys, private keys

* passphrase-based symmetric keys

Preview of Requirements:

1. Generate unpredictable session keys (section “session key generation”)

2. Accommodate multiple public/private key-pairs (section “key identifiers”)

3. File of own public/private key pairs and public keys of correspondents (section “key rings”)

Page 15: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

15

Session key generation

User types randomly into buffer (lab session #1)

Page 16: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

16

Key identifiers:

Users must be able to have multiple public/private key-pairs.

Sender (Alice) must be able to tell receiver (Bob)

which key-pair she is using.

How to identify?

Use least-significant 64 bits of public key (likely to be unique for user).

PGP message formats include the identifier of the key-pair being used.

Page 17: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

17

Format of transmitted message (assuming both authentication and confidentiality):

Sender Alice, receiver Bob

Page 18: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

18

Format of transmitted message

(continued):

Sequence of operations during sending.

Sequence during receiving

Page 19: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

19

Key rings:

“We have seen how key IDs are critical to the operation of PGP and that two key IDs are included in any message that includes both authentication and confidentiality.”

Recall figure 3.9(a):

Page 20: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

20

Private key ring (“my” key-pairs)

information:

Private key stored encrypted with

passphrase

<[email protected]>

<[email protected]>

“Private Key Ring” also contains “my” public keys

Page 21: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

21

Procedure for encrypting the private keys:

1. User selects the passphrase to be used

2. When system generates a new public/private key-pair:

► it asks user for the passphrase

► using SHA-1, passphrase is hashed

► passphrase itself is then deleted (overwritten).

3. System encrypts private key using CAST-128 with 128 bits of the hash as key;

► hash then deleted (overwritten).

Whenever the user wishes to use the private key, (s)he must provide the passphrase.

Page 22: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

22

Public key ring:

Defer discussionDefer

The owner’s public key(s) appear on both key rings

Page 23: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

23

How key rings are used by Alice in generating a message to Bob:

Page 24: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

24

Bob receives the PGP message from Alice:

Page 25: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

25

Public-key management

What if Darth creates his own public/private key-pair, then convinces Alice that his (Darth’s) public key is Bob’s?

“The whole business of protecting public keys from tampering is the single most difficult problem in practical public-key applications. It is the ‘Achilles heel’ of public-key cryptography, and a lot of software complexity is tied up in solving this one problem.”

PGP does not require a rigid public-key management scheme.

In contrast, we shall see that S/MIME requires X.509 public-key certificates.

Darth can send messages to Alice, signed with his private key, pretending they are from Bob.

When Alice checks signature, it will appear to be OK.

Similarly, if Alice sends an encrypted message to Bob, Darth can intercept and read it (Bob cannot read it).

Page 26: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

26

Approaches to Public-Key Management

How can Alice get Bob’s key and be sure it really is his?

1. Alice can physically meet Bob and receive his key on a USB drive.

2. If Alice can recognize Bob’s voice over the phone, she can ask him to dictate his public key in radix-64 form (or he can e-mail the public key, Alice can compute the hash and call Bob to confirm the hash).

3. Alice can obtain a signed copy of Bob’s public key from a mutually- trusted friend (the “introducer”).

4. Alice can obtain Bob’s public key from a certificate issued by a CA (in this case the CA serves as the introducer).

For cases 3 and 4, Alice would already have a copy of the introducer’s public key and trust that this key is valid. Ultimately, it is up to Alice to assign a degree of trust to anyone who is to act as an introducer.

Page 27: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

27

Use of Trust

PGP provides a convenient means of using trust.

Recall the public key ring:

Earlier, when Alice entered a new key in her public-key ring, PGP asked her to assign a level of trust to the owner of this key (if it’s her own public key, value is ultimate trust). This was entered in the Owner Trust field and will be used if Alice later receives keys signed by this person.

Page 28: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

28

When Alice enters another new public key, one or more signatures may be attached (in the Signature(s) field). Alice’s PGP will search her public-key ring to see if the author of this signature is already on her key ring. If so PGP will copy her earlier assessment of this person’s trust into the Signature Trust field for this person (otherwise the value of this field will be unknown user).

PGP will compute the weighted average of the Signature Trust values and assign this to the Key Legitimacy field. This field summarized the confidence that Alice can have that this public key actually belongs to the person in the UserID field.

Page 29: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

29

Possible values of the various trust fields.

Table 7.2 Contents of Trust Flag Byte

Page 30: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

30

PGP “Web of Trust”

The idea behind the various trust fields in the public key ring is to establish a “Web of Trust” among a community of users.

If Alice trusts only Abe to sign certificates, then she won’t believe certificates from Martha or Emily are genuine. If she also trusts Bob’s judgment about signing certificates, she can trust Emily’s certificate; if she also trusts Carl, she can trust everyone’s certificate.

Page 31: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

31

This may be OK for informal use, but clearly corporate use requires something more formal – this led to the development of S/MIME, which can be viewed as a formalization of PGP, requiring use of X.509 certificates.

Page 32: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

32

Recall from CS x34:

Internet E-mail standards were published in two parts in 1982:

RFC 822: STANDARD FOR THE FORMAT OF

ARPA INTERNET TEXT MESSAGES

by David H. Crocker

RFC 821: SIMPLE MAIL TRANSFER PROTOCOL

by Jonathan B. Postel

(Updated as RFC 2822 and 2821 (April, 2001))

Overview of E-mail:

The message is constructed under RFC 822, then passed to SMTP (RFC 821) for transmission.

7.2 S/MIME - preliminary material on RFC822/MIME

S/MIME includes a secure development of RFC 822/MIME

Page 33: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

33

Message Formats

RFC 822 messages consist of lines of ASCII text, ending with <CR> <LF>

maximum 1000 characters

There are three sections:

■ header fields

■ a blank line (a line with nothing except <CR><LF>

■ optionally, the message body.

Page 34: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

34

Headers

■ contain readable text (ASCII)

■ are divided into lines

■ each line of form <keyword> : <value>

Keywords To and From are required, others optional

Page 35: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

35

MIME – Multipurpose Internet Mail Extensions (RFC 1521, 1993)

In the body of the message we would like to be able to include items such as:

■ messages in languages with accents

■ Messages in non-Latin alphabets (Arabic, Russian, Hebrew)

■ Messages in languages without alphabets (Chinese and Japanese)

■ Messages not containing any kind of text (audio and video)

Such material may contain an arbitrary bit string.

Sender must “disguise” non-ASCII information as ASCII

This will be reversed by the receiver, to give the bit string.

RFC 822 states that the message can consist only of ASCII text.

Page 36: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

36

If you receive this ASCII message how do you know what it is?

MIME header to the rescue!

Now you know that the message is a bit string that the sender has converted to radix-64 – you can recover the bit string, but you still don’t know what it is (image? Audio?)

MIME header: Content-Type says “image/jpeg”

which tells you how to process the received message.

From point of view of receiver:

Example: Content-Transfer-Encoding says “radix-64 conversion”

Page 37: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

37

Page 38: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

38S/MIME will add new subtypes to Application and Multipart

Page 39: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

39

Page 40: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

40

End of preliminary material on MIME.

Recall that with PGP we had ability to:

► encrypt data for confidentiality

► digitally-sign data for authentication

► do both together

S/MIME has equivalent functionality.

Page 41: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

41

S/MIME Functionality

► Enveloped data: encrypted content and encryption keys

(can be interpreted only by recipient with S/MIME capability, because it uses a new S/MIME content/subtype – p252)

► Signed data: message plus digital signature

(can be interpreted only by recipient with S/MIME capability, because it uses a new S/MIME content/subtype)

► Clear-signed data: message ASCII only, signature radix-64

(recipients without S/MIME can view message, but cannot verify the signature – it uses a new S/MIME

content/subtype)

► Signed and enveloped data: nested entities as in PGP

Page 42: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

42

S/MIME Functionality - continued

► Enveloped data: encrypted content plus encryption keys

PGP equivalent: Figure 7.1(b) plus radix-64 conversion

Radix-64 conversion

Page 43: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

43

S/MIME Functionality - continued

► Signed data: message plus digital signature

(can be viewed only by recipient with S/MIME capability)

PGP equivalent: figure 7.1(a), plus radix-64 conversion

Radix-64 conversion after compression

► Clear-signed data function: only the digital signature is converted to radix-64; the message is “in the clear”

Page 44: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

44

S/MIME Functionality - continued

► Signed and enveloped data

PGP equivalent: figure 7.1(c)

Page 45: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

45

(El Gamal)

Sending

Table 7.6 Cryptographic Algorithms Used in S/MIME

Page 46: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

46

S/MIME Messages

S/MIME makes use of a number of new MIME subtypes. Most of the new subtypes use the designation PKCS – “public key cryptographic specifications” issued by RSA Labs and contributed to the S/MIME effort.

MIME S/MIME

**

*

*

Table 7.7 S/MIME Content Types

To participate fully in S/MIME, sender and receiver must understand the new S/MIME subtypes

Page 47: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

47

EnvelopedData - preliminary

Recall PGP figure 7.1(b) – sending side:

Page 48: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

48

envelopedData

1. Generates a pseudorandom session key Ks for the chosen

symmetric encryption algorithm.

2. For each recipient, encrypts the session key with the

recipient’s public RSA key PUb

3. For each recipient prepares the RecipientInfo block that contains

► an identifier of the recipient’s public-key certificate

► an identifier of the algorithm used to encrypt the session key

► the encrypted session key

4. Encrypts the message content with the session key.

In preparing this, the sender:

Page 49: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

49

RecipientInfo/ Identifier of recipient’s public-key certificate:

Identifier

This will be taken from an X.509 certificate.

Page 50: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

50

Page 51: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

51

Page 52: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

52

To recover the encrypted message, the PGP recipient:

1. Strips off the radix-64 conversion (not shown above);

2. Uses his/her private key to decrypt the session key;

3. Decrypts the message, using the session key.

Again recall PGP figure 7.1(b) - receiving side:

S/MIME receiver does same things (top page 253)

Page 53: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

53

signedData – preliminary:

Recall PGP figure 7.1(a) – sending side:

Page 54: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

54

Similarly, the steps for preparing a signedData MIME entity are:

1. Select a message digest algorithm (SHA or MD5);

2. Compute the message digest of the content to be signed;

3. Encrypt the message digest with the signer’s private key PRa ;

4. Prepare the SignerInfo block, containing:

► the signer’s public-key certificate; (? Identifier?)

► an identifier of the message digest algorithm;

► an identifier of the algorithm used to encrypt the message digest;

► the encrypted message digest.

signedData

Page 55: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

55

signedData - continued

Page 56: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

56

signedData - continued

For receiver, first task is to reverse the base64 encoding

Page 57: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

57

SignedData – continued

Recall PGP figure 7.1(a) – receiving side:

To recover the signed message, and verify the signature, the PGP recipient:

1. Strips off the base64 conversion (not shown above);

2. Uses the signer’s public key to decrypt the message digest;

3. Recomputes the message digest to verify the signature.

Again, the S/MIME recipient does the same things (page 253).

Page 58: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

58

S/MIME Functionality: Clear-signed Data

The message is sent as a MIME multipart message, with the text “in the clear” in the first part and the signature in the second part – this is a detached signature.

Recipients without S/MIME capability can view message, but cannot verify the signature.

Page 59: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

59The second part is a detached signature

Page 60: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

60

S/MIME Certificate Processing

S/MIME uses X.509 version 3

“Hybrid between a strict X.509 hierarchy and PGP’s web of trust.”

S/MIME does not set up a global system like the Domain Name System, to retrieve public-key certificates with minimal effort.

Rather, each user, or user group, takes responsibility for obtaining the certificates of individuals with whom they want to correspond securely.

User Agent Role

► key-pair generation

► registration of public key with a CA, which will issue X.509 certificate

(figure 4.4)

► certificate storage and retrieval (equivalent of PGP public key

ring)

Page 61: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

61

VeriSign Public-Key Certificate Classes

Table 7.8 Verisign Public-Key Certificate Classes

Page 62: 7.1  Pretty Good Privacy Phil Zimmerman  (MIT):

62

End of Chapter 7

Omit Section 7.3 Domainkeys Identified Mail