12
votes

Suis-je mal comprendre ce qu'est un sel de hasch?

Je travaille sur l'ajout de la fonctionnalité génératrice de Hash Digest à notre base de code. Je voulais utiliser une chaîne comme sel de hachage de manière à ce qu'une clé pré-connue / passephrase puisse être achuée à ce qu'il était nécessaire pour être haché. Suis-je mal comprendre ce concept?


2 commentaires

Dans quelle langue écrivez-vous cela?


J'écris ceci en Java


5 Réponses :


3
votes

Vous comprenez parfaitement le concept. Assurez-vous simplement que le sel préparé est répétable chaque fois.


0 commentaires

2
votes

Si je vous comprends correctement, cela sonne comme si vous avez raison. Le pseudocode pour le processus ressemble à quelque chose comme: xxx

Le sel ajoute simplement un autre niveau de complexité pour les personnes qui tentent d'obtenir à vos informations.


0 commentaires

0
votes

Et il est encore meilleur si le sel est différent pour chaque phrase cryptée, car chaque sel nécessite sa propre table arc-en-ciel.


0 commentaires

19
votes

Un sel est un élément aléatoire qui est ajouté à l'entrée d'une fonction cryptographique, dans le but d'avoir un impact sur le traitement et la production de manière distincte à chaque invocation. Le sel, par opposition à une "clé", n'est pas censé être confidentiel.

Un siècle il y a, les méthodes cryptographiques de cryptage ou d'authentification étaient "secrètes". Ensuite, avec l'avènement des ordinateurs, les gens ont compris que la conservation d'une méthode complètement secrète était difficile, car cela impliquait de maintenir le logiciel lui-même confidentiel. Quelque chose qui est régulièrement écrit sur un disque ou incarné comme un quincaillerie dédié, a du mal à rester confidentiel. Donc, les chercheurs ont divisé la "méthode" en deux concepts distincts: l'algorithme (qui est public et devient logiciel et matériel) et la clé em> (un paramètre à l'algorithme, présent en RAM volatile uniquement pendant le traitement). La clé concentre le secret et est une donnée pure. Lorsque la clé est stockée dans le cerveau d'un être humain, elle est souvent appelée "mot de passe" car les humains sont meilleurs pour mémoriser des mots que les bits. P>

puis la clé elle-même a été divisée plus tard. Il s'est avéré que, pour une sécurité cryptographique appropriée, nous avions besoin de deux choses: un paramètre confidentiel et un paramètre variable. Fondamentalement, la réutilisation de la même clé pour des usages distincts a tendance à créer des problèmes; Il fuit souvent des informations. Dans certains cas (surtout des chiffres de courant, mais aussi pour les mots de passe de hachage), il fuit trop et conduit à des attaques réussies. Donc, il y a souvent un besoin de variabilité, quelque chose qui change à chaque fois que la méthode cryptographique fonctionne. Maintenant, la bonne partie est que la plupart du temps, la variabilité et le secret ne doivent pas être fusionnés. C'est-à-dire que nous pouvons séparer le confidentiel em> de la variable em>. Donc, la clé était divisée en: p>

  • la clé secrète, souvent appelée "la clé"; li>
  • Un élément de variable, généralement choisi au hasard et appelé "sel" ou "iv" (comme "valeur initiale") en fonction du type d'algorithme. LI> ul>

    Seule la clé doit être secrète. L'élément variable doit être connu de toutes les parties impliquées, mais elle peut être publique. C'est une bénédiction parce que le partage d'une clé secrète est difficile; Les systèmes utilisés pour distribuer un tel secret trouveraient coûteux d'accueillir une partie variable qui change chaque fois que l'algorithme fonctionne. p>

    dans le contexte de stockage de mots de passe hachés, l'explication ci-dessus devient les suivantes: p>

    • "Réutiliser la clé" signifie que deux utilisateurs deviennent choisir le même mot de passe. Si des mots de passe sont simplement hachés, les deux utilisateurs obtiendront la même valeur de hachage et cela montrera. Voici la fuite. Li>
    • De même, sans hachage, un attaquant pourrait utiliser des tables précalisées pour une recherche rapide; Il pourrait également attaquer des milliers de mots de passe en parallèle. Cela utilise toujours la même fuite, seulement d'une manière qui démontre pourquoi cette fuite est mauvaise. Li>
    • Salage signifie ajouter des données variables à l'entrée de la fonction Hash. Que les données variables sont le sel. Le point du sel est que deux utilisateurs distincts devraient utiliser, autant que possible, des sels distincts. Mais les vérificateurs de mot de passe doivent pouvoir recompagner le même hachage du mot de passe, par conséquent, ils doivent avoir accès au sel. Li> ul>

      Puisque le sel doit être accessible aux vérificateurs, mais il est nécessaire de ne pas être secret, il est de coutume de stocker la valeur de sel avec la valeur de hachage. Par exemple, sur un système Linux, je peux utiliser cette commande: p>

      $1$zap$t3KZajBWMA7dVxwut6y921
      


2 commentaires

"Le sel, par opposition à une" clé ", n'est pas censé être confidentiel." - Avec un hachage à sens unique connu comme MD5 ou SHA-1, vous devez garder le sel confidentiel sinon la force brute inversant votre hachage est beaucoup plus facile.


Si le sel est confidentiel, ce n'est pas un sel mais une partie de la clé. Maintenant, il arrive que dans une configuration de hachage-the-mot de passe, un sel fait son travail (il empêche de fuir des mots de passe identiques et des attaques parallèles), mais ce n'est pas assez bon car les humains sont pathétiques au choix et se souvient de bons mots de passe. Ainsi, il est de coutume d'essayer de conserver la sortie entière "protégée" ( / etc / shadow pas lisible par le public); La sécurité supplémentaire vient de cacher la sortie de hachage et non de cacher le sel. De toute façon, le vérificateur doit toujours avoir accès au sel et à la sortie de hachage.



0
votes

sa valeur qui mérite de mentionner que même si le sel doit être différent pour chaque utilisation du mot de passe, votre sel ne doit en aucun cas être calculé à partir du mot de passe lui-même! Ce genre de chose a le résultat pratique d'invalider complètement votre sécurité.


0 commentaires