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

搭建步骤

CA应用需要REE(Rich Execution Environment)侧patch才能实现与TEE(Trusted Execution Environment)侧的TA应用通信,本文以OpenEuler 20.03 LTS-SP1 为例介绍REE侧patch的编译、部署。

SEC驱动License安装

请联系华为一线业务负责人申请泰山服务器许可证,型号iBMCV2-02-KAE-01。拿取许可证后,请完成服务器许可证安装,参考以下步骤。

  1. 登录iBMC,依次单击iBMC管理->许可证管理

  2. 点击安装,上传申请的KAE许可证。

    安装完毕后,iBMC显示“SEC特性”处于开启状态。

BIOS设置

重启服务器,进入BIOS打开TrustZone特性开关,并配置TEE侧安全内存大小。

  1. 重启服务器,进入BIOS。

  2. 依次单击Advanced->TEE Config

  3. 打开TEE开关,根据需要配置TEE侧安全内存大小。

    安全内存大小选取请参考安全内存规格说明章节。

  4. 保存BIOS配置,重启服务器,进入REE侧普通系统。

获取iTrustee patch包

  1. 获取itrustee_client源码。
    git clone -b v1.0.0 https://gitee.com/openeuler/itrustee_client.git
  2. 获取itrustee_tzdriver源码。
    git clone -b v1.0.0 https://gitee.com/openeuler/itrustee_tzdriver.git
  3. 获取libboundscheck源码。
    git clone https://gitee.com/openeuler/libboundscheck.git
  4. 将libboundscheck分别放置在“itrustee_client/”目录和“itrustee_tzdriver/”目录下,并修改文件夹名称为libboundscheck,层级目录如下所示。

  5. 安装编译依赖。
    1
    yum install openssl-devel zlib-devel
    
  6. 编译itrustee_tzdriver。
    1
    cd itrustee_tzdriver && make
    

    编译完成后,会生成tzdriver.ko内核模块。

  7. 修改itrustee_client的Makefile文件。
    1. 打开“itrustee_client/Makefile”文件。
      vim itrustee_client/Makefile
    2. 将如下位置:

      修改为:

      LIB_LDFLAGS += -lboundscheck -Llibboundscheck/lib -shared
    3. 将如下位置:

      修改为:

      @$(CC) $(LIB_CFLAGS) -o $@ $(LIB_SOURCES) $(LIB_LDFLAGS)
    4. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  8. 编译itrustee_client。
    1
    cd itrustee_client && make
    

    编译完成后,会生成dist目录,存放生成的可执行二进制和动态库。

  9. 部署itrustee_client。
    1
    2
    3
    cp -rf dist/*.so /usr/lib64 && ldconfig
    cp -rf dist/teecd /usr/bin
    cp -rf dist/tlogcat /usr/bin
    

libboundscheck.so和libteec.so为patch驱动依赖库,需放在“/usr/lib64”目录。tlogcat提供REE侧查看TEE侧日志输出的能力,teecd为REE侧用户态守护进程,tlogcat、teecd需要放在“/usr/bin”指定目录。

加载REE侧驱动

  1. 加载tzdriver.ko内核模块。
    1
    2
    cd itrustee_tzdriver/
    insmod tzdriver.ko && lsmod | grep tzdriver
    

  2. 加载teecd守护进程。
    1
    2
    /usr/bin/teecd &
    ps aux | grep teecd
    

    teecd必须以绝对路径运行,即“/usr/bin/teecd”。“&”符号表示后台执行。

  3. 查看TEE侧日志输出,确认REE侧已具备与TEE侧通信能力。
    1
    tlogcat