Coffre de clés souverain (KMS/HSM) f1c0 Décidé
Un coffre-fort à passe-plat : la clé ne sort jamais. On envoie une donnée, le coffre chiffre ou déchiffre à l'intérieur, et renvoie le résultat. Coffre retenu : OpenBao auto-hébergé — souverain, open-source, Linux Foundation.
Deux définitions à ne pas confondre.
- KMS (Key Management System) — la couche logicielle qui gère le cycle de vie des clés : création, rotation, révocation, ACL, audit. C'est l'interface. OpenBao/Vault est un KMS.
- HSM (Hardware Security Module) — le coffre physique durci : la clé ne sort jamais du boîtier, les opérations cryptographiques s'y exécutent, tamper-resistant, certifiable FIPS 140-2/3. C'est le matériel. Un HSM peut vivre derrière un KMS.
Ce que le coffre garde uniquement : les KEK managées par revendeur. Jamais les données client, ni les CMK, ni les chunks. Volume d’opérations minuscule — un wrap à l’inscription, un unwrap à la récupération.
Option HSM matériel. Quand un client exige un niveau de garantie plus élevé (certifications, obligations contractuelles), deux façons d’intégrer un HSM :
Cas A vs Cas B — où vit la protection HSM
Cas A protège la racine ; Cas B protège chaque KEK. Position du projet : OpenBao seul pour démarrer → Cas A quand une garantie matérielle/souveraine est demandée → Cas B réservé aux exigences contractuelles FIPS strictes.
KeyVault { wrap(cmk, key_id) → cmk_emballée ; unwrap(cmk_emballée, key_id) → cmk }. Derrière, on branche OpenBao (soft), OpenBao + HSM (seal Cas A), ou HSM direct PKCS#11 (Cas B) — sans toucher au code métier.
KeyVault vers sa propre instance OpenBao ou son HSM.
KEK — Key-Encryption Key, clé d'enveloppe qui emballe la CMK.
KMS — Key Management System, logiciel de gestion du cycle de vie des clés (OpenBao).
HSM — Hardware Security Module, boîtier physique durci, la clé n'en sort jamais.
PKCS#11 — API standard (C) pour piloter un HSM depuis une application.
FIPS 140-2/3 — standard américain de certification des modules cryptographiques.
Seal/Unseal — mécanisme OpenBao/Vault : le coffre démarre scellé (données illisibles), on le descelle avec la clé racine (HSM en Cas A, ou saisie manuelle).
Transit — moteur OpenBao/Vault : expose wrap/unwrap/encrypt/decrypt sans jamais sortir la clé de la mémoire du processus.
OpenBao — fork libre de HashiCorp Vault (licence MPL 2.0), gouvernance Linux Foundation, API 100 % compatible.