Cos'è Transport Layer Security (TLS)?

Autori

Alexandra Jonker

Staff Editor

IBM Think

Tom Krantz

Staff Writer

IBM Think

Cos'è Transport Layer Security (TLS)?

Transport Layer Security (TLS) è un protocollo crittografico che aiuta a proteggere le comunicazioni su reti informatiche non protette, come Internet.

Attraverso varie tecniche di crittografia asimmetrica e simmetrica, il protocollo TLS fornisce autenticazione end-to-end, riservatezza e integrità dei dati. Queste protezioni si applicano a un'ampia gamma di comunicazioni di rete, tra cui e-mail, messaggistica, VoIP (Voice over IP) e reti private virtuali (VPN).

Il protocollo TLS è ampiamente riconosciuto per la creazione di connessioni sicure per la navigazione web. È la base dell'Hypertext Transfer Protocol Secure (HTTPS), un protocollo a livello di applicazione che consente lo scambio di dati crittografati tra le applicazioni web e la maggior parte dei principali browser web.

Il protocollo di crittografia TLS ha due livelli: il protocollo di handshake TLS e il protocollo di registrazione TLS. Il protocollo di handshake autentica il server web e il client (il dispositivo che si connette al server). Il protocollo di registrazione verifica e protegge i dati per il trasporto.

Questi livelli si trovano al di sopra di un protocollo di trasporto, come quello del modello Transmission Control Protocol/Internet Protocol (TCP/IP), una suite di protocolli che specificano gli standard di comunicazione tra computer e sono considerati "il collante che tiene insieme Internet".1

Le ultime notizie nel campo della tecnologia, supportate dalle analisi degli esperti

Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

SSL e TLS a confronto

Il protocollo TLS è il successore dello standard di protocollo Secure Sockets Layer (SSL) sviluppato da Netscape Communications Corporation. Nel 1996, l'Internet Engineering Task Force (IETF) ha formalmente standardizzato il protocollo SSL.

Nel gennaio 1999, l'IETF ha apportato miglioramenti e risolto le vulnerabilità all'ultima versione di SSL (SSL 3.0), cambiando il nome in Transport Layer Security. È stato formalmente definito nella richiesta di commenti (RFC) 2246. Attualmente, i termini "TLS" e "SSL" vengono spesso utilizzati in modo intercambiabile o come TLS/SSL.

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Perché utilizzare TLS?

Definito "il protocollo di sicurezza più importante su Internet" dall'IETF, il TLS è critico per proteggere le comunicazioni online dagli accessi non autorizzati. La sua ultima versione, TLS 1.3, offre una sicurezza più elevata e veloce e funge da spina dorsale del mondo digitale sicuro di oggi.

Quasi il 68% della popolazione globale è online,2 con miliardi di persone che si affidano a Internet ogni giorno per tutto, dagli acquisti e le operazioni bancarie, fino all'assistenza sanitaria e alle comunicazioni personali. In tutti questi casi d'uso, la protezione dei dati sensibili è essenziale. Ciò significa proteggerli da hacker, manomissioni, intercettazioni e altre minacce alla cybersecurity, come violazioni dei dati, malware o attacchi man-in-the-middle.

Il protocollo TLS è alla base dell'HTTPS, ovvero il protocollo di sicurezza standard per i siti web. L'icona del lucchetto HTTPS, una caratteristica ormai familiare nei browser web, segnala agli utenti che un sito web è affidabile e sicuro.

L'icona indica anche che un sito web dispone di un certificato TLS valido (noto anche come certificato SSL). Questa credenziale digitale, emessa da un'autorità di certificazione (CA), verifica l'identità di un sito web e rende la connessione crittografata. Per dare un'idea della portata dell'utilizzo di TLS e HTTPS, basti pensare che un importante provider di certificati TLS emette più di 340.000 certificati all'ora

Il protocollo TLS garantisce una comunicazione Internet sicura rafforzando tre proprietà fondamentali di un canale sicuro:

Autenticazione

Verifica le identità del mittente e del destinatario, nonché l'origine e la destinazione dei dati.

Riservatezza

Garantisce che i dati siano accessibili solo al destinatario previsto.

Integrità

Assicura che i dati non possano essere modificati durante lo storage o la trasmissione senza che vengano rilevate eventuali modifiche.

