¿Cuál es la vida útil recomendada de un token de restablecimiento de contraseña?
Demasiado corto degradará la experiencia del usuario y demasiado tiempo comprometerá la seguridad.
La respuesta depende realmente de la complejidad de su token de reinicio. El objetivo debe ser que no se pueda adivinar un token de restablecimiento en el tiempo válido dado.
Por ejemplo, si su token de restablecimiento tiene 5 caracteres, solo dígitos y su servidor es capaz de responder a 100 solicitudes por segundo sin límite de velocidad, es probable que 15 minutos sean demasiado largos. Solo piensa en el posible ataque:
Esto, especialmente el paso 3, no debería ser posible en el tiempo indicado. Eso significa que si tiene un universo lo suficientemente grande como para dibujar claves de reinicio (como 32 caracteres alfanuméricos), así como la limitación de velocidad en su aplicación, incluso un día no afectará mucho su seguridad. También puede (y debe) elegir informar a su usuario con un segundo correo electrónico / mensaje sobre el cambio de contraseña realizado. También tenga en cuenta que su aplicación puede admitir tokens de reinicio muy largos sin comprometer la experiencia del usuario, ya que nunca tienen que escribirla.
Editar: Por supuesto, debe calcular de manera que solo se pueda probar un porcentaje muy pequeño de claves en el tiempo especificado. Por ejemplo, un riesgo de 0,000001% de adivinar la clave correcta en el intervalo de tiempo dado podría ser un riesgo aceptable. Una pequeña cantidad de riesgo es algo que tendrá que aceptar de cualquier manera.
También es una buena idea tener el código aleatorio que su sistema Genera tener solo un período de validez limitado, digamos no más de 20 minutos más o menos De esa manera si el usuario no se pone a revisar su correo electrónico y su cuenta de correo electrónico se comprometen más tarde, el azar El token utilizado para restablecer la contraseña ya no sería válido si el usuario nunca restablecer su contraseña y el token "restablecer contraseña" fue descubierto por un atacante.
Consulte "Olvidar contraseña en la hoja de trucos" en OWASP wiki .
Lea otras preguntas en las etiquetas passwords password-management password-reset