L'Handshake

Quando hai iniziato a leggere questo fumetto, il tuo browser ti ha mostrato un lucchetto verde nella barra degli indirizzi.

Come mai succede?

Il tuo browser comunica con il nostro server, dove questo fumetto è ospitato, ed entrambi stabiliscono una connessione sicura per trasmettere i messaggi.

Ma prima di tutto, devono mettersi d'accordo sul modo in cui comunicare in maniera sicura.

Se la negoziazione non va a buon fine, il tuo browser te lo comunica mostrandoti un errore o un avvertimento.
Se invece si arriva a un accordo, il tuo browser è felice di mostrarti un lucchetto verde nella barra degli indirizzi.

Questo processo, ovvero la negoziazione tra browser e server, è chiamata 'handshake'.

Avviene molto velocemente. Ora ti mostriamo come funziona.

Browserbird sarà il tuo browser.
Compugter sarà il nostro server.

Iniziamo ragazzi!

Pronti? Ecco a cosa assomiglia una 'handshake' in slow-motion.

Batti il palmo
Batti il dorso
Shaka verticale
Ruota lo shaka in orizzontale
Solletico

Fatto!

Rifacciamolo ancora, ma più veloce.

Batti palmo - Batti dorso - Shaka - Shaka ruotato - Solletico.

A-N-C-O-R-A !

Basta!

Analizziamola passo per passo.

Primo passaggio: batti il palmo. Ovvero: Saluto del Client.

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.

Secondo passaggio: batti il dorso. Ovvero: Saluto del Server.

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.

Passo tre: shaka verticale. Alias Key Share.

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.

Passo quattro: rotazione orizzontale dello shaka. Alias Finished Messages.

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.

Passaggio cinque: Solletico. Ovvero: ora tutto è sicuro.
Ora tutti i dati che viaggeranno tra Browserbird e Compugter saranno protetti per il resto della sessione.

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.

Prossimamente su HowHTTPS.works...

HTTPS, SSL, TLS, oh perbacco! Ho appena mangiato una zuppa di acronimi per pranzo. Cosa significano? Sono la stessa cosa?

Continua la lettura