1. Arm DRTM技术解析:动态信任根的硬件与固件实现
在当今计算环境中,系统启动过程的安全验证已成为构建可信执行环境的基础要求。动态信任根测量(Dynamic Root of Trust for Measurement, DRTM)作为可信计算领域的关键技术,通过在运行时动态建立信任链,为系统提供了比传统静态信任链更灵活的安全保障机制。与静态信任链不同,DRTM允许在系统运行过程中随时启动一个新的可信执行环境,这对云原生、边缘计算等需要动态工作负载的场景尤为重要。
1.1 DRTM的核心组件与工作原理
DRTM架构的核心是D-CRTM(Dynamic Core Root of Trust for Measurement)模块,这是整个动态信任链的起点。D-CRTM作为系统中最先执行的可信代码,负责初始化信任链并验证后续组件的完整性。根据实现方式的不同,D-CRTM可以位于安全固件中(固件支持实现),也可以集成在专用安全协处理器内(硬件支持实现)。
DRTM的工作流程通常包含以下几个关键阶段:
- 动态启动事件(DL Event):由特权软件(如操作系统或虚拟机监控程序)发起,触发系统进入动态信任链建立过程
- D-CRTM执行:作为信任链的根,验证并加载动态核心扩展(DCE)
- DCE执行:负责准备执行环境,包括内存保护设置、平台状态测量等
- DLME加载:动态加载的可信模块(Dynamic Loadable Measured Environment)作为最终的执行环境
在整个过程中,可信平台模块(TPM)扮演着关键角色,用于存储各个阶段的测量值(measurements),这些测量值后续可用于验证系统状态的完整性。
1.2 Arm架构下的DRTM实现特点
Arm的DRTM实现基于其TrustZone技术,充分利用了Armv8-A架构的异常级别(EL)设计。在典型的实现中:
- **安全世界(Secure World)**运行在较高的异常级别(如EL3),负责关键的安全功能
- **普通世界(Normal World)**运行在较低异常级别(如EL2/EL1),执行常规操作系统和应用程序
Arm的DRTM规范与TCG(Trusted Computing Group)的DRTM架构保持概念上的一致,但在具体实现上有几个关键差异:
- PCR使用约定不同:Arm不使用TCG定义的PCR.Authorities等术语
- 支持动态区域关闭:Arm引入了关闭动态区域(locality)的概念
- 资源保护机制差异:Arm利用其安全异常级别来保护敏感资源,而非TCG的敏感资源概念
- 数据结构简化:Arm使用自己的参数结构替代了TCG定义的多个数据结构
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件支持与固件支持的DRTM实现对比
2.1 固件支持的DRTM实现
在固件支持的实现方案中,D-CRTM作为安全固件的一部分运行。这种实现方式具有较高的灵活性,可以根据具体需求将不同组件部署在不同的特权级别:
2.1.1 典型部署模式
-
集中式部署:D-CRTM和DCE都位于EL3的安全固件中(如图4所示)。这种模式简化了信任边界,所有关键操作都在最高特权级别完成。
-
分离式部署:DCE完全位于普通世界固件中(如图6所示)。这种模式可以减少安全世界的代码量,但需要更复杂的安全边界管理。
-
混合部署:DCE的初始阶段在安全固件,后续阶段在普通世界固件(如图7所示)。这种折中方案平衡了安全性和灵活性。
c复制// 伪代码:固件支持的DRTM初始化流程示例
void drtm_init_firmware_backed() {
// 1. 验证DCE签名
if (!verify_dce_signature(dce_image)) {
handle_error(INVALID_SIGNATURE);
}
// 2. 测量DCE到TPM
extend_pcr(PCR_DCE, hash(dce_image));
// 3. 设置内存保护
setup_dma_protection(drtm_params);
// 4. 执行DCE
execute_dce(dce_entry_point);
}
2.1.2 固件实现的优势与挑战
优势:
- 部署灵活,可适配不同硬件平台
- 更新维护方便,可通过固件升级增强功能
- 开发成本相对较低,无需专用硬件
挑战:
- 信任链依赖于固件完整性,受攻击面较大
- 安全保证级别受限于软件实现
- 性能开销相对较
