Time-based token (TOTP)
Time-based One-Time Password (TOTP)
Il TOTP è un algoritmo standardizzato definito nella RFC 6238 che genera password temporanee basate su:
- un segreto condiviso
- l’orario corrente
Il codice generato è generalmente numerico (6 cifre) ed è valido per un intervallo di tempo limitato (tipicamente 30 secondi).
Sincronizzazione dell’orario
Il funzionamento del TOTP dipende direttamente dall’orario corrente utilizzato dai sistemi che generano e verificano il codice. Per questo motivo è necessario che il dispositivo dell’utente e il server di autenticazione dispongano di un orario correttamente sincronizzato.
In genere i sistemi mantengono la sincronizzazione tramite protocolli di sincronizzazione dell’ora di rete (ad esempio NTP) oppure tramite orologi interni sufficientemente precisi. Molte implementazioni prevedono una piccola tolleranza (tipicamente uno o due intervalli temporali) per compensare eventuali differenze minori tra gli orologi.
Se la differenza temporale tra i sistemi supera tale tolleranza, i codici generati non verranno considerati validi e l’autenticazione fallirà.
Il TOTP rappresenta una delle implementazioni più diffuse del fattore di possesso ed è comunemente utilizzato come secondo fattore nei sistemi di autenticazione a due fattori (2FA).
Riferimenti
Standard
- RFC 6238 – Time-Based One-Time Password Algorithm
Approfondimenti
- La pagina Wikipedia:Time-based_one-time_password
- FreeOTP (GitHub)