Frage:
Welche Kennwortrichtlinie ist sicherer: ein Kennwort der Länge 9 gegenüber zwei Kennwörtern der Länge 8?
Carlos
2019-02-28 08:15:12 UTC
view on stackexchange narkive permalink

Was ist sicherer, wenn Sie ein Passwort der Länge 9 (gesalzen und gehasht) oder zwei verschiedene Passwörter der Länge 8 (gesalzen und gehasht mit zwei verschiedenen Salzen) haben?

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/90464/discussion-on-question-by-carlos-which-password-policy-is-more-secure-one-passw)
Können Sie erklären, wie diese Passwörter verwendet werden und wie der Authentifizierungsprozess aussieht?
Sechs antworten:
Royce Williams
2019-02-28 10:56:27 UTC
view on stackexchange narkive permalink

Wie John Deters bemerkt hat, ist 2x8 mit ziemlicher Sicherheit schlimmer - aber die Gründe, warum es ein wenig erklärt werden muss.

Es gab einige Probleme mit LANMAN-Hashes (der klassische Fall, ein Passwort in zwei Hälften zu teilen) , schief gegangen):

  • Da Passwörter in der Regel von Menschen generiert und etwas kurz sind, wenn ein einzelnes Passwort nur wenig länger als die erste Hälfte war (z. B. 8 Zeichen), Dann würde das Knacken der zweiten Hälfte dramatisch weniger Zeit in Anspruch nehmen - und könnte sogar verraten, was die erste Hälfte wahrscheinlich sein würde.

  • LANMAN war einfach so verdammt schnell (damit der Angreifer versucht, in Hash-Operationen pro Sekunde)

  • LANMAN schneidet die Passwörter in einer unglücklichen Länge in zwei Teile (7) war ziemlich anfällig für volle Erschöpfung (und sogar mehr auf modernen GPUs)

Ihre Frage unterscheidet sich jedoch ein wenig vom LANMAN-Fall:

  • Es heißt nicht, dass die 2x8-Passwörter tatsächlich ein einzelnes Passwort sind, das in zwei Hälften geteilt ist (sie könnten unabhängig sein endent generiert und zufällig)
  • Es wird ausdrücklich angegeben, dass die beiden Passwörter die Länge 8 haben (anstatt beispielsweise eines der Länge 8 und das andere der Länge 1, dem berühmten LANMAN-Worst-Case)
  • Wenn Ihre Salze nicht trivial klein sind, wäre es nicht möglich, Regenbogentische zu bauen - was der Zweck des Salzens ist (im Gegensatz zu LANMAN-Hashes, die völlig ungesalzen waren)

Es handelt sich also um eine interessante Frage, die größtenteils durch einen Blick auf die zugehörige Mathematik beantwortet wird.

Nehmen wir einige Annahmen an:

  • Beide 9x1- und 8x2-Ansätze werden unter Verwendung der gleichen Salzlängen und Algorithmen
  • gesalzen und gehasht
  • Schlimmster Fall für den Angreifer - Die Passwörter werden zufällig aus dem druckbaren ASCII-Zeichensatz (95 Zeichen) mit relativ langen Salzen generiert. (Die Frage wäre weniger interessant, wenn die Passwörter von Menschen generiert würden, da sie in der Praxis normalerweise leicht angegriffen werden, lange bevor der Angreifer auf rohe Gewalt zurückgreifen müsste.)

  • Moderne Hardware und Geschwindigkeit sind faires Spiel.

  • Der Hash-Algorithmus kann parallelitätsfreundlich sein oder auch nicht.

