Passa al contenuto principale

L'autenticazione basata su token è un protocollo di autenticazione in cui gli utenti verificano la propria identità in cambio di un token di accesso univoco. Gli utenti possono quindi accedere al sito Web, all'applicazione o alla risorsa per tutta la durata del token senza dover reinserire le proprie credenziali.

Come funziona l'autenticazione basata su token?

L'autenticazione basata su token inizia con l'accesso di un utente a un sistema, dispositivo o applicazione, in genere utilizzando una password o una domanda di sicurezza. Un server di autorizzazione convalida tale autenticazione iniziale e quindi emette un token di accesso, che è una piccola parte di dati che consente a un'applicazione client di effettuare una chiamata o un segnale sicuro a un server API.

L'autenticazione basata su token funziona fornendo al server una seconda modalità ad alta sicurezza per verificare l'identità dell'utente e l'autenticità della richiesta.

Una volta completato questo protocollo di autenticazione iniziale basato su token, il token funziona come un ticket timbrato: L'utente può continuare ad accedere senza problemi alle risorse pertinenti, senza autenticarsi nuovamente, per la durata del ciclo di vita del token. Tale ciclo di vita termina quando l'utente si disconnette o esce da un'app e può anche essere attivato da un protocollo di timeout impostato.

Quali sono i vantaggi dell'autenticazione basata su token?

