【问题标题】:Is FIPS compliance REQUIRED for TLS 1.2 communication in Windows?Windows 中的 TLS 1.2 通信是否需要 FIPS 合规性?
【发布时间】:2016-03-02 19:04:56
【问题描述】:

好的,这一直是一个持续存在的问题。我现在一直是experimenting for a couple of months,到目前为止,让我的应用程序与 Windows Server 2008 R2 通信的唯一方法是启用客户端和服务器计算机的"Use FIPS Compliant algorithms for encrypting, hashing, and signing" setting in the Group Policy。一旦打开(在客户端和服务器的注册表中启用了 TLS 1.2 并禁用了 TLS 1.0),它就可以工作了。

但是,我的困境是我不需要 FIPS 合规性,并且基于Microsoft's recommendation 以及我必须升级和更改大量代码才能使所有我的应用 FIPS 合规性(更不用说所有正在使用的 3rd 方应用程序是否都符合客户端的不确定性),我希望有更好的解决方案。

为了记录,我试图进行通信的应用程序是 MS Web Deploy 3.6、.NET Remoting over HTTPS/IIS 和 ClickOnce 部署。

我突然意识到,当我在服务器上启用 TLS 1.2 不启用 FIPS 模式时,浏览器可以与之通信。所以,显然有一些方法可以在没有这个设置的情况下完成工作,我只是没有找到它。

我查看了this answerthis answer,但这似乎是一个无法在配置文件中设置的低级设置,因此它在我的 3 种情况中至少有 2 种不起作用(它可能适用于 .NET 远程处理,我还没有尝试过)。但是缺乏示例令人震惊-也许这就是答案,但我不知道如何使用它。

一个可接受的解决方案是只为某些用户启用 FIPS 合规性,这样我就可以单独配置每个应用程序,但由于我只能找到机器范围的设置,所以我不知所措。

我想出的另一个潜在解决方案是使用 VPN 连接到服务器,这样我的应用程序就不需要加密协议来进行通信。但是,由于我使用的是 Windows Server 2008 R2 Web 版(不支持 VPN),所以我坚持使用第 3 方解决方案(希望支持 TLS 1.2)或在新操作系统上重建我的服务器。

我的问题是:如何让编译的 .NET 应用程序(例如 MS Web Deploy 3.6)通过 TLS 1.2 进行通信不启用 FIPS 合规性,就像浏览器一样?

【问题讨论】:

    标签: .net clickonce webdeploy fips tls1.2


    【解决方案1】:

    我的回答基于文章中的信息:Transport Layer Security (TLS) best practices with the .NET Framework,并且似乎依赖于安装了 .NET 4.7 或更高版本,而最初提出此问题时并不存在。

    我的测试是在 2016 年的服务器上完成的,使用 .NET 4.7 作为客户端和服务器,与自身通信。客户端 EXE 的目标是 .NET 4.7 之前的版本。在这种情况下,如果注册表中不存在以下值,则它们似乎默认为 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
    

    添加这些值后,我不再需要为 TLS 1.2 启用 FIPS。

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2013-09-25
      • 2015-02-10
      • 2010-12-22
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多