为什么不应该在Windows上启用“符合FIPS”的加密

Windows有一个隐藏设置,该设置将仅启用政府认证的“符合FIPS”的加密。这听起来可能像是增强电脑安全的一种方式,但其实不然。除非你在政府部门工作,或者需要测试软件在政府电脑上的行为方式,否则你不应该启用此设置。

这一调整恰好与其他无用的Windows调整神话相吻合。如果你在Windows中无意中发现了这个设置,或者在其他地方看到它被提及,那就不要启用它。如果您已经在没有充分理由的情况下启用了FIPS模式,请使用以下步骤禁用“FIPS模式”。

什么是符合FIPS的加密?

相关:10个Windows调整谣言被揭穿

FIPS代表“联邦信息处理标准”。这是一套政府标准,定义了某些东西在政府中的使用方式-例如,加密算法。FIPS定义了某些可以使用的特定加密方法,以及用于生成加密密钥的方法。它由国家标准与技术研究所(NIST)出版。

Windows中的设置符合美国政府的FIPS 140标准。当它被启用时,它会强制Windows仅使用FIPS验证的加密方案,并建议应用程序也这样做。

“FIPS模式”并不能让Windows变得更安全。它只是阻止访问没有经过FIPS验证的更新的密码方案。这意味着它将无法使用新的加密方案,也无法以更快的方式使用相同的加密方案。换句话说,它会使您的计算机变得更慢、功能更差,而且可以说也更不安全。

启用此设置时Windows的行为方式不同

微软在一篇题为“为什么我们不再推荐”FIPS模式“的博客文章中解释了这一设置的实际作用。”Microsoft仅建议您在必要时使用FIPS模式。例如,如果你使用的是美国政府的计算机,根据美国政府自己的规定,这台计算机应该启用“FIPS模式”。没有实际情况需要在您自己的个人计算机上启用此功能-除非您正在测试您的软件在启用此设置的美国政府计算机上的运行情况。

此设置对Windows本身有两个影响。它强制Windows和Windows服务仅使用FIPS验证的加密。例如,Windows内置的Schannel服务不能与较旧的SSL 2.0和3.0协议一起使用,将需要至少TLS 1.0来替代。

微软的.NET框架还将阻止访问未经FIPS验证的算法。NET框架为大多数加密算法提供了几种不同的算法,甚至不是所有算法都提交进行验证。例如,微软注意到.NET框架中有三种不同版本的SHA256散列算法。最快的还没有提交验证,但应该是同样安全的。因此,启用FIPS模式要么会破坏使用效率较高的算法的.NET应用程序,要么会迫使它们使用效率较低的算法而变得更慢。

除了这两件事之外,启用FIPS模式还建议应用程序只使用FIPS验证的加密。但它不会强迫其他任何事情。传统的Windows桌面应用程序可以选择实现他们想要的任何加密代码-甚至是极易受到攻击的加密-或者根本不加密。除非其他应用程序遵守此设置,否则FIPS模式不会对它们执行任何操作。

如何禁用FIPS模式(或在必要时启用该模式)

您不应该启用此设置,除非您使用的是政府计算机并且是被迫启用的。如果启用此设置,某些消费者应用程序实际上可能会要求您禁用FIPS模式,以便它们可以正常运行。

如果您需要启用或禁用FIPS模式-可能您在启用FIPS模式后看到错误消息,您需要测试您的软件在启用了FIPS模式的计算机上的行为,或者您使用的是政府计算机并且必须启用它-您可以通过几种方式来实现。只有在连接到特定网络时,或者通过始终适用的系统范围设置,才能启用FIPS模式。

要仅在连接到特定网络时启用FIPS模式,请执行以下步骤:

打开控制面板窗口。 单击“网络和Internet”下的“查看网络状态和任务”。 单击“更改适配器设置”。 右键单击要为其启用FIPS的网络,然后选择“状态”。 单击Wi-Fi状态窗口中的“无线属性”按钮。 单击网络属性窗口中的“安全”选项卡。 单击“高级设置”按钮。 在802.11设置下切换“启用此网络的联邦信息处理标准(Fips)合规性”选项。

还可以在组策略编辑器中在系统范围内更改此设置。此工具仅适用于Windows的专业版、企业版和教育版,而不适用于家庭版。如果您所在的计算机未加入到为您管理计算机组策略设置的域中,则只能使用本地组策略编辑器更改此工具。如果您的计算机已加入域,并且组策略设置由您的组织集中管理,则您将无法自行更改它。要在组策略中更改组策略中的此设置:

按Windows键+R打开运行对话框。 在Run对话框中键入“gpedit.msc”(不带引号),然后按Enter键。 在组策略编辑器中导航到“计算机配置\Windows设置\安全设置\本地策略\安全选项”。 在右窗格中找到“系统加密:使用符合FIPS的算法进行加密、散列和签名”设置,然后双击它。 将该设置设置为“Disabled”,然后单击“OK”。 重启电脑。

在Windows的家庭版上,您仍然可以通过注册表设置启用或禁用FIPS设置。要检查注册表中是否启用了FIPS,请执行以下步骤:

按Windows键+R打开运行对话框。 在运行对话框中键入“regedit”(不带引号),然后按Enter键。 导航到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy\”.。 查看右窗格中的“Enabled”值。如果设置为“0”,则禁用FIPS模式。如果设置为“1”,则启用FIPS模式。要更改设置,请双击“Enabled”值并将其设置为“0”或“1”。 重启电脑。

感谢Twitter上的@SwiftOnSecurity激发了这篇帖子的灵感!

相关文章