You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web应用启用FIPS后托管加密算法仍可运行问题咨询

问题1:FIPS规则未对特定Web应用生效的原因

  • 最常见的原因是该Web应用在自身配置中关闭了FIPS强制校验:对于.NET Framework 环境的应用,只要在web.config的<runtime>节点下添加了<enforceFIPSPolicy enabled="false"/>配置,就会优先跳过.NET框架自带的托管加密类FIPS合规校验,优先级高于系统级安全策略。
  • 若该应用基于.NET Core 3.0+ / .NET 5+ 版本开发,这类.NET版本默认取消了系统FIPS策略的强制校验,只有显式配置开启时才会执行合规检查,因此默认不会抛出错误。
  • 极少数情况是应用调用了第三方实现的加密类库,不走.NET框架自带的FIPS校验逻辑。

问题2:是否可以在应用层面覆盖FIPS设置

存在大量同类场景,确实可以在应用层面覆盖系统FIPS设置:

  • .NET Framework 环境下可通过上述web.config/app.config配置项直接关闭FIPS校验
  • .NET Core / .NET 5+ 环境下可通过设置环境变量DOTNET_CRYPTOGRAPHY_ALLOW_US_FIPS_ONLY=false,或修改运行时配置文件关闭校验
  • 部分场景下还可通过启动时代码修改CLR安全配置实现跳过校验

问题3:保障Web服务器所有应用符合FIPS合规的方案

  • 配置全局组策略覆盖应用本地配置:进入计算机配置->管理模板->.NET Framework->强制执行FIPS合规性算法,将该策略设置为启用,此全局配置会强制所有.NET Framework应用开启FIPS校验,无视应用本地的enforceFIPSPolicy配置。
  • 针对高版本.NET应用设置全局环境变量:添加系统级环境变量DOTNET_CRYPTOGRAPHY_ALLOW_US_FIPS_ONLY=true,强制所有.NET Core / .NET 5+ 应用开启FIPS校验。
  • 定期审计站点配置:定期扫描所有Web应用的配置文件,排查私自关闭FIPS校验的配置项。
  • 代码层面约束:要求所有应用使用FIPS合规的加密实现,例如用AesCng替代AesManaged、用SHA1Cng替代SHA1Managed,从根源避免不合规调用。

你测试时触发的错误截图如下:
错误截图

你提供的测试代码如下:

protected void Application_BeginRequest(object sender, EventArgs e)
 {
     var v1 = new RijndaelManaged();
     var v2 = new AesManaged();
     SHA1 sha = new SHA1Managed();
 }

内容的提问来源于stack exchange,提问作者Anurag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:45:09