Gibt es triftige Gründe, um Zeichen zu verbieten und die Länge von Passwörtern zu begrenzen?

39

Ich bin auf eine Reihe von Websites gestoßen, die entweder die Länge der zulässigen Kennwörter einschränken und / oder bestimmte Zeichen nicht zulassen. Dies ist eine Einschränkung für mich, da ich den Suchbereich meines Passworts erweitern und verlängern möchte. Es gibt mir auch ein unangenehmes Gefühl, dass sie kein Haschisch sind.

Gibt es gute Gründe, entweder eine höhere Länge festzulegen oder Zeichen in Passwörtern auszuschließen?

chris
quelle
26
Sicher! Es macht es einfacher, die Passwörter von Leuten mit Gewalt zu erraten! : P
FrustratedWithFormsDesigner
4
Sprechen wir von gültigen "technischen" oder gültigen "geschäftlichen" Gründen?
Martin York
1
@Martin: Ich dachte technisch, aber ich nehme an, entweder.
Chris
11
@JYelton Warum interessiert es dich, wie lang das ursprüngliche Passwort ist? Der Hash wird immer die gleiche Größe haben. Ich hoffe auf jeden
Fall,

Antworten:

27

Nein

Es gibt keine guten Gründe.

EDIT: Ich kann nicht beweisen, dass es keine guten Gründe gibt, weil man kein Negativ beweisen kann. Ich kann mir keine guten Gründe dafür vorstellen - wie andere betonten, wird der Hash unabhängig von der Größe der Eingabe dieselbe Größe haben, und das Eliminieren gültiger Zeichen (aus dem Fragekontext) reduziert nur den Zustandsraum. Die Antwort liegt auf der Hand: Es gibt keine guten Gründe. Es mag eine Vielzahl von Gründen geben, die gut klingen oder gut erscheinen, aber sie sind es nicht. Wenn dies der Fall wäre, hätte jemand sie bereits hier gepostet, oder wenn dies nicht der Fall wäre, sicherlich auf security.stackexchange.com, und diese Antwort wäre nicht so heftig gewürdigt worden.

Steven A. Lowe
quelle
3
Ich stimme zu, aber der Kommentar, den Kissaki zur Kodierung macht, ist gültig. Einige Stacks / Programmierer scheinen einfach nicht in der Lage zu sein, die richtige Kodierung zu finden, da das Beschränken auf ASCII ein billiger Hack ist, damit es funktioniert.
edA-qa mort-ora-y
10
Könnten Sie zumindest versuchen, dies zu erläutern? Entweder wissen Sie das nicht genau oder Sie haben Grund zu der Annahme, dass häufig vorkommende / vorhandene Gründe nicht zutreffen. Wenn Sie Zweifel haben und letztere annehmen, sollten Sie erklären, warum diese Gründe nicht zutreffen.
Aaronaught
8
-1 - Ich kann mir mehrere gute Gründe vorstellen, um Kennwörter auf einen bestimmten Zeichensatz zu beschränken. Ebenso ist es eine Situation, die Sie im Hinterkopf behalten müssen, wenn Sie sowohl Tastenkennwörter als auch die über eine Tastatur eingegebenen Kennwörter unterstützen müssen.
rjzii
9
-1. Keine Rechtfertigung, nur Meinung. Wenn Sie eine pauschale Aussage machen wollen, sichern Sie sie.
Michael K
4
Dies wird jetzt auf unserer Metadiskussionsseite diskutiert : Es wäre hilfreich zu verstehen, warum eine Einzelwortantwort so beliebt ist und was wir tun können, um die Qualität solcher Antworten zu verbessern.
25

Das Begrenzen der Länge kann eine Maßnahme sein, um die Ausführungszeit des Hashings sowie die Bandbreite zu begrenzen (und beide sind sowieso sehr gering). Davon abgesehen gibt es keinen guten Grund, insbesondere aus sicherheitstechnischer Sicht.

Man könnte sagen: "Die Leute werden längere Passwörter leichter vergessen" - aber das ist wirklich eine dumme Aussage und kommt überhaupt nicht auf den Punkt.

Was die Zeichen betrifft, solange Sie potenzielle Codierungsprobleme bei der Datenübertragung und / oder -migration in der Zukunft kennen (z. B. werden Sie in 2 Jahren von ASCII auf UTF-8 umsteigen), können mehr Zeichen nur für die Stärke der Kennwörter nützlich sein.

