侧信道攻击与防御:密码学物理实现的安全挑战
概述
侧信道攻击(Side-Channel Attack, SCA)是一种针对密码系统物理实现的信息安全攻击方法。与针对密码算法数学结构的传统密码分析不同,侧信道攻击利用密码设备在运行过程中产生的物理泄漏信息(如功耗、电磁辐射、执行时间等)来恢复密钥或敏感数据。自1996年Paul Kocher首次提出时间侧信道攻击以来,侧信道攻击已成为硬件安全领域的重要研究方向,对智能卡、密码模块、嵌入式系统等密码实现构成了严峻挑战。
侧信道攻击的基本原理
1.1 定义与特点
侧信道攻击的核心思想基于以下事实:密码算法的物理实现会产生与处理数据相关的物理现象,这些现象中包含了关于密钥或敏感数据的信息。
侧信道攻击具有以下显著特点:
- 非侵入性:通常不需要修改或损坏目标设备,攻击者在设备正常运行过程中即可获取信息
- 与实现相关:攻击针对特定实现而非算法本身,理论上安全的算法在实际实现中可能变得不安全
- 高效性:在许多情况下,比数学破解更高效。例如,针对无保护AES-128的智能卡实现,差分功耗分析可在30秒内恢复主密钥,而穷举攻击需要 $5.3 \times 10^{17}$ 年
- 隐蔽性:难以被传统安全机制检测,因为攻击不直接利用软件漏洞
1.2 侧信道信息的来源
密码设备在运行过程中会产生多种类型的侧信道信息:
| 侧信息来源 | 物理机制 | 测量方式 | 典型攻击 |
|---|---|---|---|
| 功耗信息 | CMOS电路状态切换的能量消耗 | 电流探头、示波器 | SPA、DPA、CPA |
| 电磁辐射 | 电路工作时的电磁发射 | 近场探头、频谱仪 | SEMA、DEMA、CEMA |
| 时间信息 | 指令执行时间差异 | 精确计时器 | 时间分析攻击 |
| 声学信息 | 设备运行产生的声波 | 高频麦克风 | 声学密码分析 |
| 故障信息 | 异常环境导致的计算错误 | 电压/时钟/激光注入 | 故障注入攻击 |
1.3 与传统密码分析的区别
| 维度 | 传统密码分析 | 侧信道攻击 |
|---|---|---|
| 攻击目标 | 密码算法的数学结构 | 密码算法的物理实现 |
| 攻击条件 | 算法理论分析 | 需要物理访问或接近设备 |
| 攻击效率 | 通常需要大量计算资源 | 通常更高效、成本更低 |
| 防御手段 | 改进算法设计 | 硬件/软件/算法多层防护 |
| 适用场景 | 纯软件实现 | 硬件实现(智能卡、嵌入式设备) |
功耗分析攻击技术
功耗分析是侧信道攻击中最常用和最有效的方法之一,基于设备在执行密码运算时的功耗变化。
2.1 简单功耗分析(SPA)
简单功耗分析(Simple Power Analysis)通过直接观察单个功耗轨迹来获取信息。
基本原理:许多密码算法的不同操作具有不同的功耗特征。例如,在RSA的简单实现中,密钥的每一位决定是否执行模乘操作——密钥位为1时执行模乘和模平方,密钥位为0时只执行模平方。模乘操作通常比模平方消耗更大的功耗,通过观察功耗峰值即可推断密钥位值。
局限性:SPA依赖于实现中明显的功耗差异,对采用恒定时间实现的算法无效。
2.2 差分功耗分析(DPA)
差分功耗分析(Differential Power Analysis)利用统计方法分析多个功耗轨迹,提取微弱信号。
基本原理:对于每个可能的密钥假设,将功耗轨迹分为两组(假设中间值为0或1),计算两组平均功耗的差异。正确密钥对应的差分轨迹将在相关时间点出现明显峰值。
实施步骤:
- 确定攻击目标(如AES第一轮S盒的输出位)
- 采集大量不同明文输入下的功耗轨迹(通常需要几百到几千条)
- 对每个可能的密钥字节(0-255),计算中间值并分组
- 计算两组平均功耗的差异
- 产生明显峰值的密钥假设即为正确密钥
2.3 相关功耗分析(CPA)
相关功耗分析(Correlation Power Analysis)是DPA的改进方法,使用相关性分析提高攻击效率。
基本原理:使用汉明重量模型或汉明距离模型描述电路功耗与数据处理之间的关系,计算实际功耗与假设中间值功耗模型之间的相关系数,最大相关系数对应的密钥假设即为正确密钥。
CPA与DPA对比:
| 特性 | DPA | CPA |
|---|---|---|
| 分析效率 | 需要较多轨迹 | 通常需要更少轨迹 |
| 噪声敏感度 | 较高 | 较低 |
| 功耗模型 | 简单分组 | 复杂灵活 |
| 密钥确定方式 | 差分峰值 | 相关系数 |
2.4 高阶功耗分析
高阶功耗分析针对实施了一阶防御措施(如掩码)的系统,通过结合多个功耗样本的统计特性来提取信息。
基本原理:一阶掩码试图隐藏敏感数据与功耗之间的直接关系,但可能在高阶统计特性中留下信息。二阶差分功耗分析结合两个时间点的功耗信息,可以破坏一阶掩码的保护。
其他侧信道攻击技术
3.1 电磁分析攻击
电磁分析(Electromagnetic Analysis, EMA)利用设备产生的电磁辐射来获取信息。与功耗分析相比,EMA具有非侵入性更强、空间分辨率更高、可能捕获更丰富信息等优势。
主要类型:
- 简单电磁分析(SEMA):直接观察电磁辐射信号
- 差分电磁分析(DEMA):利用统计方法分析电磁差异
- 相关电磁分析(CEMA):利用相关性分析
3.2 时间分析攻击
时间分析攻击利用密码算法执行时间的差异来获取信息。
典型场景:
- 基于指令执行时间的攻击
- 基于缓存访问时间的攻击(如Spectre、Meltdown)
- 基于分支预测的攻击
3.3 故障注入攻击
故障注入是一种主动式侧信道攻击,通过向目标设备注入故障来获取信息。
注入方法:
- 时钟故障注入:改变时钟频率或注入额外脉冲
- 电压故障注入:改变电源电压
- 激光故障注入:使用激光照射特定电路区域
- 电磁脉冲故障注入:产生强电磁脉冲
3.4 声学分析攻击
声学分析利用设备产生的声音来获取信息。例如,以色列特拉维夫大学的研究人员曾通过分析笔记本电脑运行时的声音成功恢复了PGP程序的密钥。
防御策略
4.1 掩码技术(Masking)
掩码技术通过引入随机数将敏感数据分解为多个分组,消除侧信息与密钥的依赖性。这是目前最主流的防御手段。
基本原理:将秘密值 $s$ 分解为 $n$ 个随机份额 $s_1, s_2, ..., s_n$,使得 $s = s_1 \oplus s_2 \oplus ... \oplus s_n$。每个份额单独处理,任意 $n-1$ 个份额不泄露关于 $s$ 的信息。
4.2 隐藏技术(Hiding)
隐藏技术通过平均化"0"和"1"对应的侧信息差别来降低数据的可区分度。
实现方式:
- 随机伪操作:插入随机空操作,打乱执行时序
- 噪声注入:在电路中注入随机噪声
- 平衡电路设计:使用差分逻辑和绝热逻辑
4.3 算法层面防御
- 恒定时间算法:确保算法执行时间与输入数据无关
- 安全实现:避免使用可能导致侧信道泄漏的操作,如基于秘密数据的条件分支
- 随机化:打乱操作执行顺序,破坏时序相关性
4.4 综合防御方案
实际密码系统通常采用多层防御策略的组合:
┌─────────────────────────────────────────────┐
│ 密码系统综合防御架构 │
├─────────────────────────────────────────────┤
│ 算法层:恒定时间实现 + 安全编码实践 │
│ 协议层:掩码 + 随机化 + 混淆 │
│ 硬件层:平衡电路 + 噪声注入 + 物理屏蔽 │
│ 系统层:访问控制 + 入侵检测 + 定期评估 │
└─────────────────────────────────────────────┘侧信道攻击的典型案例分析
案例1:智能卡攻击(2015年)
上海交通大学研究团队通过能量分析攻击成功分析了八个从各种运营商和制造商获得的3G/4G SIM卡,展示了侧信道攻击对实际部署系统的威胁。
案例2:跨墙攻击(2016年)
以色列特拉维夫大学和理工学院的研究人员发现,通过测量一墙之隔的物理隔离设备运行时的电磁辐射,仅需3.3秒即可恢复15厘米厚墙体另一侧笔记本上运行的GnuPG密钥。
案例3:Fox-IT攻击(2017年)
Fox-IT安全专家证实,利用ARM Cortex处理器与AHB总线之间的漏洞,可用224美元的廉价设备在1米内通过侧信道攻击提取AES-256加密密钥,攻击时间仅需数十秒。
相关标准与合规要求
侧信道攻击防御已成为多项密码标准的核心要求:
- GM/T 0028-2014《密码模块安全技术要求》:规定密码模块的安全要求,包括抗侧信道攻击能力
- GB/T 37092-2018《信息安全技术 密码模块安全要求》:定义密码模块的安全等级和测评要求
- GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》:从系统层面提出密码应用的安全要求
- CC EAL认证:通用准则评估保障级中,高等级要求抗侧信道攻击测试
总结
侧信道攻击代表了密码学从理论安全到实际安全的重要挑战。随着物联网、移动计算和云计算的快速发展,密码实现面临着前所未有的侧信道威胁。理解侧信道攻击的原理和防御方法,对于设计和部署安全的密码系统至关重要。
防御侧信道攻击需要采用多层次、多维度的综合防护策略,从算法设计到硬件实现,从软件开发到系统部署,每个环节都需要考虑侧信道安全。同时,随着机器学习等新技术在侧信道分析中的应用,侧信道攻击与防御的博弈仍将持续演进。
参考来源
- Kocher P. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems. CRYPTO 1996.
- Kocher P, Jaffe J, Jun B. Differential power analysis. CRYPTO 1999.
- Mangard S, Oswald E, Popp T. Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer, 2007.
- GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》
- GM/T 0028-2014《密码模块安全技术要求》
- GM/T 0054-2018《信息系统密码应用基本要求》
- 中国保密协会科学技术分会. 侧信道攻击与防御. 2017.