Assiste News Dossiers Encyclopédie Comment Logithèque Alternathèque Crapthèque Outils Forum Boutique ? W TDF
|
|
|
||
---|---|---|
L'attaque par dictionnaires exhaustifs dure quelques nanosecondes, c'est tout. Mais un autre problème voit le jour : celui de la taille des dictionnaires.
Des logiciels simples, s'appuyant sur du matériel simple, permettent de construire des dictionnaires de " tous les mots de passe possibles " (toutes les combinaisons et permutations possibles de caractères, selon deux critères simples :
Un outil gratuit et Open Source comme " crunch - wordlist generator" fait l'affaire.
Prenons l'exemple d'un mot de passe habituel en 2012 : 8 caractères avec un jeu de caractères type 3 (voir § ci-dessous).
Cela fait 221 919 451 578 090 mots de passe possibles.
Ensuite (ou en même temps), on calcul les hashcodes, en MD5 et en SHA-1, de chaque mot de passe (les deux algorithmes de hachage les plus répandus).
On insère tout cela dans des fichiers indexés ultra rapides et ne prenant aucune place en mémoire Ram : les Arbres-B (B-Trees) (on est très loin de la "technologie" imbécile de DOS / Windows qui consiste à faire intégralement monter un fichier en mémoire (écroulement de la RAM disponible) pour faire une recherche pitoyablement séquentielle dedans (écroulement du temps)).
Chaque ligne de ce fichier (chaque "record") est long de 8 caractères (le mot de passe) + 16 caractères (le MD5 codé sur 128 bits) + 20 caractères (le SHA-1 codé sur 160 bits), soit un total de 44 caractères.
Pour faire simple, disons que la technologie Arbres-B (B-Trees) de ces fichiers, dans lesquels le hash MD5 et le hash SHA-1 sont des index, double la taille occupée par chaque "record". Chaque "enregistrement" (chaque ligne) de ce dictionnaire pèse donc 88 caractères.
Le dictionnaire aura donc une taille de : 88 x 221 919 451 578 090 caractères, soit 19 528 911 738 871 900 caractères soit 19528911,74 téraoctets !
Un dictionnaire de tous les mots de la langue du mot de passe attaqué, c'est 200.000 mots environ (moins en anglais, plus en français - 62 500 mots dans le petit Larousse 2014, environ 60.000 mots dans le petit Robert, environ 100.000 mots dans le grand Robert, 200.000 selon l'Académie Française, ici). C'est très peu de mots. Un dictionnaire de 200.000 mots, augmenté de 200.000 Hashcodes en MD5 et de 200.000 Hashcodes en SHA-1, prend très peu de place et l'attaque est très rapide.
Autres dictionnaires :
Par contre, un dictionnaire de toutes les combinaisons de mots de passe possibles avec, seulement, le jeu de caractères le plus faible (type 1 (voir § ci-dessous) soit 26 lettres + 10 chiffres, insensible à la case), permet de casser le mot de passe en quelque nanosecondes.
Mais c'est le volume de données d'un tel dictionnaire qui ne permet pas l'attaque par dictionnaire :
Pour des mots de passe de 8 caractères, le dictionnaire exhaustif pèserait 81 248 téraoctets (2 901 713 047 668 combinaisons de mots de passe de 8 caractères + 20 caractères pour le hash SHA-1 soit 2 901 713 047 668 x 28 = 81 247 965 334 704 caractères )!
Le temps de recherche dans de tels dictionnaires n'est pas excessivement long (s'ils pouvaient être construits) : tri préalable sur le hash puis recherches par dichotomie en accès direct (le hash étant en binaire, il est incompressible et une recherche par arbre-B (B-Tree) doublerait la taille du dictionnaire pour un gain, en vitesse d'accès, assez faible ).
Mots de passe de 9 caractères : 3 029 388 téraoctets
Mots de passe de 10 caractères : 112 818 603 téraoctets
Mots de passe de 11 caractères : 4 196 852 043 téraoctets
Mots de passe de 12 caractères : 155 960 437 193 téraoctets
Mots de passe de 13 caractères : 5 790 031 230 781 téraoctets
Mots de passe de 14 caractères : 214 757 522 014 427 téraoctets
Donc on ne peut pas construire de tels dictionnaires (sauf, peut-être, la NSA (UKUSA) ou l'Europe, qui ont des capacités de stockage illimitées)
Ces dictionnaires permettent d'avoir sous la main, en une fraction de seconde, la conversion en "clair" d'un hashcode mais leurs volumes sont tels que le principe lui-même des dictionnaires exhaustifs est impossible à mettre en oeuvre sauf pour des mots de passe très court s'appuyant sur des jeux de caractères de type 1 ou 2..
Les mots de passe donnés aux sites Web, lors de la création d'un compte, sont uniquement conservés de manière chiffrée/cryptée, en utilisant un algorithme de condensat/hashcode (encore que des hacks de certains sites ont prouvé que ce n'était pas toujours le cas).
Plus le jeu de caractères autorisé est riche, plus les tentatives de casser le chiffrement par condensat/hashcode des mots de passe seront difficiles, voire impossibles.
Vous pouvez donc juger rapidement de l'intérêt que met un site Web à vous protéger ou à s'en moquer éperdument (ou pour d'autres raisons plus troubles)
Pour simplifier, les jeux de caractères autorisés/utilisés par les sites Web sont classés, arbitrairement, en 4 types (il y a bien d'autres jeux de caractères intermédiaires) :
Nous disposons d'une base de temps de référence : en 2007, nsa.unaligned.orga conduit une construction d'un dictionnaire en s'appuyant sur un matériel spécifique. Il a fallu une seule journée pour calculer et construire un dictionnaire intégral, incluant les hashcodes, de toutes les combinaisons possibles de caractères pour des mots de passe de 8 caractères construits avec un jeu de caractères de type 3 (jeu de 64 caractères dans leur test, soit le calcul d'un dictionnaire contenant 221 919 451 578 090 entrées).
Cette opération a été menée avec des circuits logiques programmables (FPGA - field-programmable gate array, réseau de portes programmables) Virtex-II Pro (XC2VP20) introduit sur le marché en 2002. Ils délivrent 8000 MIPS.
En 2009, leur successeur est introduit sur le marché, Virtex-7 qui délivre 180.000 MIPS soit 22,5 fois plus de puissance.
A partir de là, on calcul le nombre de jours nécessaires pour calculer d'autres dictionnaires par de simples règles de trois.
On peut estimer que, mis à part le problème insoluble du volume de stockage de tels dictionnaires (plusieurs millions de milliards de teraoctets), tous les types de mots de passe dont l'établissement du dictionnaire intégral prend moins de 6 ans (2200 jours), sont compromis.
Les dictionnaires intégraux sont déjà tous construits mais leurs volumes les rend intransportables et inexploitables (sauf à disposer des moyens financiers, des moyens de stockage et des puissances de calcul de la NSA).
Les "Tables Arc en ciel" (Rainbow Tables) ont règlé le problème du compromis temps de calcul / volume de stockage.
Ces durées doivent sans arrêt être revues à la baisse. Les techniques de calcul distribué permettent de mettre simultanément des centaines de milliers ou des millions de PC, dotés de processeurs graphiques dont la puissance de calcul phénoménale augmente continuellement, au service de la résolution d'un même problème.
En 2012 on peut raisonnablement penser que toutes les "rainbow table", pour tous les algorithmes de chiffrement massivement utilisés (au moins MD5 et SHA-1), pour tous les types de jeux de caractères et pour toutes les longueurs de mots de passe jusqu'à 10 caractères, sont entièrement calculées. Les tables pour les mots de passe de 11 à 12 caractères devraient suivre.
Il ne faut jamais utiliser un mot (ou une combinaison de mots) réel existant dans un dictionnaire (Larousse, Robert, etc. ...)
Utilisez des mots de passe d'au moins 14 caractères de long !
Calculer la résistance de vos mots de passe.
|
|