Webseitensicherheit
-
Hey,
wie sicher is mein Ansatz?
1. Ich salze die Passwörter und speichere diese als SHA Hash mit dem Salt in der Datenbank
Dann dacht ich mir, wenn einer die Datenbank hackt...
2. Setze ich noch einen Masterkey(mit dem ich salt und pw verschlüssle) ein, der im PHP ausgelagert wird
So müsste man nicht nur die mysql datenbank hacken sondern auch den apache server.
gibts noch weitere maßnahmen?
-
bcrypt ist das richtige mittel, statt sha oder md5 oder sonstigen hash Funktionen.
http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwordsbcrypt verwendet man um bruteforcing und salting um Rainbow Tables zu unterbinden.
PS:
mehrere salts sind uninteressant da man das salten nur verwendet um gegen Rainbow Tables sicher zu sein. Du kannst zB sowas doofes machen wie die User-Id als salt zu verwenden oder so. Wichtig ist, dass jedes Passwort ein eigenes salt hat. Das salt kannst du aber ohne Probleme neben das Passwort in die DB speichern. Denn wie gesagt, es verhindert nur rainbow tables.Gegen das bruteforcen bringt das salten nichts - dafür ist bcrypt da.