4

SimpleMembership提供者(Universal Provider)2.0中使用了PBKDF2算法。它是非 FIPS 投诉算法吗?请确保正确的解决方案?

4

1 回答 1

6

PBKDF2 算法用于 simplemembership 提供者(universalprovider)2.0 是一种非 FIPS 投诉算法。

如果我没看错的话,这里有三个问题。首先,您要询问SimpleMembership. 其次,您要问是否PBKDF2被批准用于 FIPS 验证的密码学。第三,你问SimpleMembership的是 PBKDF 是否被批准使用。

第一的

我似乎记得SimpleMembership使用了非标准的 PBKDF。你应该使用Rfc2898DeriveBytesin System.Security.Cryptography

一般来说,FIPS 批准的算法和验证的实现位于System.Security.Cryptography并且它们是非托管的。事实上,根据 KB 811833,“系统加密:使用符合 FIPS 的算法进行加密、散列和签名”在 Windows XP 和更高版本的 Windows 中的安全设置效果

Microsoft .NET Framework 应用程序(例如 Microsoft ASP.NET)仅允许使用经 NIST 认证为符合 FIPS 140 的算法实现。具体来说,唯一可以实例化的加密算法类是那些实现符合 FIPS 的算法的类。这些类的名称以“CryptoServiceProvider”或“Cng”结尾。任何尝试创建其他加密算法类的实例,例如名称以“Managed”结尾的类,都会导致发生 InvalidOperationException 异常。

第二

PBKDF2如果它使用经过批准的哈希,则被批准使用。由于Rfc2898DeriveBytes使用 HMAC/SHA-1,您将无法使用它。NIST SP800-56 和 SP800-57 对于抗碰撞哈希的选择非常清楚。

但是,您的用例略有不同 - SHA-1 被用作伪随机函数 (PRF)。但我只知道允许将 SHA-1 用作 PRF 的一个例外,那就是在 TLS 中。例外是 SP800-108 (IIRC) 中的脚注。

第三

SimpleMembership的 PBKDF 未被批准使用。

于 2014-01-31T22:17:52.223 回答