7 Stimmen

Strategien zur Komplexität von Passwörtern - gibt es dafür Beweise?

Bei mehr als einer Gelegenheit wurde ich gebeten, Regeln für die Auswahl von Passwörtern für die von mir entwickelte Software einzuführen. Typische Vorschläge beinhalten Dinge wie:

  • Die Passwörter müssen mindestens N Zeichen lang;
  • Passwörter müssen Kleinbuchstaben, Großbuchstaben und Zahlen enthalten;
  • Keine Wiederverwendung des letzten M Passwörter (oder Passwörter, die innerhalb von P Tage).

Und so weiter.

Etwas hat mich schon immer daran gestört, dass man jede Durch die Einschränkung der verfügbaren Passwörter wird der Raum der zulässigen Passwörter verkleinert. Macht dies nicht die Passwörter einfacher zu erraten?

Wenn die Benutzer komplexe, häufig wechselnde Passwörter erstellen müssen, steigt die Versuchung, sie aufzuschreiben, was die Sicherheit ebenfalls verringert.

Gibt es einen quantitativen Beweis dafür, dass Regeln zur Einschränkung von Passwörtern die Sicherheit von Systemen erhöhen?

Wenn ja, was sind die "sichersten" Strategien zur Einschränkung von Passwörtern, die verwendet werden sollten?


bearbeiten Ólafur Waage hat freundlicherweise auf eine Coding Horror Artikel über Wörterbuchangriffe die eine Menge nützlicher Analysen enthält, aber mir scheint, dass Wörterbuchangriffe massiv reduziert werden können (wie Jeff vorschlägt), indem einfach eine Verzögerung nach einem fehlgeschlagenen Authentifizierungsversuch hinzugefügt wird.

Welche Beweise gibt es vor diesem Hintergrund dafür, dass erzwungene komplexe Passwörter sicherer sind?

1voto

Dana Punkte 30263

Man könnte auch auf das jüngste Fiasko bei Twitter hinweisen, wo sich das Passwort eines Administrators als "Glück" herausstellte, das einem Wörterbuchangriff zum Opfer fiel.

1voto

Paul Dixon Punkte 286600

Bei Fragen wie dieser frage ich mich was Bruce Schneier tun würde - In dem verlinkten Artikel geht es darum, wie man Passwörter wählt, die bei typischen Angriffen schwer zu erraten sind.

Beachten Sie auch, dass Sie, wenn Sie eine Verzögerung nach einem fehlgeschlagenen Versuch hinzufügen, auch eine Verzögerung nach einem erfolgreichen Versuch hinzufügen sollten, da die Verzögerung sonst einfach ein Signal ist, dass der Angriff fehlgeschlagen ist und ein weiterer Versuch gestartet werden sollte.

0voto

chillysapien Punkte 2196

Dies ist zwar keine direkte Antwort auf Ihre Frage, aber ich persönlich finde die Vorschrift, nach der man ein zuvor verwendetes Passwort nicht wiederverwenden kann, am ärgerlichsten. Nachdem ich mehrere Jahre am selben Ort gearbeitet habe und alle 2/3 Monate mein Passwort ändern musste, erscheint mir die Möglichkeit, ein Passwort zu verwenden, das ich vor über einem Jahr gewählt habe, nicht besonders unsicher oder unsicher zu sein. Wenn ich in der Vergangenheit "sichere" Passwörter verwendet habe (alphanumerisch mit veränderter Groß- und Kleinschreibung), scheint mir die Wiederverwendung dieser Passwörter nach einem Zeitraum von ein oder zwei Jahren (je nachdem, wie regelmäßig man sein Passwort ändern muss) durchaus akzeptabel zu sein. Es bedeutet auch, dass ich weniger wahrscheinlich "einfachere" Passwörter verwende, was passieren könnte, wenn mir nichts einfällt, das leicht zu merken und schwer zu erraten ist!

0voto

PaulOTron2000 Punkte 1055

Zunächst möchte ich darauf hinweisen, dass Details wie Mindestlänge, Groß- und Kleinschreibung und erforderliche Sonderzeichen davon abhängen sollten, wer Zugang hat und was das Kennwort ihm erlaubt. Wenn es sich um einen Code für den Start einer Atomrakete handelt, sollte es strenger sein als ein Passwort, mit dem man sich in die kostenpflichtige Online-Version von Angry Birds einloggen kann.

Aber ich habe ein BESONDERES Problem mit der Groß- und Kleinschreibung.

