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.