web-dev-qa-db-fra.com

Pourquoi Microsoft n'implémente-t-il pas de sel sur les mots de passe des utilisateurs dans Windows?

Assez simple - Nous utilisons donc des tableaux Rainbow pour extraire les mots de passe des utilisateurs des hachages. Alors pourquoi Microsoft n'implémente-t-il pas le sel sur les mots de passe dans Windows pour être hash(password+salt)?

Cette implémentation ne sauvera-t-elle pas beaucoup de tracas, du moins lorsqu'elle est implémentée dans le fichier SAM lors du piratage de mot de passe des utilisateurs locaux?

17
Franko

La gestion des mots de passe dans un système d'exploitation Microsoft est complexe car ils utilisent des mots de passe pour de nombreuses utilisations. Le système d'exploitation (ou son contrôleur de domaine) stockera une version hachée du mot de passe, mais il existe également des valeurs qui sont cryptées symétriquement avec des clés dérivées du mot de passe ou de son hachage. Les protocoles d'authentification ne comprennent pas de dispositions pour l'échange de sels lorsqu'un certain hachage doit se produire côté client. Il est difficile de modifier les algorithmes de traitement des mots de passe sans affecter un grand nombre de sous-systèmes et potentiellement rompre la compatibilité descendante, qui est la force motrice de l'écosystème Windows.

Cela dépend des priorités stratégiques. Microsoft sait que la modification des protocoles de hachage et d'authentification de mot de passe pour inclure un sel entraînera des coûts non négligeables qu'ils devraient assumer (en réparant tous les composants qui sont ainsi affectés). D'autre part, pas changer le hachage de mot de passe est plutôt "gratuit" pour eux, car un algorithme de hachage feuilleté ne convaincra pas les clients de passer à d'autres non -Systèmes Microsoft (le marché des OS est, en pratique, un marché captif ); il faut beaucoup plus pour forcer les clients potentiels à envisager un commutateur de système d'exploitation qui est très coûteux. En outre, le hachage de mot de passe peut sans doute être qualifié de "défense en profondeur" , une deuxième couche qui n'a un impact qu'une fois qu'une violation s'est déjà produite; en tant que tel, il pourrait être présenté comme étant d'importance secondaire. Par conséquent, il est logique, si irritant, que Microsoft ne mette pas à jour ses mauvaises pratiques de traitement des mots de passe.

Historiquement, Microsoft n'a effectué qu'une seule mise à jour, lorsqu'ils sont passés de NTLM v1 à v2, et c'était un peu nécessaire car l'ancien hachage LM était si faible qu'il commençait à être gênant . Je suppose que cela impliquait beaucoup de tracas internes et ils ne sont pas impatients de le faire à nouveau.

23
Thomas Pornin

Le modèle de système Microsoft est substantiellement différent du modèle Web habituel (et dans une moindre mesure UNIX) - dans le monde MS, vous avez généralement un certain nombre de machines sous votre propre contrôle qui sont étroitement liées à quelques référentiels centraux et vous 'est susceptible de savoir où ils sont la plupart du temps. (Cela ne fonctionne pas en ce qui concerne IIS; ensuite, de nombreuses applications Web effectuent leur propre contrôle utilisateur.)

Comme mentionné dans une autre réponse , les hachages de Microsoft ont toujours été faibles et sont probablement conservés de cette façon pour une compatibilité descendante. Mais ce n'est pas non plus critique pour leur modèle de sécurité - dans le modèle Microsoft, il est relativement trivial de changer un mot de passe. Il est relativement trivial de forcer tous les mots de passe à changer. Vous avez également une méthode robuste pour expirer les mots de passe (donc tous les hachages perdus vont rapidement perdre leur valeur, certainement dans les 1-2 mois).

Vous opérez également dans un monde où les administrateurs bienveillants ont entendu les utilisateurs non techniques à travers les pièges de l'informatique; comme un seul exemple: ne pas saler signifie que vous pouvez demander à un utilisateur de mettre à jour son mot de passe sans pouvoir parler au contrôleur de domaine et que le contrôleur de domaine peut déterminer le nouveau hachage du mot de passe en regardant simplement les informations d'identification actuelles de l'utilisateur (utilisateur + domaine + le nouveau mot de passe) et leurs identifiants précédents. C'est un gros avantage car cela signifie que l'expérience utilisateur (changement de mot de passe tous les xxx jours) ne change pas en fonction de l'accès au réseau.

Vous pouvez être intéressé par Explication technique de Microsoft sur leur système de mot de passe .

7
Bob Watson