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保护是致命打击。

逆向工程分几个层次:

  1. 封装级:X光扫描、超声波成像,看芯片内部布局
  2. 版图级:逐层去层、扫描电子显微镜拍照,还原金属走线和晶体管
  3. 逻辑级:从版图提取门级网表,还原电路功能
  4. 算法级:从电路行为反推加密算法、状态机、密钥

我记得有个客户,芯片被竞争对手逆向后,直接复制了核心算法。从那以后,我设计芯片必加:

  • 顶层金属伪随机走线(混淆版图)
  • 有源屏蔽层(检测到探针就擦除密钥)
  • 逻辑混淆(插入冗余状态机,让逆向者看不懂)

2.5 安全三要素(CIA)在硬件中的体现

软件安全讲CIA——机密性、完整性、可用性。硬件也一样,但实现方式完全不同。

CIA要素 软件实现 硬件实现 硬件特有风险
机密性 加密算法、访问控制 硬件安全模块(HSM)、物理不可克隆函数(PUF)、安全存储、总线加密 侧信道泄露密钥、探针直接读存储
完整性 哈希校验、数字签名 安全启动(Secure Boot)、硬件信任根(RoT)、篡改检测、熔丝 故障注入绕过校验、激光修改熔丝状态
可用性 冗余部署、负载均衡 硬件看门狗、电压/时钟监测、冗余计算单元、安全状态机 电磁攻击让看门狗失效、温度攻击导致时钟漂移

关键认知:硬件CIA不是软件CIA的“硬实现”。硬件有物理世界这个维度——攻击者可以摸、可以照、可以加热、可以刺探。所以硬件安全设计必须考虑物理攻击模型。

2.6 知识体系总览

下面这张图,是我自己梳理的硬件攻击面与CIA联动关系。你把它记在脑子里,后面做FMEA分析时,每个失效模式都能在这张图上找到根。

硬件攻击面与CIA三要素关系图 硬件攻击面与CIA三要素关系图 硬件芯片 侧信道攻击 故障注入攻击 逆向工程 功耗分析 电磁分析 时序分析 电压毛刺 时钟毛刺 激光注入 版图还原 逻辑提取 算法还原 机密性 (C) 完整性 (I) 可用性 (A) HSM / PUF / 安全存储 总线加密 / 防探针 安全启动 / 信任根 篡改检测 / 熔丝 看门狗 / 冗余计算 核心逻辑:攻击面 → 威胁CIA要素 → 硬件安全机制防护 FMEA分析时,每个失效模式都要映射到这张图的攻击路径和CIA影响

2.7 实战视角:攻击面与CIA的映射

做FMEA时,我习惯先问三个问题:

  1. 这个失效模式,攻击者通过哪个攻击面触发?(侧信道?故障注入?逆向?)
  2. 这个失效模式,破坏了哪个CIA要素?(机密性泄露?完整性被篡改?可用性丧失?)
  3. 现有的硬件防护机制,能挡住吗?(掩码?传感器?冗余?)

个人经验:我建议你在设计阶段就画一张“攻击面-CIA-防护机制”映射表。每个硬件模块、每个安全功能,都在这张表上找到位置。后面做FMEA时,失效模式的严重度、发生度、检测度,都能从这张表推导出来。省时省力,还不容易漏。