GnuPG significa GNU Privacy Guard.
GnuPG es una implementación abierta del estándar OpenPGP (Pretty Good Privacy) tal como se define en RFC 4880. En este artículo cubriremos la instalación y los aspectos básicos de la generación de claves usando gnupg.
Este artículo es parte de nuestro serie en curso sobre criptografía. Si es nuevo en criptografía, consulte nuestro artículo anterior sobre Introducción a la criptografía.
En sistemas basados en Debian, use el siguiente comando para instalar la herramienta GnuPg.
# apt-get install gnupg
El primer paso para usar GnuPg es crear los pares de claves pública y privada. El siguiente comando se utiliza para crear las claves.
$ gpg --gen-key
El comando anterior actuará en modo interactivo. A continuación se explican varias entradas que se deben dar al comando gpg anterior.
1. Elija el algoritmo que se utilizará para la generación de claves
gpg: directory `/home/lakshmanan/.gnupg' created gpg: new configuration file `/home/lakshmanan/.gnupg/gpg.conf' created gpg: WARNING: options in `/home/lakshmanan/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/home/lakshmanan/.gnupg/secring.gpg' created gpg: keyring `/home/lakshmanan/.gnupg/pubring.gpg' created Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?
Cada algoritmo tiene sus propias ventajas y desventajas. Elija el que prefiera o utilice el algoritmo RSA predeterminado. Presiona 1 o Entrar .
2. Selecciona el tamaño de la clave
Una vez seleccionado el algoritmo, le pedirá el tamaño de la clave.
RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
En general, cuanto mayor sea el tamaño de la clave, más segura será. Prácticamente 2048 debería ser suficiente. Escriba el tamaño de su clave o presione Intro para aceptar el valor predeterminado.
3. Validez de clave
La siguiente entrada que debemos proporcionar es cuánto tiempo es válida la clave.
Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0)
Escriba 0 si no desea que la clave caduque.
Volverá a pedir una confirmación. Presiona Y
Key does not expire at all Is this correct? (y/N) y
4. Crear ID de usuario y contraseña
Cada clave se asignará con una identificación de usuario y una contraseña. Ahora le pide su nombre, correo electrónico y frase de contraseña
You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) " Real name: lakshmanan Email address: [email protected] Comment: My test GPG keys You selected this USER-ID: "lakshmanan (My test GPG keys) " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. Enter Passphrase
5. Teclas de salida final
Para generar una clave única, el sistema necesita más bytes aleatorios. Por lo tanto, realice algunas operaciones que accedan al disco, la red, etc., para que el sistema obtenga suficientes bytes aleatorios.
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. Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 39 more bytes) +++++ +++++
Una vez que haya suficientes bytes aleatorios disponibles, se generarán las claves.
gpg: /home/lakshmanan/.gnupg/trustdb.gpg: trustdb created gpg: key A7344E7D marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub 2048R/A7344E7D 2012-10-12 Key fingerprint = 3AE0 7948 C880 E5F7 F0A1 E16A 6EBB 3931 A734 4E7D uid lakshmanan (My test GPG keys) sub 2048R/96F8EF9B 2012-10-12
Ahora hemos generado los pares de claves para usar con GnuPg. El resultado anterior proporciona información importante como
ID de clave A7344E7D
Usaremos este Key-Id para realizar varias operaciones, como veremos más adelante.
6. Enumere los pares de claves
Puede enumerar las claves que se generaron utilizando la opción –list-keys y –list-secret-keys
$ gpg --list-keys /home/lakshmanan/.gnupg/pubring.gpg ----------------------------------- pub 2048R/A7344E7D 2012-10-12 uid lakshmanan (My test GPG keys) sub 2048R/96F8EF9B 2012-10-12 $ gpg --list-secret-keys /home/lakshmanan/.gnupg/secring.gpg ----------------------------------- sec 2048R/A7344E7D 2012-10-12 uid lakshmanan (My test GPG keys) ssb 2048R/96F8EF9B 2012-10-12
7. Exporte sus claves públicas
Ahora hemos generado un par de claves. El siguiente paso es publicar su clave pública en Internet (servidores de claves), para que otra persona pueda usar esa clave pública para enviarle un mensaje.
$ gpg --armor --export --output lakshmanan_pubkey.gpg lakshmanan
Ahora el archivo ‘lakshmanan_pubkey.gpg’ tendrá mi clave pública. También puede usar su ID de clave o dirección de correo como argumento para este comando.
$ gpg --armor --export --output lakshmanan_pubkey.gpg A7344E7D or $ gpg --armor --export --output lakshmanan_pubkey.gpg [email protected]
Ahora puede enviar el archivo a las personas con las que conversa.
8. Enviar claves a un servidor de claves
Exportar su clave pública y enviarla a las personas será engorroso, si habla con muchas personas. En ese caso, puede cargar su clave pública en un servidor llamado "Key-Sever". Así que las personas que quieren su clave pueden obtenerla del servidor de claves.
$ gpg --send-keys --keyserver keyserver.ubuntu.com A7344E7D
Ahora debería tener un conocimiento básico de GnuPG. En el próximo artículo de esta serie, explicaremos cómo cifrar, descifrar y firmar digitalmente sus mensajes utilizando GnuPG.