diff --git a/src/Summary.md b/src/Summary.md
index 3b71e923af0fb72afac22dfafc980cbf50aa6806..83ec14927a4cf295a8840d162a5d2111caa8d58a 100644
--- a/src/Summary.md
+++ b/src/Summary.md
@@ -7,10 +7,11 @@
- [国际可信计算标准](standard-international.md)
- [龙蜥操作系统可信计算实践指南](anolisos.md)
- [模拟可信根](anolisos-swtpm.md)
+ - [内核可信特性](anolisos-kernel.md)
- [可信软件栈](anolisos-tss.md)
- - [可信根工具集](anolisos-tpm2-tools.md)
- - [可信根服务引擎](anolisos-tpm2-tss-engine.md)
- - [远程认证](anolisos-remote-attestation.md)
+ - [可信工具集](anolisos-tpm2-tools.md)
+ - [可信服务引擎](anolisos-tpm2-tss-engine.md)
+ - [远程证明](anolisos-remote-attestation.md)
- [可信计算最佳实践及解决方案](practices.md)
- [飞腾平台可信计算最佳实践](practices-phytium.md)
- [海光平台可信计算最佳实践](practices-hygon.md)
diff --git a/src/anolisos-kernel.md b/src/anolisos-kernel.md
new file mode 100644
index 0000000000000000000000000000000000000000..c72fcd3c684c0b6878d91b7f174c44174081f05c
--- /dev/null
+++ b/src/anolisos-kernel.md
@@ -0,0 +1,184 @@
+# 一、概述
+龙蜥操作系统内核提供了成熟的可信计算特性支持,满足内核安全可信需求、为应用层提供安全可信服务。
+# 二、可信驱动
+## 2.1 TPM Eventlog
+本文档简要描述了什么是TPM日志,以及如何将TPM日志从预引导固件传递到操作系统。
+1. **介绍**
+预引导固件维护一个事件日志,每当它将某些内容散列到任何PCR寄存器时,该日志都会获得新条目。事件按其类型分隔,并包含散列PCR寄存器的值。通常情况下,预引导固件将对组件进行散列,这些组件的执行将移交给与引导过程相关的操作。
+它的主要应用是远程认证,它有用的原因很好地放在的第一部分:
+“认证用于向挑战者提供有关平台状态的信息。然而,PCR内容难以解释;因此,当PCR内容伴随着测量日志时,认证通常更有用。虽然测量日志本身不可信,但它包含比PCR内容更丰富的信息集。PCR内容用于提供测量日志的验证。
+2. **UEFI事件日志**
+UEFI提供的事件日志查询的服务。在调用ExitBootServices()之前,Linux EFI存根将事件日志复制到由存根自己定义的自定义配置表中。
+不幸的是,ExitBootServices()生成的事件最终不会出现在表中。固件提供了所谓的最终事件配置表来解决这个问题。在第一次调用EFI_TCG2_PROTOCOL.GetEventLog()之后,事件被镜像到这个表中。
+这就引入了另一个问题:没有什么能保证在Linux EFI存根运行之前不调用它。因此,它需要在存根仍然运行到自定义配置表时计算并保存最终事件表的大小,以便TPM驱动程序稍后在连接来自自定义配置表和最终事件表的事件日志的两半时可以跳过这些事件。
+
+## 2.2 vTPM Proxy Driver for linux Container
+1. **介绍**
+这项工作的目标是为每个Linux容器提供TPM功能。这允许程序以与物理系统上的TPM交互相同的方式与容器中的TPM交互。每个容器都有自己独特的、模拟的软件TPM。
+2. **设计**
+为了使模拟软件TPM可用于每个容器,容器管理堆栈需要创建一个设备对,该设备对由一个客户端TPM字符设备/dev/tpmX (X=0,1,2…)和一个“服务器端”文件描述符组成。在将文件描述符传递给TPM仿真器的同时,通过创建具有适当主编号和副编号的字符设备将前者移动到容器中。然后,容器内的软件可以使用字符设备发送TPM命令,仿真器将通过文件描述符接收命令,并使用它发送回响应。
+为了支持这一点,虚拟TPM代理驱动程序提供了一个设备/dev/vtpmx,用于使用ioctl创建设备对。ioctl将其作为配置设备的输入标志。例如,这些标志指示TPM模拟器是否支持TPM 1.2或TPM 2功能。ioctl的结果是“服务器端”的文件描述符以及所创建的字符设备的主要和次要编号。此外,还会返回TPM字符设备的编号。例如,如果创建了/dev/tpm10,则返回数字(dev_num) 10。
+一旦设备被创建,驱动程序将立即尝试与TPM通信。驱动程序的所有命令都可以从ioctl返回的文件描述符中读取。这些命令应该立即得到响应。
+3. **UAPI**
+- flags for the proxy TPM
+```C
+enum vtpm_proxy_flags
+/**
+* 常量
+* VTPM_PROXY_FLAG_TPM2
+* the proxy TPM uses TPM 2.0 protocol
+**/
+```
+- parameter structure for the VTPM_PROXY_IOC_NEW_DEV ioctl
+```C
+struct vtpm_proxy_new_dev
+
+//Definition:
+struct vtpm_proxy_new_dev {
+ __u32 flags;
+ __u32 tpm_num;
+ __u32 fd;
+ __u32 major;
+ __u32 minor;
+};
+/**结构体成员说明
+* flags: flags for the proxy TPM
+* tpm_num: index of the TPM device
+* fd: the file descriptor used by the proxy TPM
+* major: the major number of the TPM device
+* minor: the minor number of the TPM device
+**/
+```
+- handler for the VTPM_PROXY_IOC_NEW_DEV ioctl
+```C
+long vtpmx_ioc_new_dev(struct file *file, unsigned int ioctl, unsigned long arg)
+
+/**函数参数说明
+* struct file *file /dev/vtpmx
+* unsigned int ioctl the ioctl number
+* unsigned long arg pointer to the struct vtpmx_proxy_new_dev
+**/
+
+/*函数功能描述
+* 创建一个匿名文件,供进程作为TPM与客户端进程通信。
+* 该函数还将添加一个新的TPM设备,通过该设备将数据代理到该TPM代理进程。
+* 将为调用者提供一个文件描述符,用于与客户端通信,以及TPM设备的主要和次要编号。
+*/
+```
+## 2.3 vTPM interface for Xen
+本文档描述Xen的虚拟可信平台模块(vTPM)子系统。假定读者熟悉构建和安装Xen、Linux,并对TPM和vTPM概念有基本的了解。
+**介绍**
+这项工作的目标是为虚拟客户机操作系统(用Xen术语来说就是DomU)提供TPM功能。这允许程序以与物理系统上的TPM交互相同的方式与虚拟系统中的TPM交互。每个客户机都有自己独特的、仿真的软件TPM。然而,每个vTPM的秘密(密钥,NVRAM等)都由vTPM Manager域管理,该域将秘密密封到物理TPM。如果创建这些域(管理器、vTPM和客户机)的过程是可信的,那么vTPM子系统将根植于硬件TPM的信任链扩展到Xen中的虚拟机。vTPM的每个主要组件都作为一个单独的域实现,提供由hypervisor保证的安全分离。vTPM域在mini-o中实现,以减少内存和处理器开销。
+这个mini-os vTPM子系统是建立在IBM和Intel公司以前的vTPM工作之上的。
+**设计概述**
+vTPM的架构描述如下:
+```
++------------------+
+| Linux DomU | ...
+| | ^ |
+| v | |
+| xen-tpmfront |
++------------------+
+ | ^
+ v |
++------------------+
+| mini-os/tpmback |
+| | ^ |
+| v | |
+| vtpm-stubdom | ...
+| | ^ |
+| v | |
+| mini-os/tpmfront |
++------------------+
+ | ^
+ v |
++------------------+
+| mini-os/tpmback |
+| | ^ |
+| v | |
+| vtpmmgr-stubdom |
+| | ^ |
+| v | |
+| mini-os/tpm_tis |
++------------------+
+ | ^
+ v |
++------------------+
+| Hardware TPM |
++------------------+
+```
+- Linux DomU:想要使用vTPM的基于Linux的客户机。可能不止一个。
+- xen-tpmfront.ko:Linux内核虚拟TPM前端驱动。该驱动程序提供对基于linux的DomU的vTPM访问。
+- mini-os / tpmback:Mini-os TPM后端驱动程序。Linux前端驱动与后端驱动对接,实现Linux DomU与vTPM之间的通信。这个驱动程序也被vtpmmgr-stubdom用来与vtpm-stubdom通信。
+- vtpm-stubdom:一个实现vTPM的mini-os存根域。在系统上运行的vtpm-stubdom实例和逻辑vtpms之间存在一对一的映射关系。vTPM平台配置寄存器(pcr)通常都初始化为零。
+- mini-os / tpmfront:Mini-os TPM前端驱动程序。vTPM mini-os域vTPM -stubdom使用该驱动程序与vtpmmgr-stubdom通信。该驱动程序也用于与vTPM域通信的mini-os域,例如pv-grub。
+- vtpmmgr-stubdom:实现vTPM管理器的mini-os域。只有一个vTPM管理器,它应该在机器的整个生命周期中运行。该域规范对系统物理TPM的访问,并确保每个vTPM的持久状态。
+- mini-os / tpm_tis: Mini-os TPM version 1.2 TPM Interface Specification (TIS)驱动程序。vtpmmgr-stubdom使用这个驱动程序直接与硬件TPM对话。通过将硬件内存页映射到vtpmmgr-stubdom,方便了通信。
+- 硬件TPM:物理TPM模块,焊接到主板上。
+**与Xen集成**
+Xen在4.3中使用libxl工具栈添加了对vTPM驱动程序的支持。有关设置vTPM和vTPM Manager存根域的详细信息,请参阅Xen文档(docs/misc/ vTPM .txt)。一旦存根域开始运行,就会按照与域配置文件中的磁盘或网络设备相同的方式设置vTPM设备。
+为了使用IMA等需要在initrd之前加载TPM的特性,必须将xen-tpmfront驱动程序编译到内核中。如果不使用这些特性,驱动程序可以被编译为一个模块,并将像往常一样加载。
+
+## 2.4 Firmware TPM Driver
+本文档介绍了固件的fTPM (Trusted Platform Module)设备驱动程序。
+**介绍**
+这个驱动程序是在ARM的TrustZone环境中实现的固件的垫片。驱动程序允许程序以与硬件TPM交互相同的方式与TPM交互。
+**设计**
+驱动程序充当一个薄层,向固件中实现的TPM传递命令。驱动程序本身不包含太多逻辑,更像是固件和内核/用户空间之间的哑管道。
+固件本身基于以下文件:https://www.microsoft.com/en-us/research/wp-content/uploads/2017/06/ftpm1.pdf
+当驱动程序加载时,它将向用户空间公开/dev/tpmX字符设备,这将使用户空间能够-通过该设备与固件TPM通信。
+
+# 三、 IMA
+## 3.1 介绍
+原始的“ima”模板是固定长度的,包含了文件数据的哈希值和路径名。filedata哈希值限制为20字节(md5/sha1)。路径名是一个以空结尾的字符串,限制为255个字符。为了克服这些限制并添加额外的文件元数据,它是扩展当前版本的IMA是必要的模板。例如,可能报告的信息是索引节点UID/GID或索引节点和进程的LSM标签这就是访问它。然而,引入这个特性的主要问题是,每次定义一个新的模板,生成和显示函数度量列表将包括处理新格式的代码因此,随着时间的推移,它会显著增长。
+提出的解决方案通过分离模板解决了这个问题管理从剩余的IMA代码。这个解决方案的核心是定义两个新的数据结构:一个模板描述符,确定测量表中应包括哪些信息;一个模板字段,以生成和显示给定类型的数据。
+使用这些结构管理模板非常简单。支持一种新的数据类型,开发人员定义字段标识符并实现两个函数init()和show()分别用于生成和显示测量条目。定义一个新的模板描述符需要指定模板格式(由字段标识符分隔的字符串)通过' ' ima_template_fmt ' '内核命令行输入' ' | ' '字符)参数。在引导时,IMA初始化所选的模板描述符通过将格式转换为模板字段结构的数组从支撑点的集合中。
+在初始化步骤之后,IMA将调用ima_alloc_init_template()(在补丁中为新模板管理定义了新功能机制),通过使用模板生成新的度量条目描述符通过内核配置或通过new引入' ' ima_template ' '和' ' ima_template_fmt ' '内核命令行参数。
+正是在这个阶段,新体系结构的优势体现出来了清楚地显示:后一个函数将不包含要处理的特定代码一个给定的模板,但它只是调用模板的' ' init() ' '方法与所选模板描述符关联的字段,并存储结果(指向已分配数据和数据长度的指针)。
+使用相同的机制来显示度量条目。
+函数``ima[_ascii]_measurements_show()``检索每个条目,用于生成该条目并调用show()的模板描述符方法,用于模板字段结构数组的每个项。
+
+## 3.2 支持的模板字段和描述符
+下面是支持的模板字段列表``('<identifier>': description)``,可用于定义新的模板将描述符的标识符添加到格式字符串中(稍后将添加对更多数据类型的支持):
+- 'd':事件的摘要(即测量文件的摘要);用SHA1或MD5哈希算法计算;
+- 'n':事件的名称(即文件名),大小为255字节;
+- 'd-ng':事件的摘要,用任意散列计算算法(字段格式:<hash算法>:digest);
+- 'd-ngv2':与d-ng相同,但前缀为"ima"或"verity"摘要类型(字段格式:<摘要类型>:<散列算法>:摘要);
+- 'd-modsig':事件摘要,不包含附加的modsig;
+- 'n-ng':事件的名称,没有大小限制;
+- 'sig':文件签名,基于文件的/ fsversity的摘要[1],或EVM便携式签名,如果是安全的。Ima '包含一个文件散列。
+- 'modsig'附加文件签名;
+- 'buf':用于生成哈希的缓冲区数据,没有大小限制;
+- 'evmsig': EVM便携签名;
+- 'iuid':索引节点UID;
+- 'igid':索引节点的GID;
+- 'imode':索引节点模式;
+- 'xattrnames': xattr名称列表(以' ' | ' '分隔),仅当xattr为现在;
+- 'xattrlength ': xattr长度列表(u32),仅当xattr存在时;
+- 'xattrvalues': xattr值的列表;
+
+**下面是定义的模板描述符列表:**
+- “ima”:格式为“d|n”;
+- “ima-ng”(默认):它的格式是“d-ng | n-ng ';
+- “ima-ngv2”:格式为“d-ngv2|n-ng”;
+- “image -sig”:格式为“d-ng|n-ng|sig”;
+- “ima-sigv2”:格式为“d-ngv2|n-ng|sig”;
+- “ima-buf”:格式为“d-ng|n-ng|buf”;
+- “ima-modsig”:格式为“d-ng|n-ng|sig|d-modsig|modsig”;
+- "evm-sig":格式为' ' d-ng|n-ng|evmsig|xattrnames|xattrlength |xattrvalues|iuid|igid|imode ' ';
+## 3.3 IMA使用
+要指定用于生成度量条目的模板描述符,请目前支持以下方法:
+- 从内核支持的模板描述符中选择一个配置(``ima-ng``是默认选择);
+- 指定模板描述符名称从内核命令行通过``ima_template=``参数;
+- 注册一个新的模板描述符与自定义格式通过内核命令行参数``ima_template_fmt=``。
+
+# 四、内核可信密钥与加密密钥支持
+可信密钥和加密密钥是添加到现有内核密钥环服务中的两种新密钥类型。这两种新类型都是可变长度对称密钥,在这两种情况下,所有密钥都是在内核中创建的,用户空间只能看到、存储和加载加密的blob。可信密钥需要可信源的可用性以获得更高的安全性,而加密密钥可以在任何系统上使用。为了方便起见,所有用户级blob都以十六进制ASCII格式显示和加载,并经过完整性验证。
+## 4.1 信任源
+可信源为可信密钥提供安全来源。信任源是否足够安全取决于其实现的强度和正确性,以及特定用例的威胁环境。由于内核不知道环境是什么,也没有信任度量,因此它依赖于可信密钥的使用者来确定信任源是否足够安全。
+内核支持硬件可信根(如TPM/TCM)作为内核可信密钥的可信源。由于TPM/TCM提供的SRK机制确保了根密钥不会离开可信根、且提供芯片级安全保障机制和高安全等级的密钥熵源。
+## 4.2 将密钥使用与平台完整性状态绑定
+基于TPM/TCM提供的密钥服务,密钥可以选择性地密封到指定的PCR值,并且只有在PCR和blob可信验证通过的情况下,TPM才会对密钥进行解封。加载的可信密钥可以使用新的(未来的)PCR值更新,因此密钥很容易迁移到新的PCR值,例如当内核和initramfs更新时。同一个密钥在不同的PCR值下可以保存多个blob,因此很容易支持多个boot。
+## 4.3 接口和API
+内核支持TPM/TCM访问接口和API
+
diff --git a/src/anolisos-remote-attestation.md b/src/anolisos-remote-attestation.md
index 368805e5a26c979735ea832297a6fc653d902a76..49b2137b6fcde6c23e71a695a028758885533d8a 100644
--- a/src/anolisos-remote-attestation.md
+++ b/src/anolisos-remote-attestation.md
@@ -4,7 +4,7 @@ TPM远程证明是一种验证计算机系统软硬件配置正确性的方法
# TPM远程证明的基本流程
-完整的远程认证流程包括两个主要步骤:
+完整的远程证明流程包括两个主要步骤:
1. 服务器验证客户端 TPM 设备。
diff --git a/src/anolisos.md b/src/anolisos.md
index 901937f6e5507b05acaef918824ec0cd244f7dfd..c884173d29765e9a6c4c88a91028c5ef4ea66a9a 100644
--- a/src/anolisos.md
+++ b/src/anolisos.md
@@ -1,9 +1,10 @@
# 一、引言
-龙蜥操作系统以开源社区优秀成果为上游集成了模拟可信根、可信软件、可信根工具集,满足用户对可信计算基础服务的需求。同时,可信计算SIG对可信根增强引擎、远程证明等可信计算基础软件进行了探索分析,形成了龙蜥操作系统可信计算实践指南相关内容。未来,针对可信计算基础软件全展国密支持也将是可信计算SIG的重点工作,本白皮书最佳实践章节呈现了SIG成员单位在全栈国密支持方面的实践成果。
-
+龙蜥操作系统以开源社区优秀成果为上游集成了模拟可信根、可信软件、可信工具集,满足用户对可信计算基础服务的需求。同时,可信计算SIG对可信根增强引擎、远程证明等可信计算基础软件进行了探索分析,形成了龙蜥操作系统可信计算实践指南相关内容。未来,针对可信计算基础软件全展国密支持也将是可信计算SIG的重点工作,本白皮书最佳实践章节呈现了SIG成员单位在全栈国密支持方面的实践成果。
+
# 二、实践指南
## 2.1 [模拟可信根](anolisos-swtpm.md)
-## 2.2 [可信软件栈](anolisos-tss.md)
-## 2.3 [可信根工具集](anolisos-tpm2-tools.md)
-## 2.4 [可信根服务引擎](anolisos-tpm2-tss-engine.md)
-## 2.5 [远程认证](anolisos-attenstation.md)
+## 2.2 [内核可信特性](anolisos-kernel.md)
+## 2.3 [可信软件栈](anolisos-tss.md)
+## 2.4 [可信工具集](anolisos-tpm2-tools.md)
+## 2.5 [可信根服务引擎](anolisos-tpm2-tss-engine.md)
+## 2.6 [远程证明](anolisos-attenstation.md)
diff --git "a/src/images/AnolisOS\345\256\236\350\267\265\346\214\207\345\215\227.png" "b/src/images/AnolisOS\345\256\236\350\267\265\346\214\207\345\215\227.png"
new file mode 100644
index 0000000000000000000000000000000000000000..5db2f34e610edd5a3d4a7f5c4daec0b16c6581fc
Binary files /dev/null and "b/src/images/AnolisOS\345\256\236\350\267\265\346\214\207\345\215\227.png" differ
diff --git "a/src/images/AnolisOS\346\234\200\344\275\263\345\256\236\350\267\265.png" "b/src/images/AnolisOS\346\234\200\344\275\263\345\256\236\350\267\265.png"
new file mode 100644
index 0000000000000000000000000000000000000000..80fca993341e96110c832df342ba8e0dc0c2d1fa
Binary files /dev/null and "b/src/images/AnolisOS\346\234\200\344\275\263\345\256\236\350\267\265.png" differ
diff --git "a/src/images/AnolisOS\350\247\243\345\206\263\346\226\271\346\241\210.png" "b/src/images/AnolisOS\350\247\243\345\206\263\346\226\271\346\241\210.png"
new file mode 100644
index 0000000000000000000000000000000000000000..874ab1c34f58acfc17c863e651dcdfc5bc651494
Binary files /dev/null and "b/src/images/AnolisOS\350\247\243\345\206\263\346\226\271\346\241\210.png" differ
diff --git "a/src/images/\344\277\241\344\273\273\346\240\271.png" "b/src/images/\344\277\241\344\273\273\346\240\271.png"
new file mode 100644
index 0000000000000000000000000000000000000000..9677d4cdcf2168a595d131874cc386cdff250a60
Binary files /dev/null and "b/src/images/\344\277\241\344\273\273\346\240\271.png" differ
diff --git a/src/introduction.md b/src/introduction.md
index 9b6fa997be7fb3a2d8c573aab77ac8af6d716fdc..9389e74c4f2f2d817e038337b271900491dc4e1a 100644
--- a/src/introduction.md
+++ b/src/introduction.md
@@ -7,7 +7,30 @@
国际上已经形成以 Trusted Computing Group(TCG)为代表的可信计算组,并推动 TPM 规范在 PC、服务器、移动终端、网络、云计算、物联网等领域的应用。在服务器及云计算领域,国际 IT 巨头已将可信计算技术作为其产品的重要支撑。Intel服务器 CPU 已经全面支持 TPM2.0;微软 Windows Server 2012 已支持 TPM2.0,并计划发布 Server2016 将支持 vTPM2.0,支持可信云计算环境的构建;Linux Kernel4.0已经集成 TPM2.0,以及主流虚拟化软件 Xen、KVM、Openstack、VMware 等都提供了对 TPM 和 vTPM 的支持;IBM 收购的 Softlayer 公司为全球 60 多个重要客户提供可信云主机服务;同时, 许多芯片公司都将部分可信计算功能集成到商用的处理器中, 如 ARM 公司的 TrustZone 技术、 Intel 公司的 SGX 技术和 AMD 公司的SEV(secure encrypted virtualization)技术等, 都在处理器中实现了内存隔离, 可以为上层应用提供安全的执行环境, 保障敏感程序的安全性, 并被广泛应用在移动手机和云平台中.
鉴于可信计算技术对国家信息安全体系的重要性, 经国家密码管理局批准, 中国于2006年成立了可信计算密码专项组, 并于2008年12月更名为中国可信计算工作组(China TCM Union), 简称TCMU.2007年12月, 国家密码管理局颁布了《可信计算密码支撑平台功能与接口规范》, 将国内使用的可信基础模块定义为TCM(trust cryptography module).相较于TPM, TCM采用了我国《商用密码管理条例》中规定的SM2、SM3等国密算法, 同时引入了对称密钥算法, 简化了TPM中复杂的密钥管理.TCM的证书认证机制采用签名密钥以及加密密钥的双证书机制, 将对称密钥与非对称密钥结合保护系统安全, 在密钥管理体系和基础密码服务体系等方面进行了改进, 提升了系统的安全性. TPM和TCM的构成和功能类似, 提供可信计算平台的信任根(RTS, RTR), 是由CPU、存储器、I/O、密码协处理器、随机数产生器和嵌入式操作系统等部件组成的独立SoC芯片, 具备可信度量的存储、可信度量的报告、密钥产生、加密和签名、数据安全存储等功能.2015年TPM 2.0 library specification(Trusted Platform Module)正式成为国际标准ISO/IEC 11889,吸纳了TCM中相关的安全改进,并首次成体系支持中国密码算法体系,包括SM2/SM3/SM4密码算法。这是中国密码算法技术和标准的又一次重要突破,也是中国信息安全标准在国际标准化工作中的重要进展。ISO/IEC 11889 支持中国商用密码算法体系(SM2/SM3/SM4),使得在数据安全保护上更加牢不可破。
我国学者则从传统计算机体系结构着手,考虑到传统冯诺伊曼架构存在的安全设计缺陷,提出了“在计算运行的同时进行安全防护的信计算模模式,即以密码为基因产生抗体,实施身份识别、状态度量、保密存储等功能,及时识别自己和非自己成份,从而破坏和排斥进入机体的有害物质”即“主动免疫安全可信计算”技术体系(这一体系被学界称为“可信计算3.0”)。主动免疫安全可信计算通过构建“计算+防护”并行双体系结构,实现防护部件并行动态的方式对计算部件运算过错进行可信验证,达到主动免疫防护效果。在并行的双体系结构中,采用了一种安全可信策略管控下的运算和防护并列的主动免疫的新计算体系结构,以可信密码模块(TCM)连接可信平台控制模块(TPCM),组成可信根,由策略产生可信验证规则,由可信软件基根据安全可信策略规则实施身份识别、状态度量、保密存储等功能,及时发现异常并加以处置,从根本上防止(恶意代码)对计算部件(主机)的攻击.该体系的可信验证通过对人的操作访问策略4要素(主体、客体、操作、环境)进行动态可信度量、识别和控制,以达到纠正传统访问控制策略模型局限于授权标识属性进行操作,而不作可信验证、难防篡改的安全缺陷.另外,传统访问控制不考虑环境要素(代码及参数)是否被破坏,难以防止恶意代码攻击,为此必须对环境要素进行可信验证的基础上依据策略规则进行动态访问控制。当前,国内主要以中关村可信计算产业联盟代表推动可信计算3.0技术体系及其生态的繁荣发展,在开源开方方面,北京工业大学推出了一系列的可信计算3.0开源教学实践探索、可信计算产业联盟推出了一系列团体标准,并通过“等级保护2.0与可信计算3.0联合攻关基地”推动相关团体标准的落地实施。
-## (三) 可信计算技术面临的挑战
+## (三) 可信计算关键技术及术语
+### 3.1 信任根
+- **概念**
+信任根是可信计算机系统可信的基础,可信计算平台包含三个信任根:可信度量根(Root of Trust for Measurement, RTM)、可信报告根(Root of Trust for Report, RTR)、可信存储根(Root of Trust for Storage, RTS)。如下图所示:
+
+ 度量存储报告机制是可信计算平台重要工作机制,这一机制是指“对可信计算平台进行度量并将度量产生的可信直进行存储,当访问客体询问时提供可信报告”。这一机制是确保可信计算平台自身可信并向外提供可信服务的基础。RTM是对可信计算平台进行度量的信任基点,它的本质是一段代码;RTS是平台可度量值可信存储的基点,它是由信任根(如TPM/TCM)中的平台状态寄存器(PCR)和信任根中的存储根密钥(SRK)共同构成;RTR是平台向访问客体提供可信报告的信任基点,它是由PCR和信任根中的背书密钥(EK)共同构成。它们共同构成了可信计算平台的信任基础。
+ **信任根的可信性由物理、技术和管理等方面的安全措施共同确保。**
+
+- **常见可信根及其形态**
+目前国内外比较成熟的可信根规范有TPM(可信平台模块)、TCM(可信密码模块)及TPCM(可信平台控制模块)。如下表所示:
+
+|类型|成熟度|标准规范|技术路线|实现形态|
+|---|-----|-------|-------|------|
+|TPM|具备成熟的产业生态和健全开源开放体系|TCG TPM library系列规范,当前主要应用的TPM2.0规范定义的可信根|被动可信:可信根由处理器拉起|- 独立芯片实现,接口主要为SPI或I2C
- 在处理器可信执行环境运行(即fTPM),多见于ARM平台
- 软件模拟(即swtpm),主要用于研究开发与虚拟化场景|
+|TCM|TCM1.0在服务器领域应用较少,开源成果有限,随着TCM2.0规范的发布,与国际可信计算开源生态的融合,未来TCM在服务器领域的应用将丰富起来。|国家密码局牵头发布的系列TCM规范,当前已发布TCM2.0、TCM2.0配套的软件服务模块(TSM)标准正在修订中|被动可信:可信根由处理器拉起|- 独立芯片实现,接口主要为SPI或I2C
- 软件模拟,主要用于研究开发与虚拟化场景
- 处理器内置,提高一个独立的核作为TCM的计算资源
|
+|TPCM|TPCM由国内学者提出,用于实现可信计算3。0平台构建。在特种领域应用成熟、开源生态方面的建设亟待提升|已发布TPCM国家标准及配套的可信软件基(TSB)国家标准|主动可信:可信根优先上电运行且相对独立|- 独立版卡,接口多为PCIe、也有为USB接口
- 软件模拟,主要用于研究开发与虚拟化场景
- 处理器内置,处理器开辟出一个专用的核作为TPCM的计算单元,同时提供专用的计算存储资源|
+
+### 3.2 信任度量模型与信任链
+
+### 3.3 可信计算平台
+### 3.4 可信软件栈
+### 3.5 远程证明
+### 3.6 可信网络连接
+## (四) 可信计算技术面临的挑战
随着移动互联网、量子计算、物联网、云计算、区块链等技术的发展和应用, 可信计算技术也开辟了新的应用场景.
- 在移动可信计算方面, 设计具有更小可信计算基 (trusted computing base, TCB) 的移动可信体系架构, 以及实现内核运行时和移动应用的安全防护是重要的研究问题.
- 随着量子计算的发展, 设计高效的抗量子密码算法和协议是一个亟需解决的科学问题; 更进一步, 需要设计具有抗量子能力的 TPM/TCM, 并且构建抗量子可信计算技术体系.
diff --git a/src/practices-hygon.md b/src/practices-hygon.md
index 5a6e80b538631a4a7d566f54cb59b38bd27b6ef5..a94f7f99be9de6e273ec9f465c55a671f537c511 100644
--- a/src/practices-hygon.md
+++ b/src/practices-hygon.md
@@ -817,7 +817,7 @@ $ sudo rmmod tdm-verify.ko
## 3.10. TDM VPCR获取与审计重放VPCR值验证流程(1.3固件版本后支持)
-该场景演示了获取VPCR值以及VPCR审计信息的原始TDM度量值与fTPM原始PCR值获取,以及根据审计信息重放VPCR值的验证流程。通过该场景,可以熟悉并验证VPCR机制的应用,理解TDM利用fTPM的PCR实现VPCR从而利用fTPM成熟的PCR远程认证的过程。hag工具提供了VPCR审计信息获取的具体流程以及使用根据审计信息重放VPCR值的过程,用户可以通过使用hag来熟悉TDM基于VPCR的使用与审计信息接口的使用。
+该场景演示了获取VPCR值以及VPCR审计信息的原始TDM度量值与fTPM原始PCR值获取,以及根据审计信息重放VPCR值的验证流程。通过该场景,可以熟悉并验证VPCR机制的应用,理解TDM利用fTPM的PCR实现VPCR从而利用fTPM成熟的PCR远程证明的过程。hag工具提供了VPCR审计信息获取的具体流程以及使用根据审计信息重放VPCR值的过程,用户可以通过使用hag来熟悉TDM基于VPCR的使用与审计信息接口的使用。
基本验证流程如下:
diff --git a/src/practices-shangmi_trusted_computing.md b/src/practices-shangmi_trusted_computing.md
index 21b4f46ef6b5d35424c3a051baddf0c409c70afd..fc20e72a3f967164951a961ed04bbab52148dfbe 100644
--- a/src/practices-shangmi_trusted_computing.md
+++ b/src/practices-shangmi_trusted_computing.md
@@ -103,7 +103,7 @@ Please Input the Corresponding Operations.
远程证明是可信计算中实现节点可信认证的关键设施,是实现可信节点之间可信互联的依据。KOS(Anolis 衍生发行版)在`RSA + SHA256 + AES` 和 `ECDSA + SHA256 + AES` 的基础上拓展支持了基于 TPM 2.0 国密的远程证明特性。
-1. 在 KOS 部署可信代理端之后、配置后可在可信管理端识别到响应的节点、之后通过可信管理端可以部署相应节点的国密远程认证证书(Attestation Certification)。
+1. 在 KOS 部署可信代理端之后、配置后可在可信管理端识别到响应的节点、之后通过可信管理端可以部署相应节点的国密远程证明证书(Attestation Certification)。
2. 部署可信证书后、节点即可以用远程证明的方式向可信管理端发送报告进行可信证明。
diff --git a/src/practices.md b/src/practices.md
index 574e7e6b37322f1ed35359f5c57ffea967eba07f..e6545555b6e81199896fb555b77dcefc0ecc77bc 100644
--- a/src/practices.md
+++ b/src/practices.md
@@ -1,6 +1,8 @@
# 一、引言
-如图所示,可信计算技术作为一种系统级安全增强技术,例如系统可信验证(动态、静态)、系统全盘加密增强、轻量级可信集群构建等,应用得当可以极大的提升操作系统安全能力、这些能力的应用也是可信计算SIG探索可信计算最佳实践的重要方向。本节主要主要选编了基于海光平台内置可信根服务的可信计算最佳实践,基于keylime的轻量级可信集群构建实践探索、基于可信根的全盘加密安全增强最佳实践等内容。在解决方案方面,近年来随着关键信息基础设施建设及合规要求的发展与演变,可信计算面临的场景与挑战也截然不同,面向边缘场景的轻量远程证明要求、面向混合云场景的数据安全要求、面向公有云场景的信任优先要求、面向合规建设场景的可信验证及可信计算3.0要求等;本节节选了可信计算3.0解决方案、基于机密计算的虚拟可信根解决方案等内容。未来,可信计算SIG将挑选痛点场景的痛点需求重点开展相关解决方案的挖掘与探索工作。
-
+如图所示,可信计算技术作为一种系统级安全增强技术,例如系统可信验证(动态、静态)、系统全盘加密增强、轻量级可信集群构建等,应用得当可以极大的提升操作系统安全能力、这些能力的应用也是可信计算SIG探索可信计算最佳实践的重要方向。本节主要主要选编了基于海光平台内置可信根服务的可信计算最佳实践,基于keylime的轻量级可信集群构建实践探索、基于可信根的全盘加密安全增强最佳实践等内容。
+
+在解决方案方面,近年来随着关键信息基础设施建设及合规要求的发展与演变,可信计算面临的场景与挑战也截然不同,面向边缘场景的轻量远程证明要求、面向混合云场景的数据安全要求、面向公有云场景的信任优先要求、面向合规建设场景的可信验证及可信计算3.0要求等;本节节选了可信计算3.0解决方案、基于机密计算的虚拟可信根解决方案等内容。未来,可信计算SIG将挑选痛点场景的痛点需求重点开展相关解决方案的挖掘与探索工作。
+
# 二、最佳实践
## 2.1 [飞腾平台可信计算最佳实践](practices-phytium.md)
## 2.2 [海光平台可信计算最佳实践](practices-hygon.md)
diff --git a/src/standard-china.md b/src/standard-china.md
index a78eae26c21deac1b67eada611da7731480ed536..719e3d0fea775af83ed20cc5b58f58e65fe5c8a2 100644
--- a/src/standard-china.md
+++ b/src/standard-china.md
@@ -1,4 +1,4 @@
-# 一、中国标准
+# 一、国内可信计算标准
当前国内可信计算标准已构建了密码为基础、芯片为支柱、主板为平台,软件为核心,网络为纽带、应用成体系的可信计算标准化体系。为落实《网络安全法》,支持《网络安全等级保护条例》、《关键信息基础设施条例》执法,促进“网络安全等级保护”系列标准的实施提供了重要依据和支撑。

