安全合规基础:FIPS 140-2/3 认证等级与要求

做 HSM 集成,第一个躲不开的就是 FIPS。说白了,FIPS 就是给加密设备打分的一个标准。你拿到的 HSM 到底安不安全,能用在什么场景,看它的 FIPS 等级就知道了。

我记得 2019 年,FIPS 140-3 刚刚发布那会儿,我正好在帮一家银行迁移支付 HSM 系统。当时厂商给了个文档,说新设备支持「FIPS 140-3 认证」。结果我们一查,他们拿的还是 140-2 Level 3 的证书。嗯,这里要注意,认证本身是绑硬件的,不是你软件说支持就行。

FIPS 到底是什么?

FIPS(Federal Information Processing Standards)是美国联邦政府的标准。FIPS 140 系列专门管加密模块——你用的 HSM、加密卡、TLS 加速器,只要涉及密钥运算,都归它管。

目前有效的版本是 FIPS 140-2(过度期)和 FIPS 140-3(正代)。140-3 发布于 2019 年,2021 年开始正式接受认证申请。过渡期到 2026 年截止。我个人习惯是:新项目直接看 140-3,旧项目看对方要求。如果对方提 140-2,也要确认一下能不能在新固件上继续合规。

四个安全等级

FIPS 把加密模块划分为 4 个等级,1 级最低,4 级最高。我直接拿项目中的经验跟你讲每个等级的含义。

等级 核心要求 我眼中的含义
Level 1 仅要求使用经过认证的算法实现 软件加密库就已满足,没有物理防护
Level 2 防篡改封条 + 基于角色的认证 你可以看到盒子有没有被拆过
Level 3 物理防篡改 + 身份认证 + 密钥零化 拆开模块会自动销毁密钥,最常用的等级
Level 4 环境失效保护 + 全包围防护 温度/电压异常会立即锁定,极少数场景用到

我的建议:金融和政务场景,直接选 Level 3 的 HSM。Level 2 太弱,Level 4 又贵又难维护。个人项目中你碰上 Level 3 的可能性最大。

FIPS 140-3 相比 140-2 到底变了什么?

你想想看,如果完全没变化,那干嘛要升级版本?我梳理了三条核心变化。

  • 算法要求更严格:140-2 还允许部分旧算法(比如 3DES、SHA-1),140-3 下这些算法被移出了允许列表。你在 140-3 设备上只能用 AES、SHA-256/384/512、ECC 等现代算法。
  • 强调生命周期安全(Lifecycle Assurance):140-3 把「模块从设计到退役的安全」都纳入了认证范围。曾经,我帮客户做升级评估时,发现他们旧 HSM 的管理接口居然还能通过串口绕开——这在 140-3 下是直接不合格的。
  • 软件可信路径(Trusted Path):140-3 要求 HSM 必须保证从应用层到底层加密服务的通信是「不可绕过」的。说白了,中间的中间人攻击必须是不可行的。

避坑指南:我曾经遇到一个厂商,说他们的 HSM 固件升级后支持 FIPS 140-3 模式。结果我在测试时发现,虽然算法列表对了,但没有处理密钥片段的物理保护。这其实是 Level 3 硬件要求,但那个设备原本只做了 Level 2 认证。硬件本身无法通过升级「变成」高安全等级。所以,一定要查 NIST 官方列表,不要只看厂商说明书。

认证状态和有效期

FIPS 140-2 的证书不会自动失效,但只要厂商发布新固件,就需要重新认证。140-3 的认证有效期同样跟产品版本绑在一起。

你如果在集成中看到类似「FIPS 140-2 Level 3(pending)」的写法,说明只送到实验室,还没拿到证书。我个人不会在生产环境里用 pending 状态的设备。

Level 3 的具体要求拆解

因为 Level 3 是 HSM 的最主流等级,我把它的核心要求再展开讲一讲。

  1. 防篡改与响应
    • 外壳必须有「入侵检测电路」
    • 检测到侵入后必须立即将密钥清零(键值归零时间要求小于 0.5 秒)
  2. 基于身份的认证
    • 需要使用数字证书或共享密钥,不能只靠口令
    • 支持双因素或多因素认证(常见:智能卡 + PIN)
  3. 安全接口
    • 明文密钥严禁暴露在模块物理边界之外
    • 所有加密运算只在模块内部完成
  4. 审计日志
    • 必须有不可修改的日志记录所有管理员操作
    • 日志本身可以导出,但不能被攻击者篡改

严重注意:我曾经在帮一家支付机构做合规审核时发现,他们的 HSM 虽然写了「Level 3」,但运维人员把审计日志直接存到了明文 NFS 共享上。这种操作在审计中被视为「破坏了安全模块的完整性边界」,直接判定为不合规。日志必须要么存在 HSM 内部,要么通过签名/加密方式保护。

集成时怎么查合规状态?

很简单。去 NIST 的 CMVP(Cryptographic Module Validation Program)官网搜索模块的厂商和型号。他们会列出每个模块的证书编号、认证版本、有效期、算法列表。注意看末尾的「Implementation Under Test」和「Validation」的区别。我个人一定只选标记为 Validation 的型号。

# 举个可以用在CI/CD里的检查脚本思路(伪代码)
curl -s "https://csrc.nist.gov/cryptomodule/api/v1/modules?keyword=Thales+HSM" | jq '.modules[] | select(.certificateStatus=="active")'

配合脚本可以自动检查 HSM 固件是否还处于有效认证期间。这在合规审计中非常有用。

本章核心逻辑图

下面的 SVG 图展示了我刚才讲的 FIPS 认证等级之间的递进关系。从 Level 1 到 Level 4,安全要求逐步加强,你在集成现场最常遇到的是 Level 2 和 Level 3 的分界线。

FIPS 140-2/3 安全等级核心逻辑 FIPS 140-2/3 安全等级逻辑树 Level 1 算法合规 (软件基础) Level 2 防篡改封条 (角色认证) Level 3 防篡改+自主零化 (最常用等级) Level 4 环境失效防护 (极端安全) 物理加固 密钥零化 全包围 现场关键判断 金融/政务: Level 3 电子商务: Level 2 国防/高密: Level 4 绝大多数 HSM 市场出货集中在 Level 2 和 Level 3 中间

这张图的逻辑很简单。Level 1 到 Level 2,核心变化是增加了物理封条和最简单的权限认证。Level 2 到 Level 3,升级了「防篡改检测和密钥零化」,这是我们做 HSM 集成最常见的分界线。Level 3 到 Level 4,加入了环境检测电路,连温度、电压异常都要触发防护。我个人对接过的 HSM 项目里,10 个中有 8 个是 Level 3。

最后提醒一句:合规不是一次性的

你拿到 HSM 设备时上面会贴一个 FIPS 认证标签。但只要你做了固件升级、更换了加密卡芯片、修改了底层操作系统配置,之前的认证就失效了。我曾经碰到过这样的坑:客户把 HSM 固件从 5.0 升级到 5.1,厂商没重新认证,结果审计时被开出严重不合规项。要么降级回旧版本,要么停机等新认证。

所以我的习惯是——在部署清单里加一行:「HSM 固件版本 × 对应 FIPS 证书有效期」,每次变更都跑一下 NIST 的接口检查一遍。