Подтвердить что ты не робот

Шифрование в веб-службах С#

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

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

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

4b9b3361

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

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

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