virtCCA_sdk:基于 ARM 机密计算架构的软件开发工具包项目

The software development kit of virtCCA (virtualized ARM confidential computing architecture with trustzone), such as remote attestation, derived key based on hardware etc.

Branch1Tags53

virtCCA_sdk

介绍

virtCCA(包含 TEE 虚拟化的 ARM 机密计算架构)的软件开发工具包,如远程认证、基于硬件的密钥派生等。

操作系统

支持鲲鹏架构下openEuler系列操作系统。

使用说明

远程证明

编译

  1. 安装依赖

    yum install tar cmake make git gcc gcc-c++ openssl-devel glib2-devel
    
  2. 编译安装基线度量值计算工具 参考 attestation/rim_ref/README.md

  3. 编译安装远程证明sdk

    cd attestation/sdk
    cmake -S . -B build
    cmake --build build
    cmake --install build
    

    远程证明用户态静态库libvccaattestation.a会安装到/usr/local/lib目录下,头文件attestation.h会安装到/usr/local/include目录下

  4. 编译安装QCBOR 1.2和t_cose 1.1.2依赖,编译远程证明样例代码和支持virtCCA的rats-tls需要使用:

    if [ ! -d "QCBOR" ]; then
        git clone https://github.com/laurencelundblade/QCBOR.git -b v1.2
    fi
    if [ ! -d "t_cose" ]; then
        git clone https://github.com/laurencelundblade/t_cose.git -b v1.1.2
    fi
    cd QCBOR
    make
    make install
    cd ../t_cose
    cmake -S . -B build
    cmake --build build
    cmake --install build
    
  5. 编译远程证明样例代码,样例代码需要依赖远程证明sdk、QCBOR 1.2和t_cose 1.1.2,需要提前安装好

    样例代码server端包含了调用远程证明sdk获取远程证明报告的代码,client端包含了报告解析和验证的代码,server和client使用TCP进行数据传递,代码仅供参考,建议使用rats-tls

    cd attestation/samples
    cmake -S . -B build
    cmake --build build
    

    远程证明样例代码的server和client会生成到build目录下

  6. 编译安装libcbor依赖,编译支持virtCCA的rats-tls需要使用:

    git clone https://github.com/PJK/libcbor.git
    cd libcbor
    cmake -S . -B build
    cd build
    make
    make install
    
  7. 编译支持virtCCA的rats-tls,rats-tls需要依赖远程证明sdk、libcbor、QCBOR 1.2和t_cose 1.1.2,需要提前安装好

    cd attestation/rats-tls
    git clone https://github.com/inclavare-containers/rats-tls.git
    cd rats-tls
    git reset --hard 40f7b78403d75d13b1a372c769b2600f62b02692
    git apply ../*.patch
    bash build.sh -s -r
    

    编译完成后会在bin目录下生成rats-tls.tar.gz软件包

  8. 编译启动时证明使用的initramfs,initramfs需要依赖支持virtCCA的rats-tls,需要提前编译好

    cd attestation/initramfs
    bash build.sh
    

远程证明样例代码

  1. 启动server,server参数说明请使用server -h查看

    ./server
    
  2. 启动client, 可以使用-m参数传递机密虚机的基线度量值用于校验,基线度量值可以使用基线度量值计算工具计算得到,client参数说明请使用client -h查看

    ./client -m 38d644db0aeddedbf9e11a50dd56fb2d0c663f664d63ad62762490da41562108
    

支持virtCCA的rats-tls

  1. 将rats-tls编译生产的rats-tls.tar.gz软件包拷贝到需要使用的机器,然后执行解压命令:

    tar -zxf rats-tls.tar.gz
    
  2. 将rats-tls的动态库复制到/usr/lib目录下

    cp -r lib/rats-tls /usr/lib/
    
  3. 导入环境变量后运行virtcca-server,virtcca-server参数说明请使用virtcca-server -h查看

    export LD_LIBRARY_PATH=/usr/lib/rats-tls:$LD_LIBRARY_PATH
    ./virtcca-server
    
  4. 导入环境变量后运行virtcca-client,virtcca-client参数说明请使用virtcca-client -h查看

    export LD_LIBRARY_PATH=/usr/lib/rats-tls:$LD_LIBRARY_PATH
    ./virtcca-client
    

参与贡献

如果您想为本仓库贡献代码,请向本仓库任意maintainer发送邮件
如果您找到产品中的任何Bug,欢迎您提出ISSUE

Introduction

The software development kit of virtCCA (virtualized ARM confidential computing architecture with trustzone), such as remote attestation, derived key based on hardware etc.

Customize your domain