title: Token (sicurezza)
text: # 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 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 o simili applicazioni e possono essere associati o meno a password o PIN personali.
  
  ### Token virtuali
  
  I token 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. Ad esempio alcune app installate su dispositivi "certificati" dal provider (tipo le app di home banking) possono fungere da token.
  
  