OpenSSL permite cifrar archivos desde Linux con un solo comando, pero hay detalles que conviene conocer

OpenSSL permite cifrar archivos desde la terminal antes de enviarlos por correo electrónico, copiarlos a una memoria USB o guardarlos en un servicio de almacenamiento. Con el comando openssl enc y una contraseña se puede generar una versión cifrada de un documento sin instalar una aplicación adicional, aunque la seguridad real depende también del método elegido, la gestión de la contraseña y la forma de verificar la integridad del archivo.

Las claves de OpenSSL y el cifrado de archivos en 30 segundos

  • openssl enc permite cifrar archivos desde la terminal con algoritmos como AES-256-CBC.
  • La opción -pbkdf2 refuerza la derivación de la clave a partir de una contraseña.
  • El archivo cifrado puede enviarse por distintos canales, pero la contraseña debe compartirse por separado.
  • También es posible cifrar una carpeta combinando tar y OpenSSL mediante una tubería.
  • AES-256-CBC cifra el contenido, pero no autentica por sí solo los datos. Para información sensible conviene valorar un formato que también permita detectar modificaciones.

La utilidad de este método está en que el cifrado se realiza antes de que el archivo abandone el equipo. Así, la protección no depende exclusivamente de las medidas de seguridad que aplique el servicio por el que se envía. Sin embargo, cifrar un documento no elimina todos los riesgos: una contraseña débil, una copia sin cifrar o un archivo manipulado pueden comprometer el resultado.

Cómo cifrar un archivo con OpenSSL

Para generar una copia cifrada de un documento PDF llamado secret-file.pdf, el artículo original propone el siguiente comando:

openssl enc -aes-256-cbc -salt -pbkdf2 \
  -in secret-file.pdf \
  -out secret-file.pdf.enc

La opción enc activa las funciones de cifrado simétrico de OpenSSL. -aes-256-cbc selecciona AES con una clave de 256 bits y el modo CBC. Por su parte, -salt añade un valor aleatorio al proceso de derivación de la clave, mientras que -pbkdf2 utiliza la función PBKDF2 para convertir la contraseña en material criptográfico.

Los parámetros -in y -out indican, respectivamente, el archivo original y el destino del resultado. En las versiones habituales de OpenSSL, el comando solicita una contraseña de cifrado. Esa contraseña será necesaria después para recuperar el contenido.

El documento original no se modifica: el comando crea un segundo archivo, con extensión .enc, que contiene los datos cifrados. Es recomendable comprobar que el destino no sobrescribe por accidente otro archivo y conservar una copia segura del original hasta verificar que el proceso ha terminado correctamente.

La elección de AES-256 no basta por sí sola para determinar la seguridad del procedimiento. También importan la calidad de la contraseña, los parámetros de derivación de claves y el modo de cifrado. AES-256-CBC puede proteger la confidencialidad del contenido, pero no incorpora autenticación criptográfica que permita comprobar si alguien ha alterado los datos cifrados.

Cómo recuperar el archivo y comprobar el resultado

La persona que recibe el documento necesita el archivo cifrado, una versión compatible de OpenSSL y la contraseña correcta. Para descifrarlo, se puede utilizar:

openssl enc -d -aes-256-cbc -pbkdf2 \
  -in secret-file.pdf.enc \
  -out secret-file.pdf

La opción -d indica que se debe descifrar en lugar de cifrar. Los parámetros de cifrado y derivación de claves deben coincidir con los utilizados al crear el archivo. Si la contraseña es incorrecta o el archivo está dañado, el resultado no será una copia válida del documento original.

Antes de enviar información importante, conviene realizar una prueba de descifrado y comprobar que el archivo recuperado se abre correctamente. Para una verificación más rigurosa, se puede comparar una suma de comprobación del original con la del archivo recuperado. Por ejemplo, en sistemas que dispongan de sha256sum:

sha256sum secret-file.pdf test-output.pdf

Los valores deben coincidir si ambos archivos son idénticos. Esta comprobación sirve para detectar diferencias entre el original y la copia recuperada, aunque no sustituye a un mecanismo de autenticación que proteja el archivo frente a modificaciones maliciosas.

