1*22ab45a8SShuo Zhao.. SPDX-License-Identifier: GPL-2.0 2*22ab45a8SShuo Zhao.. include:: ../../disclaimer-zh_CN.rst 3*22ab45a8SShuo Zhao 4*22ab45a8SShuo Zhao:Original: Documentation/security/tpm/xen-tpmfront.rst 5*22ab45a8SShuo Zhao 6*22ab45a8SShuo Zhao:翻译: 7*22ab45a8SShuo Zhao 赵硕 Shuo Zhao <zhaoshuo@cqsoftware.com.cn> 8*22ab45a8SShuo Zhao 9*22ab45a8SShuo Zhao================ 10*22ab45a8SShuo ZhaoXen的虚拟TPM接口 11*22ab45a8SShuo Zhao================ 12*22ab45a8SShuo Zhao 13*22ab45a8SShuo Zhao作者:Matthew Fioravante (JHUAPL), Daniel De Graaf (NSA) 14*22ab45a8SShuo Zhao 15*22ab45a8SShuo Zhao本文档描述了用于Xen的虚拟可信平台模块(vTPM)子系统。假定读者熟悉 16*22ab45a8SShuo ZhaoXen和Linux的构建和安装,并对TPM和vTPM概念有基本的理解。 17*22ab45a8SShuo Zhao 18*22ab45a8SShuo Zhao介绍 19*22ab45a8SShuo Zhao---- 20*22ab45a8SShuo Zhao 21*22ab45a8SShuo Zhao这项工作的目标是为虚拟客户操作系统(在Xen中称为DomU)提供TPM功能。这使得 22*22ab45a8SShuo Zhao程序能够像与物理系统上的TPM交互一样,与虚拟系统中的TPM进行交互。每个客户 23*22ab45a8SShuo Zhao操作系统都会获得一个唯一的、模拟的软件TPM。然而,vTPM的所有秘密(如密钥、 24*22ab45a8SShuo ZhaoNVRAM 等)由vTPM管理域进行管理,该域将这些秘密封存到物理TPM中。如果创建这 25*22ab45a8SShuo Zhao些域(管理域、vTPM域和客户域)的过程是可信的,vTPM子系统就能将根植于硬件 26*22ab45a8SShuo ZhaoTPM的信任链扩展到Xen中的虚拟机。vTPM的每个主要组件都作为一个独立的域实现, 27*22ab45a8SShuo Zhao从而通过虚拟机监控程序(hypervisor)提供安全隔离。 28*22ab45a8SShuo Zhao 29*22ab45a8SShuo Zhao这个mini-os vTPM 子系统是建立在IBM和Intel公司之前的vTPM工作基础上的。 30*22ab45a8SShuo Zhao 31*22ab45a8SShuo Zhao 32*22ab45a8SShuo Zhao设计概述 33*22ab45a8SShuo Zhao-------- 34*22ab45a8SShuo Zhao 35*22ab45a8SShuo ZhaovTPM的架构描述如下:: 36*22ab45a8SShuo Zhao 37*22ab45a8SShuo Zhao +------------------+ 38*22ab45a8SShuo Zhao | Linux DomU | ... 39*22ab45a8SShuo Zhao | | ^ | 40*22ab45a8SShuo Zhao | v | | 41*22ab45a8SShuo Zhao | xen-tpmfront | 42*22ab45a8SShuo Zhao +------------------+ 43*22ab45a8SShuo Zhao | ^ 44*22ab45a8SShuo Zhao v | 45*22ab45a8SShuo Zhao +------------------+ 46*22ab45a8SShuo Zhao | mini-os/tpmback | 47*22ab45a8SShuo Zhao | | ^ | 48*22ab45a8SShuo Zhao | v | | 49*22ab45a8SShuo Zhao | vtpm-stubdom | ... 50*22ab45a8SShuo Zhao | | ^ | 51*22ab45a8SShuo Zhao | v | | 52*22ab45a8SShuo Zhao | mini-os/tpmfront | 53*22ab45a8SShuo Zhao +------------------+ 54*22ab45a8SShuo Zhao | ^ 55*22ab45a8SShuo Zhao v | 56*22ab45a8SShuo Zhao +------------------+ 57*22ab45a8SShuo Zhao | mini-os/tpmback | 58*22ab45a8SShuo Zhao | | ^ | 59*22ab45a8SShuo Zhao | v | | 60*22ab45a8SShuo Zhao | vtpmmgr-stubdom | 61*22ab45a8SShuo Zhao | | ^ | 62*22ab45a8SShuo Zhao | v | | 63*22ab45a8SShuo Zhao | mini-os/tpm_tis | 64*22ab45a8SShuo Zhao +------------------+ 65*22ab45a8SShuo Zhao | ^ 66*22ab45a8SShuo Zhao v | 67*22ab45a8SShuo Zhao +------------------+ 68*22ab45a8SShuo Zhao | Hardware TPM | 69*22ab45a8SShuo Zhao +------------------+ 70*22ab45a8SShuo Zhao 71*22ab45a8SShuo Zhao* Linux DomU: 72*22ab45a8SShuo Zhao 希望使用vTPM的基于Linux的客户机。可能有多个这样的实例。 73*22ab45a8SShuo Zhao 74*22ab45a8SShuo Zhao* xen-tpmfront.ko: 75*22ab45a8SShuo Zhao Linux内核虚拟TPM前端驱动程序。该驱动程序为基于Linux的DomU提供 76*22ab45a8SShuo Zhao vTPM访问。 77*22ab45a8SShuo Zhao 78*22ab45a8SShuo Zhao* mini-os/tpmback: 79*22ab45a8SShuo Zhao Mini-os TPM后端驱动程序。Linux前端驱动程序通过该后端驱动程序连 80*22ab45a8SShuo Zhao 接,以便在Linux DomU和其vTPM之间进行通信。该驱动程序还被 81*22ab45a8SShuo Zhao vtpmmgr-stubdom用于与vtpm-stubdom通信。 82*22ab45a8SShuo Zhao 83*22ab45a8SShuo Zhao* vtpm-stubdom: 84*22ab45a8SShuo Zhao 一个实现vTPM的mini-os存根域。每个正在运行的vtpm-stubdom实例与系统 85*22ab45a8SShuo Zhao 上的逻辑vTPM之间有一一对应的关系。vTPM平台配置寄存器(PCRs)通常都 86*22ab45a8SShuo Zhao 初始化为零。 87*22ab45a8SShuo Zhao 88*22ab45a8SShuo Zhao* mini-os/tpmfront: 89*22ab45a8SShuo Zhao Mini-os TPM前端驱动程序。vTPM mini-os域vtpm-stubdom使用该驱动程序 90*22ab45a8SShuo Zhao 与vtpmmgr-stubdom通信。此驱动程序还用于与vTPM域通信的mini-os域,例 91*22ab45a8SShuo Zhao 如 pv-grub。 92*22ab45a8SShuo Zhao 93*22ab45a8SShuo Zhao* vtpmmgr-stubdom: 94*22ab45a8SShuo Zhao 一个实现vTPM管理器的mini-os域。系统中只有一个vTPM管理器,并且在整个 95*22ab45a8SShuo Zhao 机器生命周期内应一直运行。此域调节对系统中物理TPM的访问,并确保每个 96*22ab45a8SShuo Zhao vTPM的持久状态。 97*22ab45a8SShuo Zhao 98*22ab45a8SShuo Zhao* mini-os/tpm_tis: 99*22ab45a8SShuo Zhao Mini-osTPM1.2版本TPM 接口规范(TIS)驱动程序。该驱动程序由vtpmmgr-stubdom 100*22ab45a8SShuo Zhao 用于直接与硬件TPM通信。通信通过将硬件内存页映射到vtpmmgr-stubdom来实现。 101*22ab45a8SShuo Zhao 102*22ab45a8SShuo Zhao* 硬件TPM: 103*22ab45a8SShuo Zhao 固定在主板上的物理 TPM。 104*22ab45a8SShuo Zhao 105*22ab45a8SShuo Zhao与Xen的集成 106*22ab45a8SShuo Zhao----------- 107*22ab45a8SShuo Zhao 108*22ab45a8SShuo ZhaovTPM驱动程序的支持已在Xen4.3中通过libxl工具堆栈添加。有关设置vTPM和vTPM 109*22ab45a8SShuo Zhao管理器存根域的详细信息,请参见Xen文档(docs/misc/vtpm.txt)。一旦存根域 110*22ab45a8SShuo Zhao运行,与磁盘或网络设备相同,vTPM设备将在域的配置文件中进行设置 111*22ab45a8SShuo Zhao 112*22ab45a8SShuo Zhao为了使用诸如IMA(完整性测量架构)等需要在initrd之前加载TPM的功能,必须将 113*22ab45a8SShuo Zhaoxen-tpmfront驱动程序编译到内核中。如果不使用这些功能,驱动程序可以作为 114*22ab45a8SShuo Zhao模块编译,并像往常一样加载。 115