Encriptar tarballs: Cómo proteger nuestros archivos con OpenSSL

La habilidad de crear archivos comprimidos es algo que todo sysadmin debe tener. En posts anteriores explicamos cómo utilizar tar para realizar backups. Además de este uso clásico de la herramienta, poder disponer de uno o más archivos comprimidos en uno solo nos sirve para compartirlos y trasladarlos más fácilmente. Hasta aquí todo bien, pero ¿qué sucede si queremos proteger un tarball? Para realizar precisamente eso, en este post mostraremos cómo encriptar tarballs con contraseña utilizando OpenSSL. De esa manera, solamente alguien que conozca dicha clave podrá acceder al contenido.

Aunque generalmente se habla sobre OpenSSL en el contexto de servidores web, en este post lo utilizaremos para el propósito que acabamos de establecer.

Cómo encriptar tarballs

A continuación mostraremos que con la ayuda de OpenSSL podemos encriptar fácilmente un tarball. Si no todavía no hemos instalado este paquete, podemos hacerlo de la siguiente manera:

aptitude install openssl

o

yum install openssl

según nuestra distribución.

Una vez que hayamos instalado el paquete, el siguiente comando nos devolverá la lista de algoritmos de cifrado disponibles:

openssl list-cipher-algorithms

Si bien en teoría podríamos utilizar cualquiera al azar, es conveniente utilizar uno que sea lo más seguro posible y no presente vulnerabilidades conocidas. Por ejemplo, en este caso utilizaremos AES-256.

El siguiente comando nos permitirá comprimir el contenido del directorio actual y encriptar el tarball resultante con AES-256:

tar -czf - * | openssl enc -e -aes256 -out tarballseguro.tar.gz

En la Fig. 1 vemos qué sucede si intentamos descomprimir el tarball utilizando el método tradicional. Como el archivo fue encriptado utilizando OpenSSL, utilizaremos la misma herramienta para desencriptarlo y poder acceder a su contenido. El extracto aparecerá en el directorio resultados que creamos para tal fin:

openssl enc -d -aes256 -in tarballseguro.tar.gz | tar -xz -C resultados

En la Fig. 1 podemos ver el desarrollo de este ejemplo:

Encriptar y desencriptar tarballs con OpenSSL
Figura 1 – Encriptar y desencriptar tarballs con OpenSSL

Espero que este post les haya resultado útil. ¡Nos vemos en el próximo!