Schönen guten Tag,
ohne Vorgerede, direkt los:
Viele von euch wissen ja, dass gehashte Passwörter durch sogenannte "Brute Force"-Attacken "geknackt" werden.
Bei einem einfachen Passwort, wie es fast jeder Otto-Normalverbraucher benutzt - sei es das Geburtsdatum, Zweitname, oder irgendwelche Kombinationen aus persönlichen Daten (Vorname + Geburtsdatum) - dauert eine solche Attacke meist nur einige Minuten oder Stunden.
Um einen Hash sicherer zu machen, wird das Passwort nun zunächst mit einem Salt versehen. Viele von euch kennen das verfahren. Da der Salt aber in der Datenbank gespeichert ist, ist es kein Problem für einen "Hacker" ein BT zu schreiben, welches alle Passwörter + den Salt hasht, d.h. die dauer der Attacke bleibt die gleiche, wie ohne Salt.
Nun zu meiner Idee:
Wir salten einen Hash mit einem weiteren Hash und dieser "Salted Hash" wird ein weiteres mal gehasht.
Das ganze sieht zum Beispiel so aus:
Name: Hans
Passwort: Wurst
Zunächst reduzieren wir Hans auf hans (strtolower('Hans'))
aus hans machen wir nun einen sha2 > 6428a8fbbb0e120528bb604a66787102280e1b5e26db76633ce37c8a4526e445
als nächstes hashen wir das Passwort, OHNE es zu reduzieren (Passwort muss ja etwas knifflig sein)
also sha2 von Wurst > 56065cafa1f3c929f805e245c7f838cd99f35d0aa4910e86e60932e475122da6
Nun wird der 1. Hash mit dem 2. Hash "gesalzen"
also hash1:hash2
das sieht so aus
6428a8fbbb0e120528bb604a66787102280e1b5e26db76633ce37c8a4526e445:56065cafa1f3c929f805e245c7f838cd99f35d0aa4910e86e60932e475122da6
d.h. der Username ist unser "salt"
diesen Salted Hash hashen wir nun mit MD5, und sieht somit so aus:
87cfb387f124e4172d02805a0649db20
Das Prinzip ist ganz einfach.
Will man nun eine Brute Force attacke starten, muss man zunächst den MD5-Hash attackieren.
Nach etwa 5000 Jahren kommt man dann zu unserem salted Hash, und steht vor dem nächsten Problem:
welcher Hash ist das Passwort, und welcher ist der Salt?
Also wieder beide attackieren.
Nochmal 8000 Jahre später hat man dann beides.
Klingt sehr ironisch, soll es auch!
Meiner Meinung nach, ist die einzige möglichkeit ein solches Passwort zu knacken, eine Kollision zum MD5 Hash zu finden.
Andererseits sitzt man und warted ewig.
Was halted ihr davon?
MfG
ohne Vorgerede, direkt los:
Viele von euch wissen ja, dass gehashte Passwörter durch sogenannte "Brute Force"-Attacken "geknackt" werden.
Bei einem einfachen Passwort, wie es fast jeder Otto-Normalverbraucher benutzt - sei es das Geburtsdatum, Zweitname, oder irgendwelche Kombinationen aus persönlichen Daten (Vorname + Geburtsdatum) - dauert eine solche Attacke meist nur einige Minuten oder Stunden.
Um einen Hash sicherer zu machen, wird das Passwort nun zunächst mit einem Salt versehen. Viele von euch kennen das verfahren. Da der Salt aber in der Datenbank gespeichert ist, ist es kein Problem für einen "Hacker" ein BT zu schreiben, welches alle Passwörter + den Salt hasht, d.h. die dauer der Attacke bleibt die gleiche, wie ohne Salt.
Nun zu meiner Idee:
Wir salten einen Hash mit einem weiteren Hash und dieser "Salted Hash" wird ein weiteres mal gehasht.
Das ganze sieht zum Beispiel so aus:
Name: Hans
Passwort: Wurst
Zunächst reduzieren wir Hans auf hans (strtolower('Hans'))
aus hans machen wir nun einen sha2 > 6428a8fbbb0e120528bb604a66787102280e1b5e26db76633ce37c8a4526e445
als nächstes hashen wir das Passwort, OHNE es zu reduzieren (Passwort muss ja etwas knifflig sein)
also sha2 von Wurst > 56065cafa1f3c929f805e245c7f838cd99f35d0aa4910e86e60932e475122da6
Nun wird der 1. Hash mit dem 2. Hash "gesalzen"
also hash1:hash2
das sieht so aus
6428a8fbbb0e120528bb604a66787102280e1b5e26db76633ce37c8a4526e445:56065cafa1f3c929f805e245c7f838cd99f35d0aa4910e86e60932e475122da6
d.h. der Username ist unser "salt"
diesen Salted Hash hashen wir nun mit MD5, und sieht somit so aus:
87cfb387f124e4172d02805a0649db20
Das Prinzip ist ganz einfach.
Will man nun eine Brute Force attacke starten, muss man zunächst den MD5-Hash attackieren.
Nach etwa 5000 Jahren kommt man dann zu unserem salted Hash, und steht vor dem nächsten Problem:
welcher Hash ist das Passwort, und welcher ist der Salt?
Also wieder beide attackieren.
Nochmal 8000 Jahre später hat man dann beides.
Klingt sehr ironisch, soll es auch!
Meiner Meinung nach, ist die einzige möglichkeit ein solches Passwort zu knacken, eine Kollision zum MD5 Hash zu finden.
Andererseits sitzt man und warted ewig.
Was halted ihr davon?
MfG