Come funziona TLS?

Il protocollo Transport Layer Security è efficace perché si basa su processi crittografici per proteggere le informazioni trasmesse.

La parola crittografia deriva dal greco “kryptos”, ovvero “nascosto”. Lo scopo principale della crittografia è quello di proteggere e oscurare le comunicazioni mediante la crittografia, un processo in cui algoritmi complessi convertono messaggi leggibili (testo in chiaro) in messaggi codificati (testo cifrato). Il testo cifrato può essere decrittografato in un formato leggibile solo da un destinatario autorizzato, utilizzando una chiave specifica.

Nel contesto della crittografia, come la crittografia TLS, una chiave è una stringa casuale di numeri o lettere. Se utilizzato con un algoritmo crittografico, crittografa (blocca) o decrittografa (sblocca) le informazioni. Gli algoritmi utilizzati per crittografare e decrittografare i dati trasferiti su una rete si dividono solitamente in due categorie: crittografia a chiave segreta e crittografia a chiave pubblica.

Crittografia a chiave segreta

Noto anche come crittografia simmetrica o crittografia a chiave simmetrica, questo sistema crea un'unica chiave condivisa per crittografare e decrittografare i dati sensibili. La crittografia simmetrica è semplice ed efficiente, tuttavia si basa sullo scambio sicuro e la gestione meticolosa delle chiavi.

La maggior parte dei dati sensibili trasmessi in una sessione TLS viene inviata utilizzando la crittografia a chiave segreta. Il protocollo TLS utilizza funzioni crittografiche hash per contribuire a garantire la privacy e l'integrità dei dati. Le funzioni hash generano un valore hash di dimensioni fisse dai dati di input. Questo valore funge da impronta digitale che può essere confrontata prima e dopo la trasmissione. Se l'hash è cambiato, significa che qualcuno ha manomesso i dati.

Un codice di autenticazione del messaggio (MAC) è simile a un hash crittografico, con la differenza che autentica anche il mittente. Applica una chiave segreta ai messaggi con hash e l'hash risultante è noto come codice di autenticazione dei messaggi con hash (HMAC).

Crittografia a chiave pubblica

Noto anche come crittografia asimmetrica o crittografia a chiave pubblica, questo sistema utilizza una coppia di chiavi collegate matematicamente (una pubblica e una privata) per crittografare e decrittografare i dati. Consente a persone e sistemi di scambiare informazioni sensibili senza dover condividere preventivamente una chiave segreta. È paragonabile a una casella di posta: chiunque può inserire una lettera, ma solo il proprietario può sbloccarne e recuperarne i contenuti.

Queste funzionalità consentono di stabilire l'attendibilità quando vengono integrate con l'infrastruttura a chiave pubblica (PKI). Ad esempio, i certificati a chiave pubblica (noti anche come certificati digitali o certificati SSL/TLS), associano le chiavi pubbliche alle identità verificate tramite un'autorità di certificazione.

Forniscono anche la base per le firme digitali, ovvero un componente dei certificati digitali utilizzati nel protocollo TLS per autenticare un client o un server web. Una volta creato un hash crittografico per un messaggio, l'hash viene crittografato con la chiave privata del mittente.

Questo hash crittografato è la firma digitale. La firma può essere verificata da chiunque utilizzi la chiave pubblica, fornendo la convalida dell'identità del mittente e dell'integrità dei dati.

Quali sono i due livelli TLS?

Il protocollo TLS ha due protocolli secondari: il protocollo di handshake TLS e il protocollo di registrazione TLS. I passaggi esatti possono variare a seconda della versione di TLS.

Il protocollo di handshake TLS

L'handshake TLS stabilisce una connessione sicura tra il client e il server web. Utilizzando la crittografia a chiave pubblica, il server (e talvolta il client) viene autenticato utilizzando un certificato digitale. Il client e il server concordano quindi una suite di crittografia (un set di algoritmi di crittografia) ed eseguono uno scambio di chiavi per stabilire in modo sicuro le chiavi di sessione condivise (chiavi segrete per la crittografia e l'hashing).

Una volta stabilite le chiavi della sessione, la sessione sicura è considerata configurata. Da questo momento in poi, la crittografia a chiave pubblica non viene più utilizzata e tutti i dati successivi trasmessi vengono crittografati e autenticati utilizzando la crittografia a chiave segreta.

