Удаленное взаимодействие .NET через SSL с TCPChannel

Мне нужно защитить удаленное взаимодействие .NET с помощью SSL. Я использую TCPChannel и не могу переключиться на HTTPChannel и использовать IIS для добавления SSL.

Итак, что я понял, мне нужно создать свой собственный Sink, который будет шифровать потоки, идущие на/с клиента/сервера. Для этого я нашел хорошую статью в MSDN: http://msdn.microsoft.com/en-us/magazine/cc300447.aspx. Тем не менее, эта статья разрабатывает крипту, рукопожатие и т. д.

Я не хочу «изобретать велосипед». Боюсь ошибиться при самостоятельной разработке этой логики. Я бы предпочел использовать какую-нибудь реализацию SSL (например, SslStream или OpenSSL), которая сделает это за меня.

Могу ли я использовать SslStream или OpenSSL в .NET Remoting с TCPChannel? Не могли бы вы предложить простое использование?

Спасибо за помощь.


person user3686747    schedule 29.05.2014    source источник


Ответы (1)


Подумайте о переходе на WCF.

В качестве альтернативы удаленное взаимодействие должно иметь возможность выполнять эквивалент использования WCF с ClientCredentialType имеет значение Windows, если вы укажете secure='true' в конфигурации удаленного взаимодействия как на стороне клиента, так и на стороне сервера. TcpChannel начнет использовать SSL для шифрования связи, используя учетные данные пользователя для ключевого материала. На стороне клиента это также подразумевает настройку tokenImpersonationLevel='identify', что означает, что сервер не будет олицетворять учетную запись пользователя, под которой работает клиент, но будет знать, кто к нему подключился (при условии, что клиент и сервер работают в одном и том же домен AD). Из соображений производительности установите useAuthenticatedConnectionSharing на true на стороне клиента.

person Jirka Hanika    schedule 30.05.2014