Perché utilizzare codici monouso per i backup di autenticazione a due fattori?

7

Sto costruendo un'applicazione web che utilizza l'autenticazione a due fattori.

Durante l'implementazione della funzione di ripristino, vedo che la maggior parte delle aziende (ad esempio Apple, Facebook, Github) fornisce un set di ~ 15 codici di backup, che sono un codice da 7-10 caratteri per volta da inviare al server insieme a le credenziali dell'utente come parte del processo di recupero dell'account.

Non capisco questa pratica. Perché la necessità di codici monouso? Non sarebbe più semplice avere uno, codice di backup multiuso?

    
posta Nino Filiu 30.07.2018 - 13:32
fonte

1 risposta

7

Rispetto a qualcosa come SMS o e-mail OTP, non penso che ci sia un caso valido per renderli utilizzabili una sola volta, ma gli stessi argomenti si applicano ancora.

Supponiamo di avere i codici stampati su carta. Quindi durante il processo di recupero, il codice di ripristino passa attraverso tutti i seguenti nodi:

  • Plaintext: tastiera del mio computer, sistema operativo, browser
  • CRIPTATO DA HTTPS: browser - > endpoint TLS del server (ad esempio CloudFront)
  • Plaintext: TLS endpoint - > apparecchiature di rete - > server delle applicazioni
  • Testo normale: server applicazioni < - > db < - > altri componenti interni.

Il punto è che anche con HTTPS, ci sono molti di nodi che avranno il tuo codice in memoria (o forse nei log) come parte del processo di recupero. Se il codice è multiuso, devi avere la certezza che ognuno di quei nodi è onesto e non infetto da malware. Se il codice è monouso, una volta utilizzato, non ti interessa se finisce nei log o altro.

Non è un argomento solido, ma è il massimo che riesco a trovare.

    
risposta data 30.07.2018 - 15:31
fonte