TLS 1.3
draft-ietf-tls-tls13-12
Eric Rescorla Mozilla ekr@rtfm.com
IETF 95 TLS 1
TLS 1.3 draft-ietf-tls-tls13-12 Eric Rescorla Mozilla - - PowerPoint PPT Presentation
TLS 1.3 draft-ietf-tls-tls13-12 Eric Rescorla Mozilla ekr@rtfm.com IETF 95 TLS 1 Overview Changes since draft-10 Outstanding consensus calls 1-RTT PSK and session tickets Context values Key schedule and key separation
IETF 95 TLS 1
IETF 95 TLS 2
IETF 95 TLS 3
†Marked for death.
IETF 95 TLS 4
∗Includes disambiguating context string.
IETF 95 TLS 5
+----------------+-----------------------------------------+--------+ | Mode | Handshake Context | Base | | | | Key | +----------------+-----------------------------------------+--------+ | 0-RTT | ClientHello + ServerConfiguration + | xSS | | | Server Certificate + CertificateRequest | | | | (where ServerConfiguration, etc. are | | | | from the previous handshake) | | | | | | | 1-RTT (Server) | ClientHello ... ServerConfiguration | master | | | | secret | | | | | | 1-RTT (Client) | ClientHello ... ServerFinished | master | | | | secret | | | | | | Post-Handshake | ClientHello ... ClientFinished + | master | | | CertificateRequest | secret | +----------------+-----------------------------------------+--------+
IETF 95 TLS 6
IETF 95 TLS 7
struct { HashAlgorithm hash; SignatureAlgorithm signature; } SignatureAndHashAlgorithm;
IETF 95 TLS 8
enum { // RSASSA-PKCS-v1_5 algorithms. rsa_pkcs1_sha1 (0x0201), rsa_pkcs1_sha256 (0x0401), rsa_pkcs1_sha384 (0x0501), rsa_pkcs1_sha512 (0x0601), ... } SignatureScheme;
IETF 95 TLS 9
HKDF-Expand-Label(HKDF-Extract(0, exporter_secret), label, context_value, length)
IETF 95 TLS 10
IETF 95 TLS 11
IETF 95 TLS 12
IETF 95 TLS 13
IETF 95 TLS 14
IETF 95 TLS 15
IETF 95 TLS 16
IETF 95 TLS 17
IETF 95 TLS 18
∗Details TBD.
IETF 95 TLS 19
IETF 95 TLS 20
enum { no_early_data_allowed(0), replayable_early_data_allowed (1), all_early_data_allowed(2), (65535) } EarlyDataType; uint32 ticket_lifetime;
CipherSuite cipher_suites<2..2^16-2>; EarlyDataType early_data_type } NewSessionTicket;
IETF 95 TLS 21
IETF 95 TLS 22
IETF 95 TLS 23
IETF 95 TLS 24
IETF 95 TLS 25
IETF 95 TLS 26
IETF 95 TLS 27
IETF 95 TLS 28
IETF 95 TLS 29
IETF 95 TLS 30
Client Server ClientHello [Random, gc]
TLS 31
Client Server ClientHello [Random, gc]
TLS 32
IETF 95 TLS 33
IETF 95 TLS 34
IETF 95 TLS 35
IETF 95 TLS 36
IETF 95 TLS 37
IETF 95 TLS 38
IETF 95 TLS 39
IETF 95 TLS 40
IETF 95 TLS 41
IETF 95 TLS 42
struct {
} PreSharedKeyInfo; struct { select (Role) { case client: PreSharedKeyInfo keys<2..2^16-1>; case server: uint16 index; // The selected index } } PreSharedKeyExtension;
IETF 95 TLS 43
Option 1: Include in SS K_hh = HKDF-Expand-Label(xSS, Handshake Hash Key, ) handshake_hashes = HMAC(K_hh, Hash(Handshake messages)) // IMPORTANT: Need to revise SS if we re-add DHE-0-RTT Option 2: Use directly handshake_hashes = Hash(Hash(Context) || Hash(Handshake messages))
∗Warning, potentially busted handwaving.
IETF 95 TLS 44
| SS -> HKDF | \ | \ v v X1 0-RTT Traffic Keys * | | v ES -> HKDF [ClientHello, ServerHello] | \ | \ v v X2 1-RTT Traffic Keys * | | v 0 -> HKDF [ClientHello...ClientFinished] | | v RMS, EMS
IETF 95 TLS 45
IETF 95 TLS 46
IETF 95 TLS 47
IETF 95 TLS 48
IETF 95 TLS 49