Questo è esattamente ciò che si suppone che SSL / TLS faccia. SSL / TLS utilizza la crittografia asimmetrica solo nell'handshake per scambiare la chiave simmetrica che viene utilizzata da quel momento in poi per crittografare la comunicazione. La chiave scambiata è chiamata masterkey e viene utilizzata solo per quella sessione. La durata di una sessione può essere configurata.
Il processo è fondamentalmente questo quando si utilizza HTTPS, ad esempio:
- Il client stabilisce una connessione (handshake a tre vie - > TCP handshake, dopodiché inizia l'handshake SSL / TLS)
- Il server invia un certificato (che include la chiave pubblica)
- Il client invia masterkey crittografato con la chiave pubblica dei server
- Masterkey è usato per quella sessione
Questa è ovviamente solo una descrizione ampia del protocollo e si applica solo quando il client stesso non ha alcun certificato, come nella maggior parte degli scenari.