it-swarm.com.de

Produzieren schlechte Passwörter schlechte gesalzene Hashes?

Wenn Sie ein Kennwort in einer Datenbank gespeichert haben, die stark gehasht und gesalzen wurde, spielt es dann wirklich eine Rolle, ob das zugrunde liegende Benutzerkennwort schwach ist?

Wenn Sie Funktionen wie das Einschränken des Anmeldungsschätzens einrichten und Captchas verwenden, um das automatische Erraten zu stoppen, können Sie ein schwaches Kennwort wie "password" effektiv ausgleichen?

Ich denke, meine Frage ist, ob die Verwendung eines Passworts wie "Passwort" den gesalzenen Hash schwächer macht als die Verwendung eines längeren Passworts wie "fish&*[email protected] "? - Sind alle gesalzenen Hashes gleich sicher oder hängt es davon ab, ob das Passwort gut ist?

44
Crizly

Gesalzene Hashes schützen vor Angreifern, die mehrere Hashes gleichzeitig angreifen oder Rainbow-Tabellen mit vorberechneten Hash-Werten erstellen können. Das ist alles. Sie tun nichts, um die zugrunde liegende Stärke des Passworts selbst zu verbessern, ob schwach oder stark.

Dies bedeutet auch, dass sie nicht zur Abwehr von Online-Angriffen ausgelegt sind, sodass sie keinen Einfluss auf die Fähigkeit eines Angreifers haben, Ihr Anmeldeformular zu manipulieren, wenn das Salz irrelevant ist, da ein Angreifer Hashes nicht direkt berechnet, sondern Kandidatenkennwörter eingibt in eine Form, die (wie Sie sagten) möglicherweise durch ein Captcha begrenzt oder geschützt ist.

Schwache Passwörter sind schwach. Starke Passwörter sind stark. Salze beeinflussen diese Gleichung in keiner Weise.

86
Xander

Sie müssen zwei Angriffsvektoren berücksichtigen:

  • Online-Angriff
  • Offline-Angriff

Das Einschränken der Anmeldungsraten hilft gegen Online-Angriffe.
Nehmen wir an, es ist dreimal. Dies bedeutet, dass ein Angreifer ALLE Konten auf die drei häufigsten Kennwörter testen kann, die Ihrer Kennwortrichtlinie entsprechen (wie wäre es mit "Kennwort", "12345678" und "12345"?).

Salting hilft gegen Offline-Angriffe
Dieselben ungesalzenen Hashes sind dasselbe Klartext-Passwort. Jeder Hash muss also einmal berechnet werden, nicht einmal für jedes Salz. Selbst mit einem Salz kann der Angreifer einen Wörterbuchangriff versuchen, und niemand (außer seiner Begrenzung der Rechenleistung) wird ihn aufhalten, da Ihre "Drei-Treffer" -Regel hier nicht gilt.

Schwache Passwörter verringern in beiden Fällen die Sicherheit
Online-Angriff : Wenn Sie gängige Passwörter (wie "Passwort" oder "12345") zulassen, können Angreifer in 5 einbrechen % Ihrer Konten in drei Vermutungen.
Offline-Angriff : Hier werden natürlich auch zuerst die gängigsten Passwörter ausprobiert. Wenn sie also 3 Hashes pro Benutzer berechnen, haben sie bereits 5% der Konten zerstört ...

38
Alexander

Salting/Hashing ist großartig, wenn Ihre Datenbank gestohlen wird, hat aber nichts mit Wörterbuchangriffen zu tun, die möglicherweise über das normale Anmeldeverfahren erfolgen.

Wie Sie bereits erwähnt haben, kann die Begrenzung der Anzahl der Anmeldeversuche und die Verwendung von CAPTCHA Wörterbuchangriffe, die über das normale Anmeldeverfahren erfolgen, unwirksam machen, aber Salting (oder nicht) hat keine Auswirkungen auf diese Art von Angriff.

Selbst mit den begrenzten Anmeldeversuchen und CAPTCHA ist es keine gute Idee, superschwache Passwörter zuzulassen. Wenn ein böswilliger Benutzer ausreichend ermittelt wird oder genügend Wert sieht, kann er Wege finden, diese Schwachstelle auszunutzen.

7
Abe Miessler

Nein, ein Punkt beim gesalzenen Hashing besteht darin, unabhängig vom Ausgangsmaterial eine gute Zufälligkeit im Hash zu erzielen.

Dies befreit uns jedoch nicht von der Verwendung falscher Passwörter. Gutes Hashing schützt nur vor einem Angriffsvektor: dem, bei dem der Eindringling die Datei mit den Hashes stiehlt. Es gibt so viele andere Angriffsmethoden auf Passwörter ... Schulter-Surfen, Brute-Forcing, modifiziertes Brute-Forcing (mit intelligenten Startschätzungen usw.) ..., dass gute Passwörter immer noch wichtig sind.

Gesalzenes Hashing schützt gute Passwörter, rettet Sie jedoch nicht vor schlechten.

4
DavidF

Im Allgemeinen ist die Passwortlänge das Wichtigste. Es ist jedoch richtig, dass ein einfaches Passwort einfacher aufgeschlüsselt werden kann als ein zufälliges. Zum Beispiel, wenn Sie versuchen, einen Hash mit Rainbow-Tabellen zu erraten. Wenn es sich um ein normalerweise verwendetes Wort wie "cat" handelt, ist es wahrscheinlicher, dass Sie es in dieser Tabelle haben können als "07OFmy3HOY3l9e1gCNww7nNpd5lQ8I9an"; D.

1
user3799089

In der Theorie:

Wenn der Angreifer keine Regenbogentabelle erstellt hat und ein Passwort mit einer bestimmten Stärke in einer Zeiteinheit gehackt werden kann, können N Passwörter dieser Stärke in O(1) Zeit ohne gehackt werden Salt und O(N) Zeit mit Salt. Das macht Salt. Kein Vorteil bei einem festen Passwort; zeigt Vorteil gegenüber mehreren Passwörtern.

Wenn der Angreifer eine Regenbogentabelle ohne Salz hat, ist ein schwaches Passwort - in diesem Fall "schwach" bedeutet "bereits in der Regenbogentabelle" - so gut wie nackt. Mit Salz muss es noch in so vielen Sekunden geknackt werden, wie es dauern könnte.

In der Praxis: Die Passwortstärke ist weitaus wichtiger als alles andere. Manchmal sind Regenbogentische nur Bequemlichkeit; Wenn Sie eine Million so schwache Passwörter haben, sind diese sogar gesalzen durchlässig.

1
djechlin

Wenn Sie eines der drei schwachen Passwörter "Liebe", "Hund" und "Kuh" ausgewählt haben und eine Passwortdatenbank verloren gegangen ist: Ohne Salz kann ich diese drei Passwörter ausprobieren und sofort alle in der finden ganze Datenbank mit diesen drei schwachen Passwort. Beim Salzen muss ich versuchen, Liebe + dein Salz, Hund + dein Salz, Kuh + dein Salz zu knacken dein Passwort, wenn es lächerlich schwach war, dann wiederhole das gleiche mit allen in der Datenbank.

Wenn ein Hacker Sie gezielt angreift, hilft das Salzen nicht. Dies hilft nur, indem es unmöglich gemacht wird, die gesamte Datenbank anzugreifen, und stattdessen ein Angriff gegen jeden einzelnen Benutzer in der Datenbank erforderlich ist.

1
gnasher729