Ich kann verstehen, dass es sehr sinnvoll ist, Passwörtern eine Mindestlänge aufzuerlegen (um Benutzer vor sich selbst zu schützen), aber meine Bank verlangt, dass Passwörter zwischen 6 und 8 Zeichen lang sind, und ich habe mich gefragt ...
- Wäre dies nicht einfacher für Brute-Force-Angriffe? (Schlecht)
- Bedeutet dies, dass mein Passwort unverschlüsselt gespeichert wird? (Schlecht)
Wenn jemand mit (hoffentlich) guten IT-Sicherheitsexperten, die für sie arbeiten, eine maximale Kennwortlänge vorschreibt, sollte ich darüber nachdenken, dies ähnlich zu tun? Was sind die Vor- und Nachteile davon?
security
encryption
passwords
nickf
quelle
quelle
Antworten:
Passwörter werden auf 32, 40, 128 gehasht, unabhängig von der Länge. Der einzige Grund für eine Mindestlänge besteht darin, leicht zu erratende Passwörter zu vermeiden. Es gibt keinen Zweck für eine maximale Länge.
Die obligatorische XKCD, die erklärt, warum Sie Ihrem Benutzer einen schlechten Dienst erweisen , wenn Sie eine maximale Länge festlegen :
quelle
Eine in einem Kennwortfeld angegebene maximale Länge sollte als SICHERHEITSWARNUNG gelesen werden . Jeder vernünftige, sicherheitsbewusste Benutzer muss das Schlimmste annehmen und erwarten, dass diese Site Ihr Passwort buchstäblich speichert (dh nicht gehasht, wie von epochwolf erklärt).
In diesem Fall ist das der Fall:
Wenn Sie eine Website entwickeln , die Passwörter akzeptiert, nicht ein dummes Passwort Limit setzen, es sei denn , Sie mit der gleichen Bürste erhalten geteerten wollen.
[Intern behandelt Ihr Code natürlich möglicherweise nur die ersten 256/1024 / 2k / 4k / (was auch immer) Bytes als "signifikant", um ein Knirschen mit Mammutkennwörtern zu vermeiden.]
quelle
Das Zulassen einer vollständig unbegrenzten Kennwortlänge hat einen großen Nachteil, wenn Sie das Kennwort aus nicht vertrauenswürdigen Quellen akzeptieren.
Der Absender könnte versuchen, Ihnen ein so langes Passwort zu geben, dass dies zu einem Denial-of-Service für andere Personen führt. Wenn das Kennwort beispielsweise 1 GB Daten enthält und Sie Ihre ganze Zeit damit verbringen, es zu akzeptieren, bis Ihnen der Speicher ausgeht. Angenommen, diese Person sendet Ihnen dieses Passwort so oft, wie Sie akzeptieren möchten. Wenn Sie mit den anderen Parametern nicht vorsichtig sind, kann dies zu einem DoS-Angriff führen.
Das Setzen der Obergrenze auf etwa 256 Zeichen erscheint nach heutigen Maßstäben zu großzügig.
quelle
Gehen Sie zunächst nicht davon aus, dass Banken über gute IT-Sicherheitsexperten verfügen. Viele nicht .
Die maximale Passwortlänge ist jedoch wertlos. Oft müssen Benutzer ein neues Kennwort erstellen (Argumente für den Wert der Verwendung unterschiedlicher Kennwörter auf jeder Site für den Moment), was die Wahrscheinlichkeit erhöht, dass sie diese nur aufschreiben. Es erhöht auch die Anfälligkeit für Angriffe durch jeden Vektor von Brute Force bis Social Engineering erheblich.
quelle
Das Festlegen einer maximalen Kennwortlänge von weniger als 128 Zeichen wird jetzt vom OWASP Authentication Cheat Sheet nicht empfohlen
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
Unter Berufung auf den gesamten Absatz:
quelle
Ein Grund, den ich mir vorstellen kann, um eine maximale Kennwortlänge zu erzwingen, ist, dass das Frontend mit vielen älteren System-Backends verbunden sein muss, von denen eines selbst eine maximale Kennwortlänge erzwingt.
Ein anderer Denkprozess könnte sein, dass ein Benutzer, wenn er gezwungen ist, ein kurzes Passwort zu verwenden, eher zufälligen Kauderwelsch erfindet als einen (von seinen Freunden / seiner Familie) leicht zu erratenden Slogan oder Spitznamen. Dieser Ansatz ist natürlich nur dann effektiv, wenn das Frontend das Mischen von Zahlen / Buchstaben erzwingt und Passwörter ablehnt, die Wörterbuchwörter enthalten, einschließlich Wörter, die in l33t-speak geschrieben sind.
quelle
Ein potenziell gültiger Grund für die Festlegung einer maximalen Kennwortlänge besteht darin, dass das Hashing (aufgrund der Verwendung einer langsamen Hashing-Funktion wie bcrypt) zu viel Zeit in Anspruch nimmt. etwas, das missbraucht werden könnte, um einen DOS-Angriff gegen den Server auszuführen.
Andererseits sollten Server so konfiguriert werden, dass zu lange dauernde Anforderungshandler automatisch gelöscht werden. Ich bezweifle, dass dies ein großes Problem wäre.
quelle
Ich denke, Sie haben in beiden Punkten sehr recht. Wenn sie die gehashten Kennwörter speichern, wie sie sollten, hat die Kennwortlänge keinerlei Auswirkungen auf ihr DB-Schema. Eine offene Passwortlänge führt zu einer weiteren Variablen, die ein Brute-Force-Angreifer berücksichtigen muss.
Abgesehen von schlechtem Design ist keine Entschuldigung für die Begrenzung der Passwortlänge zu finden.
quelle
Der einzige Vorteil, den ich bei einer maximalen Kennwortlänge sehen kann, besteht darin, das Risiko eines Pufferüberlaufangriffs durch ein zu langes Kennwort auszuschließen. Es gibt jedoch viel bessere Möglichkeiten, mit dieser Situation umzugehen.
quelle
Ignorieren Sie die Leute, die sagen, dass sie lange Passwörter nicht validieren sollen. Owasp sagt buchstäblich, dass 128 Zeichen ausreichen sollten. Um genügend Atempause zu haben, können Sie etwas mehr sagen, 300, 250, 500, wenn Sie Lust dazu haben.
https://www.owasp.org/index.php/Authentication_Cheat_Sheet#Password_Length
quelle
Speicher ist billig, warum die Länge des Passworts begrenzen. Selbst wenn Sie das Kennwort verschlüsseln, anstatt es nur zu hashen, benötigt eine 64-stellige Zeichenfolge nicht viel mehr als eine 6-stellige Zeichenfolge zum Verschlüsseln.
Möglicherweise überlagert das Bankensystem ein älteres System, sodass nur ein bestimmter Speicherplatz für das Kennwort zugelassen werden konnte.
quelle
Meine Bank macht das auch. Früher erlaubte es jedes Passwort, und ich hatte ein 20-stelliges. Eines Tages änderte ich es, und siehe da, es gab mir maximal 8 und hatte nicht-alphanumerische Zeichen ausgeschnitten, die in meinem alten Passwort waren. Hat für mich keinen Sinn ergeben.
Alle Back-End-Systeme in der Bank funktionierten zuvor, als ich mein 20-Zeichen-Passwort mit nicht alphanumerischen Zeichen verwendete. Daher kann die Unterstützung durch Legacy nicht der Grund gewesen sein. Und selbst wenn dies der Fall sein sollte, sollten Sie dennoch beliebige Kennwörter verwenden und dann einen Hash erstellen können, der den Anforderungen der Legacy-Systeme entspricht. Besser noch, sie sollten die Legacy-Systeme reparieren.
Eine Smartcard-Lösung würde mir nicht gut passen. Ich habe bereits zu viele Karten ... Ich brauche kein weiteres Gimmick.
quelle
Wenn Sie ein Kennwort beliebiger Größe akzeptieren, wird davon ausgegangen, dass es aus Leistungsgründen auf eine Vorhanglänge gekürzt wird, bevor es gehasht wird. Das Problem beim Abschneiden besteht darin, dass Sie mit zunehmender Serverleistung die Länge vor dem Abschneiden nicht einfach erhöhen können, da der Hash eindeutig anders wäre. Natürlich könnten Sie eine Übergangszeit haben, in der beide Längen gehasht und überprüft werden, aber dies verbraucht mehr Ressourcen.
quelle
Versuchen Sie, keine Einschränkungen aufzuerlegen, es sei denn, dies ist erforderlich. Seien Sie gewarnt: Es kann und wird in vielen verschiedenen Fällen notwendig sein. Der Umgang mit Legacy-Systemen ist einer dieser Gründe. Stellen Sie sicher, dass Sie den Fall von sehr langen Passwörtern gut testen (kann Ihr System mit 10 MB langen Passwörtern umgehen?). DoS-Probleme (Denial of Service) können auftreten, da die von Ihnen verwendeten Key Defivation Functions (KDF) (normalerweise PBKDF2, bcrypt, scrypt) zu viel Zeit und Ressourcen in Anspruch nehmen. Beispiel aus dem wirklichen Leben: http://arstechnica.com/security/2013/09/long-passwords-are-good-but-too-much-length-can-be-bad-for-security/
quelle
Sollte es eine maximale Länge geben? Dies ist ein merkwürdiges Thema in der IT, da längere Passwörter in der Regel schwerer zu merken sind und daher eher aufgeschrieben werden (ein GROSSES Nein-Nein aus offensichtlichen Gründen). Längere Passwörter werden auch häufiger vergessen, was zwar nicht unbedingt ein Sicherheitsrisiko darstellt, aber zu Verwaltungsproblemen, Produktivitätsverlusten usw. führen kann. Administratoren, die glauben, dass diese Probleme dringend sind, legen Passwörtern wahrscheinlich maximale Längen auf.
Ich persönlich glaube an dieses spezielle Thema, dass jeder Benutzer sein eigenes hat. Wenn Sie glauben, dass Sie sich an ein 40-stelliges Passwort erinnern können, haben Sie umso mehr Macht!
Trotzdem werden Passwörter schnell zu einem veralteten Sicherheitsmodus. Smartcards und die Zertifikatauthentifizierung sind sehr schwierig bis unmöglich, wie Sie angegeben haben, ein Problem, und nur ein öffentlicher Schlüssel muss auf der Serverseite mit dem privaten gespeichert werden Schlüssel jederzeit auf Ihrer Karte / Ihrem Computer.
quelle
Längere Passwörter oder Passphrasen sind aufgrund ihrer Länge schwerer zu knacken und leichter zu merken als ein komplexes Passwort.
Wahrscheinlich am besten für eine ziemlich lange (10+) Mindestlänge, um die nutzlose Länge einzuschränken.
quelle
Ältere Systeme (bereits erwähnt) oder Schnittstellen zu Systemen anderer Anbieter erfordern möglicherweise die Beschränkung auf 8 Zeichen. Es könnte auch ein fehlgeleiteter Versuch sein, die Benutzer vor sich selbst zu retten. Wenn Sie dies auf diese Weise einschränken, werden zu viele Kennwörter für pssw0rd1, pssw0rd2 usw. im System angezeigt.
quelle
Ein Grund, warum Passwörter möglicherweise nicht gehasht werden, ist der verwendete Authentifizierungsalgorithmus. Beispielsweise erfordern einige Digest-Algorithmen eine Klartextversion des Kennworts auf dem Server, da beim Authentifizierungsmechanismus sowohl der Client als auch der Server die gleichen Berechnungen für das eingegebene Kennwort durchführen (die im Allgemeinen nicht jedes Mal dieselbe Ausgabe wie das Kennwort erzeugen wird mit einer zufällig generierten 'Nonce' kombiniert, die von den beiden Maschinen gemeinsam genutzt wird.
Oft kann dies verstärkt werden, da die Verdauung in einigen Fällen teilweise berechnet werden kann, aber nicht immer. Eine bessere Möglichkeit besteht darin, das Kennwort mit reversibler Verschlüsselung zu speichern. Dies bedeutet, dass die Anwendungsquellen geschützt werden müssen, da sie den Verschlüsselungsschlüssel enthalten.
Digst auth dient dazu, die Authentifizierung über ansonsten unverschlüsselte Kanäle zu ermöglichen. Wenn Sie SSL oder eine andere Vollkanalverschlüsselung verwenden, müssen keine Digest-Authentifizierungsmechanismen verwendet werden. Dies bedeutet, dass Kennwörter stattdessen gehasht gespeichert werden können (da Kennwörter sicher über das Kabel gesendet werden können (für einen bestimmten Wert von safe).
quelle
Nur 8 Zeichen lange Passwörter klingen einfach falsch. Wenn es ein Limit geben sollte, sind mindestens 20 Zeichen die bessere Idee.
quelle
Ich denke, das einzige Limit, das angewendet werden sollte, ist wie ein Limit von 2000 Buchstaben oder etwas anderes, das unglaublich hoch ist, aber nur, um die Datenbankgröße zu begrenzen, wenn dies ein Problem ist
quelle