Шифры VB.NET для клиентов веб-служб

У меня есть приложение VB.NET 4.5 на Windows Server 2008 R2, которое должно подключаться к одному из наших других внутренних приложений на сервере Tomcat через TLSv1.2. Согласно нашим проверкам безопасности и конфигурации сервера (при подготовке к PCI), мы можем использовать только эти шифры на этом сервере:

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Я как обычно сгенерировал класс обслуживания из WSDL, но запись Wireshark не перечисляет ни один из этих шифров в качестве опции.

Мои вопросы:

  1. Какую библиотеку использует Microsoft.NET «за кулисами» для TLS-подключений? Например, он все еще использует SChannel?
  2. Есть ли способ включить / установить новые шифры для использования VB.NET?

Если он использует SChannel, может быть, я могу внести некоторые изменения в реестр, чтобы заставить его работать ...? Или возможно, что эти шифры просто недоступны в Windows Server 2008 R2?

Заранее спасибо!


person boonebytes    schedule 13.01.2016    source источник


Ответы (1)


.NET поддерживает их, но по умолчанию реализация .NET TLS использует только SSLv3 / TLSv1 и не предлагает этих шифров.

Чтобы включить TLSv1.1 и TLSv1.2 (не уверен, какой из них действительно активировал эти шифры), используйте:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

Это включит TLSv1.1 + (и в процессе отключает SSLv3), и .NET должна начать предлагать TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.

Ваше здоровье

person Lukas Tines    schedule 27.01.2016