编译 | 王傲翔编辑 | 程茜
芯东西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 ImplementationsUsing 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