{"id":578,"date":"2008-03-20T23:11:44","date_gmt":"2008-03-20T22:11:44","guid":{"rendered":"http:\/\/www.mitternachtshacking.de\/blog\/578-ein-anderer-blickwinkel-auf-rainbow-tables"},"modified":"2018-05-31T16:07:39","modified_gmt":"2018-05-31T15:07:39","slug":"ein-anderer-blickwinkel-auf-rainbow-tables","status":"publish","type":"post","link":"https:\/\/www.mitternachtshacking.de\/blog\/578-ein-anderer-blickwinkel-auf-rainbow-tables","title":{"rendered":"Ein anderer Blickwinkel auf Rainbow Tables"},"content":{"rendered":"<p>Rainbow Tables sind eine clevere Sache. Philippe Oechslin war 2003 der Pionier, der mit seiner Arbeit &#8222;Making a Faster Cryptanalytic Time-Memory Trade-Off&#8220; die Grundlagen f\u00fcr vorberechnete Hash-Tabellen geschaffen hat. Hash-Tabellen sind immer dann sehr praktisch, wenn die Passw\u00f6rter in einem simplen Hash gespeichert sind. Das kommt beispielsweise bei Windows LAN-Manager Authentisierung vor, aber auch hier in dieser WordPress-Installation. Hier ist das Passwort ein einfacher MD5-Hash.<\/p>\n<p>Das Problem mit Rainbow Tables ist, dass sie lediglich ein gewisse Wahrscheinlichkeit garantieren, den gefundenen Hash zu brechen. Je gr\u00f6\u00dfer die Tabelle um so gr\u00f6\u00dfer auch die Wahrscheinlichkeit aber Tabellen k\u00f6nnen dann sehr gro\u00df werden. Au\u00dferdem lohnen sich Rainbow Tables nur, wenn man mehrere Passw\u00f6rter brechen will. Bei einem einzelnen Passwort ist ein Brute Force Angriff praktisch immer schneller. F\u00fcr sieben Zeichen ben\u00f6tigt das Berechnen der Rainbow Table etwa eine Woche, das Ermitteln eines Passworts kann dann in 30 Sekunden erfolgen. Der Brute Force Angriff auf ein einzelnes Passwort ist in der Regel in 24 Stunden erfolgreich.<\/p>\n<p>Das Problem ist jedoch, gro\u00dfe Rainbow Tables brauchen viel Platz. Die Tabelle f\u00fcr ein 8-Zeichen Passwort mit 99% Wahrscheinlichkeit braucht etwa 1,5 TB (1500 GB) . Das ist jetzt nicht dramatisch, da beispielsweise Western Digital 650 GB Festplatten f\u00fcr unter 100 Euro verkauft. Aber bei l\u00e4ngeren Passw\u00f6rtern wachsen die Tabellen massiv an.\u00c2\u00a0 Ok, man kann die Wahrscheinlichkeit reduzieren. 90% Wahrscheinlichkeit passt auf 700 GB, 1% Wahrscheinlichkeit bereits auf eine einzelne CD-ROM.<\/p>\n<p>Und jetzt nehmen wir folgenden Gedanken an &#8230; wir erzeugen Hashes f\u00fcr Passw\u00f6rter bis meinetwegen 32 Zeichen. Und zwar genau so viele verschiedene, dass wir damit 1 TB Daten f\u00fcllen k\u00f6nnen. Mehr nicht. Das ist eine Rainbow Table mit einer geringen Wahrscheinlichkeit, so etwa in der Gr\u00f6\u00dfenordnung 0,01 %. Allerdings f\u00fcr beliebige Passw\u00f6rter. Die Wahrscheinlichkeit, dass &#8222;G0%dP@ssw0rd&#8220; dabei ist, ist genauso gro\u00df wie f\u00fcr &#8222;abc&#8220;. Im Grunde sind dann alle Passw\u00f6rter gleich gut, sie haben alle die gleiche Wahrscheinlichkeit erraten zu werden. Und was ist, wenn nicht nur ich so eine Tabelle erzeuge (und Passwortabfragen per Webinterface zulasse) sondern 100 andere Leute auch. Nat\u00fcrlich zuf\u00e4llig andere Tabellen. Klar wird es \u00dcberschneidungen geben aber insgesamt auch viele unterschiedliche Passw\u00f6rter.<\/p>\n<p>Ich finde diese Idee ein klein wenig be\u00e4ngstigend. Sie stammt \u00fcbrigens von <a href=\"http:\/\/the-udc.com\/rus\/rus_hrainbow.html\">The [SNS] Technologies<\/a>, einer russischen Firma, die u.a. <a href=\"http:\/\/software.techrepublic.com.com\/download.aspx?docid=286971\">The UDC<\/a> anbietet, ein Programm zum Brechen von Hashes. F\u00fcr nicht Russischsprachler gibt es <a href=\"http:\/\/forum.insidepro.com\/viewtopic.php?t=1067\">bei InsidePro eine \u00dcbersetzung<\/a>.<\/p>\n<p>In Summe erkennen wir also, dass einfache Hashes zum Speichern von Passw\u00f6rtern nicht mehr geeignet sind. Die richtige L\u00f6sung gibt es auch schon seit mindestens 50 Jahren: Salted Hashes. Jedes Passwort wir mit einem Salt kombiniert und dann erst gehashed. Der Salt wird im Klartext neben dem Passwort-Hash gespeichert. Damit lassen sich Rainbow Tables effizient aushebeln. Ich <a href=\"\/blog\/277-sichere-passwort-hashes\">schrieb dazu im September<\/a> etwas, weil <a href=\"http:\/\/www.matasano.com\/log\/958\/enough-with-the-rainbow-tables-what-you-need-to-know-about-secure-password-schemes\/\">Matasano<\/a> die Gefahr von Rainbow Tables und die Gegenma\u00dfnahmen sehr gut erkl\u00e4rt hat.<\/p>\n<p>Das schlimme ist, wir wissen das im Grunde seit 50 Jahren. Und trotzdem verwendet Software wie dieses WordPress hier immer noch simple MD5-Hashes zum Speichern von Passw\u00f6rtern. Also nichts gelernt. Und das finde ich jetzt wirklich be\u00e4ngstigend.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rainbow Tables sind eine clevere Sache. Philippe Oechslin war 2003 der Pionier, der mit seiner Arbeit &#8222;Making a Faster Cryptanalytic Time-Memory Trade-Off&#8220; die Grundlagen f\u00fcr vorberechnete Hash-Tabellen geschaffen hat. Hash-Tabellen sind immer dann sehr praktisch, wenn die Passw\u00f6rter in einem simplen Hash gespeichert sind. Das kommt beispielsweise bei Windows LAN-Manager Authentisierung vor, aber auch hier [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,8],"tags":[],"_links":{"self":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/578"}],"collection":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/comments?post=578"}],"version-history":[{"count":0,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/578\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/media?parent=578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/categories?post=578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/tags?post=578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}