Puede utilizar una combinación de códigos de retraso y de copia de seguridad. Cuando el usuario active 2FA, muéstrele un par de Códigos de respaldo (como lo hace Google) y pídales que lo guarden en algún lugar, y pregunte uno de los códigos en la siguiente pantalla. Esto te ahorrará algunos problemas más adelante.
De vez en cuando, pregunte al usuario uno de los códigos de copia de seguridad cuando inicie sesión, incluso si envía el token 2FA. Si no sabe / no tiene los códigos de respaldo, genere nuevos códigos, envíelo al usuario, pídale que guarde los códigos y solicite otro al azar en la siguiente pantalla. Se informará al usuario de que los códigos de respaldo son especiales.
Si el usuario pierde los códigos 2FA y de copia de seguridad, cree un proceso muy largo para recuperar los códigos. Muéstrale los pasos necesarios, cuánto tiempo tomarán y dónde está:
-
El usuario solicita un restablecimiento de 2FA, le envía un enlace y le dice que el enlace estará disponible de 24 a 48 horas DESPUÉS de que haga clic en el enlace
-
El usuario recibe un enlace que le dice a alguien con este IP / OS / navegador que le pide que reinicie el 2FA, y si era él, tiene que esperar hasta el día siguiente y hacer clic en el enlace.
- Al día siguiente, el usuario hace clic en el enlace y recibe otro correo con un enlace y un token de restablecimiento que se debe ingresar en el sitio de 24 a 48 horas más tarde. Agregue el mismo mensaje que alguien, tal vez él, con este IP / OS / navegador intentó restablecer su 2FA.
- Al día siguiente, el usuario hace clic en el enlace, carga una página, ingresa a su sitio e ingresa el token. Dígale que tendrá que iniciar sesión de 24 a 48 horas nuevamente y 2FA se desactivará.
- El usuario vuelve a iniciar sesión después de 4 días, luego de recibir al menos 3 correos electrónicos que le dicen que alguien está intentando restablecer su 2FA.
Creo que 4 días es lo suficientemente largo para que un pirata informático pierda interés en la cuenta y un buen período de tiempo para que cualquier usuario detecte y detenga cualquier secuestro de cuenta. Si 4 días no es suficiente, puede aumentar el tiempo entre cada correo electrónico. Y cualquier usuario realmente interesado en recuperar su cuenta seguirá las instrucciones.