机密OS升级
服务器兼容性列表
- 如需使用高级语言支持、机密容器、机密虚拟机等特性,需将TEE OS升级为机密OS。
- 当前已支持TrustZone功能的服务器型号在升级机密OS和使用机密OS的方式上有一定的差异,详细的差异说明请参见表1。
- 升级机密OS会中断当前iTrustee内正在运行的TA应用。避免业务中断,建议在未运行任何业务TA情况下完成机密OS升级。
- 机密OS对安全内存要求4G以上。避免机密OS升级失败,请确认BIOS里安全内存配置大小不低于4G。
- 直接启动,系统启动时加载的TEE OS即为机密OS。
延迟启动
配套固件要求如表2所示。
参考如下步骤完成机密OS部署、启动运行。
- 针对不同机型,请参见表2下载获取TEE OS固件包,并参考固件升级完成iTrustee固件升级。
- 针对不同机型,参考表2下载获取BIOS固件包,并参考固件升级完成BIOS固件升级。
- 参考搭建步骤编译和部署tzdrvier、teecd、sec驱动等ree-patch组件,完成TrustZone环境搭建,并确认TEE OS版本。
tlogcat -v
此时的TEE OS为iTrustee OS,详细版本如下。
- 部署用于升级的TA和机密OS镜像,两者可从表2获取。
cp 9ab6f960-54f3-4317-a8f7-e92ed12b6ae2.sec /var/itrustee/image/ cp trustedcore.img /var/itrustee/image/
- 获取用于升级的CA源码,编译出tee_upgrade.ko。
git clone https://gitee.com/openeuler/itrustee_sdk.git -b master git clone https://gitee.com/openeuler/libboundscheck.git mv libboundscheck/ itrustee_sdk/thirdparty/open_source/
修改Makefile指定tzdriver头路径和内核符号路径,tzdriver可使用搭建步骤下载的。cd itrustee_sdk/test/CA/tee_upgrade vim Makefile
make
- 一般情况下内核头文件位于“/usr/src/kernels/<内核版本>”下,若编译脚本未匹配到正确路径,则需要根据实际情况予以替换。请注意,编译使用的内核头文件版本必须与tee_upgrade.ko最终运行环境的内核版本保持一致,否则可能会出现因内核版本差异导致tee_upgrade.ko加载失败的情况。可使用uname -r指令查看当前运行环境的内核版本。
- tee_upgrade编译依赖tzdriver中的头文件以及内核符号,可通过EXTRA_CFLAGS指定tzdriver中头文件搜索路径,以及通过KBUILD_EXTRA_SYMBOLS指定tzdriver导出的内核符号文件Module.symvers路径。
- 一些编译环境不指定内核符号文件路径,编译仅有一些警告日志。一些编译环境会将警告当作错误,导致编译失败,此时必须指定内核符号文件路径。
- 在tzdriver已加载,且tzdriver中的内核符号文件不在时,可重新下载tzdriver进行编译。若报“strcpy_s”等符号找不到,可修改tzdriver的Makefile,将安全函数编译进tzdriver.ko中,可做如下修改:
- 加载tee_upgrade.ko模块,完成机密OS升级。
insmod tee_upgrade.ko
- 升级完毕后会中止teecd,需要重新启动teecd。
/usr/bin/teecd &
- 查询当前TEE OS版本,此时显示为CCOS(机密OS)。
tlogcat -v
运行用于升级机密OS的CA和TA时,需teecd处于运行状态。待完成机密OS升级后,再加载运行teecd守护进程。
父主题: 特性使用