Aller au contenu principal

setup

S'applique à :
OpenBaoDescellement automatique PKCS#11DuoKey CockpitSoftware Vault / Primus HSM

Prérequis​

Prérequis

  • OpenBao installé et prêt à être configuré
  • Compte DuoKey Cockpit avec une application KMS créée
  • Bibliothèque PKCS#11 de DuoKey (libdke_pkcs11.so) compilée et installée
  • Clé AES ou RSA précréée dans le coffre Cockpit
  • Connectivité réseau du serveur OpenBao vers l'API DuoKey Cockpit (HTTPS/443)
Important
La clé de chiffrement utilisée pour le descellement automatique doit être créée avant la configuration d'OpenBao. Comme indiqué dans la documentation d'OpenBao, la clé doit exister avant l'initialisation.

Étapes de configuration​

Créer une application KMS dans DuoKey Cockpit

Créer une application KMS dans DuoKey Cockpit avec le backend de coffre souhaité (Software Vault ou Primus HSM)

Créer la clé de chiffrement

Créer la clé AES ou RSA dans le coffre Cockpit qu'OpenBao utilisera pour le scellement/descellement

Installer la bibliothèque PKCS#11

Copier le fichier compilé libdke_pkcs11.so vers un chemin connu, par exemple /usr/local/lib/pkcs11/

Configurer les variables d'environnement

Définir les variables d'environnement de la bibliothèque PKCS#11 pour l'accès à Cockpit

Configurer la strophe seal d'OpenBao

Ajouter la configuration seal PKCS#11 à votre fichier de configuration OpenBao

Initialiser ou redémarrer OpenBao

Initialiser OpenBao (première fois) ou le redémarrer pour utiliser le descellement automatique

Variables d'environnement​

Définissez les variables d'environnement requises pour la bibliothèque PKCS#11 avant de démarrer OpenBao. Elles peuvent être placées dans un fichier de configuration sourcé par le service OpenBao.

/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
Astuce
Pour les déploiements basés sur systemd, vous pouvez ajouter ces variables au fichier d'environnement du service OpenBao (par exemple /etc/openbao.d/openbao.env).

Configuration du scellement d'OpenBao​

Ajoutez une strophe seal "pkcs11" à votre fichier de configuration OpenBao (par exemple /etc/openbao.d/openbao.hcl).

Configuration de clé AES​

seal "pkcs11" {
lib = "/usr/local/lib/pkcs11/libdke_pkcs11.so"
slot = "0"
pin = "1234"
key_label = "bao-root-key-aes-256"
mechanism = "0x00001087"
}
ParamètreDescription
libChemin vers la bibliothèque partagée PKCS#11 de DuoKey
slotID de l'emplacement (slot) — défini sur "0"
pinPeut être n'importe quelle valeur (non validée actuellement par la bibliothèque)
key_labelÉtiquette de la clé AES créée dans DuoKey Cockpit
mechanism0x00001087 = CKM_AES_GCM

Configuration de clé RSA​

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"
}
ParamètreDescription
libChemin vers la bibliothèque partagée PKCS#11 de DuoKey
slotID de l'emplacement (slot) — défini sur "0"
pinPeut être n'importe quelle valeur (non validée actuellement par la bibliothèque)
key_labelÉtiquette de la clé RSA créée dans DuoKey Cockpit
mechanism0x00000009 = CKM_RSA_PKCS_OAEP
rsa_oaep_hashAlgorithme de hachage pour RSA-OAEP — utiliser "sha256"
Remarque
La valeur slot est l'ID de l'emplacement et peut être définie sur "0". Le pin peut être n'importe quelle valeur car il n'est pas validé actuellement par la bibliothèque.

Compatibilité des backends​

BackendAES (CKM_AES_GCM)RSA (CKM_RSA_PKCS_OAEP)
Software VaultTesté avec succèsTesté avec succès
Primus HSMNon pris en charge — Primus n'accepte pas l'IV en entrée et génère le sien, ce qui est incompatible avec les exigences de scellement AES-GCMTesté avec succès
Attention
Lors de l'utilisation de Primus HSM comme backend, seules les clés RSA peuvent être utilisées pour le descellement automatique. Le scellement basé sur AES ne fonctionne pas car Primus génère son propre IV au lieu d'accepter celui fourni par la bibliothèque.

Vérification​

Après avoir configuré OpenBao, vérifiez que le descellement automatique fonctionne :

# Start or restart OpenBao
sudo systemctl restart openbao

# Check the seal status
bao status

Si le descellement automatique est correctement configuré, le coffre devrait se signaler comme descellé automatiquement après le démarrage.

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

Résolution des problèmes​

Astuce
Activez la journalisation de débogage (DKE_PKCS11_LOGGING_LEVEL=debug) lors de la configuration initiale pour aider à diagnostiquer les problèmes éventuels. Pensez à la remettre sur Info (0) ou supérieur pour un usage en production.