王國慶 发表于 2024-10-21 04:10:51

高通Linux安全指南(五)

配置安全启动项

高通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)。
请参阅工作流程以相识目标外准备和设备上的执行。
https://i-blog.csdnimg.cn/direct/b02b329410394d8ba8e299bf169cca94.png
只有在吹掉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:
set SECTOOLS=\<chipset>.LE.X.x\common\sectoolsv2\ext\windows\sectools.exe

[*]对于Linux:
setenv SECTOOLS=/<chipset>.LE.X.x/common/sectoolsv2/ext/linux/sectools
export SECTOOLS=/<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)。但是,如果使用本地(不安全)签名器,请参阅<<SecTools V2:Secure Image User Guide>>中的本地签名
[*] 所有密钥和证书天生命令均使用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。
刷写镜像

刷写镜像涉及将整个镜像(包罗分区、文件系统和数据)写入存储设备。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 高通Linux安全指南(五)