GnuPG es una herramienta de seguridad en comunicaciones electrónicas. Este capítulo es una guía rápida que cubre las funciones básicas de GnuPG. Estas funciones incluyen generar un par de claves, intercambiar y comprobar la autenticidad de claves, cifrar y descifrar documentos, y firmar documentos y verificar firmas digitales. En este capítulo no se detallan los conceptos de la criptografía de clave pública, cifrado, y firmas digitales. Todo esto se cubrirá en detalle en el Capítulo 2. Tampoco se explica el uso avanzado the GnuPG. Esto se explica en los Capítulos 3 y 4.
GnuPG utiliza criptografía de clave pública para que los usuarios puedan comunicarse de un modo seguro. En un sistema de claves públicas cada usuario posee un par de claves, compuesto por una clave privada y una clave pública. Cada usuario debe mantener su clave privada secreta; no debe ser revelada nunca. La clave pública se puede entregar a cualquier persona con la que el usuario desee comunicarse. GnuPG implementa un esquema algo más sofisticado en el que un usuario tiene un par de claves primario, y ninguno o más de un par de claves adicionales subordinadas[1]. Los pares de claves primarios y subordinados se encuentran agrupados para facilitar la gestión de claves, y el grupo puede ser considerado como un sólo par de claves.
La opción de la línea de órdenes --gen-key se usa para generar un nuevo par de claves primario.
javier:~$ gpg --gen-key gpg (GnuPG) 0.9.8; Copyright (C) 1999 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and ElGamal (default) (2) DSA (sign only) (4) ElGamal (sign and encrypt) Your selection? |
También hay que escoger un tamaño para la clave. El tamaño de una clave DSA debe estar entre los 512 y 1024 bits, y una clave ElGamal puede ser de cualquier tamaño. Sin embargo, GnuPG requiere que las claves no sean menores de 768 bits. Por tanto, si se escogió la opción 1 y también un tamaño de claves mayor de 1024 bits, la clave ElGamal tendrá el tamaño deseado pero la DSA se limitará a 1024 bits.
DSA keypair will have 1024 bits. About to generate a new ELG-E keypair. minimum keysize is 768 bits default keysize is 1024 bits highest suggested keysize is 2048 bits What keysize do you want? (1024) |
Para terminar, hay que escoger un fecha de caducidad. Si se escogió anteriormente la opción 1, la fecha de caducidad se usará para sendos pares de claves, ElGamal y DSA.
Requested keysize is 1024 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct (y/n)? |
Además de los parámetros de la clave, el usuario debe dar un identificador. El identificador de usuario se usa para asociar la clave que se está creando con una usuario real.
You need a User-ID to identify your key; the software constructs the user id from Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Email address: Comment: |
Aunque los caracteres especiales en iso-8859-1 son aceptados, GnuPG nos avisa si los usamos para rellenar estos campos[3]. Por ejemplo, si rellenáramos los campos con los siguientes datos,
Real name: Javier
Email address: javier@mad.es
Comment: Páramo S.L.
You are using the `iso-8859-1' character set. You selected this USER-ID: "Javier (Paramo S.L.) <javier@casa.es>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? |
GnuPG necesita una contraseña con el fin de proteger las claves privadas, primarias y secundarias, que posea el usuario[4].
You need a Passphrase to protect your private key. Enter passphrase: |
Repeat passphrase: |
Después de haber generado un par de claves, el usuario debe, de forma inmediata, generar un certificado de revocación para la clave pública primaria, mediante el uso de la opción --gen-revoke. Si el usuario olvidara la contraseña, o si su clave privada estuviera en peligro o extraviada, este certificado de revocación podría ser hecho público para notificar a otros usuarios que la clave pública no debe ser usada nunca más. Una clave pública revocada puede ser usada para verificar firmas hechas por el usuario en el pasado, pero no puede ser usada para cifrar datos. Esto tampoco afecta a la capacidad de descifrar mensajes que hayan sido cifrados con la clave antes de su revocación, siempre y cuando el usuario todavía tenga acceso a la clave privada.
javier:~$ gpg --output D58711B7.asc --gen-revoke 0xD58711B7 sec 1024D/D58711B7 1999-09-24 Javier (Paramo S.L.) <javier@casa.es> |
[1] | N. de T. En este y otros documentos se intercambia el término «claves subordinadas» con el de «subclaves» |
[2] | La opción 3 es para generar un par de claves ElGamal que no puede ser usado para firmar. |
[3] | Se aceptan excepto en la dirección de correo electrónico. En el resto pueden dar problemas, así que se recomienda no usarlos. |
[4] | N. de T. Esta contraseña adopta la forma de una «frase» ("passphrase"), no de una sola «palabra» ("password"). |