Cifrado de archivos con OpenSSL

openssl-encrypt

OpenSSL es un proyecto criptográfico que nos permite trabajar con protocolos como SSL y TLS. Es muy usado a nivel de servidores en Internet y esta disponible bajo diferencias licencias libres –apache y BSD principalmente– para la mayoría de sistemas operativos: GNU/Linux, Solaris, los diferentes *BSD, OS X o Windows.

Entre las características que ofrece la biblioteca de openSSL, está la de generar certificados o claves soportando multitud de algoritmos y estándares de cifrado: Blowfish, Camellia, AES, RSA, IDEA, etc…así que vamos a aprovechar alguna de esas cualidades, para ver como utilizarlo a la hora de cifrar un archivo.

openssl-encrypt2

Aunque en OpenSSL también se puede crear un sistema de claves públicas y privadas al estilo de GnuPG, en esta ocasión vamos a utilizar un cifrado de tipo simétrico, que nos permita mantener cualquier archivo lejos de miradas indiscretas, mediante una sencilla linea de comandos.

La sintaxis de encriptado sería la siguiente:

openssl aes-128-cbc -in archivo.txt -out cifrado.enc

donde:

aes-128-cbc sería el protocolo utilizado mediante modo cbc (podemos utilizar otros tipos de cifrado mencionados en la ayuda del programa, como puede ser aes-256-cbc)

-in: señala el archivo a cifrar (archivo.txt)

-out: marcaría la salidad del archivo cifrado (cifrado.enc)

A continuación ponemos una contraseña robusta, la verificamos y ya tenemos nuestro archivo cifrado

openssl-encrypt3

A la hora de descifrar ejecutamos el siguiente comando:

openssl aes-128-cbc -d -in cifrado.enc -out descifrado

donde:

aes-128-cbc es el tipo de cifrado

el parámetro -d indica que vamos a descifrar

-in: nos marca el archivo cifrado (cifrado.enc)

-out: indica el nombre del archivo ya descifrado (descifrado o cualquier otro que elijáis)

y al igual que hicimos cuando ciframos, introducimos la contraseña.

Si queréis saber más sobre como utilizar OpenSSL para cifrar archivos, en las páginas del manual encontraréis mucha más información.

man openssl

7 thoughts on “Cifrado de archivos con OpenSSL”

  1. portaro says:

    Gracias por compartir.

    1. tannhausser says:

      De nada @portaro.
      Gracias a ti por pasarte y comentar 🙂

      1. RICARDO SÁNCHEZ says:

        Excelente aporte, este tipo de cosas son las que enriquecen al pingüino y lo mejor de todo es que son gratuitas.

        SALUDOS AMIGO

  2. dalmemail says:

    No conocía esta posibilidad. Toca comenzar a utilizarla!

  3. jc852654 says:

    Muy agradecido por tan valioso aporte

    1. tannhausser says:

      De nada!

      Un saludo y gracias por comentar!

  4. Cifra says:

    La herramienta openssl también permite aplicar hashes y codificar en Base64 (con o sin cifrado), pero no está pensada para usuario final sino para acceso a las funciones sueltas de la API desde CLI.
    Es mucho más usable el cifrado simétrico de GnuPG porque usa compresión (ZIP por defecto), y el receptor no requiere conocer el algoritmo de cifrado (CAST5 por defecto) sino sólo la contraseña. Por ejemplo: gpg –symmetric –personal-cipher-preferences twofish fichero.txt y luego gpg –decrypt fichero.txt.gpg

Deja un comentario