php/mysql - md5()

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_mysql_md5_96125/page_1 - zur Vollversion wechseln!


.DS. schrieb am 19.10.2003 um 14:20

i hab md5() für verschlüsselung eines eingegeben passwords benutzt. muss ich jetzt alle passwörter in der tabelle auch mit md5() verschlüsselt haben oder gibt einen befehl der es wieder entschlüsselt.

sorry wenn ne anfänger frage is aber i bin ein anfänger.

tia

mfg


atrox schrieb am 19.10.2003 um 14:25

a) md5 ist keine verschlüsselung, es ist eine einweg-hashfunktion.

b) mysql hat eine md5 funktion, um alle felder einer tabelle von klartext auf md5 umzustellen, verwende: update tablename set spaltenname=md5(spaltenname)


XeroXs schrieb am 19.10.2003 um 14:26

man kann ein md5 passwort nicht mehr entschlüsseln (außer durch bruteforce).. sondern nur vergleichen..

somit muss in der tabelle auch alles verschlüsselt sein damit das dann zusammenpasst


.DS. schrieb am 19.10.2003 um 14:31

ok, danke für eure hilfe.


atrox schrieb am 19.10.2003 um 15:04

geschickter weise sollte man noch den username/userid auch in die md5/whatever passwort hash aufnehmen. das hat den grund, daß bruteforce deutlich erschwert wird, weil dann dann zb ein dictionary-word nicht nur einmal gehashed werden kann, und dann mit allen accounts verglichen werden kann, sonder das hashen muß für jeden user seperat erfolgen, was den aufwand für cracker nochmals deutlich erhöht.

da gabs doch auch einen thread dazu hier im forum... wo war er blos ?


.DS. schrieb am 19.10.2003 um 16:11

bei update, wie kann ich nur einen bestimten wert ändern? zb. nur bei column password, den zweiten wert updaten.


mat schrieb am 19.10.2003 um 19:07

UPDATE tblblah SET columnname='arg' WHERE rowdata='rowdata'


Sticker schrieb am 19.10.2003 um 21:56

In einem projekt haben sie es mal geschafft viele md5 Passwörter mit Hilfe von hashtable Vergleichen zu entschlüsseln,d as Script ham sie online gestellt, ist mittlerweile offline, aber die Statistiken sind noch abrufbar, weiß aber nimmer wie der Link war


atrox schrieb am 19.10.2003 um 22:56

hört sich nach dictionary-attack an, bei dem die passwörter bereits als md5 vorliegen. aben um genau das zu verhindern, soll man dem input der hashes noch ein feld des benutzers hinzufügen, so daß das passwort X beim benutzter A und benutzer B nicht zum selben hash führt.


mat schrieb am 19.10.2003 um 23:00

.. oder eine zufallszahl. auch ned perfekt, weil noch immer anfällig auf replay-attacks


that schrieb am 19.10.2003 um 23:24

Die Zufallszahl muss man dann mit dem Hash mitspeichern...

Wie gehen Replay-Attacks?


atrox schrieb am 19.10.2003 um 23:31

a) das soll ja nur den schutz erhöhen, falls die database in falsche haende gerät. hunderprozentigen schutz bietet das alles natürlich nicht. (zb wurde dem informatik-forum der tu wien mal durch zufall ein db-dump abhanden -> wegen der falschen verwendung der md5 sum, waren die passwörter leicht zu hacken.)

wenn man nicht den aufwand und die unbequemlichkeit für ein (fast) perfektes sicherheitssystem aufbringen möchte oder kann, und man sich arangiert, daß 100% nicht erreichbar sein werden. so gilt es mit einfachen methoden den aufwand für den cracker soweit in die höhe zu treiben, daß es für ihn uninteressant wird.

über dem daumen (um die berühmten 80/20 relation zu strapazieren), könnte man sagen, mit den ersten 20% des möglichen aufwandes erreiche ich 80% der möglichen sicherheit. jeder weitere prozentpunkt muß immer teurer erkauft werden. hier muss halt jeder fuer sich die grenze des möglichen ausloten.

b) für die kommunikation mit dem client, könnte man zb ein challenge response verfahren mit hashes implementieren. md5-javascript-codes gibts im web.


.DS. schrieb am 20.10.2003 um 12:56

@mat - thx für den befehl


mat schrieb am 20.10.2003 um 19:51

Zitat
Wie gehen Replay-Attacks?
session abfangen und aufzeichnen (zB über den proxy) und einfach wiederholen.. also ein loginreplay.

übrigens is die methode sich gegen eine replay-attack zu wehren doch leichter (als ich dachte). server sendet eine zufallszahl (bei jedem login eine andere.. nennt sich übrigens "nonce") zum user.. danach bilden beide mit der zahl einen md5 hash um diesen dann zu vergleichen. das passwort is auf diese weise natürlich (verschlüsselt oder unverschlüsselt) in der db gespeichert und ergibt leider eine weitere (IMO unwichtige) sicherheitslücke.

edit: ahhh.. ich muss es mit den klammern wieder mal übertreiben :bash:


atrox schrieb am 20.10.2003 um 21:16

siehe oben: heißt "challenge response"
... und es läßt sich auch leicht so realisieren, daß das passwort nicht cleartext in der db stehen muß.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025