Kissaki
quelle
4
Angesichts des Overheads einer modernen Protokolllänge kann dies absolut kein guter Grund sein - abgesehen von einer hohen Grenze wie 1K, nur um bestimmte Angriffe / Unsinn zu verhindern.
edA-qa mort-ora-y
3
Das Begrenzen der Ausführungszeit von Hashing ist im Allgemeinen schlecht. Je länger es dauert, einen Hash zu berechnen, desto länger dauert es, ihn zu brachialisieren.
tdammers
Obwohl das richtig ist, ist es immer ein Kompromiss. Sie möchten nicht immer den besten Hash berechnen, der am längsten dauert. Daher asymmetrischer Handshake vs symmetrischer Datenstrom in VPN usw.
Kissaki
17

Ja , es gibt einen Grund für Sonderzeichen.

Das Ablehnen von Sonderzeichen ist eher eine Sache der Benutzerfreundlichkeit als der Sicherheit. Zuallererst könnten sie durch Codierungsprobleme verstümmelt werden. Zweitens gibt es immer noch das Problem des Eingabegeräts, auch wenn Sie garantieren würden, immer dieselbe Codierung zu verwenden. Sie sind abhängig von einer vollständigen Tastatur (die die meisten Mobilgeräte überflüssig macht) mit demselben Tastaturlayout. Später unterscheiden sich nicht nur die Sprachen, sondern auch die Betriebssysteme. Die Layouts für Windows, Linux und OSX sind möglicherweise etwas unterschiedlich. Also ich guten Grund sehe nicht durch ein Passwort zu erlauben , wie: √Ω≈ç∫∞§…¬å∑±.

vartec
quelle
3
es sei denn , Sie bieten ein Passwort für Ihre Benutzer, das heißt, wenn sie diejenigen Eingabe des Passworts sind selbst dann , wenn sie ihr Geschäft einige seltsame mathematische Symbol zu verwenden , wirklich so wählen ist. Jetzt stimme ich dem Codierungsproblem zu, finde es jedoch eher eine Ausrede, die Radar-Inkompetenz zu unterschreiten, als einen guten Grund, bestimmte Zeichen willkürlich zu verhindern.
Newtopian
2
@new: es geht sie nichts an. Wenn sie sich in den Fuß schießen, werden sie immer noch als Problem mit Ihrer Anwendung wahrgenommen und rufen Sie Ihren Support an.
Vartec
7
@Newtopian: Ich hasse es, wenn ich als Benutzer aus Unwissenheit umschrieben werde (z. B. wenn ich in meiner E-Mail-Adresse kein "+" angeben kann ). Manchmal ist es jedoch eine gute Idee, den Benutzern nicht zu viel Seil zum Aufhängen zu geben. Ich denke, das ist eine solche Gelegenheit. Es geht nicht darum, "willkürlich" bestimmte Zeichen zu verhindern.
Zano
1
Sie befürworten also, dass Griechen, Araber, Chinesen und andere US-ASCII verwenden?
l0b0
@ 10: Nein, ich befürworte, dass sie normale, häufig verwendete Zeichen in ihrer Sprache verwenden, anstatt einige Sonderzeichen, die in einigen Layouts fehlen können.
Vartec
13

Vor einigen Jahren gab es in der Sicherheitswelt einige Kontroversen, als Chase-Kunden feststellten, dass bei ihren Passwörtern die Groß- und Kleinschreibung nicht beachtet wurde. Es stellte sich heraus, dass ihre Webseite nur ein Frontend für ein 30 Jahre altes OS / 400-Backend-System war, das eine technische Einschränkung aufwies, die Groß- und Kleinschreibung ignorierte. Dies zu beheben würde anscheinend Millionen von Dollar kosten.

Der Punkt ist, es kann teure Gründe dafür geben, Kennwörter über eine bestimmte Länge nicht zuzulassen.
(Beachte, dass ich diese Ausrede nicht gutheiße ...)

BlueRaja - Danny Pflughoeft
quelle
1
Insofern ist dies der einzige gute Grund, das Passwort in irgendeiner Weise einzuschränken ... nur, wenn das zugrunde liegende System diese Einschränkungen überhaupt noch hat.
Newtopian
8

Die meisten Banken, IT-Abteilungen usw., die maximale Kennworteinschränkungen durchsetzen, tun dies aus technischen Gründen nicht. Sie wissen genau, wie das Hashing von Passwörtern funktioniert und wie komplexe Passwörter gespeichert werden. Diese Einschränkungen werden auferlegt, da die Anzahl der Anrufe zur Unterstützung von Personen, die ihre Kennwörter vergessen haben, verringert wird. Ist dies ein guter Grund, eine solche Einschränkung zu verhängen? Auf keinen Fall. Trotzdem ist es der Hauptgrund.

Greg Jackson
quelle
1
Ich sehe die Reduzierung von Supportanrufen als valid Business reason(Ich persönlich glaube nicht wirklich, dass es eine Korrelation gibt)
Martin York
2
Nun, es gibt andere Möglichkeiten, Kennwörter zurückzusetzen oder Benutzer darüber zu unterrichten, wie man ausreichend komplexe Kennwörter auswählt, die leicht zu merken sind. Meine letzten Passwörter bei der Arbeit waren> 25 Zeichen, und ich hatte keine Probleme, mich an sie zu erinnern. Vermutlich werden auch Leute, die Probleme haben, sich an ihre langen Passwörter zu erinnern, immer noch kürzere Passwörter wählen, obwohl ich keine Ahnung habe, wie oft das tatsächlich zutrifft. Das Reduzieren von Supportanrufen scheint oberflächlich betrachtet ein gültiger Geschäftsgrund zu sein, aber es ist immer noch ein mieser Grund, die Kennwortlänge zu beschränken.
Greg Jackson
1
Ich denke, meine (und viele Leute) würden es fast unmöglich finden, 25 Zeichen genau zu tippen (nicht nur zu merken), ohne die Ausgabe zu sehen. Ich habe bisher 5 Tippfehler behoben, während ich dies schreibe!
Gerry
Erinnern ist nicht dasselbe wie Tippen. Es ist sehr einfach, sich lange Passwörter zu merken, wenn Sie wissen, wie man sie auswählt. Wählen Sie einfach Zeilen aus Geschichten oder Theaterstücken oder Teile von Gedichten oder Liedtexten. Solange Sie dort ein oder zwei Dinge ändern (absichtliche Rechtschreibfehler, ein Wort in ein anderes ändern, das so klingt oder dasselbe bedeutet usw.), ist es recht einfach und äußerst sicher. Es ist zwar schwieriger, es zu tippen, aber es ist keine Entschuldigung für Banken, Sie zu zwingen, weniger als 8/10/12 Zeichen einzugeben.
Greg Jackson
Versuchen Sie, das 25-Buchstaben-Passwort auf einem mobilen Gerät einzugeben
Lie Ryan
7

Nicht alle Eingabegeräte (hardwaremäßig) haben oft alle Zeichen einer vollständigen Tastatur oder Ähnliches. Wenn man keinen Passwort-Manager benutzt, könnte man Probleme haben, ein solches Passwort einzugeben, oder? Und Unicode ist noch weit davon entfernt, ein Standard zu sein.

Turm
quelle
1
Normalerweise verwenden die Personen, die Kennwörter eingeben, dieselbe Hardware (oder Hardwareklasse), um sie zu erstellen und zu authentifizieren. Ich verstehe nicht, wie dies ein Argument ist, wenn es darum geht, Zeichensätze oder Längen einzuschränken. Was Unicode betrifft, warum sollten Sie beim Erstellen des serverseitigen Teils (des authentifizierenden Teils) die Größe oder die Zeichensätze einschränken? Jedes System, das die Eingabe eines Passworts erfordert, sollte in der Lage sein, die Eingabe dieses Passworts im System zu steuern. Wenn Sie also einen Unicode für Ihren Client benötigen, ist dies auch der Fall!
Newtopian
@Newtopian Sie gehen davon aus, dass Sie nicht mit älteren Systemen oder Systemen außerhalb Ihrer Kontrolle kommunizieren müssen.
Grahamparks
1
sie fragten nach einem guten Grund, das ist kein guter Grund
2
@Jarrod - Es ist kein guter Grund, kein Passwort eingeben zu können ?! Auf jeden Fall habe ich nicht gesehen, dass du dir einen besseren (oder überhaupt einen) ausgedacht hast.
Rook
3
@Rook sollten Sie nicht diese Zeichen verwendet haben , wenn Sie wüssten , dass man sie nicht von einem Gerät holen konnte, dass es nicht zu einem machen guten Grund , sie für jedermann zu begrenzen, macht es einen guten Grund für Sie persönlich nicht , sie zu benutzen.
7

Gibt es gute Gründe, entweder eine höhere Länge festzulegen oder Zeichen in Passwörtern auszuschließen?

