Nitrokey Pro / Start / Leitfaden zur Speicherintegration
Übersicht
Diese Anleitung konfiguriert den CBOM Secure Discover_PGP-Sensor zur Erkennung kryptografischer Assets auf Nitrokey Pro-, Start- oder Storage-Geräten. Diese implementieren den OpenPGP-Kartenstandard; private Schlüssel befinden sich auf dem Gerät und können nicht exportiert werden, während GnuPG öffentliche Schlüsselstubs im lokalen Schlüsselbund speichert. Der Sensor liest diese Stubs schreibgeschützt.
- OpenPGP-Public-Key-Stubs werden im GnuPG-Schlüsselring (~/.gnupg oder einem benutzerdefinierten GNUPGHOME) zwischengespeichert.
- Wichtige Metadaten: Schlüssel-ID, Fingerabdruck, Algorithmus, Schlüssellänge, Erstellungs-/Ablaufdatum, Benutzer-IDs
- Unterschlüsseleinträge für Signierungs-, Verschlüsselungs- und Authentifizierungsslots
- (Nur im Nitrokey HSM / PKCS#11-Modus) Zertifikate, öffentliche Schlüssel und private Schlüsselhandles über opensc-pkcs11.so
Voraussetzungen:
- Ein unterstützter Nitrokey (Pro 2, Start oder Storage), der über USB angeschlossen ist.
- GnuPG 2.2 oder höher auf dem Sensor-Host, mit der Komponente scdaemon.
- Der PC/SC-Daemon (pcscd) läuft.
- Nur für den Nitrokey HSM (PKCS#11)-Modus: opensc und opensc-pkcs11 müssen installiert sein.
- Der CBOM-Agent ist installiert und erreichbar; Lesezugriff auf das GnuPG-Home-Verzeichnis.
- Das Gerät verfügt über keine PIN-Sperre.
Schritt-für-Schritt-Anleitung
Schritt 1: Geräteerkennung überprüfen
systemctl status pcscd # Starten Sie mit: sudo systemctl enable --now pcscd gpg --card-status # Seriennummer des Lesegeräts/der Anwendung/des Nitrokey bestätigen
Schritt 2: Einträge auf dem Schlüsselanhänger bestätigen
Kartenbasierte Schlüssel werden mit einem >-Präfix in der sec/ssb-Zeile angezeigt, was darauf hinweist, dass sich der private Schlüssel auf der Hardware befindet. Falls keine Stubs vorhanden sind, erstellt gpg --card-status diese automatisch.
gpg --list-keys gpg --list-secret-keys # Suche nach sec> / ssb> (Schlüssel auf der Karte)
Schritt 3: (Nur im HSM-Modus) PKCS#11-Objekte auflisten
Gilt nur, wenn das Gerät als Nitrokey HSM mit PKCS#11-Zugriff verwendet wird; überspringen Sie diesen Schritt für den Standard-OpenPGP-Kartenmodus.
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
Schritt 4: Konfigurieren Sie den CBOM-Sicherheitssensor
sensor: name: Discover_PGP enabled: true pgp: gpg_home: "/home/cbom-agent/.gnupg" gpg_binary: "/usr/bin/gpg" list_secret_stubs: true list_public_keys: true include_subkeys: true include_expired: false device: vendor: "Nitrokey" model: "Pro 2" # Pro 2 | Start | Storage | HSM 2 serial_number: "00000XXX" # from gpg --card-status pkcs11: enabled: false # true only for Nitrokey HSM mode module_path: "/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so" slot: 0 list_private_key_handles: true # handles only; Schlüsselmaterial, Ausgabe nie lesen: Format: "json" cbom_server_url: "https://cbom.example.com/api/v1/ingest" api_key: "${CBOM_API_KEY}" Zeitplan: interval_minutes: 60
Speichern Sie die Datei unter /etc/cbom/sensors/nitrokey-pgp.yaml und laden Sie den Agenten neu. Fügen Sie CBOM_API_KEY über den env/secrets-Manager hinzu.
Schritt 5: Validieren
cbom-cli sensor run --name Discover_PGP --config /etc/cbom/sensors/nitrokey-pgp.yaml --dry-run gpg --fingerprint --with-colons # Querverweis der FPR-Felder gegen den Scan
Prüfen Sie, ob die Scan-Berichte Fingerabdrücke, Algorithmen und Ablaufdaten der GnuPG-Stubs enthalten, die mit der Nitrokey-Seriennummer als Quelle gekennzeichnet sind. Stellen Sie sicher, dass keine privaten Schlüsseldaten angezeigt werden (private_key_exported: false bei allen Einträgen).
Häufige Fehler
gpg: Kartenauswahl fehlgeschlagen: Kein solches Gerät
Ursache: pcscd läuft nicht oder das Gerät wird nicht über USB erkannt.
Lösung: Überprüfen Sie mit lsusb | grep -i nitrokey, starten Sie pcscd, starten Sie den Agenten neu (gpgconf –kill gpg-agent) und geben Sie das USB-Gerät in einer VM frei.
pkcs11-tool: Das Laden des PKCS#11-Moduls ist fehlgeschlagen.
Ursache: Der Pfad zu opensc-pkcs11.so ist falsch oder OpenSC ist nicht installiert.
Lösung: Suchen Sie nach /usr/lib -name opensc-pkcs11.so, aktualisieren Sie module_path und installieren Sie opensc, falls es fehlt.
scdaemon ist älter als wir
Ursache: Eine Versionsabweichung zwischen gpg und scdaemon aufgrund eines unvollständigen Upgrades.
Lösung: Aktualisieren Sie gnupg2 und scdaemon gleichzeitig, beenden Sie den Agenten (gpgconf –kill gpg-agent) und führen Sie gpg –card-status erneut aus.
Sicherheitsempfehlungen
- Der Sensor soll als dediziertes Benutzerkonto mit geringen Berechtigungen und Lesezugriff auf das GnuPG-Verzeichnis ausgeführt werden.
- Speichern Sie niemals Geräte-PINs in der Konfiguration – der PGP-Sensor liest nur öffentliche Stubs und Metadaten.
- Beschränken Sie das GnuPG-Home-Verzeichnis (chmod 700) auf den Besitzerbenutzer und das Sensorkonto.
- CBOM_API_KEY regelmäßig rotieren und über den env/secrets manager einfügen.
- Überprüfen Sie die Nitrokey-PIN-Wiederholungszähler mit dem Befehl gpg –card-status, um unautorisierte Versuche zu erkennen.
Fazit
Der Discover_PGP-Sensor ermöglicht die passive, schreibgeschützte Erkennung von OpenPGP-Schlüsselstubs (und optionalen PKCS#11-Objekten), die an Nitrokey-Geräte gebunden sind – ohne dabei privates Schlüsselmaterial offenzulegen oder zu exportieren – und bietet CBOM Secure so kontinuierliche Einblicke in den Ablauf von Hardware-Token-Schlüsseln, Algorithmen und den Lebenszyklus.
