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. .