![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
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 |
| | |
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 27.02.2006
Beiträge: 159
|
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) |
| | |
| | Nach oben #3 | ||
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
| Zitat:
Zitat:
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 | ||
| | |
| | Nach oben #4 |
| Erfahrener Benutzer Registriert seit: 27.02.2006
Beiträge: 159
|
Letztendlich versendest Du doch nur Bytes ... alles andere ist eine höhere Abstraktion Gruß, Jumper, the II. |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ä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 |