Aller au contenu principal

Chiffrement des données au repos et en transit : guide technique pour les développeurs

Illustration chiffrement des données au repos et en transit

Pourquoi chiffrer les données

Le chiffrement est la dernière ligne de défense : même si un attaquant accède à vos systèmes, les données chiffrées restent illisibles sans la clé. Le RGPD recommande explicitement le chiffrement comme mesure de protection des données personnelles.

Deux contextes de chiffrement :

  • Au repos (at rest) : données stockées sur disque, en base de données, dans des backups.
  • En transit (in transit) : données échangées entre le client et le serveur, ou entre services internes.

Chiffrement en transit : TLS

TLS (Transport Layer Security) chiffre les communications réseau. En 2025, TLS 1.3 est le standard :

  • Handshake plus rapide (1 round-trip au lieu de 2 avec TLS 1.2).
  • Suites cryptographiques plus sûres (suppression des algorithmes obsolètes).
  • Perfect Forward Secrecy obligatoire (compromission d'une clé n'expose pas les sessions passées).

Configurez vos serveurs pour n'accepter que TLS 1.2 et 1.3. Utilisez des certificats Let's Encrypt (gratuits) ou des certificats émis par votre organisation. Activez HSTS pour empêcher les connexions non chiffrées.

Chiffrement au repos : AES-256

AES-256 (Advanced Encryption Standard avec clé de 256 bits) est l'algorithme de référence pour le chiffrement au repos :

  • Chiffrement transparent du disque : activez le chiffrement natif du fournisseur cloud (AWS EBS encryption, GCP disk encryption). Transparent pour l'application.
  • Chiffrement de la base de données : TDE (Transparent Data Encryption) pour PostgreSQL, MySQL, SQL Server.
  • Chiffrement applicatif : chiffrez les champs sensibles avant de les stocker (numéros de carte, données de santé). Plus complexe mais offre un contrôle granulaire.

Gestion des clés de chiffrement

La sécurité du chiffrement repose entièrement sur la gestion des clés. Ne stockez jamais les clés dans le code source ou les fichiers de configuration :

  • Utilisez un KMS (Key Management Service) : AWS KMS, Google Cloud KMS, Azure Key Vault.
  • HashiCorp Vault pour les environnements multi-cloud ou on-premise.
  • Implémentez la rotation automatique des clés (tous les 90 jours minimum).
  • Séparez les clés de chiffrement par environnement (dev, staging, production).

Hachage des mots de passe

Les mots de passe ne doivent jamais être chiffrés — ils doivent être hachés avec un algorithme conçu pour cet usage :

  • Argon2id : vainqueur du Password Hashing Competition, recommandé par l'OWASP.
  • bcrypt : alternative éprouvée, largement supportée.
  • scrypt : bon choix si Argon2 n'est pas disponible.

Configurez un coût de calcul (work factor) suffisant : le hachage doit prendre environ 250 ms pour ralentir les attaques par force brute sans dégrader l'expérience utilisateur.

Checklist chiffrement

  • TLS 1.2+ sur toutes les communications (externes et internes).
  • HSTS activé avec includeSubDomains et preload.
  • Chiffrement des disques et des bases de données au repos.
  • Chiffrement applicatif pour les données les plus sensibles.
  • Gestion des clés via un KMS avec rotation automatique.
  • Mots de passe hachés avec Argon2id ou bcrypt.
  • Pas de secrets dans le code source (utilisez des variables d'environnement ou un vault).