Sicherheit Datenbankverbindung

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,


ich spiele mit dem gedanken ein clientprogramm zu entwickeln, welches sich über einen mysql server authentisiert.
Meine Frage ist, ob man aus einer JAR Datei die dort enthaltenen Passwörter und Datenbankverbindungen wieder rückwärts auslesen kann.
Wie kann ich eine Anwendung dahingehend sicher machen?
 
ja, natürlich kann man das.
Am besten ist es, wenn man die Verbindungsdaten beim Installationsvorgang vom Benutzer eingeben lässt.
 
Maximale Sicherheit erreicht man, wenn man alle angeschlossenen Stecker aus ihren Buchsen entfernt. Selbst dann gilt weiterhin, dass Sicherheit relativ ist.

Sicherheitstechnisch ist es schonmal ürre externen Zugriff auf eine DB zu erlauben. Normal gehört sowas via Konfiguration des Service und Firewall unterbunden. Wenn einem nichts besseres einfällt, gilt es natürlich die Passwörter nicht im Klartext abzulegen und den Zugriff auf die entsprechenden Tabellen DB-seitig auf Lesen zu beschränken.

Clientseitig kannst du wenig tun, denn die Zugangsdaten musst du irgendwo haben und du musst sie auch lesen können. Selbst wenn du sie verschlüsselst, lieferst du mit der Anwendung selbst auch den Code sie zu entschlüsseln.

Mit zusätzlichem Installationsaufwand kann man über SSH tunneln, so laufen Zugans- und Nutzdatzen wenigstens nicht im Klartext durchs Netz. Am saubersten wäre es vermutlich das Ganze verschlüsselt über einen Webservice zu lösen. Durch die zusätzliche Logik auf dem Server hat man auch mehr Möglichkeiten zum Logging und ggf. zur automatischen Sperrung, etc. (wobei man das auch serverseitig mittels fail2ban u.ä. machen kann)

Grundsätzlich stellt sich am Anfang aber zunächst die Frage, "Wie schützenswert sind die Daten?". Kein Skriptkiddie der Welt interessiert sich für den Zugriff auf dein gemeinschaftlich gepflegtes Familienkochbuch.
 
wie ist das denn bei einem messenger?

z.b. icq (auch wenn es nicht unbedingt? mit java geschrieben ist)

ich habe da das progrmam naürlich ohne passwörter, aber ich muss mich ja mit dem server verbinden.
d.h. dieser erlaubt nur einen lesezugriff (warhscheinlich 😀 ).
Ist sowas denn ok? kann man die serverip die irgendwo im quellcode steht doch sichtlich machen?
 
Ein Messenger schlörrt nicht einen Satz Zugangsdaten für die DB mit sich herum, um damit einen zweiten Satz Zugangsdaten zu verifizieren. Die haben ihre eigenen Protokolle, verifizieren anhand deiner Zugangsdaten und vermitteln dann eben die Kommunikation zwischen den Clients.

Es legt ja auch keiner den Generalschlüssel fürs Haus in den Tresor und pappt die Zahlenkombination auf einem Post-It! an die Tresortür...
 
z.b. icq (auch wenn es nicht unbedingt? mit java geschrieben ist)

Das Problem gibt es nicht nur mit Java sondern im Prinzip mit allen Programmiersprachen. Auch ein ICQ Server wird dich nur reinlassen, wenn du deine ICQ-Nummer (dein Loginname) und dein ICQ-Passwort eingegeben hast und die beiden von Server für gültig befunden worden sind (siehe ICQ Protokoll für Details wie das funktioniert. http://de.wikipedia.org/wiki/OSCAR_(Protokoll) und genauer http://dev.aol.com/aim/oscar/ ). Die Server-IP kannst du im Programm lassen (zumindest wenn du weißt, dass sie sich nie ändern wird, ansonsten ist auch hier was dynamisches besser), Loginname und Passwort sollte der Nutzer beim erstem Programmstart oder bei der Installation eingeben, so macht es doch auch ICQ und wohl auch 99% aller anderen Programme die das Problem betrifft.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben