侧信道安全(Side-Channel Security)
第一章 背景1.1 什么是侧信道攻击核心定义侧信道攻击Side-Channel Attack, SCA是一种不直接攻击密码算法的数学结构而是通过观察系统在执行密码运算时泄露的物理信息时间、功耗、电磁辐射、声音等来推导秘密信息如密钥的攻击方法。关键区分传统密码分析 → 攻击算法本身的数学弱点如差分分析、线性分析侧信道攻击 → 攻击算法的实现方式利用物理世界的副产品侧信道攻击的本质是信息泄露存在于物理实现层面而非逻辑层面。1.2 为什么侧信道攻击重要即使一个密码算法在数学上被证明是安全的如 AES其硬件/软件实现仍可能因侧信道泄露而被攻破第二章 基本原理信息为何会泄露泄露的根源计算的物理本质任何计算都需要消耗能量、花费时间、产生电磁辐射。这些物理量往往与所处理的数据和操作相关。数据依赖性Data Dependency处理0x00和0xFF时的功耗可能不同汉明重量不同执行乘法和跳过乘法的时间不同条件分支泄露访问不同缓存行会导致不同的延迟缓存状态泄露信息泄露的基本模型设密钥为 (k)输入为 (x)侧信道观测为 (L)泄露模型L f(k, x) noise攻击者的目标通过大量观测L结合已知/选择的 x统计推断出密钥 k第三章 常见侧信道攻击类型3.1 时间攻击Timing Attack原理密码运算的执行时间依赖于输入数据或密钥的值经典案例Kocher (1996) 对 RSA 的时间攻击RSA 中模幂运算的平方-乘算法密钥位为 1 时执行乘法为 0 时跳过通过统计运算时间推断密钥的每一位3.2 功耗分析Power Analysis简单功耗分析SPA直接从单条功耗曲线中识别操作模式例RSA 平方-乘操作在功耗曲线上有明显的高低区分差分功耗分析DPAKocher 等人 (1999) 提出利用大量功耗曲线的统计差异提取密钥基于汉明重量模型或汉明距离模型3.3 电磁泄露攻击EM Attack原理电子设备运行时产生电磁辐射其特征与内部计算相关优势非接触式可在一定距离外采集可针对芯片的特定区域进行近场探测某些场景下比功耗分析更有效如多核处理器中隔离单核信号研究进展已证明可通过电磁泄露攻击 AES、RSA 等算法实现3.4 缓存攻击Cache Attack原理现代 CPU 使用多级缓存访问缓存命中cache hit和缓存未命中cache miss的延迟差异巨大主要技术PrimeProbe攻击者填充缓存集 → 等待受害者执行 → 探测哪些缓存集被替换FlushReload利用共享内存页刷新某行 → 等待受害者访问 → 测量重新加载时间EvictTime驱逐特定缓存行 → 测量受害者执行时间变化威胁模型可在同一物理机或同一云实例中实施跨虚拟机攻击3.5 其他类型类型泄露来源备注声学攻击电子元件的声音振动Genkin 等 (2014) 攻击 RSA故障注入人为引入错误分析错误输出属于主动攻击Active Attack光学攻击芯片表面光发射需要精密设备数据残留内存中的残留数据冷启动攻击Cold Boot Attack第四章 典型真实攻击案例AES 缓存时间攻击Bernstein (2005)对 OpenSSL 的 AES 实现发起远程时间攻击AES 的 T-table 查表操作依赖密钥和明文不同输入导致不同的缓存命中/未命中模式 → 运算时间不同通过统计分析恢复完整 AES-128 密钥Osvik 等 (2006)在同一系统上使用 PrimeProbe 攻击 AES仅需约 65 毫秒即可提取完整密钥第五章 · 攻击流程5.1 通用侧信道攻击流程Step 1: 目标识别与建模 → 确定目标设备/软件、密码算法、泄露类型 Step 2: 数据采集 → 采集侧信道信号功耗曲线、时间戳、缓存状态等 → 同步采集对应的输入/输出已知明文或密文 Step 3: 信号预处理 → 对齐、滤波、降噪、特征提取 Step 4: 密钥假设与统计分析 → 对密钥的每个子部分如一个字节穷举所有候选值 → 用泄露模型预测每个候选值应产生的侧信道信号 → 计算预测值与实际观测值的统计相关性 Step 5: 密钥恢复 → 相关性最高的候选值即为正确的子密钥 → 组合所有子密钥 → 恢复完整密钥第六章 · 防御机制6.1 算法层防御恒定时间实现Constant-Time Implementation确保所有操作的执行时间与数据无关避免条件分支、数据依赖的查表、提前退出例使用位运算替代条件选择 →result (mask a) | (~mask b)掩码技术Masking / Boolean Masking将敏感中间值 (v) 分割为多个随机份额(v v_1 \oplus v_2 \oplus \cdots \oplus v_d)每个份额单独看是均匀随机的不泄露 (v) 的信息需要 (d) 阶掩码抵御 (d) 阶攻击高阶掩码的实现复杂度和性能开销较大随机化Shuffling / Randomization随机打乱操作顺序如 AES 中 16 个 SubBytes 的执行顺序随机化增加攻击者对齐信号的难度6.2 硬件层防御片上噪声生成器增加信号的噪声水平降低信噪比电压/频率随机化使功耗曲线的时间对齐更加困难物理不可克隆函数PUF利用制造偏差生成设备唯一密钥增强密钥保护总结“如果一个加密算法在数学上被证明是安全的是否意味着它的实现一定安全”算法安全 vs 实现安全“为什么在密码学实现中if (secret_bit 1) { do_multiply(); }这样的代码是危险的”时间泄露与条件分支的关系
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449308.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!