MAISON CODE .
/ Tech · Security · Encryption · Cryptography · GDPR

Cryptage des données : la confidentialité par les mathématiques

HTTPS ne suffit pas. Vous avez besoin du chiffrement au repos et du chiffrement au niveau de l’application pour véritablement protéger les informations personnelles. Comprendre AES, RSA et KMS.

AB
Alex B.
Cryptage des données : la confidentialité par les mathématiques

L’illusion de la sécurité

“Nous vérifions SSL.” Super. Vos données sont en sécurité pendant leur transit sur le câble à fibre optique (cryptage en transit). Mais où atterrit-il ? Il atterrit dans une base de données. La base de données est-elle cryptée ? Si un pirate informatique accède au disque « user.db », peut-il le lire ? Si l’administrateur système sauvegarde la base de données dans un fichier CSV, est-elle lisible ? Si la réponse est Oui, vous n’êtes pas en sécurité. Le cryptage au repos garantit que les données stockées sont essentiellement du bruit aléatoire sans la clé.

Pourquoi Maison Code en parle

Chez Maison Code, nous traitons les données des utilisateurs qui sont soumises à une réglementation stricte (RGPD, CCPA, HIPAA). Dossiers médicaux. Adresses personnelles. Une brèche ici n’est pas seulement un embarras ; c’est un procès. Nous mettons en œuvre des architectures Zero Trust. Nous supposons que la base de données sera divulguée. En cas de fuite, nous voulons que les données soient inutiles pour l’attaquant. Nous en parlons parce que la cryptographie est une ingénierie valable, pas de la magie.

Les 3 états des données

  1. En transit : déplacement sur le réseau.
    • Solution : TLS 1.3 (HTTPS). Gestionnaire de certificats AWS.
  2. Au repos : Assis sur un disque (disque dur S3, RDS).
    • Solution : chiffrement de volume AES-256. (AWS KMS).
    • Ceci est transparent. Le système d’exploitation crypte les écritures et déchiffre les lectures. Si quelqu’un vole le disque dur physique, il ne pourra pas le lire. Mais s’ils se connectent à la base de données en tant qu’administrateur, ils peuvent la lire.
  3. En cours d’utilisation (niveau application) : Logique dans la RAM.
    • La partie la plus difficile.
    • Protection des données même depuis l’administrateur de la base de données.
    • Solution : chiffrement côté client. L’application crypte le numéro de carte de crédit avant de l’envoyer à la base de données. La base de données ne voit que les déchets.

KMS (systèmes de gestion de clés)

Règle n°1 de Crypto : Ne créez pas votre propre crypto. Règle n°2 : Ne rangez pas la clé à côté de la serrure. Si vous chiffrez la base de données mais stockez la clé de chiffrement dans « config.js » dans le même dépôt… vous n’avez rien obtenu. Utilisez un KMS (AWS KMS, HashiCorp Vault). Le module de sécurité matérielle (HSM) génère la clé et ne la laisse jamais quitter le matériel. Votre application demande à KMS de « Décrypter ceci ». KMS valide l’autorisation et renvoie le texte brut. Vous pouvez vérifier exactement qui a décrypté quoi et quand.

Hachage ou chiffrement

Le cryptage est réversible (avec une clé). Utilisez-le pour : les adresses, les cartes de crédit (si vous les manipulez), les informations personnelles. Le hachage est à sens unique (irréversible). Utilisez-le pour : Mots de passe. Ne cryptez jamais les mots de passe. Hachez-les en utilisant Argon2 ou bcrypt. Si vous les chiffrez et que la clé est volée, tous les mots de passe sont compromis. Si vous les hachez (salés), l’attaquant doit les casser un par un.

Implémentation du chiffrement au niveau de l’application

Utilisation du module crypto de Node.js.

importer la crypto depuis « crypto » ;

const ALGORITHME = 'aes-256-gcm'; // Chiffrement authentifié

fonction chiffrer (texte, masterKey) {
  const iv = crypto.randomBytes(16); // Vecteur d'initialisation (aléatoire !)
  const cipher = crypto.createCipheriv(ALGORITHME, masterKey, iv);
  
  laissez chiffré = cipher.update(text, 'utf8', 'hex');
  chiffré += cipher.final('hex');
  const tag = cipher.getAuthTag();
  
  // Stockez IV et Tag avec le texte chiffré !
  retourner {
    contenu : crypté,
    iv : iv.toString('hex'),
    balise : tag.toString('hex')
  } ;
}

