mercredi 20 février 2013

Rainbow tables

Dans toute la petite ribambelle de blogs que je suis, celui de Robert David Graham me plaît particulièrement car il passe son temps à casser les mythes de la sécurité informatique. Je vous invite à suivre son blog Errata Security.

Un article récent m'a particulièrement interpellé car je faisais partie de ceux qui se trompait et il s'agissait de l'utilisation des Rainbow Tables. Il explique à juste titre que c'est loin d'être la panacée quand le minimum de précaution est respecté, c'est à dire désactiver le stockage des hash LM et mettre une politique de complexité des mots de passe à 8 caractères contenant 3 des 4 catégories suivantes : minuscules, majuscules, chiffres et caractères spéciaux.

Les rainbow tables sont malgré tout très grosses. La seule table présentant en intérêt serait "ntlm_mixalpha-numeric#1-8_40000" sur http://www.freerainbowtables.com/tables/ et on peut s’asseoir sur les caractères spéciaux et les mots de passe de plus de 8 caractères.

Mais le plus important est que la recherche des hashs dans la rainbow est séquentielle (ce qu'on peut voir dans l'image ci-dessous avec le cassage de "p@sswor", puis "d"). L'opération se fait hash par hash, ce qui fait que le nombre de hash multiplie d'autant le temps de calcul. Dans une entreprise avec 10000 comptes utilisateurs et un historique de 5 mots de passe on atteint facilement 60000 hashs. Je me souviens avoir passé une nuit à l'hôtel pour casser 300 hashs, alors pas la peine de faire le calcul pour 60000.




Bref si on veut casser un maximum de mots de passe (disons pour faire des statistiques), il faut s'en remettre au cassage avec GPU et un bon dictionnaire. Ce dictionnaire contient 14 millions de mots de passe unique et avec quelques mutations (min/maj et concaténation de chiffres à la fin) on casse très rapidement une grosse moitié des hashs. Vous trouverez quelques bases de mots de passe sur le site de skullsecurity. Mais la meilleure source de mots de passe, ce sont les résultats des audits précédents qu'il faut anonymiser et conserver précieusement. C'est sur cette idée que c'est basé Rob Fuller quand il a créé White Chapel dont l'idée est de créer une base de mots de passe issus de toutes les sources possibles (mysql, sqlserver, vnc, Active Directory) et de tout rehasher avec tous les algorithmes possibles.




Voilà encore une bonne raison de faire de la capitalisation :-)

Aucun commentaire:

Enregistrer un commentaire