Quiero asegurarme de que el resultado de PBKDF2-HMAC-SHA1
sea indisociable de los datos aleatorios (dados los parámetros aleatorios). Básicamente, PBKDF2-HMAC-SHA1
parece solo un SHA-1
hash más grande, lo cual es normal dado que la función pseudoaleatoria utilizada es SHA-1
como su nombre indica.
./pkcs5 -i 1 -s RANDOM_SALT -p RANDOM_PAYLOAD -l 20
c8ddde91936a728445e238badde1ef7e94de5b36
Herramienta utilizada: dzmitryk / pkcs5.c
Tenga en cuenta que está impreso en formato HEXADECIMAL, por lo que la salida realmente se ve como datos binarios aleatorios. ¿Existe alguna prueba científica de que SHA-1 no pueda diferenciarse de los datos aleatorios?
& La misma pregunta para SHA-256.
¿Por qué estoy preguntando eso?
Debido a que Plain dm-crypt tiene varias desventajas comparado con LUKS:
- La contraseña no se puede cambiar sin volver a cifrar todo el disco
- Solo se puede usar una contraseña
- La clave de cifrado del disco se deriva de la contraseña sin ningún tipo de sal
- Una partición de dm-crypt sin formato puede, por casualidad, parecer un sistema de archivos no cifrado, y tiene la posibilidad de ser escrito accidentalmente.
Pero LUKS tiene un defecto importante: es no denegable . Entonces, al tratar de alcanzar este objetivo denegable, las personas usan claves USB con archivos de clave no cifrados (horrible) o encabezados LUKS separados (no se pueden negar si el oponente encuentra la clave USB ...). Hay algo malo en esos enfoques.
Así que estoy tratando de mantener lo mejor de encabezado LUKS y hacer un "No es NO LUKS " encabezado que sería indisociable de los datos aleatorios (por lo tanto, no se puede usar), que contiene solo:
- Las cargas clave de claves encriptadas LUKS encriptadas - resultado de AES tan aleatorio
- Las sales LUKS - puro aleatorio
- El resumen de la clave maestra LUKS - resultado de en PBKDF2-HMAC-SHA1
Todo lo demás (modo de cifrado, longitud de clave, etc.) usaría los valores predeterminados para ser codificado en el comando GRUB cryptomount
o fácilmente parametrizable desde la línea de comandos.
EDITAR: Preguntas relacionadas sobre la criptografía StackExchange: