FIPS 140-3 并不是一个安全保证,审计员心知肚明
最近,一位来自主要硬件安全模块(HSM)供应商的销售工程师告诉我,超过 90% 的购买 FIPS 认证 HSM 的客户都将其在禁用 FIPS 模式下运行。他们为证书支付了高额费用,然后关闭了它所描述的配置。在本文结束时,您将理解为什么这通常是正确的工程决策。在 2026 年 9 月 21 日,所有剩余的 FIPS 140-2 证书将转入 NIST 的历史列表,而该列表上的模块不应再包含在新的联邦采购中。采购团队这个夏天正在追逐供应商获取 FIPS 140-3 的文件,而供应商则正在验证队列中度过。很多资金和关注都流向了这个证书。因此,现在是大声说出潜台词的好时机:FIPS 验证是对一个狭隘问题的回答,而这并不是大多数人认为他们在问的问题。该证书证明特定的加密模块在特定的固件版本和特定的配置中正确地实现了批准的算法,并满足某些设计要求。它并不证明模块周围的产品是安全的,模块将在其验证配置中操作,或模块内的密钥是以您可以向任何人辩护的方式生成和管理的。将证书视为这些事物的代理就是实际事故发生的地方。以上并不是反对 FIPS 的论点。该计划消灭了一代蛇油加密,且“没有验证,就没有购买”仍然是一项合理的采购底线。争论的重点在于证书覆盖的内容,因为它所覆盖的内容与人们认为它覆盖的内容之间的差距是 remarkably consistent(异常一致)且 well documented(记录得非常清楚)。沿途:一款经过认证的 YubiKey,其安全性低于同一货架上的消费型号,FIPS 模式实际成本的基准,以及一个无法在不恐慌的情况下导出比特币钱包的四行 Go 程序。证书所说的内容是,FIPS 140-3 验证适用于加密模块边界:算法是经过批准并正确实现的,密钥可以被清零,模块会运行上电自检,并且在 2 到 4 级别时,硬件能够抵御或响应物理篡改。这就是整个范围。调用该模块的应用程序、围绕它的访问控制、密钥管理策略、持有操作员卡的人员以及将第一组密钥放入内部的仪式:所有这些都在边界之外,且未被检查。验证也是快照。它绑定到确切的固件版本和确切的配置。当设备运行不同的固件,或因为某些遗留客户端需要而开启非批准模式时,它就不再是证书上的东西。在我看来,绝大多数已部署的 HSM 系统会在几个月内偏离其验证配置,而当这种情况发生时,没有人的仪表板会变红。认证与破损同时存在的证据 验证不是安全保证的最强有力证据是列出多年来发货的、带有可利用缺陷的认证模块,这些缺陷贯穿了整个实验室过程。ROCA(2017)。英飞凌的 RSA 密钥生成中的缺陷产生了具有固定结构的素数,使得 1024 位和 2048 位密钥几乎可以从公钥中分解。受影响的库自 2012 年起就已在芯片中发货,同时获得 FIPS 140-2 和通用标准 EAL5+ 认证。此缺陷存在于验证存在的确切功能——密钥生成中,而该过程在五年内没有发现任何问题。爱沙尼亚因此暂停了其国家身份证。EUCLEAK(2024)。英飞凌的 ECDSA 实现中的非恒定时间模逆允许通过电磁侧信道提取私钥。NinjaLab 的论文指出,该缺陷在大约 80 次最高级别的通用标准评估中未被注意长达 14 年。Yubico 的公告确认 YubiKey 5 FIPS 系列和 YubiHSM 2 FIPS 均受影响,且由于 YubiKey 固件不可现场升级,修复方法是更换硬件。Dual_EC_DRBG(2004-2014)。十年来,一种被怀疑为 NSA 后门的随机数生成器是一个 NIST 批准的算法,由同一个验证所有其他内容的程序验证入模块,并且是 RSA 的 FIPS 验证 BSAFE 库中的默认 RNG。NIST 在 2014 年从 SP 800-90A 中删除了它,因为斯诺登文件强迫了该问题。涵盖这些模块的每个证书在整个过程中都是准确的:算法是经过批准的,并且正确实现。YubiKey FIPS 系列(2019)。这需要特别关注,因为 FIPS 要求不仅未能发现缺陷,反而导致了缺陷。在固件 4.4.2 和 4.4.4 中,开机后保存随机值的缓冲区包含了来自 FIPS 开机自检的可预测内容:在使用 256 位随机数的 ECDSA 操作中最多含有 80 个可预测位,这远远在其保障范围之内。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