Шифрование в C # Web-сервисах - PullRequest
17 голосов
/ 20 августа 2008

Я ищу простой способ шифрования моих мыльных сообщений в моем веб-сервисе C #.

Я изучал WSE 3.0 , но, похоже, Microsoft отказалась от его поддержки, и поэтому использовать его не просто.
Кажется, WCF мог бы быть вариантом, но я предпочитаю не обновлять .NET 2.0.

Любой простой , простой метод шифрования?

Ответы [ 6 ]

8 голосов
/ 20 августа 2008

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

Создание пользовательских расширений SOAP - расширение сжатия

2 голосов
/ 11 сентября 2008

Все, что вы делаете для обеспечения «шифрования» без использования SSL / TLS, может быть уязвимым. Теперь вы должны спросить себя, стоит ли тратить часы на разработку, которые вы могли бы потратить на функции, связанные с мерой безопасности "каучук-курица"? Может быть, это так.

.NET API, такие как DPAPI и Win32 crypt32 API, упрощают шифрование больших двоичных данных с помощью статических ключей. Но как ваши клиенты получат ключи? Любой установленный клиент SOAP должен будет либо сжечь ключ в своей конфигурации, либо получить его через небезопасный Интернет.

Это проблема, которую SSL / TLS решает для вас; Танец, который вы делаете с сертификатами TLS, - это то, что решает проблему передачи открытых ключей по ненадежным каналам.

1 голос
/ 20 августа 2008

Возможно, я наивен, но заставляя сообщение быть через https приемлемо? Я занимаюсь веб сервисы, которые работают на 2.0 и имели успех только с получением IIS применять https на виртуальном каталог.

Это был бы самый простой путь возможно, но, к сожалению, я не иметь контроль над IIS конфигурация, и не может гарантировать что он может работать https.

В таком случае, возможно, лучшим вариантом будет либо зашифровать отдельные части сообщений SOAP (в конце концов, вам может не понадобиться шифровать все сообщение - только определенные конфиденциальные поля?), Либо вы могли бы выберите использование HttpModule для перехвата всех сообщений и работы с содержимым. В любом случае вам, вероятно, придется предоставлять собственные прокси.

0 голосов
/ 22 апреля 2009

Вы можете использовать шифрование параметров в C # с помощью расширения System.Security.Cryptography.

Шифрование ваших параметров и их дешифрование будет сложнее, но намного безопаснее.

Как: шифровать и дешифровать данные с помощью симметричного (Rijndael) ключа (C # / VB.NET)

Я использую этот подход для веб-службы OTP (одноразовый пароль), и он прекрасно работает для меня.

0 голосов
/ 20 августа 2008

Мы фактически используем WSE 3.0 в наших веб-сервисах, которые были изначально разработаны до WCF. В целях безопасности мы используем систему на основе токенов SAML, построенную на классах криптографии в System.Security.

Работает очень хорошо. Однако этот метод ни в коем случае не является «простым».

0 голосов
/ 20 августа 2008

Возможно, я наивен, но будет ли принуждение к общению через https приемлемым? Я разрабатываю веб-сервисы, которые работают на 2.0 и добились успеха, просто получив IIS для принудительного применения https в виртуальном каталоге.

В качестве альтернативы или в дополнение вы можете проверить свойство HttpRequest.IsSecureConnection .

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