"We are back" « oc.at

php/mysql - md5()

.DS. 19.10.2003 - 14:20 1257 17
Posts

.DS.

Little Overclocker
Avatar
Registered: Sep 2003
Location: Somewhere
Posts: 81
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
Bearbeitet von .DS. am 19.10.2003, 16:03

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10345
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.

Little Overclocker
Avatar
Registered: Sep 2003
Location: Somewhere
Posts: 81
ok, danke für eure hilfe.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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.

Little Overclocker
Avatar
Registered: Sep 2003
Location: Somewhere
Posts: 81
bei update, wie kann ich nur einen bestimten wert ändern? zb. nur bei column password, den zweiten wert updaten.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25564
UPDATE tblblah SET columnname='arg' WHERE rowdata='rowdata'

Sticker

Big d00d
Avatar
Registered: Mar 2003
Location: Wien
Posts: 177
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25564
.. oder eine zufallszahl. auch ned perfekt, weil noch immer anfällig auf replay-attacks

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Die Zufallszahl muss man dann mit dem Hash mitspeichern...

Wie gehen Replay-Attacks?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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.

Little Overclocker
Avatar
Registered: Sep 2003
Location: Somewhere
Posts: 81
@mat - thx für den befehl

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25564
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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ß.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz