He implementado el aspecto de inicio de sesión / verificación de un sistema de autenticación de dos factores según RFC 6238 .
Funciona bien con Google Authenticator, lo cual es genial.
Ahora estoy prestando atención a los códigos de copia de seguridad que brindan los servicios que implementan 2FA, como Google y GitHub.
Observo que tienen una longitud y / o formato diferente al código de autenticación directa habitual de 6 dígitos.
Entonces, yo:
- Genere un número arbitrario de códigos cuando un usuario configura 2FA
- Almacénelos en la base de datos junto con el usuario
- Aproveche el hecho de que tienen una longitud o formato diferente para decidir cómo verificarlos.
¿Se supone que son aleatorios o se generan en función de algún hash del usuario?