Angesichts all der oben genannten Punkte würde ich Erwarten Sie ungefähr:

  • Der 1x9-Hash wäre bei 95 ^ 9 (6,302 × 10 ^ 17) -Hashing-Operationen (die gut oder schlecht parallelisiert sein könnten) zu 100% erschöpft.
  • Die 2x8-Hashes würden bei (95 ^ 8) x2 (1,326 × 10 ^ 16) -Hashing-Operationen gemeinsam zu 100% erschöpft sein (und unabhängig vom Algorithmus könnten sie leicht naiv parallelisiert werden , indem einfach jeder Hash auf einem anderen System geknackt wird
  • - kann aber je nach Algorithmus oft auch auf einem einzelnen System sehr effizient parallelisiert werden.

Mit anderen Worten:

  • Dieses neunte Zeichen erhöht die Erschöpfung um das 95-fache der Arbeit und ist möglicherweise schwer zu parallelisieren o 8-stellige Passwörter verdoppeln nur den Arbeitsaufwand und können trivial parallelisiert werden.

Eine andere Möglichkeit, darüber nachzudenken, ist Das Hinzufügen eines weiteren Zeichens erzeugt ungefähr die gleiche Arbeit wie das Knacken von 95 Passwörtern mit acht Zeichen ! (Wenn dies nicht intuitiv ist, beginnen Sie mit einfachen Fällen, in denen kleinere Fälle wie z 1x1 vs 1x2, bis Sie es verstehen).

Wenn alle anderen Dinge gleich sind, sollte 1x9 fast immer besser sein als 2x8 .

Und dies ist nicht nur ein einfaches Beispiel für die Kraft der Parallelisierung, sondern sollte auch deutlich machen, warum das Zulassen längerer Kennwortlängen so wichtig ist. Jedes zusätzliche Zeichen im obigen Modell fügt dem gesamten Schlüsselbereich 95-mal mehr Arbeit hinzu. Das Hinzufügen von zwei Zeichen fügt also 95 ^ 2 - oder 9025 mal - die Arbeit hinzu. Brute Force wird selbst für sehr schnelle und ungesalzene Hashes schnell unmöglich.

Dies wäre eine hervorragende Hausaufgabenfrage. ;)

Ich bin mit Ihrer Schlussfolgerung einverstanden.Ich würde dies auf sehr ähnliche Weise erklären.
Wenn die 2x8-Passwörter von Menschen generiert wurden, besteht eine gute Chance, dass das zweite nur das erste ist, bei dem eine "1" durch eine "2" ersetzt wird.
Was ist, wenn man die Hashing-Funktion für das zweite Passwort 200-mal so langsam macht wie die Hashing-Funktion für das primäre Passwort?Wenn Sie die Hashing-Funktion für die primäre Funktion zu langsam machen, wird ein Denial-of-Service-Angriff trivial (überfluten Sie einfach einen Server mit vielen Anmeldeanforderungen). Wenn Sie jedoch die sekundäre Funktion verlangsamen, werden nur Personen verwendet, die das primäre Kennwort geknackt habenIn der Lage sein, ein DOS mit dem zweiten durchzuführen, und dies zu versuchen, würde die Wahrscheinlichkeit erhöhen, dass die Anmeldeinformationen geändert werden, bevor der Angreifer Zugriff erhalten kann.
Warum sollte die Paralelisierung durch zwei zu knackende Passwörter erheblich verändert werden, vorausgesetzt, die Eingabe ist bei bekannter Ausgabe noch nicht vollständig erkennbar?Ich würde davon ausgehen, dass nur die Möglichkeit bleibt, jeden Hash zu berechnen, was auf 8 Kernen auf einem Computer genauso effektiv zu sein scheint wie auf 4 Kerne auf 2 Computern.
Faire Frage.Ich bin kein Entwickler, aber ich habe die Ergebnisse beobachtet.Wenn Sie einen gesalzenen Hash angreifen, kann das Ausprobieren des gleichen Kandidatenkennworts für beide Hashes manchmal effizienter ausgeführt werden, wenn sie zusammen ausgeführt werden, als wenn sie vollständig separat ausgeführt werden.Ich verstehe nicht die mathematischen / algorithmischen Verknüpfungen, die dies ermöglichen, aber die Ergebnisse sind messbar.(Und diese Eigenschaft wäre offensichtlich nicht das, was Sie als Verteidiger wollen würden - weshalb moderne Passwort-Hashing-Algorithmen konstruiert wurden, um sie zu beseitigen).
Ihr 8x2-Fall macht für mich in Bezug auf die Parallelisierung wenig Sinn.Angenommen, Sie müssen beide Hashes korrekt haben, um hineinzukommen. Wie können Sie sie unabhängig voneinander auf separaten Systemen knacken?Naiv scheint es, dass Sie (8 * 2) ^ 2 Versuche benötigen würden, obwohl Sie nur (8 * 2) * 2 Hashes berechnen müssen.Vermisse ich etwas
@Geobits, Wenn wir davon ausgehen, dass für die Anmeldung beide Kennwörter erforderlich sind (was in der Frage nicht explizit angegeben ist, aber eine sehr vernünftige Annahme darstellt), benötigen Sie bei meinen anderen Annahmen 95 ^ 8 Versuche - im schlimmsten Fall -, um dies zu gewährleistenIch hatte jeden von ihnen alleine geknackt.Wenn dies beispielsweise einen Tag "Wanduhrzeit" gedauert hat, können Sie, wenn Sie sie parallel schalten können, auch * zwei * davon an einem Tag knacken.Das ist also (95 ^ 8) x2 der Berechnung, aber immer noch nur ein Tag der verstrichenen Zeit.
Geht das nicht davon aus, dass das System Ihnen sagt, wann Sie bei einem erfolgreich sind?Wenn Sie zwei Passwortfelder haben und beide gleichzeitig gesendet werden, würde ich nicht erwarten, dass "Passwort B falsch" als Antwort angezeigt wird.hoffentlich wäre das System klug genug, um nur "Nein" zu sagen.Ich nehme an, wenn Sie pw A eingeben, dann erhalten Sie ein Bestehen / Nichtbestehen, bevor Sie pw B eingeben. Das wäre sinnvoll (würde aber immer noch nicht parallelisieren).
Die Frage gibt keinen der beiden Wege an, aber was Sie beschreiben, wäre ein kluger Weg, um gegen Online- (interaktive) Angriffe resistent zu sein.Ich gehe davon aus, dass das Bedrohungsmodell auch einen _offline_- Angriff beinhalten muss, bei dem alle Passwort-Hashes gestohlen wurden und mit Geschwindigkeit und ohne Schwellenwerte angegriffen werden können, unabhängig davon, welchen Hardwarekontext der Angreifer wählt.
Oh, klar, das Offline-Modell ist definitiv besser mit einem, und es gibt sowieso bessere Möglichkeiten, ein Online-Modell zu implementieren (über Drosselung / Begrenzung usw.).Ich stelle nur sicher, dass mir nichts fehlt.
WaltZie
2019-02-28 19:14:43 UTC
view on stackexchange narkive permalink

