Moin!
Ich schweife gerade mit meinen Gedanken ab und bin dabei auf das Thema Passwortsicherheit gekommen. Ich programmiere größtenteils in PHP, aber das Thema ist eher theoretischer Natur. Ich will auch gar nicht die Vor- und Nachteile von Salt in Passwörtern erörtern, sondern dessen Anwendung.
Ein Login-Beispiel dazu:
Das Script erstellt einen Hash-Wert vom Benutzernamen und nimmt diesen Hash und packt ihn ans Ende des Passworts. Dann wird dieser String gehasht und dieser Hash mit dem Hash Wert in der Datenbank abgeglichen.
Natürlich wurde der Wert in der Datenbank ähnlich ausgeführt.
Liege ich falsch mit der Annahme, dass ich jetzt einen recht sicheren Hash-Wert für das Passwort in der Datenbank habe? Denn im Grunde geht es ja darum bei einem Einbruch in meine Datenbank, die Passwörter für den Angreifer unbrauchbar zu machen. Und mit dieser Methode gibt es kein Salz, das irgendwo gespeichert werden muss, weil ich die benötigten Daten dafür jedes Mal erst generiere und das Salz ist für jedes Passwort individuell.
Natürlich bringt das nichts, wenn der Angreifer auch Zugriff auf meinen Quellcode hat (in dem Falle, wo der Quellcode offen liegt, zB PHP), denn dann weiß der Angreifer auch, wie die Passwörter gesalzen sind.
Liege ich mit meinen Überlegungen richtig oder habe ich fundamentale Dinge übersehen?
Ich schweife gerade mit meinen Gedanken ab und bin dabei auf das Thema Passwortsicherheit gekommen. Ich programmiere größtenteils in PHP, aber das Thema ist eher theoretischer Natur. Ich will auch gar nicht die Vor- und Nachteile von Salt in Passwörtern erörtern, sondern dessen Anwendung.
Ein Login-Beispiel dazu:
Das Script erstellt einen Hash-Wert vom Benutzernamen und nimmt diesen Hash und packt ihn ans Ende des Passworts. Dann wird dieser String gehasht und dieser Hash mit dem Hash Wert in der Datenbank abgeglichen.
Natürlich wurde der Wert in der Datenbank ähnlich ausgeführt.
Liege ich falsch mit der Annahme, dass ich jetzt einen recht sicheren Hash-Wert für das Passwort in der Datenbank habe? Denn im Grunde geht es ja darum bei einem Einbruch in meine Datenbank, die Passwörter für den Angreifer unbrauchbar zu machen. Und mit dieser Methode gibt es kein Salz, das irgendwo gespeichert werden muss, weil ich die benötigten Daten dafür jedes Mal erst generiere und das Salz ist für jedes Passwort individuell.
Natürlich bringt das nichts, wenn der Angreifer auch Zugriff auf meinen Quellcode hat (in dem Falle, wo der Quellcode offen liegt, zB PHP), denn dann weiß der Angreifer auch, wie die Passwörter gesalzen sind.
Liege ich mit meinen Überlegungen richtig oder habe ich fundamentale Dinge übersehen?