Hallo allerseits,
ich habe eine Java-Anwendung geschrieben, die auf eine MySql Datenbank zugreift, die sehr sensible Daten enthält.
Offensichtlich möchte ich verhindern, dass Benutzer der Anwendung direkt auf die Datenbank zugreifen können.
Die Anwendung muss natürlich eine Datenbankverbindung herstellen, sie muss also Dinge wie Host, User und Passwort mitgeteilt bekommen.
Hier sehe ich ein grosses Sicherheitsrisiko.
Momentan sind die Verbindungsdaten in einer Config-Datei gespeichert - im Klartext. Das soll natürlich nicht so bleiben.
Welche Möglichkeiten gibt es, das Auslesen dieser Daten zu verhindern?
Die Verbindungsdaten direkt in den Code zu schreiben bringt auch nicht viel, da die jar-Datei ja einfach entpackt werden kann.
Ein Obfuscator scheint auch nicht das Richtige zu sein, da er konstante Werte nicht ändern kann, die Daten wären also nach wie vor im Klartext auslesbar, ein custom ClassLoader halte ich ebenfalls für nicht sicher.
Die Benutzer der Anwendung sollen diese Daten am besten überhaupt nicht wissen, da das eben nicht garantiert, das diese Daten weitergegeben und/oder missbraucht werden, also scheidet auch eine Eingabeaufforderung der Verbindungsdaten aus.
Mir fällt leider keine offensichtliche Lösung für das Problem ein.
Wer weiss was?
Vielen Dank für jede Hilfe!
Hatch
ich habe eine Java-Anwendung geschrieben, die auf eine MySql Datenbank zugreift, die sehr sensible Daten enthält.
Offensichtlich möchte ich verhindern, dass Benutzer der Anwendung direkt auf die Datenbank zugreifen können.
Die Anwendung muss natürlich eine Datenbankverbindung herstellen, sie muss also Dinge wie Host, User und Passwort mitgeteilt bekommen.
Hier sehe ich ein grosses Sicherheitsrisiko.
Momentan sind die Verbindungsdaten in einer Config-Datei gespeichert - im Klartext. Das soll natürlich nicht so bleiben.
Welche Möglichkeiten gibt es, das Auslesen dieser Daten zu verhindern?
Die Verbindungsdaten direkt in den Code zu schreiben bringt auch nicht viel, da die jar-Datei ja einfach entpackt werden kann.
Ein Obfuscator scheint auch nicht das Richtige zu sein, da er konstante Werte nicht ändern kann, die Daten wären also nach wie vor im Klartext auslesbar, ein custom ClassLoader halte ich ebenfalls für nicht sicher.
Die Benutzer der Anwendung sollen diese Daten am besten überhaupt nicht wissen, da das eben nicht garantiert, das diese Daten weitergegeben und/oder missbraucht werden, also scheidet auch eine Eingabeaufforderung der Verbindungsdaten aus.
Mir fällt leider keine offensichtliche Lösung für das Problem ein.
Wer weiss was?
Vielen Dank für jede Hilfe!
Hatch