Algoritmo de hash para cryptsetup

2

Encriptaré mi SSD usando cryptsetup y me gustaría saber qué algoritmo de hash usar.

En primer lugar, punto de referencia cryptsetup:

PBKDF2-sha256 262144 iteraciones por segundo

PBKDF2-sha512 167397 iteraciones por segundo

PBKDF2-ripemd160 362077 iteraciones por segundo

PBKDF2-whirlpool 190511 iteraciones por segundo

Estaba pensando en usar PBKDF2-sha512 pero ¿quizás PBKDF2-whirlpool es mejor? Me gustaría esperar unos 2 segundos en el arranque para realizar el hash, por lo que sería algo así como iteraciones de 400k si es de hidromasaje y 350k si sha512.

¿Qué crees que es el mejor?

    
pregunta trog 15.04.2015 - 15:39
fuente

1 respuesta

2

El punto de funciones de hashing de contraseña segura es haga que el procesamiento de la contraseña sea lento para que a los atacantes les resulte más difícil ejecutar un ataque de fuerza bruta en su contraseña. Por desgracia, también lo hace más lento para ti; Este es el límite del ejercicio. En el mejor de los casos , hace que la función n sea más lenta para usted y n más lenta (con el mismo n ) para el atacante pero el atacante puede comprar algún "hardware especializado" (por ejemplo, GPU o FPGA) que, dependiendo de la función utilizada, puede permitirle sufrir menos que usted por todas las iteraciones.

Entonces, lo que quiere evitar es una función que aumenta la tarea computacional más para usted que para el atacante. Utiliza una CPU simple de uso general, probablemente algún tipo de PC compatible con x86. El atacante puede comprar una PC, pero también puede comprar una GPU o un FPGA que puede ofrecer más potencia informática (es decir, más intentos de contraseña por segundo) para el mismo presupuesto.

Por lo tanto, debe evitar SHA-256 y RIPEMD-160, los cuales se basan en operaciones de enteros de 32 bits que son muy eficientes en GPU. SHA-512 sería una mejor opción: la CPU de su PC es bastante buena para operaciones de 64 bits (ya sea en modo de 64 bits o mediante códigos de operación SSE2 en modo de 32 bits), mientras que una GPU típica no lo es. Usar SHA-512 hará la tarea 2 o 3 veces más difícil para el atacante con GPU (todavía ganará con el uso de GPU, pero no tanto como con SHA-256).

Whirlpool se implementa normalmente con tablas de búsqueda y probablemente será bastante lento en una GPU (pero se deben explorar implementaciones de bitslice). Sin embargo, uno puede esperar que Whirlpool se asigne bastante bien a FPGA (al igual que AES), por lo que si le temen a los atacantes avanzados que no temen usar FPGA, entonces no use Whirlpool aquí.

Para resumir , se puede decir que PBKDF2 / SHA-512 es su mejor opción (podría decirse que sería mejor si pudiera usar bcrypt). Sin embargo, recuerde que estas diferencias tienden a reducirse por lo que puede lograr con un contraseña más segura . El uso de una contraseña de alta entropía es la primera línea de defensa, y más importante que la opción de función de hash.

    
respondido por el Thomas Pornin 15.04.2015 - 15:53
fuente

Lea otras preguntas en las etiquetas