以下文章来源于code秘密花园,作者ConardLi
Spectre
如果一个漏洞很难构造,就算他能够造成再大的危害,可能也不会引起浏览器这么大的重视,那么我们今天的主角Spectre,是又容易构造,而且造成的危害也很大的,利用Spectre,你可以:
通过几行JavaScript,就可以读取到电脑/手机上的所有数据,浏览器中的网页可以读取你所有的密码,知道其他程序在干什么,这甚至不需要你写出来的程序是有漏洞的,因为这是一个计算机硬件层面上的漏洞。
想要理解Spectre,我们需要下面三个方面的知识:
理解什么是旁路攻击
理解内存的工作方式
理解计算机的预测执行
其实都是一些非常基础的计算机知识,大家可能学校里都学到过的,那么Spectre则巧妙利用了上面三个原理,下面我们来挨个看一下。
大家可以完全不用担心,我会用最简单的方式给大家讲明白,先把这些知识拆解一下,最后组合起来其实是很容易理解的。
内存的工作方式
首先,我们的电脑是由很多零部件构成的:
存储:内存、硬盘等等
CPU
输入输出设备:键盘鼠标等
我们的计算机运行的时候呢,从存储设备加载程序进入CPU,CPU负责处理进行大量运算,这些运算需要内存的数据进行多次读取。然后把结果输出到我们的显示器等输出设备里面,这大概是是一个计算机简单的工作原理。
下面我们把