【问题标题】:How to Check if a WPF based Thick Client application uses Transport Layer Security(TLS) or not如何检查基于 WPF 的胖客户端应用程序是否使用传输层安全性 (TLS)
【发布时间】:2015-02-13 15:08:10
【问题描述】:

我们有一个基于 Windows 的桌面胖客户端应用程序,前端基于 WPF+Telerik 构建,后端通信使用 WCF Web 服务。

现在通信是通过 SSL3.0 进行的

由于 SSL3.0 最近的安全问题,已决定在服务器端使用 TLS 1.2 或 TLS 1.1 来强制所有通信仅通过 TLS。

我们已尝试使用 Fiddler 和 Wireshark 验证底层 Web 服务通信。我们可以看到 200 个“Tunnel to”请求是通过 TLS 发生的。

但是有没有其他方法可以交叉检查 TLS 是否被ThickClient 应用程序显式和隐式地用于 Web 服务请求...?

Windows 已在 2014 年 12 月 15 日 Windows 更新中推送了 TLS 修补程序,并且该修补程序已安装在 Windows 2008 R2 应用服务器上。 SSL3.0 尚未作为后备选项禁用,但未明确启用 TLS。但是 MS 知识库文章说 TLS 将优先(TLS1.2>TLS1.1>TLS1.0>SSL3.0)

安全更新(知识库文章 KB2992611,随后是另一个更新 KB3018238)于 2014 年 12 月 9 日推送,并且已于 2014 年 12 月 15 日通过 HP 每月补丁安装 
请查看以下链接以获取有关安全补丁及其影响的更多详细信息。 微软官方更新 SSLv3.0 漏洞补丁 https://support2.microsoft.com/kb/2992611/en-us 链接 2:technet.microsoft.com/en-us/library/security/ms14-066.aspx

有关支持 TLS 的更多信息 链接3: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-block-iis-sites.html

【问题讨论】:

    标签: wpf wcf ssl poodle-attack


    【解决方案1】:

    如果您的目的是测试是否已在服务器上启用 TLS/是否可以协商,那么您可以使用 TcpClient 和 SSLStream 编写一些探测代码来强制协商 TLS,并查看它是否实际上已协商.见:

    如果您想阻止任何 .NET 代码发出的所有“https”请求的 SSL 回退,请使用以下设置:

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

    注意:将其应用于AppDomain,因此会影响在同一 AppDomain 中完成的任何HttpWebRequests。

    如果您想更明确/高级地控制用于与服务器通信的 WCF 通道堆栈(因此您可以强制只使用 TLS 传输级别安全性),那么您可以编写自己的 StreamUpgradeProvider。

    (我“认为”您将通过使用TcpClient 和SSlStream 来建立自己的Stream 使用TLS...然后您将进行频道升级以使用它...(可能是错了)....或者是您将升级中提供给您的Stream包装为SSlStream)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多