2016-01-13 60 views
0

我在Windows Server 2008 R2上有一個VB.NET 4.5應用程序,它必須通過TLSv1.2連接到Tomcat服務器上的其他內部應用程序之一。根據我們的安全掃描和服務器配置(在PCI準備),我們只能使用這些密碼在該服務器上:用於Web服務客戶端的VB.NET密碼

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

我從WSDL照常生成的服務類,但Wireshark捕獲不會將這些密碼列爲選項。

我的問題:

  1. 什麼庫做幕後的TLS連接背後Microsoft.NET用?例如,它仍然使用SChannel嗎?
  2. 有沒有辦法讓我啓用/安裝新的密碼爲VB.NET使用?

如果它使用SChannel,也許我可以做一些註冊表更改以使其工作...?或者有可能這些密碼僅在Windows Server 2008 R2上不可用?

在此先感謝!

回答

1

.NET支持它們,但默認情況下,.NET TLS實現僅使用SSLv3/TLSv1,它不提供這些密碼。

要啓用TLSv1.1和TLSv1.2工作(不知道哪一個實際啓用的密碼)使用方法:

 
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

這將使TLSv1.1 +(並在過程中禁用的SSLv3)和.NET應開始提供TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。

乾杯