Crear un par de claves, firmar y verificar mensajes con GnuPG

Este artículo demuestra el funcionamiento y uso básico de GnuPG, particularmente para firmar y verificar mensajes de Internet (mails, mensajes en foros, etc.)

GnuPG (o GPG) es una herramienta para cifrado y firma digital de mensajes que surge como reemplazo libre a PGP. GPG cifra los mensajes utilizando criptografía de clave pública, es decir un par de claves asimétricas (pública/privada) generadas por los usuarios. La clave privada debe ser secreta y mantenerse protegida, ya que allí radica la seguridad de la suite de cifrado, mientras que la clave pública debe ser conocida por la mayor cantidad de usuarios posibles. Estas pueden ser compartidas con otros usuarios a través de servidores de claves públicas.







Para mayor información sobre GnuPG recomiendo revisar el handbook de GPG y la entrada en Wikipedia.

En la mayoría de los sistemas operativos GNU/Linux, GPG se encuentra disponible e instalado por defecto. En caso de no disponer de GPG, en Debian y derivados es provisto por el paquete gnupg . Todas las operaciones con GPG se realizan a través del utilitario gpg .

Para comenzar a trabajar con GPG, el primer paso consiste en crear nuestro par de claves.

Crear un par de claves

Para crear un par de claves se debe utilizar la opción --gen-key :

emi@hal9000:~$ gpg --gen-key gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: Linuxito Email address: linuxito.com@gmail.com You selected this USER-ID: "Linuxito <linuxito.com@gmail.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? O

Se trata de un comando interactivo que solicita el nombre del usuario, un correo electrónico y una contraseña para proteger la clave privada:

Luego de ingresar estos datos se genera una clave aleatoria. Este proceso demora unos minutos y es conveniente efectuar acciones en el sistema operativo (interrupciones de teclado y mouse, actividad de disco, tráfico de red, etc.) para generar entropía:

We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key 6ADB228094777584 marked as ultimately trusted gpg: revocation certificate stored as '/home/emi/.gnupg/openpgp-revocs.d/CFE6E9F915DD4C2051B00C8B6ADB228094777584.rev' public and secret key created and signed. pub rsa3072 2019-11-01 [SC] [expires: 2021-10-31] CFE6E9F915DD4C2051B00C8B6ADB228094777584 CFE6E9F915DD4C2051B00C8B6ADB228094777584 uid Linuxito <linuxito.com@gmail.com> sub rsa3072 2019-11-01 [E] [expires: 2021-10-31]

Listar las claves disponibles

Al finalizar, es posible listar las claves disponibles con el comando --list-keys :

emi@hal9000:~$ gpg --list-keys gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2021-10-31 /home/emi/.gnupg/pubring.kbx ---------------------------- pub rsa3072 2019-11-01 [SC] [expires: 2021-10-31] CFE6E9F915DD4C2051B00C8B6ADB228094777584 uid [ultimate] Linuxito <linuxito.com@gmail.com> sub rsa3072 2019-11-01 [E] [expires: 2021-10-31]

Exportar una clave pública

A fin de que nuestra clave pública esté disponible públicamente en Internet (valga la redundancia), resulta conveniente subirla a un servidor de claves, como por ejemplo keys.gnupg.net. Para ello, antes es necesario exportarla en formato de texto plano (ASCII-armored):

emi@hal9000:~$ gpg --export --armor linuxito.com@gmail.com -----BEGIN PGP PUBLIC KEY BLOCK----- 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 eId5RHDJc4zqOfvVmSMNvdUCR6QwxXgckQ== =SImo -----END PGP PUBLIC KEY BLOCK-----

Copiar esta salida para subir la clave a un servidor de claves.

Subir una clave pública a un servidor

Basta con hacer una búsqueda "gpg key server" en Google para comprobar que hay una gran cantidad de servidores de claves públicas disponibles en Internet. La mayoría de ellos están sincronizados entre sí, con lo cual basta elegir uno y usarlo. A modo de ejemplo, se utiliza el servidor keys.gnupg.net:

Presionar "Submit Key" para subir nuestra clave pública y pegar la salida anterior:

