¿Las contraseñas malas producen hashes mal salados?

44

Cuando tiene una contraseña almacenada en una base de datos que ha sido fuertemente procesada y almacenada, ¿realmente importa si la contraseña del usuario subyacente es débil?

¿Si configura funciones como limitar las adivinanzas de inicio de sesión y utiliza captchas para detener las adivinanzas automáticas, puede compensar efectivamente una contraseña débil como " password "?

Supongo que mi pregunta es si utilizar una contraseña como "contraseña" hace que el hash con sal sea más débil que usar una contraseña más larga, como " fish&*n0d1cTionaRYatt@ck ". - ¿Son todos los hashes salados igual de seguros o depende de que la contraseña sea buena?

    
pregunta Crizly 27.10.2014 - 22:14
fuente

7 respuestas

86

Los hash salados están diseñados para proteger contra los atacantes que pueden atacar varios hashes simultáneamente o crear tablas de arco iris de valores hash precalculados. Eso es todo. No hacen nada para mejorar la fuerza subyacente de la propia contraseña, débil o fuerte.

Esto también significa que no están diseñados para defenderse de los ataques en línea, por lo que no tienen ningún impacto en la capacidad de los atacantes para manipular su formulario de inicio de sesión, donde la sal es irrelevante, porque un atacante no está calculando hashes directamente, pero ingresar las contraseñas candidatas en un formulario que puede (como usted dijo) un límite de velocidad o estar protegido por un captcha.

Las contraseñas débiles son débiles. Las contraseñas fuertes son fuertes Las sales no afectan a esta ecuación de ninguna manera.

    
respondido por el Xander 27.10.2014 - 22:23
fuente
38

Tienes que considerar dos vectores de ataque:

  • ataque en línea
  • ataque sin conexión

Limitar las adivinaciones de inicio de sesión ayuda contra los ataques en línea.
Digamos que es tres veces, esto significa que un atacante puede probar TODAS las cuentas para las tres contraseñas más comunes que se ajustan a su política de contraseñas (¿qué tal "contraseña", "12345678" y "12345"?).

Salting ayuda contra los ataques sin conexión
Los mismos hashes sin sal son la misma contraseña de texto simple. Por lo tanto, cada hash debe calcularse una vez, no una vez para cada sal. Incluso con una sal, el atacante puede intentar un ataque de diccionario, y nadie (excepto su límite de potencia de cálculo) lo detendrá, porque su regla de "tres ataques" no se aplicará aquí.

Las contraseñas débiles reducen la seguridad en ambos casos
Ataque en línea : si permite contraseñas comunes (como "contraseña" o "12345"), los atacantes podrán para dividir el 5% de sus cuentas en tres intentos.
Ataque sin conexión : aquí también intentarán las contraseñas más comunes primero, por supuesto. Entonces, si computan 3 hashes por usuario, ya han roto el 5% de las cuentas ...

    
respondido por el Alexander 28.10.2014 - 09:00
fuente
7

Salting / hashing es excelente si le roban la base de datos, pero no tiene nada que ver con los ataques de diccionario que pueden tener lugar a través del procedimiento de inicio de sesión normal.

Como mencionó, limitar el número de intentos de inicio de sesión y usar CAPTCHA puede hacer que los ataques de diccionario que se llevan a cabo a través del procedimiento de inicio de sesión no sean efectivos, pero el uso de sal (o no) no tendrá ningún efecto en ese tipo de ataque.

Incluso con los intentos de inicio de sesión y CAPTCHA limitados, permitir contraseñas súper débiles no es una buena idea, y si un usuario malintencionado está suficientemente determinado o ve suficiente valor, puede encontrar formas de explotar esa debilidad.

    
respondido por el Abe Miessler 27.10.2014 - 22:23
fuente
4

No, un punto del hash salado es obtener una buena aleatoriedad en el hash, independientemente del material de partida.

Sin embargo, esto no nos libera de usar contraseñas malas. El buen hash solo protege contra un vector de ataque: el que el intruso roba el archivo con los hashes. Existen muchos otros vectores de ataque en las contraseñas ... navegar por los hombros, forzar bruta, forzar bruta modificada (con suposiciones de inicio inteligentes, etc.) ... que las buenas contraseñas son importantes.

El hashing salado protegerá las contraseñas buenas pero no lo rescatará de las malas.

    
respondido por el DavidF 27.10.2014 - 22:22
fuente
1

En teoría:

Si el atacante no ha construido una tabla de arco iris, si una contraseña de cierta fuerza puede ser hackeada en 1 unidad de tiempo, entonces las contraseñas de N de esa fuerza pueden ser hackeadas en tiempo O (1) sin sal y O (N) Tiempo con sal. Eso es lo que hace la sal. No hay ventaja en una contraseña fija; Muestra ventaja sobre múltiples contraseñas.

Si el atacante tiene una tabla de arco iris, sin sal, una contraseña débil, en este caso "débil" significa "ya en la tabla de arco iris", es casi como si estuviera desnudo. Con la sal, aún tendrá que ser resquebrajado en los segundos que pueda tardar.

En la práctica: la seguridad de la contraseña es mucho más importante que cualquiera de esto. A veces las mesas de arcoiris son mera conveniencia; si tienes un millón de contraseñas que son débiles, son permeables incluso con sal.

    
respondido por el djechlin 28.10.2014 - 00:56
fuente
1

En general, lo más importante es la longitud de la contraseña. Pero es cierto que una contraseña fácil podría desglosarse más fácilmente que una aleatoria. Por ejemplo, cuando estás tratando de adivinar un hash utilizando tablas de arco iris . Si es una palabra que se usa normalmente como "gato", es más probable que la tenga en esta tabla que "07OFmy3HOY3l9e1gCNww7nNpd5lQ8I9an"; D

    
respondido por el user3799089 27.10.2014 - 22:27
fuente
1

Si seleccionó una de las tres contraseñas débiles "amor", "perro" y "vaca", y se perdió una base de datos de contraseñas: sin las sales, puedo probar estas tres contraseñas y encontrar inmediatamente todos en toda la base de datos usando estas tres contraseñas débiles. Con la salazón, tengo que probar el amor + tu sal, el perro + tu sal, la vaca + tu sal para descifrar tu contraseña tu si era ridículamente débil, luego repite lo mismo con todos en la base de datos.

Si un hacker te ataca específicamente, entonces la salazón no ayuda. Solo ayuda haciendo que sea imposible atacar toda la base de datos, en lugar de eso, requiere un ataque contra cada usuario individual en la base de datos.

    
respondido por el gnasher729 28.10.2014 - 13:45
fuente

Lea otras preguntas en las etiquetas