首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

英特尔比拼AMD,谁的CPU更安全?

英特尔和AMD之间历时数十年的漫长对抗最近来到了一个全新的层面,那就是越来越多的用户开始关心,哪个品牌的处理器可以充分保护自己的计算机、数据和在线活动。

直到最近几年,普通用户和网络安全研究人员主要操心的还是数量庞大的软件漏洞,而这些漏洞似乎永远都不会消失。

但从2018年1月开始,许多用户和安全研究人员意识到,为我们设备提供动力的硬件并不像我们以前想象的那样安全,它们也有可能出现严重的安全问题。

这就引出了一个问题:哪家企业的产品更安全一些?考虑到英特尔目前有242个公开披露的漏洞,而AMD只有16个(AMD以15:1取胜),这个问题听起来可能有些多余;但是两家公司也都有一整套安全相关的特殊功能组合,值得深入对比一番。

2018年:处理器安全性的“元”年

2018年1月,谷歌的Zero项目安全专家及其他几位独立的安全研究人员,披露了Meltdown和Spectre CPU设计缺陷。这些漏洞源于大多数CPU架构团队为了提高其芯片性能而做出的设计选择。

Meltdown安全缺陷(也称为Spectre变体3)同时影响英特尔和ARM的CPU。它允许第三方代码破坏应用程序与操作系统之间的隔离,这种隔离通常是由硬件实现的。攻击者可以用它来访问其他应用程序和操作系统的内存,从而窃取秘密。

Spectre漏洞打破了不同应用程序之间的安全边界,甚至使那些遵循最佳编码实践的应用程序也变得脆弱不堪,攻击者可以利用PC中的这一旁路(side-channel)安全缺陷对其发起攻击。

Spectre几乎影响所有使用预测执行来提高性能的乱序架构CPU,包括AMD和Arm的处理器。但是,Spectre系列中新发现的旁路攻击途径似乎对英特尔的影响比对另外两家厂商的更大,这意味着英特尔的CPU设计可能比竞争对手更激进,目的是保持性能优势。

预测执行是一种CPU设计功能,它使CPU可以处理下一步可能需要或不需要的某些任务。如果这些任务的确是需要的,则处理器届时可以更轻松地访问它们,因此具备这一功能的CPU的性能表现就更加出色。

所以尽管Spectre的特定变体可以通过软件修复甚至可以在硬件中修补,但直到CPU制造商决定一劳永逸地完全禁用预测执行功能,或者设计全新的架构之前,研究人员都会不断发现新的漏洞变体。

这不只是理论上的可能性:自从首次披露Meltdown和Spectre缺陷以来,(不到两年时间内)这种事情已经发生了好几次。

在研究人员首次披露Spectre数月之后,另一组安全研究人员准备披露名为“Spectre Next Generation”的新一代预测执行缺陷系列。据称,英特尔曾试图推迟他们的披露计划,因为这家公司在那年早些时候因Specture的首次曝光而遭受了巨大的公关打击。

预测执行至少还造成了另外两个错误,即 Foreshadow 和Zombieload,本质上它们使英特尔的超线程技术不再安全了。OpenBSD创始人Theo de Raadt已警告不要一开始就在英特尔计算机上启用超线程

到了最新的Zombieload漏洞曝光后,谷歌甚至苹果等其他OS厂商都加入了OpenBSD创始人的行列。谷歌禁用了所有Chromebook上的超线程功能,而苹果只是指出要完全修补Zombieload和其他微架构数据采样(MDS)漏洞,将需要禁用超线程,选择权在用户手上。

英特尔自己也建议禁用超线程,但仅建议某些“不能保证在其系统上运行的都是受信任软件”的客户禁用。但实际上每个人都在其PC或服务器上运行其他人的软件,他们真的可以分辨什么是受信任的,什么不是吗?

攻击面

绝大多数预测执行攻击不会影响AMD的处理器,只有少数例外,例如Spectre变体1、1.1和4,后者被称为测存储绕行

AMD CPU也受到PortSmash的影响,这是一个影响其同时多线程(SMT)功能的漏洞,该功能类似于英特尔的超线程技术。AMD处理器还容易受到NetSpectre和SplitSpectre的攻击,因为这些漏洞影响了处理器,而这些处理器也容易受到Spectre v1的攻击。

