Crear, publicar, firmar y más comandos para gestionar claves GPG en Linux

Gestión de claves GPG.
Comparte con tus amigos










Enviar

PGP son las siglas de Pretty Good Privacy, un sistema de cifrado que combina el cifrado asimétrico y el simétrico. Este sistema permite cifrar y firmar nuestros mensajes, protegiendo así el contenido del mismo a la vez que se certifica el origen de este. Hace uso de un par de claves, comprendida por una pública y otra privada.

GPG, también llamado GnuPG, es la variante de PGP a distinción de que GPG está publicada bajo una licencia GPL. Se incorpora en algunos sistemas Linux como Debian o Ubuntu.

El funcionamiento de esta tecnología no se basa en entidades certificadoras, si no en anillos de claves o anillos de confianza siendo los propios usuarios quienes corroboran entre sí la veracidad entre ID de clave pública y persona física.

Crear un par de claves RSA de 4096 bits

Para crear un par de claves RSA utilizamos el comando gpg --gen-key. Eligiendo la opción la opción 4 RSA (sólo firmar) siendo el periodo de validez 0, es decir, no caduca nunca. Introducimos nuestros datos (nombre, apellidos, dirección de correo electrónico, comentario…) y la contraseña de nuestro par de claves.

Si deseas utilizar tu clave para firmar y cifrar debes utilizar la primera opción (RSA-RSA) o añadir más tarde una subclave.

Crear par de claves GPG en Linux.

El siguiente paso será generar bits aleatorios para generar una clave completamente aleatoria.

Para ello debemos hacer uso del equipo trabajando en otra ventana, moviendo el ratón, escribiendo o haciendo uso de la red y los discos duros. En mi caso abrí una película con VLC mientras tecleaba locamente en un documento de texto.

Crear claves con GnuPG en Debian Jessie.

El sistema marca automáticamente la clave 85268F85 como de confianza absoluta. Ese identificador es el de la clave generada.

Subir a un servidor de claves públicas

Por lo general, las claves han de ser subidas a un servidor de claves públicas, donde el resto de usuarios pueden consultar la clave pública y las personas que han firmado dicha clave. Existen varios servidores, aunque los más conocidos y frecuentes son pgp.rediris.es o pgp.mit.edu. Aún así, la información se sincroniza entre ellos.

Para subirlo a un servidor específico utilizamos el comando gpg --keyserver pgp.rediris.es --send-key 85268F85. Con gpg --send-key 85268F85 lo subiremos al servidor de claves por defecto, en este caso keys.gnupg.net.

Firmar una clave pública

Firmar una clave pública es una forma de corroborar que esa clave corresponde a esa persona, creando así anillos de confianza.

Para ello antes debemos de descargar la clave del servidor de claves: gpg --recv-keys 00AA11BB

Con el comando gpg --fingerprint 00AA11BB o gpg --fingerprint email@dominio.com podemos ver la huella de la clave pública descargada. En ella aparece información como el UID con nombre, apellidos, comentario y email además de la huella de la clave. Es importante comprobar que la información de la clave pública es la asociada a esa persona física.

Cómo firmar una clave pública en Debian Jessie.

A continuación, firmamos la clave pública con gpg --sign-key 00AA11BB o gpg --sign-key email@dominio.com, donde se nos mostrará también la información de la clave RSA y se pedirá confirmación para firmarla.

Otras gestiones con GnuPG en Debian Jessie

Buscar una clave PGP en un servidor de claves públicas

Como ya hemos comentado, la utilidad de los servidores de claves públicas es que todo el mundo pueda acceder a ellas para corroborar tu identidad y crear anillos de confianza. Existen varios servidores que ofrecen el alojamiento de claves PGP, pueden permiter su acceso mediante terminal de comandos e interfaz web (normalmente de solo texto). El utilizado por defecto en GPG es keys.gnupg.net.

La búsqueda podemos realizarla mediante nombre y apellidos, dirección de correo electrónico o ID de la clave PGP tanto en interfaz web como en una terminal de comando.

Si deseamos realizarlo mediante una terminal de comandos podemos hacerlo con gpg --search-key parametrobusqueda. En caso de existir más de un resultado para dicha búsqueda, GPG nos permitirá elegir una de las claves públicas a través de una numeración o salir de la búsqueda.

Ver nuestro anillo de claves

El comando gpg -k nos muestra nuestro anillo de claves públicas ubicado en ~/.gnupg/pubring.gpg. Si deseas listar las claves privadas utiliza gpg --list-secret-keys.

Terminal de comandos ejecutando gpg -k

También es posible hacerlo con gpg --fingerprint donde además se nos mostrará la huella de la clave.

Cambiar el periodo de validez o expiración de una clave

Modificar la expiración o caducidad de una clave GPG.En mi caso, elegí que la clave nunca caducase/expirase. Este parámetro lo podemos editar accediendo con el comando gpg --edit-key 85268F85. Con él accedemos a la shell de GPG, donde ejecutamos list para ver qué claves podemos editar.

