Revocar una clave GPG

Una de las cosas que hago todos los Año Nuevo es renovar mis claves GPG. Para ello tengo que revocar las anteriores antes de publicar las nuevas.

Para inhabilitar una clave GPG es necesario crear un certificado de revocación. Es posible que en algún momento se pierda el acceso a la clave privada, sea comprometida o deje de usarse. Por eso es importante crear el certificado de revocación al crear la clave GPG y guardarlo en un lugar seguro (incluso impreso en papel). El comando para crear el certificado de revocación es:

~$ gpg --gen-revoke 0933F5A3

0933F5A3 es el identificador de la clave. Para ver las claves guardadas en el equipo y sus identificadores puede utilizarse el comando:

~$ gpg --list-keys

Al crear el certificado de revocación el programa pregunta por la razón por la que la clave es revocada (Si la clave ha sido comprometida, si ha dejado de usarse…) y por la contraseña de la mísma. GPG devuelve un certificado con un aspecto parecido a éste:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: A revocation certificate should follow

iGwEIBECACwFAkAKmoolHQJLZXkgd2FzIG9uIGEgbGFwdG9wIHRoYXQgd2FzIHN0b2xlbgAKCRBQw2pwY23oaYcAMpaNeRArWhSuSwv2jpd2ifFA5IXyijnEACfXfn/qtfqKyMdShD0odXAliKD43w==mRL+

-----END PGP PUBLIC KEY BLOCK-----

Es posible copiar el certificado y guardarlo en un archivo de texto, pero es mas cómodo enviar la salida del programa directamente a un archivo con:

~$ gpg --gen-revoke 0933F5A3 > cert_revoc.asc

A continuación se importa el certificado al llavero (no tengo muy claro si en castellano es así, en inglés es keyring) con:

~$ gpg --import cert_revoc.asc

Al importar el certificado se invalida la clave GPG. Solo queda enviar la clave revocada a todos los servidores donde la clave pública esté almacenada con:

~$ gpg --keyserver pgp.mit.edu --send-keys 0933F5A3

Si la llave ha sido recibida correctamente por el servidor su respuesta es:

gpg: success sending to `pgp.mit.edu' (status=200)

Y con estos pasos la clave ha sido revocada y puede procederse a crear una nueva para sustituirla, pero eso es otra historia.