1、电源分析攻击概述

大家好,我是你们的硬件安全讲师。今天咱们聊聊电源分析攻击——这个在嵌入式安全领域里,既让人头疼又不得不面对的话题。

说实话,我最早接触这个方向是在一次客户产品的安全评估中。当时我们做了各种软件层面的防护,觉得固件已经固若金汤了。结果一位同事拿来示波器,在芯片的VCC引脚上夹了个探头,几分钟后,密钥就暴露了。嗯,那场面我至今记忆犹新。

什么是电源分析攻击?

电源分析攻击,说白了就是通过监测芯片运行时的功耗变化,来推断芯片内部正在处理的数据或执行的指令。

你想想看,芯片在执行不同指令、处理不同数据时,消耗的电流是不一样的。比如执行乘法运算和加法运算,功耗曲线就有明显差异。处理0x00和0xFF时,翻转的晶体管数量不同,功耗自然也不同。

攻击者就是利用这些微小的功耗差异,来还原出芯片内部的秘密——密钥、固件、敏感数据等等。

核心观点:功耗是芯片内部活动的“物理指纹”。只要芯片在运行,就会泄露信息。这不是软件漏洞,而是物理层面的侧信道泄露。

攻击分类

电源分析攻击主要分为两大类:简单电源分析(SPA)和差分电源分析(DPA)。

简单电源分析(SPA)

SPA,就是直接观察单条或少量功耗轨迹,从中提取信息。

我在项目中遇到过这样一个案例:某款智能门锁芯片,在验证PIN码时,每输入一位数字,功耗曲线上就会出现一个明显的“台阶”。攻击者只需要用示波器抓取一次验证过程,数一数台阶的数量,就知道PIN码有几位。更糟糕的是,如果芯片在比较密码时是逐位比较的,一旦某一位匹配失败就提前退出,功耗曲线的长度就会暴露匹配到了第几位——这就是典型的时序侧信道。

SPA的特点:

  • 直观:一条功耗曲线,肉眼就能看出端倪
  • 低成本:一台示波器、一个电阻,基本就够了
  • 局限性:对噪声敏感,需要攻击者对芯片内部结构有一定了解

我的经验:SPA攻击中,采样率很关键。我建议至少用4倍于芯片主频的采样率,否则很多细节会被混叠掉。我曾经因为采样率不够,漏掉了一个关键的分支指令特征,白白浪费了两天时间。

差分电源分析(DPA)

DPA就高级多了。它不依赖单条功耗曲线,而是采集大量(几百到几万条)功耗轨迹,然后通过统计分析方法,找出与密钥相关的功耗特征。

为什么会这样?因为单条功耗曲线里,信号往往被噪声淹没了。但如果你采集1000次加密操作,把功耗曲线按某个假设的密钥位分成两组,然后求平均差值——噪声会被抵消,而真正的信号会凸显出来。

DPA的特点:

  • 强大:不需要知道芯片内部细节,甚至不需要知道算法实现
  • 隐蔽:攻击者可以远程采集,不需要物理接触芯片内部
  • 门槛稍高:需要一定的统计知识和数据处理能力
对比项 SPA DPA
所需轨迹数 1~10条 100~100000条
对噪声容忍度 高(通过统计平均)
对芯片知识要求
典型攻击目标 分支指令、操作码识别 密钥恢复、算法逆向

攻击原理

咱们来拆解一下攻击原理。核心就一句话:CMOS电路的动态功耗与数据相关

CMOS门在输出从0变1或从1变0时,会消耗动态功耗。这个功耗大小取决于:

  • 翻转的节点数量(数据位宽)
  • 节点电容(工艺相关)
  • 翻转频率(指令执行速度)

举个例子,AES加密中的S盒查找操作。S盒是一个256字节的查找表,输入是8位数据,输出也是8位数据。当输入数据不同时,S盒内部访问的地址不同,导致总线上的数据翻转模式不同。这些翻转模式会直接体现在功耗曲线上。

我做过一个实验:用NXP LPC系列芯片跑AES-128加密,在电源引脚上串联一个10欧姆的采样电阻,用差分探头测量电阻两端的电压降。示波器设置为20MHz带宽限制,采样率100MS/s。结果呢?单条功耗曲线就能清晰看到10轮加密的轮函数特征——每一轮的功耗峰值都清晰可辨。

注意:采样电阻不能太大。我见过有人用100欧姆的电阻,结果芯片电压被拉低,直接复位了。一般来说,10欧姆以下比较安全,同时要确保测量设备的共模抑制比足够高。

威胁模型

什么样的场景下,电源分析攻击是可行的?

攻击者需要满足几个条件:

  1. 物理接触:至少能接触到芯片的电源引脚或PCB上的电源网络
  2. 触发同步:能触发芯片开始执行目标操作(比如加密、解密、验证)
  3. 数据采集:有合适的示波器或数据采集卡
  4. 后处理能力:能对采集到的功耗轨迹进行分析

你可能会问:现在的芯片都有电压调节器和去耦电容,功耗特征还能被捕捉到吗?

答案是:能,只是难度增加了。去耦电容会滤除高频成分,但低频成分依然存在。而且,攻击者可以在PCB背面找到过孔,或者直接用探针接触芯片引脚。我在评估一款车规级MCU时,芯片有内部LDO,但我们在PCB的电源入口处依然采集到了清晰的功耗特征——因为内部LDO的响应速度有限,高频成分虽然衰减了,但低频包络还在。

典型的威胁场景包括:

  • 智能卡/安全芯片:攻击者通过卡片触点采集功耗
  • 物联网设备:攻击者拆开设备外壳,在PCB上焊接飞线
  • 手机/平板:通过USB电源线或电池接口采集
  • 汽车ECU:通过OBD接口或直接测量电源线

避坑指南:我曾经评估过一款号称“抗DPA”的芯片,厂商说内部有随机延时插入和功耗平衡电路。结果我们一测,发现这些防护只在特定频率下有效。当我们把采样率从100MS/s降到10MS/s时,防护措施反而成了特征——随机延时变成了可预测的抖动模式。所以,评估防护措施时,一定要多换几个采样参数试试。

知识体系总览

下面这张图,是我梳理的本章知识结构。你可以把它当作一个思维导图来看。

电源分析攻击 攻击分类 攻击原理 威胁模型 SPA DPA 单条轨迹 肉眼观察 统计平均 密钥恢复 CMOS功耗 数据相关性 信号采集 物理接触 触发同步 后处理能力 核心:功耗是芯片内部活动的物理指纹 典型应用场景 智能卡 物联网设备 手机/平板 汽车ECU 攻击者通过电源引脚或PCB网络采集功耗轨迹

嗯,这张图基本把本章的核心逻辑串起来了。从攻击分类到原理,再到威胁模型,最后落到实际场景。你可以在后续的学习中,随时回来对照这张图,看看自己学到哪一步了。


专注资料整理