## 1.1 国家标准化委员会发布
@@ -26,7 +26,7 @@
|GM/T 0011-2012| 可信计算 可信密码支撑平台功能与接口规范|密码行业标准化技术委员会|描述可信计算密码支撑平台功能原理与要求,并详细定义了可信计算密码支撑平台的密码算法、密钥管理、证书管理、密码协议、密码服务等应用接口规范。该标准在2012年发布,2013年升级成国标(GB/T 29829-2013)。目前该标准在修订中,修订后的标准与GM/T 0012-202兼容|
|GM/T 0012-2020| 可信计算 可信密码模块接口规范 |密码行业标准化技术委员会|该标准描述了可信密码模块的功能,详细定义了可信密码模块的命令接口。该标准替代GM/T 0012-2012|
|GM/T 0013-2021| 可信计算 可信密码模块接口符合性测试规范|密码行业标准化技术委员会|该标准以《可信计算 可信密码支撑平台接口规范》(GM/T 0011-2012)为基础,规范了可信密码模块的接口命令测试向量、测试方法与测试脚本。该标准在修订中,修订后会兼容最新的GM/T 0011。|
-|GM/T 0058-2018| 可信计算 TCM服务模块接口规范 |密码行业标准化技术委员会|该标准规定了TCM服务模块的组成和接口标准,包含TSP、TCS和TDDL,是面向TCM应用层的接口标准。该标准在修订中,修订后兼容GM/T 0012-202|
+|GM/T 0058-2018| 可信计算 TCM服务模块接口规范 |密码行业标准化技术委员会|该标准规定了TCM服务模块的组成和接口标准,包含TSP、TCS和TDDL,是面向TCM应用层的接口标准。**该标准目前正在修订中,修订后兼容GM/T 0012-2020,修订牵头单位为SIG成员国民技术股份有限公司**|
|GM/T 0079-2020| 可信计算平台直接匿名证明规范 |密码行业标准化技术委员会|该标准规定了可信计算平台的直接匿名证明协议的功能、接口和数据结构。该标准为第一次发布。 |
|GM/T 0082-2020| 可信密码模块保护轮廓 |密码行业标准化技术委员会|该标准以GB/T 29829和GB/T 18336为基础,构建可信密码模块的保护轮廓,对符合评估保障级第3级的TOE的定义、安全环境、安全目的、安全要求等进行了详细的说明,并给出相应的基本原理说明|
- 目前可信计算标准已由TCM 1.0全面向TCM 2.0演进,密标委组织制定了支撑可信计算密码应用的机制、协议,接口的相关标准。我国SM2密码算法的密钥生成、SM2密码算法签名/验签,SM2密码算法密钥交换,SM3密码算法,SM4密码算法应用等已经被纳入ISO/IEC 11889国际可信计算标准。
@@ -41,7 +41,16 @@
- 可信密码模块认证:为了适应TCM标准规范由1.0向2.0升级,2022年7月在由市场监管总局、国家密码管理局发布的《商用密码产品认证目录(第二批)》中,新增了可信密码模块产品认证种类,其依据《GM/T 0028 密码模块安全技术要求》和《GM/T 0012-2020 可信计算密码模块接口规范》进行认证,即所谓TCM 2.0认证。TCM2.0协议依据GM/T 0012-2020测试,GM/T 0012-2020中规定,TCM 2.0协议是TPM 2.0协议的一个子集。GM/T 0028则分为安全等级1-4级进行认证。
- 可信计算密码支撑平台认证:在《商用密码产品认证目录(第一批)》中,有《可信计算密码支撑平台》产品认证类别,依据GM/T 0011/0012/0058/0028进行认证。GM/T 0028分为1-4安全等级进行认证。
- 安全芯片认证:单颗芯片实现的TCM可信密码模块属于密码安全芯片类,在《商用密码产品认证目录(第一批)》中,安全芯片依据《GM/T 0008-2012 安全芯片密码检测准则》来检测,分为1-4安全等级进行认证。
-## 1.3 国内行业与团体发布
+## 1.4 可信计算产品认证
+由中关村可信计算产业联盟和公安部第三研究所联合开展的可信计算产品联合认证,认证范围包括如下产品种类:
+
+|产品种类|认证依据|
+|-------|-------|
+|可信服务器|T/ZTCIA 001-2022 可信计算产品规范|
+|可信网络安全产品|T/ZTCIA 002-2022 可信计算 网络安全产品安全可信要求|
+|办公设备产品|T/ZTCIA 003-2022 可信计算 办公设备产品技术规范|
+
+## 1.5 国内行业与团体发布
| 标准编号 | 标准名称 | 归口单位 | 标准概述 |
|---------|--------|---------|----------------------------|
|GA/T 2001-2022| 移动警务 可信计算总体技术要求|公安部计算机与信息处理标准化技术委员会|该标准规定了移动警务可信计算总体架构、技术要求和密码使用要求。|
diff --git a/src/standard-international.md b/src/standard-international.md
index 39242432df1f47569da671097b561cf37716b6fe..1a47794f7f41bd042e9bb33731c6ec7305f45bc8 100644
--- a/src/standard-international.md
+++ b/src/standard-international.md
@@ -1,4 +1,4 @@
-# 一、国际标准
+# 一、国际可信计算标准
## 1.1 ISO发布
### 1.1.1 ISO简介
ISO(国际标准化组织)和IEC(国际电工委员会)组成了专门的全球标准化体系。作为ISO或IEC成员的国家机构通过各自组织建立的技术委员会参与国际标准的制定,以处理特定领域的技术活动。ISO和IEC技术委员会在共同感兴趣的领域进行合作。与ISO和IEC保持联系的其他政府和非政府国际组织也参加了这项工作。在信息技术领域,ISO和IEC成立了一个联合技术委员会ISO/IEC JTC 1。国际标准是根据ISO/IEC指令第2部分中给出的规则起草的。联合技术委员会的主要任务是制定国际标准。联合技术委员会通过的国际标准草案分发给国家机构表决。作为国际标准出版需要至少75%的国家机构投票通过。
@@ -7,7 +7,6 @@ TPM2.0库规范系列标准以ISO/IEC 11889:2015发布。该规范由可信计
在最终的TPM 2.0标准化投票中,来自发达经济体和新兴经济体的支持,赞成票来自澳大利亚、比利时、加拿大、中国、捷克、丹麦、芬兰、法国、加纳、爱尔兰、意大利、日本、韩国、黎巴嫩、马来西亚、荷兰、尼日利亚、挪威、俄罗斯联邦、南非、阿拉伯联合酋长国、英国和美国。
TPM 2.0库规范支持现代安全和隐私保护,该规范整合了基于硬件和基于软件的安全技术的优势。它在计算设备中的实现保护了加密密钥;防止私钥被导出;屏蔽用于身份验证的PIN值;并记录和匿名报告在启动过程中加载的软件,以防止恶意软件和攻击。因此,它将成为任何综合安全战略的重要组成部分。

