Ya desde hace mucho que tengo mis pares de llaves que nunca use por que básicamente no había con quien. Esta vez decidí dar un nuevo intento pero ya de la mano con Keybase, un gestor de llaves criptográficas  que las mapea con tu identidad en varias redes y te da otros features interesantes como storage, chat, teams y repos todos cifrados y firmados con tus llaves y las de tus contactos para garantizar una comunicación mas segura, pero eso ya será otro post.

Para este intento decidí concentrarme en tener git configurado con GPG para poder firmar mis commits y mi correo de Protonmail (que ya viene con llaves) usando la llave GPG que genere con Keybase, que este es un feature relativamente nuevo en la plataforma ya que antes solo te dejaba usar las que el mismo Protonmail usaba.

Generando par de llaves GPG

Voy a explicar como generar una par de llaves desde Keybase, por que desde Keybase? Simplemente por que luego es fácil compartirla desde el mismo perfil de la aplicación y también es sencillo recuperar el par de llaves cuando lo necesitemos.

Con el comando pgp gen de Keybase iniciaremos el proceso donde nos hará algunas preguntas para poder generarnos un nuevo par de llaves. Al final es muy recomendable cifrar con una contraseña la llave privada para mayor seguridad.

keybase pgp gen

Ya teniendo nuestro par de llaves creadas y subidas a Keybase podemos proceder a exportarlas para luego configurar nuestra computadora y en mi caso Protonmail.

keybase pgp export > pgp.pub
keybase pgp export --secret > pgp.priv

El flag --secret es la opción que nos ayudara a exportar la llave privada, al querer hacerlo nos preguntara si la queremos exportar cifrada con algún password de nuevo, es buena opción hacerlo por seguridad.

Configurando Git y Github

Lo primero que tenemos que hacer es subir nuestra llave GPG pública en Github y configurar alguna cuenta de correo en Github que tengamos dada de alta en nuestra llave. Posteriormente tenemos que descargar un cliente GPG, yo recomiendo GPG Suit que ya se integra con el keychain de MacOS, una vez instalado tenemos quedar de alta nuestras llaves:

gpg --import pgp.priv

Si decidimos usar otra cosa para manejar nuestras llaves probablemente tengamos que tener pasos extras para configurar la firma de commits.

Para poder firmar los commits siempre en automatico y no tener que usa el flag -S podemos agregar la siguiente configuración:

git config --global commit.gpgsign true

Hay que recordar que en nuestra configuración de git global o del repo debemos tener configurado un correo que este dado de alta en Github y en nuestra llave.

Y ya a partir de ahora cada commit que mandemos estará firmado con nuestra llave GPG, en Github aparecerá esta esta información y como verificado.

Correo con ProtonMail

Para el caso del correo es mas sencillo, ya desde hace unos meses desde la configuración de llaves podemos subir nuestra llave privada cifrada con contraseña para poder firmar los correos, también podemos generar nuevas llaves desde ahí asociadas a una dirección, pero en mi caso decidir añadir como primaria la que genere con Keybase.