DEFCON 26 Alfonso Garcia and Alejo Murillo Playback A TLS Story Updated
DEFCON 26 Alfonso Garcia and Alejo Murillo Playback A TLS Story Updated
3 STORY
WHO ARE WE?
VS
Your browsers…
… implementations …
… and CDNs may
already be supporting
TLS 1.3 0-RTT!
BoringSSL
TLS 1.3 HANDSHAKE
TLS 1.3 HANDSHAKE
TLS 1.3 HANDSHAKE
TLS 1.3 HANDSHAKE
TLS 1.3 0-RTT
TLS 1.3 0-RTT
TLS 1.3 0-RTT
As you can see…
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Single-Use Tickets
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Client-Hello Recording
Single-Use Tickets
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Client-Hello Recording
“Freshness” checks
Single-Use Tickets
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Client-Hello Recording
“Freshness” checks
Application profiles
Single-Use Tickets
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Client-Hello Recording
“Freshness” checks
Application profiles
Separate API
Single-Use Tickets
0-RTT disabled by
BoringSSL n/a default
YES!!!
CONTROLLING THE BROWSER
CONTROLLING THE BROWSER
CONTROLLING THE BROWSER
CONTROLLING THE BROWSER
DEMO
Single-Use Tickets
ANTI-REPLAY PROTECTIONS
Single-Use Tickets
Client-Hello Recording
“Freshness” checks
Application profiles
Separate API
IMPROVING OUR ATTACK (AGAIN)
• Imagine that somehow the TLS library and server
actually perfectly prevent any replay attack on 0-RTT.
IMPROVING OUR ATTACK (AGAIN)
YES!!!
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
UNIVERSAL REPLAY ATTACK
DEMO
TOOL: HIGH-LEVEL DESCRIPTION
• Assumes a vantage point in the network
• Available at https://github.com/portcullislabs/tlsplayback
SIDE EFFECTS OF 0-RTT
• It is important to understand that 0-RTT creates a
dependency between the application and the
underlying TLS 1.3 protocol