Aus mathematischer Sicht ... (zur Vereinfachung der Berechnung nehme ich nur Ziffernpasswörter an)

Situation A: 2 Teile 8-stellig Passwort, 'Bruteforce-Angriff auf Teil eins erfordert maximal 10 ^ 8 Hashes, gleich für Teil. Insgesamt sind maximal 2 * 10 ^ 8 Hashes erforderlich. '

Situation B: 1 Teil 9-stelliges Passwort,' Bruteforce-Angriff erfordert maximal 10 ^ 9 Hashes '

Mathe sagt, dass B besser ist als A

In wenigen Worten

mehr Passwort erhöhen Bruteforce der Multiplikation Anzahl der Teile (in diesem Szenario 2x)

Hinzufügen weiterer Ziffern erhöht die Bruteforce der Potenz der Anzahl der Ziffern (in diesem Szenario) Szenario ist x10 ^ 1)

Wie bist du zu 10 als Basis gekommen?Es ist sehr selten, dass nur Zahlen erlaubt sind, oder?Bei alphanumerischen Zeichen (ASCII) wäre die Basis bereits 36 oder 62.Und wenn Sie ein Unicode-Zeichen zulassen ... Ihr Argument ist bei größeren Basen noch stärker.
WaltZie begann mit einem einfachen Fall, um die Mathematik zu vereinfachen.
John Deters
2019-02-28 08:24:16 UTC
view on stackexchange narkive permalink

Das Teilen des Passworts ist mit ziemlicher Sicherheit schlimmer. Damit kann eine achtstellige Regenbogentabelle erstellt werden. Dies bedeutet, dass alle Passwörter im System aus 8 Zeichen bestehen. (Genau so wurden NT LANMAN-Passwörter gebrochen.) In Ihrem Fall wären lediglich zwei Regenbogentabellen erforderlich.