Acto seguido deberíamos seleccionar la clave que deseamos editar con key 0, aunque al tratarse de una única clave, este valor está establecido por defecto. Completamos con expire, donde podremos definir nuevamente la caducidad de la clave primaria. En mi caso he insertado 8m para establecer la expiración a ocho meses.

Al salir con quit de la terminal de GnuPG, podremos confirmar o descartar los cambios realizados.

No olvides volver a subir tu clave a un servidor de claves público para actualizar el periodo de validez.

Editar clave y añadir subclave para cifrar

Al principio de esta entrada hemos elegido la opción número 4, que permitía solo firmar con la clave creada. Si deseamos poder cifrar con nuestra clave GPG debemos editar la clave creada y añadir una subclave a ella.

Accedemos a la shell de GPG para la edición de la clave con gpg --edit-key 85268F85, allí tecleamos addkey. Seleccionamos el tipo de clave 6 RSA (sólo cifrar) e introduccimos el tamaño de la clave en bits. Tras la generación de bytes aleatorios para facilitar la creación de la subclave, salimos con quit y grabamos los cambios.

Subclave para cifrar en GPG.

Como vemos, el resultado de esta acción genera la subclave de 4096 bits con ID 13B69DCC.

No olvides actualizar tu clave enviándola a un servidor de claves público.

Actualizar o definir las confianzas sobre usuarios

Podemos actualizar o definir la confianza sobre un usuario con el comando gpg --update-trustdb. Esto actualizará la base de datos de confianza, pudiendo elegir entre varios grados de confianza según el usuario del que se trate.

Definir la confianza de un usuario en GPG.

Ver un listado de las claves públicas y sus correspondientes firmas

Para listar nuestro anillo de claves públicas y las correspondientes firmas asociadas a cada una de ellas debemos ejecutar la orden: gpg --list-sigs.

Esto visualizará la copia local, con gpg --recv-keys idclave actualizamos una clave pública en concreto y nos muestra los cambios sufridos en dicha clave.

Borrar o eliminar una clave pública del almacén de claves

Tenemos la posibilidad de eliminar una clave pública de nuestro almacén de claves con el comando gpg --delete-key 00AA11BB o gpg --delete-key email@dominio.com

También puedes eliminar una clave privada, pero eso querrá decir que dejarás de tener el control y acceso sobre el par de claves que ésta gestione. Si borras una clave privada quiere decir que no volverás a utilizarás ese par de claves en ese equipo y que tienes la clave privada custodiada en otra ubicación. Aún así, si sabes lo que haces puedes hacer uso del comando gpg --delete-secret-key 00AA11BB.

Exportar una clave pública a un archivo .key e importarla

Podemos exportar una clave pública a un fichero con el comando gpg --export -a idclave > public.key. La exportación se hará con la codificación ASCII.

Mientras que, para importar una clave pública a nuestro anillo de claves utilizamos la instrucción gpg --import public.key.

Si deseamos hacerlo con extensión .gpg podemos hacer uso del comando: gpg --output public.gpg --export idclave

Exportar una clave privada a un archivo .key e importarla

Igualmente, podemos exportar una clave privada a un archivo con el uso del comando gpg --export-secret-key -a idclave > private.key.

Para importarla usamos gpg --allow-secret-key-import --import private.key.

De forma general tu clave privada no debe ser accedida ni compartida, aún así, existen otros motivos por los que puedes decidir exportar una clave privada como tenerla como copia de seguridad o utilizarla entre un grupo de colaboradores. En el último caso, sería una clave privada creada en exclusiva para el grupo, obviamente.

Con el comando gpg --output private.gpg --export-secret-keys idclave exportamos la clave con extensión .gpg.

Crear certificado de revocación de un clave

Con gpg --gen-revoke 85268F85 > ~/.gnupg/revocation-85268F85.crt realizamos un certificado de revocación. Para generar este certificado es necesaria la clave privada de nuestro par de claves.

Al generarlo, requiere que elijamos mediante una lista la razón por la que creamos este certificado de revocación, en nuestro caso la opción número 1 La clave ha sido comprometida y una descripción en la que podemos explicar con más detalles esta revocación.

Subir clave pública a un servidor de claves.

Más información sobre la gestión de claves GPG: Keysigning – Debian Wiki.

Compartir es agradecer. Si te ha gustado... ¡compartélo!
Comparte con tus amigos










Enviar

1 respuesta

  1. 2 diciembre, 2015

    […] Para cifrar y firmar emails desde un cliente de correo debemos tener un par de claves GPG con opción para cifrar y firmar. Además, si queremos enviar un email cifrado debemos de conocer la clave pública para cifrar del usuario y esta, debe estar asociada a su dirección de correo electrónico. Puedes consultar cómo crear tu par de claves GPG en Linux aquí. […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.