it-swarm.com.de

Was ist die beste Länge für zufällig generierte Passwörter? (Sicherheit vs. Kompatibilität)

Im Allgemeinen wird empfohlen, für jeden Onlinedienst ein eindeutiges Kennwort, einen Zufallskennwortgenerator zum Erstellen und einen Kennwortmanager zum Speichern zu verwenden.

Ich habe begonnen, alle meine Online-Passwörter durch diese Technik zu ersetzen, aber einige Websites haben bestimmte Regeln bezüglich der Länge eines Passworts.

Leider wird eine Website manchmal nicht so programmiert, dass sie die maximal zulässige Anzahl von Zeichen kommuniziert und den Überlauf einfach löscht, wenn er in das Kennwortfeld kopiert wird. Aus diesem Grund hatte ich bereits Probleme, die Kontrolle über ein Konto zurückzugewinnen, da ich nicht wusste, wie viele Zeichen als Passwort gespeichert wurden.

Gibt es eine bestimmte Anzahl von Zeichen, die wahrscheinlich auf den meisten Websites/Backend-Programmen funktionieren und die für zufällig generierte Kennwörter immer noch als relativ sicher gelten, sodass ich nur eine Kennwortgeneratorlängeneinstellung für so viele Websites wie möglich verwenden kann?

11
Prototype700

Wenn Ihre Passwörter n Zeichen sind, die mit gleicher Wahrscheinlichkeit zufällig aus einem Satz von 95 Zeichen gezogen wurden (das sind ungefähr alle ASCII druckbare Zeichen minus Leerzeichen), dann jedes Zeichen gibt Ihnen ungefähr 6,6 Bit Entropie, also beträgt die Stärke eines zufälligen Passworts mit n Zeichen 6,6 × n. Also:

  • Ein 10-stelliges Passwort gibt Ihnen ungefähr 66-Bit-Stärke.
  • Ein 12-stelliges Passwort gibt Ihnen ungefähr 79-Bit-Stärke.
  • Ein 14-stelliges Passwort gibt Ihnen ungefähr 92-Bit-Stärke.
  • Ein 20-stelliges Passwort gibt Ihnen ungefähr 132-Bit-Stärke.

Meines Erachtens können Sie je nach Anwendung jede dieser Längen sinnvoll auswählen. Wenn Sie beispielsweise ein 66-Bit-Kennwort für einen Onlinedienst mit geringem Wert verwenden, ist Ihr Kennwort immer noch stärker als bei fast allen Benutzern dieses Dienstes. Wenn es sich jedoch um ein Kennwort handelt, mit dem ein Verschlüsselungsschlüssel für Software abgeleitet wird, die Sie auf Ihrer eigenen Hardware ausführen, sollten Sie auf jeden Fall etwas Stärkeres in Betracht ziehen.


Um einige zusätzliche Gedanken hinzuzufügen, lohnt es sich, zwei Arten von Angriffen in Betracht zu ziehen:

  1. Ein Angriff auf einen Website (oder einen anderen kennwortgeschützten Dienst), für den Sie sich angemeldet haben.
  2. Ein Angriff gegen Sie speziell.

In Szenario 1 wird der Passwort-Cracker seine Rechenleistung auf das Knacken aufteilen so viele Benutzerpasswörter wie möglich, in der Hoffnung, die niedrig hängenden Früchte zu finden - Benutzer mit sehr schwachen Passwörtern . Ich glaube, ein 64- bis 80-Bit-Passwort reicht aus, um Ihre Passwörter vor solchen Angriffen zu schützen.

In Szenario 2 wird der Angreifer seine gesamte Rechenleistung speziell für das Knacken von Ihrem Passwort einsetzen. In diesem Fall kann ein mächtiger Gegner möglicherweise (oder möglicherweise nicht!) Ein 66-Bit-Kennwort knacken, und Sie können daher rechtfertigen, bis zu 19 bis 20 Zeichen (bis zu 128 Zeichen) zu verwenden -bit Sicherheitsstärke der meisten Chiffren).

