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?
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?
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 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:
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.
Angesichts all der oben genannten Punkte würde ich Erwarten Sie ungefähr:
Mit anderen Worten:
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. ;)
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)
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.
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.
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.
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
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.