Sven Rautenberg: Welche Verschlüsselung nehmen?

Beitrag lesen

Moin!

welche der der in PHP bis 5.2.6 enthaltenen Verschlüsselungen bzw. Hashfunktionen sind noch für Benunutzung für Passwörter etc. geeignet?

Ich habe da jetzt nur noch sha1 im Gedächtnis.

md5() scheidet aus, weil bekanntermaßen in wenigen Sekunden auflösbar...

Krieg mal wieder Realität in deinen Kopf rein! Niemand löst dir MD5 in wenigen Sekunden auf, außer ein Angriff via Rainbow-Tabelle ist erfolgreich.

Alle kryptografischen Forschungen, die die Manipulation von MD5 bei seiner Nutzung als Prüfsumme zum Ziel haben, benötigen derzeit einen gewissen zeitlichen Rechenaufwand, um eine Nachricht zusammen mit ihrer prüfsummengleichen Fälschung herzustellen, aber vor allem benötigen sie die Möglichkeit, diese zwei Nachrichten eben gerade SELBST herstellen zu können - und prinzipbedingt erfordert diese Manipulation die Möglichkeit, im Nachrichtentext eine Größenordnung von über 256 Bytes beliebig frei manipulieren zu können - zusätzlich zur Nutznachricht selbst.

Allein diese Angriffsmöglichkeit gegen den Algorithmus hat das Vertrauen in ihn erschüttert, aber er ist ja auch schon sehr lange Zeit bekannt und konnte analysiert und angegriffen werden.

SHA-1 ereilte im Prinzip ein ähnliches Schicksal, aber ganz so weit vorgedrungen sind die Forscher bislang noch nicht.

Das simpelste dürfte sein, MD5 und SHA-1 einfach zu kombinieren. Denn einen kombinierten Angriff auf beide zusammen hat man bislang noch nicht hinbekommen. Wenn derselbe String sowohl mit MD5 als auch SHA-1 gehasht wird, darf man davon ausgehen, dass Manipulationen daran nicht zu sowohl identischer MD5- als auch SHA-1-Prüfsumme führen werden.

hash()  http://de3.php.net/manual/en/function.hash.php

Ein Framework für alles, was Hashfunktion heißt.

crypt() http://de3.php.net/manual/en/function.crypt.php

Wenn du drauf stehst, einen Passwortstring nach 8 Zeichen abzuschneiden und daraus dann den Hash zu berechnen...

- Sven Rautenberg