Como crear una clave PGP segura para cifrar nuestros mensajes.

Publicado el 08 octubre 2012 por Ubuntizando

Retomamos el tema de la privacidad de nuestras conversaciones en internet, esta vez hablaremos de las claves PGP. Pretty Good Privacy es un sistema de cifrado que combina la criptografía asimétrica y la simétrica, y que permite encriptar nuestros mensajes y firmarlos protegiendo el contenido del mensaje y el certificando el origen del mismo. Simplificando su funcionamiento para una mejor comprensión diremos que el sistema hace uso de dos claves diferentes, una pública y otra privada. La primera la utiliza la persona que envía el mensaje, que previamente a sido entregada a este por el destinatario. La segunda es usada por el destinatario para descifrar el mensaje.

El primer paso será crear una pareja de llaves PGP, en este artículo explicaré como hacerlo con GNUpg en la terminal, también se puede mediante Seahorse. Creo que GNUpg está instalado por defecto en Ubuntu, en cualquier caso puede instalarse con:

~$ apt-get install gnupg

Una vez instalado utilizaremos el siguiente comando para generar las claves:

~$ gpg --gen-key

Tenemos varias opciones para crear la clave la más usada es RSA/RSA con un tamaño de 4096 bits, así que será la opción que utilizaré en el tutorial.

El periodo de validez de la clave está sujeto al uso que vayáis a hacer de ella, las que recibido hasta el momento no tenían fecha de caducidad.

El siguiente paso es identificar el propietario de la clave mediante un nombre y una dirección de correo electrónico. Es importante que el nombre que aparezca la clave sea el real y que conste en algún documento de identidad, de esta forma podremos certificar que somos los propietarios de ésta.

Rellenados estos datos tendremos que introducir una contraseña. Esta contraseña se nos pedirá cada vez que vayamos a descifrar un mensaje o archivo cifrado con nuestra clave pública, y como todas las contraseñas debe ser lo más compleja posible, combinando letras, números y símbolos y que también sea fácil recordar. Definida la clave se generarán las claves pública y privada, ayudaremos al proceso si movemos el ratón de forma aleatorio o aporreamos el teclado con la cabeza, ya que se generarán valores aleatorios que aumentarán la calidad de las claves.

Ahora ya tenemos nuestras clave, pero antes de poder compartirla o publicarla tenemos que tomar una medida de seguridad. Crearemos una clave de revocación, esta clave permitirá en un futuro si nuestra clave fuese comprometida u olvidamos la clave el poder inutilizarla y evitar que se siga usando. El comando es el siguiente

~$ gpg --revoke.asc --gen-revoke id. clave

Este archivo revoke.asc debemos guardarlo, ya sea en un dispositivo electrónico o impreso, en un lugar seguro ya que si alguien tiene acceso a él podría inutilizar nuestras claves.

Compartir la clave

¿De qué sirve tener una clave PGP si no la compartimos con nuestros contactos? Existen dos formas de hacer llegar compartir nuestras claves públicas:

La primera es entregarla personalmente o hacérsela llegar mediante correo electrónico. Para este caso crearemos un versión ASCII de la clave pública, que será la que enviemos, con el comando:

~$ gpg --output 'nombre.asc' --export -a id. clave

La otra es publicarla en un depósito de claves como hkp://keyserver.ubuntu.com:11371, hkp://pool.sks-keyservers.net o ldap://keyserver.pgp.com donde aquellas personas que quieran ponerse en contacto con nosotros y mantener en secreto el contenido de su mensaje puedan buscarnos por nuestro nombre o dirección de correo. El comando es:

~$ gpg --send-keys id. clave --keyserver pgp.mit.edu

Si la clave ha sido enviada correctamente recibiremos el mensaje "success sending to `pgp.mit.edu' (status=200)".