In TLS 1.3 stuurt de client een ClientHello met de naam van de site (SNI), de ciphers die hij ondersteunt en een key share. De server antwoordt met zijn keuze, zijn certificaat en een handtekening, en de client controleert de certificaatketen, de naam en de data. Dat kost één round trip; TLS 1.2 heeft er twee nodig.
De handshake is een eigen onderdeel van de responstijd: ongeveer één round trip aan latency plus het werk van de server. Hergebruikte verbindingen en session resumption slaan het grootste deel over; daarom ziet een monitor die voor elke controle een nieuwe verbinding opent meer TLS-tijd dan een browser op zijn tweede pagina.
Handshakes mislukken om een paar redenen: een verlopen of verkeerd certificaat, een ontbrekend tussencertificaat, geen certificaat voor de gevraagde naam, een server die alleen oude versies aanbiedt (TLS 1.0 en 1.1 zijn uitgefaseerd door RFC 8996), of een poort die in gewone HTTP antwoordt. Browsers tonen dit als beveiligingsfouten; voor monitoring is het downtime.
Formule
TLS-tijd ≈ round trips × round-trip time + serververwerking
Voorbeeld:
Met 30 ms naar de server duurt een TLS 1.3-handshake ongeveer 30 ms plus het werk van de server, en een TLS 1.2-handshake ongeveer 60 ms.