簡體   English   中英

Windows中的TLS 1.2通信是否需要符合FIPS要求?

[英]Is FIPS compliance REQUIRED for TLS 1.2 communication in Windows?

好的,這一直是一個持續存在的問題。 我已經進行了幾個月的實驗,到目前為止,我可以使我的應用程序與Windows Server 2008 R2進行通信的唯一方法是啟用組策略中“使用FIPS兼容算法進行加密,哈希和簽名”設置客戶端和服務器計算機。 一旦啟用(在客戶端和服務器的注冊表中啟用TLS 1.2,並禁用TLS 1.0),它便可以工作。

但是,我的困境是我不需要 FIPS合規性,並且基於Microsoft的建議以及我必須升級和更改大量代碼才能使我的所有應用程序都符合FIPS的事實(更不用說不確定性了)是否所有正在使用的第三方應用程序都將符合客戶端要求),我希望有一個更好的解決方案。

作為記錄,我嘗試交流的應用程序是MS Web Deploy 3.6,通過HTTPS / IIS的.NET Remoting和ClickOnce部署。

我突然意識到,當我在服務器上啟用TLS 1.2 而未啟用FIPS模式時, 瀏覽器便可以與之通信 因此,很明顯,沒有這種設置,有些方法可以完成工作,但我只是沒有找到它。

我看了這個答案這個答案 ,但這似乎是無法在配置文件中設置的低級設置,因此在我的3種情況中,至少有2種無法使用(它可能與.NET兼容)遠程處理,我還沒有嘗試過)。 但是缺少示例令人震驚-也許這就是答案,但我不知道如何使用它。

可以接受的解決方案是僅對某些用戶啟用FIPS遵從性,因此我可以分別配置每個應用程序,但是由於我只能找到機器范圍的設置,所以我很茫然。

我想出的另一個潛在解決方案是使用VPN連接到服務器,因此我的應用程序不需要加密協議即可通信。 但是,由於我使用的是Windows Server 2008 R2 Web Edition(不支持VPN),因此我堅持使用第三方解決方案(希望它將支持TLS 1.2)或在新的OS上重建服務器。

我的問題特別是:如何像MS Web Deploy 3.6這樣的已編譯.NET應用程序通過TLS 1.2 進行通信, 而又 不像瀏覽器那樣啟用FIPS遵從性?

我的回答基於來自以下文章的信息: .NET Framework的傳輸層安全性(TLS)最佳實踐,並且似乎依賴於安裝.NET 4.7或更高版本,而最初提出此問題時並不存在。

我的測試是在2016年服務器上完成的,.NET 4.7既充當客戶端又充當服務器,並且與自身通信。 客戶端EXE的目標是4.7之前的.NET版本。 在這種情況下,如果注冊表中不存在以下值,則默認為0。

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

添加這些值后,我不再需要啟用FIPS才能使TLS 1.2正常工作。

暫無
暫無

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

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