Stocker un mot de passe sans le stocker

Ne jamais stocker en clair : le hachage

Un site web ne connaît pas votre mot de passe, et c'est volontaire. Comprendre pourquoi est le point de départ de toute la sécurité des comptes.

Ne jamais stocker en clair

La règle absolue : un service ne doit jamais conserver les mots de passe en clair dans sa base de données. Si cette base fuite — vol, injection SQL, employé malveillant — l'attaquant obtiendrait immédiatement tous les mots de passe. Et comme beaucoup de gens réutilisent le même partout, il pourrait aussi vider leur boîte mail, leurs réseaux sociaux, leur banque.

Les fuites massives sont fréquentes : des bases entières se retrouvent en vente. Un stockage en clair transforme une simple fuite en catastrophe totale.

L'idée : stocker l'empreinte

La solution repose sur une fonction de hachage. Une telle fonction transforme n'importe quel texte en une empreinte de taille fixe, et possède deux propriétés clés :

  • elle est déterministe : le même mot de passe donne toujours la même empreinte ;
  • elle est à sens unique : depuis l'empreinte, on ne peut pas revenir au mot de passe.

Le site ne stocke donc que l'empreinte, jamais le mot de passe.

motdepasse123  --[ hachage ]-->  ef92b778ba... (empreinte)

Inscription et connexion

Le mécanisme se déroule en deux temps.

INSCRIPTION
  utilisateur saisit  : "chat2024"
  site calcule        : h = hachage("chat2024")
  site enregistre     : h        (le mot de passe est jeté)

CONNEXION
  utilisateur saisit  : "chat2024"
  site calcule        : h' = hachage("chat2024")
  site compare        : h' == h  ?
        égal   -> connexion acceptée
        différent -> refusée

Le site vérifie le mot de passe sans jamais le connaître. Il compare seulement deux empreintes. Même l'administrateur, en lisant la base, ne voit que des empreintes illisibles.

Le problème : les fonctions trop rapides

Cette première solution a une faiblesse. Les fonctions de hachage classiques comme SHA-256 sont conçues pour être très rapides : c'est une qualité pour vérifier un fichier, mais un défaut ici.

Un attaquant qui récupère la base des empreintes peut essayer des mots de passe hors ligne, à sa guise. Avec du matériel courant, une carte graphique calcule des milliards d'empreintes SHA-256 par seconde. Il teste alors des listes entières de mots de passe et compare chaque empreinte à celles volées.

Autrement dit : hacher, c'est nécessaire, mais pas suffisant. La rapidité de SHA-256 joue contre nous. Les deux leçons suivantes montrent les attaques précises, puis les défenses modernes.

En résumé

  • On ne stocke jamais un mot de passe en clair ; on stocke son empreinte (hachage).
  • La fonction de hachage est déterministe et à sens unique.
  • À la connexion, on hache le mot de passe saisi et on compare les empreintes.
  • Un hachage rapide comme SHA-256 permet des milliards d'essais par seconde : insuffisant seul.