4

我在一个必须满足启用 FIPS 的系统的 FISMA 要求的组织中工作。我正在尝试做的一件事是为我们的密码实现哈希算法。我对此有很多选择:SHA-2、MD5、bcrypt(使用 Blowfish)、RIPE 等。

阅读各种 NIST 出版物,FISMA 没有说我必须使用特定的算法来满足他们的要求。

但是,FIPS 180-4 指定根据 FISMA 认为哪种哈希算法是安全的,即 SHA-1 到 SHA-512/256。NIST SP 800-132 也推荐使用 PBKDS2。

这是否意味着:a)。我必须使用 SHA 作为哈希算法才能通过 FISMA 审核/要求?

...或者...

乙)。我可以使用任何算法,只要它比 SHA 更好?即不使用MD5,但bcrypt 或RIPE 是可以的。

4

2 回答 2

2

两者怎么样?使用 bcrypt 对您的密码进行哈希/加盐处理,以利用其工作因素功能来提供面向未来的大规模并行蛮力攻击。然后对 bcrypt 的结果进行 SHA-512 处理并存储。

您可以从 bcrypt 获得保护,并选中 FISMA/FIPS 框,因为您正在存储使用他们接受的算法生成的哈希。

即使有人可以暴力破解 SHA-512 来查找生成与您存储在数据库中的相同哈希值的输入,该输入也不是可以将用户登录到系统的有效密码。

于 2013-04-23T16:59:49.757 回答
1

是的,您必须使用 SHA。 SP 800-53到处引用 FIPS 140-2,暗示您必须使用 SHA-256 或 SHA-512。(避免使用 SHA-1)。

总统办公厅的行政部门和机构负责人备忘录中清楚地阐明了这一点:

11. 是否需要使用美国国家标准与技术研究院 (NIST) 的出版物?

是的。对于非国家安全计划和信息系统,机构必须遵循 NIST 标准和指南。...

12. NIST 指南是否灵活?

是的。虽然机构必须按照 OMB 政策遵守 NIST 标准和指南,但 NIST 的指南(特别是 800 系列)在机构如何应用它们方面具有灵活性。但是,联邦信息处理标准 (FIPS) 是强制性的。...

(想想看。NIST 没有将 SHA 作为标准发布,以便您可以使用其他东西来代替......)

此外,SHA 和 Bcrypt 并没有真正的直接可比性。SHA 是一组散列算法。Bcrypt 更像是一个以 Blowfish 算法为核心生成哈希的过程。Bcrypt 的 FIPS 等价物是PBKDF2,它使用 SHA 作为其核心算法。

于 2013-01-20T08:24:51.843 回答