(Per ulteriori dettagli, vedere: "Quali sono i passaggi di un handshake TLS?")

Il protocollo di registrazione TLS

Il protocollo di registrazione è responsabile della protezione dei dati trasmessi durante la connessione TLS. Per fare ciò, utilizza la suite di crittografia e le chiavi negoziate durante l'handshake come una sorta di ricetta per proteggere i dati.

La suite di crittografia definisce quali algoritmi devono essere utilizzati per lo scambio delle chiavi, la crittografia e l'autenticazione dei messaggi. Le chiavi simmetriche (segrete) vengono utilizzate per crittografare i dati in uscita e decrittografare i dati in entrata. Le chiavi sono utilizzate anche per creare codici di autenticazione dei messaggi, che verificano l'integrità dei dati.

Attraverso questi meccanismi, il protocollo di registrazione garantisce l'autenticazione, l'integrità e la riservatezza della connessione.

Quali sono i passaggi di un handshake TLS?

I passaggi esatti di un handshake TLS variano in base alla versione di TLS. Il completamento può richiedere dai 200 ai 300 millisecondi, o appena 100 millisecondi (ovviamente, la durata esatta dipende dalla latenza, dal tempo di andata e ritorno (RTT), dalle prestazioni del server e da altre considerazioni sulla rete).

Questa illustrazione utilizza TLS 1.3, ovvero la versione TLS più veloce, recente e sicura.

1. Hello del client

Il client invia un messaggio ClientHello con la versione TLS supportata (TLS 1.3), le cipher suite, una stringa di byte casuale (client_random) e una condivisione di chiavi effimera, il tutto utilizzando il metodo di scambio di chiavi Elliptic Curve Diffie-Hellman Ephemeral (ECDHE).

2. Hello del server e scambio di chiavi

Il server risponde con un messaggio ServerHello contenente la cipher suite selezionata, un'altra stringa di byte casuale (server_random) e il proprio ephemeral key share. Questo passaggio stabilisce i parametri di scambio delle chiavi.

Ora entrambe le parti possono elaborare un segreto condiviso utilizzando ECDHE. Questo segreto condiviso viene utilizzato per derivare le chiavi di handshake.

Il server invia quindi il certificato digitale, un messaggio CertificateVerify (firmato con la sua chiave privata) e un messaggio Finished (crittografato con la chiave di handshake).

