Hashing contraseña varias veces con diferentes sales aleatorias

3

He leído muchas respuestas sobre este tema, como:

Ninguno de estos parece hablar de hash varias veces con diferentes sales.

Es este método de hashing:

hash(hash(hash(pass+salt1)+salt2)+salt3)

más seguro que:

hash(hash(hash(pass+salt1)+salt1)+salt1)

donde salt1, salt2, salt3 son diferentes sales aleatorias, ¿y se usa la misma función hash cada vez?

    
pregunta xee 07.12.2015 - 15:22
fuente

2 respuestas

8

Los tres métodos que se muestran son todos débiles; tres invocaciones de función de hash no servirán de mucho, en un contexto donde las sales son importantes (utiliza sales porque imagina que un atacante podría, en algún momento, vislumbrar los valores de hash; En ese caso, necesita que la función sea mucho más lenta que eso. En cualquier caso, los ensamblajes caseros de primitivas criptográficas rara vez alcanzan una seguridad decente.

Para responder a su pregunta explícita: el valor de sal es que no se reutilizan. En su primera propuesta, la "sal" es realmente la concatenación de tres sub-sales distintas (que usted llama "sal1", "sal2" y "sal3"). En la segunda propuesta, se utiliza el mismo mecanismo, pero las tres sub-sales son idénticas, lo cual es una reducción del espacio de posibles sales. Por un lado, un espacio más corto aumenta la probabilidad de reutilización. Por otro lado, la reutilización de algunas de las sub-sales todavía permite algunos atajos en el lado del atacante.

De todos modos, es bastante difícil evaluar las diferencias en la seguridad de dos métodos de hash cuando ambos son débiles. Hágase un favor: use una función de hashing de contraseñas real, decente, bien diseñada y revisada. En la práctica, esto significa bcrypt . Y lea esta respuesta .

    
respondido por el Tom Leek 07.12.2015 - 16:05
fuente
0

El punto de agregar un salt es evitar cualquier construcción de tablas precalculadas y hacer que el hash sea diferente cuando la misma contraseña es utilizada por varios usuarios.

Mientras esté usando una sal suficientemente grande (digamos 128 bits), agregar más no aumenta la seguridad de manera significativa.

    
respondido por el Steve Sether 07.12.2015 - 16:02
fuente

Lea otras preguntas en las etiquetas