È possibile utilizzare un mix di ritardo temporale e codici di backup. Quando l'utente attiva 2FA, mostragli un paio di Codici di backup (come fa Google) e chiedi loro di salvarlo da qualche parte e chiedi uno dei codici nella schermata successiva. Questo ti farà risparmiare qualche problema in seguito.
Di tanto in tanto, chiedere all'utente uno dei codici di backup quando accede, anche se invia il token 2FA. Se non sa / non ha i codici di backup, ne genera di nuovi, li invia all'utente, gli chiede di salvare i codici, ne chiede un altro a caso nella schermata successiva. L'utente verrà informato che i codici di backup sono speciali.
Se l'utente perde entrambi i codici 2FA e di backup, creare un processo molto lungo per recuperare i codici. Mostragli i passaggi necessari, quanto tempo impiegano e dove si trova:
-
L'utente chiede un reset 2FA, gli invia un link e dichiara che il link sarà disponibile dalle 24h alle 48h DOPO che fa clic sul link
-
L'utente riceve un link che dice a qualcuno con questo IP / OS / browser di reimpostare la 2FA, e se era lui, deve aspettare fino al giorno successivo e fare clic sul link.
- Il giorno dopo, l'utente fa clic sul collegamento e riceve un'altra posta con un link e un token di ripristino che deve essere immesso sul sito tra 24 ore e 48 ore dopo. Aggiungi lo stesso messaggio che qualcuno, forse lui, con questo IP / OS / browser ha provato a ripristinare il suo 2FA.
- Il giorno successivo, l'utente fa clic sul collegamento, carica una pagina, entra nel tuo sito ed entra nel token. Digli che dovrà effettuare nuovamente il login tra 24 ore e 48 ore e 2FA sarà disabilitato.
- L'utente si riavvia dopo 4 giorni, dopo aver ricevuto almeno 3 e-mail che gli dicono che qualcuno sta tentando di ripristinare la sua 2FA.
Penso che 4 giorni siano sufficienti a far perdere interesse a un hacker nell'account ea un buon periodo di tempo per consentire a qualsiasi utente di rilevare e bloccare qualsiasi pirateria di account. Se 4 giorni non bastano, puoi aumentare il tempo tra ogni email. E ogni utente veramente interessato a recuperare il suo account seguirà le istruzioni.