Es gibt Regenbogentabellen und es gibt rohe Gewalt ... das sind zwei verschiedene Dinge.
Eine Regenbogentabelle ist ein Sonderfall einer großen vorberechneten Tabelle mit Hash Passwörter. Als solches kann eine Regenbogentabelle einen Hash "invertieren", d. H. Ein passendes Passwort wiederherstellen, nur wenn zu einem bestimmten Zeitpunkt während der Tabellenkonstruktion dieses Passwort berücksichtigt und gehasht wurde. Wenn ein Passwort mit einer Regenbogentabelle gefunden werden kann, könnte es dementsprechend mit einem einfachen Wörterbuchangriff gefunden worden sein, der nicht mehr als die Tabellenerstellung gekostet hätte. Der "Regenbogen" ändert daran nichts; Tatsächlich macht das Regenbogen-Ding das Erstellen der Tabelle teurer um einen Faktor von etwa 1,7 (das liegt daran, dass die Tabellenkonstruktion dazu neigt, mehrmals dieselben Passwörter zu berücksichtigen und zu hashen, und das ist ziemlich unvermeidlich).
Eine Konsequenz ist, dass kein Regenbogentisch die Mühe wert ist, es sei denn, er kann mindestens zweimal angewendet werden. Wir verwenden Salze genau, um dies zu verhindern. Das Salz kann als eine Variante der Hash-Funktion angesehen werden, wobei jedes neue Salz eine neue Variante impliziert. Eine vorberechnete Tabelle ist nur dann etwas wert, wenn sie mit derselben Variante (demselben Salz) vorberechnet wurde als der Hash-Wert, der angegriffen werden soll. Wenn kein Salzwert mehr als einmal verwendet wird, verschwendet der intelligente Angreifer keine Zeit damit, Kleenex-Regenbogentische zu bauen. Er wird nur einen Wörterbuchangriff ausführen.
Wir sind der Ansicht, dass der Angreifer das Salz kennt. Warum ? Weil der Server es weiß und das Angriffsmodell ist, dass der Angreifer einen Speicherauszug der Serverdatenbank erhalten könnte. Was auch immer der Server weiß, der Angreifer weiß es auch. Wenn Sie also ein Hash-Passwort angreifen, spielt die Salzlänge oder der Inhalt keine Rolle (der Angreifer muss den Salzwert in seine Berechnungen einbeziehen, aber keine Salzlänge macht seine Aufgabe einfacher oder schwieriger).
Wir haben also nur das Passwort als Verteidigungslinie. Wenn wir wissen wollen, wie viel der Angriff kostet, wird dies zu einer wirtschaftlichen Angelegenheit, und als solche entsteht eine gewisse Komplexität. Insbesondere möchten wir wissen, ob es sich um einen Angreifer handelt, der nach einem sehr wertvollen Passwort sucht (z. B. dem Passwort, das den Hauptcomputer vor der außerirdischen Kraft schützt, die die Erde auslöschen soll). oder ein Angreifer, der davon lebt, viele Passwörter zu knacken. Im letzteren Fall werden die Hardwarekosten im Hinblick auf den Stromverbrauch vernachlässigbar.
Wenn wir die Schätzungen von @ jimbob berücksichtigen, verbraucht Hardware, die 10 9 sup> Hashes pro Sekunde berechnet, Strom im Wert von 200 W. und die Leistung beträgt 0,1 USD pro kWh (beachten Sie, dass die Stromkosten die Kühlung beinhalten: Jedes Watt, das für die Berechnung ausgegeben wird, wird auch zu Wärme, die irgendwie abgeführt werden muss). Dies ergibt 1,8 * 10 14 sup> Hash-Werte pro Dollar. Daraus ergibt sich Folgendes:
-
Mit $ 10K kann ein Angreifer 1,8 * 10 18 sup> Hash-Werte ausprobieren, was mehr oder weniger der Zahl entspricht von möglichen Passwörtern mit 10 alphanumerischen Zeichen (Groß-, Klein- und Ziffern).
-
Mit 683,7 Milliarden Dollar (das ist das Gesamtbudget des US-Militärs im Jahr 2010 ) könnte ein Angreifer ungefähr 1,23 * 10 sup> 26 sup> Hash-Werte versuchen, was ungefähr 14,5 alphanumerischen Zeichen entspricht. Lassen Sie mich hinzufügen, dass diese Zahl der Jahresleistung von etwa hundert Kernkraftwerken entspricht, so dass der Cracking-Aufwand kaum unauffällig wäre.
Fazit: Mit 15 zufälligen alphanumerischen Zeichen widerstehen Ihre Passwörter sogar unplausiblen Feinden, selbst wenn Sie das Hashing mit einem einzigen Aufruf von SHA-1 völlig verpfuscht haben, anstatt bcrypt zu verwenden oder PBKDF2 mit einer hohen Iterationszahl, wie Sie es tun sollten . Beachten Sie, dass dies nur für zufällige Zeichen gilt, überhaupt nicht für die Art von Zeichen, die Sie möglicherweise in der Privatsphäre Ihres Gehirns finden. Das menschliche Gehirn ist zufällig überhaupt nicht gut.