Rainbowtable

Zielsetzung: Erstellung einer „Big-Data“ Anwendung, die sowohl das automatische erstellen, erweitern, verwalten und speichern einer große Rainbowtable ermöglicht. Ziel war es Tabellen für Hash-Verfahren wie md5(), sha1(), MySQL4() und MySQL5() vorhalten zu können.

String länge: 0-100 Zeichen

 

Screenshot – PHPMyAdmin

Wie sich im Screenshot sehr schöne erkennen lässt wurde hierzu ein besonderes Schema innerhalb von MySQL verwendet.
(Wie genau das Schema innerhalb der jeweiligen Datenbanken/Tabellen aufgebaut wurde wird hier nicht preis gegeben)

Relativ zeitnah wurde eine Anzahl von „350 Millionen“ unterschiedlichen Strings erreicht.

Vorgehalten wurde der eigentliche String des Passwortes, sowie die dazugehörigen „hash-werte“ in:

  • md5()
  • mysql4()
  • mysql5()
  • sha1()

Durch ein spezielle entwickeltes Schema – welches sich selbst zur Indexierung benutzt – brauchten innerhalb der gesamten Hash-Datenbanken keinerlei Indizierungsmaßnahmen vorgenommen werden.

 Sprich, keinerlei Zeitverlust beim Eintragen neuer Inhalte

Ebenso wurde für die Rückwärtsauflösung hash->string ein spezielles Indexierungsverfahren gewählt welches sich oben im Screenshot erkenn lässt.

Lediglich die 2 Datenbanken „rb__index“ und „rb_md5“ führen überhaupt Indexe.

rb_md5 mit 28 Gigabyte
rb__index mit 3.5 Gigabyte

Diese Indexe reichen aus um sämtliche Datenbanken zu befüllen und abzufragen.

Besonderer Wert wurde auf die Performance der Anwendung gelegt.

Die Wahl der Struktur und Umsetzung wurde von einem weiteren Faktor begleitet.
So muss es ohne großen Aufwand – jederzeit – möglich sein neue Krypto Funktionen hineinzunehmen.

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.