FHE与TEEs区别:Downfall攻击

1. 引言

Optalysys作为一家专注于加速同态加密(Homomorphic Encryption)的公司,经常被问及 FHE与其他保护data-in-use的技术解决方案,所提供的安全性的区别。

这些问题通常集中在现有的硬件级保护上,这些保护旨在将data-in-use与计算系统的其余部分隔离并保护。几乎每个计算系统都存在某种程度的基于硬件的保护;然而,在保护非常敏感的数据的情况下,可扩展该硬件模型,以将该数据与系统管理员本身隔离。

这种隔离构成了可信执行环境(Trusted Execution Environment,TEE)的基础。大多数最大的 CPU 制造商都提供了一些用于创建 TEE 的机制,如:

  • Intel Secure Guard Extensions ( SGX )
  • ARM TrustZone
  • AMD Secure Encrypted Virtualization ( SEV )。

虽然具体细节有所不同,但连接这些方法的共同点在于:

  • secure enclave安全飞地(加密内存区域)的实现。

理论上,即使从这些区域读取数据或指令,也是难以理解的;该信息只能在 CPU 内即时解密和使用。

这提供了针对许多潜在威胁的额外保护,但它并非绝对可靠,最近发布的硬件攻击方法再次凸显了 TEE 面临的挑战。

FHE 和 TEE 之间的区别在于:

  • 只有FHE能为processing系统内的data-in-use提供全面的安全性。

本文:

  • 首先描述如何在不直接攻击核心安全措施的情况下从计算系统中提取信息,
  • 然后看一下内存级保护失败的一些最新示例。
  • 然后,描述 TEE与FHE 提供的保护之间的基本区别,以及导致对传统微处理架构进行攻击的故障根源。

2. side channel attacks侧信道攻击

精心设计且正确实现的加密解决方案很少会因为攻击其所依据的实际原理而被正面击败。如:

  • 在攻击者没有私钥的情况下,AES 加密被认为几乎是牢不可破的。

但是,若攻击者可通过监控 CPU 执行密钥生成步骤所需的时间来恢复密钥,那么攻击者就找到了一种攻击系统的方法,该方法超出了密码学。可以说攻击者成功地利用了side-channel information(侧信道信息),这种攻击称为侧信道攻击。

这些攻击可能是巧妙的,也可能是令人惊讶的:

  • 最近发现了针对钥匙卡控制门的攻击,可通过分析电源 LED 闪烁的视频成功恢复某secret。闪烁的模式反映了系统的瞬时功耗,可为攻击者提供有关系统正在执行的操作的一些线索。

攻击者寻找这些线索的工具也不仅限于 LED,过去的硬件侧信道攻击示例包括:

其中一些攻击是可能的,但可能需要特定或不切实际的条件才能复制。实际上,可在现场部署的侧信道攻击的范围小于所有已知的侧信道攻击的范围。

然而,当确实发现实际的侧信道攻击时,对其进行防御却是出了名的棘手。此时,攻击面,即所必须考虑的潜在漏洞范围,不再是整齐地涵盖密码学或可在其之上构建的协议。相反,必须将混乱的计算业务视为一种物理现象。

如,在 AES timing攻击的情况下,可通过确保AES密钥生成算法以 constant-time 运行来防止这种攻击,这意味着故意对算法进行编程,无论密钥的具体情况如何,使其运行时间相同。

这是一个相对简单的解决方案,可在软件中执行,且大多数优质密码学库(如Libsodium/NaCl)已经在易受攻击的算法中实现了该安全行为。

解决硬件问题更加复杂:

  • 对于上面所提及的电源 LED 攻击,答案是在电路中的 LED 电源走线上应用电容器或类似的滤波器。此处的目标是平滑 LED 的供电,从而限制或防止明显的闪烁。

像这样解决硬件问题可能意味着一两条产品线受到影响,这是昂贵的;还有补救、召回、退款等问题。但是,当实际的侧信道攻击,攻击了到处都在使用的系统且没有其他实用的替代方案时,会发生什么情况呢?

3. 以前的Spectre 和 Meltdown攻击

这是芯片制造行业屡屡遭遇的噩梦。几年前,Spectre 和 Meltdown攻击曾成为国际头条新闻,因为它们揭露了 1995 年以来生产的每一款英特尔处理器以及大量基于 ARM 的处理器中的硬件漏洞。基于 AMD 的处理器也被发现容易受到这些攻击背后相同基本原理的影响。

这些攻击的技术细节很复杂,但核心思想是:

  • Spectre 和 Meltdown 允许攻击者克服隔离CPU 中进程之间交互的安全隔离边界模型。

