
@@ -11,7 +10,9 @@
* 生态认证中心:主要开展龙蜥及龙蜥衍生版硬件兼容性认证、适配认证体系建立等工作,不断完善操作系统生态体系。
* 联合创新中心:主要面向智慧计算、云原生、系统安全等领域开展技术创新,联合生态伙伴进行课题研究与技术攻关,打造创新、开放、共享的实验室环境,持续推动技术创新发展。
---
+
> 🟢 **实验室设施及业务概况**
+
* 物理设施:覆盖Intel、AMD、海光、飞腾、安培等架构的100+服务器
* 支撑业务:T-One、测试执行
* Anolis服务器整机兼容性适配
@@ -21,7 +22,9 @@
* 系统安全联合研究及实践探索
* 参与厂商:社区理事单位、社区及KOS生态厂商
---
+
> 🟢 **实验室建设**
+
* 商业:商业衍生版发布、案例共建;人才与市场共建
* 技术:SIG贡献(Serverless SIG、可信计算SIG)、技术贡献(特性、补丁、实践探索等)
* 产品生态:产品认证、生态服务、运营支持
diff --git a/src/openanolis.md b/src/openanolis.md
index 9b21afecc5147dd1d7af30a460244a80eb1610f2..8933ee80bc69dd4accf8985e26321eed75df8b44 100644
--- a/src/openanolis.md
+++ b/src/openanolis.md
@@ -6,7 +6,7 @@
> 🟢 **认识龙蜥**
-[龙蜥社区( OpenAnolis )](https://openanolis.cn/)成立于 2020 年 9 月,由阿里云、ARM、统信软件、龙芯、飞腾、中科方德、Intel 等 24 家国内外头部企业共同成立龙蜥社区理事会,到目前有超过 300 家合作伙伴参与共建,是国内领先的操作系统开源社区之一,具备较为领先的产业和技术影响力。目前,龙蜥操作系统下载量已超240万,整体装机量达300多万,100余款企业产品完成与龙蜥操作系统的适配。同时,浪潮信息、统信软件、中科方德、中国移动云、麒麟软件、中标软件、凝思软件、新支点、阿里云基于龙蜥开源操作系统推出各自商业版本及产品,在政务、金融、交通、通信等领域累计服务用户超过30万。
+2020 年 9 月,依托多家头部厂商的多年技术沉淀,阿里云联合统信软件、Intel、Arm、龙芯中科、三大运营商等多家操作系统厂商、芯片公司、云计算公司共同发起[龙蜥操作系统开源社区-OpenAnolis](https://openanolis.cn/),立足云计算打造数字创新基石。作为面向国际的 Linux 服务器操作系统开源根社区及创新平台,龙蜥社区持续推动软、硬件及应用生态繁荣发展,到目前有超过 600 家合作伙伴参与共建。目前,龙蜥操作系统下载量已超240万,整体装机量达500多万,100余款企业产品完成与龙蜥操作系统的适配。同时,浪潮信息、统信软件、中科方德、中国移动云、麒麟软件、中标软件、凝思软件、新支点、阿里云等12家企业基于龙蜥开源操作系统推出各自商业版本及产品,在政务、金融、交通、通信等领域累计服务用户超过30万。
---
diff --git a/src/practices-Confidential_vtpm.md b/src/practices-Confidential_vtpm.md
index 9799f5005ff4344637beb5c7a3515067b6b4c11c..42dc07bbf48ff866e4c7beb052144591eb472a0d 100644
--- a/src/practices-Confidential_vtpm.md
+++ b/src/practices-Confidential_vtpm.md
@@ -1,4 +1,5 @@
-# 背景
+# 基于机密计算的虚拟可信根解决方案
+## 背景
目前,有四种类型的TPM广受欢迎,包括独立型(DISCRETE) TPM、集成型(INTEGRATED) TPM、固件(FIRMWARE)TPM和软件(SOFTWARE) TPM。它们在成本、功能和安全性之间提供了不同的权衡。在虚拟化场景或云计算中,软件TPM更受偏爱,因为它具有更好的灵活性和易用性、成本效益以及测试和原型设计等方面的优势。然而,软件TPM可能更容易受到软件错误和攻击的影响,因此需要更多的组件来保持安全,包括TEE操作系统和运行在TEE中的应用程序代码。
许多云安全产品中的软件TPM解决方案可以为Guest提供可信计算的功能。这些方案基于硬件和虚拟信任根,在服务器硬件可信的基础上,将信任链从Host延伸到Guest,构建了安全体系。然而,这些虚拟TPM方案在敏感数据安全方面无法满足租户的要求。因为TPM命令请求和响应的内容在链路传输中以明文形式传递,并且敏感操作结果保存在Host侧的软件TPM后端服务实例中,这导致租户保存在软件TPM的敏感数据容易受到攻击和泄露,无法保证数据的机密性。
@@ -7,9 +8,9 @@
项目地址:https://github.com/inclavare-containers/confidential-vtpm
-# 可信计算与机密计算
+## 可信计算与机密计算
-## 区别与联系
+### 区别与联系
可信计算和机密计算(TEE)是两种不同的安全技术,但它们之间存在一定的关系。
可信计算旨在确保计算过程的完整性和可信度。它通过硬件保护和隔离机制,如可信平台模块(TPM)、安全处理器等,保护计算过程中的敏感信息和代码免受恶意攻击和篡改。可信计算通常用于保护整个计算平台的完整性和安全性。
@@ -21,7 +22,7 @@ TEE和TPM在度量和认证方面有相似之处,但它们之间最大的区
基于TPM的可信系统需要在软硬件上增加很多额外的防护机制以实现纵深防御,增加攻击者渗透Host的难度,同时通过在运维层面增加很多安全流程尽可能防止内鬼。而TEE则是在这些防护和流程被攻破或绕过时,建立安全假设的。因此,如果用户不需要如此高的安全水平,不担心来自Host的安全威胁,那就不必使用机密计算TEE技术。
总体来说,TEE技术提供了与基于TPM的可信系统相比更高级别的安全保护。虽然这种技术的实现方式不同,但其价值在于保护敏感数据和代码免受攻击者的获取和篡改。因此,在选择何种技术时,需要根据实际需求和安全风险进行综合考虑。
-## 相互结合
+### 相互结合
机密计算(TEE)技术的出现为应对当前日益增长的安全问题提供了一种全新的解决方案,然而,它并不能完全取代TPM技术。这是因为TEE技术具有以下三个限制:
1. TEE技术一般度量的寄存器并不多,不能提供细粒度的度量。相比之下,TPM技术可以提供更加精细的度量记录,以便进行更为细致的验证和认证。
@@ -30,7 +31,7 @@ TEE和TPM在度量和认证方面有相似之处,但它们之间最大的区
为了能够更好地将可信计算技术与机密计算技术相结合使用,建议在TEE中使用可信计算技术,在可信主机执行环境中使用机密计算技术。通过Confidential vTPM项目,可以为租户提供安全等级更高的云主机环境。这种结合使用可信计算技术和机密计算技术的方案,可以在保护计算过程的同时,保护租户的敏感数据和机密计算任务的安全性。
-# 架构
+## 架构
Confidential vTPM的解决方案由四个部分组成:前端、后端、认证服务和可信CA。前端是一个认证服务和可信CA是运营商或用户部署的第三方可信服务,用于提供数字身份验证和认证,确保用户身份的真实性和数据的机密性。
@@ -47,7 +48,7 @@ TPM attestation服务和可信CA是可以由运营商或用户部署的第三方
* 通过重新设计一套认证注册流程,该流程不仅验证了平台是否受到 TPM 的保护,还验证了平台是否运行在 TEE 环境中。通过这个流程,可以为实现多平台 TEE 的机密互联打下了坚实的基础,提供了更高的安全性和可信度。
-# 安全特性
+## 安全特性
* 使用[Enclave-CC](https://github.com/confidential-containers/enclave-cc)部署swtpm后端,实现高效、安全和可扩展的大规模部署。Enclave-CC具有K8s无缝对接能力和硬件安全扩展功能,可轻松管理敏感工作负载,并为用户提供与普通容器相媲美的使用体验。
* 采用可信任的安全数据存储方案,将swtpm的非易失存储内容妥善存储在一个经过严格验证的可信任数据库中。只有在可靠的信道下,才会从数据库中读取这些宝贵数据信息,以确保数据的安全性和完整性。
diff --git a/src/practices-hygon.md b/src/practices-hygon.md
index 0535afc86ae6ce5b4f8f1d3fe744f1fd227fd80d..9bff688f6f27aec185a211785af82ae65cba7f74 100644
--- a/src/practices-hygon.md
+++ b/src/practices-hygon.md
@@ -1,40 +1,41 @@
-# 1. 可信计算整体架构
-## 1.1. 概述
+# 海光平台可信计算最佳实践
+## 1. 可信计算整体架构
+### 1.1. 概述
图 1 可信计算架构

CPU利用内置安全处理器对可信计算做了相关支持与拓展,在CPU内部实现了TPM2.0模块(Trusted Platform Module,国际标准)、TCM2.0模块(Trusted Crypto Module,中国传统标准)、TPCM模块(Trusted Platform Control Module,中国新兴标准)、TDM模块(Trusted Dynamic Measuring, 私有)及TSB模块(Trusted Secure Boot,私有)五大可信功能模块。利用上述功能模块可以实现可信计算的核心功能,如可信启动、动态度量、可信存储、可信报告等。
-## 1.2. 可信计算支持
-### 1.2.1. TPM2.0
+### 1.2. 可信计算支持
+#### 1.2.1. TPM2.0
基于安全处理器以固件的形式实现了TPM2.0设备,命令接口符合TPM2.0规范。同时,利用内置的密码运算硬件加速引擎CCP实现所有密码运算相关操作,克服传统固件实现TPM的不足,提高了系统性能,硬件加速引擎全面支持商密标准。
-### 1.2.2. TCM2.0
+#### 1.2.2. TCM2.0
TCM是国内传统的可信计算标准,有着广泛的应用。2020年国密局升级了TCM标准,推出了TCM2.0规范《GM/T 0012-2020 可信计算 可信密码模块接口规范》。TCM2.0功能与接口的定义基于TPM2.0,与TPM2.0具有较强的兼容性,TCM2.0只支持商密标准。与TPM2.0一样,TCM2.0基于CPU安全处理器以固件的形式实现,固件以BIOS PI的形式发布给OEM厂商,因此使用TCM2.0需与OEM厂商确认BIOS已使能该功能支持。
-### 1.2.3. TPCM
+#### 1.2.3. TPCM
TPCM(Trusted Platform Control Module)是国内新兴的可信计算技术,是中国可信计算3.0的底层芯片标准,实现可信计算的信任根,由中关村可信计算联盟制定。和TPM/TCM相比,TPCM增加了对系统主动监视和控制的功能,可以实现系统启动时的主动启动度量,及程序运行时的动态度量和监控,进一步增强系统的安全性。
-### 1.2.4. TDM
+#### 1.2.4. TDM
TDM(Trusted Dynamic Measurement)为基于安全处理器实现的轻量级动态度量,是特有功能。通过TDM可以实现对设定内存目标进行持续的周期性度量,及时发现程序异常,保护程序运行时安全;同时TDM通过独有的双重授权保护方式确保非授权用户无法篡改TDM内的度量任务设定,极大的增强了模块的安全性。
-### 1.2.5. TSB
+#### 1.2.5. TSB
平台固件BIOS的完整性验证是启动信任链可信的关键和基础,传统的CPU由于缺少专门硬件支持无法验证BIOS的完整性。TSB(Trusted Secure Boot)是除了上述TPCM/TPM/TCM之外另一个独立的由CPU硬件验证平台固件BIOS完整性的功能,验证基于数字签名。CPU上电或重启时,TSB首先验证颁发的OEM公钥证书,再用OEM公钥证书中的公钥验证BIOS固件的OEM签名,验证通过后才运行BIOS固件,从而保证BIOS固件的安全以及后续整个启动信任链的源头安全。
-# 2. 软件编译说明
-## 2.1. 安装说明
+## 2. 软件编译说明
+### 2.1. 安装说明
(1)安装OS为Anolis系列镜像时,功能测试不需要额外安装软件包,可跳过软件编译说明部分直接进行功能测试即可;
(2)安装OS镜像为开源版本时,功能测试需要另外安装测试软件包或模块,具体安装说明如下。
-## 2.2. tpm2
+### 2.2. tpm2
**tpm2功能测试需要安装相应软件栈,安装包(RPM)的生成及安装脚本已上传龙蜥社区开源仓库,使用如下:**
@@ -47,7 +48,7 @@ $ ./install.sh
注:tpm2功能测试还需要安装grub,具体安装步骤请参考本页面grub安装相关说明。
-## 2.3. tdm
+### 2.3. tdm
**tdm驱动已集成到Anolis OS 5.10内核。测试TDM功能时还需要相应的测试module,已上传龙蜥社区仓库,安装步骤如下:**
```
@@ -57,7 +58,7 @@ $ make LOCAL_KERDIR=/lib/modules/`uname -r`/build
```
编译通过后可在当前目录下生成tdm-verify.ko,将该测试module拷贝至测试目录下,再按照下文TDM功能测试文档的步骤测试即可。
-## 2.4. grub
+### 2.4. grub
完整的可信启动信任链包含grub度量OS内核,支持tpm2的grub版本需2.04或以上,同时需将grub tpm模块安装进grub内核。以Anolis OS 8.8为例:
@@ -102,8 +103,8 @@ $ sudo /usr/local/sbin/grub-mkconfig -o /boot/efi/boot/grub/grub.cfg
- bootstrap在发布版Grub里可能没有,没有则不需要运行;
- 拷贝/etc/default/grub配置文件到/usr/local/etc/default目录时,如果本地不存在该目录,请创建;
-# 3. TPM2.0功能测试
-## 3.1. 概述
+## 3. TPM2.0功能测试
+### 3.1. 概述
该章节演示了在一台安装Anolis OS的服务器上测试TPM2.0功能的完整步骤。演示的主要TPM应用包括:BIOS/GRUB/Linux启动度量,商密测试。
@@ -127,7 +128,7 @@ $ sudo /usr/local/sbin/grub-mkconfig -o /boot/efi/boot/grub/grub.cfg
本次测试安装的ISO镜像名称为AnolisOS-8.8-x86_64-dvd.iso ,具体名称请以发布为准。
-## 3.2. BIOS安装及TPM设置
+### 3.2. BIOS安装及TPM设置
进入BIOS设置,在TCG Trusted Computing选项下关于TPM的默认设置如下图1所示,度量使用SM3算法,三个Hierarchy(Platform, Storage, Endorsement)全部使能,如果没特殊需求,使用默认设置即可。
BIOS中开启TPM的设置在不同的BIOS下可能会有差异,具体请咨询相应的BIOS厂商。以下设置仅供参考:
@@ -136,13 +137,13 @@ BIOS中开启TPM的设置在不同的BIOS下可能会有差异,具体请咨询

-## 3.3. 依赖软件包
+### 3.3. 依赖软件包
tpm2.0依赖的软件栈或者安装包等都已经集成进ISO,如果当前环境缺少对应安装包,可直接使用yum安装。
需要注意的是tpm驱动默认以ko模块的方式集成到kernel中,如果需要测试IMA功能,则需要将TPM驱动编译进内核,不能以模块的方式加载。如果不需要使用IMA则可以忽略。
-## 3.4. 配置
+### 3.4. 配置
安装相应安装包后,在测试tpm2功能之前,需要设置如下配置并启动tpm2-abrmd服务:
```
@@ -157,7 +158,7 @@ $ sudo service tpm2-abrmd start
$ systemctl status tpm2-abrmd.service
```
-## 3.5. BIOS/Grub/Linux内核启动度量
+### 3.5. BIOS/Grub/Linux内核启动度量
启动度量对TPM PCR的使用情况如表2:
@@ -195,12 +196,12 @@ sm3_256:
11: 0x0000000000000000000000000000000000000000000000000000000000000000
```
-## 3.6. 商密支持的测试
-### 3.6.1. 商密测试脚本
+### 3.6. 商密支持的测试
+#### 3.6.1. 商密测试脚本
包含商密测试的脚本已入库龙蜥仓库,具体见tpm2-tools仓库a8分支,patch名称:0001-add-gm-test-case-for-all-commands.patch
-### 3.6.2. 运行测试
+#### 3.6.2. 运行测试
命令正确执行的结果如下:
```
@@ -221,13 +222,13 @@ Tests passed: 12
Tests Failed: 0
```
-### 3.6.3. 测试脚本说明
+#### 3.6.3. 测试脚本说明
- 每个以test开头的脚本是测试TPM的一类脚本,比如测试TPM policy相关命令的脚本名字为test_tpm2_policy.sh
- 脚本中测试命令都是测试商密的命令,TPM算法解析是object:scheme:symdetail 格式的字符串,比如tpm2_createprimary -C o -g sm3_256 -G eccsm2:null:sm4128cfb -c /tmp/context,字符串eccsm2:null:sm4128cfb就是在上面格式的基础上添加商密相关的字符串sm2,sm4128cfb以支持商密。在某些命令中需要增加额外的参数支持商密选择,同时保持兼容以前的密码算法,具体命令可参考脚本中tpm2_certify,tpm2_createak,tpm2_createek,tpm2_createprimary,tpm2_loadexternal,tpm2_nvdefine,tpm2_quote,tpm2_startauthsession的使用。
-# 4. TDM功能测试
-## 4.1. 概述
+## 4. TDM功能测试
+### 4.1. 概述
如下章节演示了在一台安装Anolis OS的服务器上使用TDM功能的步骤,演示的主要TDM应用包括:TDM动态保护任务创建运行销毁流程,TDM动态保护任务更新操作流程,TDM动态保护防字典攻击流程,TDM基于虚拟地址创建运行销毁度量任务流程,TDM度量任务异常触发机器挂机流程,TDM证书获取与证书链验证流程,TDM度量报告获取与验证流程,TDM VPCR获取与重放VPCR值验证流程。
@@ -247,8 +248,8 @@ Tests Failed: 0
本次测试安装的ISO镜像名称为AnolisOS-8.8-x86_64-dvd.iso ,具体名称请以发布为准。
-## 4.2. TDM测试环境配置
-### 4.2.1. TDM驱动加载
+### 4.2. TDM测试环境配置
+#### 4.2.1. TDM驱动加载
ISO镜像中的内核已包含TDM驱动,机器启动完成后dmesg输出下面log则表示TDM驱动已正常加载。
```
@@ -256,7 +257,7 @@ tdm: Thread started for measurement exception handler dispatching...
tdm: TDM driver loaded successfully!
```
-### 4.2.2. 使用hag查看TDM设备信息
+#### 4.2.2. 使用hag查看TDM设备信息
注:
- hag工具可在龙蜥社区获取,hygon-devkit仓库bin目录下;
@@ -277,11 +278,11 @@ show_tdm_device command success!
[tdm] Command successful!
```
-### 4.2.3. tpm2_tools配置
+#### 4.2.3. tpm2_tools配置
Tpm2_tools工具主要用来读取PCR的值,VPCR需要使用到fTPM,tpm2_tools工具已默认集成到ISO镜像,不需额外配置。
-## 4.3. TDM动态保护任务创建运行销毁流程
+### 4.3. TDM动态保护任务创建运行销毁流程
该场景主要测试《PSP动态度量接口规范》中的第七部分“度量任务创建及运行”,实现了度量任务的创建、注册异常回调、启动度量、停止度量、销毁度量任务的完成过程,在验证各个命令正常的情况下同时测试了正常启动度量的流程。
@@ -330,7 +331,7 @@ $ dmesg
–----------------------end----------------------------
```
-## 4.4. TDM动态保护任务更新操作流程
+### 4.4. TDM动态保护任务更新操作流程
该场景主要测试《PSP动态度量接口规范》中的第八部分“度量任务基准值更新”,实现了对正在正常运行的度量任务的基准值更新,通过更新后基准值与实际度量结果不匹配而出发异常回调,同时验证了更新命令与异常触发回调的流程。
@@ -415,7 +416,7 @@ $ dmesg
–----------------------end----------------------------
```
-## 4.5. TDM动态保护防字典攻击流程
+### 4.5. TDM动态保护防字典攻击流程
该场景主要测试《PSP动态度量接口规范》中的第四部分“防字典攻击”,实现了尝试对正在运行度量任务授权码暴力破解,进而触发DA保护启动的逻辑。
@@ -476,7 +477,7 @@ $ dmesg
–----------------------end----------------------------
```
-## 4.6. TDM度量任务通过虚拟地址创建运行销毁流程(1.3固件版本后支持)
+### 4.6. TDM度量任务通过虚拟地址创建运行销毁流程(1.3固件版本后支持)
参考用例场景3测试主流程逻辑与场景0基本相同,主要调整为度量任务创建改用虚拟地址进行创建,详细细节可阅读参考用例tdm_verify.c的代码逻辑。
@@ -516,7 +517,7 @@ $ dmesg
–----------------------end----------------------------
```
-## 4.7. TDM度量任务异常触发机器挂机流程(1.4固件版本后支持)
+### 4.7. TDM度量任务异常触发机器挂机流程(1.4固件版本后支持)
参考用例场景4测试主流程逻辑与场景1基本相同,主要调整为度量任务创建时flag配置增加TASK_EXCEPTION_CRASH属性配置,当度量异常触发时,机器将挂机,详细细节可阅读参考用例tdm_verify.c的代码逻辑。
@@ -531,7 +532,7 @@ $ sudo insmod tdm-verify.ko test_scene=4
```
该命令运行后,系统触发度量任务异常,若机器此时挂机,表明该机制验证成功,仅可通过BMC硬重启或断电重启恢复,用户可根据verify的代码逻辑参考该机制的实现,否则该机制验证失败。
-## 4.8. TDM AK证书获取与证书链验证流程(1.2固件版本后支持)
+### 4.8. TDM AK证书获取与证书链验证流程(1.2固件版本后支持)
该场景演示了获取TDM的AK证书与验证AK证书的证书链的例子,通过该场景,可以熟悉并验证TDM模块的证书导出接口,同时通过hag完成对证书的导出、解析、验证来实现对整个TDM证书系统的了解。hag提供了证书获取以及从AK证书逐步验证整个证书链的过程,用户可以通过使用hag工具来熟悉TDM AK证书的使用。
@@ -686,7 +687,7 @@ hsk pubkey verify cek cert successful
(6)可以看到成功验证了TDM的证书链,该验证方式主要通过从AK证书中获取的chip_id,到证书服务器下载其对应的CEK证书、HSK证书、HRK证书,通过从根证书一级一级验证到AK证书。
-## 4.9. TDM度量报告获取与使用AK证书验证度量报告流程(1.2固件版本后支持)
+### 4.9. TDM度量报告获取与使用AK证书验证度量报告流程(1.2固件版本后支持)
该场景演示了获取TDM度量报告与使用AK证书验证报告的例子,通过该场景,可以熟悉并验证TDM模块的度量报告导出接口,同时通过hag完成对报告的导出、解析、验证来实现对整个TDM度量报告系统的了解。hag工具提供了度量报告获取以及使用AK证书验证度量报告的过程,用户可以通过使用hag工具来熟悉TDM度量报告接口的使用。
@@ -849,7 +850,7 @@ verify_tdm_report command success!
$ sudo rmmod tdm-verify.ko
```
-## 4.10. TDM VPCR获取与审计重放VPCR值验证流程(1.3固件版本后支持)
+### 4.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的使用与审计信息接口的使用。
diff --git a/src/practices-keylime.md b/src/practices-keylime.md
index 324b58fd6695e7e8df48611258259b674f9d3fe3..5d9cc7180d4d958f2e20d3c2fd0f980e165acd3d 100644
--- a/src/practices-keylime.md
+++ b/src/practices-keylime.md
@@ -1,4 +1,5 @@
-# keylime概述
+# Keylime最佳实践
+## keylime概述
[Keylime](https://github.com/keylime/keylime) 是一个利用可信计算TPM 技术的开源可扩展信任系统。Keylime已经进入CNCF项目且被Redhat等多个主流发行版集成。Keylime 提供了一种端到端解决方案,用于为远程计算机引导基于硬件的加密信任、加密负载的配置以及运行时系统完整性监控。 它还为任何给定 PCR(平台配置寄存器)的远程证明提供了灵活的框架。 用户可以创建自己的自定义操作,当机器未通过其验证测量时将触发这些操作。
@@ -15,7 +16,7 @@ Keylime 由三个主要组件组成;verifier、registrar和agent。
此外keylime还提供tenant工具便于用户远程管理agent。
-# 龙蜥社区在keylime社区的工作与探索
+## 龙蜥社区在keylime社区的工作与探索
龙蜥社区自其可信计算SIG成立以外,一直在关注可信计算业界进展和国际OSV厂商的可信计算方案。同时龙蜥社区在keylime社区积极贡献代码与适配,一共在rust-keylime和keylime两个仓库提交并合入17个patch,包括多个features、bugfixes和文档。详见[keylime release notes](https://github.com/keylime/keylime/releases)和[rust-keylime](https://github.com/keylime/rust-keylime/releases), 具体包括:
- features:集成龙蜥anolis以及下游阿里云Alibaba Cloud Linux OS的安装代码、集成阿里云vTPM EK证书、支持keylime安装时选择缺省的监听端口等。
@@ -29,14 +30,14 @@ Keylime 由三个主要组件组成;verifier、registrar和agent。
在完成keylime的适配和实践后,龙蜥社区也将自己的keylime经验写入到白皮书中。未来,龙蜥社区除了继续加强与keylime社区的沟通和贡献(参与keylime rust化)外,还将结合自己在国密/国产化/机密计算的积累围绕keylime开展一些国密、国产化、机密计算相关的工作,尽情期待。
-# 龙蜥Anolis OS上keylime用途与实践
+## 龙蜥Anolis OS上keylime用途与实践
Keylime可以借助PCR或者Measure boot监控远程机器(Agent部署机器)的启动时的状态(完整性等)和借助IMA来监控运行时的完整性。开启对应的策略(policy)后,时刻轮询监控着对应agent的状态,如果发现异常则返回给verifier执行对应的操作(标记失败/停止轮询/打印错误等)。关于这部分的用法详见下文`Anolis OS上keylime高级功能实践`章节。
Keylime也可以通过RESTful APIs去监控/管理/查询 Keylime的agent、verifier以及registrar,便于用户以及运维人员有效的管理Keylime的各个组件以及验证远程机器的完整性等。此外keylime提供更加安全的mtls协议和基于Https的RESTful APIs。其中如果被正确执行,则RESTful APIs返回对应的信息且状态码为200,否则则为错误运行。关于这些APIs的用法详见下文`用Restful API去监控/管理Anolis OS上的各个keylime组件`章节。
-## Anolis OS上keylime安装与配置、运行
-### 安装(以anolis 8.8为例)
+### Anolis OS上keylime安装与配置、运行
+#### 安装(以anolis 8.8为例)
keylime分为两个代码仓库:
- [keylime](https://github.com/keylime/keylime):包含除了agent以外的其它keylime组件(verifier,registrar,tenant), 下载后执行`cd keylime && ./installer.sh -i` 命令进行安装
@@ -58,13 +59,13 @@ mkdir -p /var/lib/keylime/cv_ca
chown -R keylime /var/lib/keylime
```
-### 配置
+#### 配置
- verifier配置:`/etc/keylime/verifier.conf`为verifier的缺省配置。一般情况下不需要进行修改(当然您也可以根据您的需求进行修改)。
- registrar配置:`/etc/keylime/registrar.conf`为registrar的缺省配置。一般情况下不需要进行修改(当然您也可以根据您的需求进行修改)。
- agent配置:`/etc/keylime/agent.conf`为agent的缺省配置。当agent跟verifier、registrar部署在同一台机器时,不需要修改agent的配置;否则需要修改agent监听的IP、contact_ip(verifier和tenant用来连接的agent IP)、registrar的IP以便于正确注册和通信。
- tenant配置:`/etc/keylime/tenant.conf`为tenant的缺省配置。一般情况下不需要进行修改(当然您也可以根据您的需求进行修改)。
-### 运行
+#### 运行
启动方式:
1. 以二进制方式启动verifier、registrar和agent:
@@ -78,8 +79,8 @@ systemctl start keylime_registrar
systemctl start keylime_agent
```
-## Anolis OS上keylime高级功能实践
-### 使用用户选择的PCR进行监控
+### Anolis OS上keylime高级功能实践
+#### 使用用户选择的PCR进行监控
该功能需要Agent侧有TPM,但因为TPM的PCR数量有限,扩展性不好。配置tpm_policy并用keylime_tenant工具进行添加,具体命令如下
@@ -93,7 +94,7 @@ keylime_tenant -v 121.43.60.253 -t 120.26.100.138 \
-c add --cert /var/lib/keylime/cv_ca
```
-#### 监控
+##### 监控
成功的case如下(agent时刻监控TPM PCRs的状态)
@@ -107,7 +108,7 @@ keylime_tenant -v 121.43.60.253 -t 120.26.100.138 \
/v2.1/quotes/integrity?nonce=WSn8mEpGLjN5I8mhHjPn&mask=0x408000&partial=1&ima_ml_entry=0
```
-### 使用Measured Boot
+#### 使用Measured Boot
该功能
- 需要Agent有TPM以及使能IMA
@@ -146,7 +147,7 @@ agent侧查看轮询结果:时刻轮询/监控着是否有异常。
HTTP/1.1 from 121.43.60.253 result 200 (took 1452.270707 ms)
```
-### Runtime Integrity Monitoring
+#### Runtime Integrity Monitoring
该功能
- 需要Agent有TPM以及使能IMA
@@ -171,7 +172,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
查看runtime policy
```shell
-# curl --key /var/lib/keylime/cv_ca/client-private.pem \
+## curl --key /var/lib/keylime/cv_ca/client-private.pem \
--cert /var/lib/keylime/cv_ca/client-cert.crt \
-k "https://127.0.0.1:8881/v2.1/allowlists/tpm" | jq .
{
@@ -184,7 +185,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### 监控IMA错误
+##### 监控IMA错误
从verifier的日志可以看到有一些没有进行IMA签名,无法验证,所有直接报错
@@ -200,12 +201,12 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
stopping polling
```
-## 用Restful API去监控/管理Anolis OS上的各个keylime组件
-### registrar
+### 用Restful API去监控/管理Anolis OS上的各个keylime组件
+#### registrar
使用registrar的RESTful APIs能够对agent进行注册、查询、删除、激活等操作。注意以下示例中的registrar IP需要根据实际IP进行修改。
-#### GET /v2.1/agents/
+##### GET /v2.1/agents/
用来获取注册的agents列表,具体命令如下:
@@ -225,7 +226,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
```
-#### GET /v2.1/agents/{agent_id:UUID}
+##### GET /v2.1/agents/{agent_id:UUID}
获取对应agent的端口、IP、EK证书等信息, 命令如下:
@@ -245,7 +246,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### PUT /v2.1/agents/{agent_id:UUID}/activate
+##### PUT /v2.1/agents/{agent_id:UUID}/activate
激活agent_id的agent,注意**这是一个http请求,不是https,如果用https会提示这个不是TLS接口**。命令如下:
@@ -262,7 +263,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### DELETE /v2.1/agents/{agent_id:UUID}
+##### DELETE /v2.1/agents/{agent_id:UUID}
从registrar中移除ID为agent_id的agent,移除后再查看发现没有该agent了, 使用该命令
@@ -289,7 +290,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### POST /v2.1/agents/{agent_id:UUID}
+##### POST /v2.1/agents/{agent_id:UUID}
注册agent_id的agent到registrar.**这是一个http不是https的请求。** 注册及注册后的查询命令如下
@@ -318,9 +319,9 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-### verifier
+#### verifier
-#### GET /v2.1/agents/{agent_id:UUID}
+##### GET /v2.1/agents/{agent_id:UUID}
从CV中获取agent `agent_id`的状态。具体命令如下:
@@ -344,7 +345,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### PUT /v2.1/agents/{agent_id:UUID}/stop
+##### PUT /v2.1/agents/{agent_id:UUID}/stop
停止对 `agent_id` 的 cv 轮询,但不要删除(对于已经启动的 agent_id)。具体命令如下:
@@ -360,7 +361,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### DELETE /v2.1/agents/{agent_id:UUID}
+##### DELETE /v2.1/agents/{agent_id:UUID}
删除 agent_id实例。删除包括删除后的查看命令如下:
@@ -384,7 +385,7 @@ keylime_tenant -c update --uuid d432fbb3-d2f1-4a97-9ef7-75bd81c00000 \
}
```
-#### GET /v2.1/allowlists/{runtime_policy_name:string}
+##### GET /v2.1/allowlists/{runtime_policy_name:string}
从 CV 中检索命名的运行时策略 runtime_policy_name。比如tpm的policy创建了,可以通过以下命令查看
@@ -416,7 +417,7 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-#### DELETE /v2.1/allowlist/{runtime_policy_name:string}
+##### DELETE /v2.1/allowlist/{runtime_policy_name:string}
删除 IMA policy `runtime_policy_name`. 比如删除已有的`tpm` policy,然后再测试,发现该policy没了
@@ -459,9 +460,9 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-### agent
+#### agent
-#### GET /version
+##### GET /version
获取agent支持的API版本。对应的命令如下:
@@ -478,7 +479,7 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-#### GET /v2.1/keys/pubkey
+##### GET /v2.1/keys/pubkey
获取agent的公钥. 对应的命令如下:
@@ -495,7 +496,7 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-#### GET /v2.1/quotes/identity
+##### GET /v2.1/quotes/identity
从节点获取identity quote, 对应的命令如下:
@@ -517,7 +518,7 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-#### GET /v2.1/quotes/integrity
+##### GET /v2.1/quotes/integrity
从节点获取integrity quote,具体命令如下:
@@ -541,7 +542,7 @@ curl --key /var/lib/keylime/cv_ca/client-private.pem \
}
```
-#### GET /v2.1/keys/verify
+##### GET /v2.1/keys/verify
获取bootstrap key的验证, 对应的命令如下:
diff --git a/src/practices-luks-with-tpm2.md b/src/practices-luks-with-tpm2.md
index b762396b75cf9874a4ae920ac2918da05f4d631d..f71243d15f0d08b8b07196b601e030464ce85466 100644
--- a/src/practices-luks-with-tpm2.md
+++ b/src/practices-luks-with-tpm2.md
@@ -1,5 +1,5 @@
-# 基于可信根的luks磁盘加密安全增强解决方案
+# 基于可信根的全盘加密
LUKS(Linux Unified Key Setup)是Linux硬盘加密的标准。LUKS是由Clemens Fruhwirth在2004年创建的磁盘加密规范,最初用于Linux,它是一种知名的、安全的、高性能的磁盘加密方法,基于改进版本的cryptsetup,使用dm-crypt作为磁盘加密后端。LUKS提供多种加密算法、多种加密模式和多种哈希函数可供选择,有40多种可能的组合。
磁盘加密可以防止存储设备安装在由攻击者控制的备用操作环境中,攻击者可以观察或篡改敏感信息。
@@ -128,7 +128,7 @@ sudo losetup -d /dev/loop0
该方案检索LUKS加密密码口令之前通过使用TPM PCR验证系统状态。
但是现在有一个新问题:更新。在本例中,对系统应用固件更新可能导致加密数据无法访问,因为PCR0表示固件的特定版本。为了成功地更新系统,有必要根据一组预测的PCR值重新密封秘密。但是,如果回滚更新,旧的值将不再工作。此外,在实际执行更新之前预测更新后的PCR值可能是不切实际的——最好的方法可能是在相同的系统上应用更新,看看会产生什么PCR值,并预先授权两组PCR值。对于TPM,有一种方法可以做到这一点,称为“被授权的PCR策略”(authorized PCR policy)。
-# 基于被授权的PCR策略保护带有密码口令的LUKS
+## 基于被授权的PCR策略保护带有密码口令的LUKS
被授权的PCR策略作为TPM密封对象的身份验证机制。不再使用严格的PCR策略绑定到原始PCR值,我们现在密封它的PCR签名。PCR集由系统设计人员签名,并由TPM进行验证。
这一方案可以通过以下步骤实现:
diff --git a/src/practices-shangmi_trusted_computing.md b/src/practices-shangmi_trusted_computing.md
index e9dc1a5de66725e1da4b69c8eb6f4e727e192c0a..fff53f91de313df6b4fe892ec6bd9d0f51433070 100644
--- a/src/practices-shangmi_trusted_computing.md
+++ b/src/practices-shangmi_trusted_computing.md
@@ -1,4 +1,4 @@
-# 国密可信计算
+# 基于国密的可信计算最佳实践
## TPM、TCM 与国密算法
diff --git a/src/practices-trustedComputing3.md b/src/practices-trustedComputing3.md
index f0083a45553881beba8d297f3184c6957eb09cdb..8aad9dffa3861d3a5907da396865d77b473875e8 100644
--- a/src/practices-trustedComputing3.md
+++ b/src/practices-trustedComputing3.md
@@ -1,5 +1,6 @@
-# 可信计算3.0 系统架构
-## 系统架构概述
+# 可信计算3.0解决方案
+## 可信计算3.0 系统架构
+### 系统架构概述
可信计算3.0双体系可信计算架构是整个主动免疫防御体系的基础结构保障,构建了安全隔离的计算部件与防护部件并存的双体系架构,计算部件无法访问防护部件的资源,防护部件可访问计算部件的所有资源,双方通过安全的专用通道进行交互,这
是构建整个主动免疫防护体系的基石。防护部件以可信平台控制模块 TPCM 为核心和信任源点,能够先于计算部件处理器启动,并通过直接总线共享机制访问主机所有资源,进行静态和动态可信验证,通过度量方能启动或继续执行,否则进行报警
和控制,主动抵御入侵行为,并能实时生成主机的可信报告,上报至可信安全管理平台进行进一步关联分析。
@@ -15,7 +16,7 @@

-## 可信计算节点中的TPCM架构
1
+### 可信计算节点中的TPCM架构
1

@@ -40,14 +41,14 @@
* 可信网络:可信计算节点会对网络通信进行加密,防止网络攻击。
-## TPCM功能及接口框架
1
+### TPCM功能及接口框架
1

图3中的左侧是 TPCM 的功能层次结构。应用层提供可信控制、度量和判定服务,包括可信身份验证、访问控制、数据完整性保护和软件完整性保护。操作系统核心层提供操作系统可信代理(OSA),OSA 是 TPCM 的接口点。
图3中的右侧是 TPCM 的接口框架。TSB 是 TPCM 的调用接口,用于将应用程序与 TPCM 功能连接起来。管理接口用于管理 TPCM 组件。
-# 可信计算3.0与计算基础设施生态的融合
+## 可信计算3.0与计算基础设施生态的融合
为了让终端用户更好的触达和使用到可信计算3.0的技术,可信华泰在与计算技术设施生态的融合上做了若干实践。
可信华泰与国产计算基础设施生态的厂商,包括:CPU平台厂商、BIOS厂商、整机厂商、国产OS厂商进行了广泛合作,做了以下的实践:
@@ -58,18 +59,18 @@

-## 与平台的融合
+### 与平台的融合
可信计算3.0在计算平台层面上,对CPU和BIOS引入了可信计算3.0的核心组件TPCM、TCM,让计算平台具备可信计算3.0的 "可信根"。
-### **海光CPU核内TPCM
2**
+#### **海光CPU核内TPCM
2**
在海光2-3号(3/5/7全系)中的安全处理器(PSP)中植入了TPCM可信根固件,TPCM固件使用密码协处理器(CCP)的SM2/3/4 以及TRNG密码功能,CCP在此处承担TCM的职责。

CPU中嵌入TPCM,可以让整机厂商能够随CPU平台选择使用可信3.0 TPCM作为整机KeyPart进行采购和产线部署
-### **可信BIOS的改造**
+#### **可信BIOS的改造**
一般BIOS经过可信改造,运行以下可信启动流程。

@@ -93,12 +94,12 @@ CPU中嵌入TPCM,可以让整机厂商能够随CPU平台选择使用可信3.0
16. 上一步可信验证通过后,由计算部件加载执行应用程序,至此系统进入一个可信的启动环境。
-## 与整机的融合
3
+### 与整机的融合
3
可信改造后的BIOS同样作为整机厂商随CPU平台采购的keypart在整机产线中进行导入。整机厂商在整机产线上导入带有TPCM可信根功能的CPU和BIOS。
-## 与Anolis OS的衍生发行版之一KeyarchOS的融合
+### 与Anolis OS的衍生发行版之一KeyarchOS的融合
KeyarchOS是浪潮信息基于Anolis OS发布服务器操作系统,**一方面,践行以系统设计为中心的技术路线,持续推动软硬协同创新;另一方面,通过 KeyarchOS 充分发挥芯片、板卡和服务器的创新成果,为用户提供卓
越的整机系统体验**
4
可信计算3.0作为一种包含芯片、整机、操作系统的安全防护体系,已经KeyarchOS上进行了兼容性适配认证。
@@ -112,7 +113,7 @@ KeyarchOS是浪潮信息基于Anolis OS发布服务器操作系统,**一方面
图8是TSB与操作系统之间的交互流程,TSB 向计算环境发送通知。通知可以是主动度量和控制相关的,也可以是异步命令处理完成的通知。通知是通过共享内存传输的。计算环境读取通知并清空通知标记。然后,计算环境将通知传递给 TSB
代理。TSB 代理查找唤醒等待进程,并调用通知处理函数。
-## 注
+### 注
1. 摘自沈昌祥院士《可信计算筑牢网络强国底座》演讲稿
2. 本文以海光CPU作为最佳实践的举例,飞腾CPU目前也支持核内TPCM,并在在架构原理上与海光CPU相似,仅在TPCM与外部通信接口不同。
3. 可信整机产线流程目前已经在浪潮服务器、新华三服务器产线上进行了实践。
diff --git a/src/standard-international.md b/src/standard-international.md
index 4e37e3e26b089f4323bc72e9b04b804cf38eddcf..9b4784b60ec79dbb8e171419abdcbe2d4f3e9f9e 100644
--- a/src/standard-international.md
+++ b/src/standard-international.md
@@ -1,26 +1,26 @@
# 国际可信计算标准
## ISO发布
### ISO简介
-ISO(国际标准化组织)和IEC(国际电工委员会)组成了专门的全球标准化体系。作为ISO或IEC成员的国家机构通过各自组织建立的技术委员会参与国际标准的制定,以处理特定领域的技术活动。ISO和IEC技术委员会在共同感兴趣的领域进行合作。与ISO和IEC保持联系的其他政府和非政府国际组织也参加了这项工作。在信息技术领域,ISO和IEC成立了一个联合技术委员会ISO/IEC JTC 1。国际标准是根据ISO/IEC指令第2部分中给出的规则起草的。联合技术委员会的主要任务是制定国际标准。联合技术委员会通过的国际标准草案分发给国家机构表决。作为国际标准出版需要至少75%的国家机构投票通过。
+ ISO(国际标准化组织)和IEC(国际电工委员会)组成了专门的全球标准化体系。作为ISO或IEC成员的国家机构通过各自组织建立的技术委员会参与国际标准的制定,以处理特定领域的技术活动。ISO和IEC技术委员会在共同感兴趣的领域进行合作。与ISO和IEC保持联系的其他政府和非政府国际组织也参加了这项工作。在信息技术领域,ISO和IEC成立了一个联合技术委员会ISO/IEC JTC 1。国际标准是根据ISO/IEC指令第2部分中给出的规则起草的。联合技术委员会的主要任务是制定国际标准。联合技术委员会通过的国际标准草案分发给国家机构表决。作为国际标准出版需要至少75%的国家机构投票通过。
### ISO/IEC 11889系列标准概述
-TPM2.0库规范系列标准以ISO/IEC 11889:2015发布。该规范由可信计算组(TCG)提交给ISO/IEC JTC 1*,遵循JTC 1公开可用规范(PAS)转换过程。
-在最终的TPM 2.0标准化投票中,来自发达经济体和新兴经济体的支持,赞成票来自澳大利亚、比利时、加拿大、中国、捷克、丹麦、芬兰、法国、加纳、爱尔兰、意大利、日本、韩国、黎巴嫩、马来西亚、荷兰、尼日利亚、挪威、俄罗斯联邦、南非、阿拉伯联合酋长国、英国和美国。
-TPM 2.0库规范支持现代安全和隐私保护,该规范整合了基于硬件和基于软件的安全技术的优势。它在计算设备中的实现保护了加密密钥;防止私钥被导出;屏蔽用于身份验证的PIN值;并记录和匿名报告在启动过程中加载的软件,以防止恶意软件和攻击。因此,它将成为任何综合安全战略的重要组成部分。
+ TPM2.0库规范系列标准以ISO/IEC 11889:2015发布。该规范由可信计算组(TCG)提交给ISO/IEC JTC 1*,遵循JTC 1公开可用规范(PAS)转换过程。
+在最终的TPM 2.0标准化投票中,来自发达经济体和新兴经济体的支持,赞成票来自澳大利亚、比利时、加拿大、中国、捷克、丹麦、芬兰、法国、加纳、爱尔兰、意大利、日本、韩国、黎巴嫩、马来西亚、荷兰、尼日利亚、挪威、俄罗斯联邦、南非、阿拉伯联合酋长国、英国和美国。
+ TPM 2.0库规范支持现代安全和隐私保护,该规范整合了基于硬件和基于软件的安全技术的优势。它在计算设备中的实现保护了加密密钥;防止私钥被导出;屏蔽用于身份验证的PIN值;并记录和匿名报告在启动过程中加载的软件,以防止恶意软件和攻击。因此,它将成为任何综合安全战略的重要组成部分。

**ISO/IEC 11889系列标准**
-[ISO/IEC 11889-1:2015 Information technology — TPM Library — Part 1: Architecture](https://www.iso.org/standard/66510.html)
-[ISO/IEC 11889-2:2015 Information technology — TPM Library — Part 2: Structures](https://www.iso.org/standard/66511.html)
-[ISO/IEC 11889-3:2015 Information technology — TPM Library — Part 3: Commands](https://www.iso.org/standard/66512.html)
-[ISO/IEC 11889-4:2015 Information technology — TPM Library — Part 4: Supporting Routines](https://www.iso.org/standard/66513.html)
+- [ISO/IEC 11889-1:2015 Information technology — TPM Library — Part 1: Architecture](https://www.iso.org/standard/66510.html)
+- [ISO/IEC 11889-2:2015 Information technology — TPM Library — Part 2: Structures](https://www.iso.org/standard/66511.html)
+- [ISO/IEC 11889-3:2015 Information technology — TPM Library — Part 3: Commands](https://www.iso.org/standard/66512.html)
+- [ISO/IEC 11889-4:2015 Information technology — TPM Library — Part 4: Supporting Routines](https://www.iso.org/standard/66513.html)
## TCG发布
### 关于TCG
-可信计算组(Trusted Computing Group,TCG)是一个非营利组织,旨在为可互操作的可信计算平台开发、定义和推广基于硬件信任根的供应商无关的全球行业规范和标准。TCG的核心技术包括可信平台模块(Trusted Platform Module,TPM),可信网络通信(Trusted Network Communications,TNC)以及网络安全和自加密驱动器的规范和标准。TCG还设有工作组,将信任的核心概念从企业扩展到物联网的云安全、虚拟化和其他平台以及计算服务。
+ 可信计算组(Trusted Computing Group,TCG)是一个非营利组织,旨在为可互操作的可信计算平台开发、定义和推广基于硬件信任根的供应商无关的全球行业规范和标准。TCG的核心技术包括可信平台模块(Trusted Platform Module,TPM),可信网络通信(Trusted Network Communications,TNC)以及网络安全和自加密驱动器的规范和标准。TCG还设有工作组,将信任的核心概念从企业扩展到物联网的云安全、虚拟化和其他平台以及计算服务。

### TPM2.0库标准
-TPM2.0库标准是TPM2.0中基础规范,该规范描述了TPM2.0实现的所有核心功能。库标准由四部分组成:
+ TPM2.0库标准是TPM2.0中基础规范,该规范描述了TPM2.0实现的所有核心功能。库标准由四部分组成:
- 第一部分:架构规范,该部分描述了TPM2.0的操作规范、设计原理及工作细节(例如如何创建用于授权、审计、加密命令的会话)。
- 第二部分:数据结构规范,该部分描述了TPM2.0所使用的数据类型、结构体、联合体,该部分也包含了TPM所使用的命令码、错误码等内容。
- 第三部分:命令规范,该部分描述了TPM2.0中所使用的命令及其功能使用方法,包括了命令的输入输出参数、参考的错误码含义,并提供了命令在TPM中实现的伪代码。
@@ -34,7 +34,8 @@ TPM2.0库标准是TPM2.0中基础规范,该规范描述了TPM2.0实现的所
- [Part 4: Supporting Routines](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part4_SuppRoutines_pub.pdf)
- [Part 4: Supporting Routines – Code](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part4_SuppRoutines_code_pub.pdf)
### TPM Software Stack(TSS)标准
-TSS (TCG Software Stack)是一种软件规范,提供了访问TPM功能的标准API,TSS由多层组成,允许对可扩展的TSS实现进行定制,以适应高端系统和资源受限的低端系统(如下图所示)。TSS也设计了应用程序提供与本地或远程TPM通信的接口方法。
+ TSS (TCG Software Stack)是一种软件规范,提供了访问TPM功能的标准API,TSS由多层组成,允许对可扩展的TSS实现进行定制,以适应高端系统和资源受限的低端系统(如下图所示)。TSS也设计了应用程序提供与本地或远程TPM通信的接口方法。
+

__说明:附图源自TCG官网__
@@ -45,7 +46,7 @@ TSS2各组成部分所需资源如下图所示:
应用程序开发人员可以参考该规范开发可互操作的客户端应用程序,以实现对可信计算能力的调用。TSS的另一个作用是将程序程序员与与TPM接口的底层细节隔离开来、降低TPM应用开发的学习成本。
- [TSS规范官网入口](https://trustedcomputinggroup.org/resource/tcg-software-stack-tss-specification/)
### PC Client
-PC Client系列规范主要定义了TCG技术在计算机(例如笔记本电脑、台式机或平板电脑)中的上下文中所呈现的功能和行为,包括TPM以及与TPM交互或在其平台中集成TPM的平台OEM和固件供应商所需参考的规范、技术要求和指导。主要分为PC Client TPM Platform标准及配套参考文档和PC Client Firmware标准及配套参考文档。
+ PC Client系列规范主要定义了TCG技术在计算机(例如笔记本电脑、台式机或平板电脑)中的上下文中所呈现的功能和行为,包括TPM以及与TPM交互或在其平台中集成TPM的平台OEM和固件供应商所需参考的规范、技术要求和指导。主要分为PC Client TPM Platform标准及配套参考文档和PC Client Firmware标准及配套参考文档。
PC Client TPM Platform标准及配套文档体系:

@@ -83,12 +84,12 @@ PC Client Firmware标准及配套文档体系:
|PC Client Firmware|TCG PC Client Platform Firmware Integrity Measurement|Version 1.0 Revision 43 2021.5.7|This document describes the requirements for a PC Client Endpoint in an enterprise computing environment complying with SP 800-155 BIOS Integrity Measurements|
|PC Client Firmware|TCG PC Client Physical Presence Interface Specification|Version 1.30 Revision 0.52 2015.7.28|This specification defines an interface between an operating system and the firmware to manage the configuration of a TPM and, if required, initiate TPM related operations. The specification gives suggestions on UI wording for interactions with users of a system, if UI interaction is required.|
### Storage
-存储工作组以现有的TCG技术和理念为基础,重点关注专用存储系统上的安全服务标准。其中一个目标是开发标准和实践,用于跨专用存储控制器接口定义相同的安全服务,包括但不限于ATA、串行ATA、SCSI、FibreChannel、USB存储、IEEE 1394、网络附加存储(TCP/IP)、NVM Express和iSCSI。存储系统包括磁盘驱动器、可移动媒体驱动器、闪存和多个存储设备系统。
+ 存储工作组以现有的TCG技术和理念为基础,重点关注专用存储系统上的安全服务标准。其中一个目标是开发标准和实践,用于跨专用存储控制器接口定义相同的安全服务,包括但不限于ATA、串行ATA、SCSI、FibreChannel、USB存储、IEEE 1394、网络附加存储(TCP/IP)、NVM Express和iSCSI。存储系统包括磁盘驱动器、可移动媒体驱动器、闪存和多个存储设备系统。
存储标准体系:

### TNC(可信网络通信)
-TCG的可信网络通信(TNC-Trusted Network Communications)工作组定义并发布了一个开放架构和一套不断增长的网络安全标准,在跨各种端点、网络技术和策略的多供应商环境中提供可互操作的端到端信任。TNC支持在不同的网络和安全系统之间进行端点遵从性评估、智能策略决策、动态安全实施和安全自动化。
+ TCG的可信网络通信(TNC-Trusted Network Communications)工作组定义并发布了一个开放架构和一套不断增长的网络安全标准,在跨各种端点、网络技术和策略的多供应商环境中提供可互操作的端到端信任。TNC支持在不同的网络和安全系统之间进行端点遵从性评估、智能策略决策、动态安全实施和安全自动化。
- 标准编制
TNC工作组已经定义并发布了一个开放架构和一套不断增长的标准,用于端点遵从性评估、网络访问控制和安全自动化。TNC体系结构使网络运营商能够在网络连接和跨不同安全和网络设备的协调信息时或之后执行有关端点完整性的策略。
@@ -134,6 +135,7 @@ TNC不同场景下的安全需求提供了可互操作的标准,TNC标准确
- 标准推广:
TNC标准的采用也从供应商和最终用户扩展到其他标准组织。互联网工程任务组(IETF)网络端点评估(NEA)工作组发布了几个基于TNC客户端-服务器协议的rfc:
+
|IETF RFC|TNC Specification|
|--------|-----------------|
|PA-TNC: A Posture Attribute (PA) Protocol Compatible with Trusted Network Connect (TNC) - RFC 5792|TNC IF-M: TLV Binding Version 1.0|
@@ -141,7 +143,7 @@ TNC标准的采用也从供应商和最终用户扩展到其他标准组织。
|A Posture Transport Protocol over TLS (PT-TLS) - RFC 6876| TNC IF-T Binding to TLS Version 2.0|
|PT-EAP: Posture Transport (PT) Protocol for Extensible Authentication Protocol (EAP) Tunnel Methods - RFC 7171|TNC IF-T: Protocol Bindings for Tunneled EAP Methods, Version 2.0|
-TNC提供了一个灵活、开放的体系结构,可以适应不断变化的环境,而不依赖于任何一家供应商。跨国公司支持的技术提高了投资回报率,支持使用现有的网络设备和同类最佳产品,并避免了供应商锁定。可见性和协调性有助于有效的网络管理和安全。
+ TNC提供了一个灵活、开放的体系结构,可以适应不断变化的环境,而不依赖于任何一家供应商。跨国公司支持的技术提高了投资回报率,支持使用现有的网络设备和同类最佳产品,并避免了供应商锁定。可见性和协调性有助于有效的网络管理和安全。
TNC开放的网络安全架构和完整的标准得益于安全专家的全面技术审查。为了获得最强的安全性,TNC可以利用TPM进行健壮的身份验证、认证和危害检测。商业供应商、开源社区和IETF对TNC标准提供了广泛的支持。
TNC可以与TPM集成,以实现安全身份验证和认证,解决rootkit和其他受损软件的检测和缓解问题。TNC标准为保护嵌入式系统(如网络设备、汽车和物联网解决方案)提供了通信基础。
### 其他
diff --git a/src/trustedcomputingSig.md b/src/trustedcomputingSig.md
index c4cf1c4215e0b1a851cce450929f116b677c91dd..f3a93715da1f483bed07e781d3c9269fae231d4e 100644
--- a/src/trustedcomputingSig.md
+++ b/src/trustedcomputingSig.md
@@ -1,4 +1,5 @@
-# SIG 成立背景
+# 可信计算SIG简介
+## SIG 成立背景
等保2.0时代通过可信计算技术构建关键信息基础设施主动安全纵深防御能力,正在成为业界共识。龙蜥社区作为各大厂商的粘合剂,需要具备可信计算总体解决方案。各方也都希望有一个统一的可信计算技术解决方案,需要有一个社区驱动的参考实现,该实现需要具备良好易用性和可落地性。
当前国内可信计算技术生态面临如下困境:
1. 割裂的可信计算技术方案:
@@ -13,21 +14,22 @@
- 作为可信计算技术落地应用的核心,远程证明server侧没有现成可用开源参考实践,TPM虽然在Windows中非常成熟,但是在 LinuxOS用户有感知地透传,应用可信计算技术目前比较有限;
- 缺乏面向基础设施的通用可信计算特性使能开源参考实现;
为夯实关键信息基础设施主动安全纵深防御能力,促进可信计算技术开源开放生态繁荣发展,可信计算SIG由此成立。后续,SIG将依托浪潮信息龙蜥社区联合实验室丰富多样的服务器可信计算平台设备环境,联合SIG成员伙伴共同推动可信计算实践及解决方案探索,输出易用好用的可信计算解决方案及配套成果,繁荣国内可信计算开源开放生态。
-# SIG 愿景
+## SIG 愿景
1. 立足龙蜥社区国内OS根社区定位,将龙蜥社区可信计算SIG打造为国内可信计算技术开源开放的总入口;
2. 依托社区及SIG成员单位、携手挖掘易用实用的可信计算技术落地方案、让用户清晰感知可信计算价值、让用户轻松使用可信计算技术实现安全目标;
3. 让SIG成为国内可信计算技术应用推广的践行者
-# SIG 主要目标
+## SIG 目标
1. 开源可信基础软件开发维护:面向异构可信计算技术方案,提供通用的可信计算基础软件实现(包括可信软件栈、远程证明组件等),实现可信基础软件全栈国密支持,持续优化可信基础软件的稳定性和易用性;
2. 探索可信计算落地方案: 面向不同场景(如云服务、数据中心、桌面端、边缘侧等),探索可落地的可信计算解决方案参考实现,提供相应的代码仓库和发行版;
3. 可信计算技术动态: 发布年度可信计算技术白皮书。

-# 加入可信计算 SIG
+## 加入可信计算 SIG
以下是我们在 OpenAnolis 上的可信计算SIG,非常欢迎有兴趣的开发能参与到社区中来,携手繁荣中国可信计算开源生态、推动可信计算高速发展。
🔗 SIG地址:[https://openanolis.cn/sig/tc-sig]
-**欢迎加入钉钉交流群,与社区用户和开发者实时交流:**
- “龙蜥-可信计算SIG技术交流群”,群号: 15370024496
+**欢迎加入钉钉或微信交流群,与社区用户和开发者实时交流:**
+ 钉钉群:“龙蜥-可信计算SIG技术交流群”,群号: 15370024496
+ 微信群:“龙蜥-可信计算SIG技术交流群”