Dans le cours : Découvrir la cryptographie et la sécurité des réseaux
Exploiter les rainbow tables
Dans le cours : Découvrir la cryptographie et la sécurité des réseaux
Exploiter les rainbow tables
Maintenant, nous allons découvrir la notion de rainbow tables. Les rainbow tables ou tables arc-en-ciel représentent une technique qui essaie de concilier la taille du fichier et le temps de calcul raisonnable, contrairement à ce qu'on peut retrouver dans des attaques de type brute forcing ou par dictionnaire, qui malheureusement représentent des attaques certes efficaces mais qui vont prendre énormément de temps. Les rainbow tables quant à eux vont essayer de mettre à notre disposition un compromis en mémoire. Il faut donc Tout d'abord générer une table puis cracker les empreintes à l'aide de cette table, pour ensuite comparer le résultat au mot de passe que l'on souhaite cracker. Plus précisément, la tâche de calcul de hachage est effectuée à l'avance et les résultats sont stockés dans ce qu'on appelle des rainbow tables ou tables arc-en-ciel. Après cela, les hash peuvent être consultés à partir des tables arc-en-ciel lors de la phase du cracking de mot de passe. Le processus de calcul de la force brute est donc évité. Une fois le temps de précalcul terminé, la performance de consultation de tables peut être des centaines ou des milliers de fois plus vite que la force brute. Cette technique fonctionne très bien avec les hash non salés, c'est-à-dire sans valeur aléatoire ajoutée pour éviter justement ce type d'attaques. Si on possède la bonne table, un mot de passe complexe peut être cracké en quelques minutes plutôt que quelques semaines, quelques mois ou même parfois quelques années avec l'attaque force brute. À noter que vous n'utilisez pas seulement des valeurs de hachage pour crypter les mots de passe, les fonctions servent aussi. Concernant les fonctions de réduction, il faut savoir que les valeurs de hachage contenues dans les tables arc-en-ciel ne sont pas créées lors d'une attaque mais à l'avance comme on l'a spécifié. Cependant, les fichiers qu'on va utiliser sont très volumineux. Les rainbow tables utilisent donc une fonction de réduction pour éviter l'encombrement de l'espace de stockage nécessaire. Ces fonctions convertissent la valeur de hachage en texte clair. À savoir que la fonction de réduction n'annule pas la valeur de hachage, de sorte qu'elle n'affiche pas le texte clair brut d'origine. Ce n'est pas possible donc à la place, elle en affiche une toute nouvelle. Donc une nouvelle valeur de hachage est générée à partir de ce texte. Dans une table arc-en-ciel, cela n'a pas lieu une seule fois mais plusieurs fois de sorte qu'une chaîne comme vous pouvez le voir sur la figure est créée. Dans le tableau final cependant, seuls les premiers mots de passe et la dernière valeur de hachage d'une chaîne apparaissent. Sur la base de ces informations et en tenant compte des fonctions de réduction utilisées, toutes les autres valeurs peuvent être déterminées. La valeur de hachage à cracker est réduite de façon répétée et hachée selon les mêmes règles, chaque résultat intermédiaire étant comparé aux valeurs du tableau.