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/