Magazine

Navigare in sicurezza con TLS 1.2 e 1.3

17/05/2022
Navigare in sicurezza con TLS 1.2 e 1.3
PMIPrivatiProfessionistiPubblica Amministrazione
TLS (Transport Layer Security) è un protocollo crittografico che garantisce la sicurezza delle comunicazioni nonché l’origine e l’integrità dei dati veicolati attraverso di esse.

La cifratura delle informazioni scambiate tramite un’implementazione di TLS rende queste ultime confidenziali grazie all’adozione di algoritmi per la crittografia end-to-end; in tal modo qualsiasi messaggio diviene leggibile soltanto al mittente e al destinatario, escludendo i soggetti estranei alla comunicazione.

Per questo motivo il protocollo viene utilizzato ampiamente per la protezione e la riservatezza della posta elettronica, delle chat tramite applicazioni per la messaggistica istantanea e della navigazione su Internet.

TLS e HTTPS

Per quanto riguarda il Web, un’applicazione molto nota di TLS è rappresentata da HTTPS (HyperText Transfer Protocol over Secure Socket Layer), conosciuto non a caso anche come HTTP over TLS. Si tratta di un’evoluzione più sicura dello standard HTTP, grazie alla quale le interazioni tra browser e server vengono cifrate e diventano così accessibili soltanto agli interlocutori coinvolti, in quanto possessori delle necessarie chiavi di decriptazione.

Perché questo meccanismo funzioni in modo corretto è però necessario che il browser in uso supporti sia TLS che una versione non obsoleta dello stesso protocollo, le sue specifiche sono infatti stabilite da un’organizzazione, la IETF (Internet Engineering Task Force), che provvede ad aggiornarle definendo quali debbano essere le caratteristiche delle release più recenti.

Quando viene rilasciata una nuova generazione delle specifiche TLS i produttori dei browser si occupano implementarle nelle loro applicazioni, ciò significa però che le versioni più datate di queste ultime non saranno in grado di supportarle pienamente e gli utilizzatori dovranno procedere con un aggiornamento.

Il rischio è infatti quello di navigare in condizioni di sicurezza meno elevate per via di browser che sfruttano ancora versioni deprecate del protocollo.

Quali sono quindi le release di TLS ancora utilizzabili e quali i browser che le supportano?

Nuove versioni ed evoluzione di TLS

TLS 1.0, prima release stabile del progetto, risale al 1999 e, così come avvenuto al suo aggiornamento 1.1 del 2006, è diventata obsoleta nel 2020. TLS 1.2, rilasciata nel 2008, e TLS 1.3 (disponibile dal 2018) sono considerate invece ancora valide dal punto di vista della sicurezza.

I miglioramenti introdotti con le ultime versioni di TLS riguardano in particolare le prestazioni e gli algoritmi di cifratura utilizzati. TLS 1.3 garantisce ad esempio performance più elevate in quanto gestisce l’handshake (il collegamento tra client e server) in modo più efficiente, riduce le latenze velocizzando il caricamento delle risorse e memorizza gli stati delle connessioni già effettuate.

Nello stesso modo, con il suo rilascio sono stati rimossi alcuni algoritmi poiché deprecati, in favore di nuove soluzioni più sicure e non vulnerabili ad attacchi crittografici, utili ad impedire le attività malevole basate, ad esempio, sul tentativo di forzare il downgrade di TLS.

