Logo EMF

114 - Chiffrement - Le hachage

1. La fonction de hachage : une empreinte de longueur fixe

Essaie : tape n'importe quel texte

Définition

• Convertit des séquences de caractères de longueurs différentes en séquences de même longueur.

• Donne à des mots de passe différents une quantité définie de caractères autorisés.

• La conversion inverse, vers la séquence initiale, est exclue.

Le résultat s'appelle aussi empreinte numérique (ou « valeur de hachage », « hash »).

Domaines d'utilisation

🔐 Communication chiffrée entre serveur web et navigateur (SSL/TLS), identifiants de session, mise en cache.

🔑 Protection de données sensibles : mots de passe, analyses web, moyens de paiement.

✍️ Signature d'e-mails et vérification de fichiers.

2. Effet avalanche : un seul caractère change tout

Deux messages presque identiques donnent des empreintes complètement différentes. C'est ce qui permet de détecter la moindre modification (intégrité).

SHA-256 de A

SHA-256 de B

Bits différents

Chaque case est un des 256 bits de l'empreinte : ■ différent, ■ identique. En moyenne, environ la moitié des bits changent.

3. Sens unique, absence de collision, rapidité

➜ Sens unique (on ne peut pas « remonter »)

Il ne doit pas être possible de retrouver les données initiales. Mais si l'entrée est courte et prévisible, un attaquant peut simplement tout essayer.

Clique sur le bouton : on hache les 10 000 codes possibles jusqu'à trouver la même empreinte.

≠ Absence de collision (deux entrées, même empreinte)

Il existe forcément des collisions (il y a plus d'entrées possibles que d'empreintes), mais elles doivent être introuvables en pratique. Essai sur une empreinte volontairement tronquée :

⚡ Célérité (la conversion doit être rapide)

Rapide est un atout pour vérifier des fichiers… et un défaut pour stocker des mots de passe (onglet suivant).

4. Protéger les mots de passe : sel et lenteur

Un site ne doit pas stocker les mots de passe en clair : il stocke leur empreinte. À la connexion, il hache ce que l'utilisateur tape et compare. Formule du cours :

fonction_de_hachage( sel + mot_de_passe ) = Hash ← stocké en base de données ; le mot de passe est saisi par l'utilisateur

Deux utilisateurs, le même mot de passe

Ralentir l'attaquant : les itérations

Argon2 et PBKDF2 sont volontairement lents : ils répètent le calcul des milliers de fois. Pour l'utilisateur légitime ce n'est rien ; pour un attaquant qui teste des milliards de mots de passe, c'est énorme.

Principe de PBKDF2 : SHA-256 répété N fois (la vraie norme utilise HMAC, ici simplifié).

5. Signer un e-mail : le hachage au service de l'intégrité

Essaie : message envoyé et reçu

Empreinte de l'envoyé
Empreinte du reçu

À retenir

La signature ne chiffre pas le message : elle apporte seulement la preuve de son intégrité (et de l'origine). Les contenus confidentiels doivent être chiffrés en plus.

Ici l'étape « chiffrer l'empreinte avec la clé privée » n'est pas simulée : voir l'onglet « Signature numérique » de la page PGP.

6. Vérifier qu'un fichier téléchargé est intact

Le site de téléchargement publie l'empreinte du fichier. Après téléchargement, on calcule celle du fichier reçu : si les deux sont identiques, le fichier n'a pas été modifié ni corrompu.

Dans ce navigateur (le fichier n'est pas envoyé)

Choisis un fichier (64 Mo maximum).

En ligne de commande

# Windows (PowerShell) Get-FileHash .\filename.iso -Algorithm SHA256 | Format-List "HASH1" -eq "HASH2" # Linux / macOS sha256sum filename.iso shasum -a 256 filename.iso

Logiciels : 7-Zip, Hash Generator, HashTab, QuickHash.

7. Les algorithmes : résistants ou obsolètes

✗ À ne plus utiliser (craqués)

AlgorithmeEmpreinteProblème
MD5128 bitsCollisions faciles à produire (dès 2004)
SHA-1160 bitsPremière collision réelle publiée en 2017

✓ À utiliser (résistants)

AlgorithmeEmpreinteUsage
SHA-256256 bitsIntégrité, signatures
SHA-512512 bitsIntégrité, signatures
Argon2variableMots de passe (lent, gourmand en mémoire)
PBKDF2variableMots de passe (itérations)

Souvent combinés à RSA

Pour signer, on ne chiffre pas tout le message avec RSA : on chiffre son empreinte (petite, de taille fixe).

Deux familles de besoins

Rapide SHA-256/512 : vérifier des fichiers, signer.

Lent Argon2/PBKDF2 : stocker des mots de passe.

Pour aller plus loin (complément)

SHA-3 (autre construction, standard NIST 2015), bcrypt, scrypt, et HMAC (empreinte avec clé secrète, qui garantit aussi l'authenticité).

8. Défi CFC · Vérifie tes connaissances

Choisis une réponse par question. La correction apparaît immédiatement.