第二章:物理层攻击——接触式与非接触式接口、侧信道与故障注入

各位同学,欢迎来到第二章。这一章我们聊点“硬”的——物理层攻击。

很多人觉得EMV安全就是算法、协议、加密这些软件层面的东西。说实话,我以前也这么想。直到有一次,我在实验室里亲眼看着一块芯片在电压毛刺下“乖乖”吐出了密钥……嗯,从那以后,我对物理层的敬畏心就上来了。

物理层攻击,说白了就是直接跟芯片“动手”。你不需要破解复杂的密码算法,只需要在正确的时间、正确的位置,施加一点“物理关怀”。

2.1 接触式接口:最直接的攻击面

接触式接口就是芯片卡上那8个金属触点。标准ISO 7816定义了它们的电气特性和通信协议。我习惯把这8个触点分成三类:电源(VCC、GND)、时钟(CLK)、数据(I/O、RST)。

攻击者能做什么?

  • 监听数据线:用示波器或逻辑分析仪直接抓取I/O线上的明文数据。早期很多卡片在认证过程中会泄露敏感信息。
  • 篡改时钟信号:通过CLK引脚注入异常时钟,让芯片内部状态机“跑偏”。
  • 电源干扰:在VCC/GND上叠加噪声或毛刺,触发芯片的异常行为。
⚠️ 注意:接触式接口的攻击门槛其实很低。你只需要一个读卡器、一台示波器,再加点耐心。我在项目中遇到过一家支付终端厂商,他们的产品竟然把I/O线上的数据直接暴露在PCB走线上,连个滤波电容都没加……这简直是给攻击者送人头。

2.2 非接触式接口:看不见的威胁

非接触式接口(ISO 14443)通过射频场通信。攻击者不需要物理接触卡片,只需要一个天线和合适的射频前端。

非接触式攻击有几个特点:

  • 远距离窃听:在几米范围内,用高增益天线就能捕获卡片和读卡器之间的通信。
  • 中继攻击:这是最经典的。攻击者用两个设备,一个靠近卡片,一个靠近读卡器,把信号“接力”过去。你想想看,卡片明明在口袋里,却能被千里之外的读卡器“刷”到。
  • 能量分析:非接触式卡片的功耗完全来自射频场。攻击者可以通过分析卡片消耗的射频能量,推断内部运算状态。
💡 核心观点:非接触式接口的攻击面比接触式更广,因为攻击者可以“隔空”操作。我曾经在测试中,用自制的环形天线在1.5米外成功捕获了某款交通卡的全部交易数据。嗯,那款卡后来被召回了。

2.3 侧信道攻击:从“边路”突破

侧信道攻击不直接攻击算法,而是利用芯片在运行过程中泄露的物理信息。最常见的两种:功耗分析和电磁辐射分析。

2.3.1 功耗分析

芯片在执行不同指令时,消耗的电流是不一样的。比如,执行乘法运算比加法运算更耗电。攻击者通过采集芯片的功耗轨迹,就能反推出内部正在处理的数据。

功耗分析分两种:

  • 简单功耗分析(SPA):直接观察功耗轨迹的波形。比如,DES算法的16轮迭代会在功耗轨迹上留下明显的16个“台阶”。
  • 差分功耗分析(DPA):更高级。通过统计方法,把功耗轨迹和猜测的密钥关联起来。我建议初学者先从DPA入手,因为它的自动化程度高,成功率也高。
🔧 实战技巧:做功耗分析时,采样率至少要达到芯片时钟频率的10倍。比如芯片跑在10MHz,你的示波器采样率至少100MS/s。我曾经用20MS/s的示波器去抓一个13.56MHz的非接触式卡片,结果波形全是混叠的……白忙活了一整天。

2.3.2 电磁辐射分析

芯片在工作时会产生电磁辐射。这些辐射信号里同样包含了运算信息。电磁辐射分析的优势在于:

  • 非接触式:不需要物理连接,用探头靠近芯片表面就能采集。
  • 空间分辨率高:用微米级的探头,可以定位到芯片内部某个具体模块的辐射。
  • 抗干扰能力强:相比功耗分析,电磁辐射对电源噪声不敏感。

我个人习惯把电磁辐射分析作为功耗分析的补充。当功耗信号被电源噪声淹没时,电磁辐射往往能给出更清晰的信号。

2.4 故障注入:让芯片“犯错”

故障注入的核心思想是:在芯片执行关键操作时,故意制造一个异常,让芯片跳过安全检查、输出错误结果,或者直接泄露密钥。

2.4.1 时钟毛刺

时钟毛刺就是在正常时钟信号中插入一个极窄的脉冲。这个脉冲会让芯片的时序逻辑“误判”,比如把一条指令当成另一条指令。

攻击步骤:

  1. 确定芯片的正常时钟频率(比如10MHz)。
  2. 用信号发生器生成一个比正常时钟更窄的脉冲(比如10ns)。
  3. 在芯片执行“校验PIN”指令时,注入这个毛刺。
  4. 如果毛刺时机和幅度都对了,芯片可能会跳过校验,直接进入授权状态。
⚠️ 警告:时钟毛刺的时机非常关键。早了或晚了都不行。我建议先用仿真工具(比如ChipWhisperer的Jupyter Notebook)做预分析,找到芯片的“脆弱窗口”。我曾经在真实芯片上盲目尝试,结果连续烧了3块样片……嗯,教训深刻。

2.4.2 电压毛刺

电压毛刺是在芯片的供电电压上叠加一个短暂的尖峰或凹陷。这个尖峰会让芯片内部的逻辑门翻转错误,导致数据损坏或指令跳转。

电压毛刺比时钟毛刺更难控制,因为:

  • 芯片的电源管理电路会抑制毛刺。
  • 毛刺的幅度和持续时间需要精确匹配芯片的工艺参数。
  • 不同芯片对毛刺的敏感度差异很大。

我见过最成功的电压毛刺攻击,是在一款金融安全芯片上。攻击者用100ns的毛刺,幅度是正常电压的1.5倍,成功让芯片跳过了RSA签名验证。那款芯片后来被列为高危漏洞,厂商紧急发布了固件补丁。

2.5 知识体系总览

下面这张图是我自己整理的物理层攻击知识体系。你可以把它当作本章的“地图”。

物理层攻击 接触式接口 非接触式接口 侧信道攻击 故障注入 监听数据线 篡改时钟 远距离窃听 中继攻击 功耗分析 电磁辐射 时钟毛刺 电压毛刺 核心目标:绕过安全校验 / 提取密钥 / 篡改数据 攻击者视角:从物理层突破,比破解算法更高效

2.6 实战避坑指南

最后,分享几个我踩过的坑,希望能帮你少走弯路。

🔧 避坑1:做功耗分析时,别忘了给芯片加去耦电容。我曾经因为没加电容,采集到的功耗轨迹全是50Hz工频噪声,根本没法用。加一个10μF的钽电容,效果立竿见影。
🔧 避坑2:时钟毛刺的宽度不是越窄越好。太窄的毛刺可能被芯片的时钟树过滤掉。我一般从时钟周期的1/10开始尝试,逐步调整。
🔧 避坑3:非接触式攻击的天线阻抗匹配很重要。不匹配的话,发射功率大部分被反射回来,卡片根本收不到信号。用网络分析仪调一下,驻波比做到1.5以下再动手。

好了,这一章的内容就到这里。物理层攻击是EMV安全的基础,也是很多高级攻击的起点。下一章我们会深入协议层,看看那些看似安全的通信协议里藏着什么漏洞。


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