# Passwort eines Technischen Users hinterlegen



## MirauderMo (16. Jul 2008)

Hallo,

bei der Anwendung an der ich mit Entwickle gibt es derzeit eine große Konfigurationsdatei in der viele Daten hinterlegt sind, unter anderem auch der Benutztername und das Passwort für den Datenbankzugriff. Da diese Datei recht vielen zugängig ist und sozuagen ein Teil der Anwendug ist dürfen diese Informationen eigentlich nicht darin gespeichert werden.

Da die Anwendung diese Informationen aber benötigt (sie beim starten manuell einzugeben ist keine akzeptable Lösung) müssen sie aber irgendwie hinterlegt werden. Meine Frage ist jetzt wie das klassischer weise gemacht wird?

Meine einzige Idee währe eine seperate Konfigurationsdatei anzulegen die nicht in die .jar Datei mit hinein kommt sondern aus dem Dateisystem geladen werden muss, dann müsste man diese Datei Umgebungsabhängig vorhalten in einem Verzeichniss auf das man den Zugriff beschränkt. Da ich bei der Problemstellung davon ausgehe das es keine seltene ist denke ich das es dafür eine gänige Lösung geben muss, an der bin ich interesiert  

Gruß
MirauderMo


----------



## maki (16. Jul 2008)

Wenn jemand zugriff auf das Verzeichniss hat in dem die Anwendung liegt, mache ich mir keine großen Sorgen mehr über Passwörter, er könnte prinzipiell alles ändern/auslesen.


----------



## MirauderMo (16. Jul 2008)

Das ist wohl war, aber das .jar File wird nicht erst in dem Verzeichniss erstellt und auf dem Weg dahin könnte es schon ausgelesen werden.


----------



## maki (16. Jul 2008)

Nun ja, man muss da unterscheiden.

Die Anwendung scheint eine Clioent App. zu sein, welche sich direkt mit der DB Verbindet.
In so einer Konfig ist es immer sehr schwer die Passwörter zu verstecken.

Wenn diese Cliebnt App. aber nicht direkt mit der DB sprechen würde, sondern mit einer Middleware (RMI, EJB, etc.pp.), müssten nur die Middleware die Passwörter etc kennen.
Diese Middleware, nennen wir sie mal Server, sollte natürlich nicht offen rumliegen.


----------



## Guest (16. Jul 2008)

Das Passwort veschlüsselt ablegen.

http://exampledepot.com/egs/javax.crypto/DesString.html

Einzig den SecretKey muss man irgendwo in der Applikation ablegen, damit die Anwendung das wieder entschlüsseln kannn.

Ist zwar auch nicht 100% sicher, dann braucht es aber schon einiges an Aufwand um an das Passwort zu kommen.


----------



## SlaterB (17. Jul 2008)

genauso groß, wie der Aufwand, das versteckt abgelegte DB-Passwort direkt zu finden,
die Indirektion bringt doch nix?
außer dass man im Quellcode nach DES-Code suchen kann und so schneller das Passwort findet
(falls die Suche nach der DB-Verbindung nicht genauso schnell ist)


----------



## Guest (17. Jul 2008)

> genauso groß, wie der Aufwand, das versteckt abgelegte DB-Passwort direkt zu finden,
> die Indirektion bringt doch nix?



Doch, wenn er das DB-Passwort bei verschieden Installtionen unterschiedlich wählen möchte, dann schon. Wenn er für alle Instalationen dasselbe Passwort verwendet, dann braucht er es aber auch nicht in einer Konfigurationsdatei abzulegen.


----------

