Cos'è l'autenticazione basata su token?
- Glossario IAM
- Cos'è l'autenticazione basata su token?
L'autenticazione basata su token è un protocollo di sicurezza che verifica l'identità di un utente utilizzando i token crittografati. Con l'autenticazione basata su token, gli utenti possono autenticarsi con un token valido per accedere a server, applicazioni, siti web o un'interfaccia di programmazione delle applicazioni (API). L'autenticazione basata su token è un protocollo comune dell'autenticazione a due fattori (2FA) o multifattoriale (MFA), che aggiunge un altro livello di sicurezza oltre al nome utente e alla password tradizionali.
Cos'è un token?
Un token è la chiave che autentica gli utenti durante la procedura d'accesso. I token possono essere digitali o un dispositivo fisico, come una smart card o una chiave USB. I token web, essendo digitali e memorizzati sul dispositivo dell'utente, sono largamente preferiti dalle organizzazioni per la loro praticità e flessibilità. Grazie ai token web, le persone non devono avere con sé i token fisici. Inoltre, possono essere facilmente integrati in vari sistemi software, offrendo una facile esperienza di autenticazione.
Come funziona l'autenticazione basata su token
Diamo un'occhiata ai quattro passaggi essenziali dell'autenticazione basata su token.
Richiesta iniziale: Un utente richiede di accedere a una data applicazione inserendo il nome utente e la password.
Verifica dell'utente: Le credenziali d'accesso vengono inviate al sistema di autenticazione per verificare se le credenziali dell'utente sono corrette. Una volta confermate, controllerà le autorizzazioni specifiche presenti sul sistema dall'utente.
Convalida del token: Il sistema genera ed emette un token web che l'utente potrà utilizzare per un periodo limitato.
Memorizzazione del token: Il token viene memorizzato sul dispositivo dell'utente fino a quando l'utente non si disconnetterà, chiuderà la sessione o il token non sarà scaduto.
Tipi di token per l'autenticazione
Sono disponibili vari tipo di token digitali, ognuno dei quali svolge un ruolo cruciale nel garantire una procedura di autenticazione sicura e adeguata. Vediamo cinque tipi comuni di token digitali e i loro ruoli specifici nell'autenticazione.
Token web JSON (JWT)
Il token web JSON è uno standard aperto (RFC 7519) utilizzato per scambiare in modo sicuro informazioni tra due entità: un server e un client. I JWT contengono informazioni sull'identità di un utente e vengono firmati digitalmente per confermare che i dati contenuti sono legittimi. Un token web JSON è composto da tre parti: intestazione, carico utile e firma digitale.
Intestazione: L'intestazione contiene informazioni sul JWT. Fornisce il tipo di token e l'algoritmo utilizzato per firmare il token.
Carico utile: Il carico utile contiene le affermazioni dell'utente. Le affermazioni consistono in informazioni che riguardano una particolare entità, generalmente relativa a un utente. I carichi utili possono includere ulteriori informazioni, come la scadenza del token e le autorizzazioni dell'utente.
Firma digitale: La firma digitale è una chiave di crittografia che verifica l'intestazione e il carico utile per garantire che il messaggio non sia stato modificato durante la trasmissione e certifica l'identità dell'utente.
Token di accesso
I token di accesso sono il tipo più comune di token web JSON. Questi token servono ad autorizzare l'accesso dell'utente a un particolare servizio. Dopo che un utente si è connesso correttamente, viene rilasciato un token di accesso con una data di scadenza. Il token di accesso consente agli utenti di accedere alle risorse e ai servizi designati per un periodo di tempo limitato.
Token ID
A differenza dei token di accesso, i token ID non vengono utilizzati principalmente per consentire l'accesso alle risorse e alle applicazioni di rete. I token ID sono invece dei token web JSON che contengono informazioni sull'utente, come un identificatore univoco, il nome e l'indirizzo e-mail, oltre al suo stato di autenticazione. I token ID vengono forniti alle applicazioni client per verificare l'identità dell'utente.
Token di aggiornamento
I token di aggiornamento sono dei tipi specifici di token web JSON utilizzati per ottenere ulteriori token di accesso senza richiedere all'utente di reinserire le credenziali di accesso. Il loro scopo è quello di estendere la durata di un token di accesso per gli utenti rinnovandolo automaticamente.
Token API
Un token API è una stringa di codici che corrisponde alla richiesta di autenticazione dell'utente a un'API. Autentica l'identità dell'utente e consente di accedere agli endpoint API, permettendo agli utenti autorizzati di interagire con le risorse API in modo sicuro.
Vantaggi dell'utilizzo dell'autenticazione basata su token
Ecco tre vantaggi di utilizzare l'autenticazione basata su token.
Sicurezza: Poiché i token sono ideati per avere una breve durata, si riducono al minimo le probabilità di potenziali accessi non autorizzati. Una volta che un utente termina la sessione con l'applicazione, il token rilasciato scade. Ciò limita il tempo disponibile per gli aggressori per intercettare il token e compromettere un account.
Flessibilità: L'autenticazione basata su token può essere utilizzata su più piattaforme, come le applicazioni web, le app per dispositivi mobili e le API. Questo risulta in un'esperienza di autenticazione semplice, aumentando al contempo l'accessibilità per gli utenti.
Scalabilità: Poiché i token vengono memorizzati sul dispositivo dell'utente, i server non devono mantenere la sessione di un utente su un'applicazione. Ciò consente ai server di gestire in modo efficiente più richieste, generando al contempo i token se necessario.
Svantaggi dell'utilizzo dell'autenticazione basata su token
Ecco tre svantaggi principali di utilizzare l'autenticazione basata su token.
Rischio di compromissione della chiave: Una minaccia molto diffusa associata all'autenticazione basata su token è la possibilità di compromettere le chiavi token. Le chiavi possono essere colpite da attacchi informatici, come il phishing, i malware, gli attacchi di forza bruta o Man-in-the-Middle (MITM). Dal momento che la maggior parte dei sistemi di token web si basa su una singola chiave, se un criminale informatico dovesse compromettere la chiave, l'intero sistema diverrebbe vulnerabile.
Breve durata: A causa della breve durata dei token, è importante ricordare che devono essere gestiti costantemente. Di conseguenza, devono avere una data di scadenza e le credenziali devono essere rinnovate a seconda delle necessità.
Dimensioni del token: I token possono essere di grandi dimensioni, soprattutto se contengono una notevole quantità di informazioni o metadati dell'utente. Per via della loro complessità e dimensioni, i token possono sovraccaricare la rete in ambienti con una larghezza di banda Internet limitata.