Das neunstellige Passwortsystem weist keinen solchen sichtbaren Fehler auf, was bedeutet, dass bei Eingabe eines richtigen 14-stelligen Passworts dieses sicher als einzelner Hash gespeichert wird.

Wenn sie gesalzen werden, wird die Verwendung von Regenbogentabellen automatisch ausgeschlossen.Die beschriebene Methode würde jedoch aus genau den von Ihnen angegebenen Gründen die Stärke längerer Passwörter verringern.
Ähm, es sei denn, es war ein trivial schwaches (kurzes) Salz.:) :)
Tom
2019-02-28 14:57:00 UTC
view on stackexchange narkive permalink

Keine aussagekräftige Antwort ist möglich, ohne zu wissen, was Ihr Bedrohungsszenario ist. Wovor versuchst du dich zu schützen? Sind Sie besorgt über Brute Force oder Hash Cracking? Im ersten Fall müssen wir Ihre Anmeldeprozedur kennen (z. B. gebe ich die Passwörter nacheinander oder parallel ein?). Wenn Ihr Anmeldevorgang mich nach Tausenden oder Millionen fehlgeschlagener Anmeldeversuche nicht sperrt, ist er ebenfalls fehlerhaft. Das ist keine Frage der Passwortstärke.

Was ist mit Benutzern, die Dinge aufschreiben? Schulter-Surfen? Phishing? Was ist das Modell hinter den Passwörtern?

Es gibt legitime Verwendungen von zwei Passwörtern, zum Beispiel einem Passwort für den Lesezugriff und einem separaten Passwort für die Aktivierung von Änderungen. Ich bezweifle, dass Sie dies aufgrund Ihrer 9-Buchstaben-Passwortalternative im Sinn haben. Werfen Sie das einfach weg, um zu zeigen, dass die Realität komplizierter ist als eine akademische Frage zur Passwortstärke, die nur auf der Länge basiert.

Zum Nachdenken anregen!Ein weiterer interessanter Anwendungsfall für zwei Passwörter: Erhöhter Widerstand gegen Insider-Bedrohungen (zwei Personen müssen zusammenarbeiten, um das System nutzen zu können).
@RoyceWilliams ist weit entfernt von dem, was die Frage impliziert, aber ja, es ist ein realer Anwendungsfall, der häufiger vorkommt, als die meisten Leute annehmen.
Dies gibt keine Antwort auf die Frage.Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag.- [Aus Review] (/ review / minderwertige Beiträge / 133084)
@SoufianeTahiri: Es gibt viele Fragen, auf die eine korrekte Antwort von Details abhängen würde, die nicht gestellt wurden.Eine Erklärung von Faktoren, die die Antwort beeinflussen würden, kann informativer sein als eine Antwort, die auf bestimmten angegebenen Annahmen über die nicht gestellten Details basiert, und ist oft nützlicher als eine, die auf nicht angegebenen Annahmen basiert.Diese Antwort deutet darauf hin, dass die Antwort * normalerweise * Nein lautet, erkennt jedoch die Möglichkeit einiger enger Fälle an, in denen dies Ja wäre.
supercat
2019-03-01 03:30:36 UTC
view on stackexchange narkive permalink

Passwortsysteme beinhalten Kompromisse zwischen der Sicherheit gegen illegitimen Zugriff und dem Widerstand gegen Denial-of-Service-Angriffe. Ein potenzieller Vorteil von Split-Password-Systemen besteht darin, dass die beiden Systemhälften unterschiedliche Kompromisse eingehen können. Zum Beispiel kann die Ausfallsicherheit gegen Denial-of-Service-Angriffe erfordern, dass die Hashing-Funktion der ersten Hälfte schnell genug ist, um mit Spam-Zugriffsversuchen Schritt zu halten. Dies wäre jedoch für die Funktion der zweiten Hälfte nicht so notwendig, da nur ein Angreifer dies tut Wenn Fred Jones das Passwort für die erste Hälfte gebrochen hätte, könnte er versuchen, mit dem zweiten zuzugreifen.