-__说明:附图源自ISO官网__
**ISO/IEC 11889系列标准**
@@ -37,9 +36,11 @@ TPM2.0库标准是TPM2.0中基础规范,该规范描述了TPM2.0实现的所
### 1.1.3 TPM Software Stack(TSS)标准
TSS (TCG Software Stack)是一种软件规范,提供了访问TPM功能的标准API,TSS由多层组成,允许对可扩展的TSS实现进行定制,以适应高端系统和资源受限的低端系统(如下图所示)。TSS也设计了应用程序提供与本地或远程TPM通信的接口方法。

+
__说明:附图源自TCG官网__
TSS2各组成部分所需资源如下图所示:

+
__说明:附图源自TCG官网__
应用程序开发人员可以参考该规范开发可互操作的客户端应用程序,以实现对可信计算能力的调用。TSS的另一个作用是将程序程序员与与TPM接口的底层细节隔离开来、降低TPM应用开发的学习成本。
- [TSS规范官网入口](https://trustedcomputinggroup.org/resource/tcg-software-stack-tss-specification/)
@@ -48,6 +49,7 @@ PC Client系列规范主要定义了TCG技术在计算机(例如笔记本电脑
PC Client TPM Platform标准及配套文档体系:

+
__说明:附图源自TCG官网__
**缩略语**
@@ -59,6 +61,7 @@ PC Client TPM Platform标准及配套文档体系:
PC Client Firmware标准及配套文档体系:

+
__说明:附图源自TCG官网__
**缩略语**
@@ -83,7 +86,7 @@ PC Client Firmware标准及配套文档体系:
存储工作组以现有的TCG技术和理念为基础,重点关注专用存储系统上的安全服务标准。其中一个目标是开发标准和实践,用于跨专用存储控制器接口定义相同的安全服务,包括但不限于ATA、串行ATA、SCSI、FibreChannel、USB存储、IEEE 1394、网络附加存储(TCP/IP)、NVM Express和iSCSI。存储系统包括磁盘驱动器、可移动媒体驱动器、闪存和多个存储设备系统。
存储标准体系:

-__说明:附图源自TCG官网__
+
### 1.1.6 TNC(可信网络通信)
TCG的可信网络通信(TNC-Trusted Network Communications)工作组定义并发布了一个开放架构和一套不断增长的网络安全标准,在跨各种端点、网络技术和策略的多供应商环境中提供可互操作的端到端信任。TNC支持在不同的网络和安全系统之间进行端点遵从性评估、智能策略决策、动态安全实施和安全自动化。
- 标准编制
@@ -118,7 +121,7 @@ TNC工作组已经定义并发布了一个开放架构和一套不断增长的
|IF-PTS – Platform Trust Services Interface|Verification Result Schema|
- 应用场景
-TNC不同场景下的安全需求提供了可互操作的标准,TNC标准确保跨各种端点、网络技术和策略的多供应商互操作性:
+TNC不同场景下的安全需求提供了可互操作的标准,TNC标准确保跨各种端点、网络技术和策略的多供应商互操作性:
|需求场景|要求|解决的问题|
|-------|--------|----|
diff --git a/src/trustedcomputingSig.md b/src/trustedcomputingSig.md
index 2b2b871684544d2f3c7ca4d2dd51d5ff044d4e44..e701cbd22ec0ad83f5e7354d9b62ac5cc4d86f7e 100644
--- a/src/trustedcomputingSig.md
+++ b/src/trustedcomputingSig.md
@@ -12,7 +12,7 @@
- 客户不知道如何使用可信根提供的安全能力服务
- 作为可信计算技术落地应用的核心,远程证明server侧没有现成可用开源参考实践,TPM虽然在Windows中非常成熟,但是在 LinuxOS用户有感知地透传,应用可信计算技术目前比较有限;
- 缺乏面向基础设施的通用可信计算特性使能开源参考实现;
- 为夯实关键信息基础设施主动安全纵深防御能力,促进可信计算技术开源开放生态繁荣发展,可信计算SIG由此成立。
+ 为夯实关键信息基础设施主动安全纵深防御能力,促进可信计算技术开源开放生态繁荣发展,可信计算SIG由此成立。后续,SIG将依托浪潮信息龙蜥社区联合实验室丰富多样的服务器可信计算平台设备环境,联合SIG成员伙伴共同推动可信计算实践及解决方案探索,输出易用好用的可信计算解决方案及配套成果,繁荣国内可信计算开源开放生态。
# SIG 愿景
1. 立足龙蜥社区国内OS根社区定位,将龙蜥社区可信计算SIG打造为国内可信计算技术开源开放的总入口;
2. 依托社区及SIG成员单位、携手挖掘易用实用的可信计算技术落地方案、让用户清晰感知可信计算价值、让用户轻松使用可信计算技术实现安全目标;