Generatore TOTP (password monouso)

Genera nel solo browser, a partire da un segreto TOTP in formato Base32, la stessa password monouso a sei cifre (RFC 6238) prodotta da Google Authenticator e app analoghe. Il segreto non viene mai trasmesso.

Questo strumento non invia mai il segreto a un server. La decodifica Base32 e il calcolo HMAC avvengono interamente nel vostro browser tramite la Web Crypto API, quindi potete inserire le credenziali in tranquillità.

L'algoritmo TOTP

TOTP (Time-based One-Time Password) è l'algoritmo di generazione di password monouso basate sul tempo definito dalla RFC 6238. Converte il segreto condiviso e l'ora corrente in un contatore che avanza a intervalli regolari e ne ricava un codice numerico con lo stesso algoritmo di troncamento dinamico di HOTP (RFC 4226).

Algoritmo HMAC A scelta fra SHA-1 (predefinito), SHA-256 e SHA-512
Cifre del codice Sei cifre, la lunghezza standard delle principali app di autenticazione a due fattori come Google Authenticator
Intervallo di aggiornamento Il codice cambia ogni 30 secondi

Che cos’è un codice TOTP

Un TOTP (Time-based One-Time Password) è il codice a sei cifre, rinnovato ogni trenta secondi, usato nell’autenticazione a due fattori per aggiungere una verifica oltre a nome utente e password. Si calcola da una chiave condivisa detta segreto, registrata in anticipo, combinata con l’ora corrente: per questo il server e l’app di autenticazione che ha in mano arrivano allo stesso codice senza mai comunicare fra loro. Google Authenticator, Microsoft Authenticator, Authy e le altre app principali seguono tutte lo stesso standard, la RFC 6238.

Incolli la chiave di configurazione mostrata sotto il codice QR quando attiva l’autenticazione a due fattori – il segreto, in formato Base32 – e questo strumento riproduce nel browser lo stesso codice a sei cifre che la sua app mostrerebbe. La decodifica del segreto Base32 e il calcolo dell’HMAC avvengono tramite la Web Crypto API e nulla viene inviato a un server. È utile per riconfigurare un’app, ricontrollare un codice o verificare il comportamento su più dispositivi.

Come si genera un codice

  1. Inserisca il segreto Incolli nel campo del segreto la chiave di configurazione in Base32 rilasciata all’attivazione (per esempio JBSWY3DPEHPK3PXP).
  2. Verifichi l’algoritmo di hash La maggior parte dei servizi usa SHA-1. Se il codice non corrisponde, provi a passare a SHA-256 o SHA-512.
  3. Legga il codice a sei cifre Il codice relativo al momento presente viene calcolato mentre digita e compare insieme a una barra con i secondi rimanenti.
  4. Lo copi se le serve Il pulsante di copia lo porta negli appunti. Eviti di usarlo negli ultimi istanti prima del cambio.

Consigli per sfruttarlo al meglio

  • Il segreto è la «chiave di configurazione» mostrata sotto il codice QR quando si attiva l'autenticazione a due fattori. Se l'avete già registrata nell'app del telefono, inserendo qui lo stesso segreto otterrete il medesimo codice.
  • Alcuni servizi usano un algoritmo diverso da SHA-1, cioè SHA-256 o SHA-512. Se il codice generato non coincide con quello dell'app, provate a cambiare algoritmo.
  • Il codice si aggiorna automaticamente ogni 30 secondi e la barra di avanzamento mostra a colpo d'occhio il tempo residuo. Attenzione a non copiarlo appena prima del cambio: potrebbe scadere prima di arrivare a destinazione.
  • Chiudendo la scheda del browser il segreto viene eliminato del tutto e non resta memorizzato da nessuna parte. Se vi serve come copia di riserva, custodite il segreto in un luogo sicuro, per esempio in un gestore di password.

Quando questo generatore aiuta

Controllare o migrare un’app di autenticazione

Prima di cambiare dispositivo e registrarsi di nuovo, può confermare qui che il segreto conservato sia corretto, anziché scoprirlo già sul telefono nuovo.

Provare gli accessi in ambiente di sviluppo

Quando aggiunge l’autenticazione a due fattori al proprio servizio, generi codici dal segreto di un account di prova ogni volta che deve mettere alla prova la logica di autenticazione.

Verificare un segreto di backup

Confermi rapidamente che un segreto custodito in un gestore di password funzioni ancora, senza aprire l’app sul telefono.

