10
votes

Les mots de passe hachés et salés sont-ils sécurisés contre les attaques de dictionnaires?

Je comprends que les sels font le même mot de passe à des valeurs différentes. Cependant, les sels sont généralement stockés dans la base de données avec le mot de passe. Alors disons que je suis attaquant, voici comment je pourrais utiliser une attaque de dictionnaire contre un sel (note dans cet exemple, je n'écris pas 128 bits hachages ou sels pour la brièveté): XXX

Je comprends cela empêche les pirates d'utiliser des tables arc-en-ciel ... mais ne semble pas empêcher les attaques de dictionnaires. Je suppose que vous pourriez ajouter autre chose à l'algorithme de hachage, mais avec la sécurité, nous devons supposer que la méthode d'attaque est connue.

Il semble donc que le salage empêche les pirates de détermination des mots de passe susceptibles d'être un dictionnaire. Des mots de passe (ceux que plusieurs utilisateurs ont) et empêchent les attaques arc-en-ciel ... mais n'empêche pas les attaques de dictionnaires.

est-ce une analyse correcte? Toute suggestion pour une meilleure sécurité?

merci!


0 commentaires

5 Réponses :


1
votes

C'est correct. Si quelqu'un a eu le matériel de mot de passe, une attaque de dictionnaire serait efficace.

garde contre ceci:

  • Assurez-vous que vos mots de passe ne sont pas soumis aux attaques de dictionnaires.
  • Assurez-vous que votre fichier de mot de passe ( / etc / shadow ) est lisible uniquement par root.

4 commentaires

C'est peut-être une question évidente dans le recul, mais il y a une option pour rejeter les mots de passe trouvés dans un dictionnaire? Je ne demande pas spécifiquement des variantes UNIX, non plus.


@Steven Sudit: Vous pouvez utiliser CrackLib à cet effet


Bien sûr, mais cela est-il intégré dans le système de changement de mot de passe?


Si pam_cracklib.so inclus dans la pile PAM, il est intégré.



0
votes

Votre logique est sonore, mais en réalité, avec suffisamment de puissance et de temps de calcul, il n'existe aucune protection contre les attaques de dictionnaire / force brute.


2 commentaires

Peut-être avec suffisamment de puissance et de temps, il n'y a aucune protection contre les attaques de force brute. Cependant, en utilisant un mot de passe qui n'est pas dans aucun dictionnaire n'est suffisant pour vous protéger de toute attaque de dictionnaire.


bon point, mais la formation des utilisateurs à sélectionner des mots de passe sécurisés est un effort en soi



11
votes

Le sel n'empêche pas les attaques de dictionnaires, vient de précalculer des attaques de dictionnaires. En particulier, il protège contre les tables arc-en-ciel ( http://fr.wikipedia.org/wiki/rainbow_tabled) Et assure également que la fissuration Un mot de passe d'un utilisateur ne vous permet pas de craquer un utilisateur qui partage ce mot de passe.

L'article que j'ai lié à mentionne certains moyens d'améliorer le renforcement des essences, d'incursions de renforcement des essences ( http: // fr .wikipedia.org / wiki / key_struant ).


6 commentaires

Il semble que la grande différence soit que, en utilisant un sel, l'attaquant devait essentiellement calculer un nouveau dictionnaire ou une table arc-en-ciel pour chaque sel ou utilisateur. Savez-vous combien de temps il faut pour calculer une table arc-en-ciel peut-être sur 1 million de mots? (ne cherche pas une réponse exacte ici)


Pas personnellement, mais Project-RrainbowCrack.com/table.htm dit que vous n'avez pas besoin de Faites votre propre choix: vous pouvez télécharger le leur. Pire pire, les craquelins profitent du GPU Nvidia Cuda pour accélérer leurs efforts. Ces tables arc-en-ciel sont énormes, même par des normes modernes, les multipliant ainsi de 4 g (32 bits) suffisent pour le rendre entièrement infaisable pour même stocker chaque table arc-en-ciel possible, oubliant le coût de la génération.


Cela pourrait être évident pour certains, mais il convient de noter que le salage protège contre les attaques sur les valeurs de hachage et non le mot de passe lui-même (c'est-à-dire que l'attaquant a déjà accès à la base de données, la valeur de hachage est transmis de texte brut, etc.).


@dsatch Selting protège contre le déroulement du mot de passe du hachage, puis en utilisant ce mot de passe sur d'autres sites. Ou plutôt, cela rend beaucoup plus cher de le faire.


Ça peut. Mon point était un peu différent - l'OP a indiqué qu'il "ne semble pas empêcher les attaques de dictionnaires". Je voulais préciser que tout le monde peut attaquer votre dictionnaire à l'avant sans vous soucier des sels. Salting protège la façon dont vous stockez de tels mots de passe.


@dsatch vous avez raison. Le salage ne concerne pas le tout, il s'agit de protéger la base de données d'authentification.



1
votes

sans sel, l'attaquant peut générer des hachages pour chaque mot de son dictionnaire puis exécutez le nouveau dictionnaire contre votre liste de mots de passe

Avec du sel, chaque mot de passe est haché avec une chaîne aléatoire, de sorte que même avec le dictionnaire préalable du dictionnaire, il doit toujours recréer un nouveau dictionnaire haché contenant le sel pour chaque sel de votre base de données.

Pensez simplement aux dictionnaires tables comme sous-ensemble (petite partie) des tables arc-en-ciel. Alors que les tables arc-en-ciel peuvent contenir des milliards d'entrées, les dictionnaires contiennent des "mots connus", donc peut-être quelques millions d'entrées au plus.

La raison pour laquelle les tables arc-en-ciel échouent contre le sel sont parce que le processus de recréation serait "des milliards d'entrées" de recalculition tandis que les attaques de dictionnaire sont toujours "peu de millions d'entrées". Le sel bloque simplement les valeurs précalcules


1 commentaires

Je ne suis pas sûr que c'est exactement correct. La force brute implique une recherche séquentielle ou aléatoire dans l'espace de mot de passe possible. Avec du sel, l'attaquant peut toujours appliquer le sel et le hachage à un dictionnaire, mais ils doivent choisir une seule valeur de sel pour le faire et ils ne vont pas avoir cette valeur arbitrairement à l'avance, ils devront donc calculer à la volée.



4
votes

Rien ne garde un attaquant de simplement deviner le mot de passe.

Les sels rendent juste plus difficile en forçant un attaquant de hachage du dictionnaire sur une base par utilisateur (efficacement, sel).

Pour améliorer la sécurité, une fonction de hachage syndical est votre meilleure mise. Ressourcir le temps de hauteur, faisant des attaques de dictionnaires irréalistes sur tout le matériel que votre attaquant aura probablement disponible.

Fondamentalement, Lisez ceci .


2 commentaires

L'approche de hachage syndical ressemble à un renforcement de la clé. Tout hachage peut être écoulé de cette façon en l'exécutant encore et encore.


Oui, c'est le renforcement essentiel et une technique connexe. Bon article, cependant, surtout la partie à propos de SRP. Merci.