3、硬件安全基础:物理攻击面、侧信道攻击、故障注入、硬件木马、供应链风险
硬件安全是可信执行环境(TEE)与整体系统安全的信任根基。软件漏洞可以通过补丁修复,但硬件层面的缺陷一旦流片(Tape-out)便难以更改,且影响范围覆盖所有使用该芯片的设备。本章从物理攻击面出发,系统讲解侧信道攻击、故障注入、硬件木马与供应链风险四大核心威胁,帮助学员建立从芯片设计到产品部署全链路的硬件安全视野。
3.1 物理攻击面:从PCB到芯片内部
核心原理
物理攻击面指攻击者通过直接接触设备硬件,获取敏感信息或破坏安全机制的途径。与远程软件攻击不同,物理攻击要求攻击者拥有设备的物理访问权,但攻击效果往往更彻底——可以直接读取非易失存储中的密钥、绕过固件校验、甚至逆向芯片内部逻辑。物理攻击面按层次可分为板级攻击、封装级攻击和硅级攻击。
- 板级攻击:通过探测PCB上的走线、焊盘、测试点(TP)或未屏蔽的调试接口(UART、JTAG、SWD)获取数据。典型手段包括逻辑分析仪监听SPI/I2C总线、电压表测量电源纹波、热风枪拆焊存储芯片后离线读取。
- 封装级攻击:使用化学试剂(发烟硝酸)或激光开盖(Decapsulation)去除芯片封装材料,暴露内部Die。随后可用微探针(Probe Station)接触内部信号线,或直接观察金属层布线。
- 硅级攻击:使用聚焦离子束(FIB)对芯片进行电路修改,切断或连接内部连线,甚至植入后门。这类攻击成本极高,通常用于国家级对手或高端安全研究。
判断方法与操作流程
评估物理攻击面时,建议按以下流程进行威胁建模:
- 资产识别:明确需要保护的密钥、固件、用户数据存储在哪个芯片、哪个存储区域。
- 可达性分析:攻击者能否拆开外壳?是否暴露调试接口?存储芯片是否可拆卸?
- 攻击成本评估:从时间、设备、专业知识三个维度评估每种攻击路径的可行性。
- 缓解措施设计:优先阻断低成本攻击路径,如禁用未使用的调试接口、对敏感总线进行覆铜屏蔽、使用安全芯片存储密钥。
案例拆解:智能门锁的物理攻击
某智能门锁产品使用外部SPI Flash存储固件和用户指纹模板。攻击者拆下门锁后,发现PCB上留有未填充的UART焊盘。通过焊接4根导线连接USB转串口工具,在系统启动时按住复位键,成功进入U-Boot命令行。随后通过md命令直接读取SPI Flash内容,提取出AES密钥和指纹模板哈希。整个攻击耗时不到30分钟,成本仅50元。
复盘经验:该产品在设计时未遵循“安全默认”原则——UART接口本应在量产阶段禁用,且指纹模板应存储在带安全边界的独立安全芯片中,而非与固件共存于外部Flash。
3.2 侧信道攻击:从物理泄漏中提取秘密
核心原理
侧信道攻击利用密码算法执行过程中产生的物理泄漏(功耗、电磁辐射、执行时间、缓存访问模式)来推断密钥。其理论基础是:芯片在执行不同数据操作时,动态功耗与数据翻转率相关,而电磁辐射是功耗的衍生信号。常见的侧信道攻击包括:
| 攻击类型 | 物理信号 | 适用场景 | 典型防护 |
|---|---|---|---|
| 简单功耗分析 (SPA) | 单条功耗轨迹 | 算法分支结构明显(如RSA模幂) | 恒定时间算法、操作数混淆 |
| 差分功耗分析 (DPA) | 多条功耗轨迹统计 | AES/DES等对称算法 | 掩码(Masking)、隐藏(Hiding) |
| 电磁辐射分析 (EMA) | 近场电磁探头采集 | 无功耗引脚或功耗信号被噪声掩盖时 | 屏蔽层、伪随机噪声注入 |
| 缓存时间攻击 | 程序执行时间 | 共享CPU缓存环境(如云主机) | 缓存分区、常数时间查找表 |
判断方法与操作流程
以DPA攻击为例,标准流程如下:
- 采集功耗轨迹:在芯片电源引脚串联采样电阻(如10Ω),使用示波器(≥1GS/s采样率)记录加密操作期间的电压降。
- 选择中间值:选取密码算法第一轮或最后一轮的某个中间状态,该状态是明文(或密文)与部分密钥的函数。
- 假设密钥:枚举候选密钥字节(0-255),计算对应的中间值。
- 映射功耗模型:使用汉明重量(Hamming Weight)或汉明距离模型,将中间值映射为预测功耗。
- 统计相关性:计算预测功耗与实际功耗轨迹之间的皮尔逊相关系数。正确密钥对应的相关性峰值显著高于错误密钥。
案例拆解:对TEE中AES引擎的EMA攻击
某TEE实现将AES-128硬件加速器集成在SoC内部,功耗引脚被片上LDO稳压,直接采集功耗信号困难。攻击者改用近场电磁探头(带宽3GHz)放置在芯片封装上方,定位到AES引擎所在的Die区域。通过采集50,000次加密操作的电磁辐射轨迹,使用DPA攻击在2小时内恢复了AES密钥。该密钥用于加密安全存储分区,攻击者随后解密了所有用户凭据。
复盘经验:仅依赖LDO隔离功耗是不够的,电磁辐射仍会穿透封装。应在AES引擎周围增加金属屏蔽层,并在算法层引入随机掩码,使功耗/电磁信号与中间值解耦。
3.3 故障注入:破坏计算正确性
核心原理
故障注入(Fault Injection)通过人为引入电压、时钟、温度、光或电磁干扰,使芯片在特定时刻产生计算错误,从而绕过安全校验或泄露秘密。其核心思想是:安全机制(如密码校验、权限检查)在正常条件下不可绕过,但若在比较指令或分支跳转瞬间注入一个瞬态故障,使CPU跳过校验分支,即可实现非授权访问。
常见故障注入手段包括:
- 电压毛刺(Voltage Glitch):在芯片供电引脚上叠加一个短暂(纳秒级)的电压跌落或过冲,导致逻辑门延迟变化,在特定时钟沿采样到错误值。
- 时钟毛刺(Clock Glitch):向芯片时钟输入注入一个超短周期脉冲,使内部状态机跳过一个状态或重复采样。
- 激光注入(Laser Fault Injection):使用激光束照射芯片特定晶体管区域,使其瞬间导通或截止,精度可达亚微米级。
- 电磁注入(EMFI):使用高压脉冲线圈在芯片表面产生局部涡流,干扰附近电路。
判断方法与操作流程
故障注入攻击的典型步骤:
- 目标定位:通过反汇编固件,找到安全校验指令(如CMP、JZ)的地址。
- 时序同步:使用触发信号(如UART输出、GPIO翻转)与示波器同步,确定目标指令执行的精确时间窗口。
- 参数扫描:在目标时间窗口内,扫描毛刺的延迟、宽度、幅度三个参数。通常需要数千次尝试才能找到有效参数组合。
- 效果验证:注入成功后,观察是否跳过了校验逻辑(如进入调试模式、读取到受保护内存)。
案例拆解:绕过安全启动的电压毛刺攻击
某汽车ECU使用安全启动流程:BootROM先校验Bootloader的RSA签名,校验通过后才跳转执行。攻击者使用示波器监测SPI Flash的片选信号作为触发,在BootROM执行RSA校验的模幂运算期间,向CPU核心供电(VDD_CORE)注入一个宽度为5ns、幅度跌落至0.8V的毛刺。经过约2000次尝试,成功使RSA校验函数返回“验证通过”的错误结果,跳过了签名校验,加载了未签名的恶意固件。
复盘经验:该ECU未部署电压监控传感器,且BootROM代码未对校验结果进行二次确认。防御措施应包括:在电源域增加电压毛刺检测器(Glitch Detector)、在关键校验路径插入冗余检查、使用双核锁步(Lockstep)执行安全关键代码。
3.4 硬件木马与供应链风险
核心原理
硬件木马(Hardware Trojan)是恶意植入芯片内部逻辑的电路,可在特定条件(如特定指令、计数器溢出、温度阈值)下被激活,实现信息泄露、功能破坏或后门控制。供应链风险则涵盖从IP核授权、芯片设计、代工制造、封装测试到系统集成的全链条,任何环节被篡改或替换都可能导致最终产品不可信。
硬件木马通常由两部分组成:触发电路(Trojan Trigger)和有效载荷(Trojan Payload)。触发条件可以是外部信号、内部状态或时间条件;有效载荷则执行恶意功能,如将密钥寄存器内容通过UART外发、禁用安全中断、修改内存映射等。
判断方法与操作流程
供应链安全评估与硬件木马检测方法:
| 检测方法 | 原理 | 局限性 |
|---|---|---|
| 侧信道指纹比对 | 对比已知良好芯片与待测芯片的功耗/电磁轨迹 | 木马极小或触发条件罕见时难以区分 |
| 逻辑测试 | 生成随机测试向量,观察输出是否与仿真一致 | 木马触发条件复杂时覆盖率不足 |
| 破坏性逆向 | 逐层去除金属层,用SEM拍摄并重建电路网表 | 成本极高,仅适用于高价值芯片 |
| 供应链审计 | 审查代工厂、封测厂的流程记录与质量体系 | 依赖代工厂配合,无法检测设计阶段植入 |
案例拆解:伪造网络交换芯片的供应链攻击
某大型云服务商采购了一批网络交换芯片,部署后发现部分设备在特定流量模式下出现随机丢包。经排查,发现这些芯片的丝印标记与正品存在细微差异,且芯片ID寄存器读取值与官方文档不符。进一步检测发现,这些芯片是回收料(从旧主板上拆解)重新打磨标记的伪造品,内部部分电路已老化,且固件校验区域被篡改。
复盘经验:该云服务商未对来料进行严格的芯片溯源验证。改进措施包括:要求代理商提供原厂授权证书、使用X-ray检测芯片内部Die与正品比对、在固件中增加芯片唯一ID与密钥绑定校验。对于高安全场景,建议直接从原厂或授权渠道采购,并采用加密认证芯片(如Secure Element)进行双向认证。
3.5 常见误区与总结复盘
总结:硬件安全是纵深防御体系的基石。物理攻击面决定了攻击者接触硬件的难易程度;侧信道攻击利用物理泄漏提取秘密;故障注入破坏计算正确性;硬件木马与供应链风险则从源头威胁芯片可信性。在实际项目中,应结合威胁模型、成本预算与合规要求,选择适当的防护措施,并在产品全生命周期中持续评估硬件安全风险。