Rafforzare la sicurezza dell’account nel complesso

Se desidera rivedere anche la robustezza della password stessa, meritano uno sguardo il generatore di password e il generatore di passphrase memorizzabili.

Esplorare il calcolo di hash sottostante

Se le interessano l’HMAC e le funzioni di hash su cui poggia il TOTP, il calcolatore di hash SHA-256 mostra quel mattoncino isolatamente.

Termini legati al TOTP

TOTP (Time-based One-Time Password)
Schema (RFC 6238) che genera una password monouso da un contatore ricavato dall’ora corrente. Il codice cambia automaticamente a intervalli fissi, di norma trenta secondi.
HOTP (HMAC-based One-Time Password)
Lo standard precedente (RFC 4226) su cui si basa il TOTP. Al posto dell’orologio impiega un contatore che avanza di uno a ogni utilizzo.
Segreto (chiave condivisa)
Chiave privata custodita sia dal servizio sia dalla sua app di autenticazione. Viene rilasciata come stringa Base32 all’attivazione e da essa, insieme all’ora, si calcola il codice.
Autenticazione a due fattori (2FA)
Metodo di accesso che unisce ciò che si sa, la password, a ciò che si possiede, di solito un’app di autenticazione sul telefono. Anche se uno dei due trapela, l’accesso non autorizzato resta assai più difficile.
Passo temporale
Intervallo con cui un codice TOTP cambia. La RFC 6238 fissa trenta secondi come valore predefinito, ripreso senza modifiche dalla maggior parte di servizi e app.
Base32
Codifica che rappresenta una sequenza di byte con i soli 32 caratteri A–Z e 2–7. I segreti TOTP sono distribuiti in questa forma perché è facile da leggere e trascrivere.
Troncamento dinamico
Passaggio che preleva quattro byte dalla lunga uscita dell’HMAC secondo una regola fissa e li converte in un numero a sei cifre. È definito nella RFC 4226 ed è comune a HOTP e TOTP.

Domande frequenti

Sì. La decodifica Base32 e il calcolo HMAC avvengono interamente nel browser tramite la Web Crypto API e nulla viene inviato a un server. Potete verificarlo osservando il traffico di rete: il segreto non viene trasmesso.

Le cause più probabili sono un algoritmo di hash diverso (di norma SHA-1, ma alcuni servizi usano SHA-256 o SHA-512) oppure un orologio non sincronizzato. Provate prima a cambiare algoritmo; se il problema resta, controllate le impostazioni dell'ora del dispositivo e attivate la sincronizzazione automatica.

In generale TOTP. Gli SMS possono essere intercettati da terzi con il dirottamento del numero telefonico (la truffa dello scambio di SIM), mentre TOTP funziona interamente sul dispositivo e non è esposto a quel tipo di attacco.

Molti servizi rilasciano dei «codici di recupero» al momento dell'attivazione dell'autenticazione a due fattori. Se avete perso il segreto stesso, dovrete passare dalla procedura di recupero dell'account del servizio, con verifica dell'identità, e riconfigurare il secondo fattore.
Tool-kun

A proposito — perché i codici a due fattori sono di sei cifre

OATH (Initiative for Open Authentication), che ha redatto le specifiche di TOTP (RFC 6238), ha ripreso il troncamento dinamico di HOTP (RFC 4226) lasciando libera l'implementazione di scegliere il numero di cifre. Che le sei cifre siano diventate lo standard di fatto si deve a Google Authenticator, che le adottò nella prima versione del 2010 e fu seguito da moltissimi servizi e librerie.

Sei cifre sono anche un ottimo punto di equilibrio. Con un milione di combinazioni (10⁶) e una validità di appena 30 secondi, un attacco a forza bruta diventa praticamente impossibile; allungare ulteriormente il codice, invece, ne comprometterebbe la praticità per chi deve leggerlo e digitarlo. Non è un caso che anche la maggior parte dei codici via SMS sia di sei cifre: è la regola empirica su cui è conversa l'intera categoria dei «codici numerici usa e getta».

Il predecessore di TOTP, HOTP (RFC 4226, 2005), si basava su un «contatore» che andava fatto avanzare a ogni utilizzo. Poiché gli utenti dimenticavano di premere il pulsante e i contatori di dispositivo e server finivano per disallinearsi, la TOTP del 2011 sostituì quel meccanismo con l'«ora corrente», un riferimento che chiunque può consultare, semplificando enormemente la gestione.