Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

Choix souverain — OpenBao Projet souverain : pas d'AWS KMS / Google Cloud KMS / Azure Key Vault — ces services sont chez des tiers qui peuvent couper l'accès. Coffre retenu : OpenBao (fork libre de HashiCorp Vault après changement de licence, gouvernance Linux Foundation), auto-hébergé, moteur Transit (chiffre/déchiffre sans jamais exposer la clé). Alternative : HashiCorp Vault (même API, licence BSL — à évaluer selon posture juridique).

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 — HSM PROTÈGE LA RACINE (SEAL) HSM clé racine de descellement descelle au boot OpenBao / Vault gère KEK · ACL · audit · rotation wrap/unwrap KEK KEK managée (par revendeur) CMK client (emballée) ✓ HSM sollicité au démarrage seulement ✓ débit élevé, usage normal indépendant △ KEK transitent en RAM quand Vault est descellé CAS B — HSM EN DIRECT (PKCS#11) HSM (Thales Luna, Utimaco…) PKCS#11 · FIPS 140-2/3 KEK managée (par revendeur) vit dans le HSM · ne sort jamais wrap/unwrap via PKCS#11 chaque opération dans le boîtier CMK client (emballée) ✓ KEK ne transitent jamais en RAM ✓ FIPS de bout en bout · garantie maximale △ plus lent · plus cher · HSM dans le chemin critique △ fragile : panne HSM = service indisponible

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.

Intégration — abstraction KeyVault Le code métier ne connaît jamais « OpenBao » directement. Il passe par un contrat unique : 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.
Isolation par revendeur Chaque revendeur dispose de son propre espace de clés cloisonné dans OpenBao (namespaces + ACL). La KEK du revendeur A ne peut pas déballer les CMK des clients du revendeur B. L'éditeur héberge le coffre mais n'a pas le droit ACL de déclencher un unwrap sur l'espace d'un revendeur — il reste aveugle tout en fournissant le service. Un revendeur qui veut son propre coffre peut pointer son implémentation KeyVault vers sa propre instance OpenBao ou son HSM.
Glossaire CMK — Client Master Key, clé maître du client final, chiffre ses manifestes.
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.