# TLS (Transport Layer Security)

TLS (Transport Layer Security) è un protocollo di crittografia che garantisce trasmissioni dati sicure su internet. È il successore del vecchio SSL e oggi viene utilizzato quasi esclusivamente nella versione TLS 1.3.

## Cos’è il protocollo TLS?

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 o postina 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 o dalla legittima destinataria.

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](https://www.ionos.it/digitalguide/server/know-how/presentazione-dei-protocolli-tcpip/). TLS è il **processo per crittografare il flusso di dati sulla rete**, affinché questi siano letti soltanto dai legittimi destinatari o dalle legittime destinatarie.

N.B. Il nome precedente era SSL (Secure Socket Layer). Poiché questa abbreviazione è ancora più conosciuta di TLS, questo protocollo viene spesso indicato con il doppio nome “SSL/TLS”.

## Come funziona il protocollo TLS?

TLS codifica tutto il traffico dati sviluppato attraverso il protocollo TCP mediante un processo di crittografia simmetrico.

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 TLS. Chi invia allegati in forma crittografata conosce questo problema: si codifica un dato e bisogna comunicare la chiave segreta al destinatario o alla destinataria, ad esempio per telefono.

Il protocollo TLS, il cui standard attuale è la versione 1.3 dal 2018, applica il seguente procedimento per risolvere questo problema:

1. **ClientHello**: il client (ad esempio un [browser](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/cosa-sono-i-browser/)) invia al server un primo messaggio con informazioni sulle crittografie supportate. Tra queste ci sono le suite di cifratura, le versioni del protocollo, un valore casuale e un proprio valore di [scambio chiavi Diffie-Hellman](https://it.wikipedia.org/wiki/Scambio_di_chiavi_Diffie-Hellman "Articolo di Wikipedia sullo scambio di chiavi Diffie-Hellman") (valore ECDHE). È possibile inviare già facoltativamente il primo blocco di dati crittografato.
2. **ServerHello**: il server sceglie i parametri adeguati e invia la sua risposta, inclusi il suo valore ECDHE e il suo certificato digitale. Questo [certificato SSL](https://www.ionos.it/digitalguide/siti-web/creare-siti/certificato-ssl/) dimostra che il server è autentico e non sta simulando una falsa identità. Contemporaneamente, inizia il calcolo della chiave di sessione.
3. **Calcolo della chiave**: entrambe le parti calcolano ora in maniera indipendente la stessa chiave di sessione (Session Key) basandosi sulla chiave concordata in comune.
4. Il server completa l’handshake e inizia la comunicazione crittografata. Anche il client fa lo stesso; la connessione è ora completamente sicura.

N.B. Rispetto alle versioni precedenti, l’handshake TLS nella versione 1.3 è notevolmente più snello e sicuro. L’intero processo descritto qui richiede solo una singola trasmissione di andata e ritorno (1 RTT), accelerando sensibilmente la connessione.

Il motivo per cui la [crittografia asimmetrica](https://www.ionos.it/digitalguide/server/sicurezza/crittografia-a-chiave-pubblica/) Diffie-Hellman 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 protocollo 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 protocollo 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. Nella maggior parte de casi, 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 di TLS è il web, o per essere più precisi il [protocollo HTTP](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/protocollo-http/). La sua variante crittografata si chiama [**HTTPS**](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/cose-https/).

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

- **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
- **[QUIC](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/quic-il-protocollo-di-trasporto-dati-basato-su-udp/)**: il protocollo di trasporto di Google che integra direttamente TLS 1.3; un’alternativa a TCP per connessioni web più veloci e sicure (ad esempio con HTTP/3)

Anche OpenVPN, un software open source per creare una [rete virtuale privata (VPN)](https://www.ionos.it/digitalguide/server/know-how/che-cose-una-vpn-virtual-private-network/) sfrutta il protocollo TLS.

## Implementazioni di TLS

Le più 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)
- **Rustls** (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas e la community Open Source)
- **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](https://en.wikipedia.org/wiki/Comparison_of_TLS_implementations "Wikipedia: confronto delle implementazioni di TLS").

## 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.
- L’**attacco ALPACA** del 2021 mostra come i certificati TLS su server configurati in modo errato possano essere sfruttati per reindirizzare utenti verso altri servizi, intercettando o manipolando i dati.

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).


This is a markdown version of: [https://www.ionos.it/digitalguide/server/sicurezza/tls-transport-layer-security/](https://www.ionos.it/digitalguide/server/sicurezza/tls-transport-layer-security/) for AI/LLM consumption.