2

我需要了解如何使 ASP.NET Web 应用程序符合 FIPS。为了简单起见,我在 VS 2008 中创建了一个新的 Web 应用程序。我在我的开发机器上启用了 FIPS,因为使用 Web 应用程序的客户端将是一个执行 FIPS 的联邦机构。

我什至无法编译新的 Web 应用程序 - 因为它给了我错误:

此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

我已阅读文档并将以下元素添加到 web.config 文件中:

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

<enforceFIPSPolicy enabled="false" /> (also tried <enforceFIPSPolicy enabled="0" />)

但我仍然得到这个错误。同样,在我尝试让它与我的实际解决方案一起工作之前,我想让它与一个全新的 Web 应用程序一起工作。

我正在为框架使用 .NET 3.5 SP1。

任何帮助将不胜感激。

谢谢。

克里斯

4

2 回答 2

3

如果代码中引用了任何不符合 FIPS 的算法,即使从未实际使用过/无法访问,也会导致 FIPS 合规性错误。例如,仅声明一个 MD5CryptoServiceProvider 变量而不实例化它会导致错误。这包括其他引用的 .NET 程序集,因此请确保没有引用的 dll 也可能使用不符合 fips 的算法。

这是一个方便的站点,列出了 .NET 中的所有 FIPS 和非 FIPS 算法http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html

于 2010-06-29T03:36:17.873 回答
1

有两件事可以使新的 .NET 应用程序符合 FIP。

1)在您的机器密钥设置中,使用 3DES 进行解密并使用 SHA1 进行验证,正如您在问题中提到的那样。(有一个 STIG 说你应该使用 SHA1。https: //www.stigviewer.com/stig/iis_7.0_web_site/2014-03-25/finding/V-26026

2) 确保代码不处于调试模式。web.config 的编译部分和页面指令都应该有 debug="false"。Debug="true" 将在 .Net 甚至可以运行第一行代码之前启动 FIP 合规性错误。

要让 Visual Studio 编译代码,您可能需要在 Visual Studio 上禁用 fips。

对于视觉工作室 2010:

  • 如果您使用的是 x64 操作系统,则从 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 打开 Devenv.exe.config,或者在 x86 操作系统上打开 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\

  • 找到</runtime>标签并在该行上方添加以下内容:

    <enforceFIPSPolicy enabled="false"/> 
    
  • 经过上述修改后,devenv 配置将如下所示:

    <configuration> 
    <runtime> 
    . 
    . 
    . 
    <enforceFIPSPolicy enabled="false"/> 
    </runtime> 
    </configuration> 
    
  • 重新启动 Visual Studio

https://blogs.msdn.microsoft.com/brijs/2010/08/10/issue-getting-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-algorithms-构建时异常-outlook-vsto-add-in-vs-2010/

资料来源:https ://msdn.microsoft.com/en-us/library/w8h3skw9(v=vs.100).aspx

https://blogs.msdn.microsoft.com/webtopics/2009/07/20/parser-error-message-this-implementation-is-not-part-of-the-windows-platform-fips-validated-cryptographic-算法-当-net-page-has-debugtrue/

http://forums.asp.net/t/1778719.aspx?+FIPS+validated+cryptographic+algorithms+3DES+machinekey+solution+didnt+work

于 2016-04-12T10:26:17.530 回答