¿Se ha roto Scrypt, finalmente?

7

Si entiendo correctamente, de acuerdo con esto: enlace , Parece que el atacante solo puede crear una versión optimizada de scrypt que produzca la misma salida con una eficiencia extremadamente alta (por ejemplo, con N = 2 ^ 14, p = 8, r = 1, requiere solo 1KB en lugar de 16MB para ejecutarse, mientras aumenta la CPU) factor de trabajo por solo N / 2).

    
pregunta dnang 18.08.2014 - 16:42
fuente

2 respuestas

20

La respuesta corta es: no . Eso no es lo que dije, ni lo que implicé.

Usando la compensación que identifiqué y mencioné, puedes intercambiar memoria por el tiempo de CPU. Entonces sí, puede reducir una derivación particular de 16MiB a 8KiB (aproximadamente). Sin embargo, hacerlo requerirá varios órdenes de magnitud más lógica para ser ejecutados por la CPU. Se gana cierta eficiencia por la localidad de caché, pero en general, debería ser mucho más lenta. (En promedio, aproximadamente 8,000 veces más lento que la versión de 16MiB, pero hasta 16,000 veces más lento, dependiendo de las distribuciones aleatorias exactas del algoritmo).

Sin embargo, hay una alternativa más interesante. Mi ataque fue un bais de todo o nada. Básicamente, elimine completamente la matriz V, a costa de aumentar la complejidad. Pero puedes hacer una compensación más matizada. Puede cortar la matriz a la mitad y volver a calcular el valor de todos los demás. O córtalo a cada tercer valor. Intercambio de espacio de almacenamiento para el espacio de la CPU. Pero en un grado variado. Esto se conoce comúnmente como un defeater TMTO (Time-Memory-TradeOff Defeater).

Hice un análisis más exhaustivo, incluida una corrección propuesta en este hilo . Vale la pena señalar que al menos una de las propuestas para la competencia de hash de contraseñas usa mi algoritmo aumentado.

Así que no, Scrypt sigue siendo increíblemente fuerte. Y para su caso de uso principal (como KDF), es bastante mejor que las alternativas.,

El punto que intentaba resaltar con mi publicación es que cuando no está optimizado de manera óptima (usado con configuraciones incorrectas) o con configuraciones muy rápidas, puede ser significativamente más débil que los algoritmos existentes. Específicamente para almacenamiento de contraseña . Donde conoce el resultado y está buscando el material de origen (contraseña).

    
respondido por el ircmaxell 18.08.2014 - 17:15
fuente
1

Tenga en cuenta que scrypt es vulnerable a los ataques de tiempo: Problema nº 18 · pbhogan / scrypt , lo que significa que El atacante que tiene acceso al host en el que hasheado las contraseñas tiene otras formas adicionales de descifrar las contraseñas. Así que no está roto, pero tiene desventajas en comparación con, por ejemplo, bcrypt.

    
respondido por el nealmcb 10.08.2016 - 18:52
fuente

Lea otras preguntas en las etiquetas