¿Es inseguro revelar si una contraseña se está utilizando para otra cuenta después de un período de tiempo establecido?

3

La reutilización de contraseñas puede considerarse una pandemia de seguridad. La forma obvia de solucionar esto es alentar a las personas a usar administradores de contraseñas, pero (comparativamente) pocas personas lo hacen.

Mi idea es tener sitios web, una vez que un usuario se registre o cambie su contraseña, para verificar la misma contraseña en todas las demás cuentas. Si se encuentra uno, luego de un retraso establecido de aproximadamente un día, se enviará un correo electrónico al usuario que se registró o cambió su contraseña, alertándolos de este hecho y recomendándoles que cambien su contraseña.

Puedo imaginar un problema inmediato con esto, que son los recursos del sistema. Es costoso codificar de forma segura las contraseñas, y el hash de una sola contraseña para compararlas con miles, posiblemente millones de cuentas podrían ser gravadas. Otro problema posible es el spam, pero creo que esto puede solucionarse fácilmente con la verificación del correo electrónico.

Suponiendo que las prácticas de almacenamiento de contraseñas son correctas, y suponiendo que los recursos del sistema no son un problema, ¿hay algún problema de seguridad al hacer esto?

Para reiterar:

  1. Un usuario se registra o cambia su contraseña.
  2. El sistema verifica si esa contraseña se usa en otra cuenta. Durante este tiempo, la contraseña se almacena en la memoria. Si el sistema experimenta una falla durante este tiempo, la verificación se cancela y se asume que la contraseña es única.
  3. Si se reutiliza, el usuario recibe un correo electrónico al día siguiente simplemente diciendo que su contraseña se usa en otro lugar y recomendar que el usuario la cambie.
pregunta Daffy 17.03.2016 - 03:49
fuente

3 respuestas

2

Sí. Debe considerarse una violación de la seguridad para revelar esta información. Deliberadamente se debilita la seguridad del servicio. Y el momento no es motivo de preocupación aquí.

Es una premisa falsa que dos usuarios que tienen la misma contraseña presentan un problema de seguridad que debe evitarse. No es asi.

Sin embargo, revelar este mismo hecho es un problema de seguridad que se mitigará aplicando la salado y las contraseñas de hash. Estas precauciones están destinadas a ocultar el hecho de que dos usuarios usan la misma contraseña.

Para ilustrar el riesgo: solo piense lo que podría escribir en ese correo electrónico:

  

Hola, acabamos de descubrir que uno de nuestros usuarios utiliza la contraseña que registraste ayer.

     

Por favor actualice sus diccionarios para crackers de contraseñas. Y no olvide verificarlo de inmediato con nuestras bases de datos de cuentas filtradas y con las de otras compañías.

    
respondido por el techraf 17.03.2016 - 04:07
fuente
2

Usted no entiende el problema, es cuando las personas usan la misma contraseña en múltiples servicios con el mismo nombre de usuario, dirección de correo electrónico o nombre real. Esto sucede porque una vez que un atacante obtiene una dirección de correo electrónico y una combinación de contraseña para un sitio, pueden probar la misma combinación en otros sitios.

No hay problema si dos usuarios en el mismo servicio tienen la misma contraseña, ya que no hay forma de que un atacante asocie las dos cuentas. Incluso si se filtra la base de datos, las contraseñas, si se almacenan correctamente, tendrán diferentes sales y serán irreconocibles.

Tu propuesta regala mucha información. Por ejemplo, permitiría a un atacante identificar qué contraseñas están en uso en su sistema al crear nuevas cuentas con contraseñas comunes. Una vez que se encontró una contraseña, un atacante puede usarla para intentar iniciar sesión en cuentas existentes en su sistema. Si el atacante puede obtener una lista completa de los nombres de usuario, esto garantiza que podrán acceder al menos a uno de ellos. Este tipo de ataque será difícil de atacar porque los intentos de inicio de sesión serán en las cuentas de diferentes usuarios.

Como lo mencionó @kasperd, lo principal que buscará contraseñas duplicadas en diferentes usuarios es el uso de contraseñas débiles, ya que las probabilidades de que dos contraseñas seguras sean iguales son efectivamente nulas. Si su objetivo es buscar contraseñas débiles, existen mejores estrategias para usar que no debilitan la seguridad del sistema.

Por lo tanto, su propuesta debilita la seguridad en un intento por solucionar un problema. Por lo general, es mejor atenerse a las estrategias de contraseña probadas y verdaderas.

[Gracias a @techraf por pedirme un mejor escenario de ataque.]

    
respondido por el Neil Smithline 17.03.2016 - 06:14
fuente
0

También es una buena práctica no saber qué contraseñas están usando los usuarios. Las contraseñas encriptadas MD5, por ejemplo, pueden ser adivinadas fácilmente. Use un mejor método de codificación que garantice que, incluso si todos los usuarios tienen la misma contraseña, no la verá en su base de datos.

    
respondido por el Frostbite 17.03.2016 - 08:53
fuente

Lea otras preguntas en las etiquetas