2015-09-01 95 views
3

我想在全球范围内以下列方式我的WPF应用程序使用TLS 1.2执行:TLS 1.2支持仅取决于.NET框架的版本吗?

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; 

从.NET 4.5 TLS 1.2协议supported对通过HTTPS的安全通信。我的问题是,如果我将.NET 4.5与我的应用程序一起发布,这将始终有效。它取决于操作系统版本?

回答

4

TLS在Windows中由一个名为SChannel的组件终止。受支持的密码取决于SChannel的版本,该版本取决于OS,而不取决于.Net版本。 Windows XP中的情况下,最多只支持TLS 1.0

这意味着,您的主机PC需要至少是Windows 7,如果你想支持TLS 1.2

详细信息可以在这里找到:http://blogs.msdn.com/b/kaushal/archive/2011/10/02/support-for-ssl-tls-protocols-on-windows.aspx

+0

所以如果我这样使用它:'''ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;'''这应该从Vista到Windows 10,不是吗? – boli

+0

我不知道如果将它们合并,会发生什么情况,尽管它们的二进制值表明您可以。它会选择支持的最高TLS吗?理论上,它会将支持的密码列表发送给客户端,客户端会选择最好的密码,但我不确定它是否一致或有保证。这可能是支持Vista的最佳选择。您也可能错过了TLS1.1,因为我认为支持1.1的所有平台都支持1.2 – Lukos