Si les mots de passe sont stockés hachés, comment un ordinateur pourrait-il savoir que votre mot de passe est similaire au dernier si vous essayez de réinitialiser votre mot de passe?

11

Si les mots de passe sont stockés hachés, comment un ordinateur pourrait-il savoir que votre mot de passe est similaire au dernier si vous essayez de réinitialiser votre mot de passe? Les deux mots de passe ne seraient-ils pas totalement différents puisqu'un est haché et ne peut pas être inversé?

bob larry
la source
5
L'ordinateur ne saurait pas s'ils sont similaires. Il ne saurait que s'ils étaient identiques (en hachant le nouveau mot de passe et en le comparant avec le hachage stocké du mot de passe d'origine).
Robert Harvey
Cependant, il existe des moyens de générer un hachage qui capture une partie des caractéristiques du mot de passe. La disponibilité de ces hachages, cependant, est une grande lacune, car les crackers de mot de passe peuvent également utiliser ces informations pour affiner la recherche par force brute de mot de passe de plusieurs ordres de grandeur.
rwong
Si vous devez comparer des mots de passe, vous n'utiliserez pas de hachage. Il est probable que vous utilisiez AES ou d'autres formes de chiffrement simétrique
Laiv

Réponses:

15

Si vous réinitialisez le mot de passe, vous pouvez généralement également saisir votre ancien mot de passe. Vous pouvez simplement utiliser la comparaison de similarité de chaîne régulière dans cette situation, car vous avez les deux mots de passe sous forme de texte brut à ce stade.

Une autre façon d'implémenter ceci est de normaliser le mot de passe, par exemple les caractères accentués sont normalisés aux alphabets anglais les plus proches, essayez de transcrire le texte phonétiquement, en supprimant les nombres, etc., et en précalculant plusieurs versions des hachages générés à partir du mot de passe qui avait été normalisé de différentes manières. Notez que cela affaiblit le mécanisme de hachage d'une quantité non spécifiée. Je ne considérerais pas cela comme une meilleure pratique de sécurité.

Lie Ryan
la source
"Réinitialiser le mot de passe" se réfère généralement à "J'ai oublié mon mot de passe et je veux le réinitialiser", donc on ne vous demandera pas l'ancien mot de passe. La seconde moitié de votre réponse est cependant exacte.
casablanca
3
@casablanca: il existe de nombreux systèmes qui vous permettent de "réinitialiser" votre mot de passe tous les X jours ....
whatsisname
1
@casablanca: la première moitié est également exacte, "réinitialiser le mot de passe" peut avoir les deux sens, la terminologie n'est pas si rigide. Nous devons demander au PO ce qu'il voulait dire précisément.
Doc Brown
12

La réponse simple est qu'un système sécurisé ne sait pas s'ils sont similaires.

Mais certains systèmes réduisent intentionnellement la sécurité d'un mot de passe spécifique d'une manière ou d'une autre pour empêcher que de nouveaux mots de passe soient d'anciens mots de passe ou similaires. Le compromis coût-avantage est qu'un nouveau mot de passe sera créé avant que quelqu'un ne pirate par malveillance le mot de passe actuel même avec les informations de similitude.

  • Ils peuvent stocker les N derniers hachages de mots de passe que vous avez utilisés. Si vous entrez un ancien mot de passe, il est apparent car le nouveau hachage de mot de passe correspond à un ancien hachage de mot de passe.
  • Le mécanisme de hachage utilisé peut contenir un mécanisme de clouage du pouce ou une miniature hachée peut être stockée à côté du hachage. Essentiellement, certains modèles de bits dans la miniature de hachage expriment un ensemble de modèles de bits très similaires dans la valeur sous-jacente.
  • De même, ils pourraient garder les statistiques de côté sur votre mot de passe, ce qui permettrait une mesure précise de la similitude.

