1.3 – Handshake The TLS 1.3 is much more efficient using an early encryption scheme. Internet (TLS) Server (TLS) Client 1 Finished (HKDF/Handshake) Message 2a TCP Session established a) Version = 3.3, Random, Nonce, Cipher Suites, C = 0, ClientHello Version = 3.3, Random, SessionID, Cipher Suite, C = 0, ServerHello Certificate Verify (signature TH) Certificate 3 Finished (HKDF/Handshake) Generates Master & Session keys TLS Connection Verifies Certificate Generates Master & Session keys Internet (TLS) Server (TLS) Client 1 Finished (HKDF/Handshake) Message TCP Session established b) Certificate Verify (signature TH) Certificate Finished (HKDF/Handshake) TLS Connection Certificate Request Certificate Certificate Verify (signature TH) Version = 3.3, Random, Nonce, Cipher Suites, C = 0, ClientHello Version = 3.3, Random, SessionID, Cipher Suite, C = 0, ServerHello Key Exchange Authentication Message 2b 2c 2d 2a 2b 2c 2d 2e 3a 3c 3b Extensions: ’x304’, ALPN Extensions: ’x304’, ADP Extensions: ’x304’, ALPN Extensions: ’x304’, ADP en- crypted en- crypted HKDF(shared secret,“s/c hs traffic“,TH) HKDF(shared secret,“c/s app traffic …“,TH) Traffic key Application key Figure: TLS 1.3 Handshake; (a) without and (b) with Client Certificate Request; ALPN: Application Layer Protocol Notifications Only three messages are exchanged: Client → Server The (unencrypted) Client Hello message. Server → Client The Server Hello message: The first part including protocol artefacts in clear text; the further parts are encrypted with a provisional secret (Traffic Key) covering in particular the X.509 cert. Client → Server The encrypted Finish message, telling that the Application Key is ready for use. 15 / 23