Verschlüsselte tcp-channel mit .NET 2?

Zorck

Erfahrenes Mitglied
Hallo alle miteinander,
ich habe eine Client-Server Applikation, die mit Remoting über tcp-channel läuft.
Jetzt wollte ich das ganze von .NET 1.1 nach .NET 2.0 portieren um diese Kommunkikation verschlüsselt laufen zu lassen.

Entweder ich stell mich nur zu blöd an, oder es gibt wirklich keine gute Dokumentation dazu.
Kann mir vielleicht von euch irgendwer helfen? Links oder auch eine kurze Beschreibung wären sehr hilfreich. Ich möchte den ganzen Spaß "nur" verschlüsseln, der Rest ist erstmal unwichtig, wie stell ich das also am besten/schnellsten/einfachsten an?

Danke schonmal für eure Hilfe! :rolleyes:

Bis dann,
David
 
Wie verschlüsseln? Symmetrisch, sprich auf beiden Seiten wird der gleiche Schlüssel verwendet, oder asymmetrisch (private und public key)?

Für beides gibt es entsprechende Klassen im .NET Framework. Zu empfehlen wäre auch Diffie Hellman, da es sich dabei um eine Schlüsselaustasch-Verfahren handelt. Nach Erstellung des Schlüssels kann dann recht einfach verschlüsselt werden

Für Diffie Hellman gibts ganz gute und kostenlose Libraries. Guck mal auf mentalis.org, darauf ist eine C# Library zu finden.
 
Danke für die schnelle Antwort.
Ich dachte, dass die Verschlüsselung bei .NET 2.0 jetzt direkt mit in den TCP-Channels implementiert ist. Dazu gibt es doch die Flagvariable secure. Und dann noch das ProtectionLevel. Oder hab ich da was falsch verstanden?!

Gruß,
David
 
Hab ich noch nicht verwendet und mir nichtmal noch angesehen. Verlasse mich eher auf Algorithmen, die wirklich funktionieren ;-)

Soweit ich das überblickt habe, musst du da einfach nur Credentials angeben. Diese werden für die Anmeldung bzw. Verschlüsselung herangezogen. Müsste im Hintergrund also mit der CryptDataAPI von Windows arbeiten. Bin mir da aber nich ganz sicher.

Ein Beispiel findest du unter http://msdn2.microsoft.com/en-us/library/system.net.security.protectionlevel.aspx. Muss natürlich auf beiden Seiten, also Client und Server, implementiert werden - sonst verstehen sich die beiden klarerweise nicht.

Wenn du IsSecured einfach nur auf true stellst (beim Server und beim Client) wird vermutlich noch keine Verschlüsselung passieren. Kannst du aber testen, indem du einen Sniffer den Datentransfer aufzeichnen läßt.
 

Neue Beiträge

Zurück