4、故障注入攻击基础:电压毛刺、时钟毛刺、电磁脉冲、激光注入

各位同学好,我是老周。今天咱们聊一个硬核话题——故障注入攻击。说白了,就是攻击者怎么通过物理手段,让芯片“犯错”,从而撬开安全防线。

我在芯片安全这行干了十几年,见过太多设计精良的芯片,最后栽在物理攻击上。你想想看,软件层面的防护做得再好,如果攻击者能直接往芯片上“捅一刀”,那一切归零。所以,理解故障注入,是做好物理防护的第一步。

4.1 什么是故障注入?

故障注入,就是故意让芯片的工作环境偏离正常状态。比如电压突然抖一下、时钟突然跳一下、或者用电磁脉冲照一下。芯片一旦“懵了”,就可能跳过安全检查、输出错误数据,甚至泄露密钥。

我习惯把故障注入比作“让芯片打喷嚏”。正常工作时,芯片按部就班执行指令。但如果你在它执行“检查密码”这条指令时,给它一个电压毛刺,它可能直接跳过检查,进入授权状态。嗯,就是这么危险。

核心要点:故障注入的目标是破坏芯片的时序或逻辑完整性,让安全机制失效。

4.2 四种主流故障注入方式

下面我逐一介绍四种最常见的攻击手段。每种我都踩过坑,有些经验教训希望能帮到你。

4.2.1 电压毛刺(Voltage Glitch)

电压毛刺是最“亲民”的攻击方式。攻击者只需要在芯片供电线上叠加一个短暂的电压尖峰或跌落,就能让芯片内部逻辑出错。

我在项目中遇到过一件事:某款支付芯片在电压跌落测试时,居然能绕过PIN码验证。后来一查,是电源管理模块没做毛刺滤波。说白了,就是芯片“饿了一下”,脑子就不清醒了。

  • 攻击原理:通过快速改变供电电压,导致逻辑门延迟变化,触发建立时间/保持时间违例。
  • 典型参数:毛刺宽度10ns~1μs,幅度为正常电压的±20%~50%。
  • 防护思路:片上电压监测器、冗余比较、时序容错设计。

我的小技巧:设计电压监测器时,别忘了加迟滞比较器。否则芯片会在阈值附近反复触发复位,反而给攻击者制造机会。

4.2.2 时钟毛刺(Clock Glitch)

时钟毛刺和电压毛刺是“孪生兄弟”。攻击者往时钟信号里插入一个异常脉冲,让芯片在错误的时间点采样数据。

你想想看,芯片内部所有操作都依赖时钟节拍。如果时钟突然多跳了一下,或者少跳了一下,那状态机就可能走到一个不该去的状态。我曾经见过一个案例,攻击者用时钟毛刺让AES加密引擎输出中间状态,直接还原出密钥。

  • 攻击原理:插入额外时钟沿或缩短时钟周期,导致寄存器采样错误。
  • 典型参数:毛刺宽度为正常周期的10%~50%,通常需要精确定时。
  • 防护思路:时钟监测电路、双沿采样、异步设计。

注意:时钟毛刺攻击对高频率芯片效果更好。因为频率越高,时序裕量越小,越容易被毛刺“击中”。

4.2.3 电磁脉冲(EM Pulse)

电磁脉冲攻击,听起来很科幻,其实原理很简单。用一个线圈或探针,在芯片表面产生强电磁场,感应出涡流,干扰内部电路。

我个人觉得,EM脉冲是四种方式里最难防护的。因为它不需要接触芯片,隔着封装就能打进去。我记得有一次做安全评估,我们用EM脉冲攻击一款智能卡,只打了三次,就把安全状态机打“死机”了。

  • 攻击原理:电磁感应产生局部电流,干扰特定区域的晶体管开关行为。
  • 典型参数:脉冲宽度10ns~100ns,峰值磁场强度1~10T。
  • 防护思路:金属屏蔽层、敏感电路分散布局、冗余逻辑。

关键认知:EM脉冲攻击的精度取决于探针尺寸。探针越小,定位越准,但能量也越小。这是个权衡。

4.2.4 激光注入(Laser Injection)

激光注入是“土豪”级别的攻击方式。用聚焦激光束照射芯片表面,产生光生载流子,改变晶体管的导通状态。

为什么说它厉害?因为激光可以精确到单个晶体管级别。攻击者可以瞄准安全状态机里的某个关键触发器,直接把它“翻转”。我曾经参与过一个项目,对方用激光成功绕过了SRAM的加密保护,读取了明文数据。

  • 攻击原理:激光激发硅材料产生电子-空穴对,形成瞬态电流,改变逻辑状态。
  • 典型参数:激光波长532nm~1064nm,光斑直径0.5μm~5μm,脉冲宽度纳秒级。
  • 防护思路:光敏检测器、金属覆盖层、双轨逻辑、错误纠正码。

避坑指南:我曾经以为只要把敏感电路藏在金属层下面就能防激光。结果发现,高功率激光能穿透薄金属层。所以,金属层厚度和材料选择都很关键。

4.3 四种攻击方式对比

下面这张表,是我根据多年经验整理的。你可以快速对比它们的差异。

攻击方式 成本 精度 是否需要开封装 典型防护难度
电压毛刺 低(全局影响)
时钟毛刺 中(时序相关)
电磁脉冲 中高(局部区域) 通常需要
激光注入 极高(单晶体管) 必须 极高

4.4 故障注入攻击的通用流程

不管用哪种方式,攻击者的套路其实差不多。我总结了一个通用流程,你看了就明白。

1. 目标分析 2. 参数扫描 3. 注入攻击 4. 结果分析 迭代优化参数 故障注入攻击通用流程

你看,攻击者先分析芯片的敏感区域,然后扫描电压、时间、位置等参数,找到最容易“捅破”的点。接着实施注入,最后分析输出结果。如果没成功,就调整参数再来一次。说白了,这就是个“试错”的过程。

4.5 防护思路总览

讲了这么多攻击手段,你可能会问:那到底怎么防?我简单说几个大方向,后面章节会展开讲。

  • 检测与响应:在芯片内部集成传感器,检测电压、时钟、温度、光照等异常,一旦发现就触发复位或擦除敏感数据。
  • 冗余与容错:关键逻辑做双份甚至三份,通过投票机制输出结果。就算一个被“打歪了”,另外两个还能纠正。
  • 时序与逻辑加固:使用双轨逻辑、异步设计,让攻击者难以通过毛刺破坏时序。
  • 物理屏蔽:顶层金属覆盖、有源屏蔽层,增加攻击者接触内部电路的难度。

重要提醒:没有一种防护是万能的。真正的安全芯片,需要多种防护手段组合使用。我见过太多只做了一层防护就被攻破的案例。

好了,这一章的内容就到这里。故障注入攻击是物理攻击的“基本功”,理解透了,后面学防护才能有的放矢。下一章咱们聊聊更具体的防护电路设计。


公众号:蓝海资料掘金营,微信deep3321