硬件安全讲座:侧信道攻击与防御(Spectre攻击详解)

Rutvik

总结:

本讲座深入探讨了硬件安全中的侧信道攻击及其防御方法,强调了性能与安全性之间的权衡。

硬件安全讲座标题
硬件安全讲座标题 [ 00:00:06 ]

  • 侧信道攻击原理: 通过系统输入导致的行为差异(如功耗、电磁辐射、执行时间等)来窃取敏感信息。
  • 基于时间的侧信道攻击: 攻击者通过测量程序执行时间来推断秘密数据,例如密码检查器中因字符匹配数量而导致的提前终止。
  • 恒定时间代码: 一种防御策略,旨在使程序执行时间独立于秘密输入,但需要避免基于秘密值的分支和内存访问。
  • 硬件漏洞: CPU为提高性能采取的优化(如缓存、乱序执行、分支预测)可能无意中创建侧信道。
  • 缓存攻击 (Prime + Probe): 攻击者填充缓存,受害者使用秘密数据,导致攻击者的数据被逐出,攻击者通过探测缓存未命中时间推断受害者访问的内存位置,进而窃取秘密。
  • 推测执行漏洞 (Spectre): 分支预测错误导致CPU推测性执行不应执行的代码路径,并将秘密数据加载到缓存中,即使推测被撤销,缓存状态的变化仍可被攻击者通过侧信道观察到。
  • 防御措施: 包括在软件中插入内存屏障 (Lfence) 或采用推测加载硬化 (SLH) 技术,以及硬件层面的安全架构改进。

引言 [00:00]

侧信道 [03:06]

基于时间的侧信道 [05:17]

定时攻击示例 [06:07]

恒定时间代码:原则 [10:53]

硬件侧信道 [17:36]

基于缓存的侧信道 [21:58]

恒定时间代码:规则 [29:56]

推测执行 [32:24]

Spectre 攻击 [35:58]

推测执行漏洞的修复 [41:58]

结论 [48:32]