Обмен симметричных ключей - PullRequest
0 голосов
/ 21 июня 2011

У меня есть клиент WinForms, который отправляет зашифрованные данные в веб-службу. Клиент WinForms создает Symmetric RijndaelManaged sessionKey, а также имеет «жестко закодированный асимметричный открытый ключ RSA».

Я использую класс EncryptedXml, который упрощает упаковку моих данных.

Веб-служба имеет закрытый и открытый ключи, жестко закодированные, и может успешно расшифровать SessionKey, а затем использовать его для расшифровки фактических данных, которые я отправляю.

Это в значительной степени автоматически обрабатывается классом EncryptedData.

Проблема, с которой я сталкиваюсь, заключается в том, что на конце веб-службы, когда я хочу ответить, я не могу понять, как получить SessionKey, который был отправлен.

Перед тем как выполнить расшифровку на стороне веб-службы, я вижу зашифрованный сеансовый ключ, но после расшифровки XML он исчезает (и поэтому у меня нет сессионных ключей для моего ответа).

Есть идеи, как мне получить этот незашифрованный ключ?

1 Ответ

0 голосов
/ 22 июня 2011

Причина, по которой вы не видите ключ сеанса, заключается в том, что он автоматически расшифровывается и используется. Обычно это считается частью XML. Если вы хотите получить это, просто используйте

encryptedxml.decryptencryptedkey

И с тобой должно быть все в порядке. Обратите внимание, что для всех менее важных предупреждений безопасности код, представленный здесь, уязвим как для атак посредников, так и в меньшей степени для дополнения атак оракулом. Это должно помочь против большинства попыток подслушивания.

Наконец, повторное использование сеансового ключа также считается довольно плохой практикой безопасности. Если вы используете его повторно, хотя бы подумайте об использовании IV, например счетчик для каждого последующего сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...