Quando hai iniziato a leggere questo fumetto, il tuo browser ti ha mostrato un lucchetto verde nella barra degli indirizzi.
Come mai succede?
Ma prima di tutto, devono mettersi d'accordo sul modo in cui comunicare in maniera sicura.
Questo processo, ovvero la negoziazione tra browser e server, è chiamata 'handshake'.
Avviene molto velocemente. Ora ti mostriamo come funziona.
Iniziamo ragazzi!
Pronti? Ecco a cosa assomiglia una 'handshake' in slow-motion.
Fatto!
Rifacciamolo ancora, ma più veloce.
A-N-C-O-R-A !
Basta!
Analizziamola passo per passo.
Invio a Compugter un elenco delle versioni SSL/TLS e degli algoritmi di cifratura con cui posso lavorare. Oggi preferisco TLS 1.3, quindi invio anche un key_share.
Il modo tecnico per riferirsi a questa lista di algoritmi di cifratura è 'suite di cifratura'.
In questo modo puoi sembrare un pro alle cene con gli amici.
I protocolli SSL e TLS si sono evoluti nel tempo, ne parleremo meglio più tardi.
E successivamente aspetto una risposta da Compugter.
Scelgo TLS 1.3 e una cipher suite. Invio anche il mio key_share. Da qui in poi, TLS 1.3 cifra il resto dell’handshake.
Subito dopo invio il mio certificato, che include la mia chiave pubblica, così possono verificare chi sono.
Verifico il certificato di Compugter in modo da essere sicuro che egli sia chi dice di essere.
Poiché abbiamo entrambi inviato un key share in precedenza, possiamo derivare lo stesso segreto, garantendo la riservatezza.
Da ServerHello in avanti (passo due), l’handshake è cifrato.
Si scambiano i messaggi Finished per dimostrare che hanno derivato lo stesso segreto — e le chiavi di sessione sono pronte in un solo round-trip.
Password, dettagli della carta di credito, qualsiasi cosa.
Facile, giusto?
La prossima volta che ti connetterai a un sito in maniera sicura usando HTTPS, fai lo shaka con il tuo browser, visto che conosci la handshake segreta.