Socket Nachstellen der Verbindung

Diskutiere Nachstellen der Verbindung im Netzwerkprogrammierung Bereich.
IAmFloppy

IAmFloppy

Hey!

wie jeder weiß, sollte man seine Datenbank Logindaten niemals hardcoren. Zumindest nicht, wenn z.B die Applikation später veröffentlicht wird.
Deswegen hatte ich vor, das ganze mit Client und Server zu regeln. Der Server ist auf meinem Rootserver. Die Clients sind die Anwender des Programms.
Ich hatte vor, dass der Client dem Server eine Nachicht sendet (z.B "Erstelle User "Bob" in der Datenbank".
Der Server erstellt dann den User in der Datenbank und sendet dem Client ein "Ok!" zurück. Somit wäre die MySQL-Datenbank abgekapselt.
Das funktioniert ja auch soweit. Das Problem ist, dass jemand die Applikation dekompilieren könnte und meine Socketverbindung zum Server einfach kopiert und sie dann nachstellt.
Der Server weiß ja nicht, ob der Client jetzt von meinem Programm ist, oder nur nachgestellt wurde.
Theoretisch könnte der "Angreifer" dann einfach ganz viele User in der Datenbank erstellen/löschen oder ihre Daten bekommen.

Weiß jemand, wie man machen könnte, dass der Server das ganze unterscheiden könnte? Oder habt ihr sonstige Lösungsvorschläge. Mir fällt leider nichts ein.

Mit freundlichen Grüßen
IAmFloppy
 
H

httpdigest

Das funktioniert nur über:
1. Was der Benutzer weiß (z.B. Passwort, welches du ihm gibst)
2. Was der Benutzer hat (z.B. OneTimePassword-Generator wie etwa Google Authenticator)

Im ersten Fall musst du dem Benutzer über einen vertrauenswürdigen/sicheren Kanal das Passwort zukommen lassen, bzw. im zweiten Fall den QR-Code.
Das heißt, ein Benutzer muss sich immer erst gegen deinen Server authentisieren und die Informationen, die er dazu benötigt, dürfen nicht im Client vorhanden sein.
 
IAmFloppy

IAmFloppy

Im ersten Fall musst du dem Benutzer über einen vertrauenswürdigen/sicheren Kanal das Passwort zukommen lassen, bzw. im zweiten Fall den QR-Code.
Das heißt, ein Benutzer muss sich immer erst gegen deinen Server authentisieren und die Informationen, die er dazu benötigt, dürfen nicht im Client vorhanden sein.
Wie könnte man diese Authentifizierung machen?
 
H

httpdigest

Naja... im einfachsten Fall, wenn du kein Man-In-The-Middle oder einfaches Abhorchen/Eaves-Dropping fürchten musst, sende einfach das Passwort, was der User eingegeben hat, an den Server und prüfe im Server, ob das Passwort (für diesen User) korrekt ist. Wenn du eine sichere Verbindung brauchst, dann nimm eine TLS/SSL Verbindung. Siehe
SSLSocketFactory.
 
IAmFloppy

IAmFloppy

Ich glaube du hast mein Problem falsch verstanden.
Es könnte doch sein, dass jemand meine Client Applikation decompiled und nen eigenen "Client" macht und den zu meinem Server verbindet. Dann könnte er ja alles mögliche an den Server senden, da der Server nicht weiß, ob der Client nachgestellt ist, oder nicht
 
mrBrown

mrBrown

Feststellen, von welcher Art Client (zb deine Anwendung, böser Hacker der deine Anwendung dekompiliert hat, ...) der Request kommt, kannst du nicht feststellen. Für den Server sollte das daher auch völlig egal sein.
 
Thema: 

Nachstellen der Verbindung

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben