PROVING WHO YOU ARE TLS & THE PKI CMSC 414 MAR 29 2018 - - PowerPoint PPT Presentation

proving who you are tls the pki
SMART_READER_LITE
LIVE PREVIEW

PROVING WHO YOU ARE TLS & THE PKI CMSC 414 MAR 29 2018 - - PowerPoint PPT Presentation

PROVING WHO YOU ARE TLS & THE PKI CMSC 414 MAR 29 2018 RECALL OUR PROBLEM WITH DIFFIE-HELLMAN The two communicating parties thought, but did not confirm , that they were talking to one another. Therefore, they were vulnerable to MITM


slide-1
SLIDE 1

PROVING WHO YOU ARE
 TLS & THE PKI

CMSC 414

MAR 29 2018

slide-2
SLIDE 2

RECALL OUR PROBLEM WITH DIFFIE-HELLMAN

The two communicating parties thought, but did not confirm, that they were talking to one another. Therefore, they were vulnerable to MITM attacks. Certificates allow us to verify with whom we are communicating. We will solve this by incorporating public key cryptography

slide-3
SLIDE 3

Back to authentication

How can we know it was
 really who posted PK?

slide-4
SLIDE 4

Back to authentication

Generate public/private key pair (PK,SK); publicize PK How can we know it was
 really who posted PK?

slide-5
SLIDE 5

Back to authentication

Alice Bob KAT KAT KBT KBT E(KAT, msg || to:Bob) E(KBT, msg || from:Alice) Generate public/private key pair (PK,SK); publicize PK How can we know it was
 really who posted PK?

slide-6
SLIDE 6

Back to authentication

Alice Bob KAT KAT KBT KBT E(KAT, msg || to:Bob) E(KBT, msg || from:Alice) Generate public/private key pair (PK,SK); publicize PK How can we know it was
 really who posted PK? Can we achieve authentication
 without Trent in the middle of every message?

slide-7
SLIDE 7

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems) (PKT, SKT) Trent

slide-8
SLIDE 8

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems) (PKT, SKT) Trent PKT PKT

slide-9
SLIDE 9

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems)

  • 2. Alice generates a public/private

key pair and asks Trent to bind her PKA to her identity (PKT, SKT) (PKA, SKA) Trent PKT PKT

slide-10
SLIDE 10

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems)

  • 2. Alice generates a public/private

key pair and asks Trent to bind her PKA to her identity (PKT, SKT) (PKA, SKA) Trent vets Alice Trent PKT PKT

slide-11
SLIDE 11

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems)

  • 2. Alice generates a public/private

key pair and asks Trent to bind her PKA to her identity (PKT, SKT) (PKA, SKA) Trent vets Alice Trent

  • 3. Trent signs a message (with SKT): 


“The owner of the secret key corresponding to PKA is Alice” PKT PKT

slide-12
SLIDE 12

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems)

  • 2. Alice generates a public/private

key pair and asks Trent to bind her PKA to her identity (PKT, SKT) (PKA, SKA) Trent vets Alice Trent

  • 3. Trent signs a message (with SKT): 


“The owner of the secret key corresponding to PKA is Alice” This message + sig = Certificate PKT PKT

slide-13
SLIDE 13

Authentication with public keys

Alice Bob

  • 1. Trent’s public key is widely

disseminated (pre-installed in browsers/operating systems)

  • 2. Alice generates a public/private

key pair and asks Trent to bind her PKA to her identity (PKT, SKT) (PKA, SKA) Trent vets Alice Trent

  • 3. Trent signs a message (with SKT): 


“The owner of the secret key corresponding to PKA is Alice” This message + sig = Certificate Alice = PKA PKT PKT

slide-14
SLIDE 14

Authentication with public keys

Alice Bob

  • 4. Alice makes her certificate


