setup
Installation et configuration d'OpenBao
Guide étape par étape pour configurer le descellement automatique d'OpenBao avec la bibliothèque PKCS#11 de DuoKey
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ètre | Description |
|---|---|
| lib | Chemin vers la bibliothèque partagée PKCS#11 de DuoKey |
| slot | ID de l'emplacement (slot) — défini sur "0" |
| pin | Peut ê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 |
| mechanism | 0x00001087 = 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ètre | Description |
|---|---|
| lib | Chemin vers la bibliothèque partagée PKCS#11 de DuoKey |
| slot | ID de l'emplacement (slot) — défini sur "0" |
| pin | Peut ê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 |
| mechanism | 0x00000009 = CKM_RSA_PKCS_OAEP |
| rsa_oaep_hash | Algorithme 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
| Backend | AES (CKM_AES_GCM) | RSA (CKM_RSA_PKCS_OAEP) |
|---|---|---|
| Software Vault | Testé avec succès | Testé avec succès |
| Primus HSM | Non 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-GCM | Testé 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.