tls handshake proxying - from theory to reality

18
TLS Handshake Proxying From theory to reality IEEE S&P April 20, 2014 Nick Sullivan @grittygrease

Upload: nicholas-sullivan

Post on 14-Jun-2015

304 views

Category:

Software


8 download

DESCRIPTION

In this talk we look into new techniques to help reduce latency for transport layer encryption (TLS) session establishment through delegation to a third party while also limiting the amount of trust given to that third party. The proposed solution is to combine TLS with a globally distributed network by splitting the TLS state machine geographically using a private key proxy service.

TRANSCRIPT

Page 1: TLS Handshake Proxying - From theory to reality

TLS Handshake ProxyingFrom theory to reality

IEEE S&P April 20, 2014 Nick Sullivan

@grittygrease

Page 2: TLS Handshake Proxying - From theory to reality

Two competing goals on the web• Security & Privacy

• Performance

2

Page 3: TLS Handshake Proxying - From theory to reality

Privacy: SSL/TLS• Point-to-point authentication and encryption

• The little lock icon in your browser

!

• Browser-server model

• Server certificate bound to a public key, signed by a Certificate Authority

• Private key provides authentication of server to client

• Session key established with handshake

3

Page 4: TLS Handshake Proxying - From theory to reality

4

Private Key

Page 5: TLS Handshake Proxying - From theory to reality

Problem with TLS• Web servers (nginx, apache, ISS) read private keys from disk, use in

memory

• Private key disclosure allows

• Server impersonation

• Retroactive decryption of sessions with RSA handshake

5

Page 6: TLS Handshake Proxying - From theory to reality

Private key security - protection• Process memory disclosure

• Secure allocation

• Separate process for private key

• Machine DMA attack

• Encrypted memory

• Hardware: HSM or TPM

• Machine compromise or theft

• ???

6

Page 7: TLS Handshake Proxying - From theory to reality

Web performance• The web is changing — consolidation at the edge of the network

• CDNs provide distributed global load balancing

• TLS needs to be terminated at caching layer

• Private keys need to be distributed to the edge

!

• This is why banks do not use CDNs — yet

7

Page 8: TLS Handshake Proxying - From theory to reality

Traditional traffic routing

8

Page 9: TLS Handshake Proxying - From theory to reality

Anycast routing with reverse proxy

9

Page 10: TLS Handshake Proxying - From theory to reality

Two contradictory goals• Global load balancing of TLS

• Private key security

10

Page 11: TLS Handshake Proxying - From theory to reality

Keyless SSL• Compromise between key security and performance

!

• Split the state machine geographically

• Private key operation performed at site owner’s facility (in HSM, etc)

• Rest of handshake performed at the edge

• Communicate to signing server over secure tunnel

11

Page 12: TLS Handshake Proxying - From theory to reality

Keyless SSL

12

Page 13: TLS Handshake Proxying - From theory to reality

Keyless SSL• All static assets served over TLS from the edge

• Dynamic assets served from origin through reverse proxy

13

Page 14: TLS Handshake Proxying - From theory to reality

14

Private Key

Page 15: TLS Handshake Proxying - From theory to reality

15

Private Key

Page 16: TLS Handshake Proxying - From theory to reality

Keyless SSL - In Production

• This is not an academic exercise or proof of concept

• Based on modified nginx/OpenSSL

• Customers include

• Top Wall Street investment bank

• Top Silicon Valley Internet company

16

Page 17: TLS Handshake Proxying - From theory to reality

Keyless SSL - Security

• Formal proof of security: joint work with Douglas Stebila

• Code audit by iSEC partners

17

Page 18: TLS Handshake Proxying - From theory to reality

TLS Handshake ProxyingFrom theory to reality

IEEE S&P April 20, 2014 Nick Sullivan

@grittygrease