Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique préventive - Décontamination - Antivirus - Protection - Protection de la Vie Privée

Rainbow Tables

Dernière mise à jour : 2018-10-12T14:52 - 12.10.2018
19.02.2015 - 00h00 - Paris - (Assiste - Pierre Pinard) - Ajouté HashTab

Entre le temps infini mis à casser un mot de passe en Force Brute ou la taille mémoire infinie des dictionnaires exhaustifs, il a fallu trouver un compromis. Les "Rainbow Tables" sont une technologie utilisée en cryptanalyse pour remonter d'un "hashcode" à la chaîne de caractères d'origine, le "mot de passe" que l'on cherche à casser, malgré l'utilisation d'un algorithme de cryptage univoque (à sens unique).

Rainbow TablesRainbow Tables - Les notions de hashcodesRainbow Tables

Un des usages de la Cryptographie est de partir d'une donnée et d'en calculer un "chiffre clé" unique (un Hashcode ou Condensat).

Exemple :
Un "chiffre clé" est une valeur calculée par un algorithme de hachage (les plus universellement utilisés sont CRC16, CRC32, NTLM, MD5, SHA-1, SHA-2, SHA-256) appliqué à une donnée (contenu d'un fichier, chaîne de caractères comme un "mot de passe" etc. ...), uniquement la donnée et toute la donnée. Peu importe le nom du contenant (s'il y en a un - nom du fichier...), ses attributs, ses dates prétendues de création ou de dernière modification etc. ... qui sont toutes des données externes à la donnée elle-même (elles forment l'enveloppe dont on ne doit pas tenir compte - on ne tient compte que du contenu).

Finalité d'un condensat et réputation d'un algorithme de calcul de condensats

La réputation de l'algorithme de calcul d'un hashcode (calcul d'un condensat - fonction de hachage) est de ne jamais produire deux hashcodes identiques si les objets (fichiers) contiennent la moindre différence. La fonction de hachage doit donc produire une clé unique d'identification d'une donnée unique (calcul homogène).


Exemples d'algorithmes de hachage
CRC16 Produit un hashcode (condensat) de 16 bits (4 caractères hexadécimaux)
CRC32 Produit un hashcode (condensat) de 32 bits (8 caractères hexadécimaux)
MD5 Produit un hashcode (condensat) de 128 bits (32 caractères hexadécimaux)
SHA-1 Produit un hashcode (condensat) de 160 bits (40 caractères hexadécimaux)
SHA-256 Produit un hashcode (condensat) de 256 bits (64 caractères hexadécimaux)
SHA-512 Produit un hashcode (condensat) de 512 bits (128 caractères hexadécimaux)
Etc. ... ...

Exemples de stockages chiffrés (cryptés) d'un même mot de passe selon divers algorithmes de hachage :
Mot de passe Secret 1
Bytes 53:65:63:72:65:74:20:31 (longueur=8)
Adler32 0d5002b8
CRC32 f12d6570
Haval 45d48542b5ee305a769ad2a772a2f240
MD2 4934bfbb60dacd24004f3f9eba0dae5b
MD4 681960160ad1ee6aba6574beae65299e
MD5 3827558347b988089547698445ea8dc4
RipeMD128 1e7a09422c54864d1ff83c9d61bcf409
RipeMD160 a4cf327f6bb9ff9903a64fd5e9f409d7f36dd5ef
SHA-1 7136a0430119d37b00f9723177bc14eb4e5a3a84
SHA-256 (SHA-2)
5a1c45473a963981e0a182815a9431caa6ba32c7c464f9aa8e24e9b9c14f5df7
SHA-384 (SHA-2)
70e52c8258950198be14b23167b5ef78ec4f73d46f3e4263c3ef7fae539d9f25413a2804cd08454ed259f79db0b06316
SHA-512 (SHA-2)
22ffbc4c4f0c243d8dff78aac024c7699db6dffba5e25032353eceab3237ee7b02c72c24a3ce8928a84f171363065bec3b3031b47c18e16b8fd98f98d6504b66
Tiger 7ef5afbb8327bd37166ab63cb27cd64752284f237d8da6d6
Whirlpool baac0f62f8a9fb13a9b6d797380b4a335f915332c791487aa9214c883caf2d1aa9676fc03819500c25eafd0c9aea69b87efe3b5000e26fff4aa7f9ee7484a46b


L'intérêt des "chiffres clé" est triple :
  1. Intégrité des données
    Il est impossible de modifier la donnée (injection d'un parasite, tel un virus, modification d'un seul bit ou, tout simplement, nouvelle version de la donnée...) en lui conservant un même résultat de calcul de "chiffre clé". Par exemple : un fichier est proposé en téléchargement et son "chiffre clé" MD5 ou SHA-1 est affiché sur le site proposant ce fichier (c'est le cas de Assiste.com - regardez la zone de téléchargements du site). Une fois le fichier réceptionné, vous utilisez SummerProperties pour recalculer ce "chiffre clé" avec le même algorithme MD5 ou SHA-1. Si les deux "chiffres clé" sont identiques, le fichier réceptionné est strictement le même que celui d'origine. C'est le principe du "Contrôle d'intégrité des données" (qui ne doit pas être confondu avec l'innocuité des données - vous pouvez seulement vous assurer que le téléchargement s'est bien passé, rien d'autre - si le fichier téléchargé est un virus, vous vérifiez ainsi que vous avez reçu un virus en parfait état ! Faites-le analyser gratuitement et immédiatement par plus de 40 antivirus simultanés avant de l'exécuter (avant de l'ouvrir) !

  2. Calcul à sens unique (théoriquement)
    Il n'est, théoriquement, pas possible de faire le calcul inverse : de remonter d'un "chiffre clé" (Hashcode) à la chaîne de caractères d'origine (il n'est pas possible (théoriquement) de retrouver le mot de passe à partir de son chiffre clé). Nous verrons, dans les techniques d'attaques des mots de passe, que ce vœu pieux est battu en brèche.

  3. Unicité du chiffre clé
    De purs travaux de laboratoire ont permis la création de "chiffres clé" identiques (appelés "Collisions") à partir de données différentes. Ce risque est total avec les algorithmes antédiluviens et abandonnés comme CRC16 et CRC32. Ce risque existe avec les algorithmes MD5 avec lesquels il est désormais possible de créer des "Collisions". Pour prendre un peu d'avance sur les futurs développements matériels et logiciels des cybercriminels, même SHA-1 est en voie d'abandon et on commence le calcul des condensats avec SHA-256.
Application aux "mots de passe" :
Lorsque vous créez un "mot de passe" pour protéger l'accès à une ressource (votre ordinateur, un fichier, un compte sur un site ou un forum, un panneau de gestion d'un compte en banque d'entreprise ou de particulier, un document secret d'un chercheur, d'un journaliste, d'un avocat..., les correspondances d'un diplomate ou d'un homme politique etc. ...), le "mot de passe" n'est pas (normalement) stocké en clair. Le "site de confiance" le crypte, sous forme d'un "chiffre clé" ("hashcode"), le plus souvent avec l'algorithme MD5 ou SHA-1, et stocke uniquement votre identifiant et le "chiffre clé", mais ne stocke pas en clair le mot de passe lui-même.

Lorsque vous revenez vous identifier pour utiliser cette ressource protégée, vous saisissez (composez) à nouveau votre identifiant (login) et votre "mot de passe". Le site refait un calcul de "chiffre clé" avec le même algorithme.

Le site compare alors le "chiffre clé" du mot de passe de référence à celui qui vient d'être calculé. Si les deux sont identiques, c'est que les deux "mots de passe" sont identiques. L'autorité vous donne alors accès à la ressource, sinon elle vous en interdit l'accès.
  • Note 1
    D'où l'intérêt des logiciels en "Open Source" où l'on peut voir comment sont traités les données sensibles tandis qu'on ne peut qu'avoir des soupçons de malveillances avec les logiciels "propriétaire" et les sites pour lesquels aucune confiance ne peut être accordée (comme tous les réseaux sociaux, les éditeurs de logiciels proches de leurs gouvernements, les nébuleuses du "Cloud Computing" etc. ...)

  • Note 2
    C'est la raison pour laquelle, lorsque vous perdez votre "mot de passe", il n'est pas possible de le retrouver car, s'il est possible de calculer un MD5 ou un SHA-1 à partir d'un "mot de passe", il n'est théoriquement pas possible de retrouver (recalculer) le "mot de passe" d'origine à partir de son MD5 ou de son SHA-1.

  • Note 3
    Il serait préférable que, lors de la saisie de votre mot de passe, la communication entre votre ordinateur et celui du site distant se fasse dans un protocole de communication sécurisé (HTTPS), sinon une attaque par "sniffer" lira vos mots de passe en clair, avant qu'ils ne soient cryptés. Regardez en bas à droite de votre navigateur si un cadenas fermé apparaît. Mais le protocole HTTPS ne sera mis en œuvre que par des sites professionnels. Ce ne sera pas le cas des millions de forums, blogs etc. ... sur lesquels il faut également s'identifier (d'où l'intérêt d'utiliser des mots de passe différents).

  • Note 4
    Certains sites Internet usurpent l'apparence de sites ayant pignon sur rue est utilisent des URL trompeuses. Sur de tels sites de "phishing", vers lesquels vous êtes souvent dirigés depuis un e-mail trompeur, vos identifiant et mot de passe sont stockés en clair et exploités immédiatement par des cybercriminels. Et absolument rien ne permet d'être certain de ce que font les très grands sites à la solde des gouvernements, comme Microsoft (Microsoft vous espionne) ou Google (Google vous espionne).

Rainbow Tables - Régler le problème du temps lors des attaques en force bruteRainbow Tables - Régler le problème du temps lors des attaques en force bruteRainbow Tables - Régler le problème du temps lors des attaques en force brute

Le cybercriminel, qui s'est procuré un mot de passe chiffré (son cryptage sous la forme d'un "code de hachage" appelé aussi "chiffre clé"), ou les millions de "chiffres clé" des clients d'une banque, d'un site e-marchand, d'un réseau social etc. ..., par divers procédés de piratage, va utiliser un logiciel spécialisé et, éventuellement, du matériel spécialisé, pour attaquer en "Force brute" les "chiffres clé" (codes de hachage) qu'il s'est procuré et remonter du "chiffre clé" (code de hachage) au mot de passe en clair, bien que le "hachage" soit considéré comme une opération univoque (il n'est, en théorie, pas possible de remonter d'un "code de hachage" (un "chiffres clé") au texte d'origine en clair). Cette forme d'attaque en "Force brute" (ou "Recherche exhaustive") contre les "codes de hachage" des mots de passe (les "chiffres clé") consiste à tenter toutes les combinaisons possibles de caractères des "codes de hachage" jusqu'à trouver les bonnes combinaisons qui correspondent aux "mot de passe" d'origine.

Si l'algorithme de hachage utilisé est, par exemple, SHA-1, qui "crypte" les mots de passe en "chiffres clé" (codes de hachage) de 160 bits de long, le nombre de calculs qui doivent être effectués est 2 ^ 160 (2 puisque chaque position binaire (chaque bit) ne peut prendre que deux valeurs, 0 ou 1, à la puissance 160 puisque le hachage se fait sur 160 bits).

Note :
Le cyber criminel gagne du temps s'il sait quel est le jeu de caractères autorisé pour la création des "mots de passe" qu'il tente de casser, ainsi que les longueurs minimum et maximum de ces mots de passe. Une faille de sécurité est, d'ailleurs, que ces informations sont faciles à obtenir : il suffit de tenter d'ouvrir un compte sur le système attaqué pour que l'autorité vous dise, la plupart du temps, que votre "mot de passe" doit faire tant de caractères de long et ne comporter que tels et tels caractères. Le choix de l'algorithme d'attaque en "Force brute" ou de la portion du dictionnaire pour une attaque par Dictionnaire ou le choix de la Rainbow table à utiliser pour attaquer tous les mots de passe d'une autorité est ainsi dévoilé par l'autorité elle-même !

Le cybercriminel peut alors utiliser le couple "login + mot de passe" pour accéder à la ressource convoitée.

On peut oser un rapprochement incongrue et déclarer que les "attaques par dictionnaires" sont une forme "intelligente" d'attaque en "force brute". Contre des "mot de passe" un peu durs, l'attaque en "Force brute", bien que possible, va prendre des mois, voire des années, pour percer un seul "mot de passe", même avec les vitesses de calcul actuelles de nos ordinateurs. C'est le problème du Temps. Accéder à une donnée avec des années de retard sur sa signifiance risque de conduire à une donnée totalement périmée, n'ayant plus aucune valeur.

Rainbow Tables - Régler le problème du volume mémoire lors d'attaques par dictionnairesRainbow Tables - Régler le problème du volume mémoire lors d'attaques par dictionnairesRainbow Tables - Régler le problème du volume mémoire lors d'attaques par dictionnaires

L'attaque des "mots de passe" par dictionnaire est une forme d'attaque dirigée contre les "mots de passe" en clair, pas contre le chiffrement des mots de passe (pas contre les "hashcodes"). On se limite à tenter des mots existants réellement dans un dictionnaire au lieu de tenter, en aveugle (en "force brute" pure), toutes les combinaisons possibles de caractères.

L'idée est qu'un utilisateur aura tendance, naturellement, à aller vers la facilité et donc à utiliser quelque chose de facile à retenir, quelque chose existant déjà, au lieu d'une suite barbare de caractères impossibles à mémoriser (ce qui est, pourtant, l'une des règles de bonne pratique avec les mots de passe).