Und denken Sie immer daran, dass wenn Ihr Passwort stark genug ist, dies nur bedeutet, dass der Angreifer Nr. 2 eine andere Schwachstelle untersuchen wird. Machen Sie sich nicht die Mühe, Ihr Passwort unangenehm sicher zu machen, wenn Sie anderswo große Löcher haben.

9
Luis Casillas

Ich werde mich von den anderen Antworten (bis jetzt) ​​unterscheiden und vorschlagen, dass Sie, wenn Sie ein eindeutiges zufälliges Passwort pro Website generieren, überhaupt kein wirklich langes Passwort benötigen.

Denken wir über die Bedrohungen für Passwörter nach. Wir werden uns nur die Serverseite ansehen (d. H. Wir werden Dinge wie die Protokollierung von Malware auf Ihrem PC nicht berücksichtigen, da die Kennwortlänge dort nicht viel hilft).

Angriffe, für die die Kennwortlänge relevant ist, lassen sich grundsätzlich in zwei Kategorien einteilen. Online-Brute-Force und Offline-Brute-Force.

Bei Online-Brute-Force versucht der Angreifer, Ihr Passwort anhand der Website zu erraten, sodass er pro Versuch eine Anfrage sendet. In der Realität werden viele Websites nach einer Reihe falscher Anforderungen gesperrt, aber nehmen wir an, dass dies nicht der Fall ist

Nehmen wir nun an, der Angreifer kann 1000 Vermutungen pro Sekunde anstellen. Wenn Sie (zum Beispiel) ein 8-stelliges Zufallskennwort mit oberen, unteren und numerischen Zeichen ausgewählt haben, gibt es 62 ^ 8 Optionen. Bei dieser Geschwindigkeit sprechen wir über den Hitzetod des Universums, bevor sie es erraten.

Jetzt könnte jemand sagen "Was ist, wenn der Angreifer ein Botnetz bekommt, um es zu erraten, kann er viel schneller gehen!", Ich würde vorschlagen, dass Sie so ziemlich jede Site erledigen, bevor Sie dies schnell genug machen, um praktisch zu sein.

Ok, lassen Sie uns offline über Brute-Force sprechen, da dies für die Länge des Passworts relevanter ist. Hier hat der Angreifer bereits eine Kopie Ihres Passwort-Hashs erhalten, daher ist es wahrscheinlich, dass er die Sicherheit dieser Site ziemlich gründlich gefährdet hat. Hier können Sie argumentieren, dass das Kennwort lange genug gültig sein soll, damit die Site bemerkt, dass es pwned wurde, und dass Sie Ihr Kennwort zurücksetzen.

Genau zu sagen, wie lange es schwierig ist, hängt sehr davon ab, wie die Site ihre Passwörter speichert. Wenn sie ungesalzenes MD5 verwenden, ist das ein großer Unterschied, als wenn sie bcrypt mit einem hohen Arbeitsfaktor verwenden.

Bei alledem ist jedoch die Auswirkung zu berücksichtigen. Welche Auswirkungen hat das Knacken dieses Passworts? Wenn Sie für jede Site einen eindeutigen Zufallswert verwendet haben, ist die Auswirkung wahrscheinlich sehr begrenzt. Sie würden hoffen , dass Ihre Websites mit hohem Wert alle 2FA verwenden, sodass das Passwort allein den Angreifer und die Websites mit niedrigem Wert nicht weit bringt die Folgen eines Kompromisses?

All diese Analysen beantworten Ihre Frage nicht wirklich, aber als Faustregel würde ich vorschlagen, wenn Sie sogar 10-12 Zeichen mit oberen, unteren und numerischen Zeichen verwenden und die Passwörter wirklich zufällig sind (das ist das Wichtige) Es ist a) wahrscheinlich in Ordnung und b) unwahrscheinlich, dass Probleme mit Standortbeschränkungen auftreten.

