Skip to content

MD5 et SHA-256 sont tous deux des hachages rapides : pourquoi aucun ne convient pour stocker des mots de passe ?

Réponse courte

Parce qu'ils sont rapides. MD5 et SHA-256 sont conçus pour la vitesse, ce qui est exactement l'inverse de ce qu'il faut pour les mots de passe : un attaquant qui vole les hachages peut calculer des milliards de tentatives par seconde sur un GPU. La solution est une fonction de dérivation de clé délibérément lente et coûteuse en mémoire — bcrypt, scrypt ou Argon2 — combinée à un sel par utilisateur et à un facteur de travail ajustable.

Remarquez que la question concède que SHA-256 est cryptographiquement solide, de sorte que le candidat ne peut pas se rabattre sur « MD5 est cassé ». Le piège est de croire que la résistance aux collisions est la propriété pertinente. Pour le stockage des mots de passe, c'est la vitesse qui compte, et la vitesse est l'ennemie.

Pourquoi la rapidité est le mauvais objectif

Les hachages à usage général sont optimisés pour être rapides sur d'énormes entrées. C'est parfait pour l'intégrité des fichiers et terrible pour les mots de passe. Si un attaquant vide votre table de hachages, il mène une attaque hors ligne : mots du dictionnaire et candidats par force brute passés dans le même hachage rapide. Un GPU moderne calcule des milliards de hachages SHA-256 par seconde, donc les mots de passe faibles et même moyens tombent rapidement. Le hachage n'a jamais besoin d'être inversé : le distracteur sur le « déchiffrement » méconnaît le fait que les hachages sont à sens unique ; les attaquants devinent et comparent.

Le bon outil : des KDF lentes et salées

Utilisez une fonction de hachage de mot de passe / dérivation de clé conçue pour être lente et gourmande en ressources :

  • bcrypt : délibérément lent avec un facteur de coût ajustable.
  • scrypt et Argon2 : en plus coûteux en mémoire, ce qui émousse le parallélisme GPU/ASIC car les attaquants ne peuvent pas augmenter la mémoire aussi facilement que la puissance de calcul. Argon2 est la recommandation actuelle.

Deux essentiels de plus :

  • Un sel par utilisateur pour que des mots de passe identiques produisent des hachages différents, déjouant les tables arc-en-ciel précalculées (note : un sel ne ralentit pas une tentative ciblée sur un seul utilisateur).
  • Un facteur de travail ajustable que vous augmentez au fil du temps à mesure que le matériel s'accélère.

Ce que recherchent les recruteurs

L'idée que la vitesse — et non la réversibilité ou les collisions — est le défaut, plus la mention de bcrypt/scrypt/Argon2, du salage et d'un facteur de travail. Quiconque dit « utilise juste SHA-256, c'est sûr » est complètement passé à côté du modèle de menace.

Questions de suivi probables

  • Contre quoi un sel protège-t-il, et contre quoi ne protège-t-il pas ?
  • Qu'est-ce qu'un facteur de travail et pourquoi doit-il être ajustable dans le temps ?
  • Pourquoi la dureté mémoire (Argon2/scrypt) est-elle précieuse face aux GPU et aux ASIC ?

Sources

Certifications

Recevez 100 questions d'entretien en cybersécurité + réponses

Laissez votre e-mail et nous vous enverrons le pack PDF gratuit et le jeu de flashcards.

Pas de spam. Désabonnez-vous à tout moment.