Cómo crear y encriptar ficheros comprimidos en Linux

Aprendemos a crear y encriptar ficheros comprimidos en GNU/Linux, utilizando las herramientas disponibles en nuestras distribuciones favoritas, usando los formatos TAR o ZIP, y la herramienta por excelencia para el cifrado que es GPG

Crear y encriptar ficheros comprimidos en GNU/Linux

No cabe duda de que, en los tiempos que corren, debemos salvaguardar la información delicada que tengamos almacenada en los dispositivos de almacenamiento: ya sean los discos duros de nuestro laptop o portátil, la cabina NAS de turno, información guardada en la llamada nube o bien los USB que siempre van con nosotros.

Veremos distintas formas de llevar a nuestro objetivo de cifrar ficheros comprimidos, utilizando para ello, como hemos dicho al principio del artículo, las herramientas de compresión TAR y ZIP, además de la de cifrado GPG.

En su día ya dedicamos sendos monográficos a estas:

Comprimir y descomprimir ficheros en GNU/Linux
Comprimir archivos en Linux: ZIP y algunas cosas que no te esperas
GnuPG: Cifrado de datos en GNU Linux

Vamos al turrón.

Comprimir y encriptar ficheros con TAR y GPG

Quizás esta es una de las formas más seguras de crear un fichero comprimido, cifrado y protegido con contraseña. En un primer paso utilizamos TAR para crear el fichero comprimido, y continuación utilizaremos la salida estándar (stdout) para cifrarlo con GPG y asignarle una contraseña, utilizando el cifrado AES-256

Después de indicar la contraseña, dos veces, ya tendremos los ficheros cifrados, utilizando un algoritmo seguro.

  1. tar czvpf - fichero1.txt fichero2.txt fichero3.txt \
  2. | gpg --symmetric --cipher-algo aes256 -o ficheroseguro.tar.gz.gpg

Veamos un ejemplo:

Petición de contraseña

¡AVISO! Si NO tenemos el escritorio habilitado, puede que el programa GPG, nos muestre errores, y no llegue a preguntarnos la contraseña. Para evitarlo, antes de ejecutar la línea de comandos, debemos utilizar el comando «screen»

Cuando queramos descifrar el fichero, se nos pedirá la contraseña.

  1. gpg -d ficheroseguro.tar.gz.gpg | tar xzvf -

Tal y como se puede observar en el ejemplo, el fichero una vez comprimido y cifrado se crea con la extensión “.tar.gz.gpg”, por lo que hemos utilizado TAR con GZ, y después el cifrado con GPG.

No hace falta indicar lo importar de acordarse de la contraseña, si no nos será imposible recuperar la información del fichero.

Comprimir y encriptar ficheros con 7zip

Utilizar el programa 7zip es igual de efectivo y seguro que la opción anterior, ya que admite el mismo algoritmo de cifrado AES-256, aunque tiene un punto débil muy importante, ya que debemos añadir la contraseña en la misma orden. Además, el paquete P7ZIP no viene preinstalado en la mayoría de las distribuciones.

Para instalar P7Zip en las distribuciones RHEL, Centos y derivadas:

  1. sudo yum -y install p7zip

O bien en Fedora:

  1. sudo dnf -y install p7zip

En sistemas Debian, Ubuntu y derivadas:

  1. sudo apt-get install p7zip-full

Debemos ejecutar la siguiente línea.

  1. 7za a -tzip -pcontraseña -mem=AES256 ficheroseguro.zip fichero1.txt fichero2.txt fichero3.txt

Observamos que debemos cambiar la “contraseña” por la que nosotros deseemos, además se pueden comprimir y cifrar múltiples ficheros.

Con el resultado:

  1. [david@servcentos]$ 7za a -tzip -phola123 -mem=AES256 ficheroseguro.zip fichero1.txt fichero2.txt fichero3.txt
  2.  
  3. 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
  4. 2.20GHz (306E4),ASM,AES-NI)
  5.  
  6. Scanning the drive:
  7. 3 files, 0 bytes
  8.  
  9. Creating archive: ficheroseguro.zip
  10.  
  11. Items to compress: 3
  12.  
  13. Files read from disk: 3
  14. Archive size: 580 bytes (1 KiB)
  15. Everything is Ok

Para descomprimir y descifrar lo haríamos así:

  1. 7za e ficheroseguro.zip

Utilizar ZIP para comprimir y encriptar ficheros

La popular herramienta ZIP también provee de la posibilidad de utilizar un algoritmo de cifrado, en este caso llamado PKZIP, aunque se considera inseguro. Una de las ventanas que es que se puede descomprimir y descifrar de forma fácil, sin herramientas adicionales, en otros sistemas operativos como Microsoft Windows.

Para añadir el cifrado por contraseña, solo hemos de añadir el parámetro correspondiente:

  1. zip --password contraseña ficheroseguro.zip fichero1.txt fichero2.txt fichero3.txt

Veamos un ejemplo:

  1. [david@servcentos]$ zip --password hola123 ficheroseguro.zip fichero1.txt fichero2.txt fichero3.txt
  2. updating: fichero1.txt (stored 0%)
  3. updating: fichero2.txt (stored 0%)
  4. updating: fichero3.txt (stored 0%)

Y para descomprimir:

  1. unzip myarchive.zip

Conclusión

Hemos visto tres diferentes maneras de cifrar ficheros comprimidos. De todas ellas mi favorita es la primera, aunque quizás la más compleja, que es la combinación de TAR, GZIP y GPG.

En el artículo he utilizado la combinación de los términos encriptar y cifrar, ya que ambos están reconocidos por la RAE.

Fuentes consultadas

Putorius.net – How to crate and encrypted (Password Protected) Tar or Zip Archive