1. KMU架构概述
密钥管理单元(Key Management Unit,KMU)是Arm架构中专门设计用于保护密钥材料的硬件安全模块。作为SoC安全体系的核心组件,KMU通过物理隔离和加密传输机制,为系统提供端到端的密钥保护方案。
1.1 设计目标与安全特性
KMU的核心设计目标是在整个密钥生命周期中实现"不可见性"保护:
- 存储阶段:密钥以加密形态存储在硬件隔离区域,软件无法直接读取
- 传输阶段:采用动态掩码技术保护总线传输过程
- 使用阶段:仅允许密钥导出到指定的密码学协处理器
典型应用场景包括:
- 安全启动过程中的密钥派生
- TEE(可信执行环境)的密钥保护
- 硬件加密引擎(如AES/SHA)的密钥供给
- 设备唯一密钥(DUK)的安全存储
安全防护机制对比表:
| 威胁类型 | 防护措施 | 实现方式 |
|---|---|---|
| 物理探测 | 动态掩码 | LWMF/RWMF联合防护 |
| 时序分析 | 随机延迟 | PRBG生成随机间隔 |
| 故障注入 | 奇偶校验 | 寄存器级奇偶校验 |
| 软件攻击 | 硬件隔离 | 安全APB访问控制 |
1.2 硬件组成架构
KMU采用模块化设计,主要功能单元包括:
密钥存储区
- 硬件密钥槽(Hardware Key Slots):预烧录的根密钥和设备唯一密钥
- 软件密钥槽(Software Key Slots):运行时由安全软件动态配置的会话密钥
安全传输通道
- 密钥导出器(Key Exporter):控制密钥的安全传输流程
- 本地写掩码过滤器(LWMF):在KMU端对传输密钥进行动态掩码
- 远程写掩码过滤器(RWMF):在目标设备端解除掩码
辅助安全模块
- 伪随机数生成器(PRBG):为掩码和延迟提供随机源
- 随机延迟寄存器:抵抗时序分析攻击
- 奇偶校验单元:检测存储和传输错误
总线接口方面,KMU提供:
- APB4编程接口:用于软件配置(仅安全域可访问)
- 私有APB3密钥加载接口:专用于硬件密钥初始化
- AHB5导出接口:加密密钥传输通道
2. 密钥存储机制详解
2.1 硬件密钥槽设计
硬件密钥槽用于存储不可变
