loader

Kit cyber - Chapitre 8 : Attaque par dictionnaire

Second chapitre du parcours cassage de mots de passe du kit cyber


Les mots de passe sont, en principe, un moyen de protection efficace. Mais leur solidité dépend directement de ceux qui les choisissent… et les êtres humains n’ont pas toujours de bonnes habitudes.
Si un mot de passe doit être une clé d’accès unique et difficile à deviner, beaucoup de personnes préfèrent opter pour des combinaisons très simples et courantes.
Résultat : des mots de passe comme azerty, 1234, password ou encore bonjour se retrouvent utilisés par des milliers de personnes à travers le monde. Et parce qu’ils sont connus de tous, ils deviennent aussi les premiers que les pirates vont tester.
Pour exploiter cette faiblesse, les attaquants ont recours à une technique appelée attaque par dictionnaire. Elle consiste à utiliser des listes toutes prêtes de mots de passe fréquemment employés, souvent récupérées lors de fuites de bases de données. L’attaquant n’a alors plus qu’à essayer ces mots les uns après les autres, jusqu’à tomber sur le bon.

Une attaque par dictionnaire repose sur une idée simple : les utilisateurs choisissent souvent des mots de passe courts ou faciles à retenir. Ces mots de passe sont tellement répandus qu’ils se retrouvent dans des listes utilisées par les pirates. En testant rapidement les plus courants, l’attaquant a de grandes chances de tomber sur le bon mot.
Dans notre expérience, nous allons programmer une carte micro:bit attaquante qui va parcourir une liste de mots de passe prédéfinis et les envoyer au coffre.
  • Si le mot de passe choisi par l’utilisateur fait partie de cette liste, l’attaquant ouvrira le coffre très rapidement.
  • Si au contraire le mot de passe est original ou plus complexe, l’attaque échouera.

Le but du programme de la carte attaquante va être, à partir d'une liste de mots de passe définie en amont dans le code, d'envoyer un par un chaque mot de passe par radio, et de regarder si le verrou du coffre-fort s'ouvre.
Les blocs pour manipuler les listes se trouvent dans la catégorie de blocs nommée Listes. Le bloc qui sera utile ici est celui qui permet de créer une liste, en lui donnant les différentes valeurs qu'elle doit contenir :

Bloc création listes

Il faudra ensuite sauvegarder la liste dans une variable, puis stocker des mots de passe dans la liste. En voici 50 (il est possible d’en rajouter d’autres) :
123456,123456789,12345,000000,azerty,qwerty,motdepasse,password,bonjour,soleil,
doudou,chocolat,camille,julien,football,rugby,marseille,paris,toulouse,starwars,
dragon,love,iloveyou,bienvenue,maison,ordinateur,toto,titi,tata,abc123,123abc,
papa,maman,bebe,chien,chat,lapin,voiture,voiture123,argent,argent123,
argent2024,soleil123,coucou,coucou123,password1,motdepasse1,azerty123,azertyuiop,1q2w3e4r

Dans la réalité, les listes utilisées par les attaquants peuvent contenir des millions de mots de passe, mais pour des raisons de simplicité, on se contentera de ceux fournis ici.

Enfin, il sera nécessaire de parcourir la liste, afin de pouvoir envoyer par radio chaque mot de passe un par un. Pour cela, il est possible d'utiliser le bloc suivant disponible dans la catégorie Boucles :

Bloc répéter pour chaque élément de la liste

Ce bloc va parcourir la liste donnée, et, à chaque tour de la boucle, affecter à la variable i l'élément courant de la liste. Par exemple, dans notre cas, à chaque tour de boucle, il contiendra un mot de passe de la liste.
Enfin, il ne faudra pas oublier d'envoyer le mot de passe par radio (comme lors de la première section, en faisant bien attention de configurer le canal radio correctement). On ajoutera également une courte pause (50ms) entre les envois de messages, pour être sûrs que la carte coffre-fort ait le temps de traiter chaque mot de passe.


Si tu es bloqué :
  • Vérifie que la carte attaquante envoie bien les mots de passe un par un depuis la liste (dictionnaire) en utilisant la boucle “pour chaque élément dans la liste”.
  • Assure-toi que chaque mot de passe est envoyé exactement dans le même format que celui attendu par le coffre-fort au chapitre 7 (mêmes caractères, pas d’espace en plus).
  • Si rien ne se passe, teste d’abord avec un dictionnaire très court contenant le mot de passe exact (par exemple 3 ou 4 mots) pour vérifier que ton programme passe bien par tous les éléments de la liste.

Téléverse le programme du coffre-fort (chapitre 7) puis celui de la carte attaquante dans deux cartes différentes, en vérifiant qu’ils utilisent la même configuration radio. Lance les deux cartes : la carte attaquante va envoyer successivement les mots de son dictionnaire comme tentatives de mot de passe. Observe le servomoteur du coffre-fort : au bout de quelques essais, il doit “s’ouvrir” lorsque le bon mot de passe est finalement testé. Recommence en changeant le mot de passe du coffre-fort ou le contenu du dictionnaire pour voir l’impact sur le nombre d’essais nécessaires.

Téléverse le programme du coffre-fort (chapitre 7) puis celui de la carte attaquante dans deux cartes différentes, en vérifiant qu’ils utilisent la même configuration radio. Lance les deux cartes : la carte attaquante va envoyer successivement les mots de son dictionnaire comme tentatives de mot de passe. Observe le servomoteur du coffre-fort : au bout de quelques essais, il doit “s’ouvrir” lorsque le bon mot de passe est finalement testé. Recommence en changeant le mot de passe du coffre-fort ou le contenu du dictionnaire pour voir l’impact sur le nombre d’essais nécessaires.

Avec cette expérience, nous avons découvert qu’un mot de passe trop simple ou trop courant peut être cassé très rapidement grâce à une attaque par dictionnaire.
Si le mot de passe du coffre se trouve dans la liste prédéfinie, l’attaquant n’a presque rien à faire : il lui suffit de tester les mots les uns après les autres jusqu’à ce que le coffre s’ouvre.
En revanche, si le mot de passe est original, long et complexe, l’attaque échoue : le pirate n’arrive pas à le deviner.
Dans la vie réelle, c’est pour cette raison qu’il est dangereux de choisir des mots de passe comme 123456 ou azerty. Ils figurent dans toutes les listes utilisées par les attaquants.
On remarquera aussi qu’utiliser le même mot de passe partout est un risque majeur : si les mots de passe d’un site web que tu utilises sont compromis, alors tous tes autres comptes pourraient devenir vulnérables.

Pour aller plus loin :
  • Chercher les mots-clés « attaque par dictionnaire », « attaque par force brute » et « fuite de données » pour voir comment ces techniques apparaissent dans de vrais incidents.
  • Explorer les ressources de l’ANSSI, de la CNIL ou de Cybermalveillance.gouv.fr sur le choix de mots de passe robustes, la réutilisation de mots de passe et l’usage d’un gestionnaire de mots de passe.
  • Se renseigner sur des services comme « Have I Been Pwned », qui permettent de vérifier si une adresse mail apparaît dans des fuites de données publiques.

Användarlicens