Una password monouso basata sul tempo o Time-based one-time password (TOTP) è una password che sfrutta un algoritmo informatico per generare un codice monouso (OTP) basandosi sull'ora corrente come elemento di univocità. Come estensione dell'algoritmo per password monouso basata su HMAC (HOTP), è stata adottata come standard RFC 6238 dall'Internet Engineering Task Force (IETF).

TOTP è un pilastro dell'Initiative For Open Authentication (OATH) e viene utilizzato in numerosi sistemi di autenticazione a due fattori (2FA).

Storia Grazie alla collaborazione di diversi membri di OATH, è stata sviluppata una bozza di TOTP per creare uno standard supportato dal settore. Integra lo standard HOTP basato su eventi e offre alle organizzazioni di utenti finali e alle imprese una maggiore scelta nella selezione delle tecnologie che meglio si adattano ai requisiti applicativi e alle linee guida di sicurezza. Nel 2008, OATH ha presentato una bozza della specifica all'IETF. Questa versione incorpora tutti i feedback e i commenti che gli autori hanno ricevuto dalla comunità tecnica sulla base delle versioni precedenti presentate all'IETF. Nel maggio 2011, TOTP è diventato ufficialmente RFC 6238.

Algoritmo Per stabilire l'autenticazione TOTP, sia l'autenticato che l'autenticatore devono preimpostare sia i parametri HOTP sia i seguenti parametri TOTP:

T0, l'ora Unix da cui iniziare a contare i passi temporali (il valore predefinito è 0), TX, un intervallo che verrà utilizzato per calcolare il valore del contatore C T (il valore predefinito è 30 secondi).

Sia l'autenticatore che l'autenticato calcolano il valore TOTP, quindi l'autenticatore verifica se il valore TOTP fornito dall'autenticato corrisponde al valore TOTP generato localmente. Alcuni autenticatori consentono valori che avrebbero dovuto essere generati prima o dopo l'ora corrente per tenere conto di lievi distorsioni dell'orologio, latenza di rete e ritardi degli utenti.

TOTP utilizza l'algoritmo HOTP, sostituendo il contatore con un valore non decrescente basato sull'ora corrente:

      TOTP value(K) = HOTP value(K, CT),

calcolo del valore del contatore Dove

CT è il conteggio del numero di durate TX tra T0 e T , T è il tempo corrente in secondi calcolato da un particolare momento , T0 è l'epoca specificata in secondi dall'epoca Unix (ad esempio se si utilizza l'ora Unix, allora T0 è 0), TX è la lunghezza del periodo di one-time (ad esempio 30 secondi).

Sicurezza A differenza delle password, i codici TOTP sono validi solo per un periodo di tempo limitato. Tuttavia, gli utenti devono inserire i codici TOTP in una pagina di autenticazione, il che crea il potenziale per attacchi di phishing. Tuttavia, a causa della breve finestra di validità dei codici TOTP, gli aggressori devono acquisire le credenziali in tempo reale. Le credenziali TOTP si basano inoltre su un segreto condiviso, noto sia al client che al server, creando così più posizioni da cui è possibile rubarlo. Un aggressore con accesso a questo segreto condiviso potrebbe generare nuovi codici TOTP validi a piacimento. Questo può rappresentare un problema particolare se l'aggressore vìola un ampio database di autenticazione.

Note

Voci correlate Botan Proton Authenticator Google Authenticator

Collegamenti esterni

Categoria:Algoritmi crittografici Categoria:Protocolli di Internet Categoria:Sicurezza informatica