Das folgende Szenario wird angezeigt:
Ich habe eine MySQL-Datenbank mit einer Benutzertabelle. Die Tabelle enthält zwei Felder: Benutzername
und Passwort
. Das Kennwort wird als ungesalzener Hash gespeichert.
Eine über 15 Jahre alte Anwendung verwendet diese Datenbank, um den Zugriff auf ihre Dienste zu authentifizieren. Der Zugriff ist nur intern möglich.
Unser Team hat die Aufgabe, diese Dienste zu modernisieren, indem es eine neue Anwendung anbietet, die den Best Practices und Erkenntnissen der letzten 15 Jahre (und möglicherweise mehr, die in der ursprünglichen Anwendung ignoriert wurden) folgt. Auf diese Anwendung muss über das weite Internet zugegriffen werden können.
Wir sollten die aktuelle Datenbank für Authentifizierungszwecke wiederverwenden, damit beide Anwendungen parallel auf derselben zugrunde liegenden Authentifizierungsdatenbank ausgeführt werden können.
Ich habe einige Sicherheitsbedenken geäußert, da es bei dieser Anwendung um den Umgang mit persönlichen Daten meiner Mitarbeiter und mir geht.
Wir haben beschlossen, dass ein Teil unserer Modernisierung darin besteht, dass Kennwortrichtlinien eingerichtet und Kennwörter sowohl gesalzen als auch gespeichert werden und gepfeffert.
Dies bedeutet, dass unsere Datenbanktabelle ein drittes Feld salt
erhalten würde und das Feld password
jetzt unseren gesalzenen und gepfefferten Hash speichert.
Das Problem hierbei ist, dass dadurch die Authentifizierung in unserer alten Anwendung unterbrochen wird. Da der Code sehr alt ist und wir nicht einmal mehr einen funktionierenden Compiler dafür haben, kommt das Ändern des Codes der ursprünglichen Anwendung nicht in Frage.
Meine Frage lautet daher:
- Gibt es eine sichere Möglichkeit, unserer Authentifizierungsdatenbank Salz (und Pfeffer) hinzuzufügen, während die alte Anwendung weiterhin Benutzer authentifizieren kann? Beachten Sie, dass die alte Anwendung zwar von Natur aus unsicher ist, aber außerhalb unseres Intranets nicht zugänglich ist , die neue Anwendung jedoch.