Table arc-en-ciel
Une table arc-en-ciel est une structure précalculée utilisée pour retrouver des entrées probables à partir de hashes de mots de passe non salés.
Définition
Une table arc-en-ciel est une structure de données précalculée qui permet de revenir de nombreux hashes possibles à des entrées candidates, généralement des mots de passe. Au lieu de hacher les essais après une fuite de base, l'attaquant prépare à l'avance des chaînes de hashes et de réductions et stocke assez d'informations pour retrouver ensuite des correspondances probables.
Les tables arc-en-ciel sont surtout utiles contre des hashes rapides et non salés de mots de passe choisis par des humains. Ce n'est pas un déchiffrement magique: elles ne couvrent que l'espace d'entrée et l'algorithme utilisés pour les construire.
Fonctionnement
Les tables de recherche classiques stockent beaucoup de paires directes mot de passe-hash. Les tables arc-en-ciel réduisent le stockage en gardant des extrémités de chaînes: un hash est réduit en une autre entrée candidate, haché à nouveau, puis répété avec des fonctions de réduction changeantes. Pendant l'attaque, le hash cible est parcouru dans des positions de chaîne possibles jusqu'à trouver une extrémité correspondante.
C'est un compromis entre temps et stockage. Construire des tables utiles peut coûter cher, mais une fois créées elles testent rapidement de nombreux hashes non salés compatibles.
Défense
Un sel aléatoire unique par mot de passe rend une table précalculée inutile sur de nombreux comptes, car le sel change la valeur hachée. Les fonctions lentes de hachage de mots de passe comme Argon2id, bcrypt et PBKDF2 augmentent encore le coût de chaque essai.
Les sels ne rendent pas forts les mots de passe faibles, et les hashes rapides bruts comme MD5 ou SHA-1 restent de mauvais choix pour stocker des mots de passe même avec un sel. Stockez les mots de passe avec une fonction dédiée et des paramètres de coût actuels.
Un sel aléatoire unique rend les tables précalculées pour hashes non salés inefficaces entre comptes. L'attaquant devrait refaire un travail séparé pour chaque sel.
Non. La force brute calcule les essais pendant l'attaque; une table arc-en-ciel déplace une grande partie de ce travail dans une phase de précalcul.
Non. Elles couvrent seulement les algorithmes, sels et espaces de candidats utilisés pour les construire. Les longs secrets aléatoires et les hashes de mots de passe lents avec sel sont hors de portée de tables pratiques.