HASHCAT vs John The Ripper
Transcription
HASHCAT vs John The Ripper
HASHCAT vs John The Ripper CLAUDOT Nathan 1. INTRODUCTION Aujourd’hui, a ` l’heure o` u le monde de l’informatique est en pleine expansion, les fonctionnalit´es fournies de plus en plus perfectionn´ees la protection des donn´ees est devenue un probl`eme majeur. Chacun d’entre nous s’est d´ej` a inscrit sur un site fournissant, par cons´equent des informations personnelles, a d´esormais acc`es a ` son compte bancaire en ligne ou peut acc´eder a ` son compte client internet afin d’avoir acc`es aux d´etails de sa consommation, aux nouvelles offres disponibles... Bien ´evidement, une ´etape d’authentification via un mot de passe et un nom d’utilisateur (o` u une adresse mail) est n´ecessaire permettant a ` l’utilisateur de se connecter et de prouver son identit´e. Il est claire que ces donn´ees sont stock´ees quelque part sur le serveur. La question de la s´ecurit´e est alors primordiale : quiconque a acc`es a ` ces informations peut alors usurper votre identit´e et ainsi faire toute sorte de chose en votre nom (achats, r´ecup´erer des donn´ees bancaire...) C’est pourquoi les mots de passe ne sont jamais stock´es en clair dans la base de donn´ees mais sous forme d’une empreinte de taille fixe calcul´ee a ` l’aide d’une fonction de hachage. DOUMBIA Fadio - il doit ˆetre calculatoirement impossible de retrouver le clair a ` partir du hash - il doit ˆetre impossible de trouver deux clairs donnant la mˆeme empreinte Il existe plusieurs types de fonctions de hachage : MD5, SHA, Bcrypt, AES qui offre des performances plus ou moins bonnes. Le fait que les mots de passe ne soient pas stock´es renforcent la s´ecurit´e, cependant des logiciels tr`es puissants ont ´et´e d´evelopp´es permettant de retrouver le clair ` a partir de l’empreinte : ces logiciels sont des casseurs de mots de passe. Les plus connus sont Hashcat et John The Ripper qui se disent ˆetre les plus rapides au monde. A noter que ces logiciels sont d´estin´es a ` tester la suret´e des mots de passe et non au piratage. Comment s´ecuriser son mot de passe ? Tout d’abord la fonction de hachage qui calcule l’empreinte est tr`es importante : nous savons d´ej` a que MD5 est obsol`ete. Cette caract´eristique n’´etant pas du ressort de l’utilisateur, il faut ´eviter d’utiliser des mots du dictionnaire (trop classique). De plus la longueur du mot de passe est primordiale: plus le mot de passe est long plus il sera difficile a ` casser (au moins 14 caract`eres). Il faut ´egalement penser a ` utiliser touts les caract`eres disponibles : majuscules, minuscules, chiffres et caract`eres sp´eciaux. C’est une condition primordiale pour avoir un mot de passe s´ecuris´e. En derni`ere page, vous trouverez un tableau recensant le temps mis par un ordinateur en 2010 pour retrouver un mot de passe, en fonction de diverses caract´eristiques. 2. JOHN THE RIPPER [1] Les fonctions pr´esentent plusieurs caract´eristiques : John The Ripper est un logiciel libre de cassage de mot de passe, disponible sur plus d’une cinquantaine de platefomre. JTR supporte plusieurs fromats de chiffrement : il est en effet capable de d´ecrypter des hash obtenus via des fonctions de type MD5, LM, AFS, bcrypt, ce qui le rend tr`es populaire. John The Ripper poss`ede trois modes d’action : le mode simple, l’attaque par dictionnaire et le mode incr´emental. 2.1 Attaque par dictionnaire C’est le mode le plus simple. JTR s’appuie sur un dictionnaire (fichier contenant un mot par ligne) et teste chaque mot un par un. Si le mot de passe n’est pas dans le dictionnaire, la recherche ne sera pas fructueuse. Ainsi pour augmenter les chances de retrouver le mot de passe, des r`egles peuvent ˆetre appliqu´ees sur chacun des mots du dictionnaire. John The Ripper est fourni avec une liste de r`egles qui permettent d’´etendre l’espace de recherche et explorer les failles classiques dans l’´elaboration des mots de passe. A noter que l’utilisateur peut d´efnir ses propres r`egles. 2.2 Mode single C’est un mode tr`es rapide, dans lequel JTR va g´en´erer des mots de passes ` a partir du login, du GECOS et des noms des diff´erents r´epertoires. Diff´erentes r´egles vont ˆetre appliqu´ees sur les mots de passe g´ener´es. Par exemple, pour le nom d’utilisateur ‘toto’, JTR testerait ToTo, tOtO, TOTO, toto123... 2.3 Mode incremental C’est le mode le plus puissant : il permet d’´enum´erer toutes les combinaisons possibles de mots. Cependant la complexit´e d’une attaque de ce type augmente avec la longueur du mot de passe. En effet, pour un mot de passe de N caract`eres ind´ependants et uniform´ement distribu´es, le nombre de combinaisons totale est de : nbc aracterelongueur ce qui rend ce mode d’ex´ecution tr`es long (comme pour JTR). 3.2 Attaque par masque C’est un mode brute force plus sp´ecifique. Le but est de r´eduire le nombre de candidat possible en utilisant des masques. Ci dessous les masques possibles. ?l = abcdefghijklmnopqrstuvwxyz ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ ?d = 0123456789 ?a = ?l?u?d?s ?b = 0x00 - 0xff ] ?s = ”space”!”’()*+,-./:;<=>?@[‘ | Par exemple ?l?l?l?l?l?l?l g´en´erera toutes les combinaisons possibles entre aaaaaaa - zzzzzzz 3.3 Attaque par dictionnaire Elle est similaire a ` celle de John The Ripper. Chaque mot du dictionnaire est test´e pour savoir si il correspond a ` un mot de passe. 3.4 Attaque par combinaison - 26N si le mot de passe ne contient que des lettres de l’alphabet en minuscules ou majuscules - 52N si le mot de passe contient un m´elange de majuscules et minuscules - 62N si le mot de passe contient un m´elange de majuscules, minusculess et chiffres Elle est bas´ee sur l’attaque par dictionnaire, a ` la diff´erence que l’on peut combiner plusieurs dictionnaire entre eux. Par exemple pour un dictionnaire contenant les mots “password” et ”1234” et un autre dictionnaire contenant “bonjour”, les combinaisons test´ees seront passwordbonjour, 1234bonjour, bonjour1234, passwordBonjour, bonjourpassword, passwordBONJOUR etc. . . Le temps d’ex´ecution de ce type d’attaque pourrait donc ˆetre infinie pour un mot de passe le longueur classique. Afin d’augmenter l’efficacit´e, il est n´ecessaire de sp´ecifier les caract´eristiques de la recherche a ` savoir la longueur minimale, maximale du mot de passe et les caract`eres a ` utiliser. 3.5 3. C’est une attaque par combinaison ou un des dictionnaires est remplac´e par le r´esultat d’une brute force attaque. On peut remplacer le brute force pas une “attaque par masques” ou par une “attaque par r`egles” HASHCAT 3.6 Similaire a ` John The Ripper, hashcat s’est autoproclam´e comme ´etant le plus rapide et le plus performant craqueur de mot de passe au monde. Il est d´esormais capable de retrouver des mots de passe de plus de 50 caract`eres et utilise la puissance de la carte graphique pour acc´el´erer et augmenter ses performances. 3.1 Attaque hybride Brute force attaque Le mode brute force est le plus simple des modes propos´es par HashCat. Toutes les combinaisons possibles sont test´ees. Il suffit de sp´ecifier un ensemble de caract`eres ainsi que la longueur minimale et maximale des diff´erents mots de passe. Le nombre de combinaisons possibles est alors de Attaque par règles C’est l’attaque la plus efficace et flexible mais ´egalement la plus compliqu´ee. Elle peut ˆetre vue comme un langage de programmation pour la g´en´eration de mots de passe et permet de modifier, couper ou ´etendre des mots. Il est possible d’´ecrire ses propres r´egles, d’en g´en´erer automatiquement et d’utiliser des r`egles al´eatoires pour une session donn´ee. 3.7 Attaque par permutation Elle est bas´ee sur l’attaque par dictionnaire, mais cette fois c¸i pour chaque mot pr´esent, des permutations au niveau de chaque lettre sont effectu´ees. Par exemple, pour le mot abc, on testerait abc, acb bac, bca, cab, cba. . . 3.8 Table Lookup attaque Elle est toujours bas´ee sur l’attaque par dictionnaire mais il faut fournir une table en plus. Pour chaque mot du dictionnaire, et chaque caract`ere, on cherche une correspondance dans la table. Par exemple si le dictionnaire contient le mot “word1” et que la table contient les r`egles : -o=o -o=O -o=0 -o=. -w=w -1=1 -1=2 -1=3 -1=9 alors les nouveaux mots g´en´er´es seront : wOrd1, w0rd1, w.rd1, word2, wOrd2, w.rd2 . . . . Cela signifie en fait que toutes les lettres o seront remplac´ees par O, 0 et . , les lettres w resteront inchang´ees et les chiffres 1 seront remplac´ees par 2, 3, 9. Cette attaque est extrˆement efficace lorsque les mots de passe contiennent par exemple des @ a ` la place de a, ou des 3 ` a la place de e. 3.9 4.2 HASHCAT Afin de comparer rigouresement les deux logiciels, il aurait ´et´e interressant d’utiliser la m´ethode brute-force, qui est ´equivalente ` a la m´ethode incr´ementale de John the Ripper. Cependant cette m´ethode ´etait trop longue, nous avons pr´efer´e, pour comparer sur une mˆeme dur´ee la m´ethode hybride en utilisant un masque plus un dictionnaire de plus 700 000 mots. Dans un premier temps nous avons utilis´e le masque ?a?a?a?a+dico puis dans un second dico +?a?a?a?a. Toogle-case attaque Pour chaque mot du dictionnaire, on g´en`ere toutes les combinaisons possibles de lettres en majuscules et minuscules. Par exemple pour le mot “word1”, on testera worD1, woRd1, wOrd1, Word1 woRD1 . . . . Ce type d’attaque peut ´egalement ˆetre r´ealis´ee via une Table Lookup attack. 4. COMPARAISON Afin de comparer les performances de HASHCAT et John the Ripper , nous avons utilis´e une liste de mot de passe rockyou, comportant 917 491 mots de passe. Le changement de m´ethode au bout de 45 minutes explique la mont´ee soudaine. 5. 4.1 John The Ripper Afin de craquer cette liste de mot de passe avec le logiciel John the ripper, nous avons choisi la m´ethode incr´ementale. Cette m´ethode a permis de craquer 559 008 mots de passe sur une dur´ee de 1h30. CONCLUSION Il est difficile de d´et´erminer quel craqeur est le plus performant au vu des tests r´ealis´es. Cependant, Hashcat semble plus complet (il offre de nombreux mode compar´e a ` John the Ripper) mais ´egalement beaucoup plus difficile a ` prendre en main. John the Ripper et son mode incr´emental nous a permis de craqu´e des mots de passe de fa¸con continue (avec une evolution quasi lin´eaire) tandis qu’hashcat ne trouvait plus rien au bout de 45 minutes avec la m´ethode hybride (d’ou la n´ecessit´e de changer de m´ethode). Ainsi une m´ethode peut ne donner aucun r´esultat tandis qu’une autre peut trouver les mots de passe tr`es rapidement. hashcat serait donc plus ”souple” que JTR mais pas forc´ement plus rapide. Annexe: [2] 6. REFERENCES [1] inconnu. Les-bases-de-la-cryptographi. http://www.sharevb.net, IV.Syst`eme de hachage. [2] Mike Halsey MVP. How secure is your password? Troubleshooting Windows 7 Inside Out.