Sicheres Speichern von Passwörtern • www.martinstoeckli.ch • 7/13

Rainbow tables

Rainbow-tables sind riesige Sammlungen vorberechneter Hash Werte. Im Beispiel vorhin, haben wir Google als Rainbow-table missbraucht, um das dazugehörende Passwort zu finden. Genaugenommen müssten wir von "Lookup-tables" sprechen, Rainbow-tables sind komplexer, die Idee ist aber dieselbe.

Ein Beispiel einer Rainbow-table könnte etwa wie folgt aussehen:

Passwort MD5-Hash
... ...
schatzinsel 39b7ed33ff1d275ac2dc8f772e86c757
schatzkarte 032e49ff68095f86258109269de15e39
schatztruhe e4ca741a4dc2f86271be4fe7b13e65d3
... ...

Stellen wir uns vor, wir erstellen eine Rainbow-table die alle Wörter aus einem deutschen Duden (≈150'000), alle Namen aus einem Telefonbuch (≈5'000'000), und alle Zeichenkombinationen bis zu 6 Stellen (19'770'609'664) enthält. Wir erhalten eine Tabelle mit 19'775'759'664 vorberechneten Hash Werten.

Heutzutage werden oft Grafikkarten (GPUs) zur Suche von Hashwerten eingesetzt, da diese extrem schnell parallele Berechnungen erledigen können. Eine handelsübliche GPU bewältigt bis zu ~50 Giga MD5 Werte pro Sekunde (Stand 2021), um unsere Beispiel Rainbow-table zu erstellen braucht man also nur 0.4 Sekunden!