Zum Hauptinhalt springen

setup

Gilt für:
OpenBaoPKCS#11 Auto-UnsealDuoKey CockpitSoftware Vault / Primus HSM

Voraussetzungen​

Voraussetzungen

  • OpenBao installiert und bereit zur Konfiguration
  • DuoKey Cockpit-Konto mit einer erstellten KMS-Anwendung
  • DuoKey PKCS#11-Bibliothek (libdke_pkcs11.so) kompiliert und installiert
  • AES- oder RSA-Schlüssel vorab im Cockpit-Vault erstellt
  • Netzwerkkonnektivität vom OpenBao-Server zur DuoKey Cockpit-API (HTTPS/443)
Wichtig
Der für das Auto-Unseal verwendete Verschlüsselungsschlüssel muss erstellt werden, bevor OpenBao konfiguriert wird. Wie in der OpenBao-Dokumentation beschrieben, muss der Schlüssel vor der Initialisierung vorhanden sein.

Einrichtungsschritte​

KMS-App in DuoKey Cockpit erstellen

Erstellen Sie im DuoKey Cockpit eine KMS-Anwendung mit dem gewünschten Vault-Backend (Software Vault oder Primus HSM)

Verschlüsselungsschlüssel erstellen

Erstellen Sie im Cockpit-Vault den AES- oder RSA-Schlüssel, den OpenBao zum Versiegeln/Entsiegeln verwenden wird

PKCS#11-Bibliothek installieren

Kopieren Sie die kompilierte libdke_pkcs11.so in einen bekannten Pfad, z. B. /usr/local/lib/pkcs11/

Umgebungsvariablen konfigurieren

Legen Sie die Umgebungsvariablen der PKCS#11-Bibliothek für den Cockpit-Zugriff fest

OpenBao-Seal-Stanza konfigurieren

Fügen Sie die PKCS#11-Seal-Konfiguration zu Ihrer OpenBao-Konfigurationsdatei hinzu

OpenBao initialisieren oder neu starten

Initialisieren Sie OpenBao (beim ersten Mal) oder starten Sie es neu, um das Auto-Unseal zu verwenden

Umgebungsvariablen​

Legen Sie die erforderlichen Umgebungsvariablen für die PKCS#11-Bibliothek fest, bevor Sie OpenBao starten. Diese können in einer Konfigurationsdatei abgelegt werden, die vom OpenBao-Dienst eingelesen wird.

/etc/dke/pkcs11.toml
[http_config]
server_url = "https://<cockpit-host>/api/apps/<app_id>/tde/pkcs11/<access_guid>"
access_token = "<access_guid>"
timeout_secs = 30
verify_tls = true

[pkcs11]
slot_id = 0
logging_level = "info"
logging_folder = "/var/log/dke-pkcs11"
export DKE_PKCS11_CONF=/etc/dke/pkcs11.toml
Tipp
Bei systemd-basierten Bereitstellungen können Sie diese Variablen zur Umgebungsdatei des OpenBao-Dienstes hinzufügen (z. B. /etc/openbao.d/openbao.env).

OpenBao-Seal-Konfiguration​

Fügen Sie eine seal "pkcs11"-Stanza zu Ihrer OpenBao-Konfigurationsdatei hinzu (z. B. /etc/openbao.d/openbao.hcl).

AES-Schlüsselkonfiguration​

seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-aes-256"
mechanism = "0x00001087"
}
ParameterBeschreibung
libPfad zur gemeinsam genutzten DuoKey PKCS#11-Bibliothek
slotSlot-ID — auf "0" gesetzt
pinKann ein beliebiger Wert sein (wird von der Bibliothek derzeit nicht validiert)
key_labelBezeichnung des in DuoKey Cockpit erstellten AES-Schlüssels
mechanism0x00001087 = CKM_AES_GCM

RSA-Schlüsselkonfiguration​

seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-rsa-4096"
mechanism = "0x00000009"
rsa_oaep_hash = "sha256"
}
ParameterBeschreibung
libPfad zur gemeinsam genutzten DuoKey PKCS#11-Bibliothek
slotSlot-ID — auf "0" gesetzt
pinKann ein beliebiger Wert sein (wird von der Bibliothek derzeit nicht validiert)
key_labelBezeichnung des in DuoKey Cockpit erstellten RSA-Schlüssels
mechanism0x00000009 = CKM_RSA_PKCS_OAEP
rsa_oaep_hashHash-Algorithmus für RSA-OAEP — verwenden Sie "sha256"
Hinweis
Der Wert slot ist die Slot-ID und kann auf "0" gesetzt werden. Der pin kann ein beliebiger Wert sein, da er von der Bibliothek derzeit nicht validiert wird.

Backend-Kompatibilität​

BackendAES (CKM_AES_GCM)RSA (CKM_RSA_PKCS_OAEP)
Software VaultErfolgreich getestetErfolgreich getestet
Primus HSMNicht unterstützt — Primus akzeptiert den eingegebenen IV nicht und generiert einen eigenen, was mit den AES-GCM-Seal-Anforderungen inkompatibel istErfolgreich getestet
Vorsicht
Bei Verwendung von Primus HSM als Backend können nur RSA-Schlüssel für das Auto-Unseal verwendet werden. AES-basiertes Versiegeln funktioniert nicht, weil Primus seinen eigenen IV generiert, anstatt den von der Bibliothek bereitgestellten zu akzeptieren.

Verifizierung​

Überprüfen Sie nach der Konfiguration von OpenBao, ob das Auto-Unseal funktioniert:

# Start or restart OpenBao
sudo systemctl restart openbao

# Check the seal status
bao status

Wenn das Auto-Unseal korrekt konfiguriert ist, sollte der Vault nach dem Start automatisch als entsiegelt gemeldet werden.

# Expected output (key fields)
# Seal Type: pkcs11
# Initialized: true
# Sealed: false

Fehlerbehebung​

Tipp
Aktivieren Sie während der Ersteinrichtung die Debug-Protokollierung (DKE_PKCS11_LOGGING_LEVEL=debug), um die Diagnose von Problemen zu erleichtern. Denken Sie daran, sie für den Produktivbetrieb wieder auf Info (0) oder höher zurückzusetzen.