由于法规的原因,我的公司需要符合 FIPS。
我正在查看FIPS 批准的加密方法的当前列表,我注意到 bcrypt 或 PBKDF2 都不在此列表中。
这是否意味着我应该使用加盐SHA-512 来存储密码?
这是一个好主意吗?
由于法规的原因,我的公司需要符合 FIPS。
我正在查看FIPS 批准的加密方法的当前列表,我注意到 bcrypt 或 PBKDF2 都不在此列表中。
这是否意味着我应该使用加盐SHA-512 来存储密码?
这是一个好主意吗?
FIPS 140-2 不包括密码散列的主题。因此,从这个意义上说,没有“FIPS 批准”的密码散列函数。“按原样”使用 SHA-512,加或不加盐,无论您如何在发动机中注入所述盐,都不会授予您 NIST 的批准。NIST 根本不批准(或不批准)密码散列。
NIST 世界中最接近您的是SP 800-132 ,它列出了基于密码的密钥派生的批准方法,这与密码散列非常接近(但不相同)。NIST 批准 PBKDF2,只要 PBKDF2 中使用的基础原语本身是“批准的”(即它是与 SHA-2 函数之一一起使用的 HMAC)。
FIPS 140-2 没有列出密码散列算法。如果您确实需要使用经过 FIPS 140-2 验证的算法,则需要找到经过 NIST 验证的解决方案,以满足您所需的合规级别。
您可能需要通过 FIPS 审核员来验证这一点,但 PBKDF2 具有例如 PBKDF2-HMAC-SHA256 或 512 之类的实现。这可以被认为是合规的,因为实现是使用 SHA256 或 512。