֠sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/security/snp-tdx-threat-modelmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/security/snp-tdx-threat-modelmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/security/snp-tdx-threat-modelmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/security/snp-tdx-threat-modelmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/security/snp-tdx-threat-modelmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/security/snp-tdx-threat-modelmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh^/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/security/snp-tdx-threat-model.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h0Documentation/security/snp-tdx-threat-model.rst h]h)}(h/Documentation/security/snp-tdx-threat-model.rsth]h/Documentation/security/snp-tdx-threat-model.rst}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhKubh)}(h3毛玉贤 Yuxian Mao h]h)}(h2毛玉贤 Yuxian Mao h](h毛玉贤 Yuxian Mao <}(hj hhhNhNubh reference)}(hmaoyuxian@cqsoftware.com.cnh]hmaoyuxian@cqsoftware.com.cn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:maoyuxian@cqsoftware.com.cnuh1j(hj ubh>}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h#Linux中x86虚拟化的机密计算h]h#Linux中x86虚拟化的机密计算}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjXhhhhhK ubhtopic)}(hhh]h bullet_list)}(hhh](h list_item)}(hhh]h)}(hhh]j))}(hhh]h动机}(hj}hhhNhNubah}(h]id5ah ]h"]h$]h&]refidid1uh1j(hjzubah}(h]h ]h"]h$]h&]uh1hhjwubah}(h]h ]h"]h$]h&]uh1juhjrubjv)}(hhh]h)}(hhh]j))}(hhh]h概述与术语}(hjhhhNhNubah}(h]id6ah ]h"]h$]h&]refidid2uh1j(hjubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1juhjrubjv)}(hhh]h)}(hhh]j))}(hhh]h 现有的Linux内核威胁模型}(hjhhhNhNubah}(h]id7ah ]h"]h$]h&]refidlinuxuh1j(hjubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1juhjrubjv)}(hhh]h)}(hhh]j))}(hhh]h*机密计算威胁模型及其安全目标}(hjhhhNhNubah}(h]id8ah ]h"]h$]h&]refidid3uh1j(hjubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1juhjrubeh}(h]h ]h"]h$]h&]uh1jphjmhhhNhNubah}(h]contentsah ](contentslocaleh"]contentsah$]h&]uh1jkhhhKhjXhhubh)}(haBy: Elena Reshetova and Carlos Bilbao h](hBy: Elena Reshetova <}(hjhhhNhNubj))}(helena.reshetova@intel.comh]helena.reshetova@intel.com}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri mailto:elena.reshetova@intel.comuh1j(hjubh> and Carlos Bilbao <}(hjhhhNhNubj))}(hcarlos.bilbao.osdev@gmail.comh]hcarlos.bilbao.osdev@gmail.com}(hj+hhhNhNubah}(h]h ]h"]h$]h&]refuri$mailto:carlos.bilbao.osdev@gmail.comuh1j(hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjXhhubjW)}(hhh](j\)}(h动机h]h动机}(hjHhhhNhNubah}(h]h ]h"]h$]h&]refidjuh1j[hjEhhhhhKubh)}(hX 在x86虚拟环境中从事机密计算工作的内核开发人员,是基于一组与传统Linux内核 威胁模型有所不同的假设条件下开展工作的。传统意义上,Linux威胁模型承认攻 击者可以存在于用户空间,以及一小部分能够通过各种网络接口或有限的硬件特定 暴露接口(如USB、Thunderbolt)与内核交互的外部攻击者。本文档的目的是解释 在机密计算领域中出现的额外攻击向量,并讨论为 Linux 内核提出的保护机制。h]hX 在x86虚拟环境中从事机密计算工作的内核开发人员,是基于一组与传统Linux内核 威胁模型有所不同的假设条件下开展工作的。传统意义上,Linux威胁模型承认攻 击者可以存在于用户空间,以及一小部分能够通过各种网络接口或有限的硬件特定 暴露接口(如USB、Thunderbolt)与内核交互的外部攻击者。本文档的目的是解释 在机密计算领域中出现的额外攻击向量,并讨论为 Linux 内核提出的保护机制。}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjEhhubeh}(h]jah ]h"]动机ah$]h&]uh1jVhjXhhhhhKubjW)}(hhh](j\)}(h概述与术语h]h概述与术语}(hjohhhNhNubah}(h]h ]h"]h$]h&]jVjuh1j[hjlhhhhhKubh)}(hX0机密计算(Confidential Computing,简称CoCo)是一个广泛的术语,涵盖了多种 旨在保护数据在使用过程中(与静态数据或传输数据相比)的机密性和完整性的安 全技术。从本质上讲,机密计算(CoCo)解决方案提供了一个受信任执行环境(TEE), 在该环境中可以进行安全的数据处理,因此,它们通常根据预期在TEE中运行的软件 来进一步划分为不同的子类型。本文档专注于一类针对虚拟化环境的机密计算技术 (Confidential Computing, CoCo),这些技术允许在可信执行环境 (Trusted Execution Environment, TEE)中运行虚拟机(VM)。从现在起,本文档 将把这一类机密计算(CoCo)技术称为“虚拟化环境(VE)中的机密计算(CoCo)”。h]hX0机密计算(Confidential Computing,简称CoCo)是一个广泛的术语,涵盖了多种 旨在保护数据在使用过程中(与静态数据或传输数据相比)的机密性和完整性的安 全技术。从本质上讲,机密计算(CoCo)解决方案提供了一个受信任执行环境(TEE), 在该环境中可以进行安全的数据处理,因此,它们通常根据预期在TEE中运行的软件 来进一步划分为不同的子类型。本文档专注于一类针对虚拟化环境的机密计算技术 (Confidential Computing, CoCo),这些技术允许在可信执行环境 (Trusted Execution Environment, TEE)中运行虚拟机(VM)。从现在起,本文档 将把这一类机密计算(CoCo)技术称为“虚拟化环境(VE)中的机密计算(CoCo)”。}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlhhubh)}(hX在虚拟化环境中,机密计算(CoCo)指的是一组硬件和/或软件技术,这些技术能够 为在CoCo虚拟机(VM)内运行的软件提供更强的安全保障。具体来说,机密计算允许 其用户确认所有软件组件的可信度,从而将其包含在精简的受信任计算基(TCB)中, 这是基于机密计算具备验证这些受信组件状态的能力。h]hX在虚拟化环境中,机密计算(CoCo)指的是一组硬件和/或软件技术,这些技术能够 为在CoCo虚拟机(VM)内运行的软件提供更强的安全保障。具体来说,机密计算允许 其用户确认所有软件组件的可信度,从而将其包含在精简的受信任计算基(TCB)中, 这是基于机密计算具备验证这些受信组件状态的能力。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjlhhubh)}(hX;虽然不同技术之间的具体实现细节有所不同,但所有现有机制都旨在为虚拟机的客户 内存和执行状态(vCPU寄存器)提供更高的机密性和完整性,更严格地控制客户中断 注入,并提供一些额外机制来控制客户与宿主机之间的页映射。有关x86特定解决方案 的更多细节,可以参考 :doc:`Intel Trust Domain Extensions (TDX) ` 和 `AMD Memory Encryption `_.h](hXm虽然不同技术之间的具体实现细节有所不同,但所有现有机制都旨在为虚拟机的客户 内存和执行状态(vCPU寄存器)提供更高的机密性和完整性,更严格地控制客户中断 注入,并提供一些额外机制来控制客户与宿主机之间的页映射。有关x86特定解决方案 的更多细节,可以参考 }(hjhhhNhNubh)}(h::doc:`Intel Trust Domain Extensions (TDX) `h]hinline)}(hjh]h#Intel Trust Domain Extensions (TDX)}(hjhhhNhNubah}(h]h ](xrefstdstd-doceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdoc0translations/zh_CN/security/snp-tdx-threat-model refdomainjreftypedoc refexplicitrefwarn reftarget /arch/x86/tdxuh1hhhhK,hjubh 和 }(hjhhhNhNubj))}(h`AMD Memory Encryption `_h]hAMD Memory Encryption}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameAMD Memory Encryptionrefurishttps://www.amd.com/system/files/techdocs/sev-snp-strengthening-vm-isolation-with-integrity-protection-and-more.pdfuh1j(hjubhtarget)}(hv h]h}(h]amd-memory-encryptionah ]h"]amd memory encryptionah$]h&]refurijuh1j referencedKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK,hjlhhubh)}(hXV基本的机密计算(CoCo)客户布局包括宿主机、客户机、用于客户机与宿主机之间通信 的接口、能够支持CoCo虚拟机(VM)的平台,以及一个在客户VM和底层平台之间充当安 全管理员的可信中介。宿主机侧的虚拟机监视器(VMM)通常由传统VMM功能的一个子集 组成,并仍然负责客户机生命周期的管理,即创建或销毁CoCo虚拟机、管理其对系统资 源的访问等。然而,由于它通常不在CoCo VM的可信计算基(TCB)内,其访问权限受到 限制,以确保实现安全目标。h]hXV基本的机密计算(CoCo)客户布局包括宿主机、客户机、用于客户机与宿主机之间通信 的接口、能够支持CoCo虚拟机(VM)的平台,以及一个在客户VM和底层平台之间充当安 全管理员的可信中介。宿主机侧的虚拟机监视器(VMM)通常由传统VMM功能的一个子集 组成,并仍然负责客户机生命周期的管理,即创建或销毁CoCo虚拟机、管理其对系统资 源的访问等。然而,由于它通常不在CoCo VM的可信计算基(TCB)内,其访问权限受到 限制,以确保实现安全目标。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjlhhubh)}(h在下图中,"<--->" 线表示机密计算(CoCo)安全管理员与其余组件之间的双向通信通 道或接口,这些组件包括客户机、宿主机和硬件(数据流)::h]h在下图中,”<--->” 线表示机密计算(CoCo)安全管理员与其余组件之间的双向通信通 道或接口,这些组件包括客户机、宿主机和硬件(数据流):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjlhhubh literal_block)}(hXF+-------------------+ +-----------------------+ | CoCo guest VM |<---->| | +-------------------+ | | | Interfaces | | CoCo security manager | +-------------------+ | | | Host VMM |<---->| | +-------------------+ | | | | +--------------------+ | | | CoCo platform |<--->| | +--------------------+ +-----------------------+h]hXF+-------------------+ +-----------------------+ | CoCo guest VM |<---->| | +-------------------+ | | | Interfaces | | CoCo security manager | +-------------------+ | | | Host VMM |<---->| | +-------------------+ | | | | +--------------------+ | | | CoCo platform |<--->| | +--------------------+ +-----------------------+}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK=hjlhhubh)}(h机密计算(CoCo)安全管理器的具体细节在在不同技术之间存在显著差异。例如,在某 些情况下,它可能通过硬件(HW)实现,而在其他情况下,它可能是纯软件(SW)实现。h]h机密计算(CoCo)安全管理器的具体细节在在不同技术之间存在显著差异。例如,在某 些情况下,它可能通过硬件(HW)实现,而在其他情况下,它可能是纯软件(SW)实现。}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjlhhubeh}(h]jah ]h"]概述与术语ah$]h&]uh1jVhjXhhhhhKubjW)}(hhh](j\)}(h 现有的Linux内核威胁模型h]h 现有的Linux内核威胁模型}(hj:hhhNhNubah}(h]h ]h"]h$]h&]jVjuh1j[hj7hhhhhKMubh)}(h4当前Linux内核威胁模型的总体组件包括::h]h3当前Linux内核威胁模型的总体组件包括:}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhj7hhubj)}(hX+-----------------------+ +-------------------+ | |<---->| Userspace | | | +-------------------+ | External attack | | Interfaces | | vectors | +-------------------+ | |<---->| Linux Kernel | | | +-------------------+ +-----------------------+ +-------------------+ | Bootloader/BIOS | +-------------------+ +-------------------+ | HW platform | +-------------------+h]hX+-----------------------+ +-------------------+ | |<---->| Userspace | | | +-------------------+ | External attack | | Interfaces | | vectors | +-------------------+ | |<---->| Linux Kernel | | | +-------------------+ +-----------------------+ +-------------------+ | Bootloader/BIOS | +-------------------+ +-------------------+ | HW platform | +-------------------+}hjVsbah}(h]h ]h"]h$]h&]hhuh1jhhhKQhj7hhubh)}(hX 在启动过程中,引导加载程序(bootloader)和内核之间也存在通信,但本图并未明确 表示这一点。“接口”框表示允许内核与用户空间之间通信的各种接口。 这包括系统调用、 内核 API、设备驱动程序等。h]hX 在启动过程中,引导加载程序(bootloader)和内核之间也存在通信,但本图并未明确 表示这一点。“接口”框表示允许内核与用户空间之间通信的各种接口。 这包括系统调用、 内核 API、设备驱动程序等。}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj7hhubh)}(hXg现有的 Linux 内核威胁模型通常假设其在一个受信任的硬件平台上执行,并且所有固件 和启动加载程序都包含在该平台的受信任计算基(TCB)中。主要攻击者驻留在用户空间 中,来自用户空间的所有数据通常被认为是不可信的,除非用户空间具有足够的特权来 执行受信任的操作。此外,通常还会考虑外部攻击者,包括那些能够访问启用的外部网络 (例如以太网、无线网络、蓝牙)、暴露的硬件接口(例如 USB、Thunderbolt),以及 能够离线修改磁盘内容的攻击者。h]hXg现有的 Linux 内核威胁模型通常假设其在一个受信任的硬件平台上执行,并且所有固件 和启动加载程序都包含在该平台的受信任计算基(TCB)中。主要攻击者驻留在用户空间 中,来自用户空间的所有数据通常被认为是不可信的,除非用户空间具有足够的特权来 执行受信任的操作。此外,通常还会考虑外部攻击者,包括那些能够访问启用的外部网络 (例如以太网、无线网络、蓝牙)、暴露的硬件接口(例如 USB、Thunderbolt),以及 能够离线修改磁盘内容的攻击者。}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj7hhubh)}(hXH关于外部攻击途径,值得注意的是,在大多数情况下,外部攻击者会首先尝试利用用户空 间的漏洞,但攻击者也可能直接针对内核,特别是在宿主机具有物理访问权限的情况下。直 接攻击内核的例子包括漏洞 CVE-2019-19524、CVE-2022-0435 和 CVE-2020-24490。h]hXH关于外部攻击途径,值得注意的是,在大多数情况下,外部攻击者会首先尝试利用用户空 间的漏洞,但攻击者也可能直接针对内核,特别是在宿主机具有物理访问权限的情况下。直 接攻击内核的例子包括漏洞 CVE-2019-19524、CVE-2022-0435 和 CVE-2020-24490。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj7hhubeh}(h]jah ]h"] 现有的linux内核威胁模型ah$]h&]uh1jVhjXhhhhhKMubjW)}(hhh](j\)}(h*机密计算威胁模型及其安全目标h]h*机密计算威胁模型及其安全目标}(hjhhhNhNubah}(h]h ]h"]h$]h&]jVjuh1j[hjhhhhhKoubh)}(hXo机密计算在上述攻击者列表中增加了一种新的攻击者类型:可能存在行为不当的宿主机 (这可能包括传统虚拟机监视器VMM的部分组件或全部),由于其较大的软件攻击面, 通常被置于CoCo VM TCB之外。需要注意的是,这并不意味着宿主机或VMM是故意恶意的, 而是强调拥有一个较小的CoCo VM TCB具有安全价值。这种新型的攻击者可以被视为一种 更强大的外部攻击者,因为它位于同一物理机器上(与远程网络攻击者不同),并且对 客户机内核与大部分硬件的通信具有控制权::h]hXn机密计算在上述攻击者列表中增加了一种新的攻击者类型:可能存在行为不当的宿主机 (这可能包括传统虚拟机监视器VMM的部分组件或全部),由于其较大的软件攻击面, 通常被置于CoCo VM TCB之外。需要注意的是,这并不意味着宿主机或VMM是故意恶意的, 而是强调拥有一个较小的CoCo VM TCB具有安全价值。这种新型的攻击者可以被视为一种 更强大的外部攻击者,因为它位于同一物理机器上(与远程网络攻击者不同),并且对 客户机内核与大部分硬件的通信具有控制权:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjhhubj)}(hXh +------------------------+ | CoCo guest VM | +-----------------------+ | +-------------------+ | | |<--->| | Userspace | | | | | +-------------------+ | | External attack | | | Interfaces | | | vectors | | +-------------------+ | | |<--->| | Linux Kernel | | | | | +-------------------+ | +-----------------------+ | +-------------------+ | | | Bootloader/BIOS | | +-----------------------+ | +-------------------+ | | |<--->+------------------------+ | | | Interfaces | | | +------------------------+ | CoCo security |<--->| Host/Host-side VMM | | manager | +------------------------+ | | +------------------------+ | |<--->| CoCo platform | +-----------------------+ +------------------------+h]hXh +------------------------+ | CoCo guest VM | +-----------------------+ | +-------------------+ | | |<--->| | Userspace | | | | | +-------------------+ | | External attack | | | Interfaces | | | vectors | | +-------------------+ | | |<--->| | Linux Kernel | | | | | +-------------------+ | +-----------------------+ | +-------------------+ | | | Bootloader/BIOS | | +-----------------------+ | +-------------------+ | | |<--->+------------------------+ | | | Interfaces | | | +------------------------+ | CoCo security |<--->| Host/Host-side VMM | | manager | +------------------------+ | | +------------------------+ | |<--->| CoCo platform | +-----------------------+ +------------------------+}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKxhjhhubh)}(hXD传统上,宿主机对客户机数据拥有无限访问权限,并可以利用这种访问权限来攻击客户虚 拟机。然而,机密计算(CoCo)系统通过添加诸如客户数据保密性和完整性保护等安全 特性来缓解此类攻击。该威胁模型假设这些安全特性是可用且完好的。h]hXD传统上,宿主机对客户机数据拥有无限访问权限,并可以利用这种访问权限来攻击客户虚 拟机。然而,机密计算(CoCo)系统通过添加诸如客户数据保密性和完整性保护等安全 特性来缓解此类攻击。该威胁模型假设这些安全特性是可用且完好的。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h]这个 **Linux内核机密计算虚拟机(CoCo VM)的安全目标** 可以总结如下:h](h这个 }(hjhhhNhNubhstrong)}(h@**Linux内核机密计算虚拟机(CoCo VM)的安全目标**h]h