Server-Daten sichern/verschlüsseln

remy

Aktives Mitglied
Hi,

mein Problem ist eigentlich einfach erklärt, aber ich komme auf keine vernünftige Lösung, vielleicht habt ihr ja eine Idee.

Ein Java-Programm verbindet sich zu einer SQL-DB, momentan stehen die Verbindungsdaten (Server, DB, User und Passwort) noch im Klartext im Code. Wie unsicher das ist bzw. wie einfach man an die Daten rankommt, muss ich hier keinem erzählen ;)

In diesem Programm gibt es keine User-Verwaltung, viele Leute kommen an das Programm. Welche Möglichkeit gibt es nun, die DB-Daten so zu verschlüsseln, dass man nicht mehr so einfach daran kommt?

VG!
 

Volvagia

Top Contributor
Auf nen Server ablegen. Von allem anderen würde ich dir dringend abraten. Wenn wirklich so viele rankommen, zieht sich einer schnell mal ne Kopie, und knackt die Verschlüsselung über kurz oder lang. Auf nen Server hast du Abwehr/Überwachungsmöglichkeiten für Zugriffe etc., außerdem wirkt das alleine schon abschreckender als eine lokale Datei. ^^
 

remy

Aktives Mitglied
Zuerst war ein User-System angedacht, das man direkt an die DB hätte koppeln können... aber das scheint mal wieder zu aufwändig für die Bedienung zu sein ;)

Auf welcher Art Server soll die Datei liegen? Im Netzwerk gibt es so viele ungesicherte Computer, teilweise ohne personenbezogenen Login, dass eine konkrete Nachverfolgung unmöglich ist. Selbst wenn die Datei passwortgeschützt irgendwo liegt, müssen wieder diese Daten irgendwo für das Programm lesbar hinterlegt sein.

Andere Idee? :(
 

Volvagia

Top Contributor
Wenn es im Programm keine Userverwaltung gibt, hat ja jeder Zugriff auf alle Daten. Ist es dann wirklich notwendig, die Datenbank so aufwändig zu schützen, wenn sowieso jeder ran kann?
 

nrg

Top Contributor
also im code sollten verbindungsdaten imho eh nie stehen. dazu gibt es properties o.ä.
könntest du eine client/server lösung vorziehen. der server kommuniziert über windows auth bzw. properties-gesteuerten sql-auth mit der datenbank und der client kommuniziert mit dem server. oder habe ich da was falsch verstanden? :)
 
G

Gast2

Gast
nutze doch einfach die Benutzerverwaltung von der Datenbank ... die ist nicht nur da um kompliziert auszusehen
 

remy

Aktives Mitglied
Wenn es im Programm keine Userverwaltung gibt, hat ja jeder Zugriff auf alle Daten. Ist es dann wirklich notwendig, die Datenbank so aufwändig zu schützen, wenn sowieso jeder ran kann?
ein gutes Argument :) hinzufügen und ändern von Datenbeständen in der DB sind zwar vom Programm vorgesehen, dennoch wird das auf nur sehr wenige Einträge in der DB restriktiert (Daten der letzten 24h).
So sind wenigstens alle anderen Einträge geschützt und die Manipulationsmöglichkeiten wären eingegrenzt.

also im code sollten verbindungsdaten imho eh nie stehen. dazu gibt es properties o.ä.
könntest du eine client/server lösung vorziehen. der server kommuniziert über windows auth bzw. properties-gesteuerten sql-auth mit der datenbank und der client kommuniziert mit dem server. oder habe ich da was falsch verstanden? :)
Hab leider nicht genau verstanden, was du da meinst :/ das Programm kommuniziert direkt mit einer SQL-DB, ohne Umwege über andere Server.

nutze doch einfach die Benutzerverwaltung von der Datenbank ... die ist nicht nur da um kompliziert auszusehen
genau das war mein Plan, aber eine Benutzerverwaltung ist im Programm nicht erwünscht. :(

(ein DANKE zwischendurch für die schnellen Antworten :))
 

nrg

Top Contributor
nutze doch einfach die Benutzerverwaltung von der Datenbank ... die ist nicht nur da um kompliziert auszusehen

meinst du damit alle user, die auf mit dem programm arbeiten, auf der datenbank anlegen und mit windows-auth authentifizieren?

Hab leider nicht genau verstanden, was du da meinst :/ das Programm kommuniziert direkt mit einer SQL-DB, ohne Umwege über andere Server.