Ich werde eine Vermutung anstellen und sagen, dass einige dieser Einschränkungen auf die Zeichenfilterung auf ihrer Website ( & < > #) zurückzuführen sind, um Hacker fernzuhalten. Während andere die knochenköpfigen Ideen sind, die aus Komitees von Chefs mit spitzen Haaren stammen.

Ich bin auf eine Reihe wirklich dummer (meiner Meinung nach) "Sicherheits" -Entscheidungen gestoßen. Beispielsweise verwaltet eine große Investmentgesellschaft meine IRA-Konten sowie meine Rente. Um das zu tun jeden Kontakt mit der Rente verlangt , dass ich in meinem Passwort am Telefon eingeben (Sie können sie sonst nicht erreichen). Mein Brokerage- / IRA-Konto verwendet Buchstaben (Groß- und Kleinbuchstaben) sowie Satzzeichen - keines dieser Zeichen wird auf einem Telefonnummernblock angezeigt. Wenn Sie sich nicht über das Telefon mit dem Kennwort anmelden können, können Sie das Kennwort Ihres Brokerage-Kontos auf einen Wert zurücksetzen, den Sie über das Telefon eingeben können.

Mein Lohn- und Gehaltsabrechnungssystem (für das Beratungsunternehmen, für das ich arbeite) erfordert Nummern und nur Nummern. Dadurch können sie dieselbe Datenbank verwenden, unabhängig davon, ob der Benutzer anruft (das habe ich noch nie getan) oder die Weboberfläche verwendet (ich benutze nur diese). .

Abgesehen davon ist es Zeit, mein Passwort im Büro zu ändern. Sie haben so verrückte Einschränkungen, dass ich schätze, dass es ungefähr einen halben Tag dauern wird, bis ein für das System akzeptables Passwort gefunden ist: mindestens 2 Großbuchstaben, mindestens 2 Kleinbuchstaben, mindestens 2 Ziffern (die nicht +/- 1 sein dürfen) aus den vorherigen Passwörtern), mindestens 2 nicht-alphanumerische Zeichen, darf keinem der letzten 24 Passwörter entsprechen, darf keine Zeichenfolge (vorwärts oder rückwärts) enthalten, die ein Wort (3 oder mehr Buchstaben lang) in Englisch ist ( auch ein paar andere Sprachen, die ich nicht kenne). Ich denke, die Mindestlänge beträgt 10-11 Zeichen.

Tangurena
quelle
Ja, ich habe diese Charaktere auf der No-List gesehen.
Chris
5
Einfacher Angriff: Finden Sie Haftnotizen unter Tastaturen, da sich niemand an ihr Passwort erinnern kann.
JeffO
@ Jeff, das ist richtig. Wenn ich mein Notizbuch zu Hause lasse, sind die Passwörter zu kompliziert, um sie zu merken, sodass ich mich nicht anmelden kann. Auf dem Gehaltsabrechnungssystem füge ich den Benutzernamen und das Passwort als Teil des Lesezeichens ein.
Tangurena
"Kann keine Zeichenkette (vorwärts oder rückwärts) enthalten, die ein Wort (3 oder mehr Buchstaben lang) in Englisch ist." Wörterbuchangriffe sind nicht effektiv, wenn das Passwort ganze Wörter enthält , sondern wenn das gesamte Passwort nur aus ganzen Wörtern besteht ... Nun, wirklich ein ganzes Wort oder sehr häufige Ausdrücke. Die sichersten Passwörter, die praktisch sind, ohne sie aufzuschreiben, sind Passwörter, die aus Büchern, Gedichten, Liedertexten usw. stammen. Ändern Sie ein paar Buchstaben in Zahlen, schreiben Sie etwas falsch und schreiben Sie unvorhersehbar in Großbuchstaben. Niemand wird dieses Passwort knacken.
Greg Jackson
1
Die Zeichenfilterung ist ein sicheres Zeichen für nicht getesteten Garbage Code im Hintergrund. Entwickler müssen lernen, Zeichenfolgen zu entkommen.
l0b0
5

Ein Grund für die Beschränkung der Zeichen liegt darin, wie das Kennwort dann eingegeben wird.

Beispielsweise fragen mehrere Banken mit ihren Internet-Banking-Websites nach bestimmten Zeichen aus einem Kennwort, und Sie wählen die entsprechenden Zeichen über ein Dropdown-Feld aus.

Vermutlich tun sie dies, damit Keylogger den Tastendruck nicht erkennen können und daher [Zeichen aus] Ihrem Passwort kennen. Ich weiß zwar, dass es viele andere Möglichkeiten gibt, wie solche Maßnahmen umgangen werden können, z. B. Screencapture. Es ist immer noch wirksam gegen Keylogger.

Wenn sie alle Zeichen zulassen müssten, würde die Länge des Dropdown-Felds umständlich werden und auch die Verwechslung von ähnlich aussehenden Zeichen zulassen.

Megan Walker
quelle
1
Sicherlich würden (technische) Leute den Brief trotzdem einfach eingeben?
Gerry
@Gerry - das ist eher ein browserspezifisches Verhalten als ein absoluter Standard und es hängt auch vom Benutzerwissen ab, um es funktionsfähig zu machen.
Jon Hopkins
Aus einem ähnlichen Grund verwendete meine Bank ein Popup-Applet einer Tastatur. Aber es war zu schwierig zu benutzen und wurde viel kritisiert, weil es nicht zugänglich war (funktionierte nicht für Screenreader, alternative Eingaben usw.)
jqa
1
@ Jon - Ich sagte technische Leute, und ich kenne keine Windows-Browser, die mindestens die erste Zeichenübereinstimmung nicht implementieren, da dies das Standardverhalten von Windows ist - kann nicht für Mac und * nix sprechen
Gerry
1
@Gerry Der Browser auf meinem Android-Handy lässt dies nicht zu. Ich gehe davon aus, dass dies bei vielen Mobilgeräten auch so ist.
RoundTower
2

Das Ablehnen von Sonderzeichen wie tab wäre zulässig. Sie können sich mit einem Tabulatorzeichen im Textmodus anmelden oder Ihr Kennwort ändern, aber Sie können es nicht in einer GUI oder einer Webumgebung verwenden. Ein Backslash-Char wird auch einige plattformübergreifende Probleme aufzeigen.

Übrigens sind lange Passwörter keine Passwörter - sie sind Passphrasen. Ein durchschnittlicher Benutzer kann sich nicht an 2Z8d!% G # x erinnern, aber er kann sich daran erinnern, dass der Name meines Haustieres Fido der Hund ist. Längerer Text ist mit brachialer Gewalt schwerer zu knacken, und es ist weitaus unwahrscheinlicher, dass er auf eine Notiz am Bildschirm geschrieben wird.

jqa
quelle
Siehe auch xkcd.com/936
sergut
0

Wenn Menschen tippen, machen sie Fehler, die als "Tippfehler" bezeichnet werden. Normalerweise sehen die Leute ihre Fehler und korrigieren sie. Bei der Passworteingabe können Sie normalerweise nicht sehen, was Sie eingegeben haben, und daher können Sie Ihre Tippfehler nicht korrigieren. Sie machen Fehler, ohne es zu bemerken, übermitteln Ihr Passwort und es wird als "Passwort ungültig" zurückgegeben. Dann versuchst du es nochmal. Dann versuchst du es nochmal.

Sie können sich das als "3 kleine Tippfehler vorstellen und dann sind Sie von einem Brute-Force-Angriff nicht zu unterscheiden". Wie schützen Systeme vor Brute-Force-Angriffen? Eine explizite Antwort " Zu viele Versuche, gehen Sie weg, Sie können sich nicht anmelden, auch wenn Sie es richtig verstanden haben "? Die Verzögerungen bei der Passworteingabe nehmen exponentiell zu, was zu einer Zeitüberschreitung des Browsers führt, wenn die Verzögerung zu lang ist, sodass es unmöglich ist, sich erneut anzumelden. Ansätze variieren, aber ein gut konzipiertes System hat immer Konsequenzen.

Sie können sich das als "3 kleine Tippfehler vorstellen und dann bekommen Sie eine Art Denial-of-Service".

Mit zunehmender Kennwortlänge steigt das Risiko von Tippfehlern (und damit das Risiko, dass einer autorisierten Person der Zugriff verweigert wird). Alles, was länger als etwa 20 Zeichen ist, wird häufig falsch geschrieben (es sei denn, der Benutzer ist schlau / faul und speichert sein Passwort irgendwo, damit er "kopieren und einfügen" kann, ohne sich Gedanken über Tippfehler zu machen, wie eine nette einfache Textdatei auf seinem Desktop mit dem Namen " Passwörter " .txt ").

Brendan
quelle