FIPS 在安全实施中的重要性问题

信息安全 密码学 遵守 菲普斯
2021-08-26 03:28:42

到目前为止,我不是安全专家,但我在 Java(JCA、JCE 和 JSSE)中工作的主题方面有经验。
无论如何,最近有一个关于 FIPS 合规性的讨论。
我对此进行了调查,SUN 的库本身不符合 FIPS。
此外,我广泛使用并且据我所知被认为是最好的安全库的 Bouncy Castle 也不符合 FIPS 标准。
所以我的问题是,提供一个严格符合 FIPS 的实现有多重要?
举个简单的例子,在构建安全站点时,是否应该明确说明它是否符合 FIPS?
非常欢迎对此提出任何意见。

谢谢你。

4个回答

您需要符合 FIPS 的最常见原因是您的公司必须遵守法律或其他合规原因。符合 FIPS 仅意味着您的加密已通过权威机构的验证,并且不存在固有缺陷。在许多其他加密库(如 bouncycastle)中也没有发现缺陷。

FIPS 与没有 FIPS 背后的原因是没有 FIPS 依赖于这样一个事实,即没有人发现问题,但并没有真正说明是否有人以前看过。FIPS 基于主动测试和安全标准得到证明。

最后,它不会改善您的整体安全状况,但如果是 FIPS,它会让管理感觉更好。

对于软件库,我同意@Lizbeth - FIPS 140-2 Level 1 适用于 Bouncy Castle、Sun Java 和 NSS 等软件库(Java 库,这是经过 FIPS 认证的)。不同之处在于符合 FIPS 的软件库已经过独立测试以满足一组安全要求。一些行业的法律要求一定程度的安全尽职调查,而 FIPS 是强制要求的方式之一。

当您通过软件库时,FIPS 可能更重要,因为它说明了高端功能的质量水平,这些功能逐渐变得更加昂贵和保护:

  • 级别 1 - 基本要求 - 可以在软件或硬件中实现
  • 2 级 - 防篡改涂层和基于角色的身份验证 - 这意味着硬件可以被篡改,但它会很明显。不能在SW中完成。
  • 3 级 - 防止访问关键安全参数并提供基于 ID 的身份验证。
  • 级别 4 - 被篡改时归零

各个级别都有产品——如果您谈论的是风险相当低的网络应用程序,通常您不需要 2 级及更高级别的产品。但对于高风险应用程序,关键材料的妥协将是一个巨大的问题 - FIPS 140-2 水平的提高成为常态。我已经有一段时间没有接触硬件安全模块产品世界了,但它曾经几乎是进入高安全性市场——政府或金融市场的必备条件。如果您为您的设备收取超过 10,000 美元的费用,您想证明它会按您说的做。

FIPS 合规性(或欧洲同等水平,如 EAL 级别)是某些市场或实现某些合法属性的要求;例如,在法国,时间戳被认为是合法的证明(证明责任在于声称时间戳不具约束力的一方),只有当时间戳权威通过认证过程时,它是必需的“认证” HSM(硬件安全模块)用于存储和使用授权私钥。如果这种情况发生在美国而不是法国,那么“经过认证的 HSM”将是“符合 FIPS-140 4 级的 HSM”。

在私有领域(例如银行),对认证和/或 FIPS 140 级别的要求来自保险公司:银行可以以疯狂但可行的价格获得保险,因为他们可以证明他们使用严格的安全规则,而 FIPS 140 级别是这样的规则。VISA 和万事达卡对安全性特别严格(这关乎金钱,因此很重要)。

在更实际的情况下,FIPS 140 级别是通过证明实现了一些安全特性来获得的(参见@bethlakshmi 的回复),这涉及硬件和软件。由于通常无法证明软件的正确性,因此认证过程涉及表明系统是通过所有应有的工艺开发的(单元测试、代码审查、经过验证的源代码版本控制,直至并包括对开发人员本身的背景调查)。这涉及时间、金钱(想想 10 万美元以上)和大量纸张。所以真正的,实际的意义符合 FIPS 140 的一个原因是有人花了很多时间和金钱来认为系统并非公然不安全。这并不意味着该系统是安全的,但至少有一些实质性的努力和投资来实现这一目标。

大多数开源项目都使用集市模型,这种模型可以高效地快速生成优质代码,但与认证过程完全不兼容。此外,大多数开源项目没有资金或资金很少。这就解释了为什么 Bouncy Castle 不符合 FIPS 标准,甚至像 Sun(现在的 Oracle)这样的大公司也不愿意运行该流程。再说一次,不符合 FIPS 并不意味着“不安全”,甚至不能宣布系统符合 FIPS,只是没有人认为通过正式的 FIPS 合规的昂贵管理障碍值得付出努力。

为了补充之前海报的优秀答案,我将举一个例子。

OpenSSL 存在于FIPS 认证版本和非 FIPS 认证的常规版本中(以及子系统经过 FIPS 验证)。

当在 OpenSSL 中发现也影响 FIPS 验证模块的漏洞时,通常会在常规 OpenSSL 分发中非常快速地推送修复程序,而 FIPS 版本的用户实际上很容易受到攻击,直到更新版本得到认证。

这是 FIPS 合规性(以及推动它所暗示的纸张数量)积极违背安全性的案例。