Trustee是一个用于机密计算(Confidential Computing)TEE (Trust Execute Evironment)环境中的信任验证和秘密数据管理平台。它包含了一系列组件,用于验证可信执行环境(TEE)证据并为其提供秘密数据。该项目遵循RATS(Remote Attestation Procedures)架构模型,为机密容器和其他机密计算应用场景提供完整的信任基础设施。 Trustee 通常代表TEE所有者操作,并与 guest-components 远程交互。
Trustee 可以广泛应用于多种应用程序和硬件平台。
Trustee项目采用微服务架构,主要包含以下核心模块组件:
-
Key Broker Service: 密钥代理服务,用于协助远程证明和机密数据下发。其角色类似于 RATS 模型中的 Rely Party。
-
Attestation Service: 证明服务,用于验证 TEE 证据。在 RATS 模型中,充当RATS模型中的 Verfier。
-
Reference Value Provider Service: 参考值提供服务,管理用于验证 TEE 证据的参考值。这与 RATS 文档中 第 7.5 节 的讨论相关。
-
Trustee Gateway: API网关,提供统一的接入点和代理服务。
- Verifier: 多TEE硬件和设备验证器,支持Intel TDX、Intel SGX、AMD SNP、ARM CCA、Hygon CSV、TPM等
- Frontend React前端管理界面
更多详细信息,请参阅各个组件的文档。
下图展示了将Trustee服务组件与客户端组件结合部署时的全局架构。
graph TB
subgraph "客户端 Guest Environment"
AA[Attestation Agent]
CDH[Confidential Data Hub]
AA <--> CDH
end
subgraph "Trustee Gateway Layer"
GW[Trustee Gateway<br/>统一接入网关]
FE[Frontend<br/>管理界面]
FE --> GW
end
subgraph "Trustee Core Services"
KBS[KBS<br/>Key Broker Service]
AS[AS<br/>Attestation Service]
RVPS[RVPS<br/>Reference Value Provider Service]
KBS --> AS
AS --> RVPS
end
subgraph "Verifier Engines"
VER[Verifier<br/>多TEE验证器]
TDX[TDX Verifier]
SGX[SGX Verifier]
SNP[SNP Verifier]
CCA[CCA Verifier]
CSV[CSV Verifier]
TPM[TPM Verifier]
VER --> TDX
VER --> SGX
VER --> SNP
VER --> CCA
VER --> CSV
VER --> TPM
end
subgraph "Storage & Policy"
DB[(Database<br/>SQLite)]
FS[("File Storage<br/>Reference Values")]
PE[Policy Engine<br/>OPA]
end
AA --证明请求--> GW
CDH --资源请求--> GW
GW --> KBS
GW --> AS
GW --> RVPS
AS --> VER
AS --> PE
RVPS --> FS
GW --> DB
style KBS fill:#e1f5fe
style AS fill:#f3e5f5
style RVPS fill:#e8f5e8
style GW fill:#fff3e0
style VER fill:#fce4ec
Trustee当前所有的API均通过Trustee Gateway对外暴露,详情请参阅Trustee Gateway API文档:
使用如下命令,在本地构建Trustee组件的容器镜像:
DOCKER_BUILDKIT=1 docker build -t kbs:latest . -f Dockerfile.kbs
DOCKER_BUILDKIT=1 docker build -t as-grpc:latest . -f Dockerfile.as-grpc
DOCKER_BUILDKIT=1 docker build -t as-restful:latest . -f Dockerfile.as-restful
DOCKER_BUILDKIT=1 docker build -t rvps:latest . -f Dockerfile.rvps
DOCKER_BUILDKIT=1 docker build -t trustee-gateway:latest . -f Dockerfile.trustee-gateway
DOCKER_BUILDKIT=1 docker build -t frontend:latest . -f Dockerfile.frontend
本仓库提供了docker compose脚本,用于一键在本地启动一个Trustee服务。
脚本中默认使用的组件容器镜像是我们发布在阿里云ACR镜像仓库上的镜像,若您需要使用自己构建的容器镜像,请修改docker compose脚本中每个容器的image
字段为您自己的容器镜像地址。
使用如下命令在本地一键拉起trustee服务:
git clone https://github.com/openanolis/trustee.git
cd trustee/deploy
./pre.sh
docker-compose up -d
部署完成后,Trustee会在本地监听8082
端口,接受并处理对 gateway API 和前端访问的请求。
- API:
http://<ip>:8082/api
- 前端:
http://<ip>:8082
可以使用如下命令测试API访问:
curl http://<IP>:8082/api/services-health | jq
预期输出如下:
{
"gateway": {
"status": "ok",
"timestamp": "2025-07-02T15:35:55+08:00"
},
"kbs": {
"status": "ok",
"timestamp": "2025-07-02T15:35:55+08:00"
},
"as": {
"status": "ok",
"timestamp": "2025-07-02T15:35:55+08:00"
},
"rvps": {
"status": "ok",
"timestamp": "2025-07-02T15:35:55+08:00"
}
}
首先需要自行申请一个有效的SSL证书,然后修改deploy/trustee-frontend.conf
文件:
server {
listen 8082 ssl; # 此处添加ssl声明
server_name localhost;
# ...
# SSL配置
ssl_certificate /path/to/ssl.crt; # 配置SSL证书路径
ssl_certificate_key /path/to/ssl.key; # 配置SSL密钥路径
# ...其余内容省略
}
保存后重启Trustee服务:
docker compose restart
部署完成后,使用如下命令获得管理员登陆密钥:
cat deploy/kbs-private.key
预期输出:
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2**********************7QaInHD49zHYNQTaX
-----END PRIVATE KEY-----
浏览器打开地址http://<ip>:8082
, 在登陆界面粘贴上述密钥,点击登录按钮:
进入Trustee控制台: