# Wie am besten umetzen



## seux (17. Okt 2012)

Hallo zusammen,
folgendes Szenarion: Es existiert ein Server, auf dem sich mehrere Clienten anmelden können. Die Clienten stellen anfragen und der Server schickt die daten in Form von Objekten, Listen, primitiven Datentypen zurück. Die übertragung soll verschlüsselt sein(ich glaub es war ssl).

Meine frage dazu wäre jetzt, wie das ganz gut realisiert werden könnte. Ließe sich das auch mit RMI lösen. Gerade im Bezug auf die Verschlüsselung und die Mehrbenutzerfähigkeit? 

Oder mit JSON?

gruß seux


----------



## Bernd Hohmann (17. Okt 2012)

seux hat gesagt.:


> Es existiert ein Server, auf dem sich mehrere Clienten anmelden können. Die Clienten stellen anfragen und der Server schickt die daten in Form von Objekten, Listen, primitiven Datentypen zurück. Die übertragung soll verschlüsselt sein(ich glaub es war ssl).



Die Anforderung ist recht eindeutig: die Daten am besten in einen Container stecken und via ObjectOutputStream in irgendeinen SSL-Stream zur Gegenseite übertragen.

Bei SSL-Streams bin ich allerdings (was die konkrete Implementation angeht) völlig überfragt, vielleicht kann ein Kollege hier auf den Zug aufspringen.

Bernd


----------



## Spacerat (17. Okt 2012)

SSL funktioniert nur P2P. Das liegt daran, dass beide Beteiligten jeweils 2 Puffer benötigen die nur blockweise übertragen werden. Für einen Server würde das bedeuten, dass er 2 Puffer pro Client verwalten müsste. Wenn sich Clienten auch noch über einen Server unterhalten wollten müsste der Server die Puffer eines Clienten ständig entschlüsseln um sie mit dem Schlüssel eines anderen wieder zu verschlüsseln. Der Server sollte also nur als Login- und Vermittlungsserver fungieren und dazu Client-IDs mit öffentlichen Schlüsseln angemeldeter Clienten verwalten. Clienten können so ihre Pakete mit einer ZielID versehen an den Server schicken, der diese dann entsprechend weiterleitet. Alternativ verbindet der Server die beiden Clienten direkt.
Da man im Netzwerbereich ohnehin gut daran tut, Pipes zu verwenden, kann man da auch gleich die Verschlüsselung recht simpel mit "java.security" unterbringen.


----------

