Acerca de SHA1 en el cifrado de disco predeterminado en Linux

2

Enlace al hilo: Opciones recomendadas para LUKS (cryptsetup)

Me pregunto cuál es la diferencia exacta entre SHA1 y SHA512. Sé que SHA512 tiene una clave más larga, pero he leído que no importa cuál eligió porque LUKS hace un bucle en el Hash hasta que transcurre 1 segundo en tiempo real.

Entonces, ¿por qué hay incluso opciones para SHA512, Whirlpool o SHA256? ¿Cuál es la diferencia? Parece que no hay uno. Estoy un poco confundido.

    
pregunta user284148 15.01.2015 - 15:02
fuente

3 respuestas

1

Permítame usar una respuesta para explicar las diferencias entre el estiramiento de las teclas y el hash, aunque esta no sea una respuesta a su pregunta.

No voy a usar un ejemplo de colisiones en el mundo real, porque no sé qué son, por lo que mis ejemplos de hash serán puramente aleatorios.

Imagina que tu contraseña es pass123 , deja que sha1Result = sha1('pass123') .

Una colisión es cuando también se puede utilizar bksdajfdjfaskf , donde sha1Result also = sha1('bksdajfdjfaskf') .

Un KDF es un bucle de retroalimentación, donde sha1Result2 = sha1(sha1Result) y sha1Result3 = sha1(sha1Result2) y así sucesivamente n varias veces.

La siguiente función KDF() de ejemplo será KDF(password, hash-algorithm, iteration-count)

Deje kdfResult = KDF('pass123', SHA1, 100,000) .

Dejemos kdfResult also = sha1('jadfjlkdfjasldfjskdf') porque tenemos una colisión, algo así como, pero no realmente.

Porque para que inicies sesión en mi sistema, debes pasar por mi KDF() , solo tener una colisión sha1() de mi KDF() no te ayuda, porque no te cojo sha1() . para autenticarlo, KDF() su texto sin cifrar suministrado y KDF('jadfjlkdfjasldfjskdf', SHA1, 100,000) no coincide con KDF('pass123', SHA1, 100,000) .

Este es un caso de uso diferente para un KDF que para el cifrado HDD. Para el cifrado de HDD, el KDF no se usa para autenticar, pero se usa como una clave para el cifrado de los datos.

Sin embargo, eso podría ser lo que debería reformar alrededor de su pregunta. ¿Las vulnerabilidades de colisión SHA1 siguen siendo una vulnerabilidad cuando se repiten 103,696 veces?

    
respondido por el Andrew Hoffman 15.01.2015 - 17:49
fuente
1

Una diferencia importante entre, en particular, SHA-1 (o PBKDF2-HMAC-SHA-1) y SHA-512 (o PBKDF2-HMAC-SHA-512) es que SHA-512 (y SHA-384) requiere 64 Operaciones de bits, que en este momento reducen drásticamente la ventaja que tienen la mayoría de los atacantes que usan GPU sobre su aplicación usando su CPU, ya que las GPU modernas no tienen la misma aceleración en las operaciones de 64 bits que en 32 bits.

Consulte benchmarks de oclHashcat para referencia.

    
respondido por el Anti-weakpasswords 16.01.2015 - 08:18
fuente
0

La principal diferencia entre SHA-1 y SHA-256 / SHA-512 es que debilidades criptográficas se descubrieron con SHA -1 (probablemente involucrando colisiones). La principal diferencia entre SHA-256 y SHA-512 es que el primero produce 256 bits (32 bytes) y el segundo 512 bits (64 bytes).

La razón por la que Luks le da la opción de elegir un cifrado es para que pueda seleccionar una buena compensación entre la latencia de lectura y la potencia de cifrado. Si un cifrado en particular hace que la lectura de su disco sea muy lenta, tiene la opción de debilitar el cifrado y obtener un mejor rendimiento.

Puede haber una confusión en la forma en que se hizo la pregunta. Las funciones hash criptográficas de SHA se utilizan para hacer el "estiramiento de la clave" de la contraseña del disco. Luks almacena la clave maestra criptográfica para el disco de forma segura. La contraseña del disco es necesaria para desbloquear la clave maestra, antes de poder usarla para leer el disco. Es durante esta fase de desbloqueo que SHA se emplea para hacer lo que se llama key-streatching en la contraseña.

    
respondido por el Brent Kirkpatrick 17.04.2016 - 23:11
fuente

Lea otras preguntas en las etiquetas