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.

Documents pareils