Attaques par dictionnaire et tables arc-en-ciel
Découvrez comment les tables de hachages précalculées accélèrent le cassage des mots de passe et comment le salage les neutralise.
Attaques par dictionnaire et tables arc-en-ciel est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Attaques par dictionnaire : cassage fondé sur une liste de mots
Une attaque par dictionnaire n’essaie pas toutes les combinaisons possibles ; elle teste plutôt une liste sélectionnée de mots de passe probables. Les utilisateurs réels choisissent leurs mots de passe dans un vocabulaire limité : mots courants, noms, dates et phrases. Tester une liste d’un million de mots de passe probables est bien plus rapide que de tester toutes les chaînes de 8 caractères possibles, soit 200 000 milliards de combinaisons. Les attaques par dictionnaire réussissent parce que les choix de mots de passe humains sont prévisibles.
rockyou.txt : jeu de données issu d’une fuite de mots de passe
En 2009, le site de réseau social RockYou a subi une fuite qui a exposé 32 millions de mots de passe d’utilisateurs en clair. La liste qui en a résulté, désormais appelée rockyou.txt, contient environ 14 millions de mots de passe uniques et constitue la première liste de mots utilisée habituellement pour le cassage de mots de passe. L’examen de rockyou.txt révèle que les mots de passe les plus courants sont 123456, password et des variantes de prénoms suivis de chiffres.
Attaques hybrides : combinaison d’un dictionnaire et de règles
Une attaque hybride étend une liste de mots de base en appliquant des règles de transformation. Un mot comme password devient Password, P@ssword, p4ssword, password1, password123 et des centaines d’autres variantes. Le moteur de règles de Hashcat permet de spécifier précisément les transformations à appliquer : mettre la première lettre en majuscule, ajouter deux chiffres ou remplacer des lettres par des symboles. Cela augmente considérablement la couverture sans tester de chaînes véritablement aléatoires.
Attaques fondées sur des règles et langage leet
Les substitutions du langage leet — remplacer des lettres par des chiffres : e=3, a=4, i=1, o=0, s=5 — étaient autrefois censées améliorer la sécurité des mots de passe. Les outils de cassage fondés sur des règles incluent ces substitutions parmi les transformations standard. Un mot de passe comme s3cur1ty est cassé trivialement à partir du mot de base security auquel on applique une règle de substitution leet. Les outils de cassage essaient également des modèles courants : ajouter !, 123 ou l’année en cours à n’importe quel mot du dictionnaire.
Tables arc-en-ciel : chaînes de hachages précalculées
Une table arc-en-ciel est une vaste base de données précalculée qui associe les valeurs de hachage aux mots de passe d’origine. Au lieu de hacher un candidat et de le comparer, l’attaquant recherche directement le hachage dans la table. La construction de la table nécessite énormément de temps et d’espace de stockage, mais chaque recherche est instantanée. Les tables arc-en-ciel pour les hachages MD5 de tous les mots de passe alphanumériques de 8 caractères peuvent tenir sur quelques téraoctets et casser tout mot de passe correspondant en quelques millisecondes.
Compromis temps-mémoire dans les tables arc-en-ciel
Les tables arc-en-ciel illustrent un compromis temps-mémoire : consacrer du temps à calculer la table une fois, puis utiliser de la mémoire pour accélérer les recherches futures. La table stocke des chaînes de hachage : chaque chaîne commence par une supposition, la hache, applique une fonction de réduction pour générer une autre supposition, puis recommence. Le stockage des seuls points finaux des chaînes permet de retrouver des mots de passe à partir de hachages grâce à un processus de reconstruction qui équilibre l’espace de stockage et le calcul.
Le sel neutralise les tables arc-en-ciel
Un sel est une valeur aléatoire ajoutée au mot de passe avant le hachage. Comme le sel est unique pour chaque utilisateur, deux utilisateurs ayant le même mot de passe produisent des valeurs de hachage différentes. Un attaquant ne peut donc pas précalculer une table arc-en-ciel pour les mots de passe salés ; il devrait construire une table distincte pour chaque valeur de sel possible, ce qui est irréalisable sur le plan du calcul. Le salage est obligatoire pour tout système sécurisé de stockage des mots de passe.
MD5 sans sel : cassage instantané
De nombreuses premières applications web stockaient les mots de passe sous forme de hachages MD5 non salés. Le hachage MD5 de la chaîne password est 5f4dcc3b5aa765d61d8327deb882cf99, une valeur fixe. Toute personne ayant déjà vu ce hachage ou l’ayant recherché dans une base de données précalculée connaît instantanément le mot de passe. Des sites comme CrackStation conservent des milliards de hachages MD5 et SHA-1 précalculés. Les mots de passe courants non salés sont cassés en moins d’une seconde.
Have I Been Pwned
Have I Been Pwned (HIBP), créé par le chercheur en sécurité Troy Hunt, regroupe des hachages de mots de passe provenant de fuites de données majeures. Les utilisateurs peuvent vérifier si leur adresse e-mail ou leur mot de passe est apparu dans une fuite. Les développeurs peuvent utiliser l’API HIBP pour vérifier des mots de passe candidats par rapport à 850 millions de hachages divulgués, grâce à un modèle de k-anonymat : les 5 premiers caractères hexadécimaux du hachage SHA-1 sont envoyés à l’API, qui renvoie les suffixes correspondants sans que le serveur connaisse le hachage complet.
Bourrage d’identifiants avec des listes de mots de passe divulgués
Les attaques par bourrage d’identifiants utilisent des couples nom d’utilisateur-mot de passe provenant d’une fuite et les testent sur d’autres services. Comme de nombreux utilisateurs réutilisent leurs mots de passe sur plusieurs sites, une fuite sur un site faiblement sécurisé fournit des identifiants fonctionnels pour des cibles de grande valeur comme les services bancaires et la messagerie électronique. Des outils automatisés envoient des milliers de tentatives de connexion par seconde à plusieurs services. La limitation du débit et l’authentification multifacteur sont les principales défenses contre le bourrage d’identifiants.
Défense : hachage adaptatif avec sel
Le stockage sécurisé des mots de passe associe le salage à une fonction de hachage lente et adaptative. bcrypt, Argon2 et scrypt sont conçus pour être coûteux en calcul et prennent des millisecondes par hachage plutôt que des microsecondes. Cela réduit le débit de l’attaquant, qui passe de milliards de tentatives par seconde à des milliers. Le paramètre de coût peut être augmenté à mesure que le matériel devient plus rapide, afin de maintenir un effort de calcul constant. Ces algorithmes constituent la norme actuelle pour le stockage des mots de passe.
Sel et tables arc-en-ciel
Pourquoi l’ajout d’un sel aléatoire unique à chaque mot de passe avant le hachage neutralise-t-il les attaques par tables arc-en-ciel précalculées ?
Attaques par dictionnaire et tables arc-en-ciel : points essentiels
Les attaques par dictionnaire testent des mots de passe probables plutôt que toutes les combinaisons. rockyou.txt fournit 14 millions d’exemples réels. Les attaques hybrides et fondées sur des règles étendent les listes de mots à l’aide de transformations. Les tables arc-en-ciel permettent une recherche instantanée pour les hachages non salés. Le salage neutralise les tables arc-en-ciel en rendant chaque hachage unique. HIBP vérifie si des mots de passe apparaissent dans des fuites connues. Des fonctions de hachage adaptatives comme bcrypt et Argon2 sont nécessaires pour un stockage sécurisé.
Questions Fréquemment Posées
La leçon « Attaques par dictionnaire et tables arc-en-ciel » est-elle gratuite ?
Oui — le texte complet de « Attaques par dictionnaire et tables arc-en-ciel » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Attaques par dictionnaire et tables arc-en-ciel » ?
Découvrez comment les tables de hachages précalculées accélèrent le cassage des mots de passe et comment le salage les neutralise. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Attaques par dictionnaire et tables arc-en-ciel » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Comment fonctionnent les attaques par force brute
- Attaques par dictionnaire et tables arc-en-ciel
- Pourquoi la longueur des clés cryptographiques est importante
- Limitation du débit et blocage des comptes