AMD的处理器容易受到Spectre变体2的影响,该公司为此发布了更新,但表示该漏洞“由于我们的架构设计而并不容易被利用。”

在一组研究人员(其中包括一些发现原始Spectre和Meltdown设计缺陷的研究人员)发现的七种新的Meltdown和Spectre漏洞中,AMD的芯片受到其中五种的影响。英特尔的芯片则受到全部七个漏洞的影响。

AMD的CPU(包括最新的Ryzen和Epyc处理器)不受以下漏洞的影响

  • Meltdown(Spectre v3)
  • Spectre v3a
  • LazyFPU
  • TLBleed
  • Spectre v1.2
  • L1TF/Foreshadow
  • SPILER
  • SpectreRSB
  • MDS攻击(ZombieLoad、Fallout和RIDL)
  • SWAPGS

我们可以看到,与英特尔处理器相比,AMD的CPU似乎对预测执行攻击有更高的弹性。但是,与Spectre v1高度相似的缺陷似乎也继续影响着AMD的处理器。好消息是,在大多数情况下,原版的Spectre v1固件修补措施也可以保护这些新的漏洞。

英特尔和AMD都针对上述所有缺陷发布了固件和软件补丁,但如果更新流程依赖主板或设备制造商而不是英特尔/AMD或微软、苹果等OS供应商,那么这些修复措施不一定能全部到达用户那里。

综上,在“攻击面”方面,赢家是AMD。

Spectre软件修复措施对性能的影响

最初的Spectre和Meltdown缺陷被公众了解之前,芯片制造商大约提前了六个月的时间发出了警告。这也引发了内部争议,因为并非所有操作系统供应商都能同时了解它们。有些人需要花费几天或几周的时间来解决这些错误。

即使有了6个月的准备时间,第一版的修复程序仍然在人们的计算机上造成了很多问题,比如显著降低性能直到引发崩溃。几个月后,一些更新带来了一些改进。

但是,即使这些补丁进行了优化以最大程度地降低性能损失,对于芯片制造商(尤其是英特尔)来说,要为所有Spectre系列的漏洞打上补丁,同时将补丁的性能开销降至最低,实现起来是非常困难的。

根据最近的一份报告,英特尔提供的所有必要修补程序使用户的PC和服务器的速度大幅下降,下降幅度大约是AMD自己的修补程序的五倍。这是一个很大的差距,主要是因为英特尔必须比AMD解决更多的安全漏洞。

综上,在“性能损失”方面,赢家是AMD。

图源:Shutterstock

针对旁路攻击的(某些)硬件修补措施

也许是因为英特尔为Spectre级的安全漏洞不得不发布的大批固件和软件修补措施,该公司还改变了对在处理器上添加基于硬件的修补措施的抵触态度。最初,英特尔不太愿意这样做,或者至少不愿对其架构进行重大更改。但它后来开始遵循“安全优先”的原则

在某些层面,该公司履行了这一承诺。英特尔针对Meltdown和Foreshadow提供了硬件修补措施,并在某些最新的CPU中提供了部分MDS硬件修补,从Whiskey Lake和Cascade Lake处理器开始

该公司还承诺将对Spectre v2进行硬件修复,并已实现了一个同时使用内置硬件和软件的修复程序。英特尔和AMD尚未在硬件中修复最危险的预测执行漏洞Spectre v1。但是,AMD和英特尔都在软件级别上对Spectre v1进行了修补。

在某些情况下,据称英特尔还忽略、轻描淡写或延迟了某些Spectre系列漏洞的披露。就MDS漏洞而言,据称英特尔希望研究人员淡化MDS攻击的严重性,为此向他们捐赠最高80,000美元。学者们拒绝了这个提议。

尚不清楚英特尔有意避免在硬件中修复Spectre v1和其他旁路攻击的做法,是因为这种方法代价昂贵,且可能破坏太多东西,还是因为该公司只是在争取一些发布这种处理器的准备时间。

有一件事看来是很清楚的,那就是事实上,用来预防旁路攻击的软件补丁不足以阻止类似的新型漏洞的出现。学术界认为,相比架构设计更改,架构修补带来的长期安全收益并不见得会更高。

因此,如果英特尔、AMD和其他芯片制造商不愿意改变其CPU架构的设计,那么我们可能永远都会被Spectre系列的旁路攻击所困扰。

图源:英特尔

但也有一些动向是通过芯片内修复措施来修补某些漏洞。英特尔为MSBDFallout和Meltdown等许多新漏洞添加了新的基于硬件的修补措施,并为此发布了新步进版本的芯片。英特尔正在悄悄地发布其第9代Core处理器的新步进版本,为已经出货的型号增加了更多的硬件增强的修补功能。这些内置的修补措施旨在减轻基于软件的Windows安全修补程序的性能开销。

同时,AMD尚未在其已经出货的芯片中增加任何新的硅内修补措施,尽管它正在将这些措施应用于更新的型号中。但值得一提的是,AMD不需要像英特尔那样需要那么多改动来抵御漏洞,因此它不需要基于硬件的修补程序。因此这一局我们认为AMD获胜。

综上,在“硬件修补措施”方面,赢家是AMD。

英特尔的ME和其他安全漏洞

在Spectre漏洞被发现之前,甚至之后,英特尔芯片中与隐私或安全相关的问题主要都和英特尔的内置管理引擎相关。尽管其他漏洞可能一样很重要,但所有安全隐患得到的关注都远不及预测执行旁路缺陷。

2017年,英特尔确认了ME中的一个安全错误,攻击者可以利用该漏洞远程暴露固件,并接管任何采用英特尔技术的计算机。这一错误影响了2008年以来生产的所有处理器。

在2017年晚些时候,研究人员发现了另一个ME缺陷,影响了从2015年的Skylake到2017年的Coffee Lake处理器。即使用户可以通过非官方方式禁用ME,这一缺陷也可以使ME保持活动状态,因为用户无法用正常手段禁用ME。

同年,Positive Technologies公司的安全研究人员找到了一种方法来禁用英特尔的ME,利用的是英特尔为政府机构秘密实现的一种模式。据称英特尔这样做是为了让NSA和其他政府机构禁用ME中潜在的脆弱功能,但这些漏洞会影响PC市场上的其他所有用户。

研究人员还在2018年发现了两套新的ME安全错误,当时英特尔正在忙于应对Spectre的后续影响。

由于担心ME可能是“官方”后门或可能被恶意团体使用,某些计算机制造商(例如Purism、Systems 76甚至戴尔)已开始提供默认禁用ME的笔记本电脑。谷歌还开始为其某些内部设备禁用ME

在撰写本文时,有242个公开披露的英特尔固件漏洞

AMD的PSP、Ryzenfall、Chimera和其他CPU缺陷

AMD平台安全处理器(PSP),也称为AMD安全处理器,使用一颗Arm Cortex-A5处理器来将某些芯片平台功能与主处理器和主操作系统隔离开来。它就像是AMD版本的ME,并且与ME一样,如果恶意团体发现其中的错误,这些错误也有可能被利用并产生毁灭性的影响。

自2017年以来,人们至少发现了三个PSP漏洞。一位谷歌安全研究人员在2017年发现了一个漏洞。该漏洞可能使攻击者能够访问密码、证书和其他敏感信息。

在2018年人们发现了其他一些PSP错误,并披露了总共13个安全缺陷,影响了AMD基于Zen核心的处理器。研究人员将它们分为四类:Ryzenfall、Chimera、Fallout和Masterkey。

根据研究人员的说法,Ryzenfall错误会使攻击者完全控制AMD安全处理器。再结合名为Masterkey的错误,攻击者还可以在目标计算机上安装持久性恶意软件。

Chimera错误涉及两个来自制造商ASMedia的芯片组后门,一个在固件中,另一个在芯片组的硬件(ASIC)中。这些后门允许将恶意代码注入Ryzen芯片组。

Fallout缺陷使攻击者可以读写受保护的内存区域,例如SRAM和Windows Credential Guard隔离内存。

AMD基本上淡化了这些错误的影响,称在大多数情况下,攻击者需要对机器的物理访问权才能利用这些安全漏洞。但在CVE Details数据库中,我们可以看到其中多数漏洞都有很高的严重等级

图源:Tom’s Hardware

AMD已向其所有受影响的OEM和ODM发行了补丁程序,但通常是这些公司来负责修补用户的计算机,这会导致支持并不统一。

研究人员还发现,AMD针对Epyc服务器芯片的安全加密虚拟化(SEV)功能有时是不安全的。第一个SEV漏洞是作为前面提到的Masterkey漏洞的一部分披露的。研究人员表示,可以利用Masterkey错误来破坏SEV和固件可信平台模块(fTPM)的安全性。

仅在几个月后的2018年5月,另一组研究人员披露了第二个SEV漏洞,即SEVered。该漏洞可能使攻击者能够远程提取通常由SEV保护的虚拟机内存内容。

一位谷歌研究人员在今年初发现了最新的SEV漏洞。该漏洞使攻击者可以提取SEV功能使用的加密密钥,这种密钥是用来加密受保护VM的内存内容的。

换句话说,这是大约一年来第三次证明SEV无法完成其职责——也就是保护VM内存。这并不一定意味着英特尔类似的SGX功能取得了优势,因为后者也被发现有一些由于Spectre系列旁路CPU缺陷而导致的弱点

综上,在“其他CPU安全缺陷”方面,两家打成平局。

最佳的英特尔CPU安全功能

对于现代处理器的安全性来说,我们听到的并不都是坏消息。在研究人员披露了第一个Spectre漏洞之后,英特尔承诺将安全性放在首位——尽管这是一个新开始的计划。

如前所述,该公司已承诺减轻硬件中Spectre漏洞的危害,其中许多漏洞已经出现在了当今时代的处理器中。

但这些只是对一开始就不应该出现的问题的小规模修复,我们正在寻求的是安全性,而不是修复已破坏的架构。那么,关于用户安全性问题,英特尔处理器还能提供什么呢?

图源:Shutterstock

英特尔SGX

Software Guard eXtensions可能是英特尔近年来发布的最受欢迎,也是最先进的处理器安全功能。SGX使应用程序可以将加密密钥之类的敏感数据,存储在主操作系统或其他第三方应用程序无法访问的,硬件加密的RAM中的安全虚拟区域中。端到端加密的Signal Messenger这类应用程序都利用了它,以便安全私密地配对用户。

英特尔TME/MKTME

英特尔最近还宣布了改进SGX的计划,以便它可以提供全内存加密(TME),而不是只加密一小部分内存。新功能实际上是两个功能合二为一的结果:TME为所有内存提供一个加密密钥,而另一种称为“多键全内存加密”的变体提供了——你猜到了——支持多个密钥的全内存加密,例如每个加密的VM都有一个密钥。

MKTME可以在内存空闲时以及传输过程中进行加密。英特尔推出这一功能的时间晚于AMD的类似技术,也许该公司从竞争对手的SEV和他们自己SGX的错误中吸取了教训。

硬件级内存加密将为用户带来显著的安全优势,因为这会使应用程序更难从其他应用那里窃取数据(加上操作系统也对允许应用程序共享数据的API进行了严格限制)。但是,目前尚不清楚英特尔和AMD是否打算将此功能保留给企业客户使用,是否会为主流用户启用。

最佳的AMD CPU安全功能

由于英特尔在SGX的发布上对AMD取得了领先,后者在存储加密方面可能已经迟了一步。但是当AMD推出Ryzen处理器时,这些处理器既具有安全内存加密(SME)功能,又具有安全加密虚拟化(SEV)功能,这些功能已经并且仍然比英特尔先进得多。

AMD SME

SME功能通常在引导时在BIOS或其他固件中启用。它使用通过硬件随机数生成器生成的单个临时128位AES加密密钥,提供页面粒度的内存加密支持。SME使应用程序可以标记用来加密的某些内存页。

然后,当应用程序需要读取或写入数据时,将自动对这些页面进行加密和解密。该功能可对抗一种物理攻击,其旨在窃取仍驻留在纯文本RAM中的敏感客户数据。

AMD TSME

AMD的透明SME是SME的更严格子集,默认情况下会加密所有内存,并且不需要应用程序以自己的代码来支持它。这对代码不会再更改的旧版应用程序而言尤其重要,这些程序处理的数据被加密后就更加安全。

AMD似乎最近将TSME重命名为了“Memory Guard”,并将其作为该公司新的Ryzen Pro 3000 系列CPUGuardMI特性的一部分。GuardMI是AMD英特尔vPro的竞品特性,后者包括面向企业客户的可管理性和安全性功能。AMD目前领先英特尔的一项功能是Memory Guard,它可以保护系统数据免受冷启动攻击。

AMD SEV

AMD的SEV是SME的扩展,它使用自己的临时加密密钥对每个VM的内存进行加密。这样,VM可以保持彼此完全隔离。AMD在为索尼和微软的游戏机开发安全功能时提出了这个想法。

