英特尔承诺在即将推出的CPU中实现全内存加密

知识动态2021-12-20 09:21:02
导读 在周二的英特尔安全日活动中,该公司为其硬件中以安全为中心的功能制定了现在和未来的愿景。英特尔的 Anil Rao 和 Scott Woodgate 以

在周二的英特尔安全日活动中,该公司为其硬件中以安全为中心的功能制定了现在和未来的愿景。英特尔的 Anil Rao 和 Scott Woodgate 以对英特尔 SGX(软件保护扩展)的现在和未来的讨论开始了他们的演讲,但他们对公司将全内存加密引入未来英特尔 CPU 的计划的报道更有趣。

软件防护扩展

英特尔 SGX 于 2014 年发布,并于 2015 年与 Skylake 微架构一起推出,是首批旨在保护内存区域免受未经授权用户(包括系统管理员本身)攻击的硬件加密技术之一。SGX 是一组 x86_64 CPU 指令,允许进程在硬件加密的内存中创建“飞地”。存储在加密飞地中的数据只能在 CPU 中解密——即使这样,它也只能在飞地本身内部执行指令的请求下解密。

因此,即使是对正在运行的系统具有 root(系统管理员)访问权限的人也无法有效地读取或更改受 SGX 保护的 enclave。这旨在允许在共享系统(例如云 VM 主机)上安全地进行机密、高风险的数据处理。使这种工作负载能够从本地拥有和运营的数据中心迁移到大规模公共云,从而降低运营成本,并可能获得更好的正常运行时间、可扩展性,甚至更低的功耗。

英特尔的 SGX 有几个问题。首先也是最明显的是,它是专有的和特定于供应商的——如果您设计一个应用程序来利用 SGX 来保护其内存,那么该应用程序将只能在英特尔处理器上运行。第二个是您必须 围绕 SGX设计您的应用程序——您不能只是拨动一个开关然后打开它。

新交所飞地的大小也有限。系统上的所有飞地必须适合区页面高速缓存,这是目前仅限于128MiB 总每个进程-而不是128MiB。显然,您无法仅在 128MiB 中容纳整个操作系统(甚至大多数容器),这意味着应用程序开发人员必须谨慎且极其艰难地决定哪些内存部分是“机密”的,哪些不是。

最后,新交所的使用可能会严重影响性能。IBM 的 Danny Harnik在 2017 年对SGX 性能进行了相当广泛的测试,他发现许多常见工作负载在 SGX enclave内执行时很容易看到吞吐量下降 20% 到 50%。

Harnik 的测试并非 100% 完美,正如他自己明确指出的那样——特别是,在某些情况下,他的编译器似乎在使用 SGX 时生成的代码优化程度低于没有时。即使人们决定将这些案例称为“可能可以修复”,它们也有助于强调早先的抱怨——需要专门为 SGX 用例仔细开发应用程序,而不仅仅是翻转一个假设的“是的,请加密”开关。\

全内存加密

目前,Software Guard Extensions 是唯一可用的英特尔产品。但在讨论了 SGX 的实际使用之后,Rao 转向了未来的英特尔技术——特别是全内存加密。英特尔将其全内存加密版本称为 TME(总内存加密)或MKTME(多密钥总内存加密)。不幸的是,这些功能目前是雾件。尽管英特尔 去年 5 月提交了一个巨大的 Linux 内核 补丁集来启用这些功能,但仍然没有现实世界的处理器提供这些功能。

由于没有支持 TME 或 MKTME 的处理器可用,因此使用当今确实存在的类似技术来解释基本技术概念是有意义的——AMD 的 SME(安全内存加密)和 SEV(安全加密虚拟化)。出于显而易见的原因,这不是英特尔演示的一部分——但它是从已经实施的现实世界的意义上谈论这些概念的唯一方式。

2016 年,AMD 提出了一项新技术来保护未授权用户的内存,称为 SME(安全内存加密)。与英特尔的 SGX 不同,SME 允许在硬件中加密和解密 RAM 中的任何页面。任何标记为加密的页面都将使用临时 128 位 AES 密钥进行加密——每次重启时通过硬件 RNG(随机数生成器)生成。这些临时密钥只能由 CPU 硬件本身访问,不能向用户(包括 root 或系统管理员级别的用户)公开。

SME 与 SGX 一样,需要开发商进行一些规划。然而,一个更严格的 SME 子集,称为 TSME——透明安全内存加密——将允许使用 SME 对整个系统 RAM 进行加密。作为整个系统的功能,TSME 在系统 BIOS(或 UEFI)中启用或禁用,它不需要应用程序开发人员的特殊计划——一旦启用,一切都被加密,这就是它的全部内容。

与英特尔 SGX 相比,AMD 的内存加密方法对性能的影响也小得多。在 2018 年的一次演讲中,韦恩州立大学和休斯顿大学的研究人员表明,大多数工作负载完全不受安全加密虚拟化(AMD SME 的一个子集,允许整个 VM 加密,每个涵盖的虚拟机使用单独的密钥),尽管英特尔 SGX 的显着性能影响。

由于英特尔的 TME 和 MKTME 暂时仍处于假设状态,因此现在就对它们的性能影响做出任何大胆的预测还为时过早。但随着AMD在我们面前的例子,似乎是合理的期望,他们 应该在使用中几乎没有真正的性能的影响,不像新加坡。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。