Rotation des clés : Chaque année, générez un nouveau passe-partout. Chiffrez à nouveau les données. Cela limite le « rayon de souffle ». Si la clé 2024 est volée, les données 2025 sont en sécurité.

7. Chiffrement des enveloppes : le Saint Graal

Si vous disposez d’un milliard de lignes, vous ne pouvez pas toutes les chiffrer avec la même clé principale. Si cette clé fuit, tout fuit. Solution : cryptage d’enveloppe.

  1. Clé principale (CMK) : réside dans KMS (HSM). Ne part jamais.
  2. Clé de données (DK) : générée pour chaque utilisateur. Chiffré par CMK.
  3. Données : cryptées par DK. Lorsque vous souhaitez lire les données de l’utilisateur A :
  4. Demandez à KMS de décrypter le DK de l’utilisateur A (à l’aide de CMK).
  5. Utilisez le DK en texte brut pour décrypter les données de l’utilisateur A.
  6. Jetez immédiatement le texte en clair DK. C’est ainsi que fonctionne le chiffrement AWS S3 et EBS sous le capot. Il permet un contrôle d’accès granulaire.

8. Conformité FIPS (GovCloud)

Si vous travaillez pour le gouvernement ou le secteur de la santé, vous entendez « FIPS 140-2 ». Il s’agit d’une certification pour les modules cryptographiques. Cela signifie « Le générateur de nombres aléatoires est vraiment aléatoire ». Le chiffrement par défaut de Node.js n’est pas conforme à FIPS par défaut. Vous devez compiler Node avec --enable-fips. Ou utilisez AWS CloudHSM, qui est certifié FIPS 140-2 niveau 3. L’ignorance ici n’est pas une excuse pour l’auditeur.

9. Le point de vue du sceptique

“Cela ruine la performance.” Contre-point : Les instructions AES sont intégrées aux processeurs modernes (AES-NI). La surcharge est de quelques microsecondes. La latence de la base de données est en millisecondes. Le cryptage est gratuit (en termes de performances). Le coût est la complexité (gestion des clés). La confidentialité de vos utilisateurs vaut-elle cette complexité ? Oui.

##FAQ

Q : Symétrique ou Asymétrique ? R : Symétrique (AES) : La même clé chiffre et déchiffre. Rapide. Bon pour les données au repos. Asymétrique (RSA/ECC) : chiffrement par clé publique, déchiffrement par clé privée. Lent. Idéal pour partager des secrets (poignée de main TLS). Utilisez AES pour le cryptage de base de données.

Q : Qu’en est-il de la recherche ? R : Vous ne pouvez pas rechercher facilement des données cryptées (WHERE name = 'Alice' échoue car ‘Alice’ est stocké sous x8s7...). Solution : Indexation aveugle. Stockez une version hachée du nom (hash('Alice')) dans une colonne séparée. Recherchez ça.

10. Résistance quantique : la menace future

RSA-2048 est sécurisé aujourd’hui. Dans 10 ans, un ordinateur quantique pourrait le déchiffrer en quelques secondes (algorithme de Shor). Il s’agit de « Stocker maintenant, décrypter plus tard ». Les attaquants récoltent des données cryptées aujourd’hui, en attendant que la technologie les déchiffre demain. Défense : Cryptographie post-quantique (PQC). Le NIST standardise des algorithmes tels que Kyber et Dilithium. Maison Code expérimente déjà les bibliothèques PQC pour pérenniser les archives sensibles à long terme (par exemple, les dossiers médicaux).

11. Cryptage homomorphe (Le Rêve)

Imaginez demander au cloud : « Quel est le salaire moyen ? Et le cloud le calcule sans jamais décrypter les salaires. Il s’agit du chiffrement homomorphe. Il permet le calcul sur du texte chiffré. Enc(5) + Enc(10) = Enc(15). Il est actuellement trop lent pour la production (1 000 fois plus de temps système), mais il s’agit de la pointe de la technologie en matière de protection de la vie privée. Nous surveillons cet espace de près.

12. Conclusion

Le cryptage est l’application mathématique de la confidentialité. Sans cela, la vie privée n’est qu’une promesse. Les promesses sont rompues. Les mathématiques ne le sont pas.

Données exposées ?

Si vous stockez des informations personnelles en texte brut, vous n’êtes pas conforme. Maison Code met en œuvre des stratégies AES-256 et des architectures de gestion de clés pour sécuriser votre coffre-fort numérique.



Données sensibles en texte brut ?

Nous mettons en œuvre des stratégies de cryptage et de gestion des clés de bout en bout (KMS) pour protéger les informations personnelles et la propriété intellectuelle. Embauchez nos architectes.