Intel 和 AMD CPU 中的一个新漏洞让黑客窃取加密密钥

研究人员周二表示,来自英特尔、AMD 和其他公司的微处理器包含一个新发现的弱点,远程攻击者可以利用该弱点来获取通过硬件传输的加密密钥和其他秘密数据。

硬件制造商早就知道,黑客可以通过测量芯片在处理这些值时消耗的功率来从芯片中提取秘密加密数据。幸运的是,利用针对微处理器的功耗分析攻击的手段是有限的,因为攻击者在处理机密材料时几乎没有可行的方法来远程测量功耗。现在,一组研究人员已经想出了如何将功率分析攻击转变为另一种要求不高的侧信道攻击。

针对 DVFS

该团队发现,动态电压和频率缩放 (DVFS)(一种添加到每个现代 CPU 的电源和热管理功能)允许攻击者通过监控服务器响应特定精心制作的查询所需的时间来推断功耗的变化. 这一发现大大减少了所需的东西。了解了 DVFS 功能的工作原理后,功率侧信道攻击变得更加简单,可以远程进行定时攻击。

研究人员将他们的攻击称为 Hertzbleed,因为它利用对 DVFS 的洞察力来暴露或泄露预计将保持私密的数据。该漏洞被跟踪为 Intel 芯片的 CVE-2022-24436 和 AMD CPU 的 CVE-2022-23823。研究人员已经展示了他们开发的漏洞利用技术如何用于从运行SIKE的服务器中提取加密密钥,SIKE是一种加密算法,用于在不安全的通信通道上在两方之间建立密钥。

研究人员表示,他们成功地重现了他们对 Intel CPU 从第 8 代到第 11 代 Core 微架构的攻击。他们还声称该技术可以在 Intel Xeon CPU 上运行,并验证 AMD Ryzen 处理器易受攻击,并启用了针对 Intel 芯片的相同 SIKE 攻击。研究人员认为,其他制造商的芯片也可能受到影响。

在一篇解释这一发现的博客文章中,研究团队成员写道:

Hertzbleed 是一个新的侧信道攻击家族:频率侧信道。在最坏的情况下,这些攻击可以让攻击者从以前被认为是安全的远程服务器中提取加密密钥。

Hertzbleed 利用我们的实验表明,在某些情况下,现代 x86 处理器的动态频率缩放取决于正在处理的数据。这意味着,在现代处理器上,相同的程序在计算时可以以不同的 CPU 频率运行(因此需要不同的挂钟时间),例如,2022 + 238232022 + 24436.

Hertzbleed 是对加密软件安全性的真实且实际的威胁。
我们已经展示了一个聪明的攻击者如何使用一种新颖的选择密文攻击SIKE来通过远程定时执行完整的密钥提取,尽管 SIKE 被实施为“恒定时间”。

与此同时,英特尔安全通信和事件响应高级总监 Jerry Bryant 对该技术的实用性提出了质疑。在一篇文章中,他写道:“虽然从研究的角度来看这个问题很有趣,但我们认为这种攻击在实验室环境之外是不可行的。另外请注意,针对电源侧信道攻击进行强化的加密实现并不容易受到攻击对于这个问题。” 英特尔还在这里发布了针对硬件和软件制造商的指南。

英特尔和 AMD 都没有发布微码更新来改变芯片的行为。相反,他们支持 Microsoft 和 Cloudflare 分别对其PQCrypto-SIDHCIRCL加密代码库所做的更改。研究人员估计,缓解措施为 CIRCL 增加了 5% 的解封装性能开销,为 PQCrypto-SIDH 增加了 11% 的解封装性能开销。缓解措施是由独立发现相同弱点的不同研究小组提出的。

AMD 拒绝在取消协调披露禁令之前发表评论。

以毫秒为粒度

在解释 Hertzbleed 攻击时,研究人员写道:

在本文中,我们展示了在现代 Intel(和 AMD)x86 CPU 上,功耗分析攻击可以转化为定时攻击——有效地消除了对任何功耗测量接口的需求。我们的发现是通过这些 CPU 的积极动态电压和频率缩放 (DVFS) 实现的。DVFS 是一种常用技术,包括动态调整 CPU 频率以降低功耗(在低 CPU 负载期间)并确保系统保持低于功率和热限制(在高 CPU 负载期间)。我们发现,在某些情况下,DVFS 引起的 CPU 频率调整取决于当前以毫秒为单位的功耗。因此,由于功耗与数据相关,因此 CPU 频率调整也与数据相关。

更糟糕的是,我们表明无需任何特殊权限甚至远程攻击者都可以观察到与数据相关的频率调整。原因是 CPU 频率差异直接转化为执行时间差异(如 1 赫兹 = 每秒 1 个周期)。这一发现的安全意义是重大的。例如,它们从根本上破坏了恒定时间编程,这是自 1996 年发现以来一直是抵御定时攻击的基石 [58]。恒定时间编程背后的前提是,通过编写程序只使用“安全”指令,其延迟不受数据值的影响,程序的执行时间将与数据无关。然而,有了频道,时间就变成了数据的函数——即使只使用了安全指令。

尽管具有理论上的强大功能,但如何通过频率侧信道构建实际漏洞并不明显。这是因为 DVFS 更新依赖于数百万个 CPU 周期的总功耗,并且仅反映粗粒度的程序行为。然而,我们通过 (i) 在现代 x86 CPU 上对该通道的精确泄漏模型进行逆向工程,以及 (ii) 表明某些密码原语允许放大单个关键位猜测数以千计的高功率或低功率操作,足以产生可测量的时序差异。

伊利诺伊大学厄巴纳-香槟分校研究员、该论文的合著者 Riccardo Paccagnella 表示,Hertzbleed 证明了由硬件和软件工程师共同制定的用于编写不易受到定时攻击的软件的指导已经过时。“结果是当前关于如何编写恒定时间代码的行业指南(例如英特尔的)不足以保证在现代处理器上的恒定时间执行,”他在在线消息中写道。

目前,最终用户无能为力,即使有,目前尚不清楚 Hertzbleed 是否代表了一个明确而现实的威胁。相反,开发人员应该仔细考虑调查结果如何影响他们设计的加密软件的安全性。研究人员提出了其他方法来强化应用程序以抵御类似 Hertzbleed 的攻击。