HTTPS: Achievements, Challenges, and Epiphany Michael Catanzaro - - PowerPoint PPT Presentation

https achievements challenges and epiphany
SMART_READER_LITE
LIVE PREVIEW

HTTPS: Achievements, Challenges, and Epiphany Michael Catanzaro - - PowerPoint PPT Presentation

HTTPS: Achievements, Challenges, and Epiphany Michael Catanzaro <mcatanzaro@igalia.com> Web Engines Hackfest December 7, 2015 HTTPS Basics HTTPS: Achievements, Challenges, and Epiphany 2 Man-in-the-Middle (MITM) Attacks ARP spoofing


slide-1
SLIDE 1

December 7, 2015 Web Engines Hackfest

HTTPS: Achievements, Challenges, and Epiphany

Michael Catanzaro <mcatanzaro@igalia.com>

slide-2
SLIDE 2

HTTPS: Achievements, Challenges, and Epiphany 2

HTTPS Basics

slide-3
SLIDE 3

HTTPS: Achievements, Challenges, and Epiphany 3

Man-in-the-Middle (MITM) Attacks

◮ ARP spoofing ◮ WPAD hijacking ◮ DNS hijacking ◮ DNS cache poisoning ◮ BGP route hijacking

(List stolen from Bulletproof SSL and TLS by Ivan Ristić.)

slide-4
SLIDE 4

HTTPS: Achievements, Challenges, and Epiphany 4

Secure Sockets Layer (SSL) vs. Transport Layer Security (TLS)

◮ SSL 2.0 (lol insecure) ◮ SSL 3.0 (very insecure) ◮ TLS 1.0 (somewhat secure) ◮ TLS 1.1 (somewhat secure) ◮ TLS 1.2 (possibly very secure)

slide-5
SLIDE 5

HTTPS: Achievements, Challenges, and Epiphany 5

Key Exchange

◮ RSA: Rivest-Shamir-Adleman

◮ Bad, no forward secrecy ◮ Slow

◮ DHE: Ephemeral Diffie-Hellman

◮ Bad, allows server to use weak primes to secure key exchange ◮ Very slow

◮ ECDHE: Ephemeral elliptic curve Diffie-Hellman

◮ Usually uses RSA or ECDSA ◮ Probably not backdoored by NSA ◮ Fast!

slide-6
SLIDE 6

HTTPS: Achievements, Challenges, and Epiphany 6

Ciphers

◮ Stream ciphers: RC4 (insecure) ◮ Block ciphers: 3DES (OK), AES (good), Camellia (good) ◮ Block cipher modes: ECB (insecure), CBC (OK), GCM (good) ◮ Best option is probably AES-128, GCM mode

slide-7
SLIDE 7

HTTPS: Achievements, Challenges, and Epiphany 7

Message Authentication Codes (MACs)

◮ SHA-1 (good) ◮ SHA-256 (wasteful) ◮ SHA-384

slide-8
SLIDE 8

HTTPS: Achievements, Challenges, and Epiphany 8

Domain Validation Certificates

Figure 1: Domain validation, organization validation

slide-9
SLIDE 9

HTTPS: Achievements, Challenges, and Epiphany 9

Extended Validation Certificates

Figure 2: Extended validation

slide-10
SLIDE 10

HTTPS: Achievements, Challenges, and Epiphany 10

Certificate Verification

◮ Server sends a chain of certificates, each signed by the next. ◮ Final certificate must be signed by a root installed on the

  • system. (Or not.)

◮ Should be at least two certificates in the chain.

slide-11
SLIDE 11

HTTPS: Achievements, Challenges, and Epiphany 11

Invalid Certificates

Figure 3: Chrome

slide-12
SLIDE 12

HTTPS: Achievements, Challenges, and Epiphany 12

Achievements

slide-13
SLIDE 13

HTTPS: Achievements, Challenges, and Epiphany 13

Removal of Insecure Protocols

◮ All major browsers, and WebKitGTK+, dropped support for

SSL 3.0

◮ All major browsers pledged to drop support for RC4 in near

future; WebKitGTK+ was first!

slide-14
SLIDE 14

HTTPS: Achievements, Challenges, and Epiphany 14

