ASP.NET 2.0 RijndaelManaged加密算法与FIPS

R R*_*ush 7 asp.net viewstate fips rijndaelmanaged

我遇到了ASP.NET 2.0应用程序的问题.我们的网络人员刚刚提高了我们的安全性,现在每当我尝试访问应用程序时,我都会遇到浮动错误:

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

我做了一些研究,听起来像ASP.NET使用RijndaelManaged AES加密算法来加密页面的ViewState ......而RijndaelManaged是在不符合FIPS的算法列表中.我们当然没有明确地调用任何加密算法......更不用说不合规列表上的任何内容了.

我猜这个ViewState业务对我来说很有意义.但是,我无法摆脱困境的是如何处理它.我发现了一篇知识库文章建议使用web.config设置指定一个不同的算法......但要么没有坚持,要么该算法不符合鼻烟.

所以:

1)RijndaelManaged/ViewState实际上是问题吗?还是我在错误的树上吠叫?

2)如何指定使用什么算法而不是RijndaelManaged?我有一份符合和不符合的算法列表; 我只是不确定在哪里插入这些信息.

谢谢!

理查德

Pau*_*der 5

仔细检查<compilation debug="true" />Web.config中没有.设置调试编译时,.NET使用MD5哈希进行内部簿记.MD5不符合FIPS,因此您会收到此错误.


kay*_*zam 2

关于你的第二个问题:也许这篇MSDN 文章有帮助。

根据文档,您可以像这样配置加密算法:

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

对于验证,您可以使用以下其中一项:[SHA1 | MD5 | 3DES | AES]

对于解密,您可以使用以下其中一项:[自动 | DES | 3DES | AES]

因此,为了符合 FIPS,您可以使用 3DES(尽管理论上不太安全)。