1. Arm DRTM技术架构解析
动态可信度量技术(DRTM)是构建现代安全计算环境的核心机制,其架构设计融合了硬件安全扩展与密码学验证技术。在Arm体系结构中,DRTM通过动态启动过程建立从硬件层到应用层的完整信任链,相比传统的静态可信度量(SRTM)具有更细粒度的控制能力。
1.1 核心组件与信任边界
DRTM架构包含三个关键执行实体:
-
DCE Preamble:作为动态启动的发起者,负责准备执行环境。主要职责包括:
- 确保除启动PE外的所有处理单元处于关闭状态(通过PSCI_CPU_OFF验证)
- 分配DLME(Dynamic Loadable Measured Environment)内存区域
- 配置DRTM_PARAMETERS参数结构体
- 设置内存保护表(针对DMA攻击防护)
-
D-CRTM:动态可信度量根,相当于硬件信任锚点。在firmware-backed实现中,其关键行为包括:
- 验证启动PE的合法性(防止非授权核心执行)
- 重置TPM动态PCR寄存器(PCR17-22)
- 度量DCE镜像和公钥(EVTYPE_ARM_DCE/EVTYPE_ARM_DCE_PUBKEY事件)
- 处理安全中断配置(EVTYPE_ARM_SECURE_INT_DISABLE事件)
-
DLME:最终被度量的执行环境,接收以下参数:
- X0寄存器:DLME区域的物理基地址
- X1寄存器:DLME数据区偏移量
- 必须运行在最高非安全异常等级(通常为EL2或EL1)
关键设计原则:信任边界逐步收缩。DCE Preamble作为非安全世界组件不被信任,其行为需经D-CRTM验证;D-CRTM作为最小化信任基(TCB),仅约数千行代码;最终DLME作为扩展TCB,其完整性通过哈希度量保证。
1.2 与TPM的协同机制
DRTM利用TPM 2.0芯片实现以下安全功能:
PCR使用策略:
| PCR寄存器 | 用途 | 扩展事件示例 |
|---|---|---|
| 17 | DCE镜像度量 | EVTYPE_ARM_DCE |
| 18 | DCE公钥度量 | EVTYPE_ARM_DCE_PUBKEY |
| 19 | 安全配置状态 | EVTYPE_ARM_SECURE_INT_DISABLE |
| 20 | DLME镜像度量 | EVTYPE_ARM_DLME |
| 23 | 分隔符事件 | EVTYPE_ARM_SEPARATOR |
事件日志记录规范:
- 每个事件包含:
c复制struct { uint32_t pcrIndex; uint32_t eventType; uint8_t digest[32]; // SHA-256哈希值 uint32_t eventDataSize; uint8_t eventData[]; } __attribute__((packed)); - 特殊事件处理:
- EVTYPE_ARM_NO_ACTION:仅记录日志不扩展PCR
