¿Proteger el cifrado de archivos con OpenSSL y un pequeño truco?

0

Intento cifrar de forma segura un archivo con OpenSSL. Soy nuevo en OpenSSL y acabo de leer aquí, que no es muy seguro debido a su comportamiento en la generación de sal y amp; IV, y almacenarlo dentro del archivo encriptado.

Uso un servidor, donde OpenSSL es la única herramienta disponible para el cifrado de archivos (actualmente tengo V1.0.1t).

Digamos que uso una contraseña con 256 o más bytes de datos aleatorios, que incluye todo tipo de caracteres especiales y aes-256-cbc para el cifrado.

Lo sé, el md5 de password + salt se almacena en los primeros 32 bytes del archivo encriptado ahora. Bastante débil hasta ahora ...

¿Qué pasa si uso un pequeño truco y leo los primeros 32 bytes y los almaceno en una ubicación diferente (DB, etc.)? Luego, sobrescríbalos en el archivo con datos aleatorios ... Más tarde, para descifrar, vuelvo a colocar los bytes originales en el archivo, antes de descifrarlo.

Según tengo entendido, esto supondría un gran aumento de la seguridad, siempre y cuando nadie tenga acceso a los fragmentos almacenados.

¿Esto es correcto? ¿Qué piensas?

    
pregunta user3475261 10.10.2018 - 12:53
fuente

1 respuesta

2
  

Lo sé, el md5 de password + salt está almacenado en los primeros 32 bytes del archivo encriptado ahora.

Esto no es cierto. Solo escribirá la sal de 8 bytes y nada derivado de la contraseña (no MD5, no otra cosa) como reclama. En su lugar, el salt y la contraseña se utilizarán juntos para obtener la clave de cifrado utilizando MD5, pero el usuario debe proporcionar la contraseña para el descifrado para que la clave de cifrado pueda derivarse nuevamente de la contraseña (dada) y del salt almacenado.

El problema con enc es que MD5 es una función de derivación de clave débil porque es Las contraseñas demasiado rápidas y, por lo tanto, más simples, pueden ser forzadas brutalmente Vea también openssl enc usa md5 para hash la contraseña y la sal .

Si realmente necesitas usar enc usa una contraseña de acceso para que el forzado no sea exitoso.

  

Digamos, uso una contraseña con 256 o más bytes de datos aleatorios, ...

Sí, es probable que esto sea lo suficientemente difícil: 2048 bits de datos aleatorios pueden considerarse imposibles de forzar brutalmente, por lo general incluso 128 o 256 bits (16 o 32 bytes binarios aleatorios o aproximadamente 22..44 alfanumérico aleatorio Los caracteres) se consideran suficientes.

    
respondido por el Steffen Ullrich 10.10.2018 - 13:56
fuente

Lea otras preguntas en las etiquetas