Шифрование в C # Web-сервисах

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

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

Какой-нибудь простой , простой метод шифрования?

20.08.2008 17:55:34
6 ОТВЕТОВ
РЕШЕНИЕ

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

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

8
20.08.2008 18:15:46

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

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

0
20.08.2008 17:58:43

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

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

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

1
21.08.2008 00:16:26

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

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

0
20.08.2008 18:18:38

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

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

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

2
11.09.2008 03:01:05

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

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

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

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

0
21.04.2009 20:00:02