远程/本地证明
特性简介
TrustZone可信执行环境运行在物理服务器上,实际大部分场景物理服务器处于端侧。ISV的可信应用(ISV TA)需要被部署在端侧TEE内,即在远程处理ISV的机密数据。为确保该业务TA符合预期,业界一般采用远程或本地证明方案,由TA的运行环境对TA的完整性进行背书。
关于如何使用该特性请参见远程/本地证明。
图1 总体架构图
- iTrustee SDK:安全OS iTrustee配套开发者工具,编译CA和TA应用需要,提供生成TA二进制基线度量值工具。
-
RA Client:证明客户端,发起对目标TA应用远程证明请求,可调用鲲鹏安全库(RA lib)校验返回的证明报告有效性。 - RA Service:证明
服务端 ,接收证明请求,负责证明密钥 注册、获取证明报告返回给远端的RA Client。 - AS(Attestation Service): 远程证明服务器,作为服务端提供证明密钥服务,分场景下提供对证明密钥提供数字签名服务。
-
QCA lib(Quoting CA):简称QCA,位于REE侧,以库的形式对外提供并响应验证者发起的远程证明请求。 -
QTA (Quoting TA):简称QTA,远程证明中的特权TA,接收处理来自QCA或TA证明请求、导入AS证书请求、生成证明密钥AK的请求。若支持容器远程证明,则还提供容器信息的注册和验证。 - tcmgr:微内核服务,作为可信基向上提供系统调用的接口完成证明密钥AK的生成、度量值的计算与存储、证明报告的生成与签名等功能。
- qca-daemon:容器(或虚拟机)内的常驻进程,容器启动时向主机上的RA Service注册容器信息;远程证明容器内的TA时,接收RA Service的转发请求。
- QCA lib-report:容器(或虚拟机)内的QCA lib,转发请求给QTA-report,只能接收report请求。
- QTA-report:容器(或虚拟机)内的QTA,也为特权TA,向QTA验证容器信息和获取容器内TA的度量报告。
从1.4.0版本开始,TEE OS支持容器化部署,相应地,为了支持容器内的远程证明,新增容器(或虚拟机)的QCA/QTA,命名为QCA lib-report和QTA-report。因其只能获取度量报告,因此称此名。
规格约束
- 使用远程证明要求TEE OS固件为1.3.2及以上版本。
- 容器内的远程证明要求TEE OS固件为1.4.0以上版本。
- 容器内的qca-daemon只能证明本容器内的TA。
- QTA可以提供Provision、SaveAKCert、ValidateAKCert、Report和Seal能力,QTA-report只提供Report能力。
- 容器内远程证明时,增加了QTA对容器信息的注册和验证,默认最大并发支持255个容器同时注册。此外,运行TA的并发容器个数受限于其他资源,目前TEE OS支持的并发运行TA的容器个数上限为63个,超过此值,新增容器内的TA将无法成功加载运行。
- 度量报告在TEE内使用cJSON序列化,因此若客户使用其他json库验证度量报告时,验签的原数据(payload字段)需要按cJSON的序列化格式生成,否则将导致验签失败。
父主题: 关键特性