L'esistenza di codici di recupero a due fattori significa che il mio codice a 2 fattori non è completamente casuale?

2

Con alcuni servizi che utilizzano codici TOTP standard a 6 cifre, offrono anche la possibilità di disporre di un set di codici di backup, nel caso in cui si perda il dispositivo a due fattori.

Con Google, ad esempio, puoi stampare una copia cartacea di 10 codici di backup. Questi sono più di 6 cifre, quindi non è preoccupante.

Tuttavia, alcuni altri siti che generano codici di backup fanno usano 6 cifre. Reddit, ad esempio, sta implementando l'autenticazione a due fattori e i loro 10 codici di ripristino sono tutti a 6 cifre, che è della stessa lunghezza di un codice a due fattori standard che usano.

Questo significa che quei 10 codici non saranno in qualche modo generati a caso dalla chiave di avviamento del TOTP? Dal momento che stanno utilizzando un algoritmo standard (utilizzato da Google Authenticator, Authy, ecc.), Presumo che ogni numero di 6 cifre sia possibile.

In alternativa, ciò significa che nel tempo alcuni di questi codici diventeranno non validi, supponendo che l'algoritmo TOTP generi quel codice? O anche a più lungo termine, se effettuo l'accesso molte volte, immagino di dover eseguire uno di questi codici alla fine, usarlo per accedere e rimuovere inconsapevolmente quel codice dalla mia lista di backup.

Che cosa può essere implicito in una configurazione in cui i codici di ripristino a due fattori hanno lo stesso numero di cifre di un codice standard a due fattori?

    
posta Stephen Schrauger 12.10.2017 - 15:44
fonte

3 risposte

1

Esistono due modi per implementare i codici di ripristino

  • ricavali dal seme TOTP. Quindi il seme funziona come una password per i codici di recupero mentre è utilizzato come seme per i codici di accesso.
  • crea alcuni codici di recupero casuali e li memorizza indipendentemente dal seme TOTP. Quindi consenti di usarli come una password. Forse rimuovendoli dal database del codice di ripristino dopo che l'utente li ha usati.
risposta data 12.10.2017 - 15:47
fonte
1

I codici di backup, o codici scratch, sono totalmente indipendenti (almeno dal punto di vista operativo) dai tuoi codici standard. TOTP si basa sul tempo. I codici scratch sono piuttosto basati su un contatore incrementale.

I dettagli di implementazione sono probabilmente dipendenti dal fornitore, ma penso che sia sicuro assumere che utilizzino 2 semi diversi. Forse anche la funzione HMAC sottostante cambia, è difficile da dire.

Sul numero di cifre, tutto dipende dalla scelta della funzione HMAC e / o Troncatura sottostante. Perché il codice antigraffio dovrebbe essere più lungo di TOTP potrebbe essere quello di garantire un livello sufficiente di sicurezza. Essendo il codice zero risolto per un periodo potenzialmente lungo, è logico che siano più lunghi. Il TOTP d'altra parte richiede meno, perché il crack del codice più breve nel tempo di disponibilità indicato è già abbastanza difficile, quindi fornisce una flessibilità aggiuntiva all'utente che deve scriverlo manualmente.

    
risposta data 12.10.2017 - 15:54
fonte
1

Prima di tutto, come ha sottolineato M'vy, l'implementazione è totalmente dipendente dal fornitore.

What can be implied about a setup where the two-factor recovery codes are the same number of digits as a standard two-factor code?

Penso che tu possa sottintendere che un tale servizio è più insicuro! Se un codice di ripristino è un numero a 6 cifre, il servizio è più insicuro:

Vedi: Il valore TOTP a 6 cifre è valido solo per 30 secondi o 60 secondi, inclusa una finestra temporale secondo RFC6238.

Il codice RECOVERY a 6 cifre è valido come .... per sempre. Pertanto, a seconda dell'implementazione e del flusso di lavoro di ripristino, un utente malintenzionato potrebbe semplicemente "provare" tutti i codici da 1 milione di un codice di ripristino. Al contrario di TOTP, dove l'attaccante ha solo 60 secondi per provare tutte le combinazioni, un utente malintenzionato ha diversi anni per provare tutte le combinazioni di codice di ripristino.

    
risposta data 15.10.2017 - 20:09
fonte

Leggi altre domande sui tag