[TYPO3-german] Password cracker/checker
Fabian Koenig
koenig at bluhouse.de
Wed Aug 1 13:55:45 CEST 2007
Da ich mich zuuuuuufaelligerweise mal mit dem Thema beschaeftigt habe,
muss ich euch "leider" mitteilen, dass das ganze nicht wirklich spassig
wird.
Ein bruteforce- / dictonary-attack stellt sich dahingehend als schwierig
heraus, da einige Wortlisten gut und gerne (im simplen txt-format) an
die 500MB umfassen. Klingt krass, ist aber so. :-P
Aber das ist ja noch nicht das Problem!
Wer mal z.B. einen bruteforce durchlaufen ließ weiß, dass soetwas gerne
mal Stunden dauern kann, bei EINEM (!!!) Account.
(bruteforce, NICHT dictonary! dictonary geht natuerlich schneller.)
Beruecksichtigt man dann noch den zur Verfuegung stehenden Speicher (RAM
@ Server), die Prozessorleistung (@Server), die Anzahl der zu pruefenden
Accounts (@Datenbank) und die "lahmarschigkeit" von PHP und JavaScript
(welches benoetigt wird, damit man nicht nach 30 Sekunden einen timeout
bekommt), den Umfang der dann stellt man ganz schnell fest, dass daraus
gut und gerne bei 1000 Datensaetzen ein paar Tage fuer den Test draufgehen.
Checkt man allerdings lediglich gegen eine Wordlist und hat viele
Accounts (mein kleinstes Projekt hat ~200 BE-User und TAUSENDE FE-User
(welche wir mal außen vor lassen), kann man trotzdem mit stundenlangen
Tests rechnen. Denn fuer jedes einzelne "wort" muessen ALLE BE-User
gegengeprueft werden.
Das macht bei halbwegs umfangreichen Wortlisten (mind. 100.000 Woerter)
und etwa 100 BE-Usern laut Grundschul-Mathematik (100.000 * 100) etwa,
bzw. genau 10.000.000 (ZEHN MILLIONEN!!!) Checks.
Also dann, viel Spass dabei ;-)
Elmar Hinz schrieb:
>> Würdest du das Passwort direkt beim Speichern checken, dann müsstest du es
>> nachher nicht mehr versuchen zu rekonstruieren:
>>
>> 1) Hook schreiben, der nur noch gute Passwörter erlaubt:
>>
>> if (
>> strlen($password) > 6) &&
>> preg_match('/[A-Z]/', $password) &&
>> preg_match('/[a-z]/', $password) &&
>> preg_match('/[0-9]/', $password)
>> ) {
>> $ok = true;
>> }
>>
>> 2) alle Passwörter resetten, so dass sich jeder neu anmelden muss
>
> Hi Michael,
>
> das ist natürlich die erste Option. Elmars Frage bezog sich jedoch auf die
> Prüfung der Sicherheit bestehender Passwörter insbesondere gegen Wörterbuch
> Angriffe. Alle Passwörter zu resetten, ist in der Praxis nicht immer
> angezeigt.
>
> Grüße
>
> Elmar
>
More information about the TYPO3-german
mailing list