2、硬件安全基础:安全术语(密钥、证书、信任根)、常见攻击类型(侧信道、故障注入、调试攻击)及HSM防护原理
在MCU(微控制器)的HSM(硬件安全模块)应用开发中,理解安全术语、攻击类型与防护原理是构建可信系统的基石。本章将围绕密钥、证书、信任根三大核心术语展开,剖析侧信道、故障注入、调试攻击三类典型攻击手段,并深入讲解HSM如何通过硬件隔离、密码学加速与安全生命周期管理实现纵深防御。掌握这些基础概念,是后续进行安全启动、安全通信、安全固件更新等高级应用开发的前提。
上图展示了MCU HSM安全架构的核心组件与攻击面。信任根、密钥管理和证书体系构成安全基础,而侧信道、故障注入和调试攻击是主要威胁。HSM通过硬件隔离和专用安全机制提供防护。下面我们将逐一深入探讨这些概念。
2.1 核心安全术语:密钥、证书与信任根
2.1.1 密钥:安全体系的基石
密钥是密码学运算的核心参数,决定了加密、解密、签名和验证等操作的安全性。在MCU HSM环境中,密钥管理涉及多个层面:对称密钥(如AES-128/256)用于高效的数据加密和MAC计算;非对称密钥(如RSA-2048/ECC-256)用于数字签名和密钥交换。HSM内部通常采用密钥分级策略:主密钥(KEK)加密其他密钥,会话密钥用于临时通信,工作密钥用于具体业务。
密钥的生命周期管理包括生成、分发、使用、更新、撤销和销毁。HSM硬件提供安全密钥存储区域(如OTP或专用Flash),确保密钥明文永不离开安全边界。例如,在车规级MCU中,每个芯片在出厂时都会烧录唯一的硬件唯一密钥(DUCK),该密钥仅HSM可访问,用于派生其他密钥。
| 密钥类型 | 算法示例 | 典型用途 | 存储位置 |
|---|---|---|---|
| 主密钥(KEK) | AES-256 | 加密其他密钥 | HSM OTP/安全Flash |
| 会话密钥 | AES-128 | 一次通信加密 | HSM RAM(易失) |
| 签名密钥 | RSA-2048/ECC-256 | 固件签名/认证 | HSM安全存储 |
| DUCK | AES-128/256 | 芯片唯一身份 | eFuse/OTP |
2.1.2 证书:建立信任的桥梁
证书本质上是将公钥与实体身份绑定的数字文档,由证书颁发机构(CA)签名。在MCU系统中,X.509证书链用于验证设备身份和固件来源。典型的证书链包括:根证书(自签名,存储在HSM信任根中)、中间证书(由根CA签发)和设备证书(由中间CA签发)。
证书验证流程通常包含:①解析证书链;②验证签名有效性;③检查证书有效期;④查询CRL(证书撤销列表)或OCSP(在线证书状态协议)。在嵌入式环境中,由于资源受限,常采用预置根证书和精简证书链的方式。例如,车载ECU在安全启动时,会使用HSM中预置的根证书公钥验证引导加载程序的签名证书。
2.1.3 信任根:安全世界的锚点
信任根(Root of Trust, RoT)是系统中无条件受信任的组件,所有安全验证都以此为起点。在MCU HSM中,信任根通常由以下元素构成:不可变引导代码(存储在ROM中)、硬件唯一密钥(eFuse)、安全调试控制(JTAG锁定)和真随机数发生器(TRNG)。信任根的核心特性是不可篡改性——即使攻击者获得完全控制权,也无法修改信任根代码或密钥。
信任根建立的过程称为信任链传递:HSM首先验证引导加载程序(Bootloader)的签名,Bootloader再验证应用固件的签名,逐级建立信任。这种链式验证确保任何一级代码被篡改都会导致启动失败。
2.2 常见攻击类型:攻击者的视角
2.2.1 侧信道攻击:从物理泄露中提取秘密
侧信道攻击利用密码设备在运行时的物理信息泄露(功耗、电磁辐射、时间等)来提取密钥。主要形式包括:简单功耗分析(SPA)直接观察功耗轨迹识别操作模式;差分功耗分析(DPA)通过统计方法分析大量功耗轨迹与密钥的相关性;电磁辐射分析(EMA)使用探针采集芯片表面的电磁场变化;时间攻击通过测量不同输入下的运算时间差异推断密钥。
以DPA攻击为例,攻击者需要:①采集1000-10000条功耗轨迹;②选择中间值函数(如S-box输出);③假设密钥候选值;④计算相关系数。当某个密钥候选值的相关系数显著高于其他值时,即被确认为正确密钥。这种攻击对未加防护的AES实现非常有效。
2.2.2 故障注入攻击:破坏正常执行流程
故障注入攻击通过外部物理手段干扰芯片正常工作,使安全机制失效。常见方法包括:电压毛刺(在电源引脚注入短暂高压/低压脉冲)、时钟毛刺(改变时钟频率导致时序错误)、激光注入(用激光照射特定晶体管区域改变其状态)、电磁故障注入(EMFI)(用电磁脉冲干扰芯片逻辑)。
典型攻击场景是跳过安全校验:攻击者在固件签名验证指令执行时注入时钟毛刺,使条件跳转指令被跳过,从而加载未签名的恶意固件。另一种场景是降低安全等级:在安全状态机切换时注入故障,将芯片从安全模式切换到调试模式。
2.2.3 调试攻击:利用调试接口的漏洞
调试攻击是最直接的攻击方式之一,主要针对JTAG、SWD等调试端口。如果调试接口未正确锁定,攻击者可以:①读取Flash和RAM内容提取固件和密钥;②修改内存数据绕过安全检查;③设置断点观察敏感操作;④直接控制CPU执行任意代码。
在开发阶段,调试接口通常是开放的,但产品出厂前必须永久锁定调试端口。然而,一些攻击者会尝试调试接口重放攻击——通过记录和重放合法的调试命令序列来绕过锁定机制。此外,边界扫描攻击利用JTAG的边界扫描功能读取芯片内部寄存器状态。
2.3 HSM防护原理:硬件级的安全屏障
2.3.1 硬件隔离与安全边界
HSM的核心防护机制是物理隔离。在MCU内部,HSM拥有独立的CPU核心、存储器和外设,与主应用处理器(AP)完全隔离。这种隔离确保即使AP被完全攻破,攻击者也无法直接访问HSM的安全资源。HSM与AP之间通过安全消息传递接口(如Mailbox)通信,所有请求都经过严格的权限验证。
硬件隔离还体现在内存保护单元(MPU)和安全属性单元(SAU)上。MPU为HSM代码和数据设置访问权限,防止AP侧代码越权访问;SAU则定义内存区域的安全/非安全属性,实现ARM TrustZone级别的隔离。
2.3.2 密码学加速与安全存储
HSM内置硬件密码学加速器,支持AES、RSA、ECC、SHA等算法。这些加速器不仅提高运算速度,更重要的是通过硬件实现侧信道防护——例如,AES引擎采用掩码技术和隐藏技术,使功耗轨迹与密钥的相关性降到最低。HSM还提供安全密钥存储,密钥以密文形式存储在专用Flash区域,由硬件加密引擎保护,即使通过物理探针也无法直接读取明文密钥。
2.3.3 安全生命周期与防篡改机制
HSM支持安全生命周期管理,通常分为:开发模式(Debug)、生产模式(Production)、锁定模式(Locked)和失效模式(Bricked)。在生命周期状态转换时,HSM会执行严格的认证流程,防止非法状态回退。例如,从生产模式切换到锁定模式后,调试端口永久关闭,且无法恢复。
防篡改机制包括:电压/温度/频率传感器检测异常环境条件;主动屏蔽层覆盖芯片敏感区域,任何物理侵入都会触发安全擦除;安全监控定时器检测程序执行异常。一旦检测到攻击行为,HSM会立即擦除敏感数据并进入安全失效状态。
2.4 常见误区与设计建议
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 仅依赖软件加密 | 密钥易被提取,性能低下 | 使用HSM硬件加速器 |
| 调试接口未锁定 | 固件和密钥泄露 | 出厂前永久锁定调试端口 |
| 忽略侧信道防护 | 密钥被DPA攻击提取 | 使用掩码/隐藏技术 |
| 信任根存储不安全 | 信任链被破坏 | 使用OTP/eFuse存储 |
| 证书链不完整 | 无法验证设备身份 | 预置根证书并实现CRL检查 |
在设计MCU HSM应用时,建议遵循以下原则:①最小化信任面——只在HSM内执行关键安全操作;②纵深防御——结合多种防护机制,不依赖单一安全措施;③安全默认配置——出厂时即启用最高安全等级;④定期安全评估——通过渗透测试和侧信道分析验证防护有效性。
总结而言,理解密钥、证书和信任根是构建安全系统的基础,认识侧信道、故障注入和调试攻击有助于针对性设计防护措施,而HSM的硬件隔离、密码学加速和生命周期管理提供了强大的安全屏障。在实际开发中,需要根据具体应用场景和安全需求,合理配置HSM功能,平衡安全性与性能开销。