TLS negotiation finds common ground between client and server configurations so they can securely connect. Peers select mutually supported protocol versions and cryptographic algorithms, including the key-exchange algorithm. section 9.2.1
The negotiation phase matters because:
- Backward compatibility requires TLS to handle older clients and servers, but legacy versions and algorithms have enabled attacks such as FREAK, LOGJAM, and DROWN. section 9.2.1
- Negotiation leads into key exchange, which must be authenticated so an attacker cannot impersonate either participant. section 9.2.1
TLS 1.2 versus TLS 1.3
In TLS 1.2, the client waits for the server to choose a key-exchange algorithm before sending a public key. In TLS 1.3, the client can speculate and send one or more public keys in its first message, potentially avoiding an extra round trip. section 9.2.1
Figure 9.2 In TLS 1.2, the client waits for the server to choose which key exchange algorithm to use before sending a public key. In TLS 1.3, the client speculates on which key exchange algorithm(s) the server will settle on and preemptively sends a public key (or several) in the first message, potentially avoiding an extra round trip.
Compare when TLS 1.2 and TLS 1.3 send public-key material during negotiation. section 9.2.1
