配置安全启动项
高通TEE配置可以通过设备配置(devcfg)框架进行调整。
TrustZone通过XML文件提供配置选项,例如:trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config//oem_config.xml。
XML配置文件会被编译到devcfg.mbn中。以下命令用于从TZ.XF.5.0编译devcfg镜像:
cd trustzone_images/build/ms
python3 build_all.py -b TZ.XF.5.0 CHIPSET=<chipset> devcfg
trustzone_images/build/ms/bin/<build_flavor>
有关编译和构建的详细说明,请参见《Qualcomm Linux Build Guide》 ➝《GitHub workflow (firmware and extras)
设备配置
属性描述OEM_pil_secure_app_load_region_size配置以自定义TA(Trust Application)大小。OEM_pil_subsys_load_region_start配置以自定义PIL(Primary Image Loader)加载起始地址,当默认内存映射有变化时使用。OEM_pil_subsys_load_region_size配置以自定义PIL大小,当默认内存映射有变化时使用。OEM_enable_app_fatal_err当特定TA崩溃时,可用此属性强制TZ系统发生致命错误。与OEM_crash_ta_name一起使用。OEM_crash_ta_name用崩溃的TA名称替换条目,并且预期安全内核会在该TA上崩溃。OEM_sec_wdog_bark_time更改设备的安全看门狗吠叫时间的默认配置。OEM_sec_wdog_bite_time更改设备的安全看门狗咬合时间的默认配置。OEM_tz_log_level设置TZ日志级别:
Fatal: 0
Error: 1
Debug: 2
基于RPMB的SFS防回滚保护
可以在位于 trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config/common/cmnlib_oem_config.xml 的XML配置文件中启用或禁用基于RPMB的SFS防回滚保护。
SELinux配置
通过SSH连接到设备。
使用以下命令更改SELinux模式。
- 将设备切换到强制模式:
setenforce 1
- 将设备切换到宽松模式:
setenforce 0
- 检查设备当前的配置(强制模式或宽松模式):
getenforce
启用安全启动
通过吹掉一组作为QFPROM一部分的硬件熔丝来启用安全启动。根证书的哈希值被吹入硬件熔丝,作为主要的信任根(RoT)。
启用SELinux
当SELinux启用时,所有系统对象,包括文件、目录、进程、套接字、驱动程序等,都被标记有安全上下文。
启用UEFI安全启动
你可以设置初始的UEFI安全启动配置,并将密钥和证书转换为UEFI可以理解的格式。
示例OpenSSL配置
示例显示了用于生成密钥和证书请求的配置文件。
安装或升级QCS5430 SoftSKU功能包
你可以使用Qualcomm®无线边缘服务(Qualcomm WES)许可证升级QCS5430软库存单位(SKU)功能包。
启用安全启动
通过吹掉属于QFPROM的一组硬件熔丝来启用安全启动。根证书的哈希值被吹入硬件熔丝,作为主要的信任根(RoT)。
请参阅工作流程以了解目标外准备和设备上的执行。
只有在吹掉QFPROM(一种eFuse)后才能保证安全启动。启用平台安全启动所需的eFuse配置包括:
- 启用镜像认证和防回滚保护。
- 禁用调试和JTAG访问。
- 吹掉QFPROM区域的读写权限禁用熔丝。
启用安全启动,请按照以下步骤操作:
- 从高通获取唯一的OEM ID。 在使用代码授权签名服务(CASS)或高通WES服务时需要该ID。或者,你可以使用0作为OEM ID的值。
- 生成并配置签名资产,如密钥和证书。
- 生成用于吹熔丝的签名ELF文件(sec.elf)。
- 签名固件镜像。
- 将sec.elf和签名的镜像刷写到设备。
非Linux基础的镜像使用Sectools v2和本地签名器进行签名。这个过程需要在进行签名的本地机器上存在签名证书和密钥。然而,这些密钥并不安全,在Sectools运行的机器上进行和完成签名过程中可能会暴露。
使用OpenSSL工具自生成的密钥和证书不与任何认证机构相关联。
启用安全启动的前提条件
- 设置Sectools v2的环境变量。有关更多信息,请参见工具文档。以下代码片段作为参考。根据使用的版本替换和.LE.X.x。例如,<QCM6490.LE.1.0>。> 注意:> 术语metabuild、meta和meta路径互换使用,用于指代来自高通ChipCode™门户的路径。 metabuild表示构建的完整Qualcomm ChipCode发布版本。- 对于Windows:
setSECTOOLS=\<chipset>.LE.X.x\common\sectoolsv2\ext\windows\sectools.exe
- 对于Linux:setenv SECTOOLS=/<chipset>.LE.X.x/common/sectoolsv2/ext/linux/sectoolsexportSECTOOLS=/<chipset>.LE.X.x/common/sectoolsv2/ext/linux/sectools
- 安装Sectools v2,它位于meta的 .LE.X.x/common/sectoolsv2/ext/ 目录中。- _security_profile.xml 文件位于meta的 .LE.X.x/common/sectoolsv2 目录中。- 最低版本要求是1.17。
- 建议使用硬件安全模块(HSM)。但是,如果使用本地(不安全)签名器,请参阅<> 中的本地签名
- 所有密钥和证书生成命令均使用OpenSSL 1.1.1g(2020年4月21日)执行。安装OpenSSL是前提条件。
- 确保在未进行RPMB配置的设备上启用安全启动。参见检查RPMB配置状态。 在吹入安全启动熔丝后,RPMB将自动使用生产密钥进行配置。### QFPROM熔丝下表列出了可以吹入以启用安全启动的各种QFPROM熔丝值。### 生成本地(不安全)根密钥和证书版本3(v3和v3_attest)扩展用于定义证书格式并创建CA(证书颁发机构)。### 生成ECDSA根密钥和证书相比RSA签名算法,ECDSA提供更高的安全性和性能。因此,Sectools的默认配置支持ECDSA签名。### 生成RSA CA密钥对和证书RSA是一种加密算法,使用一对密钥加密和解密数据,以确保数据传输的安全性。### 生成RSA和ECDSA的SHA-384哈希SHA-384哈希在加密应用中非常重要,包括增强安全强度、创建数字签名、确保符合标准和未来防范。### 签名镜像镜像签名确保镜像的真实性、完整性和来源。### 生成签名的sec.elf镜像此信息仅提供示例命令。有关生成熔丝烧录器二进制文件的信息,请参见SecTools V2:Fuse Blower User Guide。### 刷写镜像刷写镜像涉及将整个镜像(包括分区、文件系统和数据)写入存储设备。
版权归原作者 weixin_38498942 所有, 如有侵权,请联系我们删除。