Flujo de implementación de MFA con TOTP

1

Para una interfaz, me gustaría implementar MFA (con TOTP). Puede que esté buscando las palabras clave equivocadas, pero no pude encontrar la manera correcta de implementar esta solución de forma segura. Estaba buscando un flujo de diagrama, por ejemplo, como:

  1. Solicitud: POST para / iniciar sesión con credenciales en JSON, Respuesta 302 a / mfa
  2. Solicitud: GET / mfa, Respuesta / mfa
  3. Solicitud: POST con credenciales nuevamente y código mfa, Respuesta 302 a /
  4. Solicitud: GET para /, respuesta 302 a / (usuario que inició sesión)

¿Hay alguna descripción de RFC ( enlace ) en detalles sobre la implementación de dicho protocolo o depende del usuario? ssl de otro sitio web para realizar ingeniería inversa cómo lo hicieron (lo que hice para github, etc.). ¿Solo está buscando la forma correcta de implementarlo, puede ser un marco que ya funciona? ¿Debo usar cookies o está bien volver a solicitar al usuario e iniciar sesión junto con el código de mfr (noté que github en el PASO 3 usa authenticity_token=<base64token>&otp=<123456> )

Muchas gracias por tu ayuda

PS; una solución ya hecha, como el inicio de sesión con google no es posible, necesito usar la propia base de datos de mi usuario

    
pregunta jthemovie 28.02.2017 - 16:39
fuente

4 respuestas

1

Es posible que desee revisar PrivacyIDEA y su producto y código: tienen una implementación funcional en Python, y creo que podría usar su API para una o ambas rondas de autenticación.

enlace

No está exento de algunos bordes ásperos aquí y allá (no querrá dejar que esto se pierda en su base de datos de usuario sin realizar algunas pruebas), pero podría proporcionarle un servicio que pueda usar mientras investiga, o implementación concreta en la que puede basar su propia cuenta de

    
respondido por el iwaseatenbyagrue 28.02.2017 - 17:05
fuente
0

¿Qué hay de no tener una página separada para el código de dos factores?

En su página de inicio de sesión estándar, tenga un campo oculto y opcional para el código 2FA: al iniciar sesión, hágalo en Javascript para que pueda verificar si la cuenta tiene 2FA habilitado, y si es así, haga que el campo esté visible y deje que ¿El usuario vuelve a intentarlo?

Esto evita tener que recordar si el usuario ha iniciado sesión con la contraseña, ya que en el segundo intento, su solicitud de inicio de sesión contendrá tanto la contraseña como el código 2FA, momento en el cual puede verificarlos y otorgar / denegar el acceso.

Gandi.net implementa algo como esto. Cuando inicie sesión con 2FA habilitado, le devolverán la misma página de inicio de sesión con su nombre de usuario / contraseña ya allí y un campo adicional para el código 2FA. Podemos argumentar que devolver la contraseña no es perfecto (aunque la superficie de ataque es IMO muy pequeña), por eso propuse hacerlo en Javascript, de esa manera el servidor no tiene que enviar la contraseña, ya que simplemente no actualices la página y preserva la existente.

    
respondido por el André Borie 28.02.2017 - 17:10
fuente
0

¡Creo que te equivocas al respecto de la autenticación de dos factores con OTP!

Comportamiento predeterminado

Imagine una aplicación web, que autentica al usuario con nombre de usuario y contraseña. Imagen esto se implementa a sus necesidades y está bien con eso. Hay estándares para hacer esto.

Ahora: OTP no cambia nada con eso. No cambias las cookies, sesión, JWTs lo que sea. Con OTP, solo agrega el segundo factor a la contraseña.

Hasta entonces el usuario ingresó

  • nombre de usuario
  • contraseña

Esto se envía a la aplicación, la aplicación lo verifica y devuelve una sesión al usuario.

Añadir segundo factor

Al agregar un segundo factor, el usuario ingresa:

  • nombre de usuario
  • contraseña + OTP

esto se envía a la aplicación y la aplicación verifica la contraseña + OTP y, si todo está bien, devuelve una sesión de la misma manera que antes. No hay voodo involucrado aquí.

    
respondido por el cornelinux 13.03.2017 - 19:11
fuente
0

Con respecto a sus objetivos, es posible que desee considerar el flujo de proceso para el Factor Multifactor según lo descrito por el PCI-DSS (aunque puede que no sea directamente aplicable a su situación ahora, puede que algún día lo haga) en el siguiente documento :

Consulte el Capítulo: pasos múltiples frente a factores múltiples en la página 5

SUPLEMENTO DE INFORMACION Autenticación multifactor Versión: 1.0 Fecha: febrero 2017 Autor: PCI Security Standards Council

enlace

    
respondido por el Thomas Brandtstaetter 09.05.2018 - 14:59
fuente

Lea otras preguntas en las etiquetas