Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

Вы можете использовать шифрование параметров в C #, используя Систему.Безопасность.Расширение криптографии.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top