Skip to content

openeuler-mirror/virtCCA_sdk

Repository files navigation

virtCCA_sdk

介绍

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

操作系统

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

使用说明

远程证明

编译

  1. 安装依赖

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

    cd attestation/rim_ref
    cmake -S . -B build
    cmake --build build
    cp output/gen_rim_ref /usr/local/bin

    基线度量值计算工具gen_rim_ref会安装到/usr/local/bin目录下

  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.2t_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.2t_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、libcborQCBOR 1.2t_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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6