2015-09-01 128 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