带有.NET Framework 4.5的TLS 1.2的WCF客户端绑定配置

时间:2018-01-29 07:43:39

标签: .net wcf tls1.2

.NET framework 4.5支持TLS 1.2,但不是默认的。这意味着WCF Web服务客户端无法连接到需要TLS 1.2的端点(并且它应该要求1.2 - 早期版本不安全)如果不采取任何措施来使框架使用TLS 1.2。

我找到了提供可行解决方案的相关问题(例如WCF Client in .NET 4.5.1: How to enable TLS 1.2 when WebRequest is used?)的答案,但我的问题具体是:

是否可以在WCF绑定配置中指定TLS 1.2?

只是为了抢占预期的攻击我的动机,要求使用绑定配置而不是使用静态属性:使用全局(静态而非线程本地)ServicePointManager.SecurityProtocol属性是不合逻辑的编程模型。在现实世界中,您很可能处于这样的情况:您的应用程序需要使用多个Web服务,其中一些需要TLS 1.2,而另一些则不支持它。如果所述应用程序是多线程的,例如Web服务器,则存在竞争条件。两个线程,其中一个尝试连接到需要TLS 1.2的服务,另一个尝试连接到不支持它的服务,可以采用一种方式,以便在创建通道之前更改安全协议 - 导致其中一个失败。

当然,它不太可能导致大量错误,但取决于如何处理错误(例如,自动重试是否到位,甚至可能),这是一个潜在的严重问题。无论如何,如果有简单的方法可以避免它,为什么要创造竞争条件呢?如果我有办法在绑定配置中指定应该使用哪个安全协议,然后.NET只将它应用于如此配置的端点,则竞争条件将会消失。

0 个答案:

没有答案
相关问题