También es importante recordar que cifrar un archivo no borra automáticamente el original ni las copias temporales. Si el documento contiene datos confidenciales, habrá que revisar dónde se guardan las copias, quién tiene acceso a ellas y cómo se eliminan cuando dejan de ser necesarias.

Cifrar una carpeta completa con tar y OpenSSL

OpenSSL trabaja con flujos de datos y archivos, no con directorios completos de forma directa. Para agrupar y comprimir una carpeta antes de cifrarla, se puede combinar con tar:

tar -czf - my-folder | openssl enc -aes-256-cbc -salt -pbkdf2 -out my-folder.tar.gz.enc

En este ejemplo, tar genera un archivo comprimido a partir de my-folder y envía el resultado por una tubería al proceso de cifrado. El contenido intermedio se transmite directamente entre los dos comandos, sin necesidad de crear previamente un archivo comprimido sin cifrar en disco.

Para descifrarlo y extraer su contenido, el artículo original propone:

openssl enc -d -aes-256-cbc -pbkdf2 \
  -in my-folder.tar.gz.enc | tar -xzf -

La salida del descifrado se dirige a tar, que extrae los archivos. Antes de ejecutar el comando conviene comprobar el contenido del archivo y el directorio de destino, especialmente si procede de otra persona. Extraer archivos sin revisar sus nombres y rutas puede sobrescribir contenido existente o colocar archivos en ubicaciones no deseadas.

Esta combinación resulta práctica para copias de seguridad o para transportar varios documentos en un solo archivo. Aun así, mantiene la misma limitación del ejemplo anterior: CBC no autentica los datos. Para intercambiar información de especial sensibilidad, es preferible emplear una herramienta o un formato que proporcione cifrado autenticado y permita detectar alteraciones.

La contraseña y el canal de envío también importan

El archivo cifrado y la contraseña no deberían viajar juntos por el mismo canal. Si ambos se adjuntan al mismo correo electrónico, por ejemplo, quien consiga acceder a ese mensaje tendrá también los elementos necesarios para descifrar el documento.

Una opción más prudente consiste en enviar el archivo por un canal y comunicar la contraseña mediante otro. También conviene utilizar una contraseña larga, única y difícil de adivinar, ya que la seguridad del cifrado puede debilitarse si la contraseña es fácil de descubrir.

El cifrado local aporta una capa adicional de protección cuando el documento pasa por servicios externos, pero no garantiza que toda la operación sea segura. El destinatario debe conservar el archivo de forma adecuada, proteger la contraseña y evitar que el contenido descifrado quede expuesto en dispositivos compartidos o directorios accesibles para otras personas.

Tampoco es correcto asumir que todos los servicios de correo o mensajería almacenan los archivos de la misma manera. Algunos ofrecen cifrado de extremo a extremo y otros protegen únicamente determinadas partes de la comunicación. El cifrado previo con una herramienta local reduce la dependencia de esas diferencias, siempre que la implementación y la gestión de las claves sean adecuadas.

Preguntas frecuentes

¿OpenSSL permite cifrar un PDF desde Linux?

Sí. El comando openssl enc puede cifrar un PDF y guardar el resultado en un archivo independiente. Para recuperarlo será necesaria la contraseña utilizada durante el cifrado.

¿Es seguro utilizar AES-256-CBC?

AES-256-CBC puede proteger la confidencialidad de los datos, pero no autentica por sí solo el contenido cifrado. Para archivos sensibles conviene utilizar una solución que también permita detectar modificaciones.

¿Se puede cifrar una carpeta completa con OpenSSL?

Sí, combinando tar y OpenSSL mediante una tubería. tar agrupa los archivos y OpenSSL cifra el flujo resultante.

¿Cómo debe compartirse la contraseña?

Es recomendable enviar el archivo cifrado y comunicar la contraseña por canales separados. También conviene elegir una contraseña larga y única, y comprobar que el archivo se puede recuperar antes de enviar el original.

Scroll al inicio