Für alle meine Hobby-Webprojekte habe ich ein Anmeldesystem codiert, das diese Projekte gemeinsam nutzen. In diesen Projekten gibt es keine kritischen Daten. Die einzigen kritischen Daten können wiederverwendete Kennwörter sein. Deshalb versuche ich, Passwörter auf sehr sichere Weise zu hashen.
Mein aktueller Passwort-Hashing-Algorithmus ist nichts, was ich als wirklich sicher bezeichnen würde. Und als ich sah, dass PHP jetzt integriertes Hashing mit password_hash
anbietet, dachte ich über einen Wechsel nach.
Meine Frage ist, was sind die Vorteile eines Wechsels für mich? Welchen zusätzlichen Schutz bekomme ich, welche Löcher repariere ich usw.? Und muss ich noch etwas tun, um es nicht extrem unsicher zu machen?
Ich möchte die Antworten als Lernerfahrung für mich selbst nutzen, damit ich sie anderen beibringen kann, die in meiner Position sind.
Mein aktueller Algorithmus (Pseudocode):
Salt = "etwas Salz" 1000000 Mal wiederholen Passwort = Sha512 (Salz + Benutzername + Salz + Passwort)
Ich weiß, dass meine Site anfällig für Timing-Angriffe ist, und die in PHP integrierten Funktionen würden dies beheben.
Was ist sonst noch offensichtlich unsicher?