Opciones recomendadas para LUKS (cryptsetup)

25

Estoy buscando opciones recomendadas para que cryptsetup cree un SSD totalmente encriptado ( SanDisk SSD U100 128GB ), que logro:

Timing O_DIRECT disk reads: 1476 MB in  3.00 seconds = 491.81 MB/sec
Timing buffered disk reads: 1420 MB in  3.00 seconds = 473.01 MB/sec

Mi índice de referencia me muestra el mejor cifrado:

# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       103696 iterations per second
PBKDF2-sha256      59904 iterations per second
PBKDF2-sha512      38235 iterations per second
PBKDF2-ripemd160   85111 iterations per second
PBKDF2-whirlpool   47216 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   133.2 MiB/s   432.0 MiB/s
 serpent-cbc   128b    18.1 MiB/s    67.3 MiB/s
 twofish-cbc   128b    39.3 MiB/s    73.0 MiB/s
     aes-cbc   256b    99.6 MiB/s   337.7 MiB/s
 serpent-cbc   256b    18.1 MiB/s    66.9 MiB/s
 twofish-cbc   256b    39.4 MiB/s    72.6 MiB/s
     aes-xts   256b   376.6 MiB/s   375.0 MiB/s
 serpent-xts   256b    69.0 MiB/s    66.5 MiB/s
 twofish-xts   256b    71.1 MiB/s    72.2 MiB/s
     aes-xts   512b   297.0 MiB/s   300.1 MiB/s
 serpent-xts   512b    69.6 MiB/s    66.6 MiB/s
 twofish-xts   512b    71.9 MiB/s    72.7 MiB/s

Pero quizás, podría sugerir algunas opciones, que aumentarían mi rendimiento y seguridad. Mi CPU es: Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz y es compatible con AES-NI (indicador aes cpu).

Gracias

    
pregunta Artur Szymczak 07.08.2013 - 11:41
fuente

2 respuestas

26

Es posible que desee utilizar PBKDF2 con SHA-512. Este paso es para convertir su contraseña en una clave de cifrado (más o menos directamente). Esto está inherentemente abierto a ataques de diccionario sin conexión , y se relaciona con el hashing de contraseña problemático. Para eso, desea maximizar el esfuerzo del atacante seleccionando un algoritmo y un recuento de iteraciones que harán que la tarea sea más difícil para el atacante a la vez que la mantendrá tolerable para usted; "tolerable" aquí depende de su paciencia, cuando ingresa la contraseña en el momento del arranque.

Los atacantes querrán usar algunos GPU y / o FPGA para acelerar su ataque, mientras usas una PC normal. Hoy en día, las PC normales están cómodas con las operaciones aritméticas de 64 bits y ejecutan SHA-512 tan rápido como SHA-256; sin embargo, la GPU prefiere las operaciones de 32 bits, y mapearlas en FPGA también es más fácil que las operaciones de 64 bits. Por lo tanto, al usar SHA-512 en lugar de SHA-256, le das menos ventaja al atacante. Por lo tanto, mi recomendación: en el hardware moderno, para el hashing de contraseñas, prefiera SHA-512 en lugar de SHA-256.

Recuerde ajustar el "recuento de iteraciones" para que el tiempo necesario para procesar su contraseña se encuentre en el umbral de lo soportable: un mayor recuento de iteraciones significa un mayor tiempo de procesamiento, pero es proporcionalmente mejor para la seguridad.

Para el cifrado real, querrá XTS , que ha sido diseñado para soportar el cifrado de disco de manera eficiente. Esto de hecho se muestra en los puntos de referencia; esto es para un SSD y no desea que el cifrado sea mucho más lento que el hardware subyacente. Tenga en cuenta que XTS divide la clave en dos mitades, solo una de las cuales se utiliza para el cifrado real. En otras palabras, " aes-xts " con una clave de 256 bits en realidad usa 128 bits para la parte AES. Y eso es lo suficientemente bueno . No hay una necesidad racional de ir a claves de 256 bits, es decir, 512 bits en el contexto de " aes-xts ". Las claves de 256 bits para AES implican una sobrecarga de CPU, que los puntos de referencia observan debidamente (300 MB / s frente a 375 MB / s). Con un SSD bajo el capó, realmente desea un sistema de cifrado rápido, así que hágalo.

    
respondido por el Thomas Pornin 07.08.2013 - 15:34
fuente
7

Cualquier combinación de los modos de operación anteriores le brindará una amplia seguridad contra la mayoría de las amenazas. Dicho esto, CBC ya no se recomienda debido a ciertos ataques de fuga de información. Y SHA1 se deprecia a favor de la familia SHA2 .

Como siempre con crypto, quédese con lo que se usa y se prueba ampliamente. Así que mi recomendación general sería: PBKDF2-sha256 aes-xts

    
respondido por el lynks 07.08.2013 - 12:27
fuente

Lea otras preguntas en las etiquetas