Paweł Korba

Paweł Korba Webdeveloper php

Temat: Serializacja/deserializacja obiektu z szyfrowaniem

Witam,

Serializuję i deserializuję obiekt pomiędzy klientem a serwerem. Chciałbym, żeby taka komunikacja była zaszyfrowana. Przekopując google w poszukiwaniu metody, znalazłem jedynie propozycję zastosowania CryptoStream i symetrycznego algorytmu szyfrującego.
Wygląda to tak:

//Client
Stream netStream = new NetworkStream(clientSocket);
IFormatter formatter = new BinaryFormatter();

ModulesManager modulesManager = new ModulesManager(ModulesIDs);
SymmetricAlgorithm cryptoRijn = SymmetricAlgorithm.Create();

byte[] key = new byte[] { 59, 143, 214, 60, 47, 87, 179, 23, 132, 191, 193, 0, 114, 141, 184, 101, 199, 1, 74, 227, 90, 186, 98, 233, 197, 75, 12, 35, 74, 32, 15, 221 };
byte[] iv = new byte[] { 170, 138, 2, 4, 63, 237, 140, 87, 212, 195, 20, 40, 19, 180, 204, 252 };

CryptoStream cryptoStream = new CryptoStream(netStream, cryptoRijn.CreateEncryptor(key, iv), CryptoStreamMode.Write);

formatter.Serialize(cryptoStream, modulesManager);
cryptoStream.FlushFinalBlock();
cryptoStream.Flush();
cryptoStream.Close();

//Server

byte[] key = new byte[] { 59, 143, 214, 60, 47, 87, 179, 23, 132, 191, 193, 0, 114, 141, 184, 101, 199, 1, 74, 227, 90, 186, 98, 233, 197, 75, 12, 35, 74, 32, 15, 221 };
byte[] iv = new byte[] { 170, 138, 2, 4, 63, 237, 140, 87, 212, 195, 20, 40, 19, 180, 204, 252 };

IFormatter formatter = new BinaryFormatter();
SymmetricAlgorithm cryptoRijn = SymmetricAlgorithm.Create();
CryptoStream cryptoStream = new CryptoStream(networkStream, cryptoRijn.CreateDecryptor(key,iv), CryptoStreamMode.Read);
ModulesManager modulesManager = (ModulesManager)formatter.Deserialize(cryptoStream);


Niestety podczas deserializacji program zastyga w bezruchu, aż zamknie mu się połączenie socketowe i wywali błąd.
Znalazłem info, jakoby (nie zagłębiając się w szczegóły) CryptoStream nie chce zbytnio gadać z NetworkStream.

Czy ma ktoś pomysł, jakby to ugryźć z innej strony? Może jest sposób, żeby zaszyfrować całą komunikację klient-serwer?

Będę wdzięczny za pomoc.

Pozdrawiam,
Paweł

konto usunięte

Temat: Serializacja/deserializacja obiektu z szyfrowaniem

A nie prościej otworzyć tunel po SSL?

http://msdn.microsoft.com/en-us/library/system.net.sec...

Wówczas cała transmisja będzie szyfrowana.Łukasz Byczyński edytował(a) ten post dnia 24.07.09 o godzinie 08:55

konto usunięte

Temat: Serializacja/deserializacja obiektu z szyfrowaniem

WCF tez ma wsparcie dla polaczen szyfrowanych.
Musisz po prostu troche pogrzebac

Następna dyskusja:

XML deserializacja dla klas...




Wyślij zaproszenie do