Creando Claves GPG en Linux



NOTA: Usaré Fedora Linux como distribución de Referencia, cambia los comandos (más que nada los de instalación) según tu distro para que todo funcione sin problemas...

¿Qué son y para qué sirven las claves GPG?

Una clave GPG es bastante útil para firmar correos, documentos y demás cosas, además de encriptar archivos. El uso de una clave GPG como firma por ejemplo, asegura que tú eres el que envía X correo, dándole cierta autenticidad al asunto. También puedes pedir que se te envíen mensajes donde se use tu clave pública para cifrarlos, de manera que para descifrarlos utilices tu clave privada. Tiene muchos usos, puedes investigar más visitando Google.

¿Cómo crear claves GPG en Linux?

Sencillo, primero debemos instalar el paquete gnupg para poder empezar a crear claves:

sudo yum -y install gnupg

Una vez instalado, ya podemos generar nuestra primera clave GPG siguiendo los pasos descritos a continuación:

- Generar la Clave:

gpg --gen-key

Éste comando generará 2 claves: Una pública y una privada. Usa la pública tanto como quieras, sobretodo puedes usar su fingerprint (Cosa que veremos más abajo) para firmar tus correos electrónicos y otro tipo de Documentos.

El asistente por consola te preguntará varias cosas durante el proceso, presiona ENTER para seleccionar la opción que está por Default y los números o letras según el caso para seleccionar otra de las opciones disponibles, Primero se te preguntará:

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?

Aquí es recomendable que selecciones la opción que está por Default, debido a que con éste tipo de clave podrás firmar comunicaciones, documentos y demás cosas pero también podrás cifrar/encriptar archivos.

Después, se te preguntará de qué largo quieres tu clave, la opción por default marca la cantidad de caracteres exacta para una seguridad promedio, No máxima, no Mínima, justo lo necesario (Nivel de Seguridad Extremo):

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

De nuevo es recomendable que uses dicha opción. Más tarde, se te preguntará cada cuando quieres que caduque tu clave:

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)
 
Lo más recomendable es darle a la clave una validez de un año en la mayoría de los casos. Para establecer dicha fecha, escribiríamos 1y para proseguir con los demás pasos en la generación de la clave...

Si has llegado hasta aquí, el asistente te preguntará si todo lo que pusiste antes es correcto, puesto que ahora hace falta recabar tu información personal para poder enlazarla e integrarla con tu clave. (Recordemos que se trata de una especie de firma digital), El asistente preguntará:

Is this correct (y/n)?

En caso de que todo esté bien, presionamos "y" seguida de un ENTER. A continuación se nos preguntarán algunos datos personales, tales como Nombre y Correo Electrónico. Es MUY IMPORTANTE usar los datos REALES, y no alias/nicknames o direcciones de correo electrónico falsas. Recuerda que ésta clave te identificará frente a quienes la uses como un individuo, debes de usar tus datos reales, de otra manera no podría ser totalmente válida. En el apartado de "Comentarios" (Cuando se te pregunte) Puedes incluir tus alias, datos extra y todo lo que se te ocurra. Al finalizar de recabar datos, el asistente te permitirá confirmar si todo está correcto para proseguir con el proceso o bien, editar algunas cosas donde haya errores.

Finalmente, se te pedirá introducir una contraseña para proteger tu clave del uso indebido. Formula una buena y asegúrate de poder recordarla. El asistente te pedirá que la escribas 2 veces para asegurarse de que no has cometido un typo. Tras introducir dicha contraseña, el asistente empezará a generar datos de manera aleatoria, asegurándose así que tu clave sea lo más única posible. Puedes acelerar éste proceso moviendo el mouse o haciendo cualquier otro tipo de tareas en lo que termina. Al finalizar, se te darán tus claves, Ejemplo:

pub  1024D/1B2AFA1C 2005-03-31 John Q. Doe (Fedora Docs Project) <jqdoe@example.com>
Key fingerprint = 117C FE83 22EA B843 3E86  6486 4320 545E 1B2A FA1C
sub  1024g/CEA4B22E 2005-03-31 [expires: 2006-03-31]

La Huella o fingerprint es una abreviación de todos los caracteres y datos reales de la clave, puedes usarla para firmar correos, documentos y demás cosas, en total son 10 grupos de cuatro dígitos cada uno, no es estrictamente necesario que la anotes, pero puedes hacerlo si quieres... En caso de no anotarla, siempre puedes "pedírsela" a tu sistema con éste comando (Reemplazando el ejemplo por tu dirección de correo electrónico):

gpg --fingerprint jqdoe@example.com

Y Con ésto habremos terminado, ¡Ya tenemos nuestra clave GPG! Sólo queda mencionar que el "ID" de la clave corresponde a una abreviación de 8 dígitos Hexadecimales que identifiquen nuestra clave pública. En el ejemplo de arriba, dicho ID sería "1B2AFA1C", en la mayoría de los casos, si se nos pregunta dicho ID tenemos que anteponerle un "0x" de manera que si nuestra clave fuese la del ejemplo de arriba, y se nos preguntara el ID, lo daríamos así: 0x1B2AFA1C.

Para hacer tu clave visible a otros, siempre puedes exportarla a un servidor de claves públicas, de modo que la gente pueda checarla. También puedes enviar tu clave a un archivo ascii manualmente, de manera que puedas enviarla sólamente a quien tú quieras para que la revisen, para esto usaríamos:

gpg --export --armor jqdoe@example.com > jqdoe-pubkey.asc

Obviamente reemplazando el ejemplo por tu dirección de correo electrónico real y también el nombre del archivo de salida por el que tú quieras.