Per dieser Artikel zum Knacken von Passwörtern Ein oberes, unteres und numerisches Passwort mit 10 Zeichen würde 83 Tage dauern, bis ein "Supercomputer oder Botnetz" geknackt ist. Was Sie sich fragen müssen, ist, ob ein Angreifer diese Kosten wahrscheinlich investiert, um ein einzelnes Kennwort zu knacken, wenn er bereits die Sicherheit der Zielwebsite gefährdet hat, um den Hash zu erhalten.

4
Rory McCune

Bei meiner persönlichen Ad-hoc-Verwendung und beim Testen habe ich festgestellt, dass 20 zufällige Zeichen mit oberen/unteren/Ziffern und einigen sorgfältig ausgewählten Sonderangeboten (@ # $ ._ ohne Klammern) eine nette Mischung sind:

  • Gute Länge - weniger wahrscheinlich, dass sie stillschweigend abgeschnitten werden (sobald Sie über 20 Jahre alt sind, werden mehr Websites entweder lautlos abgeschnitten - genau wie Sie gesehen haben - oder sie lehnen sie als "zu lang" ab - 20 waren früher zu groß für zu diesem Zweck, aber die Landschaft hat sich in den letzten Jahren verändert)
  • Sehr gute Schlüsselraumgröße ((26 + 26 + 10 + 5) ^ 20 = 3,32x10 ^ 36) - zugegebenermaßen Overkill auch für nationalstaatliche Zeitreisende aus der nahen Zukunft, aber beabsichtigt, fast abzudecken Alle potenziellen Bedrohungsmodelle (einschließlich der Berücksichtigung des Mooreschen Gesetzes und der Ressourcen auf Nationalstaatsebene) für nahezu jeden, ohne unüberschaubar lang zu sein
  • Erfüllt die meisten Anforderungen an die Komplexität von Naivität/Legacy (einschließlich der Anforderung mindestens eines Sonderzeichens)
  • Erfüllt viele Anforderungen an " Nicht - Komplexität" (verbotene Zeichen)

Mit anderen Worten, dies ist ein Ansatz, von dem ich denke, dass er zu den meisten Bedrohungsmodellen und Anwendungsfällen passt.

Ich habe keine formalen Daten, um diese Behauptung zu stützen, außer meinen eigenen Experimenten mit meinen eigenen Logins im Laufe der Jahre, aber das ist meine Meinung. Möglicherweise müssen Sie im Laufe der Zeit an der Liste der Specials basteln, aber Sie haben die Idee.

Bearbeiten, um eine Beispielbefehlszeile hinzuzufügen:

echo $(tr -d -c '[email protected]#$._' </dev/urandom | head -c 20)
2
Royce Williams

Leider gibt es keine Standards für zulässige Passwörter oder Ähnlichkeiten zwischen Websites. Entwickler legen Einschränkungen fest, die ihrer Meinung nach zur Sicherheit beitragen könnten, andere setzen Einschränkungen ein, die auf externen (aber auch völlig willkürlichen) Regeln beruhen. Dies bedeutet, dass Sie, wenn Sie herausgefunden haben, dass Passwörter mit 14 Zeichen den Sweet Spot erreichen, immer noch andere inkompatible Regeln haben, mit denen Sie fertig werden müssen: eine bestimmte Anzahl von Groß-, Klein-, Ziffern oder Symbolen und eingeschränkte Zeichensätze das sind nicht miteinander kompatibel. Einige Websites erlauben nur sehr wenige (oder gar keine) Sonderzeichen, um SQL-Injection-Angriffe zu vermeiden. andere erfordern andere Sonderzeichen, weil sie fälschlicherweise glauben, dass ein breiterer Zeichensatz die Sicherheit verbessert.

Am besten machen Sie Ihren Generator konfigurierbar und betrachten jede Site als unabhängige Regelquelle.

1
John Deters