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

最佳答案



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

第一个

我似乎记得 SimpleMembership 使用了非标准的 PBKDF。您应该在 Rfc2898DeriveBytes 中使用 System.Security.Cryptography

一般来说,FIPS 批准的算法和经过验证的实现位于 System.Security.Cryptography 中,它们是 非托管 。事实上,根据 KB 811833, "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing" security setting effects in Windows XP and in later versions of Windows :



第二个

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

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

第三个
SimpleMembership 的 PBKDF 未被批准使用。

关于security - PBKDF2 是不符合 FIPS 的算法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20680365/

10-11 17:05