Chiffrement et conformité

Vaks PM · Chiffrement, gestion des clés et DORA · juin 2026

Objet de ce guide. Ce document est la référence transverse expliquant comment Vaks PM protège les données par chiffrement, comment ses clés cryptographiques sont gérées, et comment ces contrôles répondent aux attentes réglementaires. Il s'adresse à un administrateur système qui découvre le produit et ne suppose aucune connaissance préalable de celui-ci. Il décrit le modèle, la politique et les concepts applicables quel que soit l'orchestrateur de conteneurs utilisé. Les étapes d'installation spécifiques à chaque orchestrateur figurent dans les guides de déploiement (déploiement Docker Swarm et déploiement Kubernetes), liées depuis chaque section concernée plutôt que répétées ici. Chaque acronyme est défini à sa première occurrence et rassemblé dans le glossaire ci-dessous.

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 :

Modèle de responsabilité partagée. Le produit fournit les contrôles ; l'opérateur configure et exploite les parties qui dépendent de l'infrastructure environnante. Concrètement :
  • 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.
Le chiffrement au niveau des champs ne protège que les secrets listés. La protection au repos de l'ensemble du jeu de données relève de la couche de chiffrement des volumes ; voir Chiffrement des volumes au repos.

Glossaire

Acronymes et termes employés tout au long de ce guide, définis ici une fois pour référence.

TermeSignification
DORADigital 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.
RGPDRèglement général sur la protection des données : règlement UE 2016/679 relatif à la protection des données personnelles.
KEKKey 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.
DEKData 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 enveloppeUn 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-GCMAdvanced 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-XTSLe 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.
KMSKey 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é.
HSMHardware 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#11Une interface de programmation standard et indépendante du fournisseur pour dialoguer avec un HSM ou une carte à puce.
LUKSLinux Unified Key Setup : le format standard Linux de chiffrement de volume entier ; la version 2 (LUKS2) est utilisée ici.
ClevisUn 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.
TangUn 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.
SSSShamir'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.
mTLSmutual TLS (TLS mutuel) : Transport Layer Security où les deux extrémités présentent un certificat et vérifient celui de l'autre.
TLSTransport Layer Security : la couche de chiffrement derrière HTTPS et derrière les connexions chiffrées entre services.
CACertificate 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.
CSRCertificate 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.
SANSubject Alternative Name (autre nom du sujet) : le champ du certificat listant les adresses IP et les noms DNS pour lesquels le certificat est valide.
ageUn 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.
RPORecovery Point Objective (objectif de point de reprise) : la quantité maximale acceptable de perte de données, mesurée en temps, après un incident.
PIIPersonally Identifiable Information (informations personnelles identifiantes) : données personnelles telles que les noms et les adresses e-mail.
LocataireUne 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é.

Qui est responsable. La conformité DORA est l'obligation de l'entité réglementée (le client). Vaks PM, en tant que fournisseur TIC, apporte les contrôles qui la rendent atteignable ; le client les exploite dans le cadre de son propre dispositif de gestion du risque TIC. Le tableau ci-dessous met en regard chaque attente DORA et le contrôle qui y répond.
Attente DORAComment 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é

« Intégré » = actif dans tout déploiement. « Activé par l'opérateur » = un contrôle que l'opérateur active/fournit depuis l'infrastructure. « KMS/HSM » = garde externe de la KEK, en option.

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éeClassificationCouche(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égrationSecretNiveau champ (enveloppe) + volume + en transit
Matériel des jetons d'APISecretStocké sous forme d'empreinte SHA-256 (jamais réversible) + volume
Mots de passe utilisateurSecretEmpreinte Argon2 (jamais réversible) + volume
Données personnelles (noms, e-mails, saisies de temps, commentaires, pièces jointes)ConfidentielVolume (au repos) + en transit ; pièces jointes dans le magasin d'objets chiffré
Données de projet / métierConfidentielVolume + en transit
Journal d'auditConfidentielVolume + en transit ; ancré en intégrité (preuve d'inviolabilité)
Le chiffrement au niveau des champs vise les secrets, pas l'ensemble du jeu de données. Seuls les éléments classés Secret sont chiffrés au niveau des champs (ou hachés à sens unique). Les données métier et personnelles ne sont délibérément pas chiffrées au niveau des champs, puisqu'elles doivent rester interrogeables et exploitables dans les rapports ; leur protection au repos provient donc entièrement du chiffrement des volumes. Les données personnelles peuvent aussi être pseudonymisées sur demande (voir RGPD).

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 :

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.

KEK clé maître · AES-256-GCM enveloppe UNE DEK PAR LOCATAIRE DEK · locataire A AES-256-GCM · 32 octets DEK · locataire B stockée enveloppée en base DEK · locataire C en clair seulement en mémoire chiffre Champs chiffrés mot de passe SMTP graine MFA · secret SSO dans la base du locataire
Chiffrement par enveloppe : la KEK (détenue hors du magasin de données) enveloppe la DEK de chaque locataire ; la DEK chiffre les champs sensibles. La rotation de la KEK ré-enveloppe les petites DEK ; le gros du texte chiffré n'est jamais touché.
Pourquoi deux couches. Changer la KEK revient à ré-envelopper une poignée de minuscules DEK. Les données ne sont jamais rechiffrées, la rotation est donc rapide et sans interruption de service. Changer une DEK (l'opération lourde qui, elle, rechiffre les données) n'est alors nécessaire que lorsqu'une DEK est réellement exposée, et n'affecte qu'un locataire à la fois. La DEK par locataire permet aussi le crypto-déchiquetage : détruire une seule DEK rend tous les secrets de ce locataire définitivement irrécupérables.

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é.

FournisseurOù réside la KEKSéparation des tâchesQuand 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é.
Séparation des tâches. Au sein d'une même application, un administrateur global peut toujours déclencher des opérations de clés ; le contrôle d'accès au niveau de l'application (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 :

  1. Configurer le nouveau fournisseur et régler CRYPTO_KEY_PROVIDER sur kms ou hsm, 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.
  2. 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.
  3. 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).
  4. 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_PROVIDER et à 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érationCe qu'elle faitCoûtQuand
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.
Ne jamais supprimer ni démonter une KEK qui enveloppe encore une DEK active. Si une KEK est retirée alors qu'une DEK est encore enveloppée par elle, cette DEK ne peut plus être déballée et tous les secrets qu'elle protège sont définitivement perdus. Cela vaut aussi pour les sauvegardes conservées : une sauvegarde de base de données ne contient que des DEK enveloppées, donc une KEK doit être conservée au moins aussi longtemps que la rétention la plus longue de toute sauvegarde réalisée pendant qu'elle était active. Vérifier via le point de terminaison d'état (ou le panneau d'administration) qu'aucune DEK et aucune sauvegarde conservée ne référence une KEK avant de la retirer.

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.

CompromissionRé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 :

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 :

Pourquoi lié au réseau. Comme la clé de déverrouillage n'est libérée que par un serveur Tang pair joignable, un disque volé à lui seul ne peut pas être déchiffré : il n'est pas sur le réseau avec ses pairs. Aucune phrase secrète statique n'est inscrite en dur dans l'hôte. Cela satisfait la protection au repos tout en gardant les redémarrages sans surveillance automatiques.
Phrase secrète de récupération. Lors de la création de chaque volume, une phrase secrète de récupération aléatoire est aussi installée (dans un emplacement de clé LUKS distinct) et écrite dans un fichier sur l'hôte. C'est le recours manuel pour le cas où aucun serveur Tang pair n'est joignable (par exemple un démarrage à froid de tout le cluster, ou un site où Tang est indisponible). Cette phrase secrète doit être exfiltrée vers un coffre hors du cluster puis supprimée de l'hôte, sinon elle se trouve à côté des données qu'elle protège. Sans elle, un volume ne peut pas être déverrouillé lorsque Tang est injoignable.

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 :

FluxProtectionCertificat
Appli ↔ PostgreSQL (et réplication entre nœuds de base de données)TLS PostgreSQLCertificat 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'orchestrateurAucun (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)

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.

Appliquer nœud par nœud. Ne jamais remplacer les certificats internes sur tous les nœuds du magasin de coordination / de la base de données en même temps. Traiter d'abord les réplicas, puis basculer le rôle de primaire vers un nœud déjà mis à jour, puis l'ancien primaire, en vérifiant la santé du cluster entre chaque étape. Repointer incorrectement l'ancre de confiance du magasin de coordination, ou appliquer partout simultanément, peut mettre le cluster de base de données hors ligne.

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 :

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 :

Une photographie de base de données est cohérente avec elle-même même en cours de rotation : les DEK active et retirée, et chaque blob de texte chiffré (portant chacun sa propre référence de DEK), résident dans la même base. Les paliers de sauvegarde, la configuration du destinataire age et la procédure de restauration figurent dans Exploitation.

Récupération de verrouillage et séquestre

Il n'existe aucune porte dérobée ; mettre en séquestre toute clé à longue durée de vie hors du cluster. Si la KEK active est perdue, les DEK enveloppées (et donc les secrets chiffrés au niveau des champs) ne peuvent pas être récupérés. De même, perdre la phrase secrète de récupération LUKS alors que Tang est injoignable, ou perdre la clé privée 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ègePourquoi 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 champsLa 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 reposLe 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 sauvegardeLes artefacts de sauvegarde chiffrésL'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 + CALa vérification interne en transitNécessaire pour rétablir un TLS interne vérifié sur un cluster reconstruit.
Reprise après sinistre : transplanter les clés, pas seulement les données. Restaurer les données métier sur un cluster neuf ne suffit pas, car les DEK restaurées référencent la KEK d'origine. Copier le matériel de la KEK d'origine (et la clé privée 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 :


À voir aussi : L'application · Architecture technique · déploiement Docker Swarm · déploiement Kubernetes · Exploitation · Démo