簡體   English   中英

僅允許TLS 1.0后,仍可以進行TLS 1.2握手

[英]TLS 1.2 handshake still possible after only allowing TLS 1.0

我的一個客戶在操作系統級別關閉了TLS 1.0。 之后,與我們產品的連接不再起作用。 客戶沒有使用.NET 4.6.1的最新版本。

由於我們未指定所使用的協議,因此我們依賴默認值。 根據https://support.microsoft.com/zh-CN/help/3069494/cannot-connect-to-a-server-by-using-the-servicepointmanager-or-sslstre的規定, .NET 4.6默認啟用TLS 1.2,這將是完美的,也是我們想要的。

我想嘗試一些配置,以更好地理解。 我指定了僅在代碼級使用以下代碼的TLS 1.0:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

為了測試握手,我使用了openssl。 它應該與TLS 1.0完美配合。 但令我驚訝的是,握手也適用於TLS 1.2。

$ openssl s_client -connect localhost:30050 -tls1_2
<..snip..>
SSL-Session:
    Protocol  : TLSv1.2
    <..snip..>

我要監管一些.NET或TLS規則嗎? 據我了解,當將TLS 1.0指定為唯一協議時,TLS 1.2應該是不可能的。

mjwills將在評論中詢問SecurityProtocol -Property是否會影響入站或出站連接。

經過一番研究后,我發現了如何禁用SSL后備並且僅將TLS用於.NET中的出站連接? (緩解獅子狗) ,其中有一條評論可以回答這個問題:

如果要從.NET代碼啟動出站連接 ,例如,從服務器上運行的自定義代碼連接到Web服務或API,則只需設置 System.Net.ServicePointManager.SecurityProtocol。 如果您僅運行一個簡單的網站,並且僅接受來自瀏覽器的傳入連接,則注冊表修復程序就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM