TLS (Transport Layer Security) è un protocollo crittografico progettato per fornire comunicazioni sicure su una rete di computer. Ha successo e si basa sul precedente protocollo SSL (Secure Sockets Layer), con l’obiettivo di migliorare la sicurezza, migliorare l’efficienza e affrontare le vulnerabilità riscontrate in SSL. TLS opera al livello di trasporto del modello OSI, proteggendo i canali di comunicazione tra le applicazioni in esecuzione su sistemi client e server. Garantisce la riservatezza, l’integrità e l’autenticazione dei dati crittografando i dati trasmessi sulla rete e verificando l’identità delle parti comunicanti utilizzando certificati digitali.
In sintesi, TLS stabilisce una connessione sicura tra un client e un server negoziando algoritmi di crittografia, scambiando chiavi e autenticando le identità. Protegge le informazioni sensibili come credenziali di accesso, transazioni finanziarie e dati personali da accessi e intercettazioni non autorizzati. TLS mira a fornire robuste funzionalità di sicurezza mantenendo la compatibilità con i protocolli e le applicazioni esistenti, garantendo comunicazioni sicure tra vari servizi e applicazioni di rete.
TLS sta per Transport Layer Security e sostituisce il precedente protocollo SSL (Secure Sockets Layer). Il cambiamento nella denominazione da SSL a TLS riflette miglioramenti e miglioramenti significativi nei protocolli di sicurezza e negli algoritmi crittografici. TLS incorpora algoritmi di crittografia più potenti, meccanismi di autenticazione migliorati e una migliore resistenza agli attacchi e alle vulnerabilità identificate nelle versioni precedenti di SSL. La transizione da SSL a TLS significa uno spostamento verso metodi più sicuri e affidabili per stabilire canali di comunicazione crittografati su Internet e altre reti di computer.
Il processo TLS prevede diversi passaggi chiave per stabilire una connessione sicura e crittografata tra un client e un server:
- Handshake: il processo di handshake TLS inizia con l’invio da parte del client di un messaggio “ClientHello” al server, specificando le versioni TLS supportate e gli algoritmi di crittografia.
- Risposta del server: il server risponde con un messaggio “ServerHello”, selezionando la versione TLS più alta e la suite di crittografia più potente compatibile con le preferenze del client.
- Scambio di certificati: il server invia il proprio certificato digitale al client, contenente la sua chiave pubblica e altre informazioni identificative. Il client verifica l’autenticità del certificato rispetto ad autorità di certificazione (CA) attendibili.
- Scambio di chiavi: utilizzando la crittografia asimmetrica, il client e il server si scambiano chiavi di sessione simmetriche da utilizzare per crittografare e decrittografare i dati durante la sessione TLS.
- Crittografia: una volta stabilite le chiavi di sessione, i dati scambiati tra il client e il server vengono crittografati e decrittografati utilizzando algoritmi di crittografia simmetrica concordati durante l’handshake.
- Stabilimento della connessione: con l’handshake completo e le chiavi di sessione sicure stabilite, il protocollo TLS garantisce una comunicazione crittografata e autenticata tra il client e il server.
TLS opera al livello di trasporto (Layer 4) del modello OSI (Open Systems Interconnection). Protegge i canali di comunicazione tra le applicazioni in esecuzione su sistemi client e server, posizionandosi sopra il livello TCP (Transmission Control Protocol) e sotto il livello dell’applicazione (Livello 7). Operando a livello di trasporto, TLS garantisce che i dati scambiati tra le applicazioni siano crittografati, autenticati e protetti da accessi non autorizzati o manomissioni durante la trasmissione. Questa posizione consente a TLS di fornire comunicazioni sicure per vari protocolli a livello di applicazione come HTTP (in HTTPS), SMTP, FTPS e altri, garantendo la sicurezza end-to-end in un’ampia gamma di servizi e applicazioni di rete.