Cos'è TLS? Crittografia di sicurezza a livello di trasporto spiegato in inglese semplice

Se vuoi avere una conversazione confidenziale con qualcuno che conosci, potresti incontrarti di persona e trovare un luogo privato per parlare.

Ma se desideri inviare dati in modo riservato su Internet, potresti avere qualche considerazione in più da coprire.

TLS, o Transport Layer Security, fa riferimento a un protocollo. "Protocollo" è una parola che significa "il modo in cui abbiamo deciso di fare le cose da queste parti", più o meno.

La parte "livello di trasporto" di TLS si riferisce semplicemente alla comunicazione host-to-host, come il modo in cui un client e un server interagiscono, nel modello della suite di protocolli Internet.

Il protocollo TLS cerca di risolvere questi problemi fondamentali:

  • Come faccio a sapere che sei chi dici di essere?
  • Come faccio a sapere che questo tuo messaggio non è stato manomesso?
  • Come possiamo comunicare in modo sicuro?

Ecco come funziona TLS, spiegato in un inglese semplice. Come per molte interazioni riuscite, inizia con una stretta di mano.

Conoscerti, riuscire a conoscerti

Il processo di base di un handshake TLS coinvolge un client, come il browser Web, e un server, come quello che ospita un sito Web, che stabilisce alcune regole di base per la comunicazione.

Inizia con il cliente che saluta. Letteralmente. Si chiama messaggio ClientHello .

Il messaggio ClientHello comunica al server quale versione del protocollo TLS e suite di crittografia supporta.

Sebbene "cipher suite" suoni come un bizzarro aggiornamento di un hotel, si riferisce semplicemente a un insieme di algoritmi che possono essere utilizzati per proteggere le comunicazioni.

Il server, in un messaggio ServerHello chiamato in modo simile , sceglie la versione del protocollo e la suite di crittografia da utilizzare tra le scelte offerte. Possono essere inviati anche altri dati, ad esempio un ID di sessione , se il server supporta la ripresa di un precedente handshake.

A seconda della suite di cifratura scelta, il client e il server si scambiano ulteriori informazioni per stabilire un segreto condiviso.

Spesso, questo processo sposta lo scambio dalla crittografia asimmetrica alla crittografia simmetrica con diversi livelli di complessità. Esploriamo questi concetti a livello generale e vediamo perché sono importanti per TLS.

Inizi asimmetrici

Questa è l'asimmetria:

La crittografia asimmetrica è un metodo con cui è possibile eseguire l' autenticazione . Quando ti autentichi, rispondi alla domanda fondamentale: "Come faccio a sapere che sei chi dici di essere?"

In un sistema crittografico asimmetrico, utilizzi una coppia di chiavi per ottenere l'autenticazione. Queste chiavi sono asimmetriche. Una chiave è la tua chiave pubblica, che, come puoi immaginare, è pubblica. L'altra è la tua chiave privata, che - beh, lo sai.

In genere, durante l'handshake TLS, il server fornirà la sua chiave pubblica tramite il suo certificato digitale, a volte chiamato ancora certificato SSL , sebbene TLS sostituisca il protocollo Secure Sockets Layer (SSL) deprecato.

I certificati digitali sono forniti e verificati da terze parti fidate note come Autorità di certificazione (CA), che sono un altro articolo in sé.

Sebbene chiunque possa crittografare un messaggio utilizzando la tua chiave pubblica, solo la tua chiave privata può decrittografare quel messaggio.

La sicurezza della crittografia asimmetrica si basa solo sul fatto che la tua chiave privata rimanga privata, da qui l'asimmetria.

È anche asimmetrico nel senso che è un viaggio di sola andata. Alice può inviarti messaggi crittografati con la tua chiave pubblica, ma nessuna delle tue chiavi ti aiuterà a inviare un messaggio crittografato ad Alice.

Segreti simmetrici

La crittografia asimmetrica richiede anche più risorse di calcolo rispetto alla crittografia simmetrica.

Pertanto, quando un handshake TLS inizia con uno scambio asimmetrico, il client e il server utilizzeranno questa comunicazione iniziale per stabilire un segreto condiviso, a volte chiamato chiave di sessione . Questa chiave è simmetrica, il che significa che entrambe le parti utilizzano lo stesso segreto condiviso e devono mantenere tale segretezza affinché la crittografia sia sicura.

Utilizzando la comunicazione asimmetrica iniziale per stabilire una chiave di sessione, il client e il server possono fare affidamento sul fatto che la chiave di sessione sia nota solo a loro. Per il resto della sessione, useranno entrambi la stessa chiave condivisa per crittografare e decrittografare i messaggi, il che accelera la comunicazione.

Sessioni protette

Un handshake TLS può utilizzare la crittografia asimmetrica o altre suite di crittografia per stabilire la chiave di sessione condivisa. Una volta stabilita la chiave di sessione, la parte di handshaking è completa e la sessione ha inizio.

La sessione è la durata della comunicazione crittografata tra il client e il server. Durante questo periodo, i messaggi vengono crittografati e decrittografati utilizzando la chiave di sessione che solo il client e il server hanno. Ciò garantisce che la comunicazione sia sicura.

L'integrità delle informazioni scambiate viene mantenuta utilizzando un checksum. Ai messaggi scambiati utilizzando le chiavi di sessione è allegato un codice MAC (Message Authentication Code). Non è la stessa cosa dell'indirizzo MAC del tuo dispositivo. Il MAC viene generato e verificato utilizzando la chiave di sessione.

Per questo motivo, entrambe le parti possono rilevare se un messaggio è stato modificato prima di essere ricevuto. Questo risolve la domanda fondamentale: "Come faccio a sapere che questo tuo messaggio non è stato manomesso?"

Le sessioni possono terminare deliberatamente, a causa della disconnessione dalla rete o perché il client rimane inattivo troppo a lungo. Una volta che una sessione termina, deve essere ristabilita tramite un nuovo handshake o tramite segreti precedentemente stabiliti chiamati ID di sessione che consentono di riprendere una sessione.

TLS e tu

Ricapitoliamo:

  • TLS è un protocollo crittografico per fornire comunicazioni sicure.
  • Il processo di creazione di una connessione sicura inizia con una stretta di mano.
  • L'handshake stabilisce una chiave di sessione condivisa che viene quindi utilizzata per proteggere i messaggi e fornire l'integrità dei messaggi.
  • Le sessioni sono temporanee e, una volta terminate, devono essere ristabilite o riprese.

Questa è solo una panoramica a livello superficiale dei sistemi crittografici molto complessi che aiutano a mantenere le tue comunicazioni sicure. Per una maggiore profondità sull'argomento, consiglio di esplorare le suite di cifratura e i vari algoritmi supportati.

Il protocollo TLS ha uno scopo molto importante nella tua vita quotidiana. Aiuta a proteggere le tue e-mail alla famiglia, le tue attività bancarie online e il collegamento con cui stai leggendo questo articolo.

Il protocollo di comunicazione HTTPS è crittografato utilizzando TLS. Ogni volta che vedi quella piccola icona del lucchetto nella barra degli URL, stai sperimentando in prima persona tutti i concetti di cui hai appena letto in questo articolo.

Quindi ora conosci la risposta all'ultima domanda: "Come possiamo comunicare in modo sicuro?"