Christoph Zurnieden: Sicherheit von MD5

Beitrag lesen

Hallo

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

Was Du brauchst ist SSL.

Ja, das vergaß ich zu erwähnen, ohne hat das ganze natürlich wenig Sinn ;-)

Denn schrief ouck "https://..."!
*grummel*
;-)

Dann mach ich mal hier ein C&P des Originalpostings:

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));

Das ist unnötig kompliziert. MD5 alleine reicht. Allerdings ist die ID zu einfach, wenn, dann sollte die auch per MD5 verborgen werden.

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

Und wenn Du noch erklärst, wie Du auf diese Funktion kommst? ;-)

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

Das ist enstschieden zu wenig!

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?

Nein. Eine Verzögerung alleine ist nicht sinnvoll. Nur das Beschränken auf eine begrenzte Zahl an Fehlversuchen hilft.

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 was ist jetzt unterschiedlich?

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!

Nicht nur fast. Deswegen ist ja auch keine Unterschied zur User/Password Kombination.

Es wird hier also noch eine kryptographische Methode benötigt, die Übergabe des Paswortes zu verschlüsseln. Diese Methode ist Open PGP, ein standardisierter Algorithmus http://www.ietf.org/html.charters/openpgp-charter.html, die Software dazu ist frei erhältlich http://www.gnupg.org/de/gnupg.html.

so short

Christoph Zurnieden