Presionar "Submit Public Key":

A partir de este momento, cualquier usuario puede importar nuestra clave pública desde Internet para verificar la integridad de nuestros mensajes o documentos firmados.

Firmar un documento

Una firma digital certifica el contenido, fecha y hora de un documento. Si el documento luego es modificado de cualquier forma, la verificación de la firma fallará. Una firma digital funciona entonces como una firma escrita a mano en papel, con la ventaja adicional de resistir cualquier tipo de falsificación o alteración.

Como ejemplo, crear un mensaje simple. Como expliqué anteriormente, es posible crear y editar un archivo con cat :

emi@hal9000:~$ cat > mensaje Buenos días, Un saludo para todes les linuxeres. Atte. Linuxito. emi@hal9000:~$ cat mensaje Buenos días, Un saludo para todes les linuxeres. Atte. Linuxito.

Ctrl+D para cerrar y guardar el archivo.

Para firmar cualquier documento es necesario utilizar la opción --sign junto con un archivo de salida como parámetro a --output :

emi@hal9000:~$ gpg --output mensaje.sig --sign mensaje

Como se utiliza la clave privada para crear la firma (que luego será verificada con la clave asimétrica pública), es necesario ingresar la passphrase de la misma:

Se crea el archivo firmado mensaje.sig :

emi@hal9000:~$ ll mensaje* -rw-r--r-- 1 emi emi 68 Nov 6 09:04 mensaje -rw-r--r-- 1 emi emi 543 Nov 6 09:06 mensaje.sig emi@hal9000:~$ file mensaje mensaje: UTF-8 Unicode text emi@hal9000:~$ file mensaje.sig mensaje.sig: data

Este archivo es el documento de entrada con la firma agregada. Se observa que el tipo MIME del mismo es "data" ya que incluye contenido binario. El problema con esto es que el usuario que reciba el documento, necesitará recuperarlo desde la versión firmada luego de verificarlo. Una mejor opción es crear una firma detached. Esto es la firma separada del documento, en un archivo aparte:

emi@hal9000:~$ gpg --output mensaje.sig --detach-sig mensaje File 'mensaje.sig' exists. Overwrite? (y/N) y emi@hal9000:~$ ll mensaje* -rw-r--r-- 1 emi emi 68 Nov 6 09:04 mensaje -rw-r--r-- 1 emi emi 776 Nov 6 09:12 mensaje.asc -rw-r--r-- 1 emi emi 438 Nov 6 09:22 mensaje.sig

La diferencia es que hay que enviar el documento original junto con la firma (ambos archivos). De esta forma se evita que el receptor tenga que recuperar el documento desde la versión firmada y sólo se limite a verificarlo con la firma aparte.

Verificar un documento firmado

Para verificar la integridad de un documento firmado (es decir, que la firma sea correcta y se garantice que no fue alterado luego de haber sido firmado) se utiliza la opción --verify :

emi@hal9000:~$ gpg --verify mensaje.sig mensaje gpg: Signature made Wed 06 Nov 2019 09:22:21 AM -03 gpg: using RSA key CFE6E9F915DD4C2051B00C8B6ADB228094777584 gpg: Good signature from "Linuxito <linuxito.com@gmail.com>" [ultimate]

En este caso la firma es correcta. Veamos que pasa si se altera el mensaje:

emi@hal9000:~$ echo "asdf" >> mensaje

Al verificar nuevamente, la firma no es correcta:

emi@hal9000:~$ gpg --verify mensaje.sig mensaje gpg: Signature made Wed 06 Nov 2019 09:22:21 AM -03 gpg: using RSA key CFE6E9F915DD4C2051B00C8B6ADB228094777584 gpg: BAD signature from "Linuxito <linuxito.com@gmail.com>" [ultimate]

De esta forma, una firma digital se utiliza para comprobar la integridad de un documento.

Firmar un email o post de Internet

Para el caso de los posts de Internet o mensajes de correo electrónico, es necesario crear una firma que pueda ser agregada junto con el cuerpo mismo del mensaje en formato de texto plano. A tal fin se dispone de la opción clearsign:

emi@hal9000:~$ gpg --clearsign mensaje

