HASHCAT vs John The Ripper
Transcription
HASHCAT vs John The Ripper
HASHCAT vs John The Ripper CLAUDOT Nathan 1. INTRODUCTION Aujourd’hui, à l’heure où le monde de l’informatique est en pleine expansion, les fonctionnalités fournies de plus en plus perfectionnées la protection des données est devenue un problème majeur. Chacun d’entre nous s’est déjà inscrit sur un site fournissant, par conséquent des informations personnelles, a désormais accès à son compte bancaire en ligne ou peut accéder à son compte client internet afin d’avoir accès aux détails de sa consommation, aux nouvelles offres disponibles... Bien évidement, une étape d’authentification via un mot de passe et un nom d’utilisateur (où une adresse mail) est nécessaire permettant à l’utilisateur de se connecter et de prouver son identité. Il est claire que ces données sont stockées quelque part sur le serveur. La question de la sécurité est alors primordiale : quiconque a accès à ces informations peut alors usurper votre identité et ainsi faire toute sorte de chose en votre nom (achats, récupérer des données bancaire...) C’est pourquoi les mots de passe ne sont jamais stockés en clair dans la base de données mais sous forme d’une empreinte de taille fixe calculée à l’aide d’une fonction de hachage. DOUMBIA Fadio - il doit être calculatoirement impossible de retrouver le clair à partir du hash - il doit être impossible de trouver deux clairs donnant la même 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és renforcent la sécurité, cependant des logiciels très puissants ont été développés permettant de retrouver le clair à 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 être les plus rapides au monde. A noter que ces logiciels sont déstinés à tester la sureté des mots de passe et non au piratage. Comment sécuriser son mot de passe ? Tout d’abord la fonction de hachage qui calcule l’empreinte est très importante : nous savons déjà que MD5 est obsolète. Cette caractéristique n’étant pas du ressort de l’utilisateur, il faut éviter 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 à casser (au moins 14 caractères). Il faut également penser à utiliser touts les caractères disponibles : majuscules, minuscules, chiffres et caractères spéciaux. C’est une condition primordiale pour avoir un mot de passe sécurisé. En dernière 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éristiques. 2. JOHN THE RIPPER [1] Les fonctions présentent plusieurs caractéristiques : 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écrypter des hash obtenus via des fonctions de type MD5, LM, AFS, bcrypt, ce qui le rend très populaire. John The Ripper possède trois modes d’action : le mode simple, l’attaque par dictionnaire et le mode incrémental. 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ègles peuvent être appliquées sur chacun des mots du dictionnaire. John The Ripper est fourni avec une liste de règles qui permettent d’étendre l’espace de recherche et explorer les failles classiques dans l’élaboration des mots de passe. A noter que l’utilisateur peut défnir ses propres règles. 2.2 Mode single C’est un mode très rapide, dans lequel JTR va générer des mots de passes à partir du login, du GECOS et des noms des différents répertoires. Différentes régles vont être appliquées sur les mots de passe génerés. 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’énumérer toutes les combinaisons possibles de mots. Cependant la complexité d’une attaque de ce type augmente avec la longueur du mot de passe. En effet, pour un mot de passe de N caractères indépendants et uniformément distribués, le nombre de combinaisons totale est de : nbc aracterelongueur ce qui rend ce mode d’exécution très long (comme pour JTR). 3.2 Attaque par masque C’est un mode brute force plus spécifique. Le but est de réduire 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énérera toutes les combinaisons possibles entre aaaaaaa - zzzzzzz 3.3 Attaque par dictionnaire Elle est similaire à celle de John The Ripper. Chaque mot du dictionnaire est testé pour savoir si il correspond à 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élange de majuscules et minuscules - 62N si le mot de passe contient un mélange de majuscules, minusculess et chiffres Elle est basée sur l’attaque par dictionnaire, à la différence 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ées seront passwordbonjour, 1234bonjour, bonjour1234, passwordBonjour, bonjourpassword, passwordBONJOUR etc. . . Le temps d’exécution de ce type d’attaque pourrait donc être infinie pour un mot de passe le longueur classique. Afin d’augmenter l’efficacité, il est nécessaire de spécifier les caractéristiques de la recherche à savoir la longueur minimale, maximale du mot de passe et les caractères à utiliser. 3.5 3. C’est une attaque par combinaison ou un des dictionnaires est remplacé par le résultat d’une brute force attaque. On peut remplacer le brute force pas une “attaque par masques” ou par une “attaque par règles” HASHCAT 3.6 Similaire à John The Ripper, hashcat s’est autoproclamé comme étant le plus rapide et le plus performant craqueur de mot de passe au monde. Il est désormais capable de retrouver des mots de passe de plus de 50 caractères et utilise la puissance de la carte graphique pour accélérer et augmenter ses performances. 3.1 Attaque hybride Brute force attaque Le mode brute force est le plus simple des modes proposés par HashCat. Toutes les combinaisons possibles sont testées. Il suffit de spécifier un ensemble de caractères ainsi que la longueur minimale et maximale des différents 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 également la plus compliquée. Elle peut être vue comme un langage de programmation pour la génération de mots de passe et permet de modifier, couper ou étendre des mots. Il est possible d’écrire ses propres régles, d’en générer automatiquement et d’utiliser des règles aléatoires pour une session donnée. 3.7 Attaque par permutation Elle est basée sur l’attaque par dictionnaire, mais cette fois çi pour chaque mot présent, des permutations au niveau de chaque lettre sont effectuées. Par exemple, pour le mot abc, on testerait abc, acb bac, bca, cab, cba. . . 3.8 Table Lookup attaque Elle est toujours basée sur l’attaque par dictionnaire mais il faut fournir une table en plus. Pour chaque mot du dictionnaire, et chaque caractère, on cherche une correspondance dans la table. Par exemple si le dictionnaire contient le mot “word1” et que la table contient les règles : -o=o -o=O -o=0 -o=. -w=w -1=1 -1=2 -1=3 -1=9 alors les nouveaux mots générés seront : wOrd1, w0rd1, w.rd1, word2, wOrd2, w.rd2 . . . . Cela signifie en fait que toutes les lettres o seront remplacées par O, 0 et . , les lettres w resteront inchangées et les chiffres 1 seront remplacées par 2, 3, 9. Cette attaque est extrêment efficace lorsque les mots de passe contiennent par exemple des @ à la place de a, ou des 3 à la place de e. 3.9 4.2 HASHCAT Afin de comparer rigouresement les deux logiciels, il aurait été interressant d’utiliser la méthode brute-force, qui est équivalente à la méthode incrémentale de John the Ripper. Cependant cette méthode était trop longue, nous avons préferé, pour comparer sur une même durée la méthode hybride en utilisant un masque plus un dictionnaire de plus 700 000 mots. Dans un premier temps nous avons utilisé 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énère 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 également être réalisée via une Table Lookup attack. 4. COMPARAISON Afin de comparer les performances de HASHCAT et John the Ripper , nous avons utilisé une liste de mot de passe rockyou, comportant 917 491 mots de passe. Le changement de méthode au bout de 45 minutes explique la montée 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éthode incrémentale. Cette méthode a permis de craquer 559 008 mots de passe sur une durée de 1h30. CONCLUSION Il est difficile de détérminer quel craqeur est le plus performant au vu des tests réalisés. Cependant, Hashcat semble plus complet (il offre de nombreux mode comparé à John the Ripper) mais également beaucoup plus difficile à prendre en main. John the Ripper et son mode incrémental nous a permis de craqué des mots de passe de façon continue (avec une evolution quasi linéaire) tandis qu’hashcat ne trouvait plus rien au bout de 45 minutes avec la méthode hybride (d’ou la nécessité de changer de méthode). Ainsi une méthode peut ne donner aucun résultat tandis qu’une autre peut trouver les mots de passe très rapidement. hashcat serait donc plus ”souple” que JTR mais pas forcément plus rapide. Annexe: [2] 6. REFERENCES [1] inconnu. Les-bases-de-la-cryptographi. http://www.sharevb.net, IV.Système de hachage. [2] Mike Halsey MVP. How secure is your password? Troubleshooting Windows 7 Inside Out.