En général, chacune de ces techniques réduit la sécurité des mots de passe.

  • La conservation des anciens mots de passe réduit la sécurité de ces mots de passe. Si l'un de ces mots de passe est piraté, il y a de fortes chances que le mot de passe actuel leur soit similaire, la plupart des gens ne changent qu'un nombre.

  • Le clouage du pouce et les statistiques peuvent éliminer les mauvaises suppositions de mot de passe plus rapidement que d'essayer de hacher la supposition et de comparer. En effet, les hachages, en particulier les hachages sécurisés, sont compliqués à calculer et nécessitent des efforts, même si le matériel est accéléré. Alors qu'un calcul plus simple qui dit `` certainement pas '' ou `` peut-être '' peut éliminer la plupart de ces suppositions, après tout, les vérifications de similitude sont destinées à vous empêcher d'utiliser des mots de passe similaires, pas d'utiliser un mot de passe complètement nouveau qui ne ressemble en rien à l'ancien.

En bref, méfiez-vous de tout site qui indique une mesure de similitude avec votre mot de passe actuel / ancien. A moins qu'ils ne disent que le nouveau mot de passe est l'ancien mot de passe.

Kain0_0
la source
7

Si les mots de passe sont stockés hachés, comment un ordinateur pourrait-il savoir que votre mot de passe est similaire au dernier si vous essayez de réinitialiser votre mot de passe? Les deux mots de passe ne seraient-ils pas totalement différents puisqu'un est haché et ne peut pas être inversé?

Vous générez plusieurs mots de passe similaires à partir de celui que l'utilisateur a entré et vérifiez si l'un de leurs hachages correspond à celui de l'ancien mot de passe.

Jörg W Mittag
la source
Oui, les gens sont assez prévisibles dans les types de changements qu'ils apporteront, ce qui pourrait être une façon décente de le faire.
cyborg
Cela exploserait très rapidement en termes de traitement nécessaire avec seulement les mots de passe les plus courts. Je ne pense donc pas que ce soit une vraie pratique.
Martin Maat
J'ai travaillé à un endroit pendant assez longtemps, et quand j'ai quitté mon mot de passe était supersecurepassword39. (Seuls les deux derniers chiffres sont vrais). Il est évident qu'un mot de passe commence ou se termine par un numéro pour voir si le numéro précédent a été utilisé.
gnasher729
@MartinMaat Serait-ce bien? Vous pouvez détecter, par exemple, l'ajout ou l'incrémentation d'un nombre en supprimant les caractères un par un du mot de passe d'origine. Par exemple, pour «mot de passe», vous hachez «assword» (heehee), «pssword», «pasword», etc. s'il vous arrive de forcer le hachage secondaire. (Plus si vous les stockez dans un ordre aléatoire et que vous ne savez pas quel personnage a été élidé dans lequel, alors c'est 256 * N pour chacun.)
millimoose
Cela rend la définition d'un nouveau mot de passe N fois plus coûteuse lorsque N est la longueur du mot de passe, sans compter les contrôles de similitude qui devraient être beaucoup moins chers que le hachage. Mais vous hachez les mots de passe chaque fois qu'un utilisateur se connecte, et cela se produit probablement beaucoup plus souvent que les changements de mot de passe, donc je doute que la charge supplémentaire soit aussi perceptible.
millimoose
2

Un autre modèle est que votre système hache certains sous-ensembles caractéristiques de votre mot de passe et stocke ces hachages pour vérifier si les sous-ensembles du nouveau mot de passe correspondent à l'ancien, c'est-à-dire: mot de passe: "Admin2018" & sous-ensemble: "Admin" = ne peut pas entrer "Admin2019" comme nouveau.

Lukasz Matysiak
la source
1

Une façon serait de stocker les cinq derniers mots de passe hachés dans un tableau comme «Historique des mots de passe» et lorsque l'utilisateur essaie de définir un nouveau mot de passe, hachez-le et comparez-le aux mots de passe hachés dans le tableau.

SKDev
la source