Mixed Content

Figure 4: Epiphany

◮ Solution: upgrade-insecure-requests

◮ Content security policy (CSP) header ◮ Supported by Firefox and Chrome ◮ Not supported in WebKitGTK+

slide-15
SLIDE 15

HTTPS: Achievements, Challenges, and Epiphany 15

Distrusting Weak Certificates

◮ 1024-bit RSA keys

◮ 1024-bit roots removed from ca-certificates (Firefox) ◮ Degrade security indicator in Chrome and Firefox(?) ◮ Not detected by WebKitGTK+

◮ SHA-1 signatures

◮ Degrade security indicator in Chrome and Safari ◮ Not detected by WebKitGTK+

slide-16
SLIDE 16

HTTPS: Achievements, Challenges, and Epiphany 16

New Security Features

◮ HTTP Strict Transport Security (HSTS)

◮ Basic requirement for secure web browsing ◮ Supported by all major browsers ◮ Not supported in WebKitGTK+/libsoup

◮ HTTP Public Key Pinning (HPKP)

◮ Supported by Firefox, Chrome, and Opera ◮ Not supported in WebKitGTK+/libsoup

◮ Certificate Transparency

◮ Supported by Chrome ◮ Not supported in WebKitGTK+

slide-17
SLIDE 17

HTTPS: Achievements, Challenges, and Epiphany 17

Challenges

slide-18
SLIDE 18

HTTPS: Achievements, Challenges, and Epiphany 18

Certificate Revocation

◮ Certificate revocation lists (CRLs)

◮ Bad: too large, slow

◮ Online Certificate Status Protocol (OCSP)

◮ Supported in Internet Explorer, Safari, Firefox, Opera ◮ Literally worse than useless

◮ CRLSet (Chrome)

◮ Revocation list for “important” revocations only

◮ OneCRL (Firefox)

◮ Revocation list for intermediate certificates only

◮ WebKitGTK+/libsoup has no support for certificate revocation

slide-19
SLIDE 19

HTTPS: Achievements, Challenges, and Epiphany 19

Poor Diffie-Hellman Parameters

◮ Weak primes (less than 2048 bits)

◮ 1024-bit keys permitted by all modern browsers

◮ Composite (not prime) parameters

◮ Permitted by all modern browsers

◮ Prime reuse

◮ Breaking most common prime allows decrypting connections to

18% of top million HTTPS domains

◮ Breaking second most common prime allows decrypting

connections to 66% of VPN servers, 26% of SSH servers

◮ US government has probably done this

slide-20
SLIDE 20

HTTPS: Achievements, Challenges, and Epiphany 20

Insecure Protocol Version Fallback

◮ Most browsers attempt TLS 1.2, 1.1, then 1.0 ◮ WebKitGTK+/libsoup attempts only TLS 1.2 then 1.0 ◮ Responsible for severity of POODLE vulnerability ◮ Firefox allows only for whitelisted (known-broken) sites ◮ No browsers warn after performing fallback ◮ Achievement: Fallback SCSV (signaling ciphersuite) allows

server to detect a downgrade attack

slide-21
SLIDE 21

HTTPS: Achievements, Challenges, and Epiphany 21

Other Problems

◮ Server lacks secure renegotiation extension ◮ Browser allows key usage violations

slide-22
SLIDE 22

HTTPS: Achievements, Challenges, and Epiphany 22

Conclusion: Epiphany is the Least-Secure Browser

slide-23
SLIDE 23

HTTPS: Achievements, Challenges, and Epiphany 23

Summary: Epiphany Has. . .

  • 1. No appropriate UI for EV certificates
  • 2. No support for HSTS
  • 3. No support for HPKP
  • 4. No support for certificate transparency
  • 5. No support for certificate revocation
  • 6. No warning about weak certificates
  • 7. No warning about weak Diffie-Hellman
  • 8. No warnings for other issues
slide-24
SLIDE 24

HTTPS: Achievements, Challenges, and Epiphany 24

Online TLS Tests

◮ Client test: https://badssl.com/ ◮ Client test:

https://www.ssllabs.com/ssltest/viewMyClient.html

◮ Server test: https://www.ssllabs.com/ssltest/