---
title: 远程/本地证明
description: "TrustZone可信执行环境运行在物理服务器上，实际大部分场景物理服务器处于端侧。ISV的可信应用（ISV TA）需要被部署在端侧TEE内，即在远程处理ISV的机密数据。为确保该业务TA符合预期，业界一般采用远程或本地证明方案，由TA的运行环境对TA的完整性进行背书。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0008.html
sourcePath: /source/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0008.html
indexId: b418d726e8e271a928ec91ccc06d058e7487675ce494b2b59cc09e07b04abb8d72
---
# 远程/本地证明

#### 特性简介

TrustZone可信执行环境运行在物理服务器上，实际大部分场景物理服务器处于端侧。ISV的可信应用（ISV TA）需要被部署在端侧TEE内，即在远程处理ISV的机密数据。为确保该业务TA符合预期，业界一般采用远程或本地证明方案，由TA的运行环境对TA的完整性进行背书。

关于如何使用该特性请参见远程/本地证明。

图1 总体架构图


**表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的度量报告。 |


从TEE OS 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的序列化格式生成，否则将导致验签失败。
