Mise à JOUR: j'ai appris récemment à partir de cette question que dans l'ensemble de la discussion ci-dessous, je (et je suis sûr que les autres l'ont fait aussi) était un peu confus: Ce que je l'appel, un arc-en-ciel de la table, s'appelle en fait une table de hachage. Rainbow tables sont plus complexes créatures, et sont en fait une variante de Hellman Chaînes de Hachage. Mais je crois que la réponse est toujours la même (depuis il ne marche pas descendre à la cryptanalyse), quelques éléments de la discussion peut-être un peu biaisé.
La question: "Quelles sont les rainbow tables et comment sont-ils utilisés?"
En général, je recommande toujours à l'aide d'un chiffrement puissant valeur aléatoire comme le sel, pour être utilisé avec les fonctions de hachage (par exemple, pour les mots de passe), comme la protection contre l'arc-en-ciel de la Table des attaques.
Mais est-il réellement du point de vue cryptographique nécessaire pour le sel aléatoire? Serait une valeur unique (unique par utilisateur, par exemple userId) suffit à cet égard? Il serait, en effet, de prévenir à l'aide d'un simple arc-en-ciel de la Table pour faire craquer tous (ou la plupart) des mots de passe dans le système...
Mais le manque d'entropie vraiment affaiblir la robustesse cryptographique des fonctions de hachage?
Remarque, je ne demande pas au sujet de pourquoi utiliser du sel, comment la protéger (il n'a pas besoin de l'être), à l'aide d'une seule constante de hachage (ne), ou ce genre de fonction de hachage à utiliser.
Simplement de savoir si le sel besoins de l'entropie ou pas.
Merci à tous pour les réponses, mais j'aimerais me concentrer sur les domaines que je suis (un peu) moins familiers avec. Principalement des implications pour la cryptanalyse - j'apprécierais plus si quelqu'un a des commentaires à partir de la crypto-mathématiques PoV.
Aussi, si il y a d'autres vecteurs qui n'avait pas été pris en compte, c'est génial d'entrée (voir @Dave Sherohman point sur plusieurs systèmes).
Au-delà, si vous avez une théorie, une idée ou une meilleure pratique - s'il vous plaît revenir ce soit avec la preuve, le scénario d'attaque, ou de preuves empiriques. Ou même les considérations valables pour les contreparties acceptables... je suis familier avec les Meilleures Pratiques (capitale de capital B P) sur le sujet, je tiens à prouver que la valeur de cette offre dans la réalité.
EDIT: Quelques bonnes réponses ici, mais je pense que @Dave dit, il s'agit de Rainbow Tables pour le commun des noms d'utilisateur... et possible des noms peu communs. Cependant, que faire si mes identifiants sont uniques au monde? Pas nécessairement unique de mon système, mais par chaque utilisateur - par exemple, adresse mail.
Il n'y aurait aucune incitation à construire un RT pour un seul utilisateur (comme @Dave a souligné, le sel n'est pas secrète), et ce serait encore l'empêcher de clustering. Seul problème serait que je puisse avoir la même adresse email et le mot de passe sur un autre site mais le sel n'est pas d'empêcher que de toute façon.
Donc, il revient à la cryptanalyse EST l'entropie nécessaire, ou pas? (Ma pensée est qu'il n'est pas nécessaire à partir d'une cryptanalyse point de vue, mais il est d'autres raisons pratiques.)