¿Calcular la tabla del arco iris con sal?

3

Por lo tanto, según lo entiendo, debe anteponer una contraseña con salt antes de procesarla para que el hash resultante no se pueda usar con una tabla de arco iris para encontrar la contraseña original, como podría hacer si la contraseña sola estuviera grabada. Pero, ¿qué puede impedir que alguien vuelva a calcular una nueva mesa de arco iris con la sal prefabricada si se conoce la sal? ¿Pensé que saber que la sal no debía importar en términos de seguridad?

    
pregunta John 30.06.2012 - 00:55
fuente

3 respuestas

11

Una palabra: costo .

Es mucho más costoso construir la tabla que tratar de romper la contraseña directamente . Tratar de forzar la contraseña de forma bruta solo requiere una cantidad de memoria trivial; una mesa de arco iris requiere un gran espacio de almacenamiento.

El único punto de una tabla es que alguien más lo ha computado y ahora puede usarlo. Muchas personas que usan una tabla (o la misma persona que usa la mesa varias veces) paga el costo de construyendo esa mesa. Si va a una mesa una vez (para una contraseña), simplemente no tiene ningún punto.

Si todas las contraseñas en una base de datos de contraseñas dada (realmente grande) estuvieran usando la misma sal, esa sería una historia diferente. Pero sería un gran uso incorrecto de la sal: el punto es que cada contraseña usa una sal diferente , por lo que una tabla de arco iris nunca puede pagar.

Salting no implica que no puedas intentar forzar la contraseña directamente . No solo puedes, sino que no es más difícil cuando hay una sal . Lo que no puede hacer es reutilizar los esfuerzos de computación anteriores (a menos que el sistema esté tan roto que no pueda generar una sal diferente cada vez).

    
respondido por el curiousguy 30.06.2012 - 01:45
fuente
1

Absolutamente nada: puede calcular una tabla de arco iris para cada sal tal como lo hace para un hash sin sal. La tabla del arco iris es una compensación de espacio / tiempo, y el propósito de la sal es hacerlo más costoso.

Cada bit de sal que agregues duplica los requisitos de almacenamiento. Entonces, un poco de sal significa el doble del espacio de almacenamiento. 8 bits de sal, 2 ^ 8 o 256 veces el requisito de almacenamiento. 32 bits - 4 caracteres - de sal, 2 ^ 32, o 4,294,967,296 veces el espacio de almacenamiento para calcular completamente la tabla del arco iris.

    
respondido por el Daniel Pittman 30.06.2012 - 00:57
fuente
1

Cuando construyes una tabla de arco iris, computas la función hash atacada en muchas entradas. Cualquier valor de entrada que hiciera hash durante la construcción de la tabla será atacado con éxito; Y la mesa no romperá ninguna otra. Debido a algunas peculiaridades inevitables en el proceso de construcción (que es un subproducto de la lluvia de la tabla), hash algunos valores de entrada varias veces. En conjunto, una tabla de arco iris que puede romper N las posibles contraseñas tiene un costo de construcción de aproximadamente 1.7 * N , es decir, un 70% más que simplemente el hashing de todas las contraseñas de forma básica. fuerza bruta que se agrieta.

Por lo tanto, la creación de tablas merece el esfuerzo solo si la tabla se puede usar al menos dos veces, para (intentar) descifrar dos contraseñas o más. Las sales impiden eso. Con las sales, cada tabla sería específica para una sola contraseña hash (estrictamente hablando, para un solo valor de sal).

    
respondido por el Thomas Pornin 20.01.2013 - 23:11
fuente

Lea otras preguntas en las etiquetas