¿Cómo generar firmas GPG?

Autor: | Última modificación: 1 de agosto de 2022 | Tiempo de Lectura: 4 minutos

¿Sabes cómo generar firmas GPG? Si te apasiona la criptografía, existe una manera de que la practiques de primera mano. Usualmente, vemos la criptografía aplicada a los protocolos de comunicación de internet y, en general, en el mundo de las telecomunicaciones. Sin embargo, hay un software que permite cifrar y descifrar archivos de manera independiente, conocido como GNU Privacy Guard, GnuPG o GPG. A continuación, te explicaremos cómo generar firmas GPG, para confirmar la autenticidad de un mensaje de forma independiente y manual.

¿Qué es una firma digital?

Antes de explicar cómo generar firmas GPG, es necesario un repaso sobre qué es exactamente y cómo funciona una firma digital.

Las firmas digitales son certificados criptográficos que se generan por medio de sistemas de claves públicas. Es necesario contar con un tipo de cifrado asimétrico para poder generar una firma digital. Por eso, GPG funciona con un sistema de cifrado conocido como PGP o Pretty Good Privacy, que reúne las principales herramientas de encriptación asimétrica.

La criptografía de clave pública funciona encriptando y desencriptando los mensajes con dos claves diferentes, pero relacionadas: la clave pública y la clave privada. Para enviar mensajes cifrados, el emisor encripta con la clave pública del receptor y este desencripta con su clave privada.

Para firmar digitalmente, el proceso se hace al revés: el emisor encripta un archivo con su propia clave privada y este puede ser desencriptado con su clave pública. De esta forma, se verifica exitosamente la autenticidad del mensaje.

¿Cómo generar firmas GPG?

GPG es un programa que permite encriptar y desencriptar mensajes directamente e intercambiarlos por medio de cualquier canal. Asimismo, por funcionar con un sistema de claves públicas, es posible desarrollar firmas digitales con él. Existen dos tipos de comandos en GPG, que se pueden usar para generar firmas. El primero es:

>gpg --output doc.sig --clearsign doc

Este comando permite desarrollar la firma en ASCII e imprimirla en un documento llamado «doc.sig«.

🔴 ¿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

No obstante, el comando que te recomendamos utilizar para firmar cualquier archivo que desees es:

>gpg --output doc.sig --detach-sign doc

De este modo, puedes enviar la firma junto con el archivo firmado y, así, se podrá verificar exactamente la autenticidad del mensaje. Para verificar una firma GPG, debes introducir el siguiente comando en la consola:

>gpg --verify doc.sig doc

Más funciones de GPG

Ahora sabes cómo generar firmas GPG para validar la autenticidad de un mensaje de forma directa e independiente. Sin embargo, GnuPG tiene más funciones que te pueden interesar, como la de generar tus propias claves para cifrar y descifrar mensajes con compañeros. A continuación, te enseñaremos los comandos más comunes para:

  • Generar tus claves.
  • Exportar y compartir tu clave pública.
  • Cifrar archivos con la clave pública de un usuario.
  • Descifrar archivos con tu clave privada.

Generación de claves GPG

Para generar tu clave pública con GPG, introduce el siguiente comando:

>gpg2 --gen-key

Si deseas tener mayor control sobre la configuración de la clave, introduce mejor:

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

Al ejecutar este comando, tendrás que escoger las especificaciones de tu clave, como qué algoritmos de cifrado quieres usar o qué tiempo de expiración le darás. Tendrás que crear un ID de usuario y contraseña maestra para relacionar con tus claves.

Exportar y compartir tu clave pública con GPG

Ya sabes cómo generar firmas GPG y crear tu propias clave privada y pública.

Para compartir e intercambiar tu clave pública con la de los demás usuarios, debes ejecutar el siguiente comando:

>gpg --armor --export claveejemplo
  • armor: le indica al programa que debe exportar la clave pública en código ASCII.
  • claveejemplo: es el nombre de la clave pública que hemos escogido para este ejemplo.

El resultado puedes guardarlo en un archivo de texto y compartirlo con otros usuarios para que te envíen mensajes encriptados que solo tú puedes ver.

Cómo cifrar y descifrar archivos con GPG

Para cifrar un archivo (doc.txt), utilizaremos el siguiente comando:

>gpg --output doc.gpg --encrypt --armor --recipient <id> doc.txt
  • output: le indica al programa en qué archivo debe exportar los datos cifrados.
  • encrypt: es la función para encriptar.
  • armor: le indica al programa que exporte la clave en código ASCII.
  • recipient: el campo <id> se debe cambiar por el usuario o el fingerprint de la clave pública del receptor del mensaje.
  • doc.txt: es el archivo a encriptar.

Puedes incluir tantos «–recipient» como desees, pero recuerda que si no incluyes tu propio usuario o clave pública, después no podrás descifrar el mensaje tú mismo.

Finalmente, para desencriptar un archivo con extensión GPG (doc.gpg) con tu clave privada, utiliza el comando:

>gpg --output doc.txt --decrypt doc.gpg
  • output: indica el archivo donde se obtendrá el texto descifrado.
  • doc.txt: el archivo de destino.
  • decrypt: el comando para desencriptar.
  • doc.gpg: el archivo encriptado.

¿Cómo aprender más?

Ahora sabes cómo generar firmas GPG y cómo cifrar y descifrar archivos con este programa. Si quieres aprender más y convertirte en un experto en ciberseguridad, accede a nuestro Ciberseguridad Full Stack Bootcamp y especialízate en menos de 7 meses. ¡Inscríbete ya!

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.