Cómo gestionar y restaurar PINs de una YubiKey en Ubuntu

⚠️ Nota importante

Este artículo tiene más de un año. La tecnología evoluciona rápido, por lo que algunos contenidos o instrucciones pueden estar desactualizados. Recuerda buscar información reciente y actualizada.

Las YubiKey cuentan con dos modos para almacenamiento de llaves y certificados criptográficos. Uno de estos dos modos es como Smart Card (tarjeta inteligente) / PIV (Personal Identity Verification según estándar FIPS 201) y su configuración puede ser realizada con la herramienta oficial de Yubico. Por otro lado puede ser utilizada como tarjeta GPG (almacenamiento de claves/llaves criptográficas de OpenPGP y utilizarla con GnuPGP para cifrar archivos). 

En ambos casos, los PIN (o números de identification personal) son distintos y pueden ser cambiados de manera independiente. Antes de continuar con el resto del tutorial es necesario realizar la configuración básica para funcionamiento adecuado de la YubiKey en Ubuntu. Especialmente los pasos relacionados con la instalación de las herramientas de configuración y funcionalidades adicionales

Asignar y cambiar PIN de gestión

La herramienta YubiKey PIV Manager permite crear y cambiar el PIN de gestión para el modo Smart Card. Este PIN se solicita al agregar nuevos certificados, firmar documentos digitalmente o identificarse de cualquier forma utilizando esta funcionalidad de la YubiKey. La primera vez que se accede a la herramienta esta le solicitará crear el PIN.

En caso de querer cambiar este PIN la misma herramienta ofrece la funcionalidad. Solo es necesario hacer clic en Manage device PINs y luego en Change PIN:

Asignar y cambiar PIN de tarjeta GPG

Estos PIN se utilizan al crear o importar llaves criptográficas en la YubiKey o al encriptar y desencriptar archivos. Por defecto, se tienen dos PINs: el de usuario (123456 de forma predeterminada) y el de administrador (12345678 de forma predeterminada). Por seguridad, se recomienda cambiar el PIN predeterminado para cada usuario y administrador  

Para cambiar el PIN en el modo GPG primero hay que verificar el estado de la tarjeta con el comando:

gpg --card-status

Si la información se muestra correctamente y en PIN retry counter dice 3 0 3 (Quedan 3 intentos para PIN de usuario y 3 para PIN de administrador y por lo tanto ninguno está bloqueado) entonces podemos realizar el proceso de cambio. 

Para cambiar el PIN de usuario se deben ejecutar los siguientes comandos. 

1. Entrar al modo de edición de la tarjeta GPG:

gpg --card-edit

2. Entrar a la función de cambio de PIN de usuario . El sistema pedirá al usuario indicar el nuevo PIN pero antes deberá indicar el PIN de usuario predeterminado (si no lo ha cambiado antes) y posteriormente indica el nuevo PIN y lo repite. 

gpg/card> passwd

Para cambiar el PIN de administrador, desbloquear PIN de usuario o crear un código de restauración hay que habilitar los comandos de administrador con el comando:

gpg/card> admin

Se vuelve a ejecutar el comando passwd y se elige la opción para cada caso y se siguen las instrucciones. Al cambiar el PIN de administrador por primera vez, antes hay que ingresar el PIN de administrador predeterminado. Para desbloquear el PIN de usuario es necesario ingresar el PIN de administrador. 

Desbloqueo general

Si tanto el PIN de usuario como de administrador están bloqueados es posible optar realizar un reseteo general (restaura los PINs predeterminados para usuario y administrador) de la tarjeta GPG YubiKey, este proceso solo afectará la configuración GPG. Para esto, se ejecuta un script. Para generar el script se puede utilizar el comando: 

gedit restaurar-gpg

Y en la ventana que aparece pegar lo siguiente (fuente de sitio oficial de YubiKey):

/hex
scd serialno
scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 81 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40
scd apdu 00 20 00 83 08 40 40 40 40 40 40 40 40
scd apdu 00 e6 00 00
scd apdu 00 44 00 00
/echo Card has been successfully reset.

Después el script se ejecuta de la siguiente forma:

gpg-connect-agent -r restaurar-gpg

Así, los PINs quedarán restaurados a su valor predeterminado.

Fundador
Seguidor de Jesús. Escribo artículos en mi tiempo libre sobre temas de tecnología que me interesan.