Cifrar y descifrar archivos con GPG en Linux
Cifrar y descifrar archivos con GPG en Linux

Cómo cifrar y descifrar archivos con GPG en Linux

Los comandos de cifrado, como gpg, pueden usarse para proteger tus archivos más confidenciales en los sistemas Linux.

Hay muchas razones para cifrar archivos, incluso en un sistema que está bien mantenido y es relativamente seguro. Los archivos pueden ser altamente confidenciales, contener información personal que nos desea compartir con nadie, o tener una copia de seguridad en una variedad de almacenamiento en línea donde prefieras que sea más seguro.

Afortunadamente, los comandos para cifrar de manera confiable los archivos en sistemas Linux son fáciles de encontrar y bastante versátiles. Uno de los más populares es el gpg.

1. gpg vs pgp y OpenPGP

Utilizado tanto para cifrar archivos como para prepararlos para que se envíen de forma segura a través de Internet, gpg está relacionado con pgp y OpenPGP, pero no es lo mismo. Si bien gpg se basa en los estándares OpenPGP establecidos por el IETF, es, a diferencia de pgp, de código abierto. Aquí está el resumen:

  • OpenPGP es el estándar aprobado por IETF que define la tecnología de encriptación que utiliza procesos que son interoperables con PGP.
  • pgp es la solución de cifrado propiedad de Symantec.
  • gpg se adhiere al estándar OpenPGP y proporciona una interfaz que permite a los usuarios cifrar fácilmente sus archivos.

2. Instalar GPG

GPG es una pieza de software ampliamente utilizada. Lo puedes encontrar en casi todos los repositorios de distribución. Si aún no lo tienes, instálalo en tu computadora:

Debian/Ubuntu
$sudo apt install gnupg

Fedora
#dnf install gnupg2

Arch
#pacman -S gnupg

Gentoo
#emerge --ask app-crypt/gnupg

3. Usar gpg para cifrado simétrico

El cifrado simétrico significa que utiliza la misma clave para cifrar y descifrar un archivo. Para cifrar un archivo con el mínimo esfuerzo, puedes usar un comando como este:

gpg2 --symmetric <miarchivo>

Este comando te dejará con dos archivos: miarchivo y miarchivo.gpg. Una vez que verifiques que se haya creado la versión cifrada de tu archivo original, puedes usar el comando shred para eliminar de manera segura el archivo original de manera que evites que se extraiga del disco con alguna herramienta de recuperación de disco.


Durante el proceso de cifrado, este comando también abrirá una herramienta en tu escritorio para pedirte que ingreses tu frase de contraseña dos veces.

Cifrado simétrico con gpg2
Cifrado simétrico con gpg2
Cifrado de archivos con contraseña en Linux
Cifrado de archivos con contraseña en Linux

Para hacer este tipo de cosas cuando no estás trabajando en la consola, puedes evitar que gpg intente abrir una herramienta GUI para pedir tu frase de contraseña proporcionándola en el comando. En este caso, puede utilizar un comando como este:

gpg --pinentry-mode loopback --passphrase <micontraseña> --symmetric <miarchivo>
Cifrar archivos con gpg desde terminal
Cifrar archivos con gpg desde terminal

Nota!

Es una mala práctica almacenar tu contraseña en texto claro, incluso en tu archivo de historial de comandos, así que ten cuidado si haces esto.

3.1. Descifrado basico

Tienes un archivo cifrado. Intenta descifrarlo. No es necesario especificar ninguna clave. Esa información está codificada con el archivo. GPG intentará las claves que ya tienes para descifrarlo.

gpg2 --decrypt <archivo.gpg>
Descifrar archivo con gpg2
Descifrar archivo con gpg2

4. Uso de claves públicas y privadas

Usar gpg para crear archivos que deseas compartir con otras personas, generalmente es mejor usar claves privadas/públicas. Para compartir un archivo con una persona en particular, debes cifrarlo utilizando una clave pública. En ese caso, esa persona es (presumiblemente) la única que puede descifrarla. Si cifras un archivo con tu propia clave pública, tú eres el único que puede descifrarlo.

Para generar tu conjunto de claves públicas y privadas con gpg, usarías un comando como este:

gpg --gen-key
Claves privadas y públicas con GPG
Claves privadas y públicas con GPG

Ten en cuenta que este comando también requiere que estés trabajando en la consola (GUI), no a través de una sesión ssh. El comando requerirá que generes algo de actividad mientras tus keys generadas, por ejemplo, al teclear o al mover el cursor del mouse por la pantalla, para proporcionar datos aleatorios al proceso de cifrado. También te pedirá que proporciones alguna información, como tu nombre completo y la dirección de correo electrónico que se utilizará para la clave.


Para cifrar un archivo para un destinatario en particular, debes usar un comando que incluya el argumento --recipient para especificar la clave pública del destinatario.

gpg --encrypt --recipient <correo> <archivo>
Cifrado de archivos con clave pública
Cifrado de archivos con clave pública

Es interesante observar que mientras que las claves privadas y públicas están vinculadas (generadas en una sola operación), cualquiera de las dos puede desempeñar cualquiera de las dos funciones.

  • Si cifras con la clave pública, puedes descifrar con la clave privada
  • Si cifras con la clave privada, puedes descifrar con una clave pública

La convención dicta, sin embargo, que las claves privadas se mantienen privadas.

Tampoco hemos visto cómo se usan las claves públicas para autenticar a los remitentes.

5. Otras opciones de comando

El comando gpg también ofrece muchas otras opciones. Por ejemplo, si prefieres utilizar un algoritmo de cifrado AES-128 distinto al predeterminado, puedes especificar el que deseas usar con un comando como este:

gpg --cipher-algo AES256 --symmetric myfile

Puedes listar tus llaves con este comando:

gpg --list-keys
Listar claves de gpg
Listar claves de gpg

Si bien los comandos gpg pueden llegar a ser bastante complicados, las cosas que probablemente hagas rutinariamente se pueden lograr sin mucho esfuerzo. ¿Qué te pareció? ¡No olvides compartir este artículo! :’) PD: Gracias!.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda