CA应用需要REE侧Patch才能实现与TEE侧的TA应用通信,REE侧Patch与TEE OS固件包存在版本配套关系,请参考表1。本文以openEuler 20.03 LTS SP1和最新的TEE OS 1.7.0为例介绍REE侧Patch的编译、部署。
TEE OS hpm固件版本 |
itrustee_tzdriver配套代码tag |
itrustee_client配套代码tag |
libboundscheck配套代码分支 |
---|---|---|---|
1.1.0 ≤ version < 1.2.0 |
v1.0.0 |
v1.0.0 |
master |
1.2.0 |
v1.2.0 |
v1.2.0 |
master |
1.3.0 ≤ version < 1.4.0 |
v1.3.0 |
v1.3.0 |
master |
1.4.0 |
v1.5.0 |
v1.5.0 |
master |
1.5.0 |
v1.5.0-r1 |
v1.5.0-r1 |
master |
>=1.6.0 |
master |
master |
master |
itrustee_tzdriver和itrustee_client代码仓的master分支始终匹配最新TEE OS版本,上述表格可能因延迟未能及时更新,若仓中有TEE OS对应版本的tag标签,则建议使用对应tag标签的源码。
如果服务器iBMC中“许可证管理”显示“Kunpeng accelerator SEC Function”已处于开启状态且未过期,可跳过本部分操作;否则请参考以下步骤完成TrustZone许可证导入使能“SEC特性”。
请联系华为业务负责人申请TrustZone许可证。获取许可证后,请参考以下步骤完成服务器许可证安装。
安装完毕后,iBMC显示“Kunpeng accelerator SEC Function”处于开启状态。
重启服务器,进入BIOS打开TrustZone特性开关,并配置TEE侧安全内存大小。
1
|
git clone https://gitee.com/openeuler/itrustee_client.git |
1
|
git clone https://gitee.com/openeuler/itrustee_tzdriver.git |
1
|
git clone https://gitee.com/openeuler/libboundscheck.git |
1 2 |
cp -rf libboundscheck itrustee_client cp -rf libboundscheck itrustee_tzdriver |
1
|
yum install openssl-devel zlib-devel kernel-devel |
1
|
cd itrustee_tzdriver && make |
一般情况下内核头文件位于“/usr/src/kernels/<内核版本>”下,若编译脚本未匹配到正确路径,则需要根据实际情况予以替换。请注意,编译使用的内核头文件版本必须与tzdriver.ko最终运行环境的内核版本保持一致,否则可能会出现因内核版本差异导致tzdriver.ko加载失败的情况。可使用uname -r命令查看当前运行环境的内核版本。
1
|
cd itrustee_client && make |
编译完成后,会生成dist目录,存放生成的可执行二进制和动态库。
1
|
make install
|
TEE OS 1.3.0版本起,SEC驱动需独立加载。低版本TEE OS可跳过此部分操作。
下载固件包提取SEC驱动文件“kunpeng_sec_drv.sec”。
1 2 |
mkdir -p /var/itrustee/tee_dynamic_drv/crypto/ cp kunpeng_sec_drv.sec /var/itrustee/tee_dynamic_drv/crypto/ |
1 2 |
cd itrustee_tzdriver/ insmod tzdriver.ko && lsmod | grep tzdriver |
tzdriver.ko加载后不支持卸载,仅支持服务器下电再启动的方式将其恢复为未加载状态。
1 2 |
nohup /usr/bin/teecd & ps aux | grep teecd |
1
|
tlogcat |
1
|
tlogcat -v
|
1
|
tlogcat -f & |
为了方便客户确认TrustZone环境搭建是否正确,华为提供了TEE状态检查工具对于环境进行检查。
从表2获取的固件压缩包里包含了TEE状态检测工具。在里面的tee_check目录下有如下文件。
1 2 3 4 |
mkdir -p /vendor/bin/ /data/tee-check cp -rf tee-check /vendor/bin/ cp -rf 35397f0d-26ef-476c-b955-4806f2c6454a.sec /data/tee-check cp -rf teeos.txt /var/itrustee/version/ |
1
|
/vendor/bin/tee-check |