L'autenticazione basata su token offre molti vantaggi a più stakeholder:

  • Esperienza utente agevole: invece di dover reinserire le credenziali e eseguire nuovamente l'autenticazione ogni volta che torna su un sistema, un'app o una pagina Web, l'utente mantiene l'accesso senza interruzioni finché il token rimane valido (in genere fino al termine della sessione con il logout o l'uscita).
  • Sicurezza digitale aggiunta: l'autenticazione basata su token aggiunge un ulteriore livello di sicurezza oltre alla tradizionale autenticazione basata su password o server. I token sono generalmente molto più difficili da rubare, hackerare o compromettere in altro modo rispetto a una password.
  • Controllo amministratore: l'autenticazione basata su token offre agli amministratori un controllo e una visibilità molto più dettagliati su ogni azione e transazione dell'utente.
  • Minore onere tecnologico: poiché la generazione del token può essere completamente disaccoppiata dalla verifica del token, la verifica può essere gestita da un servizio secondario come quello fornito dalla soluzione Entrust Identity and Access Management. Ciò riduce significativamente i posti di carico su server e dispositivi interni.

Che cos'è un token di accesso?

I token di accesso o di autenticazione garantiscono agli utenti l'accesso a un dispositivo, un'applicazione o un'altra risorsa digitale. Ci sono molti diversi tipi di token disponibili oggi:

Token hardware

I token hardware sono piccoli dispositivi fisici che gli utenti presentano per accedere a una risorsa. I token hardware possono essere collegati (ad esempio, USB, smart card, portachiavi con password monouso) o contactless (ad esempio, token Bluetooth). L'utente porta con sé questi token. Agli albori dell'autenticazione basata su token (leggi: pre-smartphone), i token hardware erano l'unica opzione. Tuttavia, i token hardware sono relativamente costosi, sono soggetti a smarrimento e furto e spesso richiedono di conseguenza un supporto IT più significativo.

Token software

I token software, chiamati anche token disconnessi, sono veramente contactless e possono autenticare l'identità da qualsiasi luogo. Gli esempi più comuni di token software ora sono le applicazioni mobili che utilizzano gli smartphone per facilitare l'autenticazione a due fattori (2FA), l'autenticazione a più fattori (MFA) o i token web JSON. I token software sono sempre più la scelta dominante per l'autenticazione basata su token, offrendo un vantaggio in termini di costi ridotti, minore attrito per gli utenti, ridotta probabilità di perdita o furto e minor rischio di attacchi man-in-the-middle.

Che cosa sono i token web open source o JSON?

Il tipo più comune di token software o disconnessi è il token open source, in particolare il JSON Web Token (JWT). JSON è uno standard open source (RFC 7519) che offre un protocollo semplice e autonomo per la codifica delle informazioni come un oggetto JSON, che consente a tali informazioni di essere trasmesse in modo efficiente e sicuro. JWT è diventato popolare perché è un oggetto estremamente compatto che può essere trasmesso in una varietà di mezzi efficienti, anche attraverso stringhe di query, attributi di intestazione e all'interno del corpo di una richiesta POST.

I componenti di un token web open source o JSON

Un token web JSON comprende tre parti distinte:

  • Intestazione: il tipo di token e l'algoritmo di crittografia
  • Payload: le credenziali di autenticazione per la risorsa specificata
  • Firma: una chiave crittografica per verificare l'autenticità del payload

Come si implementa l'autenticazione basata su token?

Ci sono cinque passaggi chiave per implementare un protocollo di autenticazione basato su token:

  1. Richiesta: un utente inserisce le proprie credenziali di accesso
  2. Verifica: il server verifica le credenziali dell'utente
  3. Invio del token: il server genera un token che sarà valido per un determinato periodo di tempo
  4. Archiviazione: il token viene memorizzato dal browser web dell'utente per un uso futuro
  5. Scadenza: il token rimane attivo per un determinato periodo di tempo

5 passaggi per implementare l'autenticazione basata su token

Quando è consigliata l'autenticazione basata su token?

Esistono molti casi in cui l'autenticazione basata su password o server è più che adeguata per soddisfare le esigenze di sicurezza. Tuttavia, ci sono diverse caratteristiche che segnalano una situazione in cui la sicurezza aggiuntiva, il controllo e la comodità per l'utente dell'autenticazione basata su token sono particolarmente utili:

  • Sistemi/risorse che concedono spesso l'accesso temporaneo: se la tua base di utenti varia notevolmente in base al giorno o all'ora, il protocollo tradizionale per la concessione e la revoca dell'accesso temporaneo agli utenti può essere eccessivamente oneroso in termini di tempo, costi e tecnologia. I token possono fornire una soluzione dinamica, agile ed economica per un accesso temporaneo sicuro e senza interruzioni.
  • Sistemi/risorse che richiedono un controllo dettagliato degli accessi: se è necessario controllare l'accesso a un livello molto più dettagliato, ad esempio concedere l'accesso a parti specifiche di un documento o concedere specifici privilegi di modifica o utilizzo, l'autenticazione basata su password non funzionerà. L'autenticazione basata su token è l'ideale per questi privilegi molto più dettagliati e un controllo amministrativo più approfondito.
  • Sistemi/risorse ad alto rischio di hacking o compromissione: se la tua risorsa digitale contiene informazioni particolarmente sensibili, preziose o protette, l'autenticazione basata su token offre un notevole passo avanti rispetto all'autenticazione basata su password.
  • Sistemi/risorse altamente regolamentati: intersecandosi con il punto sopra, se la tua risorsa digitale contiene informazioni sensibili protette da requisiti sulla privacy dei dati o altre normative, tali normative probabilmente stabiliscono che l'autenticazione va oltre le password di base. L'autenticazione basata su token, se configurata correttamente, può soddisfare i requisiti di conformità per la protezione ad alta affidabilità.

Procedure consigliate per l'autenticazione basata su token ad alta sicurezza

Sebbene l'autenticazione basata su token sia senza dubbio un passo importante rispetto alla tradizionale autenticazione basata su password, il token è ancora considerato un "token al portatore", ovvero l'accesso è concesso a chiunque lo detenga. Ciò significa che anche i token software come le applicazioni mobili sono ancora soggetti a furto o compromissione: Se un individuo malintenzionato entra in possesso di un token, potrebbe utilizzarlo per ottenere l'accesso non autorizzato a risorse e informazioni protette. Per proteggersi da questo rischio residuo di compromissione e violazione, è importante seguire le seguenti best practice per la costruzione del programma di autenticazione basato su token:

  • Mantieni il token riservato: gli utenti dovrebbero trattare il token, sia hardware che software, come qualsiasi credenziale sicura. Ciò significa che dovrebbe essere conservato in modo sicuro, mai condiviso e rivelato solo a servizi verificati, in modo da prevenire perdite o furti.
  • Semplifica il payload del token: i token sono progettati per utilizzare la quantità minima di informazioni per autenticare un utente. Mentre vengono codificati, sono anche facilmente decodificati da attori malintenzionati. Per questo motivo, non inserire mai informazioni sensibili o protette all'interno del payload del token e mira a ridurre al minimo le rivendicazioni sul payload. Inoltre, ciò contribuirà a migliorare velocità/prestazioni.
  • Definisci la scadenza del token e abilita la revoca del token: un token è in genere impostato per scadere automaticamente quando un utente si disconnette o esegue una chiusura forzata. Ma tecnicamente, in assenza di questo trigger di fine sessione, un token firmato non ha scadenza incorporata. Per proteggersi dalla compromissione, è necessario impostare una scadenza predefinita su tutti i token e disporre di un protocollo per revocare i token quando necessario.
  • Utilizza sempre connessioni HTTPS: le connessioni non protette rendono incredibilmente facile l'intercettazione e il furto di token in transito. Utilizza sempre le connessioni HTTPS quando trasmetti token da e verso il server di verifica token.
  • Prendi in considerazione livelli o sicurezza aggiuntivi: a seconda dei requisiti di sicurezza, potrebbe essere necessario aggiungere ulteriori protocolli di sicurezza e autenticazione oltre all'autenticazione di base basata su token. Ad esempio, alcuni casi d'uso aggiungono un secondo sistema di verifica dei token che garantisce in modo specifico la generazione di tutti i token dal server corretto.