2、硬件安全基础:芯片生命周期、硬件信任根、安全边界、常见硬件攻击面
硬件安全是信息系统安全的物理基石。与软件漏洞不同,硬件攻击往往具有不可逆性、隐蔽性强且难以在线修复的特点。理解芯片从制造到废弃的完整生命周期、建立硬件信任根、明确安全边界,并熟悉常见的物理攻击接口,是开展硬件安全评估与侧信道分析的前提。本章将围绕这四个核心维度展开,帮助读者建立系统化的硬件安全认知框架。
上图展示了硬件安全的核心框架:芯片生命周期定义了信任的演进过程,硬件信任根提供初始可信基点,安全边界划定了防护范围,而常见攻击面则是攻击者可能突破的入口。四者相互关联,共同构成硬件安全评估的完整视图。
2.1 芯片生命周期与信任模型
核心原理
芯片从设计到废弃经历多个阶段,每个阶段都有不同的参与者、物理环境和信任假设。设计阶段由IP供应商和设计团队主导,制造阶段引入代工厂,封装测试阶段涉及第三方封测厂,最终在系统集成商处被嵌入产品。攻击者可能在任一环节植入硬件木马、替换物料或窃取设计数据。因此,芯片生命周期管理的关键在于:明确每个阶段的信任边界,并建立可验证的完整性机制。
生命周期阶段与风险分析
| 阶段 | 主要参与者 | 信任假设 | 主要风险 |
|---|---|---|---|
| 设计/流片 | 设计团队、EDA工具 | 工具链可信 | 恶意逻辑插入、后门设计 |
| 制造/封装 | 代工厂、封测厂 | 代工厂不恶意修改 | 硬件木马、晶圆替换 |
| 测试/编程 | 测试工程师 | 测试程序完整 | 测试模式泄露、密钥烧录泄露 |
| 集成/部署 | 系统集成商 | 物料供应链安全 | 物料替换、克隆 |
| 运行/维护 | 最终用户 | 固件更新可信 | 固件篡改、调试接口滥用 |
| 退役/销毁 | 回收方 | 数据不可恢复 | 数据残留、芯片逆向 |
案例拆解:伪造芯片的供应链攻击
某工业控制设备制造商发现其产品在高温环境下频繁故障。经分析,故障芯片的丝印标记与正品一致,但内部晶圆布局存在细微差异——实际为回收芯片重新打磨标记的伪造品。这些伪造芯片在二手市场被收购后,经过重新封装和打标,混入正常供应链。由于伪造芯片的可靠性远低于正品,导致设备在严苛环境下失效。该事件暴露了供应链信任的脆弱性:仅依赖外观检查和丝印验证远远不够,必须建立基于物理不可克隆函数(PUF)或安全芯片的认证机制。
常见误区与复盘
- 误区一:认为芯片出厂后就是安全的。实际上,调试接口(如JTAG)在出厂后若未正确锁定,将成为最直接的攻击入口。
- 误区二:忽视退役阶段的数据销毁。简单的格式化或擦除操作可能无法彻底清除Flash中的残留数据,需使用安全擦除算法。
- 复盘要点:建立芯片全生命周期的资产台账,记录每个阶段的交接状态、责任人、安全措施和验证结果。
2.2 硬件信任根(HRoT)
核心原理
硬件信任根是系统中无条件信任的硬件组件,它作为安全启动链的起点,为后续所有软件组件提供可信基础。信任根通常包含不可变引导ROM、安全存储(如eFuse)、安全协处理器等。其核心思想是:信任从一个小而可信的硬件基础开始,通过逐级哈希验证和签名校验,将信任扩展到引导加载程序、操作系统内核和应用程序。
信任链的建立与验证流程
- 芯片上电后,CPU从不可变ROM开始执行,该ROM代码在制造时固化,无法被修改。
- ROM代码读取外部Flash中的第一阶段引导程序(FSBL),计算其哈希值并与存储在eFuse中的参考值比对。
- 若哈希匹配,则执行FSBL;FSBL继续验证下一级引导程序(如U-Boot)的签名。
- 逐级验证直至操作系统内核,任何一级验证失败都会导致启动终止。
案例拆解:安全启动链的绕过尝试
某安全摄像头固件更新后,研究人员尝试通过修改Flash中的U-Boot来植入后门。然而,设备启用了安全启动链:ROM代码验证U-Boot的签名,而签名密钥存储在eFuse中且已熔断写保护。研究人员尝试两种绕过方式:一是通过电压故障注入跳过签名验证指令,二是尝试读取eFuse中的密钥。前者因芯片内置了电压监测器而失败,后者因eFuse的物理防护机制而无法读取。最终,研究人员转向攻击未受保护的UART调试接口,成功获取了Shell访问权限——这暴露了信任根虽强,但外围接口管理薄弱的问题。
常见误区与总结
- 误区一:认为安全启动等于安全。安全启动只保证固件的完整性,不保证系统运行时的安全性。
- 误区二:忽视密钥管理。eFuse中的密钥若在测试阶段未妥善保护,可能在晶圆测试时被探针窃取。
- 总结:硬件信任根是安全体系的基础,但必须配合完整的密钥管理、接口控制和运行时监控才能发挥效用。
2.3 安全边界与信任域划分
核心原理
安全边界是系统内不同信任级别之间的分界线。在硬件层面,安全边界可以是芯片封装、电源域、时钟域或总线隔离;在逻辑层面,可以是特权模式与非特权模式的切换。安全边界的核心价值在于:即使某个子系统被攻破,攻击者也无法直接访问其他受保护资源。例如,ARM TrustZone技术通过物理隔离将系统划分为安全世界和普通世界,安全世界中的密钥和加密操作对普通世界完全不可见。
安全边界的类型与实现
| 边界类型 | 实现方式 | 防护目标 | 典型应用 |
|---|---|---|---|
| 物理边界 | 封装、屏蔽罩、PCB分层 | 防止物理探针、电磁泄漏 | 安全芯片、HSM |
| 逻辑边界 | CPU特权模式、MPU/MMU | 防止软件越权访问 | 操作系统内核隔离 |
| 时间边界 | 密钥生命周期、会话超时 | 防止重放攻击、密钥泄露 | 安全通信协议 |
| 侧信道边界 | 功耗均衡、噪声注入 | 防止侧信道分析 | 加密协处理器 |
| 故障注入边界 | 电压/时钟监测、冗余计算 | 防止故障注入攻击 | 支付终端、汽车ECU |
案例拆解:TrustZone在移动支付中的应用
某移动支付终端采用ARM TrustZone技术,将指纹识别和支付密钥存储置于安全世界,而操作系统和应用程序运行在普通世界。攻击者通过操作系统漏洞获取了root权限,但尝试访问安全世界中的指纹数据时,由于TrustZone的硬件隔离机制,所有访问请求被拒绝。攻击者转而尝试通过功耗分析获取安全世界中的密钥,但芯片内置了功耗均衡电路,使得功耗曲线与密钥相关性极低。最终,攻击者未能突破安全边界,支付终端的安全性得到验证。
常见误区与复盘
- 误区一:认为软件隔离(如虚拟化)可以替代硬件隔离。软件隔离依赖操作系统的正确性,一旦内核被攻破,隔离即失效。
- 误区二:忽视边界上的隐式通道。共享缓存、分支预测器等硬件资源可能成为侧信道攻击的媒介。
- 复盘要点:安全边界设计应遵循最小权限原则,每个边界都应明确其保护对象、信任假设和攻击模型。
2.4 常见硬件攻击面:JTAG、UART、SPI、I2C
核心原理
硬件攻击面是指攻击者可通过物理接触访问的接口和总线。这些接口原本用于调试、配置和数据传输,但若未加保护,将成为攻击者提取固件、注入数据或控制系统的通道。理解每个接口的协议特性和安全风险,是进行硬件安全评估的基础。
各接口的协议特征与攻击方法
| 接口 | 协议特征 | 典型用途 | 攻击方法 | 防护措施 |
|---|---|---|---|---|
| JTAG | IEEE 1149.1,边界扫描 | 芯片调试、Flash编程 | 读写寄存器、内存、Flash | 禁用JTAG、设置密码、物理熔断 |
| UART | 异步串行,TXD/RXD | 调试日志、控制台 | 获取Shell、嗅探数据 | 禁用调试账号、加密通信 |
| SPI | 同步串行,MOSI/MISO/SCK/CS | 连接Flash、传感器 | 嗅探固件、篡改数据 | 总线加密、写保护 |
| I2C | 同步串行,SDA/SCL | 连接EEPROM、RTC | 地址扫描、读写配置 | 访问控制、地址隐藏 |
案例拆解:通过UART获取路由器Root Shell
某家用路由器被研究人员发现其PCB上留有UART测试点。使用逻辑分析仪以115200波特率监听,捕获到启动日志,其中包含"Dropbear SSH server starting"信息。进一步连接UART的TXD/RXD引脚,通过串口终端发送回车键,直接获得了root Shell——因为设备在出厂时未禁用调试控制台,且未设置登录密码。攻击者随后修改了路由器的DNS设置,将用户流量重定向至恶意服务器。该案例表明,UART调试接口若未妥善处理,将成为最直接的攻击入口。
常见误区与总结
- 误区一:认为物理接口不可访问就安全。攻击者可通过X射线、聚焦离子束(FIB)等高级手段绕过物理防护。
- 误区二:忽视接口的间接攻击路径。例如,通过I2C连接的传感器可能被恶意配置,导致系统读取错误数据。
- 总结:硬件攻击面的管理应遵循"默认安全"原则:所有非必要接口在出厂时禁用,必要接口需实施认证和加密。