In TLS 1.3 il client invia un ClientHello con il nome del sito (SNI), i cifrari che supporta e una key share. Il server risponde con la sua scelta, il suo certificato e una firma, e il client verifica la catena dei certificati, il nome e le date. Serve un solo round trip; TLS 1.2 ne richiede due.
L’handshake è una parte a sé del tempo di risposta: circa un round trip di latenza più il lavoro del server. Le connessioni riutilizzate e la ripresa della sessione ne saltano la maggior parte, ed è per questo che un monitor che apre una nuova connessione a ogni controllo vede più tempo TLS di un browser alla seconda pagina.
Gli handshake falliscono per alcuni motivi: un certificato scaduto o errato, un certificato intermedio mancante, nessun certificato per il nome richiesto, un server che offre solo versioni vecchie (TLS 1.0 e 1.1 sono deprecati dalla RFC 8996) o una porta che risponde in HTTP in chiaro. I browser li mostrano come errori di sicurezza; per il monitoraggio, sono downtime.
Formula
Tempo TLS ≈ round trip × tempo di round trip + elaborazione del server
Esempio:
Con 30 ms verso il server, un handshake TLS 1.3 richiede circa 30 ms più il lavoro del server, e un handshake TLS 1.2 circa 60 ms.