【问题标题】:ViewState Encryption doesn't work with mixed algorithmsViewState 加密不适用于混合算法
【发布时间】:2014-09-15 20:58:56
【问题描述】:

我有一个客户想要在 ASP.NET Web 窗体应用程序中打开 ViewState 加密。由于 FIPS 合规性,他们无法使用默认算法。来自客户端的初始请求是使用 3DES/AES,如下所示,我将其添加到 web.config 文件中:

<machineKey validationKey="..." decryptionKey="..." validation="3DES" decryption="AES" />

放入此配置导致应用程序停止工作并出现以下错误:

[HttpException (0x80004005): Unable to validate data.]
System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData) +1090
System.Web.UI.Page.EncryptString(String s, Purpose purpose) +150
[...]

通过将两个键切换到 3DES,我能够让系统正常工作。

为什么使用两种不同的算法时系统会失败?

【问题讨论】:

    标签: asp.net encryption


    【解决方案1】:

    不太清楚为什么会失败 - 可能是提供的密钥长度有错误?如果有一个存在,内部异常应该能够告诉您更多信息。

    无论如何,您应该知道 NIST 正在逐步淘汰 3DES,并且 ASP.NET 不以符合 FIPS 的方式使用 3DES。 (参考:http://csrc.nist.gov/publications/nistpubs/800-67-Rev1/SP-800-67-Rev1.pdf。特别参见前言,其中指出我们正处于客户从 3DES 迁移到 AES 的过渡期。另请参见第 3.5 节;ASP.NET 不限制调用次数块密码算法,因此我们对该算法的特殊使用使其不符合 FIPS 标准。)

    最好的做法是使用 AES 进行加密/解密,使用 HMACSHA256 进行验证。这种组合符合 FIPS,并提供比 3DES / SHA1(之前使用的)更好的安全性。为此,请设置:

    <machineKey validation="HMACSHA256" validationKey="256 bits worth of hex digits (64 hex chars)" decryption="AES" decryptionKey="256 bits worth of hex digits (64 hex chars)" />
    

    然后还在 Web.config 中设置 &lt;pages viewStateEncryptionMode="Always" /&gt; 以告诉 ASP.NET 使用您刚刚在 &lt;machineKey&gt; 元素中提供的算法使用视图状态加密。

    【讨论】:

    • Levi,非常感谢您提供的信息。我对加密世界不太熟悉,所以这很有帮助。您链接的文档确实在“对称加密”部分中提到了 3DES - AES 下的#2(假设 TDEA 和 3DES 是同义词。)你能澄清一下吗?谢谢!
    • 另外,为了回答你的问题,我不认为这是涉及的关键。我使用此页面:a2zmenu.com/utility/Machine-Key-Generator.aspx 生成密钥并尝试了多个不同的密钥。
    • 哇,这对我来说绝对是错误的。 :) 我已经用我想说的话更新了那段:ASP.NET 使用它的方式使其不符合 FIPS。
    • 非常感谢您提供的所有信息!很好的答案列维。我实际上还没有解决为什么我的初始组合会导致错误的问题,但您的建议还是得到了客户的青睐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    相关资源
    最近更新 更多