Passwortvalidierung für Varianten des Benutzernamens

Nicht direkt verwandt, aber angeregt durch Pwned Passwords Validator, da wir uns in letzter Zeit mit einer stärkeren Passwortvalidierung beschäftigt haben.

Discourse scheint ein Passwort wie myusername123 oder 4myusername für den Benutzernamen myusername nicht zu blockieren.

Ich habe keine vorherige Diskussion zu dieser spezifischen Art von schwachem Passwort gefunden. Wurde dies bereits berücksichtigt?

5 „Gefällt mir“

Ich bin einverstanden, eine Prüfung hinzuzufügen, wenn Benutzer ein Passwort wählen, dass der Benutzername nicht im Passwort enthalten sein darf. Das erscheint mir vernünftig.

Wir prüfen bereits auf password = username, aber ich bin kein großer Fan von Teilstring-Tests, besonders bei kürzeren Benutzernamen. Was ist, wenn dein Benutzername “Ed” ist und dein Passwort eine zufällige Zeichenfolge ist, die zufällig “ed” enthält…

3 „Gefällt mir“

Verwenden Sie einen Ähnlichkeitswert wie die Levenshtein-Distanz und lehnen Sie ab, wenn levenshtein(username, password) < 6? Oder vielleicht sogar etwas, das auch Permutationen erfasst, wie zum Beispiel:

levenshtein(sort_by_chars(username), sort_by_chars(password)) < 6

Das scheint die schlimmsten Missbräuche abzudecken, ohne zu verhindern, dass sich „Ed

3 „Gefällt mir“

Zugehöriger Tweet von heute:

5 „Gefällt mir“

Die Kehrseite von immer mehr Regeln ist, dass es einfacher wird, Passwörter per Brute-Force zu knacken.

Offensichtlich sollte ein Passwort, das 15 Zeichen oder kürzer ist, den Buchstaben z nicht zehnmal hintereinander enthalten.

Offensichtlich sollte ein Passwort das Wort „password“ nicht enthalten, wenn es kürzer als 12 Zeichen ist.

Zwei Wörter aus einem Wörterbuch hintereinander sind offensichtlich falsch…

Und so weiter. Dadurch wird der Suchraum für Passwörter verkleinert.

Das ist ein Abgrund. Nach reiflicher Überlegung habe ich meine Meinung von gestern geändert. Ich bin bei @codinghorror: Ich denke, wir müssen hier nichts unternehmen.

3 „Gefällt mir“

“Es ist schwierig, gute Regeln aufzustellen, also sollten wir keine Regeln machen”?

Das ist das zweite Mal in zwei Tagen, dass ich sehe, wie hochrangige Mitglieder des Discourse-Teams gravierende Missverständnisse in Bezug auf Sicherheit verbreiten. Ich denke, es gibt einige allgemeine Punkte, die Sie neu überdenken müssen, und ich hoffe, Sie nehmen dies als konstruktives Feedback.

Außerdem stammt dieser konkrete Vorschlag nicht aus dem Nichts: Kürzlich wurde ein Benutzerkonto kompromittiert, weil der Benutzername myusername war und das Passwort die Form myusername46 hatte.

Zugegeben, es handelte sich um eine ClassicPress-Site (gleiche Login-Struktur wie WordPress), was es für Bots usw. zu einem viel einfacheren Ziel macht. Dennoch suchen Bots genau nach solchen Mustern.

Passwortregeln können nicht jede Art von schlechtem Passwort verhindern, aber sie können sehr viel bewirken.

Technisch gesehen folgen wir den Richtlinien von NIST 800-63-B:

Bei der Verarbeitung von Anfragen zur Festlegung und Änderung von auswendig gelernten Geheimnissen müssen Prüfer die potenziellen Geheimnisse mit einer Liste vergleichen, die Werte enthält, von denen bekannt ist, dass sie häufig verwendet, erwartet oder kompromittiert wurden. Die Liste kann beispielsweise, ist aber nicht beschränkt auf:

  • Passwörter, die aus früheren Datenschutzverletzungen stammen.
  • Wörter aus Wörterbüchern.
  • Wiederholte oder sequenzielle Zeichen (z. B. ‘aaaaaa’, ‘1234abcd’).
  • Kontextspezifische Wörter, wie der Name des Dienstes, der Benutzername und davon abgeleitete Formen.

Sie verwenden ausdrücklich das Wort MAY und nicht SHALL. Das liegt also in unserem Ermessen. Es gibt hier keine Empfehlung für die Levenshtein-Distanz. Vielleicht sollte wenn der Benutzername länger als 6 Zeichen ist, darf er nicht im Passwort enthalten sein. Vielleicht könnten wir zusätzlich zur Liste mit 1 Million Passwörtern eine Entropieprüfung hinzufügen. Ich weiß es nicht.

Ich schätze, wenn Sie unbedingt eigene Regeln haben möchten, betreiben Sie SSO und legen Sie auf Ihrer Seite beliebige Regeln fest. Oder schreiben Sie ein Plugin.

3 „Gefällt mir“

Das werden wir wahrscheinlich tun. Es gibt hier noch mehr Lücken, aber die bisherigen Antworten lassen mich nicht glauben, dass es besonders lohnenswert wäre, das anzusprechen.

Bitte teilt das Plugin, das ihr entwickelt, hier in der Kategorie #plugin mit der Community. Nicht jeder stimmt mit jeder unserer Entscheidungen überein. Ich respektiere Vielfalt und verschiedene Optionen völlig; vielleicht sind andere an strengeren Passwortregeln interessiert.

1 „Gefällt mir“