Cos’è l’handshake TLS e come funziona?

handshake TLS

TLS (transport layer security) è il protocollo di comunicazione sicuro utilizzato da gran parte dell’Internet. Dalla connessione criptata che il tuo browser utilizza per collegarsi ai siti web, alle connessioni sicure utilizzate dalle tue applicazioni bancarie, TLS è lo standard del settore e il motivo per cui puoi trasferire con sicurezza informazioni sensibili online.

Questa guida spiega cos’è l’handshake TLS, come funziona e la sua importanza per la sicurezza della rete e per garantire che le tue comunicazioni siano private e non vengano intercettate o manomesse.

Che cos’è un handshake TLS?

La crittografia TLS è il protocollo crittografico standard utilizzato per proteggere le comunicazioni di rete, compresi i dati inviati su Internet.

Prima di poter comunicare in modo crittografato, è necessario stabilire la fiducia tra le due parti comunicanti (ad esempio, il server web che ospita un sito e il browser web che vi accede).

Questo è ciò che realizza l’handshake TLS: stabilisce un canale sicuro tra il client e il server comunicando quali versioni TLS e quali suite di cifratura sono supportati da entrambi, autenticando l’identità del server utilizzando la sua chiave pubblica e il suo certificato SSL, e infine generando le chiavi di sessione che saranno utilizzate per crittografare in modo univoco la connessione.

TLS vs SSL

TLS è il successore di SSL (Secure Sockets Layer) e lo sostituisce come protocollo di crittografia alla base di HTTPS (il protocollo HTTP sicuro che fornisce pagine web al browser e dati alle applicazioni). TLS è utilizzato anche da altri software che richiedono comunicazioni di rete sicure, come le soluzioni VPN.

Elementi crittografici coinvolti

La crittografia TLS si basa su diversi elementi/concetti crittografici:

  • La suite di cifratura: La suite di cifratura è l’algoritmo utilizzato per proteggere una connessione crittografata TLS. Ogni suite contiene un algoritmo di scambio di chiavi, un algoritmo di crittografia in blocco e un algoritmo MAC (message authentication code).
  • Crittografia simmetrica: Un’unica chiave crittografica viene utilizzata per proteggere la connessione sia dal server che dal client. Entrambe le parti devono conoscere la chiave e nessuna terza parte deve conoscerla o essere in grado di indovinarla, altrimenti la sicurezza della connessione è compromessa.
  • Crittografia asimmetrica: Conosciuta anche come crittografia a chiave pubblica, in questo metodo di crittografia il server e il client utilizzano chiavi private e pubbliche separate per crittografare i dati e proteggere la connessione. La chiave privata è necessaria per decifrare i dati criptati dalla chiave pubblica.
  • Autenticazione: Per connettersi in modo sicuro a un server (e non a un impersonatore), il server deve essere in grado di dimostrare la propria identità al di là di ogni dubbio attraverso l’autenticazione.

Versioni e compatibilità TLS

TLS 1.0 è stato rilasciato nel 1999, TLS 1.1 nel 2006, TLS 1.2 nel 2008 e l’ultima versione TLS 1.3 è stata rilasciata nel 2018. Ogni release ha apportato significativi miglioramenti alla sicurezza, tra cui suite di cifratura aggiuntive e protezione contro nuovi attacchi.

La maggior parte dei server supporta sia TLS 1.3 che TLS 1.2 per la compatibilità con i client più vecchi.

Processo passo dopo passo di un handshake TLS

TLS 1.3 semplifica e migliora notevolmente la sicurezza del processo di handshake rispetto alle versioni precedenti. Ecco in dettaglio il processo utilizzato per proteggere una connessione TLS 1.3:

  • ’Hello’ del client: Il client invia un messaggio “hello” al server per avviare l’handshake TLS e la connessione. Questo include le versioni di TLS, le suite di cifratura, il metodo di condivisione delle chiavi e le estensioni supportate. Include anche il “client random”, che è un dato casuale che verrà utilizzato per generare il master secret. In molti casi, i parametri pre-master secret possono essere generati anche quando il client è in grado di indovinare il metodo di condivisione delle chiavi che il server utilizzerà (spesso a causa del numero ridotto di suite di cifratura supportate da TLS 1.3), riducendo il numero di round-trip necessari per il client e il server.
  • Master secret: Il server seleziona una versione TLS, una suite di cifratura e una condivisione di chiavi compatibile con il client e genera il suo “server random”. Una volta che il client e il server dispongono del client random, del pre-master secret e del server random, possono generare indipendentemente lo stesso master secret.
  • ’Hello’ del server e comunicazione asimmetrica: Il server risponde all’hello del client inviando la versione TLS selezionata, la suite di cifratura e il certificato SSL/TLS del server contenente la sua chiave pubblica e l’autorità di certificazione (CA). Il client può verificare l’identità del server con la CA.
  • Generazione della chiave di sessione: Il client e il server generano chiavi di sessione corrispondenti dal master secret.
  • Messaggi “finished” e comunicazione simmetrica: Il client e il server si scambiano messaggi “finished” contenenti la chiave di sessione simmetrica e un hash del processo di handshake che ha avuto luogo per garantire che non sia stato interferito. L’handshake TLS è completato quando i messaggi “finished” sono stati decifrati e convalidati da entrambe le parti.

Una volta completato l’handshake TLS, la connessione può essere utilizzata per trasmettere in modo sicuro i dati utilizzando le chiavi di sessione simmetriche.

Risoluzione dei problemi di handshake TLS

La causa più comune dei problemi di handshake TLS è l’impostazione errata dell’ora sul server o sul client (una soluzione semplice). Anche le CA non aggiornate sul client sono una potenziale causa se il sistema operativo non è stato aggiornato da tempo.

Per quanto riguarda il server, le connessioni TLS falliscono se non esistono versioni TLS o suite di cifratura supportate reciprocamente, se il certificato SSL/TLS è stato revocato dalla CA, se è scaduto o se l’hostname del server non corrisponde a quello del certificato.

Se incontri problemi di connettività di rete o ti connetti a un server lento, gli handshake TLS possono fallire se vanno in timeout a causa della latenza.

I protocolli di comunicazione non sono completamente sicuri

TLS è alla base della sicurezza di rete di quasi tutto ciò che avviene online al momento. Tuttavia, solo perché è in grado di trasmettere dati in modo sicuro (dopo l’importante handshake TLS), non significa che ciò che trasmette non sia dannoso.

Il fatto che tu abbia una connessione sicura a un sito web non significa che non possa ospitare un virus, quindi dovresti limitarti a scaricare software da siti web affidabili (o meglio ancora da app store ufficiali) e, se gestisci un’azienda, proteggere e mettere in sicurezza la tua infrastruttura con una solida gestione degli endpoint..

Passi successivi

Le basi della sicurezza dei dispositivi sono fondamentali per lo stato della tua sicurezza complessiva. NinjaOne semplifica l’applicazione di patch, l’hardening, la protezione e il backup di tutti i dispositivi in modo centralizzato, da remoto e su larga scala.

Ti potrebbe interessare anche

Vuoi diventare un Ninja dell’IT?

Scopri come NinjaOne può aiutarti a semplificare le operazioni IT.
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.