NDSS 2025|侧信道与可信计算攻击技术导读(二)系统化评估新旧缓存侧信道攻击技术
本文为 NDSS 2025 导读系列 之一,聚焦本届会议中与 硬件安全与侧信道技术 相关的代表性论文。
NDSS(Network and Distributed System Security Symposium) 是网络与系统安全领域的顶级国际会议之一,由 Internet Society 主办,致力于推动系统安全、协议分析、漏洞挖掘、隐私保护等前沿技术的发展。每年,NDSS 都汇聚了大量关于软件与硬件攻防的新成果。
在 NDSS 2025 中,我特别挑选出 11 篇与 可信执行环境(TEE)安全、缓存与微架构侧信道、虚拟化攻击、设备信号泄露等 相关的论文,组成本系列专题导读,从多个维度拆解当前硬件安全研究的技术趋势与挑战。
本篇为系列第 2 篇,导读论文:
《A Systematic Evaluation of Novel and Existing Cache Side Channels》
Fabian Rauscher (Graz University of Technology), Carina Fiedler (Graz University of Technology), Andreas Kogler (Graz University of Technology), Daniel Gruss (Graz University of Technology)
背景与动机
缓存侧信道攻击(Cache Side-Channel Attacks)是一类依赖于微架构中缓存行为差异的攻击技术,可用于窃取加密密钥、用户输入、执行流程等信息。
经典技术包括:
-
Flush+Reload:驱逐共享内存行后测量访问延迟;
-
Prime+Probe:填满 cache set 后观测受害者活动导致的驱逐;
-
Flush+Flush:检测两次 flush 的延迟差异;
-
Evict+Reload:通过 eviction set 强制驱逐后 reload。
问题是:
-
这些技术依赖共享内存或包容性缓存结构;
-
而最新的 Intel Sapphire Rapids 架构采用非包容性 L3 缓存,传统跨核驱逐行为大多失效。
本文目标
-
系统性评估 4 类经典攻击与 3 种新型攻击方式;
-
对 7 种攻击技术,在现代架构(Sapphire/Emerald Rapids)上,使用统一的 9 项指标进行量化比较;
-
展示
cldemote
指令在缓存攻击中的新作用,提出新的威胁模型。
三种新型 Demote 系列攻击
作者提出三种基于 Intel 新指令 cldemote
的缓存攻击:
1. Demote+Reload
-
原理:攻击者使用
cldemote
将目标 cache line 降级到 L3,若 victim 访问该地址,会将其 reload 回 L1。随后攻击者再 reload 并测量延迟,以判断 victim 是否访问。 - 优势:
-
不触发 DRAM 访问;
-
相比 Flush+Reload 延迟更短;
-
通道容量达 15.48 Mbit/s(在 covert channel 中为最高);
-
盲区长度为 42.6%,远低于 Flush+Reload 的 61%。
-
2. Demote+Demote
-
原理:通过两次
cldemote
指令之间的执行时间差判断目标地址是否被访问。若 victim 曾访问,该地址重新进入 L1,第二次 demote 延迟变长。 - 优势:
-
攻击延迟低,仅 185 CPU cycles;
-
不需 memory reload 或共享内存;
-
不产生 DRAM、TLB、LLC 事件,难以被检测。
-
3. DemoteContention
-
原理:攻击者不断对 L3 中某个 set 进行
cldemote
,制造访问冲突。如果 victim 也在同 set 上活动,会增加cldemote
执行时间。 - 亮点:
-
完全不依赖共享内存或物理地址;
-
可用于 跨核攻击;
-
是目前在非包容性 L3 架构下,唯一实证有效的跨核 cache side-channel。
-
九项评估指标汇总
指标 | Demote+Reload | Demote+Demote | Flush+Reload | Prime+Probe |
---|---|---|---|---|
命中-未命中延迟差 | 34 cycles | 60 cycles | 68 cycles | 97 cycles |
时间精度(误差) | ±24 ns | ±16 ns | ±42 ns | ±68 ns |
空间精度 | cache line | cache line | page | set |
盲区长度 | 42.6% | 0% | 61% | 89% |
攻击延迟 | 320 cycles | 137 cycles | 638 cycles | 1320 cycles |
通道容量 | 6.09 Mbit/s | 9.36 Mbit/s | 2.15 Mbit/s | 3.78 Mbit/s |
可检测性 | 中 | 难 | 易 | 中 |
攻击实证分析
OpenSSL AES T-table 攻击
-
目标:通过缓存访问模式重建 AES 末轮 key。
- 结果:
-
Demote+Reload 所需加密次数为 13,000 次;
-
相比 Evict+Reload(360,000 次)显著减少;
-
成功率达 98.6%,精度高于所有其他方案。
-
AES T-table 攻击实验详解
背景:为什么选 AES T-table?
T-table 实现是早期 AES 加速优化方式,将 S-box 和 MixColumns 预计算表格后存在缓存中。虽然 OpenSSL 已弃用该实现,但它仍被广泛用作 缓存侧信道攻击基准模型,因其访问模式高度数据相关,易受缓存探测干扰。
攻击目标与场景设定
论文模拟了一个现实攻击场景:
-
攻击者与 victim 运行于同一物理核不同逻辑核(SMT 同核);
-
Victim 使用 T-table 执行 AES 加密(密钥攻击者无法访问);
-
攻击者对最后一轮 AES 的表项访问进行探测,尝试恢复末轮密钥字节。
该方法源于 Irazoqui 等人的 AES 末轮 key recovery 攻击策略。
实验参数与设置
-
每个攻击进行至少 1000 次密钥恢复;
-
每轮攻击中执行上千万次 AES 加密;
-
按“达到 97% ~ 99% 正确率所需最少加密次数”统计攻击效率;
-
比较指标包括:成功率、加密次数、总攻击时间。
Sapphire Rapids 上的攻击效果(Table III)
攻击方式 | 使用 yield | 正确率 | 加密次数 | 总耗时 |
---|---|---|---|---|
Demote+Reload | ✗ | 98.7% | 11,000 | 14.5ms |
Flush+Reload | ✗ | 97.9% | 11,000 | 18.0ms |
Demote+Demote | ✓ | 99.2% | 9,000 | 20.9ms |
Demote+Demote | ✗ | 97.1% | 15,000 | 22.6ms |
Flush+Flush | ✗ | 99.3% | 18,000 | 38.1ms |
Flush+Flush | ✓ | 98.8% | 16,000 | 42.2ms |
Evict+Reload | ✗ | 97.2% | 470,000 | 529.8ms |
Evict+Reload | ✓ | 97.2% | 320,000 | 554.0ms |
Prime+Probe | ✓ | 66.7% | 1,000,000 | 1320.5ms |
分析解读
Demote+Reload
-
攻击延迟最短(14.5ms);
-
和 Flush+Reload 相同加密次数(11,000),但更快;
-
不使用
sched_yield
时即表现优越; -
适合高频攻击场景,如实时密钥泄漏、频繁调用服务。
Demote+Demote
-
加密次数最少(9,000),但攻击时间不短;
-
有
sched_yield
时效果更好,但代价是线程调度 overhead; -
优于 Flush+Flush,但仍不及 Demote+Reload 的时间性。
Evict+Reload / Prime+Probe
-
攻击时间成本高两个数量级;
-
需要大量加密次数以弥补信道质量差;
-
在非包容性架构中失效频繁,是旧方法的典型退化代表。
可视化攻击效果对比
图 8 展示了 10,000 次加密中,各类攻击在 T-table 表中的命中热度图。
-
黑色程度越深,表示命中频率越高;
-
明显对角线表示该攻击成功识别出明文与 cache 行的对应关系(即:成功恢复 key)。
六幅热力图展示了各类攻击(Demote+Reload、Flush+Reload、Evict+Reload、Demote+Demote、Flush+Flush、Prime+Probe)在AES T-table 表中的命中情况: 清晰的对角线(尤其是 a, b, d, e)说明攻击准确地识别了 S-box 或 T-table 的明文相关模式;混乱或无规律的图像(如 c, f)表示攻击失败或误差大;对角线越清晰,表示对不同明文字节所使用的缓存行区分越明显 → 对应攻击成功率越高。Demote+Reload 和 Demote+Demote 图像清晰,Flush 类对角线略模糊,Evict/Probe 几乎无特征。
小结
-
Demote+Reload 在攻击速度、盲区、检测难度三方面综合最优;
-
可被看作 Flush+Reload 的现代替代,尤其适配新一代非包容性架构;
-
在 AES T-table 攻击中具有实用性,足以作为教学与实验场景中的新主力方案;
-
也可推广至其它数据依赖强的缓存结构中(如 RSA、EdDSA)。
击键间隔攻击(Inter-keystroke Timing)
-
机制:监测输入框内内存访问行为,重构用户击键时间序列;
-
Demote+Reload 在时间精度和隐蔽性上优于 Flush 类攻击。
KASLR 绕过
-
方法:用 DemoteContention 扫描内核文本段,通过测量
cldemote
延迟推测 kernel text 页表分布; -
结果:准确推测内核起始页偏移。
功耗侧信道辅助
-
cldemote
指令操作引发显著 Hamming 重写; -
最大功耗差异达 310μW/bit;
-
可放大传统功耗侧信道攻击效果。
安全影响与防护思考
-
cldemote
原用于 cache 能效优化,但其微秒级执行延迟对缓存状态极度敏感; -
成为非包容性缓存架构下少数可被武器化的用户态指令;
- 建议:
-
系统层面限制
cldemote
调用; -
在多核调度中隔离同 cache set 分配;
-
强化缓存争用/一致性通道的可观测性与干扰机制。
-
总结
本论文系统比较了现有与新型缓存攻击技术,并指出:
-
Flush 类攻击正在逐步失效于现代架构;
-
cldemote
是当前 cache side channel 的新型突破口; -
Demote 系列攻击在隐蔽性、适应性、跨核能力方面都优于传统方法;
-
TEE、KASLR、功耗安全模型应重估
cldemote
带来的信息泄露面。