这两天Intel再一次来到了风暴的中心。继之前ME爆出严重的安全漏洞之后,Intel CPU再一次爆出安全漏洞。
比较要命的是这一次的漏洞修复会带来一定的性能损失。一时间各种消息风声鹤唳,什么CPU性能会掉30%,Intel CEO提前卖掉股票跑路等等。
但是八卦归八卦,我们还是应该冷静下来看一下,这次的漏洞门对我们的日常使用到底有多少影响。
关于本次漏洞:
这次爆出的漏洞分为“Meltdown”和“Spectre”两个部分,两者的原理基本相同,但是攻击深度有区别。Meltdown是攻击到系统内核层面(例如WIN10系统的核心部分),Spectre则会直接访问系统内存,所以理论上破坏力更大。
现在微软提供的系统补丁是针对Meltdown,Spectre则因为更为复杂,所以暂时还没有修复,只是由于攻击难度比较大,所以暂时还没有明确的攻击事件。
目前来看Meltdown漏洞会影响到Intel和ARM不会涉及,AMD。Spectre则会影响到Intel\AMD\ARM三家大厂。
由于Intel对猜测指令依赖性比较强,所以在这次的事件中波及最大。ARM虽然做了一些防御措施,但是有部分产品线是彻底沦陷的。AMD Ryzen因为是重新开发的,所以Meltdown不会涉及,但是Spectre一样还是会中招。
之所以产生如此之大的争议,主要就是因为打上系统补丁之后CPU性能会有下降。
从原理上简而言之,就是恶意程序可以利用CPU在指令集上的漏洞,触发CPU内部的猜测指令,使CPU会访问系统内存、缓存中所有的部分,从而获取敏感信息。
只是这个攻击方式需要被攻击的数据在攻击触发时刚好出现在内存、虚拟内存或CPU缓存中,病毒必须足够聪明,所以攻击难度比较大。
比较可怕的是这个漏洞同样可以攻击到RING 0层面,也就是Intel ME这个级别的CPU厂商保留区,理论上可以完全控制这台电脑。
那么问题来了,为什么CPU内部会存在一个横贯20多年的漏洞?(Intel宣称1995年起的产品都中招)
主要原因就是性能与安全的平衡。性能与安全、稳定性、成本之类的东西互相之间就像是跷跷板,产品设计的时候要考虑互相之间的平衡。
打个比方我们家用的内存,理论上每运行600万次读写必然会出现一次错误,但是这对于消费级来说问题不大,所以就保留了下来。对应的在服务器级上,就要采用ECC内存,但是这就会带来不少代价,价格会贵不少,超频性能、延迟上也会比较难看。
而CPU作为一个综合性的处理芯片,内部结构复杂,采用一些取巧的算法就很好理解了,不然CPU都做不出来。估计这个漏洞是硬件架构导致的逻辑漏洞。
比方说芯片中会有“与门”这个元件,两个输入端入1和入2都显示为真,这个时候输出端才会显示为真,否则为假。那当首先检测的入1就是假,是不是入2就可以不检测了,反正输出的都是假。猜测指令的目的就是为了减少环节提升效率。
以上的文字确实比较深奥,为了帮大家更容易理解,我来换个比喻帮助大家理解。
CPU厂商就好比是一家做羊肉串的饭店。照道理羊肉串的竹签必须要先洗干净,高温消毒,再照紫外线,最后再检测才能去烤肉,但是烧烤的时候其实就可以把竹签杀菌杀干净。
CPU厂商觉得他的烤串都是现串现烤,竹签上的病菌来不及产生毒素,所以CPU厂商就选择洗干净,然后火烤,把中间高温消毒、照紫外线给省了。这个漏洞就好比是病菌利用这个时间差产生了足够的毒素,结果吃的人就拉肚子了。不是特别确切,但是大致就是这个感觉。
由于打上这个补丁会让CPU一部分的取巧的算法被屏蔽,所以会影响一定的性能。这对数据中心的影响最大。
接下来我就针对家用环境先进行一下初步的测试。
测试平台:
这次的测试平台是I5 7500。这边利用到的是我正好做到一半的测试。本来想做一篇7500对比8100的内容,结果现在系统环境发生了明显的变化,所以之前的测试等于作废。所以这个做到一半的测试就被我拉过来对比。
从Intel给出的说法,6、7、8三代受到的影响比较小。
针对老平台的测试我还需要有时间准备,所以先针对市售比较集中的产品吧。
性能测试结论:
系统带宽测试中,可以看到变化比较明显的是L3的读写有一定幅度的下滑。这应该跟指令集的命中率有关。
CPU理论性能上,总体变化也不大,可以看到整数和浮点运算都有小幅度的下滑。
CPU基准测试会包含较多不同的软件,大多也是出现比较小的性能下降。
CPU渲染测试,从CINEBENCH上看他也是一样,差距可见但不大。
3D物理测试是截取3D基准测试的物理计算部分,这是跟CPU有关的项目,情况同上。
3D基准软件测试比较好玩,打了补丁之后总体居然提升了1%。不过特定软件在高负载下性能下滑比较明显,比方说3DM11的X分,Catzilla的4K测试。游戏性能还来不及测试,后续补上。
测试总结:
其实结论很简单,对于6、7、8三代影响不会很大(因为都是马甲,7500可以类比很多产品)。
从性能来说是会性能下滑肉眼可见,但是幅度很小,所以用1151四核的人可以不必太纠结。
按照目前得到的说法,六代酷睿之前的产品受影响比较大,越早的产品相对受影响会越大。给大家一个参考,4790K预计会有8%左右的性能下滑。
关于本次的测试:
由于是突发事件,所以没有足够的时间进行性能测试。集合目前看到的一些文章,对游戏和NVMe SSD的影响预计会大于基准测试。
关于基准测试的部分,也有部分人说CINEBENCH性能下降非常显著(CHH上7300U)可能是CPU本身比较弱,在后台较杂的家用环境下,补丁的负优化效果被放大了。
关于更新策略:
这个事件中,大家最纠结的应该就是“要不要打这个补丁”。
从目前的测试来看,6、7、8三代酷睿的受影响程度会比较小,可以考虑先打上这个补丁,但是对于之前的产品,由于补丁的性能影响会比较大,且攻击方式比较特殊,没有具体的攻击案例,所以可以考虑观望一下。
关于Intel自身:
虽然目前测试下来,对于家用电脑,比较新的CPU预计性能影响不会太大,但是从这个事件上来说,似乎Intel也是早有准备。
因为之前6700K首发的时候,我就发现一个比较奇怪的问题,67K的整数性能调整很大,24和32位整数性能加强了很多;CPU缓存的带宽也提升很明显;同时CPU性能受到内存性能的影响也变大。但是总体性能与4790K的差异并不够明显。
之前我认为可能是酷睿架构经历这么多年的演变,架构程度度太高,所以提升计算能力也无法继续提升性能,但是这个漏洞影响到的就是内存与缓存的性能(是不是刚好跟上面的对上了?),所以似乎六代酷睿的时候,Intel已经为这个补丁的爆发做了准备。
如果真的是这样的话,至少新产品问题会比较少,也算是聊表安慰。
欢迎光临 合肥本本之星 合肥Thinkpad专卖店 合肥Apple专卖店 hfthink 合肥本之星信息科技有限公司 (http://hfthink.com/) | Powered by Discuz! 7.2 |