第二章:物理攻击手法

各位同学,今天咱们聊点硬核的。物理攻击,说白了就是直接上手摸芯片。

我刚开始做安全评估那会儿,总觉得软件漏洞才是大头。直到有一次,客户送来一台被攻破的POS机——外壳完好,系统日志干干净净,但密钥就是被偷了。拆开一看,PCB上留着探针扎过的痕迹。嗯,从那以后,我再也不敢小看物理攻击了。

核心观点:物理攻击不是科幻电影里的激光切割。它很实在,一把示波器、几根探针、甚至一个电压毛刺,就能让看似固若金汤的终端缴械投降。

2.1 侧信道攻击

侧信道攻击,说白了就是「偷听」芯片干活时的动静。

芯片在运算时,电流、电磁波、甚至声音都会泄露信息。你想想看,CPU算1+1和算RSA加密,功耗波形能一样吗?

2.1.1 功耗分析

功耗分析分两种:简单功耗分析(SPA)和差分功耗分析(DPA)。

  • SPA:直接看单条功耗波形。比如DES加密的16轮运算,波形上能数出来。我见过有人用SPA一眼看出芯片在执行哪条指令——就像看心电图知道你在跑步还是睡觉。
  • DPA:统计多条波形找差异。这招对付密钥特别狠。你采集几千次加密波形,用统计方法一算,密钥位就暴露了。

避坑指南:我曾经帮客户做防护,他们给芯片加了金属屏蔽罩,以为万事大吉。结果呢?屏蔽罩没接地,反而成了天线,电磁泄露更明显了。嗯,接地这事儿,真不能马虎。

2.1.2 电磁分析

电磁分析和功耗分析原理类似,但不用接触芯片。拿个电磁探头在芯片上方扫一圈,就能捕捉到电磁辐射。

我个人习惯先用近场探头定位芯片的活跃区域。比如CPU内核和加密协处理器,电磁信号明显不同。你想想看,这就像用听诊器听不同器官——心脏和肺的声音能一样吗?

实际项目中,我遇到过一台ATM机,键盘加密模块被电磁分析攻破。攻击者把探头藏在读卡器旁边,伪装成维护工具。结果呢?三天内密钥就被还原了。

2.2 故障注入攻击

故障注入,就是故意让芯片「出错」。芯片一乱,安全机制就跟着乱。

2.2.1 电压毛刺

电压毛刺,说白了就是给芯片「电一下」。正常供电是3.3V,你突然来一个5V的尖峰,芯片可能跳过某条指令。

我做过一个实验:在RSA签名验证时注入电压毛刺,让芯片跳过「验证通过」的判断。结果呢?伪造的签名被当成真的了。

// 电压毛刺攻击示例(伪代码)
// 目标:跳过签名验证
if (verify_signature(input) == PASS) {
    grant_access();  // 注入毛刺,跳过这个判断
}
// 实际执行变成了:
grant_access();  // 验证被跳过了

注意:电压毛刺不是乱来的。电压太高会烧芯片,太低没效果。我建议先做「电压扫描」——从正常值开始,每次增加0.1V,直到找到那个「临界点」。我曾经有一次手抖,直接烧了三块开发板...嗯,教训深刻。

2.2.2 时钟毛刺

时钟毛刺和电压毛刺类似,但攻击的是时钟信号。芯片靠时钟节拍工作,你突然加快或减慢时钟,芯片内部时序就乱了。

我记得有个案例:某款支付终端用时钟毛刺攻击,成功绕过了PIN码校验。攻击者在时钟线上叠加一个窄脉冲,让CPU在读取PIN码时「吞掉」一个字节。结果呢?6位PIN码变成了5位,校验逻辑直接崩溃。

攻击类型 目标 典型效果 防护难度
电压毛刺 电源线 跳过指令、改变控制流
时钟毛刺 时钟线 时序错乱、数据错误
电磁脉冲 芯片内部 寄存器翻转、逻辑错误 极高

2.3 探针攻击

探针攻击,就是直接拿针扎芯片。听起来粗暴,但效果立竿见影。

探针可以扎在数据线上监听通信,也可以扎在安全存储区域直接读密钥。我见过最狠的:用微探针扎进芯片封装内部,直接读取Flash中的固件。

实际项目中,我遇到过一款号称「防篡改」的芯片。结果呢?用探针扎一下复位引脚,再配合电压毛刺,安全锁就被解开了。嗯,有时候物理防护就是个心理安慰。

防护建议:探针攻击的克星是「主动屏蔽层」。在芯片顶层铺一层蛇形走线,一旦被扎断就触发自毁。我曾经帮客户设计过这种方案,效果不错,但成本翻了三倍。

2.4 PCB逆向工程

PCB逆向,就是把电路板一层层剥开,还原原理图。

攻击者会先拍照记录PCB正反面,然后用热风枪拆掉芯片,再用扫描仪获取走线图。最后用软件还原出原理图——你的加密芯片、安全存储、通信接口,全暴露了。

我记得有个案例:某款支付终端的PCB逆向后,发现安全芯片和主控之间用SPI通信,而且密钥是在启动时通过SPI传输的。攻击者直接在SPI线上焊了个逻辑分析仪,密钥就白捡了。

物理攻击手法知识体系 物理攻击手法 侧信道攻击 故障注入攻击 探针攻击 PCB逆向工程 功耗分析 电磁分析 电压毛刺 时钟毛刺 数据线监听 / 密钥读取 原理图还原 / 固件提取 防护思路:屏蔽 + 检测 + 自毁 + 加密

这张图把物理攻击的四大类串起来了。你想想看,从侧信道到PCB逆向,攻击者一步步逼近核心。防护也得层层设防——屏蔽层防探针、电压检测防毛刺、加密防侧信道、涂胶防逆向。

好了,物理攻击这块就聊到这儿。记住一句话:没有攻不破的终端,只有没到位的防护。咱们下节课见。

专注资料整理