gpt4 book ai didi

c# - 如何在 asp.net 代码中实现 FIPS(此实现不是 Windows 平台 FIPS 验证加密算法的一部分。)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:01:20 26 4
gpt4 key购买 nike

我的公司在 .Net Framework 3.5 中使用 ASP.NET 创建了项目,并使用 Windows Web 服务器 2008 r2 来托管该项目。

在 Web 服务器中,我们启用了“系统加密:使用 FIPS 兼容算法进行加密、散列和签名”的设置

此后应用程序不再运行。它显示以下错误

Parser Error Message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

堆栈跟踪:

[InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.]
System.Security.Cryptography.RijndaelManaged..ctor() +7715396
System.Web.Configuration.MachineKeySection.ConfigureEncryptionObject() +232
System.Web.Configuration.MachineKeySection.EnsureConfig() +156
System.Web.Configuration.MachineKeySection.GetEncodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32& length) +37
System.Web.UI.ObjectStateFormatter.Serialize(Object stateGraph) +166
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Serialize(Object state) +4
System.Web.UI.Util.SerializeWithAssert(IStateFormatter formatter, Object stateGraph) +37
System.Web.UI.HiddenFieldPageStatePersister.Save() +79
System.Web.UI.Page.SavePageStateToPersistenceMedium(Object state) +105
System.Web.UI.Page.SaveAllState() +236
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1099

我们正在寻找解决方案。我们在网上找到的大多数解决方案都建议通过禁用“系统加密:使用 FIPS 兼容算法进行加密、散列和签名”设置来禁用 FIPS 检查。或者在 web.config 中添加这两行。

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
<enforceFIPSPolicy enabled="false"/>

但出于安全目的,我们不想对我们的代码禁用 FIPS 检查。相反,我们想要调整我们的代码或服务器设置,以便它通过解释其功能在项目中强制执行 FIPS 策略。

任何人都可以给我提供任何想法吗?

最佳答案

有一个相关的MSDN blog .尝试以下注册表更改:

  • HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled 此注册表值反射(reflect)了当前的 FIPS 设置。如果启用此设置,则值为 1。如果禁用此设置,则值为 0。
  • HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy此注册表值反射(reflect)了当前的 FIPS 设置。如果启用此设置,则值为 1。如果禁用此设置,则值为 0。

After you enable or disable the System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing security setting, you must restart your application, such as Internet Explorer, for the new setting to take effect.

在您的情况下,回收您网站的应用域应该就足够了。

另请注意@Basic 的评论,启用 FIPS 模式虽然可能需要与政府系统交互,但可以 cause other security headaches .

关于c# - 如何在 asp.net 代码中实现 FIPS(此实现不是 Windows 平台 FIPS 验证加密算法的一部分。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com