内核页表隔离

✍ dations ◷ 2025-10-03 15:36:16 #Linux内核功能,虚拟内存,X86架构

内核页表隔离(Kernel page-table isolation,缩写KPTI,也简称PTI,旧称KAISER)是Linux内核中的一种强化(英语:Hardening (computing))技术,旨在更好地隔离用户空间与内核空间的内存来提高安全性,缓解现代x86 CPU中的“熔毁”硬件安全缺陷。

KPTI补丁基于KAISER,它是一个用于缓解不太重要问题的早期补丁,当时业界还未了解到Meltdown的存在。

如果没有KPTI,每当执行用户空间代码(应用程序)时,Linux会在其分页表中保留整个内核内存的映射,并保护其访问。这样做的优点是当应用程序向内核发送系统调用或收到中断时,内核页表始终存在,可以避免绝大多数上下文交换相关的开销(TLB刷新、页表交换等)。

2005年,Linux内核采用了地址空间配置随机加载(KASLR)隐匿用户空间中的相关内核地址,增加了利用其他内核漏洞的难度。尽管阻止了对这些内核映射的访问,但在此后发现,现有的英特尔x86处理器(截至2017年12月)还存在着多处可能泄露这些内存位置的旁路攻击,可能绕过KASLR。AMD称其处理器不受这些攻击的影响,所以不需要KPTI作为缓解措施。

2018年1月,影响Intel x86处理器的熔毁漏洞被公布。KAISER补丁改为修复此问题,并更名为KPTI,因为新型攻击很类似,尽管更为严重。

KPTI通过完全分离用户空间与内核空间页表来解决页表泄露。支持进程上下文标识符(PCID)特性的x86处理器可以用它来避免TLB刷新,但即便如此,它依然有很高的性能成本。据KAISER原作者称,其开销为0.28%;一名Linux开发者称大多数工作负载下测得约为5%,但即便有PCID优化,在某些情况下开销高达30%。

KPTI在2018年早期被合并到Linux内核4.15版,并被反向移植到Linux内核4.14.11。Windows和macOS也发布了类似的更新。

使用内核启动选项“pti=off”可以部分禁用内核页表隔离。依规定也可对已修复漏洞的新款处理器禁用内核页表隔离。

相关

  • Ce4f1 5d1 6s22, 8, 18, 19, 9, 2蒸气压第一:534.4 kJ·mol−1 第二:1050 kJ·mol−1 第三:1949 kJ·mol−1 (六方面心立方主条目:铈的同位素铈(英语:Cerium)是一种化学元素,它的化学
  • 子宫出血经血过多(Menorrhagia)描述女性在月经期间经血量过多的情形,属于功能失调性子宫出血的一种。非正常的子宫出血可能肇因于生殖道结构异常、无排卵(英语:anovulation)、出血疾病、激
  • CBrsub4/sub四溴化碳是溴取代甲烷上所有氢的产物,化学式为CBr4。四溴化碳有两种晶型,在46.9°C以下的晶型II(或β)和在46.9°C之上的I(或α)。单晶有C2/c空间群,晶胞参数为a = 20.9, b = 12.1,
  • 科尔玛·冯·德·戈尔茨男爵威廉·利奥波德·科尔玛·冯·德·戈尔茨男爵(Wilhelm Leopold Colmar Freiherr von der Goltz,1843年8月12日-1916年4月19日),又称戈尔茨帕夏,普鲁士陆军元帅和军事作家。1843年
  • 草酸钙草酸钙是钙的草酸盐,化学式为CaC2O4或Ca(COO)2,分子量128.10,为白色针状晶体。难溶于水和乙酸,可溶于稀硝酸和盐酸中。由钙盐与草酸在水溶液中作用制得,在蒟蒻芋等植物里面也含有
  • 橘子碗橘子碗(Orange Bowl)是美国战绩最好的大学美式足球队所竞逐的锦标,此锦标自1935年开始,是美国第二历史久远的美式足球赛事。近年,橘子碗的比赛都在佛罗里达州的永明体育场举行。
  • 英吉利海峡隧道英法海底隧道(英语:Channel Tunnel,亦称 Chunnel;法语:le tunnel sous la Manche,拉芒什海峡隧道)是一座50.5千米长的海底铁路隧道,位于英吉利海峡多佛尔水道下,连接英国的福克斯通和
  • 第1装甲师第1装甲师,可以指下列的装甲师级单位:
  • 非线性系统在物理科学中,如果描述某个系统的方程其输入(自变数)与输出(应变数)不成正比,则称为非线性系统。由于自然界中大部分的系统本质上都是非线性的,因此许多工程师、物理学家、数学家和
  • 矢量图形矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。矢量图形与使用像素表示图像的位图不同。所有的现代计算机显示器都要将矢量图形转换成栅