Login schützen...

Status
Nicht offen für weitere Antworten.

ddeldip

Mitglied
Hallo,
ich hab nen Programm geschrieben was auf ne Datenbank zu greift und sich deshalt darauf einloggt. Dazu habe ich die logindaten private static void in der mainmethode deklariert weil ich öffter in anderen classen des Programmes darauf zugreife. Mein Problem is nun die Sicherheit, da man mit nem Decompiler soffort an die Daten kommt.
Habt ihr ne Idee wie man das lösen könnte?
 
Ich hab mir überlegt die daten zu ver-und entschlüsseln nur das Problem dabei wäre ja auch wieder die Decomperlierbarkeit. Deshalb hab ich mir überlegt ob ich in c++ nen verschlüsselungsalgorithmus schreibe und den dann in java aufrufe. Das Programm wird nur unter Windows laufen (mit der Außnahme, dass ich mac os x zum programmieren benutze) und C++ code kann windows doch direct ausführen oder? Und kann man die auch decompilen?
 
Ändert überhaupt nichts. Verschlüsselung nützt nichts, andere Sprachen nützen nichts, es ist nicht lösbar.
Auch wenn das nicht schwierig ist, braucht man nichtmal zu dekompilieren. Einfach den Netzwerk Traffic sniffen, da stehen die Daten sowieso drin.
 
Die nutzer sind für höchstens 15 min am client und die Gefahr besteht quasi nur darin, dass sie die jar Datei kopieren und Zuhause Probieren an die login daten zu kommen. Es ist unwarscheinlich, dass jemand nen Netzwerk sniffer dabei hat.
 
das gibs doch nicht... Man kann auch mit keiner anderen Programmier sprache verschlüsselt auf ne DB zu greifen? Das kann doch nicht sein dass es unmöglich ist nen sicher DB eintrag vorzunehmen...
 
einzige Möglichkeit wär en Server, der die Anfragen an die Datenbank weiterleitet und vorher Kontrollen durchführt
 
das gibs doch nicht... Man kann auch mit keiner anderen Programmier sprache verschlüsselt auf ne DB zu greifen? Das kann doch nicht sein dass es unmöglich ist nen sicher DB eintrag vorzunehmen...
Dein Programm hat die gleichen Rechte die der User hat. Kann der User das Programm ausführen und das Programm kennt die Login Daten für eine Datenbank, dann kennt sie auch der User, so einfach ist die Sache.
Du kannst einen Schlüssel mehr, oder weniger gut unter einer Fußmatte verstecken, aber entscheidend ist, das er vorhanden sein muss bevor man ihn benutzen kann.
 
z.b. ob die abfragen erlaubt sich. Du fragst dann z.b. beim Server alle User ab. Schickst also keine sql Komandos mehr an den server sondern nur anfragen zu daten die der Client bekommen soll. Wenn du dann noch die ip des client überprüftst, kann mit dem jar file keiner was anfangen.
 
@Wildcard: du hast leider vollkommen recht...

@Chumax: jo das hatte ich mir auch überlegt nen clent der quasi nur ne nachricht an den server schickt und der server führt dann dem ensprechend die sql abfrage an der db durch. Damit wär aber immernoch das Problem mit dem sniffer...oder hätte sich das erledigt wenn der server und die db auf einem rechner sind?
 
Egal ob Server und DB auf dem gleichen Rechner sind, oder nicht, die Kommunikation kann verschlüsselt erfolgen und ist dann auch sicher.

Es gibt immer mindestens drei Möglichkeiten:
1. Du hinterlegst DB Credentials direkt im Programm, allerdings sind die Rechte des Datenbank Users so geschnitten das kein Schaden entstehen kann
2. Der User muss die Credentials selbst eintragen (hat also die Rechte)
3. Auf dem Host läuft ein Server Programm und der Client weiß gar nicht das eine Datenbank überhaupt existiert (auch hier braucht man allerdings oft eine Rechteverwaltung).
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben