智东西 03-24
苹果芯片被曝重大安全漏洞,或致密钥泄漏
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

芯东西(公众号:aichip001)

编译   | 王傲翔

编辑 | 程茜

芯东西 3 月 24 日消息,据美国科技媒体 Ars Technica 报道,研究人员在周四发表的论文中披露,苹果 M 系列芯片中存在一个新发现的安全漏洞。

这一漏洞允许攻击者在执行广泛使用的加密操作时从苹果 Mac 电脑中窃取密钥,从而访问用户的数据。

据了解,苹果无法在芯片上修复这一漏洞,需要开发者采用其他措施进行修复。然而几乎所有措施都会严重影响设备的性能。

对苹果修复该漏洞可能产生的影响,暂时不得而知。可以确定的是,当用户使用特定的加密操作时,设备性能会显著损失。

苹果公司拒绝对该研究置评。

一、源于硬件优化功能,DMP 易受攻击

苹果 M 芯片中存在的这一安全漏洞是一种侧信道(side channel)攻击。当苹果芯片运行常用的加密协议时,侧信道允许端到端的密钥提取。由于这一漏洞存在于苹果芯片本身的微架构设计,因此它无法直接修补。

相反,苹果只能通过在第三方加密软件中建立防御措施来缓解这一问题,而这些加密软件在执行加密操作时会大幅降低 M 系列芯片的性能,特别是此前搭载 M1 和 M2 系列的苹果产品。当目标加密操作和恶意应用程序以普通用户系统权限在同一 CPU 集群上运行时,该漏洞就会被利用。

该漏洞源于苹果芯片的数据内存依赖预取器(data memory-dependent prefetcher, DMP)的硬件优化功能,DMP 可以预测当前运行代码中最有可能访问的数据内存地址。

延迟是现代计算机中的一个常见瓶颈。在将所需要的实际内容加载到 CPU 缓存中时,DMP 可以减少主内存和 CPU 之间的延迟。旧形式的预取器已使用多年,但 DMP 是一种较新的技术,仅在苹果 M 系列芯片和英特尔第 13 代 Raptor Lake 微架构中使用过。

安全专家很早就了解到,传统的预取器能够打开一个侧信道,恶意进程可以探测到这一信道,从而在加密操作系统中获取密钥信息。

由于预取器根据先前的访问模式进行预测信道,这可能导致侧信道的状态发生变化,攻击者则可以利用这些变化来泄露信息。

为了应对这种风险,密码工程师设计了常量时间编程(constant-time programming)。这种方法可以确保无论是怎样的操作量,所有操作都需要相同的时间来完成。它通过保持代码不受秘密依赖内存访问(secret-dependent memory accesses)或其他结构的限制来实现。

这项新研究的突破之处在于,它揭示了苹果芯片中 DMP 之前被忽视的一个特征,即 DMP 有时会错误地将密钥等敏感数据内容与内存地址指针混淆。其结果是,DMP 经常读取数据并试图将数据理解为地址,从而执行内存访问的操作。这种内存地址指针的 " 解引用 "( dereferencing)意味着数据可以被读取并通过侧信道泄露出去,这明显违反了常量时间操作。

在一封信件中,他们对 DMP 的行为作出解释:" 预取器通常能够查看被访问数据的地址,并尝试猜测未来可能有用的地址,这一过程中预取器会忽略被访问数据的值。

DMP 则不同,因为除了数据的地址外,DMP 还能够使用数据的值进行预测。尤其是如果一个数据值‘看起来’像一个内存地址指针,它将被 DMP 视为一个数据的地址,并且该地址的数据将会被带到缓存中。地址数据到达缓存这一过程是可见的,数据信息从而通过缓存侧信道泄露出去。"

▲内存访问模式与 DMP 在访问数据地址的差别(图源:GoFetch: Breaking Constant-Time Cryptographic Implementations

Using Data Memory-Dependent Prefetchers)

研究人员以此对 DMP 进行攻击。虽然无法直接泄露密钥,但他们可以对加密算法内部的中间数据进行攻击,使数据值看起来像一个地址,并将该地址的数据放入缓存,从而泄露该地址。经过反复尝试,研究人员足以在一段时间内获取密钥。

在论文中,该研究团队对获取密钥这一过程的解释稍有不同,认为研究的关键见解是,虽然 DMP 只 " 解引用 " 指针,但攻击者可以输入程序,使这些输入的程序与密钥混合,并且当且仅当私密信息满足攻击者选择的验证时,混合后所产生的中间状态可以被设计成指针样式。

研究人员举例称假设一个程序具有私密信息 s,那么将 x 作为程序输入并计算,再将 y=s ⊕ x 存储道程序内存中,攻击者则可以制作不同的 x,并观察 DMP 是否能够‘解印’出 y,从而推断出关于 s 的部分甚至全部信息。

二、不需 Root 访问权限,GoFetch 降低黑客攻击门槛

研究人员将这种输入程序与密钥混合的攻击命名为 "GoFetch"。使用 GoFetch 的应用不需要 Root 权限(用户最高权限),只需要与安装在 macOS 系统上的大多数第三方应用程序相同的用户权限。

例如,M 系列芯片被分成两个集群:一个 E 集群(包含四个 E 核心)和一个 P 集群(包含 4 个 P 核心)。只要 GoFetch 应用和目标加密系统在相同的性能集群上运行,即使在该集群内的不同核心上,GoFetch 也能窃取足够的私密信息以泄露密钥。

这种攻击既针对传统的加密算法,也对新一代加密算法有效,即便新一代加密算法已经经过强化,可以抵御量子计算机的预期攻击。

