← Hash, MD5, mots de passe et certificats TLS

Module 1 / 12 · 90 min

01. Empreintes et propriétés recherchées

Distinguer intégrité accidentelle et authenticité contre un adversaire.

Lessons, exercises and questions in this path are in French. The interface follows the site language.

Your progress will appear here when JavaScript is active.

Progress and best score are stored only in this browser. No account is needed; clearing browser data removes them. Module times are estimates including exercises.

Comprendre le mécanisme

Une fonction de hash calcule une empreinte déterministe d’octets. Elle ne chiffre pas une donnée et ne fournit pas une clé de déchiffrement. Préimage, seconde préimage et collision décrivent des objectifs adverses différents. Une empreinte publique peut aider à comparer deux fichiers, mais un adversaire capable de remplacer fichier et empreinte peut recalculer les deux. La provenance de la référence est donc une partie du problème.

Raisonner et vérifier

Choisissez l’outil selon la menace : hash moderne pour comparaison d’octets, MAC avec clé pour authenticité partagée, signature pour une distribution asymétrique, fonction de mot de passe pour vérification d’un secret humain. N’utilisez pas un nom d’algorithme moderne comme justification universelle. Définissez encodage, normalisation et limites avant de comparer des valeurs afin d’éviter de hasher des représentations différentes sans le vouloir.

Déterminisme

Un hash calcule une empreinte déterministe. Une empreinte n’est pas une donnée chiffrée réversible par clé. Le même fichier, octet pour octet, doit fournir la même sortie avec le même algorithme. Une fin de ligne ou un encodage différent change l’entrée même si le texte semble identique à l’écran.

Understand this common mistake

Un hash utilise toujours une clé de déchiffrement.

Une empreinte n’est pas une donnée chiffrée réversible par clé.

Collision et préimage

Une collision relie deux entrées de même empreinte. Collision et préimage sont des objectifs différents. Une collision cherche deux messages distincts partageant une sortie ; une préimage cherche un message pour une sortie donnée. Une démonstration de la première propriété ne fournit pas automatiquement la seconde attaque.

Understand this common mistake

Une collision signifie retrouver tout original depuis son hash.

Collision et préimage sont des objectifs différents.

Référence authentifiée

La provenance d’une empreinte de référence compte. Il peut recalculer une référence non protégée. Si le fichier et son checksum sont téléchargés depuis une source compromise unique, les deux peuvent être remplacés. Établissez la référence par un canal ou une signature dont la confiance est indépendante.

Understand this common mistake

Un adversaire modifiant fichier et empreinte est forcément détecté.

Il peut recalculer une référence non protégée.

Empreinte et auteur

Un hash public ne prouve pas l’auteur. L’encodage ne crée pas de preuve d’origine. N’importe qui peut calculer SHA-256 sur un document. Pour attribuer sa provenance, vérifiez une signature et la confiance dans sa clé, ou une autre preuve adaptée au modèle de distribution.

Understand this common mistake

Une sortie hexadécimale identifie cryptographiquement son producteur.

L’encodage ne crée pas de preuve d’origine.

Octets couverts

Les octets exacts influencent l’empreinte. La représentation doit être définie et comparée. Définissez si l’empreinte couvre le corps brut ou une représentation canonique. Convertir du JSON en objet puis le sérialiser peut modifier espaces et ordre des propriétés sans conserver les octets d’origine.

Understand this common mistake

Des espaces différents donnent nécessairement le même hash.

La représentation doit être définie et comparée.

Authentification partagée

Un MAC ajoute une clé à une construction d’authenticité. Le secret partagé change le modèle de confiance. Un MAC ajoute une clé secrète connue des participants. Il permet de vérifier une authenticité dans ce groupe, mais chaque détenteur de la clé conserve la capacité de produire une preuve valide.

Understand this common mistake

Un hash sans clé fournit les mêmes capacités qu’un MAC.

Le secret partagé change le modèle de confiance.

Signature asymétrique

Une signature sépare des capacités de clé publique et privée. Le calcul public d’empreinte n’est pas une signature. La clé privée signe et la clé publique permet la vérification selon l’algorithme. Distribuez cette clé publique par une référence fiable ; remplacer document et clé ensemble peut tromper une vérification isolée.

Understand this common mistake

Un hash SHA-256 seul fournit une signature asymétrique.

Le calcul public d’empreinte n’est pas une signature.

Secrets humains

Un mot de passe humain demande une fonction dédiée. Un hash rapide ne règle pas le coût des essais hors ligne. Les mots de passe ont souvent une faible entropie. Utilisez une fonction adaptative dédiée qui ralentit les essais et gère le sel, plutôt qu’un hash rapide prévu pour d’autres usages.

Understand this common mistake

SHA-256 direct est adaptatif par définition.

Un hash rapide ne règle pas le coût des essais hors ligne.

Représentation

L’encodage ne crée pas d’entropie. La même information reçoit une autre représentation. Hexadécimal et base64 changent la représentation des mêmes octets. Une sortie plus longue n’implique pas davantage de hasard ; mesurez l’entropie à partir de la génération du secret initial.

Understand this common mistake

Passer une empreinte en base64 augmente son aléatoire.

La même information reçoit une autre représentation.

Choisir une propriété

Le choix de primitive dépend de la menace. Authenticité, confidentialité et vérification de mot de passe diffèrent. Pour détection d’erreur, provenance, confidentialité et stockage de mot de passe, les besoins diffèrent. Écrivez l’attaquant et la propriété attendue avant de sélectionner une primitive ou une API.

Understand this common mistake

Tout besoin cryptographique se résout par le même hash.

Authenticité, confidentialité et vérification de mot de passe diffèrent.

Atelier guidé : lire, expliquer et vérifier le code

<?php
declare(strict_types=1);
$hash = hash('sha256', 'lab');
echo strlen($hash);

SHA-256 fournit ici 32 octets affichés en hexadécimal, donc 64 caractères. Comparez sortie brute et sortie encodée pour distinguer taille mathématique et représentation. Modifiez ensuite un octet du message. Ce laboratoire vérifie le déterminisme et la sensibilité aux entrées, sans prouver l’auteur du message.

SHA-256 donne 32 octets, représentés ici par 64 caractères hexadécimaux. 32 serait la taille binaire, pas cette représentation par défaut. 256 est un nombre de bits, pas la longueur textuelle. Le hash a une longueur fixée par l’algorithme.

Travail pratique : Modifiez un octet d’un fichier puis comparez son empreinte. Remplacez ensuite simultanément fichier et référence sur un stockage fictif.

Critères de correction : La première comparaison détecte le changement par rapport à une référence conservée. La seconde démontre qu’une référence modifiable par le même adversaire ne fournit pas d’authenticité.

Worked example

<?php
declare(strict_types=1);
$bytes = 'document de laboratoire';
$fingerprint = hash('sha256', $bytes);
echo $fingerprint, PHP_EOL;

L’empreinte obtenue ne prouve pas qui a produit le document.

Practical exercise

Modifiez un octet d’un fichier puis comparez son empreinte. Remplacez ensuite simultanément fichier et référence sur un stockage fictif.

View a suggested solution

La première comparaison détecte le changement par rapport à une référence conservée. La seconde démontre qu’une référence modifiable par le même adversaire ne fournit pas d’authenticité.

Verification checklist

  • Propriété attendue explicite.
  • Référence protégée.
  • Octets et représentation distingués.

Knowledge check

Related lesson: 01. Empreintes et propriétés recherchées ↗
Une empreinte publique seule prouve-t-elle l’auteur du fichier ?

Reference documentation ↗

Module validation

101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.

Start or resume the 101 questions →