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.
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.
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:
Il protocollo TLS applica il seguente processo per risolvere il problema:
- 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à.
- Il client verifica la validità del certificato e invia al server una cifra casuale, crittografata con la chiave pubblica (Public Key) del server.
- 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.
- 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.
- Adesso entrambe le parti possono inviare i loro dati in sicurezza grazie alla chiave di sessione.
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.
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:
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
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)
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.