使用 GoFetch 的应用只需要不到一小时就能提取一个 2048-bit RSA 密钥,两个多小时就能提取一个 2048-bit Diffie-Hellman 密钥。它需要 54 分钟提取组装一个 Kyber-512 密钥所需的材料,而提取一个 Dilithium-2 密钥需要 10 小时,这还不包括处理原始数据所需的离线时间。

▲ GoFetch 提取四种密码密钥的实验结果(图源:Ars Technica)

在执行操作时,GoFetch 能够窃取目标应用程序用于执行这些加密操作的密钥。这种机制意味着,在收集数据期间,目标应用程序无需自行执行任何加密操作。

上述四种攻击都采用了常量时间编程,证明了苹果芯片中的 DMP 能击破了所有加密防御。

GoFetch 并不是研究人员首次发现的潜伏在苹果 DMP 中的威胁,对 GoFetch 的优化在 2022 年的一项研究中被记录下来,该研究在苹果 M1 和 A14 芯片中都发现了一种此前未知的 " 指针雕镂 DMP"(pointer-chasing DMP)。

这项来自不同学术团体的研究引发了名为 Augury 的攻击,该攻击识别并利用了一个泄露指针的内存侧通道,从而对 DMP 发起攻击。最终,当使用常量时间编程后,Augury 无法将数据信息和数据地址混合在一起。该攻击的失败给当时人们的印象是,DMP 并没有构成太大的威胁。

使用 GoFetch 应用的作者在他们的网站上写道:"GoFetch 表明,DMP 比之前想象的更具侵略性,因此也构成了更大的安全风险。具体来说,我们发现任何从内存中加载的值都有可能被解引。这使我们能规避 Augury 的许多限制,并在常量时间编程演示端到端攻击。

三、修复安全漏洞,责任在于开发者

与其他微架构 CPU 侧信道一样,苹果无法在芯片上修复 GoFetch。这样一来,减轻漏洞有害影响的责任落在了为苹果硬件开发代码的人身上。对于在 M1 和 M2 处理器上运行加密软件的开发人员来说,这意味着,除了常量时间编程外,他们还必须采用其他防御措施,然而几乎所有措施都会带来显著的性能损失。

一个典型的例子是密文盲化(ciphertext blinding),它是修复安全漏洞最有效的措施之一。密文盲化的工作原理是,在敏感值储存到内存或从内存加载之前和之后,增加或删除掩码。

这能够有效随机化加密算法的内部状态,防止攻击者控制它,从而中和 GoFetch 的攻击。

但不幸的是,研究人员说这种防御针对特定算法,且通常代价高昂,甚至在某些情况下可能会使所需的计算资源增加一倍,例如 Diffie-Hellman 密钥交换协议(Diffie-Hellman key exchanges)。

另一种防御措施是在前面提到的 E 核心上运行加密进程,这些核心中没有 DMP。

一种可能的尝试是,在这些核心上运行所有加密代码。但是这种防御措施也并非十全十美。它不仅可能会有未宣布的变更将 DMP 功能添加到 E 核心中,而且在这里运行加密进程,可能会显著增加完成操作所需的时间。研究人员还提到其他几种特别防御措施,但它们同样存在问题。

此外,苹果最新的芯片 M3 上的 DMP 有一个特殊的位(bit),开发者可以调用这个位,以禁用 DMP 获取数据信息的功能。研究人员目前还不知道在关闭次性能优化时会发生何种性能影响。

研究人员还指出,在英特尔 Raptor Lake 处理器中发现的 DMP 不会泄露相同类型的隐私信息。更重要的是,类似于 M3,在 Raptor Lake 上设置一个特殊的 DOIT 位也能够有效关闭 DMP。

不过对于用户而言,无论发生怎样的性能影响,只有当受影响的软件执行特定的加密操作时,用户才能感知到。对于浏览器和许多其他类型的应用,用户可能无法感知到性能受到怎样影响。

研究人员写道:" 从长远看,我们认为正确的解决方案是补充 2020 年公布的软硬件协议中的内容以解决 DMP 问题。至少硬件应该向软件提供一种在运行安全关键应用程序时选择性禁用 DMP 的方法,这已经有了初步的行业先例。例如,英特尔的 DOIT 扩展明确提到可以通过 ISA 扩展禁用他们的 DMP。

从长期看,在理想情况下,人们希望有更精细的控制措施,例如限制 DMP 只能从特定缓冲区或指定的非敏感内存区域提取数据。"

最后,对此有顾虑的用户应当检查可用于实现已知易受攻击的四种加密协议中任何一种 macOS 的 GoFetch 缓解更新。谨慎起见,至少在目前,假设其他加密协议也可能容易受到影响是明智的。

研究人员称:" 不幸的是,要评估一种措施是否容易受到攻击,需要进行密码分析和代码检查,以了解如何让中间值看起来像指针,从而泄露私密信息。这个过程需要手把手的尝试,并且极其缓慢,还不排除有其他攻击方式。"

结语:用户隐私难保障,苹果应及时回应并解决漏洞

在苹果芯片上发现的这一最新安全漏洞,使得用户的隐私安全受到威胁。根据该研究论文,这一漏洞的发现揭示了苹果芯片中预取器中以前被忽视的行为,苹果产品的安全风险进一步引发社会关注与担忧。

根据英特尔此前先例,以及研究人员提出的相关建议,苹果公司应尽快解决这一漏洞,并防止用户隐私泄露问题的再次发生。鉴于此前发生的苹果设备监听问题,苹果亟待将保护用户隐私作为重点。

来源:Ars Technica

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

智慧云

智慧云

ZAKER旗下新媒体协同创作平台

相关标签

英特尔 芯片 安全漏洞 美国 少主
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论