鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

远程/本地证明

特性简介

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