I TOTP sono molto diversi dalle password convenzionali.
Per convalidare il TOTP, il server deve avere accesso al testo in chiaro del segreto (potrebbe essere scritto in memoria in un formato crittografato), ma poi c'è il problema di pollo / uovo su dove conservare la chiave di crittografia) . Quindi il database dei segreti deve essere protetto.
Un TOTP a 6 cifre ha molta meno entropia di, diciamo, una password di 8 caratteri con almeno un maiuscolo, uno .... ma mentre quest'ultimo sarà persistente per almeno un mese. la finestra corta del primo esiste per il fatto che è improbabile che il tentativo di accesso alla forza bruta testando tutti i possibili valori sul servizio, piuttosto che offline, abbia successo. Effettivamente con una limitazione molto piccola le possibilità di ottenere la password corretta al momento giusto sono piccole. E questo presuppone che il servizio consenta un numero molto grande di ipotesi sbagliate.
In effetti puoi fare i calcoli - per forzare brutamente una password di 8 caratteri in un mese, avrai bisogno di fare circa 2 milioni di tentativi al secondo. Da OTOH alla forza bruta un codice pin di 10 cifre in 30 secondi, è necessario eseguire circa 150 milioni di tentativi al secondo.
Come probabilmente saprai, le password convenzionali dovrebbero essere sottoposte a hashing in modo sicuro usando un salt. Quindi, anche se un utente malintenzionato si impossessa del database, non può invertire le password né eseguire una ricerca di forza bruta di tutte le password possibili per trovare una corrispondenza. Se la password è solo un pin di quattro cifre, allora hanno solo bisogno (una media di) di 5.000 iterazioni per trovare il valore - il che non richiederebbe molto tempo - infatti potrebbe essere fatto entro 30 secondi TTL per un TOTP raccomandato da rfc6238. Ma dal momento che il meccanismo TOTP non fornisce intrinsecamente protezione contro un attacco offline nel database dei segreti, non ha molto senso avere questa protezione né richiedere livelli elevati di entropia per la password memorizzata.
Un'ulteriore considerazione è che, data la riduzione degli sforzi e delle competenze necessarie per operare legittimamente il servizio, il fornitore di servizi può essere molto meno indulgente nei confronti delle password errate - sospendere gli account e richiedere il completamento di convalide complesse prima di ripristinare l'accesso.
Quindi anche se 6 cifre o anche 6 + 4 cifre hanno entropia intrinseca molto bassa, quando è limitata nel tempo, è un modo molto efficace per autenticare le persone.