TLS 1.3
Eric Rescorla Mozilla ekr@rtfm.com
TLS 1.3 1
TLS 1.3 Eric Rescorla Mozilla ekr@rtfm.com TLS 1.3 1 Overview - - PowerPoint PPT Presentation
TLS 1.3 Eric Rescorla Mozilla ekr@rtfm.com TLS 1.3 1 Overview Background/Review of TLS Some problems with TLS 1.2 Objectives for TLS 1.3 What does TLS 1.3 look like? Open issues/schedule/etc. TLS 1.3 2 What is Transport
TLS 1.3 1
TLS 1.3 2
TLS 1.3 3
TLS 1.3 4
TLS 1.3 5
Client Server ClientHello [Random]
6
struct { ProtocolVersion client_version; Random random; SessionID session_id; CipherSuite cipher_suites<2..2^16-2>; CompressionMethod compression_methods<1..2^8-1>; select (extensions_present) { case false: struct {}; case true: Extension extensions<0..2^16-1>; }; } ClientHello;
TLS 1.3 7
struct { ProtocolVersion server_version; Random random; SessionID session_id; CipherSuite cipher_suite; CompressionMethod compression_method; select (extensions_present) { case false: struct {}; case true: Extension extensions<0..2^16-1>; }; } ServerHello;
TLS 1.3 8
TLS 1.3 9
Client Server ClientHello [Random]
10
Client Attacker Server ClientHello [Random]
Cookie=...
11
TLS 1.3 12
TLS 1.3 13
TLS 1.3 14
ClientHello [Random]
TLS 1.3 15
TLS 1.3 16
Client Server ClientHello [Random, SessionID]
17
Client Server ClientHello [Random, SessionID]
TLS 1.3 18
Client Attacker Server ClientHello [Random]
TLS 1.3 19
Client Attacker Server ClientHello [Random, SessionID]
TLS 1.3 20
TLS 1.3 21
TLS 1.3 22
TLS 1.3 23
∗Special accommodation for inline client authentication
TLS 1.3 24
TLS 1.3 25
TLS 1.3 26
TLS 1.3 27
∗Bonus: removed point format negotiation too
TLS 1.3 28
TLS 1.3 29
Client Server ClientHello [Random, gc]
Certificate, Sign(Ks, Handshake), Finished
– Only secure against passive attackers
TLS 1.3 30
Client Server ClientHello [Random, gc]
CertificateRequest, Certificate, Sign(Ks, Handshake), Finished
TLS 1.3 31
Client Server ClientHello [Random, DH(P256)]
– Client should memorize server’s preferences
TLS 1.3 32
TLS 1.3 33
Client Server ClientHello [Random, gc, server configuration=XXX] Application data
Certificate, Sign(Ks, Handshake), Finished
34
TLS 1.3 35
TLS 1.3 36
Client Attacker Server ClientHello
ServerHello [accept 0-RTT], ...
ClientHello
TLS 1.3 37
TLS 1.3 38
TLS 1.3 39
ClientHello + ClientKeyShare ^ + EarlyDataIndication O-RTT | (Certificate*) mode | (CertificateVerify* v (Finished) // Note: new message. (Application Data*)
ServerHello ServerKeyShare* {EncryptedExtensions} {CertificateRequest*} {ServerConfiguration*} {Certificate*} ^ {CertificateVerify*} | Server Auth. <-------- {Finished} v 1-RTT ^ {Certificate*} Client | {CertificateVerify*} Auth | {Finished}
v [Application Data] <-------> [Application Data] <-------- [CertificateRequest] ^ [Certificate] | Post-HS [CertificateVerify] | Auth. [Finished]
v
TLS 1.3 40
Key Exchange Static Secret (SS) Ephemeral Secret (ES)
Client ephemeral Client ephemeral (full handshake) w/ server ephemeral w/ server ephemeral (EC)DHE Client ephemeral Client ephemeral (w/ 0-RTT) w/ server static w/ server ephemeral PSK Pre-Shared Key Pre-shared key PSK + (EC)DHE Pre-Shared Key Client ephemeral w/ server ephemeral
TLS 1.3 41
Ephemeral Secret Static Secret mES mSS Master Secret Finished Secrets Early Traffic Keys Handshake Traffic Keys Exporter Secret Resumption Secret Application Traffic Keys xES xSS
TLS 1.3 42
TLS 1.3 43
TLS 1.3 44
Client Attacker Server
45
Client Attacker Server ClientHello [Random, PSK=XXX] ClientHello [Random, PSK=XXX] ServerHello [PSK=XXX] Finished
Finished
46
TLS 1.3 47
TLS 1.3 48
TLS 1.3 49
TLS 1.3 50
TLS 1.3 51
TLS 1.3 52
TLS 1.3 53
TLS 1.3 54
TLS 1.3 55
TLS 1.3 56
TLS 1.3 57
"IANA has added TLS cipher suite number 0x00,0xFF with name TLS_EMPTY_RENEGOTIATION_INFO_SCSV to the TLS Cipher Suite registry."
– So it’s mostly safe to send new cipher suites
TLS 1.3 58
Client Server ClientHello [Random]
59
Client Server ClientHello [Random]
60
TLS 1.3 60
TLS 1.3 60
TLS 1.3 60