publicly available
 (or Bob simply asks for it) (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT

slide-15
SLIDE 15

Authentication with public keys

Alice Bob

  • 4. Alice makes her certificate


publicly available
 (or Bob simply asks for it) (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA

slide-16
SLIDE 16

Authentication with public keys

Alice Bob

  • 4. Alice makes her certificate


publicly available
 (or Bob simply asks for it)

  • 5. Bob verifies the certificate


using PKT (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA

slide-17
SLIDE 17

Authentication with public keys

Alice Bob

  • 4. Alice makes her certificate


publicly available
 (or Bob simply asks for it)

  • 5. Bob verifies the certificate


using PKT (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA If Bob trusts Trent, then 
 Bob trusts that he properly
 vetted Alice, and thus
 that her public key is PKA

slide-18
SLIDE 18

Authentication with public keys

Alice Bob

  • 4. Alice makes her certificate


publicly available
 (or Bob simply asks for it)

  • 5. Bob verifies the certificate


using PKT (PKT, SKT) (PKA, SKA) PKT Trent

  • 6. Bob (via hybrid encryption)


sends a message to Alice
 using her public key PKA Alice = PKA PKT Alice = PKA If Bob trusts Trent, then 
 Bob trusts that he properly
 vetted Alice, and thus
 that her public key is PKA

slide-19
SLIDE 19

Authentication with public keys

Alice Bob (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA Trent vets Alice Properties

slide-20
SLIDE 20

Authentication with public keys

Alice Bob (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA Trent vets Alice Trent need be online only when giving out certificates, not any time users want to
 communicate with one another Properties

slide-21
SLIDE 21

Authentication with public keys

Alice Bob (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA Trent vets Alice Trent need be online only when giving out certificates, not any time users want to
 communicate with one another Alice and Bob can communicate
 in an authenticated manner
 without having to go through Trent Properties

slide-22
SLIDE 22

Authentication with public keys

Alice Bob (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA

  • 1. Do not read messages
  • 2. Do not alter messages
  • 3. Do not forge messages
  • 4. Do not go offline

Trust assumptions from our
 symmetric key protocol: Trent vets Alice

slide-23
SLIDE 23

Authentication with public keys

Alice Bob (PKT, SKT) (PKA, SKA) PKT Trent Alice = PKA PKT Alice = PKA

  • 1. Do not read messages
  • 2. Do not alter messages
  • 3. Do not forge messages
  • 4. Do not go offline

Trust assumptions from our
 symmetric key protocol: Trent vets Alice

  • 1. Correctly vet users

Trust assumptions in this
 public key protocol: (Some more in practice…)

slide-24
SLIDE 24

TLS/SSL

  • TLS (Transport Layer Security)
  • A suite of protocols to provide secure communication
  • Confidentiality by applying block & stream ciphers
  • Integrity with MACs
  • Authenticity with certificates
  • Predecessor: SSL (secure sockets layer)
  • TLS was proposed as an upgrade
  • All versions of SSL are considered insecure (recently, the

POODLE—padding oracle—attack)

Host A Host B

TCP/IP TLS or SSL

TCP/IP: Host A and B can
 send packets to one another TLS/SSL: operate “over” TCP/IP to
 ensure security/authenticity

slide-25
SLIDE 25

TLS/SSL protocol (high level)

Browser

(initiates connection)

Server

(authenticates itself)

~~~~~~~Switch to negotiated cipher~~~~~~~

Data transmission Version, crypto options, nonce Client hello Version, crypto options, nonce, Signed certificate containing
 the server’s public key PKs Server hello + server cert (PKs) Server key exchange (when using DH) PreMaster secret encrypted with server’s PKs Client key exchange

Compute K based


  • n nonces &


PreMaster Compute K based


  • n nonces &


PreMaster

slide-26
SLIDE 26

(Credit: CloudFlare)

Only the server with the private key should be able to decrypt

slide-27
SLIDE 27

(Credit: CloudFlare)

Only the server with the private key should be able to sign

slide-28
SLIDE 28

AUTHENTICATED DIFFIE-HELLMAN

Both of these serve as a “challenge/response” protocol: The client is “challenging” the server to prove that it knows the secret key
 corresponding to the public key in the certificate The server is providing a “zero-knowledge proof”: The server proves that it knows the secret key
 without having to reveal the secret key itself The key property that makes this work:
 The only person who knows the secret key is the entity in the certificate

slide-29
SLIDE 29

Certificate revocation

  • 3. Trent signs a message (with SKT): 


“The owner of the secret key corresponding to PKA is Alice” This message + sig = Certificate Put another way: “The only person who knows SKA is Alice” What happens if Alice’s key gets compromised? (Stolen, accidentally revealed, …)

slide-30
SLIDE 30

Certificate revocation

Alice (PKT, SKT) Trent Please revoke 
 my certificate
 (ID #3912…)

slide-31
SLIDE 31

Certificate revocation

Alice (PKT, SKT) Trent Please revoke 
 my certificate
 (ID #3912…) Trent signs a message (with SKT): 


“Certificate ID #3912… is
 no longer valid, as of April 5, …”

slide-32
SLIDE 32

Certificate revocation

Alice (PKT, SKT) Trent Please revoke 
 my certificate
 (ID #3912…) Trent signs a message (with SKT): 


“Certificate ID #3912… is
 no longer valid, as of April 5, …” This message + sig = revocation

slide-33
SLIDE 33

Certificate revocation

Alice (PKT, SKT) Trent Please revoke 
 my certificate
 (ID #3912…) Trent signs a message (with SKT): 


“Certificate ID #3912… is
 no longer valid, as of April 5, …” This message + sig = revocation Bob Bob obtains revocation information

slide-34
SLIDE 34

Obtaining revocation data

Trent Certificate Revocation Lists (CRLs) “Certificate ID #3912… is
 no longer valid, as of April 5, …” A (often large) signed list of revocations

slide-35
SLIDE 35

Obtaining revocation data

Trent Certificate Revocation Lists (CRLs) “Certificate ID #3912… is
 no longer valid, as of April 5, …” A (often large) signed list of revocations Bob Browsers and OSes


  • ccasionally download CRLs
slide-36
SLIDE 36

Obtaining revocation data

Trent Certificate Revocation Lists (CRLs) “Certificate ID #3912… is
 no longer valid, as of April 5, …” A (often large) signed list of revocations Bob Browsers and OSes


  • ccasionally download CRLs

Disincentive: CRLs can be large,
 so it takes time & bandwidth

slide-37
SLIDE 37

Obtaining revocation data

Trent Certificate Revocation Lists (CRLs) “Certificate ID #3912… is
 no longer valid, as of April 5, …” A (often large) signed list of revocations Bob Browsers and OSes


  • ccasionally download CRLs

Disincentive: CRLs can be large,
 so it takes time & bandwidth Result: delayed days/weeks/forever

slide-38
SLIDE 38

Obtaining revocation data

Trent Online Certificate Status Protocol (OCSP) Bob Browsers and OSes perform OCSP checks


  • n-demand (when verifying the certificate)
slide-39
SLIDE 39

Obtaining revocation data

Trent Online Certificate Status Protocol (OCSP) Bob Browsers and OSes perform OCSP checks


  • n-demand (when verifying the certificate)

Is certificate ID #3912… still valid?

slide-40
SLIDE 40

Obtaining revocation data

Trent Online Certificate Status Protocol (OCSP) Bob Browsers and OSes perform OCSP checks


  • n-demand (when verifying the certificate)

Is certificate ID #3912… still valid? “Certificate ID #3912… is
 still longer valid, as of April 5, …” SKT

slide-41
SLIDE 41

Obtaining revocation data

Trent Online Certificate Status Protocol (OCSP) Bob Browsers and OSes perform OCSP checks


  • n-demand (when verifying the certificate)

Disincentive: Still delays the initial validation of the certificate (can increase webpage load time) Is certificate ID #3912… still valid? “Certificate ID #3912… is
 still longer valid, as of April 5, …” SKT

slide-42
SLIDE 42

Obtaining revocation data

Trent OCSP Stapling “Certificate ID #3912… is
 still longer valid, as of April 5, …” Websites issue OCSP requests, include responses in initial handshake Is certificate ID #3912… still valid? Alice Alice forwards this to Bob along with the certificate when they first
 start to communicate SKT

slide-43
SLIDE 43

Certificate revocation responsibilities

Trent’s responsibility: Make revocations publicly available Alice’s responsibility: Request revocations Bob’s responsibility: Check for revocations

slide-44
SLIDE 44

Certificates in the wild

The lock icon indicates that the browser was able to
 authenticate the other end, i.e., validate its certificate

slide-45
SLIDE 45

Certificate chain Subject (who owns the
 public key) Issuer (who verified the identity and signed this
 certificate) Common name: the URL of the subject

slide-46
SLIDE 46

Browser

Verifying certificates

Certificate

“I’m because says so”

slide-47
SLIDE 47

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so”

slide-48
SLIDE 48

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

slide-49
SLIDE 49

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

slide-50
SLIDE 50

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

Root key store

Every device has one
 
 Must not contain
 malicious certificates

slide-51
SLIDE 51

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

slide-52
SLIDE 52

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

slide-53
SLIDE 53

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

slide-54
SLIDE 54

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

✓ ✓

slide-55
SLIDE 55

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

✓ ✓

slide-56
SLIDE 56

Browser

Verifying certificates

Certificate

“I’m because says so”

Certificate

“I’m because says so” “I’m because I say so!”

Certificate

✓ ✓ ✓

slide-57
SLIDE 57

Serial number: Uniquely identifies
 this cert with respect to the issuer (look for this in CRLs) Not valid before/after: When to
 start and stop believing this cert (start & expiration dates) The public key: And the issuer’s
 signature of the public key Signature algorithm: How the
 issuer will sign parts of the cert

slide-58
SLIDE 58

Subject Alternate Names: Other URLs for which this cert
 should be considered valid. (wellsfargo.com is not the same
 as www.wellsfargo.com) 
 Can include wildcards, e.g.,
 *.google.com

slide-59
SLIDE 59

Subject Alternate Names: The spirit is that it represents
 different domain names of the
 same entity

(google.com, google.co.uk, youtube.com, …)

The letter of the rule doesn’t
 say that they need to be the same
 company—or really have
 anything in common

slide-60
SLIDE 60

Subject Alternate Names: The spirit is that it represents
 different domain names of the
 same entity

(google.com, google.co.uk, youtube.com, …)

The letter of the rule doesn’t
 say that they need to be the same
 company—or really have
 anything in common

slide-61
SLIDE 61

Subject Alternate Names: Other URLs for which this cert
 should be considered valid. (wellsfargo.com is not the same
 as www.wellsfargo.com) 
 Can include wildcards, e.g.,
 *.google.com CRL & OCSP: Where to go to check if this
 certificate has been revoked Non-cryptographic checksums

slide-62
SLIDE 62

Certificate types

Certificates can be classified in two broad ways What the certificate
 can be used for The type of vetting
 process used Signing (root and intermediate certs) DV (Domain validation)
 Prove administrative access to the
 domain, e.g., by uploading a file OV (Organization validation)
 Prove ownership of the organization
 that owns the domain Encrypting (leaf certs) EV (Extended validation)
 More extensive validation ($$)

slide-63
SLIDE 63

Certificate types

Why are these different?

slide-64
SLIDE 64

Certificate types

Why are these different? This is an EV (extended validation) certificate; browsers show the
 full name for these kinds of certs

slide-65
SLIDE 65

Proper reaction to Heartbleed

  • 1. Patch the software
  • 2. “Reissue” a new key (get a new one


and load it onto your servers)

  • 3. Revoke the old key
slide-66
SLIDE 66

Proper reaction to Heartbleed

  • 1. Patch the software
  • 2. “Reissue” a new key (get a new one


and load it onto your servers)

  • 3. Revoke the old key

If we reissued and then patched,
 then our new key would be compromised, too. Order matters! If we revoked first, we’d be offline.

slide-67
SLIDE 67

Heartbleed

OpenSSL

slide-68
SLIDE 68

Heartbleed

OpenSSL

“hi” 2

slide-69
SLIDE 69

Heartbleed

OpenSSL

“hi” 2 “hi”

slide-70
SLIDE 70

Heartbleed

OpenSSL

slide-71
SLIDE 71

Heartbleed

OpenSSL

“hi” 22

slide-72
SLIDE 72

Heartbleed

OpenSSL

“hi” 22 “hi” +20B from memory

< 216

slide-73
SLIDE 73

Heartbleed

OpenSSL

“hi” 22 “hi” +20B from memory

< 216

Potentially reveals user data and private keys Heartbleed exploits were undetectable

slide-74
SLIDE 74

Why study Heartbleed?

03/21 04/02 04/07 Discovered Akamai patched Publicly announced

slide-75
SLIDE 75

Why study Heartbleed?

03/21 04/02 04/07 Discovered Akamai patched Publicly announced 03/21 04/02 04/07 Discovered Akamai patched Publicly announced

1

Patched

2

Revoked

3

Reissued Every vulnerable website should have:

slide-76
SLIDE 76

Why study Heartbleed?

03/21 04/02 04/07 Discovered Akamai patched Publicly announced 03/21 04/02 04/07 Discovered Akamai patched Publicly announced

1

Patched

2

Revoked

3

Reissued Every vulnerable website should have: Heartbleed is a natural experiment:
 How quickly and thoroughly do administrators act?

slide-77
SLIDE 77

Dataset

Rapid7 data

22M certs (~1/wk for 6mos)

slide-78
SLIDE 78

Dataset

Rapid7 data

22M certs (~1/wk for 6mos)

Alexa
 Top-1M

2.8M certs

CAs

9k certs

filter

slide-79
SLIDE 79

validate

Leaf Set

628k certs 165k domains

Dataset

Rapid7 data

22M certs (~1/wk for 6mos)

Alexa
 Top-1M

2.8M certs

CAs

9k certs

filter

slide-80
SLIDE 80

validate

Leaf Set

628k certs 165k domains

Dataset

Rapid7 data

22M certs (~1/wk for 6mos)

Alexa
 Top-1M

2.8M certs

CAs

9k certs

filter

  • Download CRLs
  • Detect vulnerability
  • Identify Heartbleed-induced

reissues & revocations

slide-81
SLIDE 81

validate

Leaf Set

628k certs 165k domains

Dataset

Rapid7 data

22M certs (~1/wk for 6mos)

Alexa
 Top-1M

2.8M certs

CAs

9k certs

filter

  • Download CRLs
  • Detect vulnerability
  • Identify Heartbleed-induced

reissues & revocations

slide-82
SLIDE 82

Prevalence and patch rates

0.1 0.2 0.3 0.4 0.5 0.6 200000 400000 600000 800000 1e+06 Fraction of Domains Vulnerable to Heartbleed Alexa Site Rank (bins of 1000) Was ever vulnerable Still vulnerable

Was ever vulnerable Still vulnerable after 3 weeks

slide-83
SLIDE 83

Prevalence and patch rates

0.1 0.2 0.3 0.4 0.5 0.6 200000 400000 600000 800000 1e+06 Fraction of Domains Vulnerable to Heartbleed Alexa Site Rank (bins of 1000) Was ever vulnerable Still vulnerable

Was ever vulnerable Still vulnerable after 3 weeks

slide-84
SLIDE 84

Prevalence and patch rates

0.1 0.2 0.3 0.4 0.5 0.6 200000 400000 600000 800000 1e+06 Fraction of Domains Vulnerable to Heartbleed Alexa Site Rank (bins of 1000) Was ever vulnerable Still vulnerable

Patching rates are mostly positive
 Only ~7% had not patched within 3 weeks

Was ever vulnerable Still vulnerable after 3 weeks

slide-85
SLIDE 85

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

slide-86
SLIDE 86

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

Ideal

slide-87
SLIDE 87

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

Ideal

slide-88
SLIDE 88

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

3 wks

Ideal

slide-89
SLIDE 89

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

3 wks

Ideal

After 3 weeks:

13% Revoked

Similar pattern to patches:
 Exponential drop-off, then levels out

slide-90
SLIDE 90

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

slide-91
SLIDE 91

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

slide-92
SLIDE 92

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

Not revoked

slide-93
SLIDE 93

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

Similar pattern to patches:
 Exponential drop-off, then levels out

Not revoked

slide-94
SLIDE 94

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

After 3 weeks:

13% Revoked

Similar pattern to patches:
 Exponential drop-off, then levels out

Not revoked

slide-95
SLIDE 95

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

After 3 weeks:

13% Revoked

Similar pattern to patches:
 Exponential drop-off, then levels out

Not revoked

slide-96
SLIDE 96

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

After 3 weeks:

13% Revoked

Similar pattern to patches:
 Exponential drop-off, then levels out

Not revoked

slide-97
SLIDE 97

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

slide-98
SLIDE 98

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

slide-99
SLIDE 99

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

Not reissued Not revoked

slide-100
SLIDE 100

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

Similar pattern to patches:
 Exponential drop-off, then levels out

Not reissued Not revoked

slide-101
SLIDE 101

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Ideal

After 3 weeks:

13% Revoked 27% Reissued

Similar pattern to patches:
 Exponential drop-off, then levels out

Not reissued Not revoked

slide-102
SLIDE 102

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Optimistic

After 3 weeks:

13% Revoked 27% Reissued

Similar pattern to patches:
 Exponential drop-off, then levels out

Not reissued Not revoked

slide-103
SLIDE 103

How quickly were certs revoked?

200 400 600 800 1000 1200 03/01 03/08 03/15 03/22 03/29 04/05 04/12 04/19 04/26 Number of Domains/Day Date

slide-104
SLIDE 104

How quickly were certs revoked?

200 400 600 800 1000 1200 03/01 03/08 03/15 03/22 03/29 04/05 04/12 04/19 04/26 Number of Domains/Day Date

Reaction ramps up quickly

slide-105
SLIDE 105

How quickly were certs revoked?

200 400 600 800 1000 1200 03/01 03/08 03/15 03/22 03/29 04/05 04/12 04/19 04/26 Number of Domains/Day Date

Reaction ramps up quickly

slide-106
SLIDE 106

How quickly were certs revoked?

200 400 600 800 1000 1200 03/01 03/08 03/15 03/22 03/29 04/05 04/12 04/19 04/26 Number of Domains/Day Date

Reaction ramps up quickly Security takes the weekends off

Weekends

slide-107
SLIDE 107

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

3 wks

slide-108
SLIDE 108

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

3 wks

slide-109
SLIDE 109

Certificate update rates

0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/21 05/05 05/19 06/02 06/16 06/30 07/14 07/28

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Not reissued Not revoked

3 wks

Similar pattern to patches:
 Exponential drop-off, then levels out After 3 weeks:

13% Revoked 27% Reissued

slide-110
SLIDE 110

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Not reissued Not revoked

Ideal

slide-111
SLIDE 111

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Not reissued Not revoked

Ideal

slide-112
SLIDE 112

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

After 3 weeks:

13% Revoked 27% Reissued

Similar pattern to patches:
 Exponential drop-off, then levels out

Not reissued Not revoked

Ideal

slide-113
SLIDE 113

0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 04/07 04/11 04/15 04/19 04/23 04/27

  • Frac. of Vulnerable Certs

not Revoked/Reissued Date

Certificate update rates

Optimistic

After 3 weeks:

13% Revoked 27% Reissued

Similar pattern to patches:
 Exponential drop-off, then levels out

Not reissued Not revoked

slide-114
SLIDE 114

0.1 0.2 0.3 0.4 0.5 0.6 11/2013 12/2013 01/2014 02/2014 03/2014 04/2014 05/2014 Fraction of New Certificates Reissued with the Same Key Date of Birth All reissues Heartbleed-induced reissues

Reissue ⇒ New key?

slide-115
SLIDE 115

0.1 0.2 0.3 0.4 0.5 0.6 11/2013 12/2013 01/2014 02/2014 03/2014 04/2014 05/2014 Fraction of New Certificates Reissued with the Same Key Date of Birth All reissues Heartbleed-induced reissues

Reissue ⇒ New key?

slide-116
SLIDE 116

0.1 0.2 0.3 0.4 0.5 0.6 11/2013 12/2013 01/2014 02/2014 03/2014 04/2014 05/2014 Fraction of New Certificates Reissued with the Same Key Date of Birth All reissues Heartbleed-induced reissues

Reissue ⇒ New key?

Reissuing the same key is common practice 4.1% Heartbleed-induced

slide-117
SLIDE 117

The ugly truth of revocations

13% Revoked 27% Reissued 93% Patched

  • Administrators trade off security for ease of maintenance/cost
  • Certificate authorities trade off security for profit

Security is supposed to be a fundamental design goal, but

slide-118
SLIDE 118

0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 CDF Years of Remaining Validity

Can we wait for expiration?

slide-119
SLIDE 119

0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 CDF Years of Remaining Validity

Can we wait for expiration?

Vulnerable but not revoked

slide-120
SLIDE 120

0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 CDF Years of Remaining Validity

Can we wait for expiration?

Vulnerable but not revoked

~40% of vulnerable certs
 will not expire for over 1 year

slide-121
SLIDE 121

0.2 0.4 0.6 0.8 1 1 2 3 4 5 6 CDF Years of Remaining Validity

Can we wait for expiration?

We may be dealing with Heartbleed for years

Vulnerable but not revoked

~40% of vulnerable certs
 will not expire for over 1 year

slide-122
SLIDE 122

Testing browser behavior

Revocation
 protocols

  • Browsers should support all major protocols
  • CRLs, OCSP

, OCSP stapling

Availability of
 revocation info

  • Browsers should reject certs they cannot check
  • E.g., because the OCSP server is down

Chain
 lengths

  • Browsers should reject a cert if any on the chain fail
  • Leaf, intermediate(s), root
slide-123
SLIDE 123

Testing browser behavior

Revocation
 protocols

  • Browsers should support all major protocols
  • CRLs, OCSP

, OCSP stapling

Availability of
 revocation info

  • Browsers should reject certs they cannot check
  • E.g., because the OCSP server is down

Chain
 lengths

  • Browsers should reject a cert if any on the chain fail
  • Leaf, intermediate(s), root

Leaf Root Intermediate Intermediate

slide-124
SLIDE 124

Testing browser behavior

Revocation
 protocols

  • Browsers should support all major protocols
  • CRLs, OCSP

, OCSP stapling

Availability of
 revocation info

  • Browsers should reject certs they cannot check
  • E.g., because the OCSP server is down

Chain
 lengths

  • Browsers should reject a cert if any on the chain fail
  • Leaf, intermediate(s), root

signs Leaf Root Intermediate Intermediate

slide-125
SLIDE 125

Testing browser behavior

Revocation
 protocols

  • Browsers should support all major protocols
  • CRLs, OCSP

, OCSP stapling

Availability of
 revocation info

  • Browsers should reject certs they cannot check
  • E.g., because the OCSP server is down

Chain
 lengths

  • Browsers should reject a cert if any on the chain fail
  • Leaf, intermediate(s), root

signs Leaf Root Intermediate Intermediate

slide-126
SLIDE 126

Testing browser behavior

Revocation
 protocols

  • Browsers should support all major protocols
  • CRLs, OCSP

, OCSP stapling

Availability of
 revocation info

  • Browsers should reject certs they cannot check
  • E.g., because the OCSP server is down

Chain
 lengths

  • Browsers should reject a cert if any on the chain fail
  • Leaf, intermediate(s), root

signs Leaf Root Intermediate Intermediate

slide-127
SLIDE 127

Results across all browsers

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-128
SLIDE 128

Results across all browsers

Chrome Generally, only checks for EV certs ~3% of all certs Allows if revocation info unavailable Supports OCSP stapling

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-129
SLIDE 129

Results across all browsers

Firefox Never checks CRLs Only checks intermediates for EV certs Allows if revocation info unavailable Supports OCSP stapling

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-130
SLIDE 130

Results across all browsers

Safari Checks CRLs and OCSP Allows if revocation info unavailable Except for first intermediate, for CRLs Does not support OCSP stapling

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-131
SLIDE 131

Results across all browsers

Internet Explorer Checks CRLs and OCSP Often rejects if revocation info unavailable Pops up alert for leaf in IE 10+ 
 Supports OCSP stapling

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-132
SLIDE 132

Results across all browsers

Mobile Browsers Uniformly never check 
 
 
 Android browsers request Staple …and promptly ignore it

✔ Passes test ✗ Fails test ev Passes for EV certs i Ignores OCSP Staple a Pops up alert to user l/w Passes on Linux/Win.

slide-133
SLIDE 133

PKI CONCLUSION

The PKI’s job is to bind human-understandable identities (domain names) to cryptographic keys (public keys) The central mechanism for this is certificates: digital signatures from trusted entities that tie domain names and public keys together TLS along with Diffie-Hellman leverages public key crypto to arrive at ephemeral session keys (symmetric keys) There is significant mismanagement in today’s PKI:

  • Websites don’t revoke or get new certs (“reissue”) when they should
  • Browsers don’t check for revocations when they should
  • Websites share their private keys with their hosting providers

The PKI is how we know with whom we are communicating online Improving the web’s PKI is an active area of research (securepki.org)