TLS: come è crittografato il traffico Internet

All’inizio dell'era digitale la sicurezza dei dati ricopriva un ruolo minore rispetto a oggi. Tutte le comunicazioni erano trasmesse da un computer all'altro in maniera aperta e non crittografata. Immaginiamo questo processo come se si trattasse di una cartolina: qualsiasi postino potrebbe leggerla.

Il protocollo TLS, chiamato anche SSL/TLS, ha introdotto la crittografia dei contenuti trasmessi. Per utilizzare lo stesso paragone di prima, questa crittografia è come una busta da lettera chiusa con un sigillo, che può essere aperta soltanto dal legittimo destinatario.

Cos’è il TLS?

L'abbreviazione TLS sta per Transport Layer Security, che tradotto significa “sicurezza del livello di trasporto”. Questa denominazione si riferisce al “livello di trasporto” del Modello TCP/IP. Il TLS è il processo per crittografare il flusso di dati sulla rete, affinché questi siano letti soltanto dai legittimi destinatari. Il nome precedente era SSL (Secure Socket Layer). Poiché questa abbreviazione è ancora più conosciuta di TLS, il TLS viene spesso indicato con il doppio nome “SSL/TLS”.

Come funziona il TLS?

Il TLS codifica tutto il traffico dati sviluppato attraverso il protocollo TCP mediante un cifrario simmetrico.

N.B.

Nel nostro articolo di approfondimento troverete informazioni di approfondimento sui cifrari menzionati.

Quello che in teoria sembra facile, in realtà è più complesso. Il problema principale è che il server deve comunicare la chiave al client, e questo prima di proteggere la comunicazione con un TLS. Chi invia allegati in forma crittografata conosce questo problema: si codifica un dato e bisogna comunicare la chiave segreta al destinatario, ad esempio per telefono.

Il protocollo TLS applica il seguente processo per risolvere il problema:

  1. Quando il client, ad esempio un browser, si mette in contatto con il server, quest’ultimo gli invia prima di tutto il suo certificato. Questo Certificato SSL dimostra che si tratta di un server autentico e non di una falsa identità.
  2. Il client verifica la validità del certificato e invia al server una cifra casuale, crittografata con la chiave pubblica (Public Key) del server.
  3. Da questa cifra casuale il server crea una chiave di sessione (Session Key) che servirà a crittografare la comunicazione. Poiché la cifra casuale è generata dal client, si può essere certi che la chiave di sessione sia realmente generata dal server destinatario.
  4. Il server invia la chiave di sessione al client in forma crittografata. Questa operazione di crittografia avviene con l’ausilio dello scambio di chiavi Diffie-Hellman.
  5. Adesso entrambe le parti possono inviare i loro dati in sicurezza grazie alla chiave di sessione.

Il motivo per cui la crittografia asimmetrica viene utilizzata soltanto per la trasmissione di una chiave di sessione (ma non per la crittografia dello stesso flusso di dati) è un vantaggio in termini di velocità: la crittografia asimmetrica è infatti un processo relativamente lento e ritarderebbe la comunicazione.

Vantaggi e svantaggi di TLS

Il TLS è una soluzione elegante per organizzare in sicurezza il traffico dati sul web. Il motivo è che non richiede a entrambe le parti di crittografare autonomamente i contenuti, per esempio i dati di un formulario. Basta che il traffico venga gestito tramite il protocollo TLS, indipendentemente dal sistema operativo e dalle applicazioni software utilizzati dalle parti coinvolte. Tutto il flusso di dati viene crittografato autonomamente durante la trasmissione.

Il prezzo da pagare per la sicurezza è un collegamento un po’ più lento, poiché i processi sopra descritti (certificato, cifra casuale, scambio di chiavi) richiedono operazioni intense di calcolo.

Campi di applicazione di TLS

Come già menzionato, il TLS può essere utilizzato universalmente perché funziona indipendentemente dalle applicazioni e dai sistemi operativi. Di conseguenza, per numerosi protocolli applicativi esiste una versione sicura con protocollo TLS. Lo schema di nomenclatura è molto semplice: dietro il nome del protocollo viene inserita la lettera “S”, se il protocollo comunica mediante TLS.

Il campo di applicazione più importante del TLS è il web, o per essere più precisi il Protocollo HTTP. La sua variante crittografata si chiama HTTPS.

Inoltre vale la pena menzionare alcuni frequenti casi d’uso:

  • POP3S: per scaricare e-mail dal server con il protocollo POP3
  • IMAPS: per sincronizzare la posta in arrivo con il server mediante il protocollo IMAP
  • SMTPS: per inviare e-mail
  • FTPS: per trasferire file con un protocollo FTP
  • SIPS: telefonia Voice-over-IP con il protocollo SIP
  • IRCS: chat crittografate

Anche OpenVPN, un software open source per creare una rete virtuale privata (VPN) sfrutta il protocollo TLS.

Implementazioni di TLS

Importanti implementazioni di TLS sono:

  • OpenSSL - l’implementazione più frequente, utilizzata per la maggior parte dei siti HTTPS
  • GnuTLS (Free Software Foundation)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Cryptlib (Peter Gutmann)
  • Botan (Licenza BSD, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Questa lista non è completa. Ulteriori informazioni sulle implementazioni di TLS sono disponibili su wikipedia in inglese.

Attacchi noti a TLS

Neanche TLS è totalmente sicuro contro gli attacchi e le perdite. Sono conosciuti i seguenti punti di attacco:

  • Errori di programmazione: è diventato famoso l’Heartbleed Bug, un serio errore di programmazione delle prime versioni di OpenSSL. È stato corretto nel 2014.
  • Crittografie deboli: come conseguenza delle restrizioni all'esportazione della crittografia negli USA, sono state sviluppate versioni “esportabili”, più facili da violare rispetto alle originali.
  • Attacchi di compressione: quando si utilizza la compressione HTTP invece di quella TLS, gli hacker riescono a indovinare i contenuti crittografati TLS seguendo processi precisi.
  • L'attacco BEAST riguarda la versione 1.0 di TLS ed è stato risolto già nel 2014. Le versioni attuali di TLS sono protette.
  • L’attacco Padding Oracle è stato scoperto nel 2002 ed è stato possibile fino alla versione 3.0 di SSL. La versione attuale 1.3 di TLS è al sicuro da questo attacco.

Inoltre ci sono stati vari tentativi di impedire una crittografia completamente sicura di TLS affinché le autorità potessero venire a conoscenza dei contenuti delle comunicazioni, per esempio in relazione a transazioni finanziarie e attività criminali. Una delle organizzazioni che ha tentato di provocare tali “crepe” di TLS è stata l’ETSI (Istituto Europeo per gli Standard nelle Telecomunicazioni).


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.