Restablecer contraseña: ¿debo evitar el abuso?

9

Mi suposición es que restablecer la contraseña es solo un problema de seguridad si un atacante obtuvo acceso al correo electrónico del usuario.

Pero me preguntaba qué pasaría si alguien simplemente abusa de él (por ejemplo, envía una solicitud de "restablecer contraseña" cada 5 segundos a un correo electrónico de ex novia / novio o un jefe odiado, etc.)

  • ¿Existe una práctica común para tener algún tipo de límite de tiempo / cuenta para las solicitudes de restablecimiento de contraseña? (por ejemplo, el usuario no puede pedir restablecer la contraseña más de x veces en un período y)

  • ¿O se considera que no es un problema ya que las personas realmente no lo hacen a menudo? (o al menos con la frecuencia que la gente pide pizza a la dirección de otra persona, supongo)

* Esta es mi primera pregunta aquí, espero que siga las preguntas frecuentes, por favor, comenta si no es

    
pregunta Eran Medan 21.11.2012 - 01:44
fuente

3 respuestas

7

Sí, es muy probable que la misma detección de "intentos excesivos" que se aplica a los intentos de inicio de sesión también se aplique a las "solicitudes de restablecimiento de contraseña".

Muchos sistemas también implican un paso de captcha, lo que dificulta el envío de correo no deseado al intento de reinicio. El siguiente ejemplo es la página de restablecimiento de contraseña de outlook.com:

Creo que este es un ataque bastante ineficiente: gracias a la limitación de velocidad, no puede dirigirse de manera confiable a un individuo, e incluso si pudiera, los correos electrónicos podrían bloquearse de manera trivial con una regla de cliente de correo electrónico.

    
respondido por el scuzzy-delta 21.11.2012 - 02:20
fuente
4

No debería permitir restablecer una contraseña sin algún tipo de identificación de usuario (débil). Esto es importante no solo para proteger a alguien de ser una molestia al restablecer repetidamente la contraseña, sino también porque se puede usar como una forma de DOS a corto plazo. Lo siguiente se tomó de gran publicación de blog de Troy Hunt sobre el restablecimiento seguro de contraseñas :

  

Una cosa sobre cada uno de los ejemplos anteriores es que la contraseña antigua es   solo se vuelve inútil después de que la identidad del propietario de la cuenta haya sido   verificado Esto es muy importante como si la cuenta pudiera ser restablecida.   Antes de verificar la identidad y luego se abre la puerta para todo tipo de   actividad maliciosa.

     

Aquí hay un ejemplo: alguien está haciendo una oferta en un sitio de subastas y hacia   Al final del proceso de licitación, bloquean a los postores que compiten entre sí.   Iniciando el proceso de reinicio eliminando así su competencia. Claramente   Puede haber resultados adversos importantes si una función de reinicio mal diseñada   se puede abusar Eso sí, los bloqueos de cuenta por intentos de inicio de sesión no válidos son   una historia similar, pero esa es una para otra publicación.

     

Como mencioné anteriormente, permitir a los usuarios anónimos la posibilidad de restablecer   La cuenta de cualquier persona simplemente sabiendo que su dirección de correo electrónico es una denegación de   Ataque de servicio a la espera de que suceda. Puede que no sea un DOS en el camino.   a menudo pensamos en ello, pero no hay una manera más rápida de bloquear a alguien fuera de   su cuenta que a pesar de una característica mal diseñada para restablecer la contraseña.

Las preguntas de seguridad son el método de identificación débil más utilizado. Para obtener más información sobre las preguntas de seguridad, consulte el artículo de Wikipedia .

    
respondido por el David Wachtfogel 21.11.2012 - 08:42
fuente
4

Voy a comenzar diciendo que no tengo idea de si existe una buena práctica al respecto, pero seguiré adelante y responderé con dos puntos de vista en mente; La vista de seguridad y la vista de usuario ...

Primero que nada, cuando se realiza una solicitud de contraseña, no se debe eliminar la contraseña. ¿Qué pasa si su usuario de repente recordó su contraseña? Deben poder iniciar sesión sin que la solicitud de reinicio afecte su experiencia. En su lugar, se debe generar una cadena aleatoria generada de forma segura una vez (lote de entropía) y guardarla con el usuario como el último identificador de solicitud de reinicio. También se debe almacenar una marca de tiempo. Luego, el enlace en el que el usuario hace clic en el correo electrónico debe contener ese código de tiempo y su dirección de correo electrónico para poder reiniciarlo. También puede verificar la marca de tiempo que se estableció para ver si la solicitud se realizó dentro de los últimos 15 minutos aproximadamente (solo un ejemplo). El otro punto de esto es que si la persona realmente no lo solicitó, aún debería poder iniciar sesión.

Segundo, la mejor manera de limitar esto es usar algo como reCaptcha. Se volverá molesto para el usuario hacer spam constantemente.

Tercero, no creo que sea necesario enviar más de 2 correos electrónicos dentro de una ventana de tiempo específica.

Creo que el mayor riesgo para la seguridad aquí es que alguien que fuerza tu contraseña olvidada para descubrir la información de inicio de sesión de la cuenta. Ser capaz de detectar que alguien está forzando bruscamente tu página de "Olvidé mi contraseña" sería enorme. Tal vez registre el número de solicitudes de restablecimiento de la cuenta desde una dirección IP específica y observe cuándo ese número es demasiado alto en un período de tiempo determinado y requiere que la persona envíe un correo electrónico a [email protected] para poder restablecer su cuenta. [Querrá jugar con los números aquí porque debe tener en cuenta a las personas que se sientan detrás de los NAT, especialmente a los empleados de grandes corporaciones ... nunca se sabe cuándo todos olvidarán su contraseña el mismo día].

    
respondido por el sparticvs 21.11.2012 - 02:02
fuente

Lea otras preguntas en las etiquetas