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 una lista di versioni SSL/TLS e di algoritmi di cifratura con cui posso comunicare con Compugter.

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 la miglior versione di SSL/TLS e il miglior algoritmo di cifratura tra quelli che Browserbird mi ha inviato, in base alle mie preferenze.

Rispondo con il mio certificato, che include la mia chiave pubblica, in modo che lui possa verificare chi sono.

Passaggio numero tre: Shaka verticale. Ovvero: Scambio delle chiavi con il client.

Verifico il certificato di Compugter in modo da essere sicuro che egli sia chi dice di essere.

Genero una chiave 'pre-master', in modo da poterla usare entrambi più tardi, quando genereremo una chiave univoca.

Cifro questa chiave pre-master con la chiave pubblica di Compugter e poi gliela invio.

Quarto passaggio: ruoto lo Shaka orizzontalmente. Ovvero: protocollo Change Cipher Spec.

Utilizzo la mia chiave privata per decifrare la chiave pre-master.

Fino a qui la comunicazione tra di loro è stata in chiaro: non hanno protetto nessun messaggio.

Ma hanno usato chiavi asimmetriche (chiavi pubbliche e private) per cifrare la chiave pre-master, in modo che nessuno potesse spiarla.

Ora generano entrambi lo stesso 'segreto condiviso' che useranno come una chiave simmetrica.
E Browserbird invia un test.
Compugter risponde.
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