# Token (sicurezza)

Un token per la sicurezza (dall'inglese "gettone", o "pedina") chiamato anche token hardware, token per l'autenticazione, token crittografico, o semplicemente token, è un oggetto fisico o un componente logico necessario per le autenticazioni forti, dette a due fattori.
Si presenta spesso sotto forma di dispositivo elettronico portatile di piccole dimensioni, alimentato a batteria con autonomia nell'ordine di qualche anno, dotato di uno schermo e talvolta di una tastiera numerica. Alcuni token possono essere collegati ad un computer tramite una porta USB per facilitare lo scambio di dati.
Può anche essere di tipo software, ove le informazioni necessarie risiedono direttamente nel computer dell'utente, o in un'app per telefoni, e non in un oggetto fisico esterno. A volte, il token è necessario non tanto per autenticarsi all'applicazione (login) quanto per effettuare le transazioni/operazioni ovvero le cosiddette disposizioni.

## Funzionamento

Un token è un generatore di codici numerici pseudocasuali a intervalli regolari (nell'ordine di poche decine di secondi) secondo un algoritmo che, tra i vari fattori, tiene conto del trascorrere del tempo grazie ad un orologio interno. Altri fattori che influenzano l'algoritmo possono essere il numero di serie del token o altri elementi associati al possessore all'atto della consegna del token.
Lo stesso algoritmo è anche implementato su un server di autenticazione, che è stato inizialmente sincronizzato con il token e che, quindi, genera la stessa sequenza di numeri pseudocasuali del token negli stessi momenti, pur non essendoci alcuna comunicazione tra i due oggetti.
Tale numero, casuale e transitorio, viene combinato con un PIN noto all'utente ed al sistema di autenticazione per generare una password temporanea, o di sessione (OTP-one time password), che può essere usata per effettuare l'autenticazione entro la scadenza dell'intervallo temporale. La password di sessione è formata da PIN (fisso) + codice numerico (temporaneo) visualizzato dal token.
Di conseguenza, la password temporanea per l'autenticazione sarà diversa in momenti diversi della stessa giornata.
L'autenticazione a due fattori è data dal fatto che per generare la password temporanea corretta è necessario:
* possedere lo specifico token che, in un dato istante, genera lo stesso numero pseudocasuale generato dal server di autenticazione;
* conoscere il PIN con cui il numero va combinato.
Considerato che la password temporanea scade dopo poche decine di secondi, chi volesse violare la sicurezza dovrebbe non solo indovinare quella valida per un particolare istante, ma anche usarla prima che essa scada. Per questo motivo, un token eleva notevolmente gli standard di sicurezza. Se il violatore volesse avere più tempo per violare la sicurezza dovrebbe scoprire l'algoritmo, che gli permetterebbe di rigenerare continuamente la password temporanea. Questi algoritmi però hanno un livello di complessità molto elevata, tale da rendere difficile la decrittazione anche ai computer più potenti al mondo.

## Altri impieghi

A volte dispositivi hardware di identificazione o accesso/consenso (formato a tessera, portachiavi, chiavetta, gettone, ecc.) specie se di tipo transponder, programmabili o meno, vengono denominati token o tag ma non sono generatori di codici temporanei nel senso di cui sopra: sono impiegati dagli utenti, appunto, per il controllo degli accessi/presenze, consenso operazioni, marcatori o simili applicazioni e possono essere associati o meno a password o PIN personali.

### Token digitali

I token digitali o virtuali sono identificatori utilizzati con la medesima funzione di quelli di tipo hardware. Esempi di token virtuali sono i codici codici QR stampati su cartelli, biglietti/scontrini o visualizzati su schermi di dispositivi mobili (esempio smartphone) o desktop (TV, PC, ecc). I token virtuali (che sono una tipologia di token logici) possono anche essere privi di segno grafico cioè essere componenti (servizi) puramente software, come, ad esempio token supportati da certificati digitali.
L'esempio più significativo di token digitale è quello che viene creato su app che svolgono la funzione di autorizzazione di operazioni (disposizioni). In questi caso il dispositivo ove si sta creando il token (mediante l'app in oggetto) deve essere "certificato" dal provider (tipo le app di home banking). Una volta impostato un token digitale, l'app diventa un sistema di sicurezza che consente di autorizzare le disposizioni (mediante OTP o PIN o altra operazione positiva).
Con la diffusione dell'identificazione e controllo accesso mediante passkey, si sta diffondendo l'uso del token hardware rappresentato da un dispositivo mobile conforme al protocollo Fido2 (al posto di token bluetooth stile chiavetta) ovvero una chiave di sicurezza hardware e relativa autorizzazione via notifica (a volte occorre inserire poi un PIN autorizzativo della notifica).
I token software sono presenti anche in applicazioni (spesso di tipo web, come quelle fruite tramite browser) per abiiitare operazioni di sicurezza, ad esempio esecuzione di transazioni (come la disiscrizione ad un servizio sottoscritto).