GnuPG es una aplicación completa y libre de la norma estandar OpenPGP, que reemplaza al conocido software privativo PGP. GNU Privacy Guard o GPG permite cifrar y firmar sus datos y comunicaciónes y cuenta además con un versátil sistema de gestión de claves.

GnuPG se basa en un sistema de claves lo que quiere decir que cada usuario tiene 2 claves: una clave privada (que por lo tanto solo conoce él) y una clave pública. En este mini tutorial vamos a ver como crear dichas claves, lo cual nos servirá para cifrar-descifrar archivos, firmar documentos y verificar las firmas digitales.

  • Una vez instalado GnuPG 2 lo primero que haremos será generar ese par de claves con el comando:
gpg --gen-key

Seleccionamos el tipo de clave deseada (1) por defecto y elegimos su periodo de validez/caducidad.

  • A continuación nos pide generar el usuario que va a utilizar la clave
  • E introducimos la contraseña privada



  • Para poder comunicarse con otros, el usuario debe intercambiar las claves públicas. Para obtener una lista de las claves públicas, utilizariamos el comando:
gpg --list-public-keys

En mi caso la clave pública sería AE8B6E3D

 
  • Ahora lo que podemos hacer es exportar nuestra clave pública a un documento  y así utilizarla en otros equipos o enviarla por correo.
gpg --export -a "user name" > publica.key
  • Si queremos podemos colocar nuestra clave pública en un servidor de claves, para darla a conocer. Existen varios servidores de claves en funcionamiento en todo el mundo, que además suelen están sincronizados.
gpg --keyserver [server] --send-keys [clavepublica]

  • Si necesitamos importar una clave pública la orden a ejecutar sería:
gpg --import publica.key
  • Desde el propio menú contextual o mediante GUI’s como kgpg o gpa tendremos la opción de cifrar y firmar nuestros archivos, solo necesitaríamos introducir nuestra contraseña privada.

Si preferimos utilizar la terminal para cifrar haríamos:

gpg -e nombre_archivo
  • Para descifrar archivos la orden sería(en este caso hay que dar el nombre al archivo de salida):
gpg -d nombre_archivo.pgp>nombre_archivosalida
  • Si lo que queremos es firmar un archivo por ejemplo un documento de texto sencillo haríamos algo así:
 gpg --clearsign documento.txt
  • Es conveniente crear también un certificado de revocación por si en algún momento nos olvidamos o nos roban nuestra clave secreta. Una manera sencilla de hacerlo es

gpg –armor –gen-revoke id

donde id puede ser nuestra dirección de correo electrónico

clave de revocación1

El resultado lo podemos pegar en un editor, de texto y guardarlo en un lugar bien seguro ;-)