Guía de integración de Nitrokey Pro / Inicio / Almacenamiento
Resumen
Esta guía configura el sensor CBOM Secure Discover_PGP para descubrir activos criptográficos en dispositivos Nitrokey Pro, Start o Storage. Estos implementan el estándar de tarjeta OpenPGP; las claves privadas residen en el dispositivo y nunca se pueden exportar, mientras que GnuPG almacena fragmentos de clave pública en el llavero local. El sensor lee estos fragmentos en modo de solo lectura.
- Claves públicas OpenPGP almacenadas en caché en el llavero GnuPG (~/.gnupg o un GNUPGHOME personalizado).
- Metadatos de la clave: ID de la clave, huella digital, algoritmo, longitud de la clave, fechas de creación/caducidad, ID de usuario.
- Entradas de subclave para ranuras de firma, cifrado y autenticación.
- (Solo en modo Nitrokey HSM / PKCS#11) certificados, claves públicas y manejadores de claves privadas a través de opensc-pkcs11.so
Requisitos previos
- Un dispositivo Nitrokey compatible (Pro 2, Start o Storage) conectado mediante USB.
- GnuPG 2.2 o posterior en el host del sensor, con el componente scdaemon presente.
- El demonio PC/SC (pcscd) está en ejecución.
- Solo para el modo Nitrokey HSM (PKCS#11): opensc y opensc-pkcs11 instalados.
- El agente CBOM está instalado y accesible; se dispone de acceso de lectura al directorio principal de GnuPG.
- El dispositivo no presenta bloqueo por PIN.
Guía paso por paso
Paso 1: Verificar la detección del dispositivo
systemctl status pcscd # comienza con: sudo systemctl enable --now pcscd gpg --card-status # confirma el lector / ID de la aplicación / número de serie de Nitrokey
Paso 2: Confirmar las entradas del talón del llavero
Las claves respaldadas por tarjeta aparecen con el prefijo > en la línea sec/ssb, lo que indica que la clave privada reside en el hardware. Si no hay stubs presentes, gpg –card-status los crea automáticamente:
gpg --list-keys gpg --list-secret-keys # buscar sec> / ssb> (clave en la tarjeta)
Paso 3: (Solo en modo HSM) Enumerar objetos PKCS#11
Se aplica únicamente cuando el dispositivo se utiliza como un HSM Nitrokey con acceso PKCS#11; omitir para el modo de tarjeta OpenPGP estándar.
ls -l /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so # RHEL: /usr/lib64/opensc-pkcs11.so pkcs11-tool --module /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so --list-objects
Paso 4: Configurar el sensor de seguridad CBOM
sensor: nombre: Discover_PGP habilitado: verdadero pgp: gpg_home: "/home/cbom-agent/.gnupg" gpg_binario: "/usr/bin/gpg" listar_secretos_stubs: verdadero listar_claves_públicas: verdadero incluir_subclaves: verdadero incluir_caducado: falso dispositivo: proveedor: "Nitrokey" modelo: "Pro 2" # Pro 2 | Inicio | Almacenamiento | HSM 2 número_serie: "00000XXX" # de gpg --card-status pkcs11: habilitado: falso # verdadero solo para el modo HSM de Nitrokey ruta_módulo: "/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so" ranura: 0 listar_manejadores_clave_privada: verdadero # solo manejadores; Material clave nunca leído salida: formato: "json" cbom_server_url: "https://cbom.example.com/api/v1/ingest" api_key: "${CBOM_API_KEY}" programación: interval_minutes: 60
Guarde el archivo en /etc/cbom/sensors/nitrokey-pgp.yaml y recargue el agente. Inyecte CBOM_API_KEY a través del administrador de env/secrets.
Paso 5: Validar
cbom-cli sensor run --name Discover_PGP --config /etc/cbom/sensors/nitrokey-pgp.yaml --dry-run gpg --fingerprint --with-colons # compara los campos fpr con el escaneo
Confirme que los informes de escaneo muestran huellas digitales, algoritmos y fechas de vencimiento que coinciden con los archivos GnuPG, etiquetados con el número de serie de Nitrokey como origen. Confirme que no aparece material de clave privada (private_key_exported: false en todas las entradas).
Errores comunes
gpg: error al seleccionar la tarjeta: No existe tal dispositivo
Causa: pcscd no se está ejecutando o el dispositivo no es detectado por USB.
Resolución: Confirme lsusb | grep -i nitrokey, inicie pcscd, reinicie el agente (gpgconf –kill gpg-agent) y pase el dispositivo USB si está en una máquina virtual.
pkcs11-tool: Falló la carga del módulo PKCS#11
Causa: La ruta del archivo opensc-pkcs11.so es incorrecta o OpenSC no está instalado.
Solución: busque /usr/lib -name opensc-pkcs11.so, actualice module_path e instale opensc si falta.
scdaemon es más antiguo que nosotros
Causa: Discrepancia de versiones entre gpg y scdaemon debido a una actualización parcial.
Solución: Actualice gnupg2 y scdaemon simultáneamente, detenga el agente (gpgconf –kill gpg-agent) y vuelva a ejecutar gpg –card-status.
Recomendaciones de seguridad
- Ejecute el sensor como una cuenta dedicada con privilegios limitados y acceso de solo lectura al directorio principal de GnuPG.
- Nunca guardes los PIN del dispositivo en la configuración; el sensor PGP solo lee los stubs públicos y los metadatos.
- Restringe el directorio principal de GnuPG (chmod 700) al usuario propietario y a la cuenta del sensor.
- Rote periódicamente la clave CBOM_API_KEY e inyéctela a través del administrador de env/secrets.
- Audite los contadores de reintentos de PIN de Nitrokey mediante gpg –card-status para detectar intentos no autorizados.
Conclusión
El sensor Discover_PGP proporciona un descubrimiento pasivo y de solo lectura de los fragmentos de clave OpenPGP (y objetos PKCS#11 opcionales) anclados a los dispositivos Nitrokey, sin exponer ni exportar el material de la clave privada, lo que proporciona a CBOM Secure una visibilidad continua sobre la caducidad de las claves de los tokens de hardware, los algoritmos y el ciclo de vida.
