Fondamentaux

Cryptographie appliquée

La cryptographie protège la confidentialité, l'intégrité, l'authenticité et parfois la non-répudiation. En pratique, le risque vient souvent d'un mauvais usage plutôt que de l'algorithme lui-même.


Les familles

Hachage

Un hash transforme une donnée en empreinte. Il sert à vérifier l'intégrité. Pour les mots de passe, il faut un algorithme adapté comme Argon2, bcrypt ou scrypt, avec sel et coût suffisant.

Exemples d'usage :

  • vérifier qu'un fichier n'a pas changé
  • stocker une empreinte de mot de passe
  • identifier un artefact dans une enquête

Un hash n'est pas du chiffrement : on ne "déchiffre" pas un hash.

Chiffrement symétrique

La même clé chiffre et déchiffre. C'est rapide et adapté aux volumes de données. AES-GCM et ChaCha20-Poly1305 sont des choix modernes courants.

Usages fréquents :

  • chiffrement de disque
  • sauvegardes chiffrées
  • données applicatives sensibles
  • tunnels chiffrés

Chiffrement asymétrique

Une clé publique et une clé privée permettent l'échange de secrets, la signature ou l'authentification. RSA, ECDSA et Ed25519 sont des noms fréquents.

Usages fréquents :

  • certificats TLS
  • clés SSH
  • signatures logicielles
  • échange de clés

Signature

Une signature prouve qu'une donnée a été produite ou validée par le détenteur d'une clé privée. Elle sert à vérifier l'authenticité et l'intégrité.

Exemples :

  • signature d'un paquet logiciel
  • signature d'un commit
  • signature d'un document
  • signature d'un certificat

Mots de passe

Les mots de passe ne doivent jamais être stockés en clair. Ils doivent être hachés avec un algorithme adapté aux mots de passe, un sel unique et un coût suffisant.

À éviter :

  • SHA-256 seul pour des mots de passe
  • MD5
  • stockage en clair
  • réutilisation de mots de passe
  • secrets dans le code source

TLS

TLS protège les connexions HTTPS. Il apporte chiffrement, intégrité et authentification du serveur via certificat. Les erreurs fréquentes sont les certificats expirés, les chaînes incomplètes, les versions faibles et les redirections HTTP mal gérées.

Pendant une connexion HTTPS, le navigateur vérifie notamment :

  • le nom de domaine du certificat
  • la chaîne de confiance
  • la période de validité
  • les algorithmes utilisés
  • la négociation TLS

Gestion des clés

La cryptographie est souvent cassée par une mauvaise gestion des clés plutôt que par l'algorithme.

Bonnes pratiques :

  • générer des clés fortes
  • limiter l'accès aux clés privées
  • utiliser des secrets managers quand c'est possible
  • prévoir la rotation
  • révoquer les secrets exposés
  • ne pas commiter de secrets
  • sauvegarder les clés critiques de manière protégée

Erreurs fréquentes

  • inventer son propre protocole
  • utiliser un algorithme obsolète
  • confondre encodage, hash et chiffrement
  • stocker une clé à côté des données chiffrées
  • désactiver la vérification TLS pour "corriger" une erreur
  • exposer un token dans du JavaScript public

À retenir

N'invente pas ton propre protocole crypto. Utilise des bibliothèques reconnues, des configurations modernes et une gestion sérieuse des clés.

Précédent
Active Directory fondamentaux