Restablecimiento de contraseña del sistema del código del sistema vs hash largo

2

Estoy creando un sistema de restablecimiento de contraseña en este momento y me he encontrado con un dilema.

Actualmente tenemos un sistema que crea un largo md5 (16 caracteres) y envía por correo electrónico un enlace a un cliente, al que luego hace clic y puede restablecer su contraseña.

Sin embargo, ahora queremos alejarnos de poner enlaces en el correo electrónico y hacer que los clientes sepan esto para contrarrestar los ataques de phising.

Mi solución es crear un número de pin de 5-6 dígitos y enviarlo en texto a un cliente por correo electrónico.

Sin embargo, parece que estamos incrementando la seguridad al alejarnos de los enlaces del correo electrónico, pero disminuyendo la seguridad al hacer que sea más fácil adivinar un token de seguridad.

¿Alguien tiene alguna recomendación u opinión sobre esto?

    
pregunta Callum 02.07.2014 - 17:25
fuente

2 respuestas

2

El token es solo para verificar que recibiste el correo electrónico, que eres el propietario de la cuenta.

Los enlaces para restablecer la contraseña en los correos electrónicos son una conveniencia que proporciona una prueba de que usted posee la cuenta de correo electrónico y le permite acceder fácilmente al flujo de trabajo de restablecimiento de contraseña.

Estos tokens no tienen que vivir en ningún lugar a largo plazo y puedes invalidarlos después de algunos intentos fallidos si así lo deseas. Por lo tanto, no necesita una gran entropía de la misma manera que los tokens MFA.

    
respondido por el Andrew Hoffman 02.07.2014 - 17:37
fuente
2

Estoy de acuerdo con @schroeder en que los correos electrónicos de restablecimiento de contraseñas son una de las áreas donde tiende a ser más aceptable instruir a los usuarios para que hagan clic en los enlaces. Después de todo, el usuario fue el que activó el restablecimiento de la contraseña y debería estar esperando un correo electrónico. Puede agregar texto en el correo electrónico que dice "Este correo electrónico se envió debido a su solicitud. Si no solicitó un restablecimiento de contraseña, no haga clic en este enlace. Normalmente, no debe hacer clic en ningún enlace de un correo electrónico inesperado, incluso si aparece para ser legítimo ".

La razón por la que te animo a que reconsideres esto es porque tu alternativa (usar un PIN) va a ser más complicada para los usuarios y probablemente te cause más dolores de cabeza. Dejando de lado la complejidad del PIN, tendrá que informar a los usuarios sobre qué hacer, y estas instrucciones requerirán que les diga dónde están en su sitio para ingresar el código. Mientras dice "Ir a la página de inicio de nuestro sitio, haga clic en Olvidé mi contraseña y haga clic en Ingresar para restablecer el PIN" no es un problema, aún así los usuarios se quejarán de que no pueden encontrar los botones o se confunden de lo que deben hacer. Tenerlos simplemente haciendo clic en un enlace elimina gran parte de esta confusión.

Con respecto a la complejidad del PIN, debería poder hacer algunas cosas para contrarrestar el "espacio de teclas" reducido de un PIN aleatorio de 6 dígitos en comparación con su hash. Puede agregar letras y algunos símbolos para aumentar el número de combinaciones posibles. Puede solicitar al usuario no solo su PIN de restablecimiento, sino también su dirección de correo electrónico (lo que requiere que un atacante adivine algo más que un PIN válido). También puede agregar un CAPTCHA u otra verificación de "vida" para dificultar las adivinanzas automatizadas en la entrada de PIN. Finalmente, puede monitorear los intentos de restablecimiento de PIN y bloquear las direcciones IP (o retrasarlas) que envían una gran cantidad de conjeturas.

Al igual que con una función de restablecimiento de contraseña basada en enlaces, estos PIN solo deben ser válidos para un solo uso y deben caducar dentro de los 30 a 60 minutos, independientemente de si se usan o no.

Al tomar pasos como estos, puede eliminar las amenazas más probables contra un sistema de restablecimiento de contraseña basado en PIN.

    
respondido por el PwdRsch 02.07.2014 - 17:57
fuente

Lea otras preguntas en las etiquetas