L'attaque par dictionnaire cherche donc à pallier le problème du temps soulevé par les attaques en "force brute". Elle risque de passer à côté de mots de passe tarabiscotés, mais est beaucoup plus rapide que la "force brute". Seul le compromis temps/mémoire par "Tables Arc-en-ciel" arrive à casser relativement rapidement tous les mots de passe.

Nombre de combinaisons possibles lors d'une attaque par dictionnaire
Dans une attaque en "force brute" de mots de passe de 8 caractères de long utilisant un jeu de caractères simpliste, de 26 lettres uniquement (majuscules ou minuscules - insensibles à la case) et les 10 chiffres, il y a déjà 2 901 713 047 668 combinaisons possibles.

Dans une attaque par dictionnaire, on va tenter tous les mots présents dans de simples dictionnaires de la langue de l'utilisateur attaqué ainsi que les mots de passe faibles habituels (mots de passe par défaut des équipements, dates, immatriculations de véhicules, dictionnaires de noms d'animaux, dictionnaires des patronymes d'un pays ou d'une culture, dictionnaire des prénoms, etc. ...).

En nombre, cela donne :

  • 200.000 combinaisons existant réellement dans la langue française, noms propres inclus (selon l'Académie Française, ici). Et encore... un dictionnaire d'écolier, avec 20.000 mots, est suffisant ! Et encore... dans une attaque contre un mot de passe que l'autorité de vérification limite à 8 caractères, il faudrait ne tenir compte que des mots de moins de 9 caractères !

  • Ajoutons à cela les "mots de passe" les plus bêtes, construits à partir de dates. Généralement, ce sont les dates anniversaires de naissance ou d'un évènement vécu qui sont utilisées. On se limitera donc aux 100 dernières années soit, à raison de 365 dates par an, 36.500 dates. Combien êtes-vous à utiliser la date de la prise d'Uxellodunum comme mot de passe ?

  • Dans le pire des cas, si l'attaque est robotisée, ajoutons :

    • Environ 20.000 prénoms
    • Environ 1.500.000 patronymes
    • Les noms d'animaux (nombre ?)
    • Les immatriculations possibles de véhicules (nombre ?)
    • Les juxtapositions et permutations de patronymes/prénoms ou prénoms/patronymes ou leurs initiales
Si ces attaques prennent, normalement, beaucoup de temps, même si elles en prennent beaucoup moins que les attaques en "force brute", le hasard peut s'en mêler et l'attaque peut aboutir rapidement. Il en est ainsi de l'attaque par dictionnaire faite par un pirate dont le pseudo était GMZ, en janvier 2011, contre le réseau social Twitter. Assis devant son écran, et après une seule nuit d'attaque contre le compte d'un administrateur dont le pseudo est "Crystal", GMZ trouva son mot de passe, "happiness", un mot que l'on trouve dans un dictionnaire basique anglais (donc un "mot de passe" très faible !). Une vidéo de cette attaque existe :

Chargement...

Attaque réussie, par dictionnaire


Pourquoi ne pas construire, une bonne fois pour toutes, des dictionnaires inverses utilisant toutes les combinaisons possibles de caractères pour les mots de passe et en calculant à l'avance tous leurs hascodes ?
Parce que de tels dictionnaires sont impossibles à stocker !

Pourrait-on établir un dictionnaire de toutes les combinaisons possibles de caractères (pour des mots de passe d'une longueur maximum donnée utilisant un jeu de caractères donné) et mettre ça sur un CD-Rom avec le calcul de tous leurs hashcodes ? Ainsi, lorsque l'on se trouvera en présence d'un hashcode donné, il suffira de le chercher dans le dictionnaire pour, en moins d'un pouième de seconde, trouver le mot de passe convoité à l'origine du hashcode. En théorie, on peu construire un tel dictionnaire et il n'est pas très lent à construire. Dans la pratique, non ! Dès qu'un mot de passe est un peu long, les tailles de tels dictionnaires sont gigantesques, délirantes.

Par exemple, la mémoire de stockage d'un seul de ces dictionnaires, pour toutes les combinaisons possibles de mots de passe d'une longueur donnée et leurs hashcodes SHA-1, dans un jeu de seulement 36 caractères (les 26 majuscules ou les 26 minuscules + les 10 chiffres), serait de :

Mots de passe de 8 caractères : 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


Pourquoi ne pas construire, une bonne fois pour toutes, des dictionnaires inverses utilisant tous les mots du dictionnaire de la langue et de quelques autres dictionnaires (prénoms, patronymes...) ?

Multiplions les 200.000 mots de la langue française par 10 (pour tenir compte des masculins/féminins/singuliers/pluriels/conjugaisons, etc. ...)
Il existerait plus de 20.000 prénoms
Il y aurait environ 1.500.000 patronymes
365 jours par ans pour les 100 dernières années soit 36500 dates
Arrondissons à 30 millions de mots et combinaisons, sans tenir compte de détails inutiles ici) :

Mots de passe de 8 caractères : 840 GO (30.000.000 * (8 caractères + 20 caractères pour le hash SHA-1) soit 30.000.000 x 28 = 840 000 000 caractères - Ca tient sur un petit Disque dur courant. Le temps de recherche dans de tels dictionnaires n'est pas significatif : 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 : 870 GO
Mots de passe de 10 caractères : 900 GO
Mots de passe de 11 caractères : 930 GO
Mots de passe de 12 caractères : 960 GO
Mots de passe de 13 caractères : 990 GO
Mots de passe de 14 caractères : 1020 GO


Rainbow Tables : Le compromis Temps / MémoireRainbow Tables : Le compromis Temps / MémoireRainbow Tables : Le compromis Temps / Mémoire

Lorsqu'un cybercriminel pénètre sur un ordinateur (gouvernements, banques, entreprises, particuliers...) et en vole les comptes, il se trouve (normalement) face à des listes de comptes dont les "mots de passe" ne sont représentés que par des "chiffres clé".

Lorsqu'un service informatique d'une entreprise ou un service après vente ou une police anti-criminalité se trouve face à des "mots de passe" perdus (un employé licencié ou décédé, ou vous-même qui avez oublié votre "mot de passe"...), il se trouve face au stockage de la version cryptée d'un "mot de passe", son "chiffre clé".

Ce sont donc développés deux axes de recherches pour remonter au "mot de passe" d'origine à partir de son "chiffre clé". Chacun de ces deux axes pose un problème :

  1. Le problème du temps pour craquer un mot de passe par une attaque en Force brute :
  2. Le problème du volume de mémoire des annuaires inverses pour craquer un mot de passe par une attaque par dictionnaire
Il a donc fallu trouver un "Compromis Temps - Mémoire" pour attaquer les "chiffres clé". C'est l'objet des "Rainbow Tables" (Tables Arc en ciel) qui contiennent des pré-calculs intermédiaires permettant de construire des structures de tables conduisant à des calculs finaux rapides. Pratiquement tous les "mots de passe" peuvent être cassés en quelques minutes, quelque soit l'algorithme (standard) utilisé et quelque soit la plateforme utilisée (Windows, Unix...) à condition que la table ait été construite (ce qui nécessite des puissances de calcul colossales obtenues, pour l'élaboration de tables gratuites, avec des solutions de "calcul distribué" et l'exploitation des phénoménales puissances de calcul des processeurs graphiques - Programmes CUDA et processeurs graphiques NVidia dans l'accélération du "calcul distribué").

Il existe également des outils, adossés à des "tables Arc en ciel" ("Rainbow Tables"), permettant de craquer les documents Word et Excel de Microsoft Office (versions compatibles Office 97) en quelques minutes, avec un taux de réussite de 99,6%.

Les algorithmes CRC16 et CRC32, ridiculement anciens et faibles, n'offrent strictement aucune fiabilité. Des discussions déjà anciennes (1, 2), qui remontent à 2001, à propos de l'antivirus controversé Viguard, dans le groupe de discussion "animé" fr.comp.securite.virus, laissait entendre que des dropper comme "Zhengxi" (improprement qualifié de virus) arrivaient à tromper les algorithmes CRC32.


Rainbow Tables : Disponibilité des tables Arc-en-cielRainbow Tables : Disponibilité des tables Arc-en-cielRainbow Tables : Disponibilité des tables Arc-en-ciel

Durant le DefCom 2012, une société spécialisée dans la cassage de mots de passe, Stricture-Group, met des tables Arc-en-ciel à disposition dans un Cloud. Il n'est plus nécessaire de télécharger.


Chargement...

14.11.2013 - Téléchargements illégaux - forum-ddl - 10 mois de prison et plus d'un million d'euros de dommages et intérêts
Informations BFM-TV le 14 novembre 2013

Rainbow Tables : Contre mesuresRainbow Tables : Contre-mesures" Rainbow Tables : Contre mesures "

Utiliser des "mots de passe durs".
Aujourd'hui, un "mot de passe" faible, de moins de 10 caractères, utilisant un mixte limité de majuscules (26 lettres) / minuscules (26 lettres) et chiffres (10 chiffres), peut être craqué en quelques secondes grâce à des "tables Arc en ciel" ("Rainbow tables").

Nous autres, francophones, avons la chance d'avoir tout un tas de lettres accentuées auxquelles les cybercriminel, souvent anglophones, ne pensent pas. Utilisons-les dans nos "mots de passe". Ajoutons à nos "mots de passe" quelques-uns des caractères accentués et signes spéciaux, ce qui ajoute 33 caractères possibles. La plupart des "tables Arc en ciel" ("Rainbow tables") ne tiennent pas compte de ces 33 caractères.

On peut voir, sur cette page du "RainbowCrack Project", que des "tables Arc en ciel" ("Rainbow tables") proposées en janvier 2012 utilisent uniquement le jeu de caractères "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" (aucun caractère spécial et aucun caractère accentué) et que les chaînes de caractères sont limitées à 1 à 9 caractères. Donc un "mot de passe" de 14 caractères ou plus, utilisant le jeu de caractère "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789²&é"'(-è_çà)=#{[|^@]}$£¤ù%*µ,?;.:/!§" ne sera pas attaquable par des "tables Arc en ciel" ("Rainbow tables") courantes ou gratuites. Quant-aux tables "professionnelles", très chères, elles sont utilisées par des pirates professionnels, des polices et gouvernements et ont peu de chance d'être utilisées contre un particulier qui n'a rien de particulier (qui ne se fait pas remarquer, qui ne sort pas la tête de l'eau...). On remarquera également que le caractère "espace" est presque toujours ignoré donc c'est une bonne idée de l'utiliser (si on peut l'utiliser car, curieusement, la plupart des procédures de création de "mots de passe" interdisent de durcir un "mots de passe" : jeu de caractères réduit, longueur du "mot de passe" limitée).

Sur le plan de l'implémentation de l'algorithme, une règle est d'utiliser un grain de sable (appel "salt" - sel). Il faut "saler les mots de passe" de manière totalement aléatoire.

Sur le plan de la confiance, il est impératif de n'utiliser que des outils Open Source.


Ces tables Arc en Ciel gratuites, terminées le 26 janvier 2012, utilisées pour craquer rapidement les protections par mot de passe, ne vont pas plus loin que des mots de passe de 1 à 9 caractères et ignorent les caractères spéciaux.


Outils de calcul de hashcodes et de cassage de hashcodesRainbow Tables - Outils de calcul de hashcodes et de cassage de hashcodesOutils de calcul de hashcodes et de cassage de hashcodes

  1. Outils en ligne
    Outils ou service de calcul de "chiffres clé" et/ou de calcul inverse (casser un condensat pour retrouver un "mot de passe" à partir d'un "chiffres clé") :

    Est-il utile de vous dire qu'il est préférable de ne jamais utiliser ces services en ligne pour chiffre (crypter) vos "mots de passe" réels. De nombreux sites (tous ?) offrant ce type de services de calcul en ligne sont des sites de cybercriminels collectant ainsi des "mots de passe". Il en va de même en ce qui concerne le décryptage d'un chiffre clé (casser un condensat - chiffres clé - hashcode) : à partir du moment où vous demandez un tel décryptage, il y a fort à parier que cela concerne l'un de vos propres mots de passe et, comme l'ordinateur distant connaît l'adresse IP de votre ordinateur, le pirate qui est derrière sait quelle machine attaquer et dispose d'un "mot de passe" en clair à exploiter.

    Services en ligne

    Outils à installer de manière locale

    • SummerProperties (petit programme gratuit de calcul des MD5 et SHA-1 d'un fichier sous Windows - s'implante en onglet additionnel des propriétés des fichiers de Windows - Obsolette).
    • HashTab (petit programme gratuit de calcul de nombreux algorythmes (Adler32; Btih; CRC32; ED2K; Gost; MD2; MD4; MD5; Ripemd-128; Ripemd-256; Ripemd-320; SHA-1; SHA-256; SHA-384; SHA-512; SHA3-224; SHA3-256; SHA3-384; SHA3-512; TTH; Tiger; Whirlpool) de condensats (hashcodes) - s'implante en onglet additionnel des propriétés des fichiers de Windows - Vivement recommandé).

  2. Outils à télécharger pour un usage local
    Rcracki_mt (Outil Open Source d'attaque utilisant les tables du Projet "Tables Arc en ciel gratuites")
    Projet "Tables Arc en ciel gratuites"
    Client de Calcul distribué pour le projet "Tables Arc en ciel gratuites" - (Calcul distribué ?)

    Ophcrack (Outil Open Source d'attaque par l'inventeur des "Tables Arc en ciel")
    Tables gratuites pour Ophcrack (Tables gratuites)
    Tables professionelles pour Ophcrack (Tables commerciales)

    Ophcrack_office (Commercial - cracke les "mots de passe" Word/Excel en 5 minutes - (chiffrement compatible Office 97))

    John the Ripper


Derrière le rideauDerrière le rideauDerrière le rideau

En 1980, Martin E. Hellman, un cryptologue américain, inventeur de la cryptographie asymétrique (utilisation d'une paire de clés publique et privée), formalise une méthode utilisant des tables inverses partielles, fonction de l'algorithme de cryptage utilisé, pour récupérer des clés à partir de leurs traces cryptées. Cette méthode cherche un compromis entre :
  • Le temps qu'il faudrait passer à faire un calcul exhaustif (en moyenne, la moitié de toutes les combinaisons possibles : attaque en "Force Brute")
  • La mémoire de stockage impensable d'annuaires inverses complets.
Cette méthode est appelée "Compromis Temps - Mémoire", publiée dans un article "A cryptanalytic time-memory trade-off", en 1980.

En 2003, Philippe Oechslin améliore considérablement la méthode en proposant des structures de tables appelées "Rainbow Tables".


RessourcesRessources" Ressources "

Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows, Philippe Oechslin
Attacking NTLM with Precomputed Hashtables
Les attaques par compromis temps-mémoire
Tables Arc en ciel
Ophcrack (the time-memory-trade-off-cracker) par Philippe Oechslin, l'inventeur des "Tables Arc en ciel"