Esto genera un archivo con extensión .asc :

emi@hal9000:~$ ll mensaje* -rw-r--r-- 1 emi emi 68 Nov 6 09:04 mensaje -rw-r--r-- 1 emi emi 776 Nov 6 09:12 mensaje.asc -rw-r--r-- 1 emi emi 543 Nov 6 09:06 mensaje.sig

Se trata de un archivo en formato de texto plano:

emi@hal9000:~$ file mensaje.asc mensaje.asc: UTF-8 Unicode text

El mensaje está contenido por un formato especial de firma digital, seguido de un bloque que contiene la firma PGP implementada a través de un hash (en este ejemplo SHA256):

emi@hal9000:~$ cat mensaje.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Buenos días, Un saludo para todes les linuxeres. Atte. Linuxito. -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEz+bp+RXdTCBRsAyLatsigJR3dYQFAl3CuKMACgkQatsigJR3 dYTrQgv/Xo+2omOJowOMopQnnuuxFrZ7iGMdzt4F3uU/NfHw25DSwnJwYtvOhBzS f+37yLvMciWKjND+50D/6TN0rDCfNEGjaIy4ePqc2G4YXpCvtEyoNnP9FeZW+70C 05KvmqQVECfkhvUmFN33kVFQrXHG1xTxlkY2DXKf2UPkRLwGaS9bu+Ps7+ll7bGJ 3C0Z6u0diAMEYt08k+Msm1bBXN7K9kui8VK2lzlYmtDy0jtJAaxGa4RHF52OoeNt LR6J+MklT/rJP9ud9ASNJ4JaPJ55r8nJPxVacgzLdjw/x+UK+tJFcOYJLTRbY+Yk 9W1Z+Le+80jLz0s2rQvznaJKIeBkHqjEEfxIWMJW713b5NKiaV7Nq9BH7kv2gijQ N97ptN7vtdiJhAG2qcKdzc509LeZp3Srpe0gvGtqi7nvTom1qMgkE4wXwESZjlGj CY7m8Je2MtS3onmqJzJagwPT39DNlfXF8eZBvO98jz4iMYH9FgxZM2DTJ4Qt6t0w FeZeV0Ck =l5Tm -----END PGP SIGNATURE-----

La firma se verifica de igual forma:

emi@hal9000:~$ gpg --verify mensaje.asc gpg: Signature made Wed 06 Nov 2019 09:12:19 AM -03 gpg: using RSA key CFE6E9F915DD4C2051B00C8B6ADB228094777584 gpg: Good signature from "Linuxito <linuxito.com@gmail.com>" [ultimate] gpg: WARNING: not a detached signature; file 'mensaje' was NOT verified!

Si el mensaje contenido se modifica, la firma falla:

emi@hal9000:~$ head mensaje.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Buenos días, Un saludo para todes les linuxeres. Atte. Linuxito.asdasdasdasd -----BEGIN PGP SIGNATURE-----

emi@hal9000:~$ gpg --verify mensaje.asc gpg: Signature made Wed 06 Nov 2019 09:12:19 AM -03 gpg: using RSA key CFE6E9F915DD4C2051B00C8B6ADB228094777584 gpg: BAD signature from "Linuxito <linuxito.com@gmail.com>" [ultimate]

Importar claves públicas

Ahora veamos cómo importar la clave pública de otro usuario para verificar sus firmas. Primero es necesario recuperar la clave pública del usuario en cuestión desde un servidor de claves.

El servidor keys.gnupg.net permite buscar claves por nombre o email:

Abrir la clave encontrada:

Luego acceder al contenido de la clave pública:

Copiarlo y pegarlo en un nuevo archivo:

root@debian:~# cat > linuxito-pubkey.asc -----BEGIN PGP PUBLIC KEY BLOCK----- Version: SKS 1.1.6 Comment: Hostname: pgpkeys.co.uk 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 eId5RHDJc4zqOfvVmSMNvdUCR6QwxXgckQ== =SImo -----END PGP PUBLIC KEY BLOCK----- root@debian:~#

Para importar la clave, utilizar la opción --import con el nombre de archivo como parámetro:

