¿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, como GPG, 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, firmas digitales GPG funcionan 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 con GPG, 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?
Para aprender cómo generar firmas GPG, debes saber qué es encriptar y desencriptar. 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 GPG. Existen dos tipos de comandos en GPG, que se pueden usar para generar firmas. El primero de los comandos GPG:
>gpg --output doc.sig --clearsign doc
🔴 ¿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 semanaEste elemento de los comandos GPG permite desarrollar la firma en ASCII e imprimirla en un documento llamado “doc.sig“.
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 con estos comandos GPG 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 firma 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 las firma GPG:
- Generar tus claves con las firmas GPG.
- 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 firma 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) con las firmas digitales GPG, 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 o firmas digitales 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!