我有一个兼容FDCC的工作站,启用了FIPS 140-1(1级)。
现在,我无法在我的机器上运行/调试任何VS 2005/2008应用程序
我在浏览器上收到以下错误消息
分析程序错误消息:此实现不是Windows平台FIPS验证的加密算法的一部分。
错误指向default.aspx.cs文件的第1行
使用系统;
成功调试/运行我的应用程序的唯一方法是将以下注册表项设置为0
HKLM \ System \ CurrentControlSet \ Control \ Lsa \ fipsalgorithmpolicy
据我所知,有一些加密算法在XP SP2上不符合FIPS标准,但我根本不使用加密技术。 就此而言,该解决方案仅包含default.aspx页面,默认代码位于.cs文件中,甚至无法运行。
所以我的问题是为什么网页无法加载,以及为什么错误指向第1行“使用System;”声明?
我的下一个问题是如何开发符合FIPS标准的锁定机器,我对注册表没有编辑权
由于 kudlur
答案 0 :(得分:2)
显然,除了使用非fips加密算法之外,只需在webconfig中使用debug =“true”就可以在.NET 2.0 Web应用程序中发生这种情况
<system.web>
<compilation debug="true">
</system.web>
另外,如果您使用的是viewstate,那么您还需要在web.config的system.web部分中使用此密钥:
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
因此,实际上您无法在符合FIPS标准的计算机上以调试模式运行应用程序。我请求你的组策略管理员为dev机器关闭它,或者至少允许你打开和关闭它,这样你仍然可以测试运行fips强制执行。这可以追溯到关于在没有完全管理员权限的机器上进行开发的争论,这是没有管理员权限的那种障碍和烦恼的一个主要例子......但我离题了。
这里有一些关于这个FIPS事情的参考文章:
http://blogs.msdn.com/shawnfa/archive/2005/05/16/417975.aspx
http://blogs.msdn.com/shawnfa/archive/2008/03/14/disabling-the-fips-algorithm-check.aspx
http://support.microsoft.com/default.aspx?scid=kb;EN-US;811833
答案 1 :(得分:1)
我们在我们的位置遇到过同样的问题。简而言之,Web表单中的viewstate数据使用AES算法的RijndaelManaged实现进行加密,该算法不符合FIPS标准。最简单的解决方案是将以下(或类似)行添加到指定3DES加密的web.config文件中。 3DES符合FIPS标准。
&lt; machineKey validationKey =“AutoGenerate,IsolateApps”decryptionKey =“AutoGenerate,IsolateApps”validation =“3DES”decryption =“3DES”/&gt;
您可以在http://csrc.nist.gov/groups/STM/cavp/index.html获得有关各种FIPS兼容算法的更多信息。
希望有所帮助。
答案 2 :(得分:0)