Zunächst einmal hassen es die Nutzer. Das menschliche Gehirn denkt "A=a". Natürlich sind die Gehirne von Entwicklern normalerweise nicht typisch ;-) Aber auch für Entwickler ist die Groß- und Kleinschreibung lästig.

Zweitens lässt sich die Feststelltaste zu leicht versehentlich drücken. Sie befindet sich genau zwischen der Tabulatortaste und der Umschalttaste, sollte aber oberhalb der Esc-Taste liegen. Ihre Position wurde vor langer Zeit festgelegt, als es noch Schreibmaschinen gab, die keine alternative Schriftart zur Verfügung hatten. Damals war es nützlich, sie dort zu haben.

Alle Kennwörter bergen Risiken... Sie wägen das Risiko gegen die Benutzerfreundlichkeit ab, und ja, Benutzerfreundlichkeit ist wichtig.

MEIN ARGUMENT: Ja, die Groß- und Kleinschreibung ist bei einer bestimmten Passwortlänge sicherer. Aber wenn mich niemand zwingt, etwas anderes zu tun, entscheide ich mich für eine längere Mindestlänge des Passworts. Selbst wenn wir davon ausgehen, dass nur Buchstaben und Ziffern zulässig sind, vervielfacht jedes zusätzliche Zeichen die Anzahl der möglichen Passwörter um 36.

Jemand, der nicht so rechenfaul ist wie ich, könnte Ihnen den Unterschied in der Anzahl der Kombinationen zwischen einem Passwort mit mindestens 8 Zeichen und Groß-/Kleinschreibung und einem Passwort mit 12 Zeichen und ohne Groß-/Kleinschreibung nennen. Ich denke, die meisten Benutzer würden Letzteres bevorzugen.

Außerdem geben nicht alle Anwendungen Benutzernamen für andere frei, so dass der Hacker möglicherweise zwei Felder finden muss.

Ich bevorzuge es auch, Leerzeichen in Kennwörtern zuzulassen, solange der Großteil des Kennworts nicht aus Leerzeichen besteht.

In dem Projekt, das ich gerade entwickle, kann der Administrator auf meinem Verwaltungsbildschirm die Kennwortanforderungen ändern, die für alle künftigen Kennwörter gelten. Er kann auch alle Benutzer dazu zwingen, ihre Passwörter jederzeit nach der nächsten Anmeldung zu aktualisieren (auf die neuen Anforderungen). Ich tue dies, weil ich der Meinung bin, dass Groß- und Kleinschreibung nicht unterschieden werden muss, aber der Administrator (der mich wahrscheinlich für die Software bezahlt hat) könnte anderer Meinung sein, also lasse ich ihn entscheiden.

Die PIN für meine Bankkarte ist nur vierstellig. Da es sich nur um Zahlen handelt, wird nicht zwischen Groß- und Kleinschreibung unterschieden. Und verdammt, es ist mein GELD! Wenn man nichts anderes bedenkt, klingt das ziemlich unsicher, wenn da nicht die Tatsache wäre, dass der Hacker meine Karte stehlen muss, um an mein Geld zu kommen. (Und ein Foto von sich machen lassen.)

Ein weiterer Kritikpunkt: Entwickler, die auf StackOverflow kommen und harte Regeln wiederkäuen, die sie irgendwo in einem Artikel gelesen haben. "Niemals etwas hart codieren." (Als ob das möglich wäre.) "Alle Abfragen müssen parametrisiert sein" (nicht, wenn der Benutzer nicht zur Abfrage beiträgt.) usw.

Bitte entschuldigen Sie die Tirade. ;-) Ich verspreche, dass ich Meinungsverschiedenheiten respektiere.

0voto

Damian Nikodem Punkte 1294

Ich persönlich neige bei diesem speziellen Problem dazu, Kennwörtern eine "Punktzahl" zu geben, die auf den Merkmalen des eingegebenen Textes beruht, und Kennwörter abzulehnen, die diese Punktzahl nicht erfüllen.

Zum Beispiel:

Contains Lower Case Letter +1

Contains different Lower Case Letter +1

Contains Upper Case Letter +1

Contains different Upper Case Letter +1

Contains Non-Alphanumeric character: +1

Contains different Non-Alphanumeric character: +1

Contains Number: +1

Contains Non Consecutive or repeated Second Number: +1 

Length less than 8: -10 

Length Greater than 12: +1

Contains Dictionary word: -4

Dann nur Passwörter mit einer Punktzahl von mehr als 4 zulassen (und dem Benutzer bei der Erstellung seines Passworts über Javascript eine Rückmeldung geben)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X