Andreas: Sicherheit von MD5

Beitrag lesen

Hallo!

ich frage mich gerade wie sicher es ist, wenn ich eine Seite wie folgt schütze:

ca. 10 User bekommen eine email mit dem Link zu der gegen alle anderen Cracker... und böswilligen User zu schützenden Seite.

Der link sieht so aus: http://www.server.de/seite.php?id=123&user_id=12312kj3lk12j39023j12lkj3lkj12

id bechränkt die zusammengehörigen User (ca. 10), und user_id ist ein MD5-String den ich wie folgt erzeuge(PHP):

srand ((double)microtime()*1000000);
$randvalue = rand();
$user_id = urlencode(md5($randvalue.$email_adresse));

Ich hatte mir das jetzt mal so gerechnet, wenn jemand anders die id errät(ist ja nicht ganz so schwer), dann braucht er viel Glück eine gültige user_id zu erraten:

32^36 / 10 = 1,5324955408658888583583470271503e+53

wobei mir hier immer verdächtig viele Zahlen drin sind, evtl läßt sich ein Algorythmus beschleunigen, aber auch das sollte nicht viel bringen, denn selbst 32^10 / 10 = 1.125.899.906.842.624

und wenn ich dann noch ein sleep(2) einbaue(am besten nur dann wenns die Fehlermeldung gibt), dann wird es per Brute-Force vermutlich unmöglich - vor allem über das Internet, oder?

Ich prüfe am Anfang des Sriptes in folgender Reihenfolge:

1. sind die $_GET[] Variablen überhaupt vorhanden?
2. Existiert die ID
3. Existiert zu dieser ID dieser User

sobald einer der Punkte nicht stimmt wird sofort abgebrochen!

Wir hatten ja schon einige Diskussionen zu dem Thema, hierbei wollte ich bewußt auf einen Login mit Passwort verzichten, denn ich sehe hier keinen gewinn an Sicherheit, wenn ich dem User an Stelle der kompletten URL einen Username und ein Passwort im Klartext schicken würde. Und das ist auch die einzige Schwachstelle an der ganzen Sache, die Klartext-Email, aber das Problem wird man wohl immer haben, aber wenn jemand der ein Interesse hat da einzubrechen bereits in der Lage ist entweder bei mir oder bei dem betroffenen User emails mitzulesen ist eh fast alles verloren!

Was meint Ihr dazu?

Grüße
Andreas