Sulla base delle differenze tra le varie versioni, l’AGID (Agenzia per l'Italia Digitale) ha fornito alcune indicazioni relative alle release che è più sicuro adottare evitando l’impiego delle implementazioni precedenti.
È possibile riassumere quanto comunicato dall’Agenzia tramite i punti proposti di seguito:
  • le versioni TLS 1.0 e 1.1 non dovrebbero essere utilizzate in quanto deprecate;
  • TLS 1.2 rappresenta un requisito minimo;
  • è comunque preferibile una configurazione che integri TLS 1.3.
Analizziamo ora nel dettaglio il contenuto di tali raccomandazioni.

TLS: le raccomandazioni dell’AGID

Il documento “Raccomandazioni AGID in merito allo standard Transport Layer Security (TLS)”, parte dalla considerazione che le versioni precedenti del protocollo sono insicure, o contengono vulnerabilità note, e si concentra in particolare sulle differenze tra TLS 1.2 e TLS 1.3 sottolineando le ragioni per cui la scelta dovrebbe favorire la release più recente.

A favore di TLS 1.3 vi è innanzitutto una suite di cifratura (cipher suite) da cui sono stati dismessi algoritmi e cifrari vulnerabili o inadatti a garantire la PFS (Perfect Forward Secrecy), una proprietà che garantisce che se una chiave di cifratura risulta compromessa, le chiavi prodotte a partire da essa rimangono comunque riservate.

Un’altra caratteristica che rende TLS 1.3 una versione migliore rispetto ai rilasci precedenti riguarda il fatto che essa non mette più a disposizione gli algoritmi di scambio basati sulla coppia “chiave e firma”. Questo perché le procedure di autenticazione avvengono insieme alla cifratura dei dati tramite un singolo algoritmo.

Tra le altre indicazioni troviamo anche quella che sconsiglia di abilitare la cosiddetta modalità Heartbeat resa disponibile da un’estensione che, quando è operativa, mantiene attive le connessioni senza la necessità che vengano rinegoziate. Heartbeat infatti non è esente da vulnerabilità e, se sfruttata da utenti malintenzionati, potrebbe consentire l’accesso a spazi di memoria della macchina ospitante in cui sono state allocate informazioni sensibili.

A presentare delle vulnerabilità è poi lo stesso processo di rinegoziazione, motivo per il quale l’AGID consiglia di avvalersi di configurazioni in cui il server possa non accettare eventuali sessioni rinegoziate da un client.

Da segnalare infine la raccomandazione secondo cui la compressione TLS non dovrebbe essere mai abilitata. Si tratta in ogni caso di un’opzione non disponibile tramite gli ultimi aggiornamenti del protocollo.

Quali browser utilizzare

Il fatto che, per le ragioni precedentemente esposte, TLS 1.3 sia da ritenersi preferibile alla versione 1.2 non significa che quest’ultima non possa essere utilizzata.

Essa infatti supporta almeno 4 algoritmi in grado di garantire la sicurezza di un canale di comunicazione in fase di handshake.

Se i tuoi dispositivi sono stati acquistati o aggiornati dopo il 2013 o se il tuo computer utilizza Windows 10 o Mac OS X 10.10, o il tuo smartphone ha Android >4.4 o iOS >7, funzioneranno senza problemi con il TLS v1.2.

Nel caso di Google Chrome, il browser Web più utilizzato al mondo, il supporto a TLS 1.2 è stato introdotto a partire dalla versione 29 che risale al 2013.
La stessa feature è disponibile anche su Internet Explorer 11, Microsoft Edge (dalla release 12, del 2015, ad oggi), Mozilla Firefox (dalla versione 27 rilasciata nel 2014), Apple Safari (dalla versione 7 del 2013) e Opera Browser (a partire da Opera 16 del 2013).

Questo limitatamente alle versioni sviluppate per il Desktop, mentre per quanto riguarda il mobile il supporto è praticamente garantito dalle ultime versioni di tutti i browser più utilizzati.

TLS.png
 
Come confermato da “Can I use”, piattaforma di comparazione da cui sono state riprese le immagini presenti in questo articolo, nessuna versione di IE (compresa la 11) supporta invece TLS 1.3 che è invece pienamente supportato da Edge 79 o superiore, Chrome 70 e versioni successive, Firefox 63 e rilasci più recenti nonché le release di Safari e Opera a partire rispettivamente dalla 14 e dalla 57.

TLS 3.png
 
Tutte le ultime versioni dei browser per la navigazione su Internet più utilizzati supportano TLS 1.3.