PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Benutzer-Passwörter speichern?


MadMan2k
2004-12-01, 13:40:50
konkret geht es mir um User-Accounts einer Homepage.
Momentan speichere ich die Passwörter als MD5,
was aber relativ umständlich zu handhaben ist, wenn ein
User sein Passwort vergessen hat.

Daher würden mich noch andere Speichermöglichkeiten interessieren;
Vor allem ob es überhaupt sinn macht die Passwörter zu verschlüsseln,
denn wenn es jemand schafft bis auf den MySQL Server zu kommen, schafft er es wohl auch die MD5 Passwörter per Bruteforce zu entschlüsseln...

und wo ich grad sowieso beim Fragen bin; ich speichere die indizies des Baumstruktur der Homepage, da jeder Beitrag eindeutig identifizierbar sein soll.
Soll heissen ich habe eine riesen Tabelle mit den Feldern id und parent_id, was ziemlich heikel ist, da wenn dort ein Fehler auftritt die gesamte Seite mitgerissen würde, während es bei einer aufteilung in News, Comments etc. nur der jeweilige Teil wäre.
Allerdings kriege ich dann keine eindeutige Identifizierung über auto_increment hin...
Gibt es noch andere Möglichkeiten eine Baumstruktur zu speichern bzw. wie löst ihr sowas?

noid
2004-12-01, 14:10:08
ähm. md5 und gut. wenn jemand sein passwort vergisst bekommt er ein neues.
außerdem ist beim speichern von passwörtern per hash ein MD5 nur zusätzlich mit nem "salt" sinnig. ansonsten kann der angreifer mittels dictionary-attack sehr leicht herausbekommen (zumindest bei den usern die "normale" passwörter verwenden).

wenn der user zu blöd ist, dann hat er halt pech.

also mein tipp als vorgehensweise:
zufallszahl erzeugen, md5(passwort + zufallszahl) -> speichern.
die zufallszahl musst du aber plain ablegen. jetzt kann man zwar immernoch mittels bruteforce die passwörter herausbekommen, aber mit vorberechneten werten kommt er nicht mehr durch.

wenn du irgendwo einen asychronen schlüssel (zB ssh) auf dem server hast, dann kannst du auch diesen nehmen. mit dem öffentlich verschlüsseln - dann kannst du ihn nur mit private entschlüseln. und wenn der private zugänglich ist, dann wirds eh kritisch.

Aqualon
2004-12-01, 17:32:35
Wenn jemand Zugang zu deinem MySQL-Server bekommt, können ihn die MD5-Passwörter der User egal sein, da er sowieso an alle Daten kommt, die er haben will.

Aqua

noid
2004-12-01, 17:38:42
passwörter legt man in den seltensten fällen plain ab.
soviel mehr aufwand ist die sache nicht. zumal die frage ja offen ist in welchem umfang derjenige zugang hat.

Gast
2004-12-01, 17:40:37
Wenn jemand Zugang zu deinem MySQL-Server bekommt, können ihn die MD5-Passwörter der User egal sein, da er sowieso an alle Daten kommt, die er haben will.

Aqua
demnach wäre es auch völlig egal, wie ich die passwörter speichere?

MadMan2k
2004-12-01, 17:43:15
passwörter legt man in den seltensten fällen plain ab.
soviel mehr aufwand ist die sache nicht. zumal die frage ja offen ist in welchem umfang derjenige zugang hat.
ich frage mich bloß, was es konkret noch bringt Passwörter verschlüsselt zu speichern, außer diese vor dem Webmaster zu schützen?

noid
2004-12-01, 17:56:06
wer sagt denn, dass er immer 100% zugang zum system erlangt?

Mike
2004-12-01, 17:58:01
Naja, da viele Leute "Universal Passwörter" nehmen, macht es doch einen gewissen Sinn, sie zu verschlüsseln, selbst wenn dann doch einer mal Zugriff auf den MySQL Server oder ein DB Backup erlangen sollte, hat er nicht gleich die plaintext Passwörter.
Allerdings sind 1-5 stellige mit md5 verschlüsselte Passwörter sehr schnell zu knacken, einigermaßen sicher wird das ganze erst ab >6 Stellen.
Die Angaben beziehen sich auf BruteForce mit normalen HomePCs, mit nem entsprechenden Cluster oä gilt das natürlich nicht mehr :)

MadMan2k
2004-12-01, 19:06:49
wer sagt denn, dass er immer 100% zugang zum system erlangt?
entweder man hat zugriff, oder man hat ihn nicht - oder?

noid
2004-12-01, 19:35:39
entweder man hat zugriff, oder man hat ihn nicht - oder?

nö, immer eine frage der rechte. zB nehm einfach verschd user. sollte es nen exploit geben bei dem man nur user-rechte erlangen kann, dann ist das schonmal sinnvoll. das ist keine admin-schickane.

außerdem ist ein hash nur sinnvoll mit salt. so wird auch verhindert, dass man bei gleichem passwort den gleichen hash hat.