it-swarm.com.de

Warum implementiert Microsoft in Windows keine Salt-Kennwörter für Benutzer?

Ziemlich einfach - Daher verwenden wir Rainbow-Tabellen, um Kennwörter von Benutzern aus Hashes zu entfernen. Warum implementiert Microsoft Salt in den Kennwörtern in Windows nicht als hash(password+salt)?

Wird diese Implementierung nicht viel Kummer ersparen, zumindest während sie in der SAM-Datei implementiert ist, wenn es um das Knacken von Passwörtern lokaler Benutzer geht?

17
Franko

Die Behandlung von Kennwörtern in einem Microsoft-Betriebssystem ist komplex, da Kennwörter für viele Verwendungszwecke verwendet werden. Das Betriebssystem (oder sein Domänencontroller) speichert eine gehashte Version des Kennworts, es gibt jedoch auch Werte, die symmetrisch mit Schlüsseln verschlüsselt sind, die aus dem Kennwort oder dessen Hash abgeleitet sind. Die Authentifizierungsprotokolle enthalten keine Bestimmungen für den Austausch von Salzen, wenn auf der Clientseite Hashing auftreten muss. Es ist schwierig, die Kennwortverarbeitungsalgorithmen zu ändern, ohne viele Subsysteme zu beeinträchtigen und möglicherweise die Abwärtskompatibilität zu beeinträchtigen, die die treibende Kraft des Windows-Ökosystems ist.

Es geht um strategische Prioritäten. Microsoft weiß, dass das Ändern von Kennwort-Hashing- und Authentifizierungsprotokollen, um ein Salt einzuschließen, einige nicht zu vernachlässigende Kosten verursacht, die sie übernehmen müssten (indem alle davon betroffenen Komponenten repariert werden). Auf der anderen Seite ist es für sie eher "kostenlos", das Passwort-Hashing nicht zu ändern, da ein flockiger Hashing-Algorithmus Kunden nicht davon überzeugt, zu einem anderen Nicht-Hashing zu wechseln -Microsoft-Systeme (der OS-Markt ist in der Praxis ein Captive-Markt ); Potenzielle Kunden müssen viel mehr gezwungen werden, sich einen Betriebssystemschalter vorzustellen, der sehr teuer ist. Außerdem kann Passwort-Hashing möglicherweise als "Tiefenverteidigung" bezeichnet werden, eine zweite Ebene, die nur dann Auswirkungen hat, wenn bereits ein Verstoß aufgetreten ist. als solches könnte es als zweitrangig dargestellt werden. Daher ist es logisch, wenn auch irritierend, dass Microsoft seine schlechten Kennwortverarbeitungspraktiken nicht aktualisiert.

In der Vergangenheit hat Microsoft nur ein Update durchgeführt, als von [~ # ~] ntlm [~ # ~] v1 auf v2 gewechselt wurde, und dies war irgendwie notwendig, weil der ältere LM-Hash war so schwach, dass es langsam peinlich wurde . Ich vermute, dass es viel internen Ärger mit sich brachte und sie nicht bereit sind, es erneut zu tun.

23
Thomas Pornin

Das Microsoft-Systemmodell unterscheidet sich erheblich vom üblichen "Web" -Modell (und in geringerem Maße vom UNIX-Modell). In der MS-Welt haben Sie im Allgemeinen eine Reihe von Computern unter Ihrer eigenen Kontrolle, die eng mit einigen zentralen Repositorys und Ihnen verbunden sind Ich werde wahrscheinlich die meiste Zeit wissen, wo sie sind. (Wenn es um IIS geht, bricht dies zusammen. Viele Web-Apps steuern dann ihre eigene Benutzersteuerung.)

Als in einer anderen Antwort erwähnt waren die Hashes von Microsoft traditionell schwach und werden aus Gründen der Abwärtskompatibilität wahrscheinlich so beibehalten. Es ist jedoch auch nicht kritisch für das Sicherheitsmodell. Im Microsoft-Modell ist es relativ trivial, ein Kennwort zu ändern. Es ist relativ trivial, das Ändern von all Passwörtern zu erzwingen. Sie haben auch eine robuste Methode zum Ablaufen von Passwörtern (so dass verlorene Hashes schnell ihren Wert verlieren, definitiv innerhalb von 1-2 Monaten).

Sie arbeiten auch in einer Welt, in der wohlwollende Administratoren nicht-technische Benutzer durch die Fallstricke des Rechnens hörten. als nur ein Beispiel: Nicht salzen bedeutet, dass ein Benutzer sein Kennwort aktualisieren kann, während er nicht mit dem Domänencontroller sprechen kann, und der Domänencontroller den neuen Kennwort-Hash ermitteln kann, indem er nur den aktuellen Berechtigungsnachweis des Benutzers (Benutzer + Domäne + die neues Passwort) und ihren vorherigen Berechtigungsnachweis. Dies ist ein großer Vorteil, da sich die Benutzererfahrung (Ändern der Kennwörter alle xxx Tage) je nach Netzwerkzugriff nicht ändert.

Sie könnten interessiert sein an Microsoft's technische Erklärung des Passwortsystems .

7
Bob Watson