A la práctica

En este apartado revisaremos algunos comandos de uso frecuente para crear y administrar claves:

#Create a key and list the contents of the .gnupg directory afterwards to see what has been created
gpg --full-gen-key
tree .gnupg

#List keys
gpg --list-keys

#List secret keys with the full ID
gpg --list-secret-keys --keyid-format LONG

#Add another ID
gpg --edit-key <KeyID>
	adduid
gpg --list-keys

#Create a subkey
gpg --edit-key <KeyID>
	addkey
gpg --list-secret-keys --keyid-format LONG

#Export public key
gpg --armor --export <KeyID>

#Upload key to server. It will connect to one of the servers of the pool. We can also point to a particular server with the option '--keyserver'
gpg --send-key <KeyID>

#Search for someone's key
gpg --search-keys <KeyID>

#Download they key. In this case, we indicate a server.
gpg --keyserver keys.gnupg.net --receive-keys <KeyID>

#Sign the key
gpg --sign-key <KeyID>

#Encrypt a file
gpg --encrypt  --output message.txt.gpg --recipient [email protected] message.txt

#Sign a file
gpg --local-user [email protected] --output message.txt.gpg.sig --sign message.txt.gpg

#Revoke a key. To do this, we need the revokation certificate, which can be created with the key or afterwards with '--gen-revoke'.
gpg --list-keys
gpg --output revoke.asc --gen-revoke <KeyID>
cat revoke.asc
#We then import the revokation certificate (which effectively revokes the key) and then send the updated (revoked) key to the servers.
gpg --import revoke.asc
gpg --keyserver keys.gnupg.net --send-keys <KeyID>

¿Dónde se usa?

GnuPG se usa en muchísimos sitios. A continuación, enumeraremos algunos de los más comunes.

Correo electrónico

GPG se usa para firmar y encriptar correos electrónicos. La mayoría de clientes de correo electrónico implementan o proporcionan un plugin:

Cada cliente tiene su propia configuración y sus propias características. Mutt, por ejemplo, se puede configurar para que verifique firmas de manera automática.

Firma y comprobación de paquetes

Para las distribuciones de Linux es crucial poder verificar que los paquetes de software que se descargan los usuarios son fiables y provienen de un desarrollador autorizado. Aquí discutiremos las aproximaciones usadas en Debian y RedHat (y sus distribuciones derivadas).

APT

Apt es el administrador de paquetes usado en sistemas de Debian. El proceso es el siguiente:

 

RPM

Con RPM (el gestor de paquetes de RedHat), los paquetes se firman con la clave de distribución. Luego, el paquete rpm comprueba la firma.

En esta imagen podemos ver cómo comprobar la firma de un paquete:

GPG Introduction - CAPSiDE

Y aquí podemos ver cómo hacer una lista de las claves que RPM conoce:

GPG Introduction - CAPSiDE

Git

En git, GPG se usa para verificar el autor de una acción commit. Para usarlo, necesitas tener tu gpg config preparado. Podemos firmar commits (-S) y etiquetas (-s):

Distribución de software

Como pasa con paquetes de software de distribuidores oficiales, cuando descargamos software de internet podemos asegurar que es realmente aquello que el autor publicó y no algo que ha sido modificado. Por ejemplo, esta distribución de CPAN contiene un archivo llamado SIGNATURE que está firmado y contiene el sha256 de todos los archivos de la distribución. Entonces podemos generar el SHA256 de todos los archivos y compararlos con el archivo firmado.

Evidentemente, también puedes consultar el software de gpg cuando te lo descargas como archivo tar del sitio web de gnupg.

Mejores prácticas

Finalmente, nos gustaría señalar algunas de las mejores prácticas en cuanto al uso de GPG:

Conclusión

GPG es un método maravilloso, probado y de confianza, que asegura la integridad, la confidencialidad y la autenticación en el mundo digital. Tiene muchos usos, varios softwares lo soportan y el uso básico de la herramienta de la línea de comandos es fácil de aprender. Es importante que los desarrolladores y los ingenieros de sistemas entiendan cómo funciona y cómo se usa, para así garantizar la confianza en el software, en los sistemas y la comunicación. Además, al haber existido durante tantos años, hay mucha documentación en Internet al respecto.

TAGS: ciberseguridad, Claves, Código fuente, Criptografía, Encriptación, GnuPG, GPG, Labs, PGP, Pretty Good Privacy, privacidad

speech-bubble-13-icon Created with Sketch.
Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*