Rainbow table
Une rainbow table est une liste de toutes les permutations possibles en texte clair de mots de passe chiffrés spécifiques à un algorithme de hachage donné.
Les rainbow tables sont souvent utilisées par les logiciels de craquage de mots de passe pour les attaques de sécurité réseau. Tous les systèmes informatiques qui nécessitent une authentification par mot de passe stockent des bases de données de mots de passe associés à des comptes d'utilisateurs, généralement chiffrés plutôt qu'en clair par mesure de sécurité.
Une fois qu'un attaquant obtient l'accès à la base de données de mots de passe d'un système, le craqueur de mots de passe compare la liste précompilée de hachages potentiels de la rainbow table aux mots de passe hachés de la base de données. La table arc-en-ciel associe des possibilités de texte en clair à chacun de ces hachages, que l'attaquant peut ensuite exploiter pour accéder au réseau en tant qu'utilisateur authentifié.
Les tables arc-en-ciel rendent le craquage de mots de passe beaucoup plus rapide que les méthodes antérieures, comme le craquage par force brute et les attaques par dictionnaire. Selon le logiciel particulier, les tables arc-en-ciel peuvent être utilisées pour craquer des mots de passe alphanumériques à 14 caractères en 160 secondes environ. Cependant, l'approche utilise beaucoup de RAM en raison de la grande quantité de données dans une telle table.
Les tables arc-en-ciel ne sont devenues viables que récemment, car la quantité de RAM disponible dans les anciens ordinateurs était insuffisante. Une seule table arc-en-ciel pour un fichier alphanumérique standard représente près de 4 gigaoctets (Go). L'ajout de symboles au mélange augmente la quantité de mémoire nécessaire, comme le fait chaque étape supérieure du cryptage.
Pour se protéger contre les attaques utilisant les rainbow tables, les administrateurs système devraient ajouter des mesures de sécurité au cryptage des mots de passe, comme l'ajout de caractères générés de manière aléatoire (sel) aux hachages de mots de passe et éviter l'utilisation d'algorithmes de hachage de mots de passe dépassés.