(Facoltativo: se il server richiede l'autenticazione del client, invia una CertificateRequest. Il client risponde quindi con il suo certificato e con un messaggio CertificateVerify.)

3. Autenticazione e fine

Il client verifica che il certificato del server sia emesso da un'autorità di certificazione affidabile, sia valido e non revocato e che il dominio corrisponda. Verifica inoltre il messaggio CertificateVerify del server utilizzando la chiave pubblica del server contenuta nel certificato e il messaggio Finished utilizzando la chiave di handshake.

Il client invia il proprio messaggio Finished utilizzando una chiave di handshake e l'handshake viene confermato come completato.

A questo punto, entrambe le parti si sono autenticate a vicenda e hanno stabilito una chiave segreta condivisa. Ora possono scambiare messaggi utilizzando la crittografia simmetrica.

Quali metodi di scambio delle chiavi utilizza TLS?

I metodi di scambio delle chiavi aiutano gli utenti a scambiare in modo sicuro le chiavi crittografiche. Esistono diversi metodi di scambio delle chiavi utilizzati per implementare il protocollo TLS, tra cui:

Diffie-Hellman (DH)

Diffie-Hellman è uno dei metodi di scambio di chiavi più comuni. Si tratta di un protocollo di scambio di chiavi asimmetriche che consente a due parti, senza alcuna conoscenza preliminare dell'altra, di generare una chiave segreta condivisa per comunicazioni sicure su un canale non sicuro. La sua sicurezza si basa sulla difficoltà di risolvere il problema del logaritmo discreto, un problema matematico complesso che rende computazionalmente impossibile decifrare il segreto condiviso.

Esistono diverse varianti dello scambio di chiavi Diffie-Hellman, tra cui:

  • Diffie-Hellman ephemeral (DHE): nel DHE, "effimero" significa che per ogni sessione viene generata una chiave temporanea o monouso. Ciò garantisce la segretezza futura, o segretezza in avanti, garantendo che la compromissione delle chiavi a lungo termine non comprometta le sessioni passate. Il DHE è comunemente usato in TLS 1.2, sebbene TLS 1.2 supporti sia DH che DHE.

  • Elliptic Curve Diffie-Hellman (ECDH): l'ECDH è simile al DH ma utilizza la crittografia a curva ellittica, che offre una maggiore sicurezza con chiavi di dimensioni inferiori. I calcoli ECDH sono quindi più veloci e richiedono meno risorse. Tuttavia, le suite di crittografia non effimere non sono consigliate dall'IETF a causa della mancanza di segretezza in avanti.

  • Elliptic Curve Diffie-Hellman Ephemeral (ECDHE): questa è la versione effimera di ECDH, in cui vengono generate chiavi temporanee per ogni sessione, garantendo la segretezza in avanti. È il metodo di scambio delle chiavi obbligatorio per TLS 1.3.

Rivest-Shamir-Adleman (RSA)

RSA è un algoritmo di crittografia asimmetrica che si basa sulla complessità matematica della fattorizzazione di grandi numeri primi per generare coppie di chiavi. Poiché utilizza una coppia di chiavi pubbliche e private per la crittografia e la decrittografia, questo lo rende adatto alla trasmissione sicura dei dati e alle firme digitali. RSA non è supportato in TLS 1.3 per lo scambio di chiavi a causa di problemi di sicurezza (non fornisce la segretezza in avanti). Tuttavia, può essere utilizzato per l'autenticazione.

Chiave pre-condivisa (PSK)

Un PSK è una chiave segreta condivisa che è stata precedentemente condivisa tra le due parti utilizzando un canale sicuro prima della sessione TLS. Gli utenti possono stabilire un PSK durante un handshake TLS e quindi utilizzarlo per stabilire una nuova connessione in un altro handshake; questa operazione è denominata ripresa della sessione con un PSK. Si consiglia di utilizzare PSK con DHE o ECDHE per garantire la segretezza in avanti.

Qual è la versione più recente del protocollo TLS?

Dalla versione iniziale di TLS 1.0 nel 1999 (che era un aggiornamento alla versione SSL 3.0), l'IETF ha rilasciato tre versioni TLS successive:

  • TLS 1.1, specificato in RFC 4346, aprile 2006: questa versione conteneva piccoli miglioramenti editoriali e di sicurezza, nonché chiarimenti.

  • TLS 1.2, specificato in RFC 5246, agosto 2008: questa versione è un aggiornamento di TLS 1.1 e migliora notevolmente la flessibilità nella negoziazione degli algoritmi crittografici.

  • TLS 1.3, specificato in RFC 8446, agosto 2018: quest'ultimo aggiornamento migliora la sicurezza, le prestazioni e la privacy riducendo la latenza con un tempo di andata e ritorno pari a zero (0-RTT) e semplificando la negoziazione, tra le altre modifiche.

È importante notare che, sebbene TLS 1.3 possa essere implementato con una modalità di compatibilità con le versioni precedenti, non è direttamente compatibile con le versioni precedenti di TLS. 

Soluzioni correlate
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Center è una piattaforma software compatibile con OpenStack per gestire l'infrastruttura di cloud privati su IBM zSystems e IBM LinuxONE.

Esplora Cloud Infrastructure Center
Soluzioni per l'infrastruttura IT

Scopri i server, lo storage e il software progettati per l'hybrid cloud e la strategia AI della tua azienda.

Scopri le soluzioni per le infrastrutture IT
Soluzioni per l'infrastruttura cloud

Trova la soluzione di infrastruttura cloud adatta alle esigenze della tua azienda e scala le risorse on-demand.

Soluzioni cloud
Fai il passo successivo

Trasforma la sua infrastruttura aziendale con l'hybrid cloud e le soluzioni pensate per l'AI di IBM. Scopri i server, lo storage e i software progettati per proteggere, scalare e modernizzare la tua azienda o ascolta i pareri degli esperti per migliorare la tua strategia di AI generativa.

Scopri le soluzioni per le infrastrutture IT Scarica l'ebook