我们这两年测试企业级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 的核心目标:


  1. Device identity
  2. Device authentication
  3. Measurement(firmware integrity)
  4. Secure session establishment
  5. Key exchange

SPDM 在 PCIe / CXL / NVMe 等体系中通常用于:

  • Host 验证设备是否可信
  • 设备验证 Host 环境
  • 建立安全通信会话

二、DOE 是什么

DOE = Data Object Exchange

DOE 是 PCIe specification 中的一个 Extended Capability

DOE 提供一个 Mailbox 机制,允许 Host 软件和 PCIe 设备交换结构化数据对象,例如:

  • SPDM 消息
  • 安全管理消息
  • 设备测量数据

换句话说:


  1. DOE =PCIe中传输安全消息的通道

PCI-SIG文档说明:

  • DOE 允许 Host 与 PCIe 设备之间交换数据对象
  • SPDM 等安全协议可以通过 DOE 传输

DOE 的特点:

  • 位于 PCIe configuration space
  • 使用 mailbox registers
  • Host 通过 config read/write 访问

结构示意:


  1. PCIe device
  2. └─ DOE ExtendedCapability
  3. └─ DOE mailbox

Host 通过该 mailbox 与设备交换安全消息。


三、IDE 是什么

IDE = Integrity and Data Encryption

IDE 是 PCIe 的 链路安全机制

IDE 的作用:

  • 对 PCIe TLP 数据进行加密
  • 提供完整性保护
  • 防止数据篡改
  • 防止重放攻击

IDE 使用 AES-GCM 加密算法对 PCIe 传输的数据包进行保护。

IDE 保护的是:


  1. PCIe Transaction Layer Packets(TLP)

IDE 在 PCIe / CXL 系统中的目标是:

  • 防止物理链路窃听
  • 防止链路数据被篡改

四、SPDM、DOE、IDE 的关系

这三个技术的关系是:


  1. SPDM
  2. DOE (transport)
  3. PCIe
  4. IDE (link encryption)

具体作用:

技术

作用

SPDM

认证与密钥协商

DOE

PCIe上交换SPDM消息

IDE

用协商出的密钥加密PCIe链路

IDE 需要 密钥管理协议(IDE_KM),而这些密钥通常通过 SPDM 会话建立后传输


五、Host 与 Device 的初始化流程

在 PCIe / CXL 安全体系中,Host 与 Device 的交互流程大致如下。


第1阶段:PCIe设备枚举

系统启动时:


  1. Host
  2. PCIe enumeration
  3. 发现device capability
  4. 检测 DOE capability

如果设备支持安全功能,会在 PCIe capability 中暴露:


  1. DOE capability
  2. IDE capability

第2阶段:SPDM认证流程

Host 与 Device 通过 DOE mailbox 进行 SPDM 通信。

流程示意:


  1. Host                       Device
  2. ─────────────────────────────────
  3.  GET_VERSION  ───────────────►
  4. ◄──────────── VERSION
  5.  GET_CAPABILITIES ───────────►
  6. ◄──────────── CAPABILITIES
  7.  GET_DIGESTS ────────────────►
  8. ◄──────────── DIGESTS
  9.  GET_CERTIFICATE ────────────►
  10. ◄──────────── CERT_CHAIN
  11.  CHALLENGE ──────────────────►
  12. ◄──────────── SIGNATURE

这个阶段完成:

  • 设备身份认证
  • 证书验证
  • 固件测量验证

第3阶段:建立安全会话

认证完成后建立 SPDM secure session:


  1. KEY_EXCHANGE
  2. FINISH

此时双方生成:


  1. session keys

SPDM secure session 支持:

  • encryption
  • MAC
  • replay protection

第4阶段:IDE Key 管理

安全会话建立后,Host 通过 IDE_KM 协议配置 IDE 密钥。

流程示意:


  1. Host                      Device
  2. ─────────────────────────────────
  3.  IDE_KM_KEY_SET ───────────►
  4. ◄──────────── ACK
  5.  IDE_KM_KEY_ACTIVATE ──────►
  6. ◄──────────── ACK

这些消息在:


  1. SPDM secure session

内部传输。


第5阶段:IDE链路加密启动

IDE启动后:


  1. PCIe TLP traffic

全部通过 IDE 加密。

IDE保护:


  1. PCIe TLP payload

提供:

  • confidentiality
  • integrity
  • replay protection

六、完整安全初始化流程

整个 Host / Device 初始化流程如下:


  1. 1PCIe enumeration
  2. 2Host发现DOE capability
  3. 3  SPDM认证
  4. 4  SPDM建立secure session
  5. 5  IDE_KM密钥管理
  6. 6  IDE链路加密启动
  7. 7正常PCIe通信

架构示意:


  1. Host
  2. SPDM authentication
  3. DOE mailbox
  4. PCIe
  5. IDE encryption
  6. 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链路加密

关系:


  1. SPDM →建立安全会话
  2. DOE  →传输SPDM消息
  3. IDE  →加密PCIe链路

//* 当前SPDM最新版本是1.3.3,感兴趣的可以直接到下面链接下载:https://www.dmtf.org/sites/default/files/standards/documents/DSP0274_1.3.3.pdf

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