Portal > Foren > Java > Allgemeine Java-Programmierung > Server - Client: Befehle und Identifizierung
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 08.08.2006, 17:34 Nach oben    #1
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard Server - Client: Befehle und Identifizierung

Aloah
Ich denke grade über ein Server/Client-System nach und hab da ein paar Fragen:

1. Wie kann ich sicher gehen, dass nur Daten von authorisierten Clients (also die von mir programmierten) vom Server verarbeitet werden? Diverse "Authkeys" könnten durch Clientdecompilierung ja herausgefunden werden...

2. Datenüberprüfung nur Serverseitig sinnvoll? Oder auch vom Client? Ich weiß ja nicht ob ein Client gehackt wurde, dann wäre die Validierung vom Client ausgeschaltet und der Server und das System angreifbar.

3. Wie kann ich dem Server Befehle und Daten übermitteln? Also sollte ich das im Klartext machen? Binärdaten vielleicht?
Also praktisch hab ich schon einen Server/Client-System welches miteinander kommunizieren kann, aber ich weiß nicht wie ich dem Server klar machen soll, dass er beim String "Update all" zwischen Befehl und nen String für ne Usereingabe unterscheiden soll. Soll ich Separatoren benutzen? Wenn ja dann muss ich diesen Separator ja aus alles Strings elimieren können oder durch ne Art BBCode ersetzen.

Irgendwie bin ich verwirrt.
Kann mal jemand sagen wie er es gemacht hat/machen würde?

Besten Dank im Vorraus
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.08.2006, 19:06 Nach oben    #2
Erfahrener Benutzer
 
Benutzerbild von JumperII
 
Registriert seit: 27.02.2006
Beiträge: 159
Standard

Ohhh, jetzt wirds kompliziert, also
1) Grundsätzlich kannst Du es nicht verhindern, dass Programme, die außerhalb Deiner Verfügungsgewalt gesetzt werden, manipuliert und analysiert werden. Demnach kannst Du auch grundsätzlich nicht verhindern, dass ein nicht authorisierter Client auf deinen Server zugreift. Allerdings kannst Du mehr oder minder unterschiedlich hohe Hürden vorsehen, jenachdem, wie hoch Du den Aufwand treibst und was Du tatsächlich erreichen willst.

a) Die Client-Software wird grundsätzlich vom Server ausgeliefert. Dabei wird online ein temporärer Schlüssel gerechnet und eingefügt, mit dem eine verschlüsselte Initialverbindung zum Server innerhalb eines definierten Zeitraums möglich ist.
b) wie a), wobei nur eine Start-Software so gesichert wird. Diese kann dann mit der Überprüfung lokal liegender Komponenten (Signatur und CRC32 z.B.) gegen die Daten auf dem Server verifizieren und erst dann die entsprechenden Softwarekomponenten nachladen. Dabei bleibt die verschlüsselte Kommunikation erhalten.
c) Du authorisierst den Nutzer statt die Software per alternativen Schlüsselgenerierung (so ein netter Schlüsselanhänger, der zeitabhängig einen Code-Teil zur verfügung stellt) oder per SMS mit Zeitfenster, oder ....
d) Du legst einen zu verwendenden Sicherheitsschlüssel auf einen USB-Stick oder SmartCard ab und sicherst damit (Code und/oder Dongle)
e) Du unterlässt es, Client-Programme zur Verfügung zu stellen.

2) Nunja ... Auf dem Client brauchst Du einen vertrauenswürdigen Code für die Validierung. Dieser muss entweder direkt vom Server kommen und gegen das hacken durch eine Zeit- und Komplexitätskomponente geschützt sein, so dass der Hacker nicht genügend Zeit hat, den Angriff auf die gesicherte Datei erfolgreich durchzuführen. Alles andere ist Makulatur .... Serverseitig ist man von den Daten des Clients abhängig.

3) Kommt darauf an, wass Du eigentlich machen willst und welche Rahmenbedingungen gelten. Im Zweifelsfall empfehle ich eine gesicherte Verbindung (SSL/HTTPS) und ein Standard-Format wie XML ... Aber Du kannst auch gerne dein ganz eigens Format entwickeln .... typisch sind Sonderzeichen als Einleitungen für Befehle, z.B. @, . (Punkt), %, !, $, &, /, = (habe ich irgendwo schon mal gesehen), :, ...
Da sinfd Dir keine Grenzen gesetzt. Als Separatoren empfehle ich nach wie vor Leerzeichen, wenn Du nicht gleich eine ganze Grammatik als eigene Script-Sprache schreiben willst.

Gruß,
Jumper, the II.

PS: Wenn Du mit Deiner Idee rauskommst, kann man es vielleicht etwas präzisieren .... ggf. auch per PN oder ICQ (hab GAIM mit verschlüsselungs-Plugin für alle Paranoier-Fälle -)

Geändert von JumperII (08.08.2006 um 19:09 Uhr)
JumperII ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.08.2006, 19:19 Nach oben    #3
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Zitat:
a) Die Client-Software wird grundsätzlich vom Server ausgeliefert. Dabei wird online ein temporärer Schlüssel gerechnet und eingefügt, mit dem eine verschlüsselte Initialverbindung zum Server innerhalb eines definierten Zeitraums möglich ist.
Da ich nicht mit Applets arbeite sondern mit einem richtigen Programm als Client kann ich den temporären Schlüssel nur via Webseite und Login realisieren. Aber interessante Sache.
Zitat:
b) wie a), wobei nur eine Start-Software so gesichert wird. Diese kann dann mit der Überprüfung lokal liegender Komponenten (Signatur und CRC32 z.B.) gegen die Daten auf dem Server verifizieren und erst dann die entsprechenden Softwarekomponenten nachladen. Dabei bleibt die verschlüsselte Kommunikation erhalten.
Sehr interessante Sache. Klingt aber kompliziert

zu 2.
Also alles Serverseitig...

zu 3.
Wie darf ich mir den Versand von XML-Format vorstellen? (hab noch nie damit gearbeitet), letzlich wird doch dann nur XML generiert und als String versendet richtig?
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.08.2006, 20:09 Nach oben    #4
Erfahrener Benutzer
 
Benutzerbild von JumperII
 
Registriert seit: 27.02.2006
Beiträge: 159
Standard

Letztendlich versendest Du doch nur Bytes ... alles andere ist eine höhere Abstraktion Aber wenn Du es so sehen willst, sind es Strings .... und eine Aneinanderreihung von Strings mit Zeilenvorschub und passender Inhaltsbeschreibung ist dann z.B. ein im xml-Format beschriebener Aufruf, den Server zu rebooten Aber gut erkannt ... XML -> einfaches String-Handling, danach erst die Auswertung


Gruß,
Jumper, the II.
JumperII ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache kann nicht gestartet werden. Jan Tools, Server, Betriebssysteme 11 23.11.2006 09:26
MySQL 5.1 kommt in die Beta-Phase Ben Nachrichten 1 02.03.2006 14:31
Netzwerk / Thread syncronisieren sparrow Allgemeine Java-Programmierung 4 16.11.2005 21:11
ftp client WurstBrot Allgemeine Java-Programmierung 7 05.09.2005 07:47


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45