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.
