Im letzten Beitrag über dieses Thema ging es ja um Rainbow-Tables, Hashes und um Salts.
Als Barriere gegen Rainbowtables wurden Salts eingeführt. Reagiert wurde schnell: Die Passwortcracker wurden angepasst und können nun Hashes mit Salt knacken. Dazu gibt man im Cracker einfach den Salt und den Hash an, den Rest macht der Cracker selbst.
In der Praxis sieht das so aus:
Wir haben einen MD5-Hash von unserem Passwort: 08da50bd109c7fb1bec49d15ae86e55f
Den wollen wir überprüfen. Dazu schmeißen wir zunächst den Passwortcracker an:
Der findet das Passwort in sekundenschnelle heraus – es ist schließlich auch nicht wirklich komplex. Auch in einer Rainbowtable würden wir den Hash sofort finden. Nun erhöhen wir den Sicherheitsgrad indem wir einen Salt generieren ( invf&RxOb< ) und an das Passwort anhängen (blubberinvf&RxOb<) und Hashen das Ganze:8efc27deead2de7def412600f06c8ca8
Ein Passwortcracker würde Jahre brauchen, in Rainbowtables hätten wir auch keine Chanche. Schafft ein Hacker nun es den Hash herauszufinden hätte er ohne Salt keine Chance.
Mit Salt hätte er eine, da hier das Passwort nicht sehr komplex ist. Viele Cracker haben Funktionen nachgerüstet, wo man einfach die Struktur der Passwort-Salt-Kombination (hier: $password.$salt) und den Salt angibt und der Cracker so den Salt mit berücksichtigen kann. Damit ist die Sicherheitsfunktion des Salts außer Kraft gesetzt.
Außerdem gibt es seit einiger Zeit Cracker die nicht nur über die CPU Hashes durchprobieren, sondern auch noch die GPU mit einbeziehen. Bei dem oberen Bild sehen wir wie die GPU mit in den Crackvorgang eingebunden wurde. ~100 MHashes / s kommen allein von der GPU, ~50-60 pro CPU-Kern. Für eine 70 Euro-Grafikkarte ( 9500GT ) ein doch sehr beachtlicher Wert – HighEnd Grafikkarten bringen deutlich mehr: Mit einer GTX 260 schafft man fast 500 MHashes /s. Die 280 schafft um die 750 MHashes /s – nur mit der GPU!
Fazit:
Das Salzen von Passwörtern ist eine gute Möglichkeit um die Sicherheit ein klein wenig zu erhöhen. Taucht aber beispielsweise eine SQL-Injection in einer Anwendung wie Wordpess auf kann diese Injection so umgeschrieben werden, dass sie zusätzlich zum Passwort auch noch den Salt ausgibt. Der Sicherheitsgewinn geht gegen Null.
Man sollte also auf jeden Fall darauf achten, dass man immer komplexe Passwörter nutzt. Egal für welche Anwendung.



