2011-10-03 35 views
1

我被老闆問過一個問題,實際上我找不到任何連貫/全面的答案!NET框架中的傳輸層安全性

所以我轉交給你,聰明和StackOverflow的:)

當天的問題是全知的集體「是否.NET支持傳輸層安全性版本1.1或1.2?」 Google在這個問題上幾乎沒有用處,並且那裏的文檔嚴重缺乏。

任何幫助,將不勝感激。

謝謝 克林特

回答

2

已將TLS 1.1和1.2支持添加到Windows 7,我的理解是.NET依賴於Windows的SChannel for TLS支持。所以我認爲你的問題的答案是「取決於操作系統」。

現在您應該記住,大多數網站都支持舊版本的OpenSSL和其他不僅不支持TLS 1的庫。1和1.2,但如果收到來自客戶端的TLS 1.1支持指示,則立即關閉連接。換句話說,如果您在客戶端中啓用TLS 1.1支持,您將無法連接到某些服務器。

UPD:忘了提,你可以使用第三方SSL/TLS的實現(例如,一個在我們的SecureBlackbox產品),以獲得在您的.NET應用程序TLS 1.x的支持。

+0

這似乎是一個更好的答案,但我必須說你的產品插入是相當可恥的:P – Clint

1

這裏有些地方,你就可以開始記錄自己:

Transport Security with Certificate Authentication

本主題討論使用X.509證書對服務器和客戶端 認證時使用運輸安全。有關X.509證書的更多信息 請參閱X.509公鑰證書。 證書必須由證書頒發機構頒發,證書頒發機構通常是第三方頒發證書的 。在Windows Server域上,可以使用 Active Directory證書服務向域中的客戶端計算機頒發 證書。欲瞭解更多信息 請參閱Windows 2008 R2證書服務。在這種情況下, 服務託管在配置有安全套接字層(SSL)的 Internet信息服務(IIS)下。該服務使用SSL(X.509)證書配置爲 ,以允許客戶端驗證服務器的身份。客戶端還配置了證書,該證書允許服務驗證客戶端的身份。服務器的證書必須受到客戶端的信任,並且客戶端的證書必須被服務器信任。服務和客戶端如何驗證彼此身份 的實際 超出了本主題的範圍。欲瞭解更多信息,請參閱數字 維基百科上的簽名。

SslStream Class

...如果服務器需要客戶端認證,客戶端必須 指定認證一個或多個證書。如果客戶端有多個證書,則該客戶端可以提供 LocalCertificateSelectionCallback委託,以便爲服務器選擇正確的 證書。客戶的證書必須位於當前用戶的「我的」證書存儲區中的 。對於Ssl2(SSL版本2) 協議,不支持通過證書的客戶端身份驗證 。 ...

+0

我不認爲任何這些鏈接的回答了這個問題。 –

+1

謝謝,不是*完全*我在找什麼,雖然通過顯式SSL協議枚舉的鏈接表明TLS值僅表示版本1.0;所以你得到的答案:) – Clint

1

它可以支持;支持來自底層的IIS,而不是.NET。

有關如何啓用TLS 1.2的細節,在這裏看到:http://support.microsoft.com/kb/245030。請注意,目前只有少數瀏覽器支持它。