获取远程证明报告
鲲鹏virtCCA能够提供硬件级的远程证明机制,在OpenClaw真正使用之前,向用户出示一份“身份凭证”。
部署远程证明SDK
参考以下步骤完成远程证明SDK部署。
- 安装远程证明库。
yum install virtCCA_sdk virtCCA_sdk-devel
- 安装编译依赖。
yum install tar cmake make git gcc gcc-c++ openssl-devel glib2-devel rsync patch
- 编译、安装QCBOR组件。
git clone https://github.com/laurencelundblade/QCBOR.git -b v1.2 cd QCBOR make make install cd ..
若git clone失败,可先执行以下命令取消git clone过程中SSL校验后重试。
git config --global http.sslVerify false
- 编译、安装t_cose组件。
git clone https://github.com/laurencelundblade/t_cose.git -b v1.1.2 cd t_cose cmake -S . -B build -DCRYPTO_PROVIDER=OpenSSL cmake --build build cmake --install build cd ..
获取虚拟机基线度量值
- 生成DTB设备树二进制文件。
- 编辑cVM的xml配置,增加如下透传QEMU参数。
<qemu:arg value='-machine'/> <qemu:arg value='dumpdtb=/path/to/dump.dtb'/>
其中dumpdtb为指定的DTB生成路径。
- 启动cVM虚拟机,将在指定路径下生成dtb文件。
virsh define <cvm.xml> virsh start <cvm>

- 编辑cVM虚拟机xml配置,删除增加的QEMU透传参数。
- 编辑cVM的xml配置,增加如下透传QEMU参数。
远程证明Demo示例
提供远程证明示例Demo,该Demo提供了简单的远程证明流程参考代码,仅用于验证TEE远程证明功能,用户可基于Demo参考实现远程证明。请参考以下步骤完成远程证明示例编译、安装和运行。
- 编译远程证明报告获取和验证的参考代码。
git clone https://gitcode.com/openeuler/virtCCA_sdk.git -b v0.1.17 cd virtCCA_sdk/attestation/samples cmake -S . -B build cmake --build build cd -
编译成功后,可在“virtCCA_sdk/attestation/samples/build”目录下查看生成client、server可执行文件。
- server端(二进制)包含了调用远程证明库获取远程证明报告的代码,仅供参考。
- client端(二进制)包含了远程证明报告解析和验证的代码,仅供参考。
- 完成机密虚拟机启动,并将server部署到虚拟机任意目录下。
- 基于gen_rim_ref获取cVM基线度量值。gen_rim_ref由virtCCA_sdk软件包提供。
gen_rim_ref -f <firmware_path> -d <dtb_path> -v <vcpu_num> -s <sve_vector_length> -m <pmu_counter_num>
表1 参数说明 参数
描述
dtb_path
cVM的设备树二进制文件。
vcpu_num
cVM虚拟机配置虚拟CPU个数。
firmware_path
cVM配置的UEFI固件路径。
sve_vector_length
cVM配置SVE向量长度,不传递默认为0。
pmu_counter_num
为cVM配置PMU数量,不传递默认为0。
默认使用的hash算法为SHA256,若需要使用SHA512,可修改gen_rim_ref源码中的hash_algo为1。gen_rim_ref源码位于“virtCCA_sdk/attestation/rim_ref/”下。
- 在虚拟机内启动server。
./server -i <ip> -p <port>
其中:
- 可选:ip:服务端配置的IP地址。默认为本地回环。
- 可选:port:服务端配置的端口。默认为7220。

- client发起远程证明请求。
./client -i <ip> -p <port> -m <measurement>
父主题: 机密虚机部署OpenClaw
