SPDM和RMS的关联
在 DMTF 的体系里,SPDM 与 RMS 并不是“并列”关系,而是“把 RMS 当作信任锚(Root-of-Trust)去喂养 SPDM”的上下游关系。
一句话:RMS 负责“造信任”,SPDM 负责“用信任”。下面按“是什么-怎么存-怎么传-怎么用”四个维度拆开说明。
一句话:RMS 负责“造信任”,SPDM 负责“用信任”。下面按“是什么-怎么存-怎么传-怎么用”四个维度拆开说明。
1. 角色定位:RMS 是“信任根仓库”,SPDM 是“现场验证协议”
缩写 | 全称 | 在生态里的使命 |
---|---|---|
RMS | RIM Repository & Manager Service(DMTF DSP0288) | 统一存储、管理、分发“参考完整性度量(RIM)”文件——相当于设备的“官方体检报告” |
SPDM | Security Protocol & Data Model(DSP0274) | 现场完成“你是谁+固件是否被改过”的握手;验证时需要把“现场测到的摘要”跟“官方 RIM 里的摘要”比对 |
2. 数据模型:RIM 文件就是 SPDM 要用的“黄金 digest”
-
RIM 文件格式 = CMS 签名的 JSON-bundle,内含:
– 设备型号 + 厂商 GUID
– 固件/PCB 版本号
– 参考摘要列表(SHA-256/384/512 可选)
– 签名证书链(Root 就是厂商 CA,通常和 SPDM slot0 证书同根) -
SPDM 的 GET_DIGESTS/GET_MEASUREMENTS 返回的摘要值,必须跟 RIM 里“黄金值”逐字节相等,否则 CHALLENGE_AUTH 阶段就会报 MEASUREMENTS_MISMATCH。
3. 交互流程:SPDM 把“现场值”送回 RMS 校验(两种部署模式)
-
模式 A 适合数据中心:BIOS 闪存里提前放 RIM,开机 0.3 s 内完成比对,零外网依赖。
-
模式 B 适合边缘/零信任:Requester 先拿设备版本号去 RMS 查最新 RIM,再比对,保证“永远用最新体检报告”。
4. 证书链衔接:RMS 与 SPDM 共用同一套 PKI
-
RMS 对 RIM 文件的签名证书 ⇔ SPDM Responder 证书链里某一中间 CA 或 Root。
-
这样 SPDM 在 CHALLENGE 阶段验证完设备证书链后,自然“顺带”验证了 RIM 签名——一次验签,双重目的。
5. 一个最小可运行的“SPDM + RMS”实战片段
-
厂商发布 NVMe 固件 v1.4.7,同时在 RMS 服务器上传 RIM 文件:
Samsung_PM9E1_v1.4.7.rim
(含 4 段 48 B SHA-384 摘要,签名证书同 SPDM slot0)。 -
服务器 BIOS 开机,通过 MCTP/PCIe VDM 向 SSD 发 GET_MEASUREMENTS。
-
SSD 返回 4 段现场摘要。
-
BIOS 把现场值与本地预装的 RIM 文件比对 → 完全匹配 → 继续后续 KEY_EXCHANGE。
-
若攻击者把 SSD 固件回滚到 v1.4.6,摘要必然对不上,BIOS 直接终止握手并报警到带外日志。
6. 小结记忆口诀
“RMS 管‘答案’,SPDM 管‘考试’;考试不及格,设备就下线。”
-
RMS 给出的 RIM 文件 = 标准答案
-
SPDM 现场测量 = 考生答卷
-
二者比对 = 阅卷过程
-
证书同根 = 保证答案不是伪造的
把这套机制跑通,就能在 毫秒级 完成“身份 + 完整性”双验证,而且不依赖联网、可批量自动化、可后量子平滑升级。