Sono presenti token di accesso e token di aggiornamento.
Il token di accesso è in genere di breve durata (si pensi 30 o 60 minuti) e non vi è alcun motivo per mantenerlo dopo che è scaduto. Non ha alcun senso per nessuno.
Il token di aggiornamento è necessario per ottenere un nuovo token di accesso ed è generalmente di lunga durata; almeno fino a una sessione attiva.
Se un attaccante ottiene il possesso di un token di aggiornamento, ha tutti gli accessi che l'utente avrebbe se avessero effettuato l'accesso con quel token. Tuttavia, hanno accesso alle sessioni per le quali quel particolare token di aggiornamento li autorizza. (Ciò significa che, se il token è stato concesso per un privilegio inferiore al normale per quell'utente, l'utente malintenzionato avrebbe lo stesso privilegio ridotto).
Inoltre, dal momento che non è una password con hash, non possono derivare la password in chiaro da essa con le tabelle arcobaleno.
Un token di aggiornamento può essere ritirato in qualsiasi momento, senza richiedere all'utente di cambiare la password.
Da un punto di vista della sicurezza, l'utilizzo di un token di aggiornamento invece di richiedere all'utente di accedere di nuovo protegge dalla navigazione a spalla. Lo svantaggio è che se l'utente malintenzionato ha accesso fisico al dispositivo che contiene il token di aggiornamento, non è necessario che eseguano l'autenticazione.
Fai attenzione quando elimini i token di aggiornamento. Un token di aggiornamento scaduto non è utilizzabile da nessuno e può essere eliminato in modo sicuro. Ma l'eliminazione di un Token di aggiornamento attivo richiede che gli utenti effettuino nuovamente l'accesso; causando loro inutili disagi.
Assicurati che il database contenente i token di aggiornamento attivi sia correttamente protetto. In genere non sono hash come le password.