¿Cómo cifrar archivos con GPG?

Autor: | Última modificación: 18 de abril de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo cifrar archivos con GPG? Normalmente, cuando hablamos de criptografía, nos referimos principalmente a su uso en el mundo de los protocolos para internet y las telecomunicaciones en general. No obstante, GNU Privacy Guard es un programa que te permite encriptar mensajes y firmar digitalmente de manera independiente. A continuación, te explicaremos cómo cifrar archivos como GPG.

¿Cómo cifrar archivos con GPG?

GNU Privacy Guard es una herramienta de código abierto con la que puedes cifrar y descifrar archivos directamente, así como crear tus propias claves y firmas digitales de manera autónoma. Usualmente los algoritmos de cifrado se utilizan para crear certificados de autenticidad en internet y encriptar nuestras comunicaciones. Sin embargo, GnuPG o GPG nos permite hacer este proceso de forma independiente y mandar mensajes encriptados por el canal inseguro que queramos.

A continuación, te explicaremos el proceso de cómo cifrar archivos con comando GPG o cifrado gpg, que consiste en seguir los siguientes pasos:

  1. Generar una clave pública.
  2. Exportar y compartir dicha clave.
  3. Cifrar y enviar el archivo.
  4. Recibir y descifrar el archivo con el comando GPG.

Generar la clave pública

El primer paso de cómo cifrar archivos con GPG es la creación de una clave pública. Para generarla una de forma simple, ejecuta el siguiente comando:

>gpg2 --gen-key

O, si quieres tener mayor libertad para configurar la clave, utiliza del comando GPG o cifrado GPG:

>gpg2 --expert --full-gen-key

El último comando desplegará el menú para que escojas el tipo de clave y de firma (o solo de firma) que quieras. Las opciones que te ofrece GPG2 para encriptar mensajes o el cifrado de documentos son:

(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC (sign and encrypt) *default*
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
(14) Existing key from card

Supón que elegimos la opción 9, que es el sistema de cifrado que utiliza el programa por defecto, ECC o cifrado de curva elíptica. A continuación, tendrás que elegir qué tipo de curva elíptica utilizar. Algunas de las más conocidas para el cifrado de documentos son:

  • Curva 25519 (que es la que utiliza GPG por defecto).
  • Curva 448.
  • NIST P-256.
  • NIST P-384.
  • NIST P-521.

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Luego, tendrás que elegir el tiempo de expiración de la clave (puedes especificar en términos de días, semanas, meses y años) y, por último, deberás crear un ID de usuario para relacionar con tu clave pública y privada y encriptar mensajes.

Exportar y compartir tu clave pública con GPG

El segundo paso de cómo cifrar archivos con GPG es compartir tu clave pública con otros usuarios, para que puedas comunicarte de forma confidencial y autenticada con ellos a través de un sistema de cifrado asimétrico. Para eso, tendrás que exportar tu clave pública en código ASCII con el siguiente comando y realizar el cifrado de documentos:

>gpg --armor --export claveejemplo

El comando «–armor» se utiliza para que la clave aparezca en código ASCII y la palabra «claveejemplo» será el nombre que le hemos dado a la clave. El resultado de ejecutar ese comand, será la clave pública que otros usuarios pueden implementar para desencriptar mensajes secretos. Debes guardarla como un archivo de texto y así desencriptar mensajes.

Cifrado de archivos con GPG

El siguiente paso de cómo cifrar archivos con GPG es la encriptación. El comando que utilizaremos para cifrar archivos con GnuPG es:

//gpg cifrado
>gpg --output doc.gpg --encrypt --recipient<id> doc.txt
  • output: sirve para indicar el documento en el que deseas exportar la encriptación.
  • encrypt: es el comando para encriptar.
  • recipient: es el fingerprint de la clave pública del usuario al cual deseas enviarle el mensaje. Puedes incluir tantos recipients como desees y recuerda que, si no incluyes tu propia clave pública, después no podrás descifrar el mensaje tú mismo.
  • doc.txt: en este ejemplo, representa el documento que se desea encriptar.

Para encriptar archivos en código ASCII, utiliza el siguiente código:

>gpg --output doc.gpg --encrypt --armor --recipient<id> doc.txt

Descifrar archivos con GPG

Ya hemos visto cómo cifrar archivos con GPG utilizando la clave pública de otro usuario. Ahora, veremos cómo descifrar la información del otro extremo del canal.

La ventaja de usar GPG es que puedes transmitir la información en código ASCII por medio de cualquier canal inseguro, como un correo electrónico, por ejemplo. Al recibir el mensaje encriptado (doc.gpg), podrás descifrarlo al ejecutar el siguiente comando:

//descifrar gpg
>gpg --output doc.txt --decrypt doc.gpg

El programa utilizará tu clave privada con el comando GPG para descifrar el mensaje secreto que te han enviado con el archivo cifrado. El contenido del archivo original aparecerá, en el caso de este ejemplo, en el documento «doc.txt».

Ahora sabes cómo cifrar archivos con GPG y compartirlos con otros usuarios. Si quieres aprender más y te interesa ser un experto en ciberseguridad, aquí tenemos el mejor curso para ti. Ingresa en nuestro Ciberseguridad Full Stack Bootcamp y especialízate en hacking ético en menos de 7 meses. Además, nuestra formación íntegra e intensiva te permitirá formarte de mano de grandes profesionales del sector de forma tanto teórica como práctica. ¡Inscríbete ya!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado