Chiffrement et conformité
Vue d'ensemble et responsabilité partagée
Vaks PM est une application web de gestion de projet conçue pour fonctionner entièrement sur une infrastructure contrôlée par l'organisation (on-premise : sur ses propres serveurs plutôt que sur un service en ligne tiers). Le chiffrement s'applique à quatre couches indépendantes, chacune protégeant une surface différente :
- Champs applicatifs. Un ensemble restreint de colonnes sensibles (par exemple les mots de passe de relais de messagerie, les graines d'authentification multifacteur et les identifiants d'authentification unique) sont chiffrés dans la base de données par l'application elle-même, à l'aide d'un chiffrement par enveloppe avec des clés propres à chaque locataire.
- Volumes des magasins de données. Les disques qui contiennent la base de données et le magasin d'objets sont chiffrés dans leur ensemble, de sorte que l'intégralité du jeu de données (pas seulement les quelques champs secrets) est protégée au repos.
- En transit. Le trafic est chiffré à la bordure publique (HTTPS) et sur les sauts internes entre l'application et ses dépendances.
- Sauvegardes. Les artefacts de sauvegarde sont chiffrés avant de quitter l'hôte.
- Le produit fournit, activé par défaut : le chiffrement par enveloppe des secrets au niveau des champs, la terminaison TLS à la bordure publique sur le proxy inverse, le journal d'audit en ajout seul à intégrité vérifiable, et les fonctions de protection des données (RGPD).
- Le produit fournit, en option / configurable : le TLS interne entre services, le choix du fournisseur de garde des clés (trousseau local, KMS cloud, HSM sur site), et les contrôles de rotation des clés.
- L'opérateur doit fournir depuis l'infrastructure : le chiffrement des volumes de disques de données au repos, la garde et le séquestre sécurisés des clés à longue durée de vie hors du cluster, et (sur Kubernetes) le chiffrement des secrets du magasin de données et le chiffrement du réseau des pods.
Glossaire
Acronymes et termes employés tout au long de ce guide, définis ici une fois pour référence.
| Terme | Signification |
|---|---|
| DORA | Digital Operational Resilience Act (règlement sur la résilience opérationnelle numérique) : règlement UE 2022/2554, qui impose aux entités financières réglementées de gérer leur risque lié aux technologies de l'information et de la communication (TIC), y compris le chiffrement des données au repos et en transit ainsi qu'une politique documentée de gestion des clés. |
| RGPD | Règlement général sur la protection des données : règlement UE 2016/679 relatif à la protection des données personnelles. |
| KEK | Key Encryption Key (clé de chiffrement de clés) : une clé maître dont l'unique rôle est de chiffrer (« envelopper ») d'autres clés ; elle ne touche jamais les données elles-mêmes. |
| DEK | Data Encryption Key (clé de chiffrement de données) : la clé qui chiffre effectivement les données. Vaks PM utilise une DEK par locataire. |
| Chiffrement par enveloppe | Un schéma à deux couches dans lequel une DEK chiffre les données et une KEK chiffre la DEK. Changer la KEK ré-enveloppe la petite DEK sans toucher au volume des données. |
| AES-GCM | Advanced Encryption Standard, Galois/Counter Mode : un chiffrement symétrique authentifié, employé ici en AES-256-GCM (clé de 256 bits) pour les champs et les données de clés. |
| AES-XTS | Le mode AES conçu pour le chiffrement par secteur de disque (périphérique de blocs) ; utilisé par LUKS sous la forme aes-xts-plain64 avec une clé de 512 bits. |
| KMS | Key Management Service (service de gestion des clés) : un service géré (généralement dans le cloud) qui détient les clés et réalise le chiffrement/déchiffrement sans exporter la clé. |
| HSM | Hardware Security Module (module matériel de sécurité) : un dispositif matériel inviolable qui détient les clés et réalise les opérations cryptographiques sur site. |
| PKCS#11 | Une interface de programmation standard et indépendante du fournisseur pour dialoguer avec un HSM ou une carte à puce. |
| LUKS | Linux Unified Key Setup : le format standard Linux de chiffrement de volume entier ; la version 2 (LUKS2) est utilisée ici. |
| Clevis | Un cadriciel Linux qui déverrouille automatiquement un volume chiffré au démarrage en récupérant du matériel de clé auprès d'une politique réseau, sans saisie d'une phrase secrète par un humain. |
| Tang | Un petit serveur réseau sans état qui participe au « chiffrement de disque lié au réseau » de Clevis : un volume ne peut se déverrouiller que tant qu'il peut joindre le ou les serveurs Tang. |
| SSS | Shamir's Secret Sharing (partage de secret de Shamir) : un schéma qui découpe un secret en parts de telle sorte qu'un nombre seuil quelconque d'entre elles le reconstitue. Clevis l'utilise pour exiger, par exemple, 1 serveur Tang joignable sur N. |
| mTLS | mutual TLS (TLS mutuel) : Transport Layer Security où les deux extrémités présentent un certificat et vérifient celui de l'autre. |
| TLS | Transport Layer Security : la couche de chiffrement derrière HTTPS et derrière les connexions chiffrées entre services. |
| CA | Certificate Authority (autorité de certification) : l'entité qui émet et signe les certificats X.509 ; son certificat est l'ancre de confiance utilisée pour vérifier les pairs. |
| CSR | Certificate Signing Request (demande de signature de certificat) : un fichier contenant une clé publique et des attributs demandés, soumis à une CA pour être signé en certificat. |
| SAN | Subject Alternative Name (autre nom du sujet) : le champ du certificat listant les adresses IP et les noms DNS pour lesquels le certificat est valide. |
| age | Un outil moderne de chiffrement de fichiers à clés asymétriques : une clé publique de « destinataire » chiffre, une clé privée correspondante déchiffre. Utilisé pour les artefacts de sauvegarde. |
| RPO | Recovery Point Objective (objectif de point de reprise) : la quantité maximale acceptable de perte de données, mesurée en temps, après un incident. |
| PII | Personally Identifiable Information (informations personnelles identifiantes) : données personnelles telles que les noms et les adresses e-mail. |
| Locataire | Une organisation isolée desservie par l'instance. Chaque locataire dispose de sa propre base de données et de sa propre DEK. |
Correspondance des contrôles DORA
DORA (le Digital Operational Resilience Act, règlement UE 2022/2554) et ses normes techniques d'accompagnement sont fondés sur le risque plutôt que prescriptifs d'un produit particulier. Ils exigent le chiffrement des données au repos et en transit proportionné à la classification des données, ainsi qu'une politique de gestion des clés couvrant le cycle de vie des clés, la rotation et la séparation des tâches. Un HSM ou un KMS tiers n'est pas obligatoire pour la conformité.
| Attente DORA | Comment Vaks PM y répond | État |
|---|---|---|
| Chiffrement des données au repos : secrets applicatifs | Chiffrement par enveloppe AES-256-GCM : une DEK par locataire chiffre les champs sensibles et est elle-même enveloppée par une KEK. Une seule jointure de code dans l'application. | Intégré |
| Chiffrement des données au repos : l'ensemble du magasin de données | Volumes LUKS2 (aes-xts-plain64, 512 bits) pour la base de données et le magasin d'objets, avec libération de clé liée au réseau (Clevis + Tang). Sur Kubernetes : une StorageClass chiffrée déléguée à la plateforme. |
Activé par l'opérateur |
| Chiffrement en transit : externe | TLS sur le proxy inverse pour tout le trafic client (HTTPS). | Intégré |
| Chiffrement en transit : interne | TLS appli↔base de données ; TLS mutuel pour le magasin de coordination ; réseau overlay/pod chiffré couvrant le cache, le magasin d'objets et le HTTP interne. | Activé par l'opérateur |
| Gestion des clés : cycle de vie et rotation | Trousseau de clés KEK versionné ; ré-enveloppe paresseuse de la KEK et rotation déclenchée par un administrateur ; la rotation de DEK rechiffre toutes les colonnes sensibles. Voir rotation et la procédure. | Intégré |
| Gestion des clés : séparation des tâches | La permission crypto:manage conditionne toutes les opérations de clés et chaque opération est auditée. Une garde stricte (la KEK détenue hors de l'application) est disponible en déplaçant la KEK vers un KMS cloud ou un HSM sur site (PKCS#11) ; voir Fournisseurs de garde des clés. |
Contrôle + KMS/HSM |
| Sauvegardes chiffrées | Les artefacts de sauvegarde sont chiffrés avec age (asymétrique) à la création ; l'hôte ne détient que le destinataire public. |
Activé par l'opérateur |
| Intégrité / preuve d'inviolabilité des journaux | Journal d'audit en ajout seul avec une ancre d'intégrité chaînée quotidienne et un point de terminaison de vérification. | Intégré |
Classification des données et couches de chiffrement
Toutes les données ne sont pas protégées de la même façon. L'application chiffre un petit ensemble de secrets au niveau des champs ; le gros des données (données métier et données personnelles) repose sur le chiffrement des volumes et du transit, car il doit rester interrogeable. Le tableau ci-dessous indique quelle donnée se situe à quelle classification et quelle couche la protège.
| Donnée | Classification | Couche(s) |
|---|---|---|
| Graines d'authentification multifacteur (TOTP), mot de passe de relais de messagerie (SMTP), secrets clients d'authentification unique (OIDC/SAML), secrets de connecteur de ticketing externe, secrets de provisionnement d'intégration | Secret | Niveau champ (enveloppe) + volume + en transit |
| Matériel des jetons d'API | Secret | Stocké sous forme d'empreinte SHA-256 (jamais réversible) + volume |
| Mots de passe utilisateur | Secret | Empreinte Argon2 (jamais réversible) + volume |
| Données personnelles (noms, e-mails, saisies de temps, commentaires, pièces jointes) | Confidentiel | Volume (au repos) + en transit ; pièces jointes dans le magasin d'objets chiffré |
| Données de projet / métier | Confidentiel | Volume + en transit |
| Journal d'audit | Confidentiel | Volume + en transit ; ancré en intégrité (preuve d'inviolabilité) |
Chiffrement par enveloppe (KEK → DEK → données)
L'application chiffre ses champs sensibles par chiffrement par enveloppe, un schéma de clés à deux couches :
- Une DEK (clé de chiffrement de données), AES-256-GCM, 32 octets, chiffre les champs réels. Il y a une DEK par locataire ; tous les secrets de ce locataire sont chiffrés sous sa DEK unique. La DEK n'est stockée dans la base de données du locataire que sous forme enveloppée (chiffrée), jamais en clair.
- Une KEK (clé de chiffrement de clés), AES-256-GCM, 32 octets, chiffre (« enveloppe ») la DEK. La KEK ne touche jamais les données elles-mêmes ; son unique rôle est de verrouiller et déverrouiller des DEK. Elle réside hors de la base de données, sous forme de fichier de clé monté ou dans un KMS/HSM externe.
Pour lire un secret, l'application déballe la DEK du locataire avec la KEK, puis déchiffre le champ avec la DEK. Pour en écrire un, elle fait l'inverse. Le schéma montre la relation.
Le détail opérationnel pas à pas du trousseau de clés local (générer et activer une KEK, le matériel de clé monté et la rotation) figure dans les guides de déploiement : Docker Swarm et Kubernetes.
Fournisseurs de garde des clés
La KEK est fournie par un fournisseur de clé, sélectionné par le paramètre CRYPTO_KEY_PROVIDER. Trois fournisseurs existent ; chaque clé stockée enregistre quel fournisseur l'a enveloppée, de sorte que les fournisseurs peuvent coexister pendant une migration. Le fournisseur par défaut, le trousseau de clés local, est pleinement conforme à DORA à lui seul ; les fournisseurs externes ajoutent une séparation des tâches stricte, dans laquelle aucun administrateur d'application ne peut exporter la clé.
| Fournisseur | Où réside la KEK | Séparation des tâches | Quand l'utiliser |
|---|---|---|---|
| Trousseau de clés local défaut | Un fichier de clé monté sur les hôtes (kek_v<N>, base64, 32 octets), livré sous forme de secret Docker (Swarm) ou de Secret Kubernetes. |
Souple : conditionnée par crypto:manage et auditée ; un administrateur global peut toujours atteindre les opérations de clés. |
Le choix par défaut. Aucune dépendance externe ; pleinement conforme. |
| KMS cloud | Un service de clés cloud géré (AWS KMS / GCP KMS / Azure Key Vault ou compatible). La KEK ne quitte jamais le KMS ; chaque enveloppement/déballage est réalisé par le service. | Stricte : l'application ne peut pas exporter la clé. | Le déploiement s'exécute dans un cloud, ou à côté, doté d'un KMS géré. |
| HSM sur site | Un dispositif matériel PKCS#11, atteint via un sidecar de courtier de clés interne qui détient le code PIN du HSM. La KEK est une clé matérielle non extractible. | Stricte : la clé est matérielle et non extractible. | Le cahier des charges exige une garde matérielle des clés, ou un HSM est déjà exploité. |
crypto:manage) est donc un point de contrôle, pas une séparation de garde stricte. La séparation stricte, où le gardien détient la KEK hors de l'application et où elle ne peut plus être exportée, consiste à déplacer la KEK vers un KMS cloud ou un HSM sur site. Changer de fournisseur est une ré-enveloppe en ligne : aucune donnée n'est rechiffrée.
Les variables de configuration du fournisseur (CRYPTO_KMS_*, CRYPTO_HSM_*), le sidecar de courtier de clés HSM et le placement de ces paramètres par orchestrateur sont configurés dans les guides de déploiement : Kubernetes et Docker Swarm.
Migrer la garde
Comme chaque clé stockée enregistre le fournisseur qui l'a enveloppée, une migration entre fournisseurs est en ligne et réversible : pas d'interruption, pas de rechiffrement des données. Le canevas :
- Configurer le nouveau fournisseur et régler
CRYPTO_KEY_PROVIDERsurkmsouhsm, puis redéployer les services. Les nouvelles DEK sont désormais enveloppées par le nouveau fournisseur ; les DEK existantes se déballent toujours via leur fournisseur actuel, un mélange est donc attendu et correct. - Dans Admin → Sécurité et conformité → Clés de chiffrement, cliquer sur Rotation KEK. Chaque DEK est déballée avec son fournisseur actuel et ré-enveloppée sous le nouveau. Répéter par locataire.
- Surveiller la distribution des clés de données jusqu'à ce que chaque clé affiche le schéma du nouveau fournisseur, puis effectuer un contrôle de déchiffrement (se connecter, ou ouvrir une page de paramètres qui lit une valeur chiffrée).
- Réversible : conserver disponible le matériel de clé du fournisseur précédent jusqu'à vérification. Le retour arrière consiste à remettre
CRYPTO_KEY_PROVIDERet à relancer Rotation KEK.
Rotation des clés
Deux rotations distinctes existent, aux coûts très différents. Les deux sont pilotées depuis Admin → Sécurité et conformité → Clés de chiffrement et requièrent la permission crypto:manage ; les deux sont consignées dans le journal d'audit.
| Opération | Ce qu'elle fait | Coût | Quand |
|---|---|---|---|
| Rotation KEK (ré-enveloppe paresseuse) | Prépare une nouvelle version de KEK, l'active, et ré-enveloppe chaque DEK par locataire sous elle. La DEK est inchangée ; aucune donnée de champ n'est rechiffrée. | Rapide, sans interruption : seules les minuscules DEK sont touchées. | Selon un calendrier (annuellement est un défaut raisonnable) ou immédiatement en cas de compromission présumée de la KEK. |
| Rotation DEK (rechiffrement) | Crée une nouvelle DEK active pour le locataire et rechiffre chaque colonne sensible sous elle, puis retire l'ancienne DEK. L'opération est reprenable : si elle est interrompue, la relancer achève la migration. | Plus lourde ; touche tous les champs chiffrés du locataire. | En cas d'exposition présumée d'une clé de données, ou selon la politique. |
Procédure de rotation et d'incident
La réponse à une compromission présumée de clé dépend de la clé concernée. Consigner chaque incident ; le journal d'audit atteste de chaque opération de clé avec l'acteur, l'heure et le résultat.
| Compromission | Réponse |
|---|---|
| KEK exposée | Effectuer la rotation de la KEK immédiatement (ré-enveloppe), puis effectuer la rotation des DEK afin que le nouveau matériel de clé soit indépendant de la KEK exposée. Ne pas supprimer l'ancienne KEK tant que toute sauvegarde antérieure à la rotation n'a pas expiré. |
| DEK exposée | Effectuer la rotation de la DEK du locataire concerné (rechiffrement). La DEK précédente est retirée et purgée une fois le rechiffrement terminé sans aucun échec. |
| Secret TLS / JWT exposé | Effectuer la rotation du secret. La rotation du secret de signature de session (JWT) invalide les sessions en cours, les utilisateurs doivent donc se réauthentifier. Pour le TLS interne, révoquer le certificat à la CA, en émettre un nouveau et réappliquer la procédure TLS. |
Clé age de sauvegarde exposée |
Générer une nouvelle paire de clés age ; les sauvegardes suivantes utilisent le nouveau destinataire. Les artefacts plus anciens restent chiffrés pour l'ancienne clé, les détruire donc selon la rétention. |
Chiffrement des volumes au repos
Le chiffrement au niveau des champs ne protège que les secrets. Pour protéger l'intégralité du jeu de données sur disque (les fichiers de la base de données et les fichiers du magasin d'objets), les volumes de données eux-mêmes sont chiffrés. C'est la couche fournie par l'opérateur ; l'approche diffère selon l'orchestrateur.
Docker Swarm : LUKS2 avec déverrouillage lié au réseau (Clevis + Tang)
Sur la topologie Swarm autogérée, l'amorçage provisionne des volumes LUKS2 adossés à des fichiers pour les magasins de données. Deux volumes sont créés :
- le volume de données de la base de données, monté là où PostgreSQL conserve ses données (de sorte qu'il est chiffré avant que la base ne s'y initialise) ;
- le volume du magasin d'objets, monté là où le serveur S3 conserve ses objets.
Chaque volume est formaté avec le chiffrement aes-xts-plain64 et une clé de 512 bits. Seuls les volumes de données sont chiffrés, pas le disque système de l'hôte ni les autres charges de travail.
La difficulté du chiffrement au repos est de déverrouiller le volume au démarrage sans qu'un humain saisisse une phrase secrète. Vaks PM résout cela par le chiffrement de disque lié au réseau à l'aide de Clevis et de Tang :
- Un serveur Tang est un tout petit serveur de clés réseau sans état (il ne détient aucun secret propre à un client). Sur chaque hôte, il écoute sur un port de réseau interne ; les volumes d'un hôte sont liés aux serveurs Tang s'exécutant sur ses hôtes pairs (jamais lui-même).
- Clevis lie le volume LUKS à une politique. La politique utilise le partage de secret de Shamir (SSS) avec un seuil de 1 réparti sur les serveurs Tang pairs : le volume se déverrouille automatiquement tant qu'au moins un serveur Tang pair est joignable.
- Au démarrage, un petit assistant de déverrouillage et de montage s'exécute avant la base de données (et avant Docker pour le magasin d'objets), attend un serveur Tang pair, déverrouille le volume via Clevis et le monte. Les services applicatifs démarrent ensuite sur un volume déjà monté et déchiffré.
Les commandes d'amorçage exactes (installation de Tang, construction de la politique SSS de Clevis, formatage et liaison de chaque volume, et l'ordonnancement par rapport au démarrage de la base de données) figurent dans déploiement Docker Swarm. Cette section décrit ce que font ces étapes et la politique sous-jacente.
Kubernetes : StorageClass chiffrée
Sur Kubernetes, l'équivalent est une StorageClass chiffrée, déléguée à la plateforme : les volumes persistants de la base de données, du cache et du magasin d'objets sont provisionnés à partir d'une classe adossée au stockage par blocs à clés gérées du fournisseur cloud, à un pilote Container Storage Interface (CSI) avec chiffrement, ou à des nœuds dotés de disques chiffrés. Lorsque les dépendances sont externes/gérées (par exemple un service de base de données géré), utiliser le chiffrement au repos propre à ce fournisseur. C'est un choix au moment de l'installation : le modifier sur un cluster en service implique de migrer les données des volumes. Voir déploiement Kubernetes et le détail de la couche de chiffrement qu'il lie.
TLS interne et autorité de certification dédiée
Le chiffrement couvre la bordure publique (HTTPS sur le proxy inverse) ainsi que le trafic interne du produit. Trois flux internes sont chiffrés :
| Flux | Protection | Certificat |
|---|---|---|
| Appli ↔ PostgreSQL (et réplication entre nœuds de base de données) | TLS PostgreSQL | Certificat serveur |
| Magasin de coordination du cluster (consensus + accès au gestionnaire de bascule) | TLS mutuel (mTLS) | Certificat serveur + client |
| Réseau overlay de conteneurs / réseau de pods (cache, magasin d'objets, HTTP interne) | Chiffrement à clé symétrique géré par l'orchestrateur | Aucun (pas de certificat) |
Une installation neuve exécute le TLS interne d'emblée avec des certificats auto-signés : le trafic est chiffré, mais l'identité du pair n'est pas vérifiée. Les remplacer par des certificats émis par la CA (autorité de certification) propre à l'organisation ajoute la vérification d'identité, qui protège contre un attaquant actif de type homme du milieu.
Spécification du certificat (les points clés)
- Un seul certificat partagé peut couvrir les composants internes, son SAN (autre nom du sujet) listant toutes les adresses IP des hôtes (Swarm) ou le nom de service de la base de données (Kubernetes), plus
127.0.0.1/localhost. L'ancien champ Common Name n'est plus honoré, renseigner le SAN est donc obligatoire. - Le Extended Key Usage doit être à la fois
serverAuthetclientAuth. Le magasin de coordination utilise le mTLS (chaque nœud est à la fois serveur, puisqu'il écoute, et client, puisqu'il appelle ses pairs), donc un certificat serveur seul est rejeté. C'est l'erreur la plus fréquente : les CA d'entreprise émettent souvent des certificats serveur seuls. - Type de clé RSA ≥ 2048 bits ou ECDSA P-256 ; signature SHA-256 minimum ; validité selon la politique de la CA (prévoir la rotation avant expiration).
Du CSR au déploiement
Produire un CSR (demande de signature de certificat) portant le SAN et le double EKU, le faire signer par la CA interne (en exigeant qu'elle préserve le SAN et l'EKU et qu'elle retourne la chaîne), et déployer trois fichiers PEM : le certificat feuille, sa clé privée (non chiffrée, permissions 600, possédée par l'utilisateur du service), et le certificat de la CA utilisé comme ancre de confiance. Sur Swarm, les fichiers sont placés sur chaque hôte sous /etc/vaks/ et les ancres de confiance sont repointées vers la CA un nœud à la fois, pour préserver la disponibilité. Sur Kubernetes, le certificat est fourni sous forme de Secret (ou émis par cert-manager) et l'application vérifie la base de données avec PG_TLS / PG_TLS_CA / PG_TLS_MODE.
Le placement des fichiers par orchestrateur, la fourniture d'une autorité de certification dédiée et les commandes de vérification sont traités dans les guides de déploiement : Docker Swarm et Kubernetes.
RGPD : effacement et portabilité
Le chiffrement protège la confidentialité des données ; le RGPD (le règlement général de l'UE sur la protection des données) régit la manière dont les données personnelles sont traitées. Vaks PM met en œuvre deux droits pertinents des personnes concernées sous forme de fonctions produit :
- Droit à l'effacement (Art. 17) par pseudonymisation. Supprimer les enregistrements d'une personne romprait les agrégats de temps, de finance et d'audit qui les référencent ; à la place, le produit écrase les données personnelles (le nom, l'e-mail et les autres identifiants sont remplacés par un pseudonyme non identifiant) tout en conservant intactes les clés étrangères. Les PII disparaissent ; les agrégats historiques survivent et l'intégrité du journal d'audit n'est pas affectée. L'opération est idempotente et auditée.
- Droit à la portabilité des données (Art. 20) par auto-export. Un utilisateur peut exporter ses propres données (profil, saisies de temps, allocations, commentaires, compétences et métadonnées de pièces jointes) sous forme de fichier structuré ; les secrets sont exclus. Un administrateur peut effectuer l'export pour le compte d'un utilisateur.
Ces fonctions et leur administration sont décrites dans le guide du produit : voir Produit : RGPD (anonymisation et portabilité).
Sauvegardes chiffrées
Les artefacts de sauvegarde sont chiffrés à la création avec age, un schéma asymétrique (à clé publique) : une clé de destinataire public se trouve sur l'hôte et scelle chaque artefact, tandis que la clé privée correspondante est conservée en séquestre hors du cluster. L'hôte peut donc créer des sauvegardes chiffrées mais ne peut pas, à lui seul, les déchiffrer.
Comme la KEK réside hors de la base de données, une sauvegarde de base de données ne contient que les DEK par locataire enveloppées plus du texte chiffré. La restaurer ne fonctionne que si le trousseau détient toujours la KEK qui a enveloppé ces DEK. Deux règles de coordination en découlent :
- Sauvegarder le matériel de clé séparément de la base de données (le matériel de la KEK et la clé privée
agede sauvegarde), avec une rétention au moins aussi longue que les sauvegardes de base de données qui les référencent. Une sauvegarde de base de données seule ne peut pas être déchiffrée sans ses clés. - Photographier un inventaire des clés aux côtés de chaque jeu de sauvegarde. Consigner sous quelle KEK les DEK ont été enveloppées et pour quel destinataire
ageles artefacts ont été scellés, afin qu'un futur opérateur sache exactement quelles clés une sauvegarde donnée requiert.
age et la procédure de restauration figurent dans Exploitation.
Récupération de verrouillage et séquestre
age de sauvegarde, rend les données correspondantes irrécupérables. C'est voulu par conception. La parade est le séquestre : conserver une copie de chaque clé à longue durée de vie dans un coffre hors du cluster, à accès audité et à rétention ≥ la donnée qu'elle protège.
L'inventaire de séquestre que tout opérateur doit maintenir hors du cluster :
| Clé | Protège | Pourquoi elle doit être mise en séquestre |
|---|---|---|
Matériel de la KEK (chaque kek_v<N> encore référencé, plus l'ancienne clé maître) | Les DEK enveloppées → tous les secrets chiffrés au niveau des champs | La KEK réside hors de la base de données ; une sauvegarde de base de données ne peut pas être déchiffrée sans elle. Un cluster de reprise après sinistre reconstruit de zéro génère des secrets neufs, donc la KEK d'origine doit être transplantée sur le site de reprise. |
| Phrase secrète de récupération LUKS (par volume de données) | Les volumes de données au repos | Le seul moyen de déverrouiller un volume lorsqu'aucun serveur Tang pair n'est joignable (démarrage à froid / panne de Tang). |
Clé privée age de sauvegarde | Les artefacts de sauvegarde chiffrés | L'hôte ne détient que le destinataire public ; sans la clé privée, les sauvegardes ne peuvent pas être déchiffrées au moment de la restauration. |
| Clé privée TLS interne + CA | La vérification interne en transit | Nécessaire pour rétablir un TLS interne vérifié sur un cluster reconstruit. |
age) sur le site de reprise avant de déclarer la restauration terminée ; sinon les données métier sont restaurées mais les secrets chiffrés (MFA, SMTP, SSO) sont irrécupérables. Répéter une restauration complète de reprise après sinistre sur un site de test au moins une fois par an.
Liste de vérification
Confirmer que chaque couche est active avant de s'y fier :
- Chiffrement au niveau des champs.
GET /admin/crypto/status(ou le panneau d'administration) retourne le fournisseur de KEK actif, la KEK active et la distribution des DEK par KEK. Après une rotation, confirmer que chaque DEK référence la KEK voulue. Le journal de démarrage de l'application liste aussi le trousseau de clés chargé et la clé active. - Contrôle de déchiffrement. Se connecter, ou ouvrir une page de paramètres d'administration qui lit une valeur chiffrée (par exemple les paramètres de notification / SMTP), pour confirmer que les secrets se déchiffrent de bout en bout.
- Chiffrement des volumes (Swarm). Les volumes de données apparaissent comme des périphériques mappés par LUKS et se déverrouillent automatiquement au démarrage via Clevis/Tang ; confirmer que l'unité de déverrouillage et de montage s'est exécutée avant le démarrage de la base de données.
- Chiffrement des volumes (Kubernetes). Les volumes persistants sont liés à une
StorageClasschiffrée ; confirmer la classe employée. - TLS de bordure externe. Le nom d'hôte de l'organisation se charge en HTTPS avec un certificat valide.
- TLS interne. La base de données rapporte
ssl onet affiche des connexions chiffrées ; le magasin de coordination se rapporte en bonne santé ; avec une CA dédiée,openssl verifycontre la base de données retourne le code 0. - Sauvegardes. Les artefacts de sauvegarde sont chiffrés pour le destinataire
ageconfiguré et expédiés hors du cluster ; un exercice de restauration réussit contre les clés mises en séquestre. - Intégrité d'audit. L'ancre d'intégrité quotidienne se vérifie ; le point de terminaison de vérification ne rapporte aucune altération.