J'ai choisi de présenter cette méthode car c'est principalement à cause de celle-ci qu'il faut choisir un bon mot de passe : je vais vous montrer à quel point il peut être facile de récupérer un mot de passe « simple ».
Une attaque par force brute consiste simplement à essayer un ensemble de mots de passe pour vérifier si l'un d'eux fonctionne. Il existe 3 types d'attaque par force brute :
génération de tous les mots de passe possibles ;
dictionnaire ;
dictionnaire hybride.
Je vais vous les détailler, mais avant toute chose je vais vous présenter un pirate fictif qui se nomme Bob Le Pirate(ne me demandez pas pourquoi). Celui-ci va tester la méthode par force brute tout au long de l'article, et on commentera ses résultats. :)
Génération de tous les mots de passe possibles
Cette attaque consiste à générer tous les mots de passe possibles. Le générateur essaiera toutes les combinaisons possibles de l'alphabet en minuscules et en majuscules, qui peuvent aussi être combinées avec des chiffres (ou encore avec des caractères spéciaux tels que $ ou #). Théoriquement, aucun mot de passe ne pourrait rester caché face à ce type d'attaque car toutes les combinaisons seront essayées. En pratique, on rencontre un problème. D'ailleurs, Bob Le Pirate a fait des tests et nous a dressé un tableau. :D Voici donc quelques chiffres qui parlent d'eux-mêmes :
Type de caractère | Nombre de caractères | MDP à 4 caractères | MDP à 6 caractères | MDP à 8 caractères |
---|---|---|---|---|
L'alphabet minuscules (français) | 26 | 456 976 | ~310 millions | ~209 milliards |
L'alphabet minuscules et chiffres | 36 | 1 679 616 | ~2 milliards | ~2800 milliards |
L'alphabet minuscules, majuscules et chiffres | 62 | 14 776 336 | ~57 milliards | ~218 mille milliards |
Je pense que vous avez compris à quoi correspondent les 2 premières colonnes. Les 3 dernières colonnes quant à elles correspondent au nombre d'essais qu'il est possible de faire (le maximum). Le nombre d'essais augmente exponentiellement et donc devient vite énorme. C'est le point faible de cette attaque : elle peut devenir très très longue. :euh:
Pour essayer de trouver un mot de passe sur un ordinateur, cela peut prendre beaucoup de temps, voire trop de temps si le mot de passe est bien choisi (ça dépend de la puissance du processeur utilisé et de la connexion si l'attaque s'effectue à distance). Mais imaginez, pour lancer cette attaque sur un site web par exemple, en admettant que chaque tentative dure 0.2 secondes (le temps de la connexion) et qu'on essaie de trouver un mot de passe à 6 caractères ne contenant que des minuscules et des chiffres (36 caractères possibles), il faudrait environ 13 ans pour essayer toutes les combinaisons possibles ! Et encore, là on sait que le mot de passe contient "juste" des minuscules et des chiffres et qu'il fait 6 caractères, mais si on ne sait pas… Il faut essayer minuscules, majuscules, chiffres, caractères spéciaux, le tout avec un nombre de caractères différent(s) (4 caractères, puis 5, puis 6, …). o_O
Bref, c'est infernal et Bob Le Pirate ne s'en sort plus. C'est alors que notre pirate, qui ne manque pas d'idées, a trouvé un moyen pour diminuer considérablement le temps : le dictionnaire.
Force brute par dictionnaire
L'attaque précédente consistait en une génération de tous les mots de passe possibles. L'attaque par dictionnaire va utiliser un dictionnaire de mots, c'est-à-dire un fichier qui contient beaucoup de mots tels que « mouchoir » ou « maxime ». Cela permet au pirate de n'essayer que des mots de passe qui ont un sens : eh oui, des études montrent que beaucoup de gens utilisent des mots communs pour leurs mots de passe.
Citation : Burçin Gerçek
Une autre étude, menée cette fois-ci par l'université de Hertfordshire en Grande Bretagne, donne des résultats inquiétants : 47 % des utilisateurs choisissent le prénom d'un membre de leur famille, le nom de leur animal ou leur date de naissance comme mot de passe. 32 % préfèrent les stars du showbiz, 11 % des mots à connotation sexuelle. Or, tous ces mots sont recensés par les logiciels de craquage. Un pirate les tentera en premier lieu pour s'introduire dans votre système informatique.
source(au passage, c'est un article intéressant qui traite du même sujet)
Il y a donc de grandes chances pour que votre mot de passe (s'il s'agit d'un mot commun) soit recensé dans les dictionnaires des pirates. :(
À titre de comparaison, le Petit Robert contient environ 60 000 mots (et donc autant de tentatives). Cela vous donne une petite idée du temps gagné par rapport à l'ancienne méthode (pour le chiffre, il suffirait de 3 heures et 20 minutes avec 0.2 secondes par tentative pour tester les 60 000 mots).
Cependant, notre petit Bob s'est rendu compte qu'un certain nombre de mots de passe rajoutent des chiffres en plus (comme « maxime78 ») ou encore qu'ils associent plusieurs mots (par exemple « maximedu78 »). Pour pallier ce problème, il utilise une attaque hybride.
Force brute hybride
Ce type d'attaque n'est qu'une sorte d'amélioration de la précédente attaque. Elle va combiner plusieurs mots d'un dictionnaire ou encore ajouter des chiffres à celui-ci, ce qui permet de recouvrir un plus grand nombre de mots de passe potentiels. Pour reprendre l'exemple précédent, cela pourrait permettre de retrouver un mot de passe du type « maximedu78 ». Avec cette attaque, en supposant que notre Bob possède un excellent dictionnaire et que le mot de passe ne soit composé que de mots communs (avec des chiffres ou pas), même s'il doit mettre plus de temps, il finira par trouver le mot de passe.
Finalement, après avoir laissé tourner son ordinateur pendant 7 jours, Bob Le Pirate n'a pas réussi à trouver le mot de passe et il sait qu'il ne lui reste que 2 options : soit il attend des années en essayant absolument toutes les combinaisons possibles sur le site en question (premier type d'attaque qu'on a vu), soit il abandonne. :D Et comme c'est une feignasse, il abandonne. :)
(Il faut savoir qu'un pirate, s'il est assez fort, arrive toujours à ses fins mais cela peut prendre du temps et donc on essaie de lui barrer la route le plus possible pour qu'il finisse par abandonner.)
J'aimerais dire une dernière chose sur les chiffres donnés sur la durée de chaque attaque : ce n'est qu'à titre d'information. En effet, cela peut être largement variable (selon si l'attaque se fait par Internet ou pas). Il y a beaucoup de facteurs à prendre en compte. De plus, je pense qu'il est possible de diviser le temps en faisant plusieurs attaques à la fois qui vont tester différentes combinaisons chacune.