Nitrokey 3A NFC desde consola (nitropy)
1- Introducción: por qué elegir Nitrokey 3A NFC
Nitrokey 3 es un dispositivo de seguridad diseñado para ofrecer autenticación fuerte mediante FIDO2, Secrets (TOTP/HOTP), OPenPGP y PIV. Su objetivo es permitir a cualquier usuario proteger sus cuentas y servicios sin depender de contraseñas débiles o reutilizadas. Pero más allá de sus funciones técnicas, la Nitrokey 3 destaca por algo que la diferencia claramente de la mayoría de alternativas del mercado: su compromiso con la transparencia, la privacidad y el software libre.
Hardware y software completamente libres
A diferencia de otros fabricantes, Nitrokey publica el código fuente completo del firmware y del software que utiliza el dispositivo. Esto permite que cualquier persona pueda auditarlo, verificarlo y entender exactamente cómo funciona. No hay componentes opacos ni partes cerradas que obliguen a confiar “a ciegas” en el fabricante. La seguridad se basa en la transparencia, no en el secretismo.
Cumplimiento estricto de las leyes europeas
Nitrokey es una empresa alemana y, por tanto, está sujeta al RGPD y a la legislación europea en materia de privacidad y protección de datos. Esto significa que no está afectada por leyes extraterritoriales como el Patriot Act o el Cloud Act de Estados Unidos, que pueden obligar a las empresas a introducir puertas traseras o entregar información sin conocimiento del usuario. Con Nitrokey, el usuario europeo tiene la garantía de que su dispositivo cumple con las normativas más estrictas del mundo en materia de privacidad.
Actualizaciones de firmware sin perder garantía
Uno de los puntos más importantes es que la Nitrokey 3 permite actualizar el firmware del dispositivo. Si se descubre un fallo de seguridad, Nitrokey lo hace público, explica el problema y publica una actualización que lo corrige. El usuario puede instalarla sin perder garantía y sin necesidad de comprar un dispositivo nuevo. En otras marcas, cuando aparece una vulnerabilidad grave, la única solución suele ser adquirir una llave nueva, ya que el firmware es cerrado y no se puede actualizar.
Transparencia y comunidad
Nitrokey mantiene una política de comunicación abierta: publica incidencias de seguridad, documentación técnica, esquemas de hardware y un roadmap público. Además, cuenta con una comunidad activa y un equipo de desarrolladores que responde directamente a los usuarios. Esto facilita la resolución de problemas y permite que el dispositivo evolucione de forma constante.
A quién va dirigido este manual
Este manual está creado para usuarios de Debian (en particular y de linux en general) que desean configurar y utilizar una Nitrokey 3 en cualquiera de sus modelos (A NFC, C NFC y A Mini), aprovechando todas sus funciones de forma segura y documentada. El objetivo es ofrecer una guía clara, detallada y basada en la experiencia real, explicando no solo cómo se hace cada paso, sino también por qué se hace y qué problemas pueden surgir.
Recomendación muy importante
Para garantizar la continuidad del acceso y evitar pérdidas irreversibles, se recomienda disponer de al menos dos llaves, siendo tres la configuración ideal.
El motivo es sencillo:
Si solo se utiliza una llave y esta se pierde, se rompe o es robada, se puede perder el acceso a todos los servicios registrados, sin posibilidad de recuperación.
Contar con varias llaves permite:
- registrar todas las llaves en cada servicio
- mantener una copia de seguridad segura
- usar una llave principal y reservar otra como backup
- evitar bloqueos en caso de pérdida o avería
En mi caso personal, la configuración ideal sería disponer de tres Nitrokey, cada una con un propósito claro y diferenciable físicamente:
- Nitrokey 3A NFC - llave principal para el trabajo (en el llavero del coche)
- Nitrokey 3C NFC - llave principal para casa
- Nitrokey 3A Mini - llave de copia de seguridad (backup), guardada en un lugar seguro
Esta organización permite identificar cada llave de un vistazo y garantiza que siempre exista un método de acceso alternativo en caso de emergencia.
2- Información del entorno de trabajo
La Nitrokey 3 se utilizará siempre como usuario normal, sin privilegios administrativos.
El uso de root o sudo será necesario únicamente para instalar los paquetes requeridos durante la preparación del entorno.
Una vez instaladas las dependencias, todas las operaciones con la llave se realizarán como usuario estándar.
La Nitrokey 3 integra cuatro tecnologías independientes:
- FIDO2
- Secrets (TOTP/HOTP)
- OpenPGP
- PIV
Cada módulo requiere herramientas distintas para su gestión:
- Para FIDO2, Secrets (TOTP/HOTP) y PIV es necesario instalar Nitropy, ya que proporciona los comandos de administración y diagnóstico de estos módulos.
- Para OpenPGP, basta con instalar el paquete: scdaemon, que permite a GnuPG comunicarse con la Nitrokey sin necesidad de nitropy. (punto 8.5- Configurar OpenPGP Card)
- Para PIV, es necesario instalar los siguientes paquetes: libccid, libpcsclite-dev, python3-pip, pcscd, (punto 8.6.1- Instalar pcscd, libccid y las dependencias necesarias)
Nitropy en Debian 13 (Trixie)
La herramienta oficial para gestionar la Nitrokey 3 usando la consola es nitropy. Nitrokey ha pasado a distribuir nitropy exclusivamente como paquete Python, por lo que la forma recomendada de instalación es mediante pipx.
Este método permite:
- obtener siempre la versión más reciente de nitropy
- mantenerlo aislado del sistema
- evitar conflictos con paquetes de Debian
- seguir exactamente las recomendaciones oficiales de Nitrokey
2.1- Instalar nitropy usando pipx
Ejecute el siguiente comando:
sudo apt install pipx libpython3-dev libudev-dev && pipx ensurepath && pipx install pynitrokey
Esto instalará la herramienta nitropy en un entorno aislado y seguro.Después de instalar pipx y pynitrokey, es necesario que el sistema recargue la ruta donde pipx instala sus herramientas.
No es obligatorio cerrar sesión ni reiniciar el equipo, basta con recargar el entorno del usuario ejecutando:
source ~/.bashrc
Este comando actualiza las variables de entorno y permite que nitropy esté disponible inmediatamente en la terminal.2.2- Verificar la instalación de nitropy
Comprobamos que el sistema reconoce la herramienta:
nitropy -h
Conectamos la Nitrokey, y verificamos que es detectada por el sistema:
nitropy nk3 -hA partir de este punto, todas las operaciones con la Nitrokey 3 se realizarán mediante la herramienta nitropy.
Nota importante sobre Nitropy:
- Si la llave es de uso compartido, entre los miembros de tu familia, o entre los compañeros de trabajo. Si otros usuarios del sistema necesitan gestionar la Nitrokey 3 desde la consola, deberán instalar nitropy en su propia sesión.
- Para ello vuelva al punto: 2.1- Instalar pipx, nitropy y dependencias necesarias
3- Instalación y configuración de las reglas udev
Nitrokey proporciona un archivo oficial de reglas udev que otorga automáticamente los permisos necesarios al usuario que tiene la sesión activa. Gracias a este sistema, no es necesario añadir el usuario a ningún grupo adicional.
El proceso y los comandos que vamos a ejecutar a continuación realizan las siguientes acciones:
- Descargar la regla udev oficial
- Moverla a la carpeta correspondiente del sistema
- Ajustar propietario y permisos
- Recargar las reglas udev para aplicarlas inmediatamente
3.1- Descargar la regla udev oficial dede nitrokey
Descargue el archivo directamente desde el repositorio oficial de Nitrokey:
wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules
3.2- Mover la regla a la carpeta correspondiente del sistema
sudo mv 41-nitrokey.rules /etc/udev/rules.d/
3.3- Ajustar propietario y permisos
sudo chown root:root /etc/udev/rules.d/41-nitrokey.rules
sudo chmod 644 /etc/udev/rules.d/41-nitrokey.rules
3.4- Recargar las reglas udev para aplicarlas inmediatamente
sudoudevadm control --reload-rules && sudo udevadm trigger
4- Verificación de la detección del dispositivo en caso de error
Después de instalar nitropy y configurar las reglas udev, el siguiente paso es comprobar que la Nitrokey 3 es detectada correctamente por el sistema. Para ello realizaremos tres comprobaciones:
- lsusb : Comprobar que el hardware aparece en el sistema
- dmesg : Comprobar que el kernel reconoce el dispositivo
- nitropy list : Comprobar que nitropy puede acceder a la llave
Cada una de estas pruebas sirve para diagnosticar un tipo distinto de problema.
4.1- lsusb: Comprobar si el dispositivo aparece en el bus USB
Este comando permite verificar que la Nitrokey 3 está físicamente conectada y reconocida por el kernel.
lsusb | grep -i nitrokey
Si todo está correcto, debería aparecer una línea similar a:Bus 001 Device 004: ID 20a0:42b2 Clay Logic Nitrokey 3A Mini/3A NFC/3C NFC
Si no aparece, significa que:- el puerto USB puede estar fallando
- el cable/adaptador no funciona
- la llave no está bien conectada
- o el kernel no la reconoce
En ese caso, pruebe otro puerto USB o reinicie el equipo.
4.2- dmesg: Comprobar mensajes del kernel
Este comando muestra los eventos recientes del kernel relacionados con dispositivos USB.
Nota: En Debian 13, el comando: dmesg no puede usarse sin privilegios de admninistrador debido a la protección: dmesg_restrict. Si aparece el mensaje “Operación no permitida”, es completamente normal. Para ver los mensajes del kernel relacionados con la Nitrokey, utilice:
sudo dmesg | grep -i nitrokey
O bien, para ver los últimos mensajes tras conectar la llave:sudo dmesg | tail -n 20
Aquí puede ver información útil como:- si el dispositivo ha sido reconocido
- si ha entrado en modo bootloader
- si hay errores de alimentación USB
- si el kernel ha cargado los controladores hidraw
Si aparece algo como:
hid-generic ... HID device Nitrokey Nitrokey 3
significa que el kernel ha detectado correctamente la llave.4.3- nitropy list: Comprobar que nitropy detecta la Nitrokey 3
Este es el test más importante, porque confirma que:
- las reglas udev funcionan
- los permisos son correctos
- nitropy puede comunicarse con la llave
Ejecute:
nitropy list
Si todo está bien, verá algo como:Nitrokey 3 devices: Nitrokey 3A NFC (path: /dev/hidraw3)
Si aparece la llave aquí, significa que:- el hardware está bien
- el kernel la reconoce
- las reglas udev funcionan
- el usuario tiene permisos
- nitropy está correctamente instalado
Es decir: todo está listo para usar la Nitrokey 3.
5- Primeros pasos con nitropy (versión 0.12.0)
Una vez verificado que la Nitrokey 3 es detectada correctamente, podemos comenzar a interactuar con ella mediante nitropy. Los siguientes comandos son para comprobar el estado del dispositivo y confirmar que funciona correctamente.
Para conocer todos los comandos disponibles (de la nitrokey 3) en la versión actual de nitropy, puede ejecutar:
nitropy nk3 -h
tropy nk3 -h
Salida real:
usuariodebian@debian-stable: ~ $ nitropy nk3 -h
Command line tool to interact with Nitrokey devices 0.12.0
Usage: nitropy nk3 [OPTIONS] COMMAND [ARGS]...
Interact with Nitrokey 3 devices, see subcommands.
Options:
-p, --path TEXT The path of the Nitrokey 3 device
-h, --help Show this message and exit.
Commands:
factory-reset Factory reset all functionality of the device
factory-reset-app Factory reset all functionality of an application
fetch-update Fetches a firmware update and stores it at the...
get-config Query a config value.
list List all devices.
list-config-fields List all supported config fields.
piv Nitrokey PIV App
reboot Reboot the key.
rng Generate random data on the device.
secrets Nitrokey Secrets App.
set-config Set a config value.
status Query the device status.
test Run some tests on all connected devices.
update Update the firmware of the device using the given...
validate-update Validates the given firmware image and prints the...
version Query the firmware version of the device.
wink Send wink command to the device (blinks LED a few...
5.1- Listar todos los dispositivos Nitrokey soportados
Este comando nos muestra la lista de dispositivo Nitrokey que puede gestionar.
nitropy listComo la Nitrokey 3 está soportada, aparecerá en la lista, como: nk3
5.2- Listar únicamente dispositivos Nitrokey 3 conectados
nitropy nk3 list
Este comando muestra las llaves conectadas
5.3- Ver información general de un dispositivo
Este es el comando principal para obtener información útil:
usuariodebian@debian-stable: ~ $ nitropy nk3 status
UUID: 111ADXXXXXXXXXXXXXXXXXXXXXXXX
Firmware version: v1.8.3
Init status: ok
Free blocks (int): 50
Free blocks (ext): 478
Variant: LPC55
5.4- Identificar la nitrokey 3 haciendo parpadear el LED
nitropy nk3 wink
Hace parpadear el LED de la Nitrokey 3 durante unos segundos. Muy útil si tienes varias llaves Nitrokey conectadas al mismo al tiempo.
6- Indicadores LED y funcionamiento del sensor táctil de la Nitrokey 3
Antes de realizar operaciones críticas como la actualización del firmware, es importante comprender el funcionamiento del LED y del sensor de la Nitrokey 3. Esto evitará confusiones, permitirá interpretar correctamente el estado del dispositivo y ayudará a reaccionar adecuadamente cuando la llave solicite interacción del usuario.
6.1- Sensor táctil capacitivo
La Nitrokey 3 incorpora un sensor táctil capacitivo, no es un lector de huellas dactilares, ni un micropulsador.
En resumen:
- Es un sensor táctil capacitivo
- Muy sensible
- Responde al tacto suave y al deslizamiento del dedo
- Se utiliza para confirmar acciones sensibles (FIDO2, Secrets, firmware, etc.)
6.2- Colores del LED y su significado (según documentación oficial)
La primera operación FIDO se acepta automáticamente en los dos segundos siguientes a la conexión de Nitrokey FIDO2. En este caso no es necesario tocar el botón táctil.
Se pueden aceptar varias operaciones con un solo toque. Para ello, mantenga pulsado el botón táctil durante un máximo de 10 segundos.
Para evitar el restablecimiento accidental y malintencionado del Nitrokey, el tiempo de confirmación táctil requerido para la operación de restablecimiento del FIDO2 es más largo y con un comportamiento del LED distinto (luz LED roja) que las operaciones normales. Para resetear el Nitrokey FIDO2, confirme tocando el botón táctil durante al menos 5 segundos hasta que el LED verde o azul se ilumine.
Nota: el parpadeo del LED blanco también se utiliza para señalizar el dispositivo seleccionado (cuando usamos el comando: nitropy nk3 wink).
Nitrokey documenta un flujo completo de colores para cada operación, y se interpreta así:
| Color del LED | Evento | Periodo de tiempo | Comentarios |
|---|---|---|---|
| Cualquiera (intermitente) | A la espera de ser tocado | Hasta que se confirme el toque o se agote el tiempo | |
| Cualquiera (parpadea más rápido) | Toque detectado, cuenta los segundos | Hasta que se confirme el toque o se agote el tiempo | |
| Blanco (parpadea) | Petición táctil de registro o autenticación FIDO | Requiere 1 segundo; espera ~30 segundos | |
| Amarillo (parpadea) | Petición táctil de configuración | Requiere 5 segundos; usado para firmware | |
| Rojo (parpadea) | Petición de reinicio | Primeros 10 segundos tras encendido | Mantener 5 segundos |
| Verde (constante) | Toque aceptado | 10 segundos | Modo activación automática |
| Azul (constante) | Toque consumido | Hasta soltar | No acepta nuevas operaciones |
| Blanco (1 parpadeo) | Listo | 0,5 segundos | |
| (sin LED) | Inactivo | ||
| (sin LED) | Auto FIDO | Primeros 2 segundos | Aceptación automática |
| Todos los colores | Modo firmware | Hasta completar | Permanece si falla |
6.3- Cuándo hay que pulsar el sensor táctil
La Nitrokey 3 solicitará interacción del usuario en situaciones como:
- Confirmación de operaciones FIDO2
- Confirmación de operaciones de seguridad
- Procesos internos que requieren autorización
- Algunos pasos durante la actualización del firmware (según versión)
Cuando el LED parpadea, significa: “Pulse el sensor táctil para continuar”.
Si el usuario no pulsa, la operación no avanza.
6.4- Advertencias importantes
- No confundir el sensor táctil con un micropulsador.
- No desconectar la llave mientras el LED está verde brillante (procesando).
- Si aparece rojo brillante, detener la operación y revisar el manual.
- Si el LED no responde, probar otro puerto USB.
- Evitar usar hubs USB de baja calidad durante actualizaciones.
7- Actualización del firmware de la Nitrokey 3 (versión estable)
La
actualización del firmware permite mejorar la estabilidad, corregir
errores y añadir nuevas funciones a la Nitrokey 3. En este manual nos
centraremos únicamente en la actualización hacia versiones estables,
siguiendo el procedimiento oficial y seguro para usuarios finales.
Importante: Este
manual no cubre versiones experimentales, nightly o de desarrollo.
Tampoco cubre procesos de downgrade (volver a una versión anterior). Si
necesita realizar pruebas avanzadas, consulte la documentación oficial
de Nitrokey 3.
Antes de comenzar, asegúrese de haber leído el
Punto 6- Indicadores LED y funcionamiento del botón, ya que durante la
actualización la llave puede solicitar interacción del usuario.
7.1- Comprobar si hay actualizaciones de firmware disponibles
usuariodebian@debian-stable: ~ $ nitropy nk3 update
Command line tool to interact with Nitrokey devices 0.12.0
Current firmware version: v1.8.3
Updated firmware version: v1.8.3
The version of the firmware image is the same as on the device. Do you want to continue anyway? [y/N]: N
Aborted!
nitropy nk3 update = Si existe
una actualización, te pregunta si la quieres instalar, y el se encarga
de todo (Descarga, validación, actualización...), si encuentra la misma
versión que ya está instalada te pregunta: La versión de la imagen del
firmware es la misma que la del dispositivo. ¿Desea continuar de todos
modos?nitropy nk3 fetch-update7.2- Validar una actualización descargada
nitropy nk3 validate-update <ruta_del_archivo_bin>nitropy nk3 validate-update ~/nitrokey/firmware/firmware-nk3-v1.9.0.bin Nos
permite comprobar que el firmware descargado es válido, correcto y se
puede instalar. Ya que es el software original y no ha sido modificado
por nadie.Firmware image is valid.
7.3- Iniciar la actualización del firmware
nitropy nk3 update <ruta_del_archivo.bin>
Ejemplo:nitropy nk3 update ~/nitrokey/firmware/firmware-nk3_v1.9.0.bin
Durante este proceso:- La Nitrokey 3 puede reiniciarse automáticamente.
- El LED puede cambiar de estado según el firmware.
- Puede aparecer un estado de espera de interacción (LED blanco parpadeando).
- Es posible que se le pida pulsar el botón físico para confirmar.
No desconecte la llave durante la actualización.
7.4- Señales luminosas del LED durante la actualización
| Estado del LED | Significado |
|---|---|
| Blanco parpadeando | Esperando que pulse el botón |
| Verde brillante | Procesando la actualización |
| Rojo brillante | Error del dispositivo |
| Sin luz | Reinicio o espera |
nitropy nk3 reboot
Útil después de una actualización o cambio de configuración.Una vez finalizado el proceso, compruebe la versión instalada:
nitropy nk3 status
Salida típica:Command line tool to interact with Nitrokey devices 0.12.0
UUID: 111ADXXXXXXXXXXXXXXXXXXXXXXXX
Firmware version: v1.9.0
Init status: ok
Free blocks (int): 50
Free blocks (ext): 478
Variant: LPC55
Si la versión coincide con la descargada, la actualización ha sido exitosa. 7.7- Errores comunes y cómo resolverlos
- Device in bootloader mode
La llave está en modo de actualización.
Solución:
nitropy nk3 update archivo.bin
Si ya actualizó, reinicie:nitropy nk3 reboot
- “Permission denied”Problema de permisos USB.
Solución: Revise el Punto 4- Reglas udev.
- LED rojo fijo
Indica un error interno.
Soluciones:
- desconectar y volver a conectar
- repetir la actualización
- probar otro puerto USB
- evitar hubs USB
- La llave no aparece en nitropy nk3 list
Puede estar en modo bootloader.
Pruebe:
nitropy list
Si aparece como “bootloader”, continúe con la actualización.La Nitrokey 3 integra 4 subsistemas independientes.
Cada uno tiene su propio PIN porque protege funciones distintas y mantiene la seguridad incluso si uno de ellos se ve comprometido.
Los 4 subsistemas con PIN son:
- FIDO2
- Secrets (contraseñas y códigos OTP)
- Tarjeta OpenPGP
- PIV (Personal Identity Verification)
Cada uno funciona de forma aislada y tiene sus propias reglas, longitudes, reintentos y contraseñas por defecto.
8.1- Cuántos PIN diferentes usa la Nitrokey 3
La Nitrokey 3 puede tener hasta 8 PIN (códigos) distintos, dependiendo de qué funciones actives:
8.2- Reglas para elegir buenos PINes
- No reutilizar PINes entre FIDO2, Secrets, OpenPGP y PIV.
- Usar mínimo 6-8 caracteres según el sistema.
- Evitar fechas, patrones simples o repeticiones.
- Guardarlos siempre en un gestor de contraseñas.
- No anotarlos en papel ni compartirlos.
8.3- Configurar el PIN FIDO2
El PIN FIDO2 protege el uso de la llave en autenticaciones WebAuthn (passkeys).
Se puede configurar desde:
- Nitropy
- Aplicaciones del sistema operativo
- Navegadores compatibles (Chrome, Chromium, Edge…)
Intentos y bloqueo:
- 8 intentos máximos antes de bloqueo.
- Si se bloquea, hay que resetear FIDO2, lo que borra:
--> todas las passkeys
--> todas las credenciales
--> el PIN
- Recomendación crítica: cada 3 intentos fallidos, desenchufa y vuelve a enchufar la llave para evitar un bloqueo accidental.
8.3.1- FIDO2: Activar el PIN (contraseña) la primera vez
nitropy fido2 set-pin
La salida es interactiva, hacemos lo que nos dice:Please enter new PIN:
Por favor escribe el nuevo PINPlease confirm new PIN:
Vuelves a escribir el mismo PINdone - please use new pin to verify keyListo. Por favor, utilice el nuevo PIN para verificar la clave.nitropy fido2 change-pin
Para cambiar el PIN actual por uno nuevo.
Please enter current PIN:
Escribir el PIN actual
Please enter new PIN:
Por favor escribe el nuevo PIN
Please confirm new PIN:
Vuelves a escribir el mismo PINPIN set successfully
PIN configurado correctamentenitropy fido2 reset
la salida nos advierte
This will reset the FIDO2 application.
All credentials and the PIN will be deleted.
Do you want to continue? [y/N]:
Nos dice: Esto reiniciará la aplicación FIDO2.
Se eliminarán todas las credenciales y el PIN.
¿Desea continuar? [y/N]:
This will reset the FIDO2 application.
All credentials and the PIN will be deleted.
Do you want to continue? [y/N]: y
Por defecto es: N (no), tenemos que pulsar: y (yes)
Please unplug and replug your Nitrokey to continue.
Acción obligatoria:
- Quitar la Nitrokey del USB
- Volver a conectarla
Please touch the device to confirm the operation.
Por favor, toque el dispositivo (la nitrokey) para confirmar la operación. Igual que cuando vamos a aceptar un servicio
FIDO2 application reset successfully.
Si todo a ido bien, nos dice: La aplicación FIDO2 se reinició correctamente. Buenas prácticas:
- No usar el mismo PIN que en Secrets u OpenPGP.
8.4- Configurar Secrets (TOTP / HOTP)
Secrets es un almacén cifrado para:
- contraseñas
- códigos TOTP
- datos sensibles
- 8 intentos antes de bloqueo
Buenas prácticas:
- Activarlo desde el primer uso.
- Mantenerlo distinto al PIN FIDO2.
nitropy nk3 secrets set-pin
La salida es:
Password:Escribir el nuevo PIN
Repeat for confirmation:Vuelva a escribir el mismo PIN
Please touch the device if it blinksPor favor, toque el dispositivo si parpadeaPassword setContraseña establecida8.5- Configurar OpenPGP Card
Para poder hacer uso de OpenPGP, necesitamos intalar el paquete: scdaemon
sudo apt install scdaemon
- firma digital
- cifrado
- autenticación SSH
Tiene tres PINes: PIN de usuario, Admin PIN, Reset Code
8.5.1- PIN de usuario (User PIN)
MUY IMPORTANTE:
- Longitud: 6-127 caracteres
- Contraseña por defecto: 123456
- Intentos: 3
- Si se bloquea, se desbloquea con el PIN de administrador o el código de restablecimiento.
gpg --card-edit
Nos mete en el modo interactivo, y nos da la siguiente salida:
gpg: detected reader 'Nitrokey Nitrokey 3'
Application ID ...: D276000124010201...
Application type .: OpenPGP
Version ..........: 3.x
Manufacturer .....: Nitrokey
Serial number ....: XXXXXXXX
Name of cardholder: [not set]
gpg/card>
Cambiar PIN de usuario tenemos que escribir passwd
gpg/card> passwd
Nos muestra el siguiente menú
gpg: OpenPGP card no. D276000124010201...
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Seleccionamos el numero: 1
Your selection? 1
Ahora comienza el proceso
Enter the current PIN:
Si la Nitrokey es nueva, escribimos: 123456 , en caso contrario escribimos el PIN actual
Enter the new PIN:
Escriba el nuevo PIN:
Repeat this PIN:
Vuelve a escribir el mismo PIN:
PIN changed.
Pin cambiado
gpg/card> quit
Escribimos: quit para salir
8.5.2- Admin PIN (PIN de administrador)
MUY IMPORTANTE:
- Longitud: 8-127 caracteres
- Contraseña por defecto: 12345678
- Intentos: 3
- Si se bloquea, hay que restablecer la tarjeta OpenPGP.
gpg --card-edit
Nos mete en el modo interactivo, y nos da la siguiente salida:
gpg: detected reader 'Nitrokey Nitrokey 3'
Application ID ...: D276000124010201...
Application type .: OpenPGP
Version ..........: 3.x
Manufacturer .....: Nitrokey
Serial number ....: XXXXXXXX
Name of cardholder: [not set]
gpg/card>
Cambiar PIN de Administrador tenemos que escribir: admin
gpg/card> admin
(No muestra nada especial, solo habilita funciones admin)
gpg/card> passwd
Ahora, escribimos: passwd
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Nos muestra el Menú:
Your selection? 3
Seleccionamos el numero: 3
Enter the current Admin PIN:
Nos pide que escribamos el PIN actual, Si la Nitrokey es nueva escribimos: 12345678 , en caso contrario escribimos el PIN actual
12345678
Enter the new Admin PIN:
Escribimos el nuevo PIN
Repeat this PIN:
Volvemos a escrbir el mismo PIN
PIN changed.
PIN configurado correctamente
gpg/card> quit
Escribimos: quit para salir
MUY IMPORTANTE:
- No tiene valor por defecto.
- Longitud: 8-127 caracteres
- Intentos: 3
- Una vez activado, no se puede desactivar sin resetear OpenPGP.
- Activar siempre el código de restablecimiento.
- Usar PINes distintos para usuario y administrador.
- Guardarlos en un gestor seguro.
gpg --card-edit
Nos mete en el modo interactivo, y nos da la siguiente salida:
gpg: detected reader 'Nitrokey Nitrokey 3'
Application ID ...: D276000124010201...
Application type .: OpenPGP
Version ..........: 3.x
Manufacturer .....: Nitrokey
Serial number ....: XXXXXXXX
Name of cardholder: [not set]
gpg/card>
Cambiar PIN de RESET CODE (código de restablecimiento) tenemos que escribir: admin
gpg/card> admin
(No muestra nada especial, solo habilita funciones admin)
gpg/card> passwd
Ahora, escribimos: passwd
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Nos muestra el Menú:
Your selection? 4
Seleccionamos el numero: 4
Enter the Admin PIN:
Escribimos el PIN de admin
Enter the Reset Code:
Escribimos el código (mínimo 8 caracteres)
Repeat this Reset Code:
Volvemos a escribir el mismo código
Reset Code set.
Código de reinicio establecido.
gpg/card> quit
Escribimos: quit para salir
8.6- Configurar PIV (Personal Identity Verification)
PIV es un sistema de tarjeta inteligente basado en estándares gubernamentales.
Para poder utilizar el módulo PIV de la Nitrokey 3 es necesario instalar la librería pyscard, ya que proporciona el backend PC/SC requerido para la comunicación con el dispositivo.
En Debian, instale los siguientes paquetes:
sudo apt install libccid libpcsclite-dev python3-pip pcscd
Estos paquetes proporcionan:- El servicio PC/SC (pcscd)
- El soporte para lectores de tarjetas inteligentes (libccid)
- Las cabeceras necesarias para compilar extensiones Python (libpcsclite-dev)
8.6.2- Recargar reglas udev
sudo udevadm control --reload-rules && sudo udevadm trigger
8.6.3- Instalar pyscard mediante pipx
Nitropy ya está instalado, por lo que al intentar añadir el extra [pcsc] aparecerá un mensaje indicando que la instalación ya existe.
Para actualizarla correctamente, utilice:
pipx install --force pynitrokey[pcsc]
Esto añadirá el soporte PC/SC al entorno aislado de pipx.8.6.4- Uso del módulo PIV
En el momento de redactar este manual, los comandos PIV de nitropy son experimentales, por lo que es obligatorio incluir la bandera --experimental en cada operación.
Ejemplos reales:
nitropy nk3 piv --experimental info
nitropy nk3 piv --experimental change-pin
nitropy nk3 piv --experimental change-puk
nitropy nk3 piv --experimental change-admin-key
Tiene tres códigos: PIN de usuario, PUK, Management Key
- Contraseña por defecto: 123456
- Longitud máxima: 8 caracteres
- Intentos: 3
- Si se bloquea, se desbloquea con el PUK.
nitropy nk3 piv --experimental change-pin
La salida es:
Enter current PIN:
Escribe el PIN actual
123456
Si la Nitrokey es nueva es: 123456 , en caso contrario escribir el PIN actual
Enter new PIN:
Escribir el nuevo PIN
Repeat new PIN:
Volvemos a escribir el mismo PIN
PIN changed successfully
PIN configurado correctamente- Contraseña por defecto: 12345678
- Intentos: 3
- Si se bloquea, hay que resetear PIV.
nitropy nk3 piv --experimental change-puk
La salida es:
Enter current PUK:
Escribe el PUK actual
12345678
Si la Nitrokey es nueva es: 12345678 , en caso contrario escribir el PUK actual
Enter new PUK:
Escribir el nuevo PUK
Repeat new PUK:
Volvemos a escribir el mismo PUK
PUK changed successfully
PUK configurado correctamenteTambién llamada: Management Key, Admin Key, Admin-Auth, 3DES key, etc.
Es la clave que permite administrar el módulo PIV, incluyendo:
- generar certificados
- importar claves
- resetear slots
- operaciones de alto nivel
Es la credencial más poderosa del sistema PIV.
- Se recomienda generarla aleatoriamente.
- Guardarla siempre en un gestor seguro.
nitropy nk3 piv --experimental admin-auth
Command line tool to interact with Nitrokey devices 0.12.0
Nitrokey Nitrokey 3 [CCID/ICCD Interface] 00 00
Authenticated successfully
Nos informa que nos hemos logeado perfectamente.Acto seguido introducimos la nueva contraseña que deseamos usar
nitropy nk3 piv --experimental change-admin-key 010203040506070801020304050607080102030405060708
Command line tool to interact with Nitrokey devices 0.12.0
Nitrokey Nitrokey 3 [CCID/ICCD Interface] 00 00
Changed key successfully
Nos informa que la contraseña ha sido añadida perfectamente.Ahora usamos el siguiente comando, para ver que funciona bien
- Contraseña actual: 010203040506070801020304050607080102030405060708
- Se recomienda generarla aleatoriamente.
- Guardarla siempre en un gestor seguro.
Buenas prácticas:
- Cambiar los tres códigos desde el primer uso.
- Guardarlos en un gestor seguro.
- No reutilizar PINes entre subsistemas.
8.7- Resumen de todos los PINes
| Subsistema | Tipo | Por defecto | Mínimo | Máximo | Reintentos | Recomendación |
|---|---|---|---|---|---|---|
| FIDO2 | PIN | — | 4 | 63 | 8 | Activarlo desde el inicio y Desenchufar cada 3 intentos |
| Secrets | PIN | — | 6 | — | 8 | Activarlo desde el inicio |
| OpenPGP | PIN usuario | 123456 | 6 | — | 3 | Cambiar inmediatamente |
| OpenPGP | Admin PIN | 12345678 | 8 | — | 3 | Cambiar inmediatamente y Guardar en gestor seguro |
| OpenPGP | Reset Code | — | 8 | — | — | Activarlo desde el inicio y Guardar en gestor seguro |
| PIV | PIN | 123456 | 6 | 8 | 3 | Cambiar inmediatamente y Guardar en gestor seguro |
| PIV | PUK | 12345678 | 6 | 8 | 3 | Cambiar inmediatamente y Guardar como respaldo |
| PIV | Management Key | valor fijo | 48 hex | 48 hex | — | Cambiar inmediatamente y Guardar en gestor seguro |
1- Configurar Nitrokey 3 desde consola (nitropy)
2- Configurar Nitrokey 3 desde Nitrokey App 2 (GUI)
3- Joomla: Autenticación FIDO2 / WebAuthn con Nitrokey 3





No hay comentarios:
Publicar un comentario