Correo electrónico clave secreta de autenticación de 2 factores

1

En nuestra aplicación web PHP hemos incluido la autenticación de dos factores. Los usuarios tienen una clave secreta de una sola vez que luego ingresan (o escanean un código QR) en la aplicación Google Authenticator.

La autenticación se basa en el tiempo, por lo que la aplicación Authenticator genera un nuevo token cada 60 segundos, y este token debe ingresarse cuando el usuario intente iniciar sesión en nuestra aplicación.

Todo funciona perfectamente bien, sin embargo, cuando se agrega un nuevo usuario a nuestro sistema, se envía por correo electrónico su token secreto (y el código QR asociado) la primera vez.

Además, al igual que tenemos una función de "contraseña olvidada" para restablecer la contraseña de un usuario por correo electrónico, estamos pensando en tener la opción de volver a enviar por correo electrónico o restablecer la clave secreta del Autenticador de un usuario (por ejemplo, si un teléfono se destruye y se reemplaza por uno nuevo, y necesitan configurar la aplicación nuevamente.

Sin embargo, no he encontrado ningún ejemplo real de la posibilidad de enviar o restablecer una clave secreta de autenticación de dos factores por correo electrónico. ¿Es un pecado fundamental comunicar esta información por correo electrónico y debería hacerse de otra manera?

Además de la autenticación de dos factores, tenemos una serie de otras medidas de seguridad (contraseña, acceso al sistema bloqueado a la dirección IP, alertas cuando los navegadores web nuevos / no reconocidos inician sesión en el sistema, etc.) si eso marca alguna diferencia. .

    
pregunta MrCarrot 26.06.2017 - 20:49
fuente

3 respuestas

1

2FA aprovecha el hecho de que un posible atacante no puede controlar suficientes secretos / cosas para poder ingresar en una cuenta. En este caso, confía en algo que el usuario sabe (frase de contraseña) y en algo que tiene (el teléfono inteligente, correctamente configurado y registrado).

La transmisión de secretos, como la información de restablecimiento, de manera similar, debería aprovechar la ventaja de no controlar, o incluso tener visibilidad de todos los canales de comunicación. Si el usuario debe confiar exclusivamente en la conectividad de Internet, un atacante determinado puede interceptarlo de varias maneras.

La colocación tanto del restablecimiento de la contraseña como del restablecimiento de 2FA en el mismo canal (en este ejemplo, por correo electrónico) debe realizarse con precaución, y algunos controles, como no permitir una solicitud de 2FA dentro de un período de tiempo determinado desde el restablecimiento de la contraseña (antes y después), se deben investigar los sistemas de geolocalización que ya tiene y otros. En este caso, sea tan pesimista y paranoico como sea posible al idear escenarios de ataque.

Snail Mail es, en la mayoría de los países, un mecanismo de transmisión bastante seguro. Si el sobre no llama la atención sobre sí mismo, no hay razón para que un empleado de correos ordinario le preste atención, y si el contenido es exactamente el código de reinicio sin otro contexto, un interceptor casual no tendría idea de cuál es su propósito. / p>

Los códigos QR son una forma buena y confiable de enviar esta información, reducen los problemas de entrada de datos y son una excelente manera de enviar información binaria en papel.

    
respondido por el Liam Dennehy 27.07.2017 - 12:27
fuente
1

Existe un protocolo denominado Dynamic Symmetric Key Provisioning Protocol (DSKPP). Este es un protocolo cliente-servidor que le permite inicializar su autenticador con una clave secreta sin enviarlo por correo electrónico - enlace

    
respondido por el user93353 26.06.2017 - 21:00
fuente
0

No me gusta mucho enviar el secreto TOTP por correo electrónico. ¡De esta manera nunca lo sabrás, si un usuario ha sido hackeado! Consulte una de mis antiguas publicaciones: enlace

Recomiendo que solo envíes cosas por correo electrónico, que se usarán solo una vez. Así que

  1. el usuario sabe que ha usado el secreto y nadie más puede usarlo incorrectamente o
  2. el usuario se da cuenta de que no puede usar el secreto y, por lo tanto, sabe que otra persona lo usó.

Eche un vistazo a la solución openID 2FA privacyIDEA ( enlace ) Allí puede enviar un código de registro al usuario. El código de registro solo se puede utilizar una vez y luego el usuario puede registrar el secreto TOTP en su Google Authenticator. El secreto TOTP no se puede usar mal cuando se pudre en la bandeja de entrada de los usuarios ...

    
respondido por el cornelinux 07.08.2017 - 19:44
fuente

Lea otras preguntas en las etiquetas