Wenn Fred Jones jedes Mal benachrichtigt würde, wenn jemand einen Zugriff mit einem falschen ersten Berechtigungsnachweis versuchte, könnte ein Angreifer Mr. Jones leicht überfluten so viele Benachrichtigungen, dass sie unbrauchbar werden, unabhängig davon, ob der Angreifer jemals eine echte Wahrscheinlichkeit hat, Zugriff zu erhalten. Es wäre jedoch viel nützlicher, Herrn Jones zu benachrichtigen, wenn jemand das richtige erste Passwort eingibt, aber kein korrektes zweites Passwort eingibt. Sofern Herr Jones nicht derjenige war, der versuchte, auf das Konto zuzugreifen, würde eine solche Benachrichtigung als sehr zeitnahe und nützliche Warnung dienen, dass das primäre Passwort verletzt wurde, und beide Passwörter sollten so schnell wie möglich geändert werden.

Jeffrey Goldberg
2019-03-01 04:53:03 UTC
view on stackexchange narkive permalink

Unabhängig von den Details des Hashings oder der plausiblen Cracking-Mechanismen ist die Tatsache, dass der Aufwand zum Knacken von zwei n -Bit-Passwörtern nicht 2n Bits beträgt. Es ist n + 1 Bit.

Nehmen wir also an, dass Ihre acht Zeichenpasswörter P1 und P2 jeweils Folgendes haben: sagen wir, ein Stärkeäquivalent von 30 Bit. (Ist nicht wirklich wichtig, ich versuche nur, eine Zahl auszuwählen, die konkret sein soll. Es sind also 30 Bit Aufwand [siehe Hinweis] erforderlich, um jede zu knacken. Um beide zu knacken, sind keine 60 Bit erforderlich. Stattdessen sind 31 erforderlich Ein bisschen Aufwand.

Nehmen wir nun an, Sie nehmen P1 und fügen einfach eine einheitlich gewählte Ziffer hinzu (Sie würfeln einen D10) und kleben diese am Ende fest. Dann benötigt Ihr erweiterter P1 ungefähr 33,3 Bits Das ist mehr als viermal mehr Arbeit als nach P1 und P2.

Wenn Sie einen einzelnen Kleinbuchstaben oder eine einzelne Ziffer auswählen (also 36 Möglichkeiten) nach dem Zufallsprinzip am Ende von P1 hinzufügen, dann ist dieses neue Passwort mehr als 5 Bit stärker, und es werden 16-mal so viele Vermutungen benötigt, um dies zu knacken, als es beide P1 und P2.

Tresore mit höherer Sicherheit?

Ich arbeite für 1Password, einen Passwort-Manager. Und wir erhalten Anfragen, Tresore in Tresoren zu haben. Dies ist ein Hauptkennwort zum Entsperren von 1Password und anschließend ein zweites Kennwort zum Entsperren einige höhere Sicherheitsdaten. Wir haben diese Anfragen aus den Gründen abgelehnt, auf die ich (und andere hier) hingewiesen haben.

Das oben beschriebene Ergebnis ist kontraintuitiv und kontraintuitiv. Menschen werden die Verwendung von P1 und P2 als sicherer empfinden als nur eine etwas längere Erhöhung von P1 . Wir betrachten die Wahl des Hauptkennworts durch eine Person auch als den schwächsten Punkt ihrer 1Password-Sicherheit (außer auf einem kompromittierten Computer). Daher möchten wir keine Dinge einführen, die Menschen dazu ermutigen könnten, schwächere Hauptkennwörter zu verwenden, als dies sonst der Fall wäre . Wir möchten auch, dass die Benutzer die größtmögliche Sicherheit für den Aufwand erhalten. Das Erstellen und Speichern eines kleinen Zusatzes zu einem Hauptkennwort ist weniger aufwändig als das Erstellen und Speichern eines anderen Kennworts.


Hinweise:

"Aufwand": n Aufwand bedeutet ungefähr, dass durchschnittlich 2 ^ ( n -1) Vermutungen erforderlich sind, um das richtige Kennwort zu finden.

Wenn Sie sie unabhängig oder seriell knacken, ist dies sinnvoll.Aber was ist mit dem Fall, in dem sie zusammen mit nur einer einzigen Pass / Fail-Antwort eingegeben / gesendet werden müssen?In diesem Fall scheint es, als würde es einem 2n langen Passwort entsprechen, oder?


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...