dimis linkdump

Posts tagged ‘cracker’

Passwort Cracking – Teil 2

März 21st, 2009

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:

Crack MD5

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.


Passwort Cracking – Teil 1

März 18th, 2009

Es gibt diverse Möglichkeiten die Sicherheit seines eigenen Passworts zu überprüfen. Meistens werden Passwörter nicht im Klartext gespeichert sondern als so genannter Hash.

Kurz was ein Hash ist: Quasi der Fingerabdruck des Passworts. Überall wo man sich anmeldet muss ja das Passwort zum vergleich gespeichert werden. Meldet man sich z.B. in einem Forum an, gibt man bei der Registrierung ein Passwort an. Der Hash des Passworts wird in der Datenbank gespeichert. (NICHT das Passwort im Klartext!) Bei

Cracker

Cracker

jeder Anmeldung wird nun das eingegebene Passwort gehashed und mit dem in der Datenbank gespeicherten Passwort verglichen. Stimmt der Hash überein, ist man authentifiziert. (Vorsicht vor Webseiten, die einem das Passwort im Klartext zuschicken (per Mail oder SMS). Das heißt dann, dass das Passwort irgendwo im Klartext bzw in umkehrbarer Form gespeichert wird. Da würde ich mich sofort abmelden.)

Passwörter die im Klartext gleich sind, sind natürlich auch im Hash gleich. Menschen die geklont werden, haben ja auch die gleichen Fingerabdrücke. Logisch, oder?

Nun, da ein Hash nur ein Fingerabdruck des Passworts ist, kann man das Passwort also nicht einfach zurückrechnen. Deswegen kann man diverse Möglichkeiten nutzen sein Passwort zu überprüfen:

Ranbow-Tables

Die Tatsache, dass gleiche Klartext-Passwörter den gleichen Hash haben machen sich die Rainbow-Tables zu nutze. Denn in Rainbow-Tables werden Passwort und dazu der dazu passende Hash gespeichert. Diese Rainbow-Tables kann man sich entweder selbst mit diversen Programmen anlegen oder schon vorgefertigt von Webseiten per BitTorrent oder direkt herunterladen. Hat man nun beispielsweise einen MD5-Hash den man Cracken will muss man einfach die Tabellen nach dem passenden Hash durchsuchen. Findet man den Hash, hat man das Passwort.

Rainbow-Tables lassen mit einer einfachen Technik außer Kraft setzen: Man salzt die Passwörter (Salt). Ein so genannter Salt ist eine Zufallszahl, die zusätzlich an das Passwort angehängt wird.

Salt

Salt

Nehmen wir wieder unser Beispiel von vorher, in Verbindung mit der Hash-Funktion MD5. Ein User registriert sich in einem Forum und gibt dazu sein Passwort an. Im Hintergrund erstellt die Forensoftware eine Zufallszahl, den so genannten Salt. Wenn der User auf Registrieren klickt speichert die Forensoftware folgendes in der Datenbank:

md5($password.$salt) und $salt

Klartext: Die Forensoftware setzt das Passwort und den Salt zusammen, und speichert den Hash über Passwort+Salt (vgl. vorher: nur Passwort) in der Datenbank. Zusätzlich speichert es den Salt im Klartext. Um nun einen Nutzer zu authentifizieren muss die Forensoftware also bei jeder Anmeldung das eingegebene Passwort + Salt hashen und mit dem gespeicherten Wert vergleichen.

Da man das Passwort mit einem Salt verbunden hat, sind selbst identische Passwörter unterschiedlich.

Sinnvoll sind Hashes mit Salt natürlich nur, wenn absolut niemand an die Salts kommt. Hat man die komplette Datenbank an einen Hacker verloren, kann dieser den Salt schon mit einrechnen und hat somit die Sicherheitsvorkehrung des Salts umgangen. Mehr dazu im nächsten Teil “GPU/CPU Bruter”…

RSS-Feed Creative Commons License