2. 硬件安全基础:攻击面与CIA三要素
各位好,我是老周。今天咱们聊点实在的——硬件攻击面到底长什么样?安全三要素在芯片里怎么落地?
我做了十几年硬件安全,见过太多人把软件那套安全思维直接往硬件上套。结果呢?流片回来一测,侧信道一抓一个准,故障注入直接崩系统。说白了,硬件安全有它自己的脾气。
2.1 硬件攻击面全景
攻击面,就是你能被攻击的地方。硬件攻击面比软件多得多——你想想看,芯片有引脚、有电源、有电磁辐射、有散热孔,这些都是入口。
核心观点:硬件攻击面 = 物理可接触点 + 电磁/功耗/时序侧信道 + 设计/制造/封装/部署全生命周期漏洞
我个人习惯把硬件攻击面分成三大类:
- 物理侵入式:开盖、探针、FIB(聚焦离子束)修改、微探针监听
- 半侵入式:故障注入(激光、电磁、电压毛刺)、侧信道分析(功耗、电磁、时序)
- 非侵入式:软件攻击、JTAG/SWD调试接口滥用、边界扫描攻击
我在项目中遇到过最典型的案例——某款IoT芯片,攻击者只用了一根探针放在电源线上,功耗曲线一采集,AES密钥就出来了。嗯,这就是侧信道的威力。
2.2 侧信道攻击:看不见的耳朵
侧信道攻击,说白了就是你不直接破解算法,而是偷听芯片运行时的“呼吸声”。
芯片在执行不同指令、处理不同数据时,功耗、电磁辐射、执行时间都会有细微差异。这些差异就是你的“侧信道”。
| 侧信道类型 | 测量对象 | 典型攻击手段 | 我见过的真实案例 |
|---|---|---|---|
| 功耗分析 | 芯片瞬时电流 | SPA(简单功耗分析)、DPA(差分功耗分析) | 智能卡AES密钥提取,3万条曲线搞定 |
| 电磁分析 | 芯片电磁辐射 | EMA(电磁分析)、近场探针扫描 | 手机基带芯片,隔空抓取加密运算特征 |
| 时序分析 | 指令执行时间 | 计时攻击、缓存时序分析 | OpenSSL RSA私钥恢复,网络延迟都能用 |
| 缓存侧信道 | 缓存命中/未命中 | Prime+Probe、Flush+Reload | 云服务器跨VM密钥窃取 |
避坑指南:我曾经以为只要算法本身没问题,硬件就安全。结果一个DPA攻击,直接把硬件安全模块的密钥扒了个精光。记住:算法安全 ≠ 实现安全。你需要在硬件层面加掩码、加随机延时、加功耗平衡电路。
2.3 故障注入:让芯片“说错话”
故障注入更暴力——你不是要偷听吗?我直接让芯片出错,然后从错误结果里反推秘密。
为什么会这样?因为芯片在异常环境下(电压骤降、时钟毛刺、强激光照射),内部逻辑会跳变。比如本该跳转到安全认证失败的分支,结果跳到了“通过”分支。
- 电压毛刺:瞬间拉低或拉高VDD,让寄存器锁存错误值
- 时钟毛刺:插入一个超短时钟周期,让时序路径建立时间违例
- 激光注入:用激光照射特定晶体管,改变其开关状态
- 电磁注入:用电磁脉冲干扰内部走线,产生感应电流
- 温度攻击:极端高温/低温改变芯片行为
警告:故障注入不是实验室玩具。我见过一个真实产品——某支付终端,攻击者用电磁毛刺让安全芯片跳过PIN码校验,直接进入交易流程。修复方案?加电压/时钟/温度/光强四重传感器,外加冗余计算校验。
2.4 逆向工程:把芯片“解剖”给你看
逆向工程,就是反向拆解芯片,把设计还原出来。这招对IP保护是致命打击。
逆向工程分几个层次:
- 封装级:X光扫描、超声波成像,看芯片内部布局
- 版图级:逐层去层、扫描电子显微镜拍照,还原金属走线和晶体管
- 逻辑级:从版图提取门级网表,还原电路功能
- 算法级:从电路行为反推加密算法、状态机、密钥
我记得有个客户,芯片被竞争对手逆向后,直接复制了核心算法。从那以后,我设计芯片必加:
- 顶层金属伪随机走线(混淆版图)
- 有源屏蔽层(检测到探针就擦除密钥)
- 逻辑混淆(插入冗余状态机,让逆向者看不懂)
2.5 安全三要素(CIA)在硬件中的体现
软件安全讲CIA——机密性、完整性、可用性。硬件也一样,但实现方式完全不同。
| CIA要素 | 软件实现 | 硬件实现 | 硬件特有风险 |
|---|---|---|---|
| 机密性 | 加密算法、访问控制 | 硬件安全模块(HSM)、物理不可克隆函数(PUF)、安全存储、总线加密 | 侧信道泄露密钥、探针直接读存储 |
| 完整性 | 哈希校验、数字签名 | 安全启动(Secure Boot)、硬件信任根(RoT)、篡改检测、熔丝 | 故障注入绕过校验、激光修改熔丝状态 |
| 可用性 | 冗余部署、负载均衡 | 硬件看门狗、电压/时钟监测、冗余计算单元、安全状态机 | 电磁攻击让看门狗失效、温度攻击导致时钟漂移 |
关键认知:硬件CIA不是软件CIA的“硬实现”。硬件有物理世界这个维度——攻击者可以摸、可以照、可以加热、可以刺探。所以硬件安全设计必须考虑物理攻击模型。
2.6 知识体系总览
下面这张图,是我自己梳理的硬件攻击面与CIA联动关系。你把它记在脑子里,后面做FMEA分析时,每个失效模式都能在这张图上找到根。
2.7 实战视角:攻击面与CIA的映射
做FMEA时,我习惯先问三个问题:
- 这个失效模式,攻击者通过哪个攻击面触发?(侧信道?故障注入?逆向?)
- 这个失效模式,破坏了哪个CIA要素?(机密性泄露?完整性被篡改?可用性丧失?)
- 现有的硬件防护机制,能挡住吗?(掩码?传感器?冗余?)
个人经验:我建议你在设计阶段就画一张“攻击面-CIA-防护机制”映射表。每个硬件模块、每个安全功能,都在这张表上找到位置。后面做FMEA时,失效模式的严重度、发生度、检测度,都能从这张表推导出来。省时省力,还不容易漏。