La debilidad aquí es la falta de Entropía en el código de restablecimiento de contraseña.
Quiero decir que eliges un número aleatorio de 6 dígitos (338625) y lo intentas contra muchos usuarios. Así que el atacante tiene que adivinar un código de reinicio de 10^6
posibilidad. En algún momento puede funcionar.
Cálculo: Dado que Facebook tiene una gran base de usuarios y recibe un gran número de solicitudes de restablecimiento de contraseñas, digamos 10000 ( 10^4
) en 3 minutos antes de que caduquen, lo cual es comparable a 10^6
.
La probabilidad de que este código de descanso de contraseña sea válido contra algún usuario es 0.01
.
Está haciendo el código de reinicio mucho más grande ayudará a resolver el problema,
¿O Facebook necesitará una nueva tecnología de reinicio?
Facebook puede simplemente arreglarlo aumentando la entropía del código de restablecimiento de contraseña.
Esto se puede hacer fácilmente por:
- Tener alfabetos (
[A-Z|a-z]
- 52 ), dígitos ( 0-9
- 10 ), caracteres especiales ( decir 10 ) en el código de restablecimiento de contraseña.
- Teniendo una buena extensión de, por ejemplo, 10 caracteres (Respuesta de Rory McCune).
Cálculo: Para un código de reinicio de longitud 6, el atacante ahora tiene que adivinar un código de reinicio entre (52+10+10)^6
.
La probabilidad de que este código de restablecimiento elegido aleatoriamente por el atacante coincida con un código de restablecimiento de contraseña válido entre los 10^4
anteriores es 0.000000071
o 7.1*10^-8
. En lugar de hacer esto, el atacante tiene más posibilidades de adivinar la contraseña y de probarla con muchos usuarios.
Cómo defenderme de este ataque, debería restablecerlo nuevamente después de que
recibir el mensaje de reinicio del proceso de ataque, o debo
restablecer por correo?
Creo que los esfuerzos para protegerse contra este ataque deberían provenir de Facebook.
Desde entonces, los usuarios pueden no mirar el mensaje de restablecimiento / correo electrónico tan pronto como llegue. Desde el punto de vista del usuario, todo lo que puedo pensar es habilitar la autenticación de dos factores.