Cos'è mutual TLS (mTLS)?

Mutual TLS (mTLS) è un tipo di autenticazione in cui di due parti coinvolte in una connessione vengono autenticate reciprocamente con il protocollo TLS.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Spiegare il funzionamento del mutual TLS (mTLS)
  • Comprendere la differenza tra mutual TLS e TLS normale
  • Illustrare come mTLS blocca gli attacchi

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cos'è mutual TLS (mTLS)?

Mutual TLS, o mTLS, è un metodo per l'autenticazione reciproca. mTLS garantisce che le parti a ciascuna estremità di una connessione di rete siano chi affermano di essere verificando che entrambe dispongano della chiave privata corretta. Le informazioni all'interno dei rispettivi certificati TLS forniscono un'ulteriore verifica.

mTLS viene spesso utilizzato in un framework di sicurezza Zero Trust* per verificare utenti, dispositivi e server all'interno di un'organizzazione. Può anche contribuire a mantenere le API sicure.

*Zero Trust significa che nessun utente, dispositivo o traffico di rete è attendibile per impostazione predefinita, un approccio che consente di eliminare molte vulnerabilità di sicurezza.

Whitepaper
Aumenta al massimo la potenza di TLS

Guida
La guida Zero Trust per garantire l'accesso alle applicazioni

Cos'è TLS?

Transport Layer Security (TLS) è un protocollo di crittografia ampiamente utilizzato su Internet. TLS, precedentemente chiamato SSL, autentica il server in una connessione client-server e crittografa le comunicazioni tra client e server in modo che le parti esterne non possano spiare le comunicazioni.

Sono tre gli aspetti fondamentali da conoscere sul funzionamento di TLS:

1. Chiave pubblica e chiave privata

TLS funziona utilizzando una tecnica chiamata crittografia a chiave pubblica, che si basa su una coppia di chiavi: una chiave pubblica e una chiave privata. Tutto quello che è crittografato con la chiave pubblica può essere decodificato solo con la chiave privata.

Pertanto, un server che decrittografa un messaggio crittografato con la chiave pubblica dimostra di possedere la chiave privata. Chiunque può visualizzare la chiave pubblica esaminando il certificato TLS del dominio o del server.

2. Certificato TLS

Un certificato TLS è un file di dati che contiene informazioni importanti per verificare l'identità di un server o di un dispositivo, inclusa la chiave pubblica, una dichiarazione di chi ha emesso il certificato (i certificati TLS sono emessi da un'autorità di certificazione) e la data di scadenza del certificato.

3. Handshake TLS

L'handshake TLS è il processo di verifica del certificato TLS e del possesso della chiave privata da parte del server. L'handshake TLS stabilisce anche come avverrà la crittografia una volta terminato l'handshake.

Protezione WAF
Difenditi dalle tecniche di attacco "Top 10"

Come funziona mTLS?

Normalmente, in TLS il server ha un certificato TLS e una coppia di chiave pubblica/privata, mentre il client no. Il tipico processo TLS funziona in questo modo:

  1. Il client si connette al server
  2. Il server presenta il suo certificato TLS
  3. Il client verifica il certificato del server
  4. Il client e il server si scambiano informazioni su una connessione TLS crittografata
I passaggi di base in un handshake TLS

In mTLS, tuttavia, sia il client che il server hanno un certificato ed entrambe le parti si autenticano utilizzando la loro coppia di chiave pubblica/privata. Rispetto al normale TLS, in mTLS sono presenti passaggi aggiuntivi per la verifica di entrambe le parti (passaggi aggiuntivi in grassetto):

  1. Il client si connette al server
  2. Il server presenta il suo certificato TLS
  3. Il client verifica il certificato del server
  4. Il client presenta il proprio certificato TLS
  5. Il server verifica il certificato del client
  6. Il server concede l'accesso
  7. Il client e il server si scambiano informazioni su una connessione TLS crittografata
I passaggi di base in un handshake mutual TLS (mTLS)

Autorità di certificazione in mTLS

L'organizzazione che implementa mTLS funge da propria autorità di certificazione. Questo contrasta con il TLS standard, in cui l'autorità di certificazione è un'organizzazione esterna che controlla se il proprietario del certificato possiede legittimamente il dominio associato (scopri di più sulla convalida dei certificati TLS).

Per mTLS è necessario un certificato TLS "root", consentendo a un'organizzazione di essere la propria autorità di certificazione. I certificati utilizzati dai client e dai server autorizzati devono corrispondere a questo certificato root. Il certificato root è autofirmato, il che significa che l'organizzazione lo crea autonomamente. (Questo approccio non funziona per il TLS unidirezionale su Internet pubblico perché un'autorità di certificazione esterna deve emettere tali certificati).

Perché usare mTLS?

mTLS aiuta a garantire che il traffico sia sicuro e attendibile in entrambe le direzioni tra un client e un server, fornendo un ulteriore livello di sicurezza per gli utenti che accedono alla rete o alle applicazioni di un'organizzazione. Verifica inoltre le connessioni con i dispositivi client che non seguono un processo di accesso, come i dispositivi Internet of Things (IoT).

mTLS previene vari tipi di attacchi, tra cui:

  • Attacchi di interposizione: gli autori di un attacco di interposizione si posizionano tra un client e un server e intercettano o modificano le comunicazioni tra i due. Quando viene utilizzato mTLS, gli autori di un attacco di interposizione non possono autenticarsi né sul client né sul server, rendendo quasi impossibile l'esecuzione di questo attacco.
  • Attacchi di spoofing: gli autori di un attacco possono tentare di eseguire lo "spoofing" (imitare) un server Web per un utente o viceversa. Gli attacchi di spoofing sono molto più complessi quando entrambe le parti devono autenticarsi con certificati TLS.
  • Sottrazione e uso illecito delle credenziali: gli autori di un attacco utilizza set di credenziali trapelate in seguito a una violazione dei dati per tentare di accedere come se fosse l'utente legittimo. Senza un certificato TLS legittimamente emesso, gli attacchi di sottrazione e uso illecito delle credenziali non possono avere successo contro le organizzazioni che utilizzano mTLS.
  • Tentativi di violazione della password con metodo forza bruta: tipicamente eseguiti con bot, un tentativo di violazione della password con metodo forza bruta si verifica quando un autore di un attacco utilizza una tattica di tentativi ed errori uno dietro l'altro al fine di indovinare la password di un utente. mTLS garantisce che una password non sia sufficiente per accedere alla rete di un'organizzazione. (Limitazione della frequenza è un altro metodo per affrontare questo tipo di attacco con bot).
  • Attacchi di phishing: l'obiettivo di un attacco di phishing è spesso quello di sottrarre le credenziali di un utente, quindi utilizzarle per compromettere una rete o un'applicazione. Anche se un utente cade vittima di un attacco di questo tipo, l'autore di un attacco ha comunque bisogno di un certificato TLS e di una chiave privata corrispondente per poter utilizzare tali credenziali.
  • Chiamate API dannose: se utilizzate per la sicurezza delle API, mTLS garantisce che le chiamate API provengano solo da utenti legittimi e autenticati. In questo modo, si impedisce agli autori di un attacco di inviare chiamate API dannose che mirano a sfruttare una vulnerabilità o sovvertire il modo in cui l'API dovrebbe funzionare.

I siti Web utilizzano già TLS, quindi perché mTLS non viene utilizzato su Internet?

Per gli scopi quotidiani, l'autenticazione unidirezionale fornisce una protezione sufficiente. Gli obiettivi del TLS nell'Internet pubblico sono 1) garantire che le persone non visitino siti Web contraffatti, 2) mantenere i dati riservati sicuri e crittografati durante il loro transito nelle varie reti che compongono Internet e 3) assicurarsi che i dati non venga alterati durante il transito. Il TLS unidirezionale, in cui il client verifica solo l'identità del server, raggiunge questi obiettivi.

Inoltre, la distribuzione dei certificati TLS a tutti i dispositivi degli utenti finali è un'operazione estremamente complessa. Generare, gestire e verificare i miliardi di certificati necessari a questo scopo è un'attività quasi impossibile.

Ma su scala più piccola, mTLS è molto utile e abbastanza pratico per le singole organizzazioni, soprattutto quando tali organizzazioni utilizzano un approccio Zero Trust alla sicurezza della rete. Poiché un approccio Zero Trust non ritiene attendibile alcun utente, dispositivo o richiesta per impostazione predefinita, le organizzazioni devono essere in grado di autenticare ogni utente, dispositivo e richiesta ogni volta che provano ad accedere a qualsiasi punto della rete. mTLS contribuisce a rendere possibile tutto questo autenticando gli utenti e verificando i dispositivi.

In che modo Cloudflare utilizza mTLS?

Cloudflare Zero Trust utilizza mTLS per la sicurezza Zero Trust. Cloudflare API Shield utilizza mTLS anche per verificare gli endpoint API, garantendo che nessuna parte non autorizzata possa inviare chiamate API potenzialmente dannose. Scopri come implementare mTLS con Cloudflare.

Informazioni sulla gestione degli accessi