Как проверить, использует ли приложение толстого клиента на основе WPF безопасность транспортного уровня (TLS) или нет

У нас есть настольное толстое клиентское приложение на базе Windows с внешним интерфейсом, построенным на основе WPF + Telerik, и внутренней связью с использованием веб-служб WCF.

Прямо сейчас связь происходит через SSL3.0

Из-за недавних проблем с безопасностью SSL3.0 было решено использовать TLS 1.2 или TLS 1.1 на стороне сервера, чтобы обеспечить связь только через TLS.

Мы попытались проверить связь базовой веб-службы с помощью Fiddler и Wireshark. Мы видим, что 200 запросов «Tunnel to» выполняются через TLS.

Но есть ли другой способ перепроверить, используется ли TLS явно или неявно приложением ThickClient для запросов WebService...?

Windows выпустила исправление TLS в Центре обновления Windows от 15 декабря 2014 года, и оно установлено на серверах приложений Windows 2008 R2. SSL3.0 еще не отключен в качестве резервного варианта, но явно TLS не включен. Но в статьях MS KB говорится, что TLS будет иметь приоритет (TLS1.2>TLS1.1>TLS1.0>SSL3.0)

Обновление безопасности (статья базы знаний KB2992611, за которой следует другое обновление KB3018238) было отправлено 9 декабря 2014 г., и то же самое было установлено с помощью ежемесячного исправления HP 15 декабря 2014 г. влияние. Официальные обновления Microsoft для исправления уязвимости SSLv3.0 https://support2.microsoft.com/kb/2992611/en-us Ссылка 2: technet.microsoft.com/en-us/library/security/ms14-066.aspx

Дополнительные сведения о поддержке TLS Link3: blogs.msdn.com/b/kaushal/archive/2011/10/02/support-for-ssl-tls-protocols-on-windows.aspx

Проблемы, выявленные с помощью первоначального исправления KB2992611 и немедленного исправления через KB3018238 Link4 infoworld.com/article/2848574/operating-systems/microsoft-botches-kb-2992611-schannel-patch-tls-alert-code-40-slow-sql-server- блок-iis-sites.html


person Murali Krishna Chaturvedi    schedule 13.02.2015    source источник


Ответы (1)


Если вы намерены проверить, включен ли TLS на сервере/может ли быть согласовано, то вы можете написать некоторый тестовый код с TcpClient и SSLStream, чтобы принудительно согласовать TLS, и посмотреть, действительно ли это было согласовано. Видеть:

Если вы хотите предотвратить откат SSL для всех запросов «https», выдаваемых любым кодом .NET, установите его, используя это:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

Примечание. Применяет его к AppDomain, и это повлияет на любой HttpWebRequests, выполненный в том же AppDomain.

Если вы хотите получить более явный/расширенный контроль над стеком каналов WCF, который используется для связи с сервером (чтобы вы могли принудительно использовать только безопасность транспортного уровня TLS), вы можете написать свой собственный файл StreamUpgradeProvider.

(Я «думаю», что вы бы установили свой собственный Stream, который использует TLS с помощью TcpClient и SSlStream... а затем вы бы обновили канал, чтобы использовать его... (может быть, это неправильно).... или это вы оборачиваете Stream данный вам в апгрейде SSlStream)

person Colin Smith    schedule 13.02.2015