naja das programm kommuniziert halt dann mit einem server, den du natürlich noch programmieren musst. der server dann mit der datenbank. ich weiß ja nicht, wie professionell das programm werden soll aber das ist imho der normale weg für sowas.
 
G

Gast2

Gast
genau das war mein Plan, aber eine Benutzerverwaltung ist im Programm nicht erwünscht. :(
Du sollst nicht im Programm eine Benutzerverwaltung ein bauen ... im Programm reicht ein Login-Maske

wenn Du eine Benutzer hast der nur Lesen darf, dann legst Du nur einen Benutzer mit SELECT-Rechten an ... einer der ändern darf, der bekommt noch UPDATE, INSERT & DELETE ... jede vernüftige DB kann die Rechte sogar auf die Spalten verteilen ... außerdem kannst Du noch VIEWs anlegen und dort entsprechend Rechte verteilen ... genau für solche Spielchen gibt es die Benutzerverwaltung in den DBs

Nachtrag: die Benutzerdaten kannst Du natürlich einfach weiter reichen

Nachtrag2: ist ist übrigens sinnvoll eine Nutzer nur mit INSERT-Rechten zur eigene Log-Table anzulegen ... den kannst Du dann nutzen um die Aktionen der Benutzer zu loggen ... die Zugangsdaten kannst Du (mehr oder weniger) im Quelltext hinterlegen ... Daten kann der Benutzer ja nicht löschen - nur schreiben
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
meinst du damit alle user, die auf mit dem programm arbeiten, auf der datenbank anlegen und mit windows-auth authentifizieren?
jain - ich weis gar nicht ob das mit Java überhaupt funktioniert ... mit C# und MS-SQL geht das so ... hängen alle Rechner in einer Domain, kann man alles easy über den Domaincontroller lösen
 

remy

Aktives Mitglied
naja das programm kommuniziert halt dann mit einem server, den du natürlich noch programmieren musst. der server dann mit der datenbank. ich weiß ja nicht, wie professionell das programm werden soll aber das ist imho der normale weg für sowas.

eine gute Idee, aber das ist doch auch nur ein Umweg?! Letztendlich könnte man die Kommunikation zwischen diesen beiden Programmen aus dem eigentlichen Programm auslesen, ein neues Programm schreiben und damit wieder die DB manipulieren, wenn auch nicht direkt.

Du sollst nicht im Programm eine Benutzerverwaltung ein bauen ... im Programm reicht ein Login-Maske

wenn Du eine Benutzer hast der nur Lesen darf, dann legst Du nur einen Benutzer mit SELECT-Rechten an ... einer der ändern darf, der bekommt noch UPDATE, INSERT & DELETE ... jede vernüftige DB kann die Rechte sogar auf die Spalten verteilen ... außerdem kannst Du noch VIEWs anlegen und dort entsprechend Rechte verteilen ... genau für solche Spielchen gibt es die Benutzerverwaltung in den DBs


Nachtrag: die Benutzerdaten kannst Du natürlich einfach weiter reichen

Nachtrag2: ist ist übrigens sinnvoll eine Nutzer nur mit INSERT-Rechten zur eigene Log-Table anzulegen ... den kannst Du dann nutzen um die Aktionen der Benutzer zu loggen ... die Zugangsdaten kannst Du (mehr oder weniger) im Quelltext hinterlegen ... Daten kann der Benutzer ja nicht löschen - nur schreiben

Dennoch habe ich eine Login-Maske mit Benutzerdaten.

Wie gesagt, am liebsten hätte ich auch eine Lösung, wo sich die Benutzer mit Benutzerdaten, die in der DB hinterlegt sind, anmelden. Sicherheit, Logging, Änderungsverfolgung usw. wären damit gegeben. Das Problem ist, dass das Programm auf Computern in einem Betrieb läuft, auf dem einige Leute rumspielen. Das Programm bietet dem Nutzer eine Eingabemaske mit Feldern, die immer wieder mal geändert werden, eben von diesen Leuten. Das bedeutet, der DB-Account, mit dem das Programm auf die DB zugreift, muss mindestens die Rechte für Inserts und Updates haben. Damit können zwar keine Einträge gelöscht, dafür aber geleert bzw. mit Unsinnsinformationen befüllt werden.

Ein Idee, die mir grade gekommen ist, sind Stored Procedures. Sehr wahrscheinlich werde ich eine MySQL-DB bekommen. Ist es möglich, dass ausschließlich zugewiesene Procedures von einem speziellen Benutzer ausgeführt werden? Damit könnte ich doch verhindern, dass nur Einträge der letzten 24h geändert werden können?!
Edit: noch etwas genauer: der Benutzer darf NUR Procedures ausführen, keine weiteren Aktionen wie z.B. Update. Dabei muss noch bedacht werden, dass die Procedures u.a. Updates enthalten.

Edit 2: sollte ich vielleicht hier im DB-Forum noch mal fragen oder gilt das dann als Cross-Posting?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4
Dit_ Daten vom Server in einer Schleife Java Basics - Anfänger-Themen 4
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
W Netwerkprogrammierung und Http Server Java Basics - Anfänger-Themen 10
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
G sql server connection mit windows authentication Java Basics - Anfänger-Themen 2
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
U Erste Schritte Server will nicht übergebenes Objekt speichern Java Basics - Anfänger-Themen 5
B IP Adresse von Wildfly Server Java Basics - Anfänger-Themen 1
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F String zu einem Server senden Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
T Eclipse - GlassFish Server!? Java Basics - Anfänger-Themen 1
I Java Server Faces mit Glassfish Webseite veröffentlichen Java Basics - Anfänger-Themen 4
M Input/Output tcp-Server mit statischer Parallelität Java Basics - Anfänger-Themen 7
G Multiple Clients and one Server Java Basics - Anfänger-Themen 2
K Java Client > Python Server Java Basics - Anfänger-Themen 0
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
I JDK SERVER -jar stoppen Java Basics - Anfänger-Themen 5
Screen Wie Propertydatei im Server beschreiben? Java Basics - Anfänger-Themen 7
K threaded server Java Basics - Anfänger-Themen 18
E Client Server Java Basics - Anfänger-Themen 12
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
L Chat server Java Basics - Anfänger-Themen 4
O Server Client Problem Java Basics - Anfänger-Themen 2
B Java Server Side Java Basics - Anfänger-Themen 14
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
A Server logs auslesen Java Basics - Anfänger-Themen 6
Z Threads, Server, GUI Java Basics - Anfänger-Themen 4
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
M Java class auf Server starten Java Basics - Anfänger-Themen 5
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
X Applet - Client/Server Java Basics - Anfänger-Themen 2
I Interface Comparable für Server-Item-Interface Java Basics - Anfänger-Themen 12
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
S .Bat Server von .java Starten Java Basics - Anfänger-Themen 5
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
W mehrere clients auf einem server Java Basics - Anfänger-Themen 2
N Applets: Objekte vom Server laden Java Basics - Anfänger-Themen 4
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
V pfad.exists() gilt nicht für "//server/a/xyz.jpg"? Java Basics - Anfänger-Themen 12
F SQL Server aus Umlaute werden Fragezeichen Java Basics - Anfänger-Themen 4
S FTP Server Java Basics - Anfänger-Themen 3
P Application Server Java Basics - Anfänger-Themen 3
B Object an Server senden, Server antwortet mit objekt? Java Basics - Anfänger-Themen 7
C Bilder von Server zu Server kopieren über Webdav(Sardine) Java Basics - Anfänger-Themen 5
H Java-Server mit Browser ansprechen Java Basics - Anfänger-Themen 19
M Standard-Klassen auf Server nicht verfügbar Java Basics - Anfänger-Themen 7
Spin Server Location is not an Sun Java System Application Server 8.2 Java Basics - Anfänger-Themen 2
S In Eclipse relativen Pfad fuer Tomcat Server erstellen..? Java Basics - Anfänger-Themen 3
M Verbindung zu einem Server über Eclipse Java Basics - Anfänger-Themen 6
0 Frage zu Architektur: Server eines kleines Spiels Java Basics - Anfänger-Themen 4
G Sessionüberprüfung funktioniert lokal aber nicht auf dem Server! Java Basics - Anfänger-Themen 12
S Chat-Server Java Basics - Anfänger-Themen 6
S Java Applet - Verbindung zum Eigenen Server Java Basics - Anfänger-Themen 2
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
M Socket Server Java Basics - Anfänger-Themen 9
M Problem: JSP für Zugriff auf Oracle-Server/Datenbank - sinnvoll? Java Basics - Anfänger-Themen 35
B Server-Client mit Thread ausstatten Java Basics - Anfänger-Themen 3
brainray Einfachen RMI Server bei einem Provider zum Laufen bringen Java Basics - Anfänger-Themen 3
brainray Server abbrechen mit CTRL-C Java Basics - Anfänger-Themen 2
H Server & Applet Java Basics - Anfänger-Themen 11
Tandibur Server führt "try-catch" nicht aus Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben