第4章:电磁辐射攻击实战——近场探头与频谱仪使用、采集电磁辐射信号、定位关键操作指令
各位同学,欢迎来到侧信道攻击实战的第四讲。今天我们要聊的,是电磁辐射攻击。
说实话,电磁辐射攻击在侧信道领域里,算是比较“硬核”的一类。它不像功耗分析那样需要精确的电流探头,也不像时序分析那样依赖时钟精度。电磁攻击的核心,是捕捉芯片在工作时泄露的电磁场。你想想看,芯片内部每一条总线翻转、每一个寄存器写入,都会产生微弱的电磁波。这些波,就是我们的“情报源”。
4.1 近场探头:你的“电磁耳朵”
先说说近场探头。这东西说白了就是一个微型天线,专门用来捕捉芯片表面的电磁场。我个人习惯用Rohde & Schwarz的HZ-15系列,或者Langer的RF系列。当然,如果你预算有限,自己绕一个线圈也能用——我在项目初期就干过这事。
近场探头的选择有几个关键点:
- 探头尺寸:越小越好。我常用的探头直径在1mm到3mm之间。太大,你分不清信号来自哪个模块。
- 频率范围:一般覆盖DC到3GHz就够了。ARM Cortex-M系列的核心频率通常在几十到几百MHz,谐波能到1GHz以上。
- 屏蔽设计:好的探头自带屏蔽层,能抑制共模干扰。我曾经用过一个没屏蔽的自制探头,结果频谱仪上全是环境噪声,根本看不到芯片信号。
4.2 频谱仪:把电磁波变成你能看懂的东西
频谱仪的作用,是把探头捕捉到的电磁信号,按频率展开给你看。说白了,就是告诉你“哪个频率上有能量”。
我常用的频谱仪是Keysight的N9000B系列,或者R&S的FSV。设置参数时,有几个要点:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 中心频率 | 芯片主频的1~3倍 | 比如芯片跑100MHz,中心频率设200MHz或300MHz |
| 扫宽 | 100MHz ~ 500MHz | 太宽了看不到细节,太窄了容易漏掉谐波 |
| RBW(分辨率带宽) | 10kHz ~ 100kHz | 越小越能分辨相邻频率,但扫描速度会变慢 |
| 参考电平 | -20dBm ~ -40dBm | 根据信号强度调整,别让信号削顶 |
嗯,这里要注意:频谱仪不是示波器。它看的是频域,不是时域。如果你想看某个指令执行时的电磁波形,得用示波器+频谱仪配合,或者用带时频分析功能的仪器。
4.3 采集电磁辐射信号:从“看”到“抓”
采集信号,是整个流程中最关键的一步。我见过很多新手,探头放上去,频谱仪上看到几个峰,就以为抓到信号了。其实远远不够。
正确的采集流程是这样的:
- 定位芯片热点:先用频谱仪在宽频范围内扫一遍,找到能量最强的频率点。通常这个点对应芯片的主时钟或总线活动。
- 固定探头位置:把探头移动到能量最强的位置,用夹具固定。我习惯用三维微调台,精度能到0.1mm。
- 触发设置:用示波器或采集卡,设置一个触发条件。比如检测到某个GPIO电平变化,或者检测到特定指令地址。
- 采集波形:让芯片重复执行目标操作(比如AES加密),同时采集电磁波形。我一般采集1000~10000条波形,用于后续分析。
4.4 定位关键操作指令:从波形到指令
好了,现在你手里有一堆电磁波形。怎么从里面找到“关键操作指令”?比如AES加密的S盒查找、或者安全启动中的签名验证。
我的做法是:
- 差分分析:让芯片执行两次操作,一次执行目标指令,一次不执行。然后相减。差值波形里,目标指令的电磁特征会非常明显。
- 模板匹配:先采集一个已知指令的电磁模板,然后在长波形里滑动匹配。这有点像语音识别里的“关键词唤醒”。
- 时频分析:用短时傅里叶变换(STFT)把波形变成时频图。不同指令在时频图上的“指纹”不同,肉眼就能分辨。
我曾经在一个项目中,用这种方法定位到了安全芯片的RSA模幂运算。那个芯片的电磁辐射在模乘运算时有一个明显的“尖峰”,持续约200ns。通过这个特征,我们成功提取到了私钥的比特信息。
4.5 知识体系:电磁辐射攻击的核心逻辑
下面这张图,是我自己总结的电磁辐射攻击流程。你可以把它当作一个“作战地图”。
这张图里,我特意把“迭代”这个概念画出来了。实际上,电磁辐射攻击很少能一次成功。你往往需要反复调整探头位置、频谱仪参数、触发条件,才能抓到干净的信号。别急,这是正常的。
4.6 实战中的几个坑
最后,分享几个我踩过的坑,希望能帮你省点时间:
- 环境噪声:实验室里的开关电源、显示器、甚至手机,都会产生电磁干扰。我习惯在屏蔽箱里做实验,或者至少关掉周围不必要的设备。
- 探头方向:近场探头是有极性的。同一个位置,探头旋转90度,信号强度可能差10倍。我一般会旋转探头,找到信号最强的方向。
- 芯片封装:BGA封装的芯片,电磁信号主要从焊球侧泄露。QFP封装的,信号从引脚侧泄露。探头要对着这些“泄露点”。
- 温度影响:芯片温度升高时,电磁辐射强度会变化。我习惯让芯片先预热5分钟,等温度稳定了再采集。
好了,这一章的内容就到这里。电磁辐射攻击是一门“手艺活”,需要耐心和细心。下一章我们会深入讨论如何从采集到的电磁波形中提取密钥信息,敬请期待。