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

  1. Un dispositivo Nitrokey compatible (Pro 2, Start o Storage) conectado mediante USB.
  2. GnuPG 2.2 o posterior en el host del sensor, con el componente scdaemon presente.
  3. El demonio PC/SC (pcscd) está en ejecución.
  4. Solo para el modo Nitrokey HSM (PKCS#11): opensc y opensc-pkcs11 instalados.
  5. El agente CBOM está instalado y accesible; se dispone de acceso de lectura al directorio principal de GnuPG.
  6. 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.