一、侧信道攻击概述
大家好,我是你们的侧信道讲师。今天咱们聊聊侧信道攻击到底是个什么东西。
你想想看,传统的密码分析学都在研究什么?研究算法本身,研究数学上的漏洞。但现实世界不是纯数学的——芯片在运行的时候,会发热、会耗电、会发出电磁波,甚至运算时间都不一样。这些「物理副作用」,恰恰成了攻击者的突破口。
我入行那会儿,第一次在实验室看到用功耗曲线还原出AES密钥,说实话挺震撼的。明明算法是安全的,但芯片「说漏了嘴」。
1.1 什么是侧信道攻击
侧信道攻击(Side-Channel Attack, SCA),说白了就是:不直接攻击算法本身,而是利用密码设备在执行过程中泄露的物理信息来破解密钥。
举个例子:你输入密码时,如果每次按键的时间长短不一样,别人光听敲键盘的声音就能猜出你的密码——这就是声学侧信道。
在嵌入式世界里,芯片执行加密运算时,功耗会随着处理的数据和指令变化。我测量这些功耗波形,就能反推出密钥。嗯,这里要注意:算法再强,物理实现不严谨,一切白搭。
1.2 侧信道攻击分类
侧信道攻击按泄露渠道分,主要有四大类。我在项目中基本都碰过,各有各的脾气。
时序攻击(Timing Attack)
利用不同输入导致运算时间不同。比如某些密码库的字符串比较函数,一旦发现字符不匹配就立即返回——攻击者可以通过测量响应时间,逐位猜出密钥。
我曾经审计过一个嵌入式固件,里面的AES实现没有做常数时间处理,结果用示波器测一下执行时间,密钥就暴露了。修复方法很简单:让所有分支的执行时间恒定。
功耗攻击(Power Analysis Attack)
这是最经典、最实用的侧信道攻击。芯片每执行一条指令,消耗的电流都不一样。采集这些电流波形,就能分析出内部状态。
- 简单功耗分析(SPA):直接看功耗波形,识别出不同的操作(比如乘法 vs 加法)。
- 差分功耗分析(DPA):用统计学方法,从大量波形中提取出与密钥相关的微小差异。这是ChipWhisperer最擅长的攻击方式。
电磁攻击(EM Attack)
芯片在工作时,周围会产生电磁场。用电磁探头靠近芯片表面,就能「偷听」到内部信号。电磁攻击的好处是:不需要物理接触电源引脚,隔着封装就能采集。
我记得有一次帮客户评估一款物联网模组,外壳是全密封的,没法直接接电流探头。后来用电磁探头贴在芯片封装上方,照样拿到了清晰的功耗轨迹。嗯,电磁攻击在实战中往往比功耗攻击更隐蔽。
声学攻击(Acoustic Attack)
利用芯片或电路板发出的微弱声音信号。比如CPU不同指令会产生不同频率的噪声,或者电容充放电时的「吱吱」声。说实话,声学攻击在现实中比较难落地,因为环境噪声太大。但在实验室条件下,确实有人用麦克风成功破解了RSA密钥。
| 攻击类型 | 泄露渠道 | 采集设备 | 难度 | 实战价值 |
|---|---|---|---|---|
| 时序攻击 | 执行时间 | 示波器/计时器 | 低 | 中 |
| 功耗攻击 | 电流/电压 | 示波器+采样电阻 | 中 | 高 |
| 电磁攻击 | 电磁辐射 | 电磁探头+示波器 | 中高 | 高 |
| 声学攻击 | 声音/振动 | 高灵敏度麦克风 | 高 | 低 |
1.3 攻击场景与威胁模型
搞清楚了攻击类型,咱们得聊聊「在什么场景下,这些攻击能派上用场」。
常见攻击场景
- 智能卡/银行卡:攻击者拿到卡片后,通过功耗分析提取密钥,克隆卡片。
- 物联网设备:比如智能门锁、传感器节点,攻击者物理接触设备后,提取固件密钥。
- 手机安全芯片:通过电磁探头靠近手机,尝试提取存储在SE(安全元件)中的密钥。
- 汽车电子:ECU(发动机控制单元)中的加密通信密钥,可以通过OBD接口或直接探针采集。
威胁模型分析
做安全评估时,我通常会问三个问题:
- 攻击者能接触到设备多久? 几秒钟还是几天?
- 攻击者有什么设备? 普通示波器还是专业侧信道工作站?
- 攻击者的目标是什么? 提取密钥、克隆设备,还是破坏系统?
这三个问题决定了你的防护策略。比如,如果攻击者只有几分钟接触时间,那简单的功耗噪声注入可能就够用了。但如果攻击者能把设备带回实验室慢慢研究,那你需要更高级的防护——比如掩码(Masking)或隐藏(Hiding)技术。
1.4 本章知识体系
下面这张图,是我梳理的侧信道攻击知识框架。你可以把它当作整个课程的地图。
这张图把侧信道攻击的四大分类和典型攻击场景串在了一起。后面的课程,我们会逐一深入每个分支,尤其是功耗攻击——因为它是ChipWhisperer的主战场。
好了,这一章就到这里。记住一句话:侧信道攻击不是魔法,而是物理。理解了芯片的物理行为,你就能找到密钥的藏身之处。