it-swarm.com.de

Welche Kennwortrichtlinie ist sicherer: ein Kennwort der Länge 9 gegenüber zwei Kennwörtern der Länge 8?

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?

19
Carlos

Wie John Deters bemerkt hat, ist 2x8 mit ziemlicher Sicherheit schlimmer - aber die Gründe dafür sind ein wenig zu erklären.

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

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

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

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

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

  • Es wird nicht angegeben, dass es sich bei den 2x8-Passwörtern tatsächlich um ein einzelnes Passwort handelt, das in zwei Hälften geteilt ist (sie könnten unabhängig voneinander generiert und zufällig erstellt werden).
  • Es wird ausdrücklich darauf hingewiesen, dass die beiden Passwörter die Länge 8 haben (und nicht beispielsweise eines der Länge 8 und das andere der Länge 1, der berühmte LANMAN-Worst-Case).
  • Sofern Ihre Salze nicht trivial klein sind, das Erstellen von Regenbogentabellen wäre nicht möglich - was der Zweck des Salzens ist (im Gegensatz zu LANMAN-Hashes, die völlig ungesalzen waren)

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

Nehmen wir einige Annahmen an:

  • Sowohl der 9x1- als auch der 8x2-Ansatz 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 Zeichensatz ASCII (95 Zeichen)) mit relativ langen Salzen generiert. (Die Frage wäre weniger interessant, wenn die Passwörter von Menschen generiert würden , weil sie in der Praxis normalerweise leicht angegriffen werden, lange bevor der Angreifer auf rohe Gewalt zurückgreifen müsste)

  • Moderne Hardware und Geschwindigkeiten sind Freiwild

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

Angesichts all dessen würde ich ungefähr erwarten:

  • 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 einfach durch Knacken jedes Hashs auf einem anderen System - kann aber je nach Algorithmus oft auch auf einem einzigen System sehr effizient parallelisiert werden).

Mit anderen Worten:

  • Dieses 9. Zeichen fügt 95-mal die Arbeit hinzu zur Erschöpfung und ist möglicherweise schwer zu parallelisieren
  • Zwei 8-stellige Passwörter verdoppelt sich nur der Arbeitsaufwand, und kann trivial parallelisiert werden

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

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

Dies ist nicht nur ein einfaches Beispiel für die Möglichkeiten der Parallelisierung, sondern sollte auch deutlich machen, warum das Zulassen längerer Kennwortlängen so wichtig ist. Jeweils Zusätzliches Zeichen im obigen Modell fügt dem gesamten Schlüsselraum 95-mal mehr Arbeit hinzu. Wenn Sie also zwei Zeichen hinzufügen, wird 95 ^ 2 - oder 9025 Mal - die Arbeit hinzugefügt. Brute Force wird schnell unmöglich, selbst bei sehr schnellen und ungesalzenen Hashes.

Dies wäre eine ausgezeichnete Hausaufgabenfrage. ;)

48
Royce Williams

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

Situation A : 2 Teile 8-stelliges Passwort, 'Bruteforce-Angriff auf Teil 1 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, das ist B ist besser als A.

In wenigen Worten

Hinzufügen einer weiteren Kennworterhöhung Bruteforce von Multiplikation von Anzahl der Teile (in diesem Szenario 2x)

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

8
WaltZie

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 beschädigt.) In Ihrem Fall wären lediglich zwei Rainbow-Tabellen 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.

5
John Deters

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 Lesezugriffskennwort und einem separaten Änderungsaktivierungskennwort. 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.

4
Tom

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 Hätte das Passwort der ersten Hälfte gebrochen, könnte man mit der zweiten versuchen, darauf zuzugreifen.

Wenn Fred Jones jedes Mal benachrichtigt wird, wenn jemand versucht, mit einem falschen ersten Berechtigungsnachweis auf einen Zugriff zuzugreifen, kann ein Angreifer Mr. Jones leicht mit so vielen Benachrichtigungen überfluten, dass er unbrauchbar wird, unabhängig davon, ob der Angreifer jemals eine echte Wahrscheinlichkeit hat, Zugriff zu erhalten. Es wäre jedoch viel nützlicher, Mr. 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.

2
supercat

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

Angenommen, Ihre acht Zeichenpasswörter P1 und P2 haben jeweils ein Stärkeäquivalent von 30 Bit. (Ist nicht wirklich wichtig, ich versuche nur, eine Zahl auszuwählen, um konkret zu sein. 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 Mühe.

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

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

Höhere Sicherheitsgewölbe?

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 einiger Daten mit höherer Sicherheit. 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 Master-Passworts durch eine Person auch als den schwächsten Punkt ihrer 1Password-Sicherheit (außer auf einem gefährdeten Computer). Daher möchten wir keine Dinge einführen, die Menschen dazu ermutigen könnten, schwächere Master-Passwörter zu verwenden, als sie es sonst tun würden . 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.


Anmerkungen:

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

2