实际上,像英特尔的SGX一样,SEV仍然容易受到旁路攻击或其他利用加密密钥访问的攻击影响。想要确保这些功能基本不再受漏洞影响的话,AMD和英特尔仍有许多工作要做。

综上,在“最佳安全性能”方面,赢家是AMD。

图源:AMD

为什么处理器安全性很重要

为什么你还要关心处理器安全性呢?Windows、macOS或Linux的安全功能还不够吗?答案是:不,只靠它们还不够;是的,你也可能受到这些错误的影响。需要担心这些攻击的不仅仅是数据中心和Web托管企业。

首先,硬件运行在比操作系统更底层的级别上。换句话说,硬件可以控制运行在其上的软件所完成的工作。因此,如果有人接管了硬件,则意味着他们现在也可以控制操作系统和应用程序所执行的操作。攻击者可以控制这些安全功能的工作方式或完全禁用这些功能。

其次,即使没有人会试图通过网络专门攻击你,但你仍然可能成为大规模恶意软件感染的受害者,这些恶意软件会通过广告网络、你访问的被黑网站和工作中的内部网络等渠道传播。硬件漏洞可能是整个漏洞工具链攻击目标的一部分,这些工具的主要目标是:窃取他们遇到的任何人的数据。

如果你不能保证设备中硬件的安全性,那么你最喜欢的操作系统或应用程序的所有安全性功能基本上都失去了意义。这就是为什么苹果和谷歌已经开始构建自己的服务器,或不再从不太值得信赖的服务器硬件提供商那里购买产品的原因。两家公司都在软件方面实现了一流的安全性,但如果他们使用的硬件中存在后门,那么这些功夫都会白费。

英特尔与AMD的处理器安全性:结论

从短期来看,尽管两家公司尽了最大的努力,但在AMD和英特尔的处理器都做出真正的改进之前,情况可能会变得更糟。是的,我们可能会获得更多的硬件修补措施——也许足以使大部分消费者和媒体满意,但鉴于改变主流处理器架构所涉及的所有困难和成本太高了,这些修补措施还不足以解决所有的问题。

在未来的几年中,我们还将从英特尔和AMD那里获得一些有趣的全新安全功能。但是,随着越来越多的研究人员开始更深入地研究他们的CPU微架构,未来几年中,在两家公司的处理器中发现的安全漏洞的报告可能会充斥我们的视野。

两家公司也将花费多年的时间来修复研究人员在新架构设计中发现的缺陷。最后,一切都应该会变得更好,因为这些工作将迫使处理器变得更加成熟。

但是问题仍然存在:谁能制造最安全的处理器,从而为你营造最安全的在线环境?我们可以探讨一下研究人员是否更注意来自英特尔的安全漏洞,因为他们的芯片卖的更多;但归根结底,有一些事情是不可否认的:

  1. 英特尔目前有242个公开披露的漏洞,而AMD只有16个。AMD以15:1取胜。差距太大了,根本没法忽略。
  2. 自2018年初以来,针对英特尔披露的预测执行旁路攻击漏洞中,似乎只有不到一半影响了AMD的Ryzen和Epyc CPU。确实,在某些漏洞被宣布会影响英特尔的CPU的情况下,研究人员可能并不会太关注AMD的CPU。但即便如此,AMD在仔细检查这些漏洞是否会影响其自身的处理器之后,仍然确认这些错误不会对其产品造成影响。实际上,AMD似乎在设计新的Ryzen微架构时,比英特尔本质上基于Nehalem的微架构更注重安全性。为什么说英特尔的微架构都是以Nehalem为基础?因为大多数预测执行攻击都会影响英特尔自2008年以后发布的CPU,也就是Nehalem架构之后的所有产品。
  3. 随着新一代Zen架构的发布,在支持新的硬件加密功能方面,AMD似乎也领先于英特尔。AMD是否会在安全性方面保持这种领先还有待观察,因为英特尔试图解决所有Spectre问题并改善其在消费者中的形象,但至少目前看来,AMD似乎处于领先地位。

即使不考虑与Spectre相关的补丁对新旧系统造成的各种性能下降问题,AMD的处理器似乎还是在近期和中期范围内更安全的平台之选。

原文链接https://www.tomshardware.com/features/intel-amd-most-secure-processors

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/Xb4NTPXDvhNETwpm0i7t
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券