英特尔快速存储技术会吃cpu性能吗(英特尔承诺在即将推出的cpu中实施全内存加密)
在周二的英特尔安全日,该公司解释了其硬件中以安全为中心的功能的当前和未来愿景。
英特尔的Anil Rao和Scott Woodgate开始了他们的会谈,并讨论了英特尔的SGX(软件保护扩展),但他们关于该公司计划在未来将全内存加密引入英特尔CPU的报告更有趣。
英特尔SGX于2014年宣布,并于2015年推出了Skylake微体系结构。它是最早的硬件加密技术之一,旨在保护内存区域免受未经授权的用户(包括系统管理员本身)的攻击。SGX是一组x86_64CPU指令,允许进程在内存中创建硬件加密的“飞地”。存储在加密飞地中的数据只能在处理器中解密。即便如此,它也只能在飞地本身执行的指令的请求下被解密。
因此,即使那些能够访问运行系统的根(系统管理员)的人也不能有效地读取或更改受SGX保护的飞地。这是为了允许在共享系统(如云虚拟机主机)上进行机密和高风险的数据处理。将这种工作负载从本地拥有和运营的数据中心转移到大规模公共云可以降低运营成本,并可能带来更好的运行时间、可扩展性甚至更低的功耗。
英特尔SGX有几个问题。第一个也是最明显的一点是,它是专有的,并且特定于供应商——。如果您设计的应用程序使用SGX来保护其内存,该应用程序将仅在英特尔处理器上运行。其次,您必须围绕SGX设计您的应用程序。你不能只打开一个开关。
SGX飞地的面积也很有限。系统上的所有飞地都必须适合飞地页面缓存,目前限制为每个进程128兆总容量,而不是128兆总容量。显然,你不能在128MIB中安装整个操作系统——甚至大多数容器3354,这意味着应用程序开发人员必须仔细且极其困难地决定哪些内存部分是“机密”的,哪些不是。
最后,SGX的使用可能会受到性能的严重影响。2017年,国际商用机器公司丹尼汉内克对SGX的表现进行了广泛的测试。他发现,当许多常见的工作负载在SGX飞地执行时,很容易看到吞吐量下降20%到50%。
正如他明确指出的,Haneke的测试并不是100%完美的,尤其是在某些情况下,他的编译器产生的优化代码似乎不如没有SGX的编译器。即使人们决定将这些案例视为“可能可修复的”,他们也可以帮助强调,之前的投诉——要求仔细开发专用于SGX用例的应用程序,而不是仅仅翻转一个假设的“是,请加密此”开关。
目前,软件保护扩展是英特尔提供的唯一一个。但在讨论了SGX在现实世界中的使用后,饶将目光转向了未来的英特尔技术——,尤其是全内存加密。英特尔的全内存加密版本被称为TME(全内存加密)或MKTM E(多密钥全内存加密)。不幸的是,这些功能目前是蒸汽软件。尽管英特尔在去年5月提交了一个巨大的Linux内核补丁来支持这些功能,但它仍然没有提供他们的真实世界处理器。
由于没有支持TME或MKTME的处理器可用,用今天确实存在的类似技术来解释基本的技术概念是有意义的。——AMD的中小企业(安全内存加密)和SEV(安全加密虚拟化)。由于显而易见的原因,这不是英特尔演讲的一部分,但这是谈论正在实现的概念的实际意义的唯一方式。
像SGX一样,中小企业需要开发商的一些规划。然而,更严格的SMEs子集,称为TSME透明安全内存加密,将允许SMEs加密整个系统内存。作为一个完整的系统功能,TSME在系统基本输入输出系统(或用户界面)中被启用或禁用。它不需要应用程序开发人员的特殊规划。一旦启用了——,一切都加密了,仅此而已。
AMD的内存加密方法对性能的影响远远小于英特尔S GX。在2018年的一次演讲中,韦恩州立大学和休斯顿大学的研究人员表明,尽管英特尔的SGX对性能有很大影响,但大多数工作负载完全不受安全加密虚拟化的影响(AMD SMEs的一个子集,它允许完整的虚拟机加密,每个覆盖的虚拟机使用一个单独的密钥)。
由于英特尔的TME和MKTME仍是假设,因此不可能对它们的性能影响做出任何大胆的预测。然而,以前面的AMD为例,我们似乎有理由期望它们在使用中不会有真正的性能影响,这与SGX不同。
饶和伍德盖特勇敢地面对事情,谈论他们在《天蓝色》中的应用。但似乎显而易见的是,已经在AMD EpycCPU中实现的全系统内存加密方法——,即使在他们的一些桌面系列中,也会产生更大的持久影响。关于英特尔即将推出的全内存加密的幻灯片被贴上了“创新”的标签,但它们看起来更像是在追赶老牌竞争对手。