OpenSSL 与启用 FIPS 的 OpenSSL

信息安全 openssl 菲普斯
2021-08-21 05:48:01

一个看似简单的问题。

OpenSSL 与启用 FIPS 的 OpenSSL 相比如何?是不是更不安全?我该怎么说?

如果我关心的是安全性,而不是 NIST 标准,那么遵守 FIPS 140-2 标准(尽管与政府机构沟通)有什么真正的好处吗?

1个回答

有关 OpenSSL 和 FIPS 140-2 之间的关系,请阅读此文档

OpenSSL FIPS 对象模块是 OpenSSL的特定子集,与 OpenSSL API 兼容,并作为源代码提供。该模块经历了获得FIPS 140-2验证的漫长而痛苦的管理过程。已达到“综合等级:1”(见验证证书)。

FIPS 140-2 验证的目的基本上是表明在开发过程中应用了某种程度的“严肃性”。验证不能证明没有错误或漏洞,但它可以表明开发人员应用了适当的方法,这些方法有望避免错误并使软件符合一组特定的目标属性。

现在,有一些警告:

  • 在实践中,OpenSSL 开发人员对 FIPS 模块和“普通”OpenSSL 应用了相同的开发方法。两个版本共享大量代码;FIPS 模块实际上是普通库版本的子集。对于相同的功能,普通 OpenSSL 的安全性应该不低于 FIPS 模块。(对于普通 OpenSSL 提供但 FIPS 模块不提供的功能,什么都可以)。

  • FIPS 模块仅在您完全不改变使用它的情况下才被验证。如果您修改源代码中最轻微的字符,您将不再受 FIPS 验证的保护。

特别是第二点,意味着如果在“普通 OpenSSL”中发现错误,并且发布了错误修复,则该错误修复不会立即导入 FIPS 模块,因为这将使其 FIPS 无效。因此,可以说普通的 OpenSSL 实际上比 FIPS 模块更安全,因为当漏洞被发现时,它的修复速度要快得多。

总结:如果您不针对 FIPS 140-2 的某种一致性,请使用普通的 OpenSSL。