在英特尔 CPU 中,这些边界层被描述为“保护环”,描述了对分配给应用程序和进程的硬件资源的概念控制级别。这些环的范围从Ring 3(最低安全级别,由应用程序占用)到Ring 0(为核心操作系统处理内核保留),中间级别为硬件驱动程序和虚拟机等保留。

名义上,这种基于权限的隔离意味着存储在Ring 0下的内存中的数据受到保护,免受恶意应用程序的侵害,这意味着Ring 0可以在使用时用于存储密码和加密密钥等敏感信息。然而,虽然应用程序无法直接控制内存,但应用程序确实有能力向在 Ring 0 中运行的进程请求资源。正是这种请求机制允许 Spectre 和 Meltdown 发挥作用。

Spectre 和 Meltdown这两种攻击都利用了 CPU 的一种称为speculative execution推测执行的属性,这是一种通过允许 CPU “guess猜测”可能发送给它的未来可能的命令、执行每个命令的结果、然后仅保留并执行命令结果与其收到的实际指令相对应,来加速处理的技术。

通过在实际接收到这些命令之前执行这些命令,可加快程序流控制的整体执行速度,并对弥补因检索较慢 RAM 中保存的信息而引起的延迟间隙而言,这是一个非常有用的技巧。

MeltdownSpectre 操纵此行为来泄漏 Ring 0 内存中的信息。虽然二者的作用机制略有不同,但两者背后的基本思想都是通过对受保护内存中保存的数据提交请求,即使请求最终会被拒绝, CPU 仍会推测性地执行结果。这会将受保护的信息暂时放置在 CPU 缓存中,然后可将其转储到未受保护的内存中。

通过重复执行此攻击,内核内存的全部内容(包括密码和加密密钥)可能会被提取到不安全的环境中并被恶意应用程序读取。简而言之,当时使用的几乎每个处理器都存在一个严重缺陷,该缺陷允许攻击者访问通常禁止访问的计算机内存区域,并读取最重要的秘密。

解决该问题非常困难。仅仅禁用推测执行就会使许多工作负载变得缓慢。幸运的是,可远程更新处理器的microcode,从而避免了历史上最大规模、最昂贵的产品召回。

4. 现在的Downfall

现在,speculative execution推测执行侧通道的诅咒再次袭来,这次是以Downfall攻击的形式。

然而,特别有趣的是,受攻击影响的隔离边界不仅包括 Spectre 和 Meltdown 攻击所违反的标准Security Ring安全环模型,还扩展到英特尔安全防护扩展 (Secure Guard Extensions,SGX)。

简而言之,Downfall 攻击的作者确定“Gather”指令可泄漏 CPU 上vector寄存器的内容。由于这会泄露CPU内部的信息(因此无法以加密形式保留),因此与 Spectre 和 Meltdown 攻击一样,这会绕过in-memory encryption内存加密,而内存加密是安全飞地安全性的关键部分。

Intel 自己提供了有关 Gather 指令操作的更详细说明,并发布微代码更新。

5. 为何 FHE 与众不同?

所有这些侧信道攻击的统一因素在于:

  • 在常规计算硬件中,数据必须在某个时刻解密才能使用。
  • 确保没有硬件侧信道可用于泄露这些解密信息是非常困难的。
    • 有关 SGX 的维基百科文章包含了针对 SGX 架构的已知攻击及其补救措施的列表,这在一定程度上凸显了挑战的规模。

然而,该列表的存在并不排除存在可能针对 TEE 原理发起的未知攻击的可能性,也不排除恶意行为者发现新漏洞而不公开该漏洞的最坏情况。

FHE 不会面临这个问题:

  • 在最关心的安全模型中(即在不可信计算环境中执行计算),FHE 可有效防范所有基于硬件的侧信道攻击。

信息不仅在所有点上都保持加密状态,包括在硬件处理环境内部时(从而消除speculative execution推测执行攻击所追求的攻击向量,这些攻击依赖于转储在 CPU 内即时解密的信息),且没有可用于解密该信息的密码学材料保存在不受信任的系统中的任何位置。

由于信息永远不会被解密,因此无需发送用于即时解密的解密密钥。唯一需要的额外密码学材料是:

  • “server” key——有助于bootstrapping引导,
  • 以及密文旋转和重新线性化等操作所需的keys密钥或hints提示。

这些信息都不敏感,因为它们不能用于解密或以其他方式破坏已加密信息的安全性。简而言之,在此过程中攻击者无法访问受 FHE 保护的数据。

通过消除硬件中的侧信道攻击,攻击者不得不直接攻击经过数十年研究支持的加密方法的安全性。这种方法可以确保数据不仅在数年内受到保护,且可以在数十年甚至更长时间内受到保护。

参考资料

[1] Optalysys 2023年8月17日博客 The distinction between FHE and TEEs: The Downfall attack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值