【每日一题】一次讲明白SPDM/DOE/IDE,为啥大家都用SerialTek和SanBlaze测试该功能

我们这两年测试企业级NVMe SSD的controller和盘的时候经常碰到一个术语叫SPDM,另外,我们也经常听到工程师问:你有没有工具可以尝试SPDM?我的SPDM是SPDM over DOE的,等等,诸如此类的东西。SerialTek PCIe 5.0(含)分析仪都支持DOE/IDE协议解码,SanBlaze RM6等产品都支持针对SPDM的上层的功能的自动化测试,我们今天就来讲讲这些基础概念,让大家清楚这些概念都是什么意思。
我们今天下面的资料完全基于公开资料(PCI-SIG / DMTF / CXL 等文档)整理的解释,讲一下三个概念 SPDM、DOE、IDE 的定义以及 Host 与 Device 初始化和交互流程,并说明它们之间的关系。

上图:SerialTek的PCIe协议分析仪支持DOE/IDE协议解码和诊断分析,训练器支持协议的packet生成


上面两图:SanBlaze SSD测试工具提供针对从SPDM 1.0~1.3的完整的测试脚本和测试用例,为业内主流公司所使用
一、SPDM 是什么
SPDM = Security Protocol and Data Model(DMTF定义)
SPDM 是一个 设备安全认证和安全会话建立协议,主要用于:
- 设备身份认证
- 设备固件完整性验证
- 安全会话建立
- 密钥交换
SPDM 可以让 两个硬件组件建立安全通信会话,并支持设备身份信息、测量值和证书的交换。
SPDM 的核心目标:
Device identityDevice authenticationMeasurement(firmware integrity)Secure session establishmentKey exchange
SPDM 在 PCIe / CXL / NVMe 等体系中通常用于:
- Host 验证设备是否可信
- 设备验证 Host 环境
- 建立安全通信会话
二、DOE 是什么
DOE = Data Object Exchange
DOE 是 PCIe specification 中的一个 Extended Capability。
DOE 提供一个 Mailbox 机制,允许 Host 软件和 PCIe 设备交换结构化数据对象,例如:
- SPDM 消息
- 安全管理消息
- 设备测量数据
换句话说:
DOE =PCIe中传输安全消息的通道
PCI-SIG文档说明:
- DOE 允许 Host 与 PCIe 设备之间交换数据对象
- SPDM 等安全协议可以通过 DOE 传输
DOE 的特点:
- 位于 PCIe configuration space
- 使用 mailbox registers
- Host 通过 config read/write 访问
结构示意:
PCIe device└─ DOE ExtendedCapability└─ DOE mailbox
Host 通过该 mailbox 与设备交换安全消息。
三、IDE 是什么
IDE = Integrity and Data Encryption
IDE 是 PCIe 的 链路安全机制。
IDE 的作用:
- 对 PCIe TLP 数据进行加密
- 提供完整性保护
- 防止数据篡改
- 防止重放攻击
IDE 使用 AES-GCM 加密算法对 PCIe 传输的数据包进行保护。
IDE 保护的是:
PCIe Transaction Layer Packets(TLP)
IDE 在 PCIe / CXL 系统中的目标是:
- 防止物理链路窃听
- 防止链路数据被篡改
四、SPDM、DOE、IDE 的关系
这三个技术的关系是:
SPDM↓DOE (transport)↓PCIe↓IDE (link encryption)
具体作用:
|
技术 |
作用 |
|---|---|
|
SPDM |
认证与密钥协商 |
|
DOE |
PCIe上交换SPDM消息 |
|
IDE |
用协商出的密钥加密PCIe链路 |
IDE 需要 密钥管理协议(IDE_KM),而这些密钥通常通过 SPDM 会话建立后传输。
五、Host 与 Device 的初始化流程
在 PCIe / CXL 安全体系中,Host 与 Device 的交互流程大致如下。
第1阶段:PCIe设备枚举
系统启动时:
Host↓PCIe enumeration↓发现device capability↓检测 DOE capability
如果设备支持安全功能,会在 PCIe capability 中暴露:
DOE capabilityIDE capability
第2阶段:SPDM认证流程
Host 与 Device 通过 DOE mailbox 进行 SPDM 通信。
流程示意:
Host Device─────────────────────────────────GET_VERSION ───────────────►◄──────────── VERSIONGET_CAPABILITIES ───────────►◄──────────── CAPABILITIESGET_DIGESTS ────────────────►◄──────────── DIGESTSGET_CERTIFICATE ────────────►◄──────────── CERT_CHAINCHALLENGE ──────────────────►◄──────────── SIGNATURE
这个阶段完成:
- 设备身份认证
- 证书验证
- 固件测量验证
第3阶段:建立安全会话
认证完成后建立 SPDM secure session:
KEY_EXCHANGEFINISH
此时双方生成:
session keys
SPDM secure session 支持:
- encryption
- MAC
- replay protection
第4阶段:IDE Key 管理
安全会话建立后,Host 通过 IDE_KM 协议配置 IDE 密钥。
流程示意:
Host Device─────────────────────────────────IDE_KM_KEY_SET ───────────►◄──────────── ACKIDE_KM_KEY_ACTIVATE ──────►◄──────────── ACK
这些消息在:
SPDM secure session
内部传输。
第5阶段:IDE链路加密启动
IDE启动后:
PCIe TLP traffic
全部通过 IDE 加密。
IDE保护:
PCIe TLP payload
提供:
- confidentiality
- integrity
- replay protection
六、完整安全初始化流程
整个 Host / Device 初始化流程如下:
1PCIe enumeration2Host发现DOE capability3 SPDM认证4 SPDM建立secure session5 IDE_KM密钥管理6 IDE链路加密启动7正常PCIe通信
架构示意:
Host│SPDM authentication│DOE mailbox│PCIe│IDE encryption│Device
七、在哪些场景会用到这些机制
这些机制主要用于 数据中心和安全计算环境:
典型场景包括:
1 PCIe设备认证
例如:
- NVMe SSD
- GPU
- SmartNIC
Host需要验证设备是否可信。
2 Confidential Computing
例如:
- Intel TDX
- AMD SEV
- CXL memory device
设备必须通过 SPDM 认证。
3 PCIe链路安全
IDE用于防止:
- PCIe链路窃听
- 数据篡改
- replay攻击
八、总结
三个概念的核心区别:
|
技术 |
全称 |
功能 |
|---|---|---|
|
SPDM |
Security Protocol and Data Model |
设备认证和安全会话 |
|
DOE |
Data Object Exchange |
PCIe上传输安全消息 |
|
IDE |
Integrity and Data Encryption |
PCIe链路加密 |
关系:
SPDM →建立安全会话DOE →传输SPDM消息IDE →加密PCIe链路
//* 当前SPDM最新版本是1.3.3,感兴趣的可以直接到下面链接下载:https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.3.pdf
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)