root@debian:~# gpg --import linuxito-pubkey.asc gpg: /root/.gnupg/trustdb.gpg: trustdb created gpg: key 94777584: public key "Linuxito <linuxito.com@gmail.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)

Crear un nuevo mensaje clearsigned a modo de prueba:

emi@hal9000:~$ cat > mensaje2 Hola, Otro mensaje de prueba.... Chauchis :D Linuxito. emi@hal9000:~$ gpg --clearsign mensaje2 emi@hal9000:~$ cat mensaje2.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hola, Otro mensaje de prueba.... Chauchis :D Linuxito. -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEz+bp+RXdTCBRsAyLatsigJR3dYQFAl3Cv8YACgkQatsigJR3 dYRo6Av+I40N0UxnH/Wai81zkbxh+9ndYM7VuoW8rvWA10aBYlpcrLS8uPZG/Fkw qNaIipbDwFxKgf+BthjuzkEriCZ9b4n1j5997togvxNFCVytb3LbtX86r3fFAYlE nZWD1fFWiqioDj6u/YBS5KAHRZrZDV2lot6IN65zbiCB7+tjKS2/RTuZFFQq2Juw 7TpiD8TT6HreC1pUQkl2Do2/Mlm4ZfMK/pymB+ACruNn+EYEMes0nBlftl3CEFBT eFW1PmNEfmfqozZEV7y7gAWhps78X6bglVsOKof/QADXVKGcSEiI7dlpFeH+d/Ts 6wZPoiv8c/PONgavHN09ipwETex3TbDxfZvIC6GSOyxfvO1qBY2C88FMykr31Nzp +QdoZ0RbUHoloOsVVvD8ETWv2dPwFUdKzJwtsfXKy4MZPkteglqL97mred9rGEpP tISi2PsIQPz2gVjvWHYVkEIhKhV9pJp56U+5VzFlywWjAoTr1De1tYak8cOkJGb/ Z7uVcdeB =V0IR -----END PGP SIGNATURE----- emi@hal9000:~$

El usuario que importó la clave pública es capaz de verificarlo con éxito:

root@debian:~# cat > msg.txt -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hola, Otro mensaje de prueba.... Chauchis :D Linuxito. -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEz+bp+RXdTCBRsAyLatsigJR3dYQFAl3Cv8YACgkQatsigJR3 dYRo6Av+I40N0UxnH/Wai81zkbxh+9ndYM7VuoW8rvWA10aBYlpcrLS8uPZG/Fkw qNaIipbDwFxKgf+BthjuzkEriCZ9b4n1j5997togvxNFCVytb3LbtX86r3fFAYlE nZWD1fFWiqioDj6u/YBS5KAHRZrZDV2lot6IN65zbiCB7+tjKS2/RTuZFFQq2Juw 7TpiD8TT6HreC1pUQkl2Do2/Mlm4ZfMK/pymB+ACruNn+EYEMes0nBlftl3CEFBT eFW1PmNEfmfqozZEV7y7gAWhps78X6bglVsOKof/QADXVKGcSEiI7dlpFeH+d/Ts 6wZPoiv8c/PONgavHN09ipwETex3TbDxfZvIC6GSOyxfvO1qBY2C88FMykr31Nzp +QdoZ0RbUHoloOsVVvD8ETWv2dPwFUdKzJwtsfXKy4MZPkteglqL97mred9rGEpP tISi2PsIQPz2gVjvWHYVkEIhKhV9pJp56U+5VzFlywWjAoTr1De1tYak8cOkJGb/ Z7uVcdeB =V0IR -----END PGP SIGNATURE-----

root@debian:~# gpg --verify msg.txt gpg: Signature made Wed 06 Nov 2019 07:42:46 AM EST using RSA key ID 94777584 gpg: Good signature from "Linuxito <linuxito.com@gmail.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: CFE6 E9F9 15DD 4C20 51B0 0C8B 6ADB 2280 9477 7584

Obviamente la clave no es de confianza (a pesar de ser la firma válida) ya que no fue certificada por ninguna firma de confianza.

Referencias



Tal vez pueda interesarte

