Guten Tag,
ich arbeite derzeit an einem PHP-Projekt bei dem sich der User kostenpflichtig registrieren kann.
Nach einer Registrierung hat der User die Möglichkeit ein Bankkonto für seinen Account freizuschalten. Das Konto dient dann dazu, dass bei Verlängerung des Accounts (durch den User selbst) von dem Konto per Lastschrift die Mitgliedsgebühr abgebucht wird, falls der User dies wünscht.
Ebenfalls werden auf das Konto gegebenenfalls Gutschriften überwiesen.
Nun das Problem:
Um die Kontodaten zu sichern wollte ich sie verschlüsselt in der Datenbank abspeichern. Da man aber in regelmäßigen Abständen das Passwort ändern sollte habe ich nun folgende Idee:
Das Passwort zum Ver-/Entschlüsseln der Kontodaten wird ebenfalls „verschlüsselt“ in der Datenbank gespeichert.
Ablauf:
- User gibt Kontodaten an => Die Kontodaten werden per SSL an den Server übertragen.
- Die Auswertungsdatei „A“ leitet die Kontodaten an Datei „B“ weiter.
- Datei B holt sich aus der Datenbank den „verschlüsselten“ Key und entschlüsselt ihn mit dem Key, welcher in der Datei „B“ als Variable gespeichert ist. Wenn nun der „entschlüsselte“ Key mit der zweiten Variable, welches der bereits entschlüsselte Key ist, übereinstimmt, so werden die Kontodaten mit dem zuvor entschlüsseltem Key verschlüsselt oder auch beim Auslesen der Daten entschlüsselt.
Ich möchte eben meinen wichtigen Key in der Datenbank verschlüsselt speichern, da ich ihn bei mehreren Dateien benötige und wenn ich nun den Key wechseln möchte, so muss es in mehreren Dateien geändert werden und es könnte schnell ein Fehler auftauchen, was ziemlich fatal wäre. Mit der Datenbank müsste ich es nur
- in der Datenbank ändern
- in der Datei B
- und zusätzlich könnte ich den Key, welches mein Passwort / Key aus der DB entschlüsselt, auch relativ schnell ändern.
Nun wollte ich mich erkundigen, ob mir jemand einen tipp geben könnte wie ich es noch deutlich sicherer machen könnte oder wo meine Idee gewisse Macken hat.
Ich wäre sehr dankbar für gewisse Kritiken oder Verbesserungsvorschläge, da das Projekt sehr wichtig für mich ist.
Vielen Dank.