Nicht mehr ganz neu (Sommer letzten Jahres war es neu, aber da hab ich es irgendwie verpasst, das zugrundeliegende Paper ist sogar schon 2 Jahre alt), aber immer noch interessant: Project RainbowCrack ist ein Projekt das die Erstellung von Tools zum schnelleren Knacken von Hashes zum Ziel hat. Hashes können normalerweise nur durch brute force aufgelöst werden - unterstützt durch algorithmische Schwächen (wie kürzlich bei MD5 und SHA1 gefunden). Es gibt aber einen Ansatz die aufwändigeren Berechnungen die beim brute-force-Vorgang anfallen (also im Prinzip algorithmische Teilschritte) schon im Vorhinen zu erstellen - zum Beispiel wenn man eh nur vor hat z.B. Passwörter mit maximaler Zeichenzahl zu knacken.
Das ganze kommt natürlich nicht umsonst: man tauscht Rechenzeit gegen Speicherplatz ein. Tabellen zum Knacken von bis zu 14 stelligen Windows Passwörtern belegen lockere 64 GiB an Speicher. Die praktische Relevanz des Ansatzes und der Tools wird aus diesem Zitat vielleicht offensichtlich:
Some ready to work lanmanager and md5 tables are demonstrated in Rainbow Table section. One interesting stuff among them is the lm #6 table, with which we can break any windows password up to 14 characters in a few minutes.
Zu Project RainbowCrack gibts auch noch eine Weboberfläche zu einem verteilten Rechencluster über die man MD5-Hashes an einen MD5-Cracker schicken kann und der dann - sofern es ein maximal 8 Zeichen langer String ist - den Klartext rausspuckt. Und das Teil baut nebenbei immer mehr Rainbow Tables auf, wodurch das Knacken nach und nach schneller wird.
Nur so als Warnung für diejenigen, die meinen das ein einfacher MD5 Hash (oder letztendlich nahezu jeder Hash) auf das Passwort ausreichend wäre. Unix-Systeme benutzen üblicherweise salted hashes - das Passwort wird um einen offenen Text erweitert und damit zusammen dann der Hash gebildet. Das verlängert im Prinzip das Passwort, auch wenn natürlich die Verlängerung nicht geheim ist - für die Rechenzeit oder die Tabellengrösse ist das wurscht, die Passwörter sind einfach länger und damit schwerer zu knacken. Ist aber auch nur eine Frage von Platz, bis die nicht sicher sind.
Besser sind Passphrases statt Passwörter - eben einfach normal lange Sätze. Zum Einen kann man sich diese häufig besser merken (viele Menschen können sich keine Telefonnummer merken, aber Zeilen aus Gedichten zitieren) und zum Anderen sind sie einfach länger (und vor allem flexibel lang), so das Rainbow Tables als Angriffsmethode ausscheiden. Die algorithmischen Schwächen von MD5 und SHA1 bleiben natürlich erhalten.