Generando códigos de respaldo para una implementación 2FA

7

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?

    
pregunta bcmcfc 07.07.2014 - 17:45
fuente

1 respuesta

6

Por lo general, los códigos de copia de seguridad son credenciales aleatorias opacas, no se basan matemáticamente en la semilla 2FA o cualquier otra cosa conocida sobre el usuario, y se generan con la suficiente extensión y entropía para evitar ataques de diccionario.

Trátelos como si fueran contraseñas de un solo uso; cámbielos antes del almacenamiento para que no tenga los originales; desechar después de un uso en la autenticación; limitar el número y la tasa de intentos de autenticación; y permitir a los usuarios autenticados generar un nuevo conjunto, lo que invalida el conjunto anterior.

    
respondido por el Jonah Benton 05.08.2016 - 05:01
fuente

Lea otras preguntas en las etiquetas