内核页表隔离

✍ dations ◷ 2025-11-15 15:39:14 #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”可以部分禁用内核页表隔离。依规定也可对已修复漏洞的新款处理器禁用内核页表隔离。

相关

  • 犬小病毒犬细小病毒2型(Canine parvovirus type 2 ,CPV2)是一种主要感染犬的传染性病毒。该病传染性强。犬之间通过对于其粪便的直接或间接接触而传播该病。没有母源抗体或疫苗保护的幼
  • 先生先生是称谓,字面的意思表示:出生比自己早,年龄比自己大的。以此外延为对有一定地位,学识,资格的人可以称为先生。衣办汉语中“先生”一词的原意是对有学问、知识者(老师)的尊称,男女
  • 嗜酸性细胞嗜酸性粒细胞(英语:Eosinophil, Eosinocyte 或 Acidophil,全稱 Eosinophilic granulocyte)是粒细胞中含有嗜酸性颗粒的一种,其他两种是中性粒细胞和嗜碱性粒细胞。其吞噬能力不如
  • 谷部,为汉字索引中的部首之一,康熙字典214个部首中的第一百五十个(七划的则为第四个)。就繁体和简体中文中,谷部归于七划部首。谷部通常从左方、右方为部字。且无其他部首可用者
  • 骶骨骶骨又称荐椎(拉丁语:Sacrum、日语:仙骨、薦骨),是一大形的三角形骨,由5块椎骨合并而成的。 它是骨盆带的基部,位于骨盆腔的后面,在2块髋骨之间。脊柱Sacrum, dorsal surface.Latera
  • 濮阳市.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings:
  • 乔尔泽套语支乔尔语(Ch’ol)属于马雅语系的语言,为墨西哥乔尔族人的语言。乔尔语可追溯回古典马雅语,与使用于危地马拉的奇奥蒂语有很近的关系。以下为乔尔语的音韵。
  • 巴瑶族巴乔人(英语:Bajau、/ˈbɑːdʒaʊ, ˈbæ-/)也作巴瑶族,是东南亚的一个民族,生活在菲律宾、马来西亚和印度尼西亚之间的海域一带,多以潜水、捕鱼为生,常被称谓“海上吉普赛人”,也
  • 银鱼银鱼科(学名:Salangidae)通称银鱼,古称脍残鱼,属辐鳍鱼纲胡瓜鱼目。以小型甲壳类为食。银鱼可供鲜食用或晒鱼干。银鱼是一种小型鱼类,身体细长、光滑、半透明,头平扁;口大,两颌和口盖
  • 杰西卡·兰格杰西卡·菲利斯·兰格(英语:Jessica Phyllis Lange,1949年4月20日-)是一位美国女演员,出生在明尼苏达州,曾经以电影《窈窕淑男》与《芳心的放纵》分别获得1982与1994年的奥斯卡最佳