现代计算机系统通过大约百年的发展,所造成的基本格局能够用两句话来归纳:横向为每一个任务创建一个虚拟的地址空间,每一个空间中又纵向切分为“用户”和“内核”两大特权阶层,用户阶层在上,界面可见,可是特权较低,内核空间在下,不可见,可是掌握着整个系统的资源和生杀大权。 api
横向多个虚拟空间是为了支持多任务,让每一个任务都有本身独立的活动空间。上下两个阶层是为了把公共的系统基础设施和管理任务独立出来。能够把任务想象成现实社会中的公民,内核想象成政府。
安全
为了 维护上述格局,现代处理器都运行在所谓的保护模式下(不一样处理名称有别,实质相同),所谓保护模式就是横向保护每一个任务(公民)空间的安全,纵向保护内核(政府)空间的神圣不可侵犯。 架构
此次的两大漏洞一个叫Meltdown,不妨将其翻译为熔下。其特征是在低特权的用户空间中能够访问到高特权的内核空间中的信息。有点像老百姓能够看到国家安全局里的数据。这个漏洞直接挑战内核的高特权特征,动摇上述的纵向基本格局。第二个漏洞叫Spectre,其中的Spec是Speculative的简写,由于这个漏洞与现代处理器的分支预测和投机执行功能密切相关。Spectre漏洞之LOGO中的小人手里所持树枝即表明分支之意。ui
如下是老雷在目前写做所用笔记本上重现Spectre漏洞的截图。
spa
Spectre漏洞的影响是能够窃取用户空间中的信息,好比用户名、密码等敏感数据。.net
这几天一直有朋友询问老雷怎么看此次的安全漏洞,简单回答,真的很严重,由于此次漏洞的影响广度(几乎全部现代CPU)和深度(直接关系系统的基本架构和设计原则)都是史无前例的。翻译
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------设计