Sorry ich sehe gerade das da ein Fehler drinnen ist.
Zitat:
In der User-
DB stehen alle registrierten Benutzer U, deren gehashtes Password Ph = H(P), und das mit diesem gehashten Ph verschlüsselte Passwort für Daten-
DB -> Pd = C(D, Ph) !
Dies ist natürlich schwachsinnig, da ja Ph = H(p) und Pd = C(D, Ph) beide in der User-
DB gespeichert sind wird es nun einfach für den Angreifer das D zu berechnen. Denn das Passwort Ph zur Entschlüsselung D = E(Pd, Ph) wird dem Angreifer der die User-
DB lesen kann gleich frei Haus geliefert. Man muß dies absolut vermeiden und es sollte so aussehen:
In User-
DB stehen U,Pv=H(P),s,Pd=C(D, H(s + P))
wobei
U = Username
Pv = H(P) = Passwordverifier zur Überprüfung des Passwortes
s = ein Zufallssalt, sprich z.b. 20 Bytes Zufallszahlen
Pd = C(D, H(s + P)), das verschlüsselte Data-
DB Passwort D das mit H(Salt + Password) verschlüsselt wurde.
Diese sehr einfache Verfahren ermöglicht aber trotzdem bestimmte Angriffe. Um diese zu elimieren muß man dann schon echte mathematische "Public Key" Verfahren benutzen.
Gruß hagen