高通Linux安全指南(八)

从systemd-boot菜单启用UEFI安全启动

EFI二进制文件由签名的镜像和安全启动密钥组成,这些密钥和镜像生成后被刷写到系统中。更多详细信息,请参见签名镜像并将(.auth)密钥/签名文件复制到EFI分区。
当UEFI在下次启动时加载并执行,systemd-boot管理器将在屏幕上显示“Enroll Secure Boot keys: authkeys”和“Ubuntu 18.04.6 LTS”菜单选项。

注意:
配置了超时后会显示这些选项。更多信息,请参见签名镜像并将(.auth)密钥/签名文件复制到EFI分区中的loader.conf设置。

systemd-boot菜单选项
图示:systemd-boot菜单选项

您可以使用音量 +/- 按钮导航并选择适当的选项来注册密钥。
当密钥成功注册后,UEFI会自动从SetupMode切换到UserMode。当systemd-boot触发系统重置以应用更改时,UEFI安全启动启用的日志会在串行日志中列出。
默认情况下,UEFI以UserMode启动,并且UEFI安全启动在后续启动循环中初始化。当systemd-boot将控制权转移给KERNEL EFI STUB时,UEFI安全启动启用的日志会在串行日志中列出。
串行日志中的UEFI安全启动启用信息
图示:串行日志中的UEFI安全启动启用信息

通过systemd-boot注册密钥的选项仅提供一次。本版本不支持重新配置和更新UEFI安全启动密钥。

哈希未签名的镜像并更新数据库以进行镜像认证

UEFI安全启动允许镜像认证。即使镜像未签名或镜像中的证书未存储在签名数据库(DB)中,通过存储在签名数据库中的镜像哈希也可以进行认证。
此过程保留用于无法从供应商提供状态进行签名或修改的内容。如果DBX拒绝列表中存在镜像哈希,可以取消对签名二进制文件的信任,而无需撤销相应的证书或密钥。例如,这在处理一个先前签名但存在漏洞的引导加载程序时非常有用。
对同一二进制文件应用签名并创建DB哈希是冗余的。如果镜像组成不需要任何更改,即不添加或修改镜像中的新密钥和证书,并且现有镜像不需要UEFI安全启动认证,请遵循以下步骤。

为未签名的镜像生成db.auth文件

您可以计算镜像的哈希并通过以下步骤生成允许的签名DB文件:

  1. 生成要验证的所有镜像的哈希并将哈希转换为.esl文件:

    hash-to-efi-sig-list  <list of efis to be hashed>  <output file name with .esl extension>
    
  2. 使用DB密钥签署哈希.esl文件:

    sign-efi-sig-list -k < .key file location > -c < .crt file location > <secure variable name> <Above generated .esl file> <o/p .auth file>
    
  3. 将生成的db.auth文件复制到EFI二进制文件中并将密钥配置到设备中。
    例如,在Linux主机上:

    1. 挂载efi.bin文件到目录,并在目录中创建一个efimountedbin文件夹。

    2. 在Linux机器的目录中创建一个testkeys文件夹并将预先存在的密钥复制到该文件夹中。

    3. 签名镜像:

      hash-to-efi-sig-list <workspace>/efimountedbin/EFI/BOOT/bootaa64.efi <workspace>/efimountedbin/EFI/Linux/uki.efi mergedhash.esl 
      sign-efi-sig-list -k keys/db.key -c keys/db.crt db mergedhash.esl db.auth
      
    4. 将db.auth文件复制到/efimountedbin/loader/keys/qckeys中的qckeys文件夹。

    5. 按照dtb签名步骤签名dtb镜像以生成新的efi.bin文件。更多信息,请参见签名镜像并将(.auth)密钥/签名文件复制到EFI分区。

    6. 对于目标上的Linux主机:

      a. 擦除任何现有的UEFI安全启动密钥并使用fastboot刷写EFI二进制文件。
      b. 使用systemd-boot配置密钥。更多信息,请参见从systemd-boot菜单启用UEFI安全启动。

   注意:   所有未签名的文件均使用其他密钥签名,并通过UEFI使用此方法进行认证。

安装或升级QCS5430 SoftSKU功能包

您可以使用Qualcomm®无线边缘服务(Qualcomm WES)许可证来升级QCS5430软库存单位(SKU)功能包。
有关功能包的更多信息,请参见 QCS5430: Feature packs
图示展示了升级QCS5430 SoftSKU功能包的过程:
在这里插入图片描述

下载评估许可证

根据表中列出的功能包下载评估许可证:

功能包许可证文件下载链接
FP2QCM5430 FP2.0
FP2.5此信息将在未来版本中更新
FP3此信息将在未来版本中更新

功能包 许可证文件下载链接
FP2 QCM5430 FP2.0
FP2.5 此信息将在未来版本中更新
FP3 此信息将在未来版本中更新

准备设备
  1. 设置设备上的Wi-Fi并获取设备IP地址。

  2. 通过SSH连接设备:

    ssh root@device-ip-address
    

    有关详细说明,请参见《Qualcomm Linux Build Guide》 ➝《How to》 ➝《How to SSH》

  3. 将许可证推送到设备:

    scp /path/to/<QCM5430 FP*>.pfm root@device-ip-address:/data/
    
安装评估许可证
  1. 确保您具备以下前提条件:
    RPMB已经配置。
    设备中可用qwes_cli工具。

  2. 安装Qualcomm WES命令行界面工具:
    帮助:qwes_cli –help。
    默认工具随Qualcomm Linux软件产品一起提供。

  3. 安装评估许可证:

    ssh root@device-ip-address
    qwes_cli -f /temp/<QCM5430 FP*>.pfm install
    
  4. 验证许可证安装:

    qwes_cli list
    
命令输出
检查序列号:
qwes_cli list
# qwes_cli list
Running GetAllSerialNumber test with multithread Disabled
Success. Len = 25
Parsing 2 serial numbers
Serial Number: 15b3
Serial Number: 3e52b512f2f47851a40fa5b30000018c86261aa1

请确保重启设备以使许可证生效。

验证功能包升级

有两种方法可以验证功能包:

  • 通过以下命令验证功能包升级:

    ssh root@device-ip-address
    cat /proc/device-tree/model
    

    输出中显示功能包ID模型:
    Qualcomm Technologies, Inc. qcs5430 fp2 addons rb3gen2 platforms.

    注意
    功能包和模型ID映射为{Feature Pack2: fp2 ; Feature pack2.5 : fp2.5; Feature pack 3: fp3}。

  • 从以下UEFI日志中验证功能包ID:

    FLP1SoftSKU ID 已禁用。默认设置为 1。
    FP2SoftSKU ID 已启用。此处更新:2
管理设备许可证

您可以执行以下操作来管理您的设备许可证:

  • 升级功能包或应用新许可证。
    • 可以安装多个许可证。
    • 设计上将强制执行具有最高功能包的许可证。
    • 可以在提供的功能包许可证之间升级或降级。
    • 要降级,请删除具有更高功能包的许可证并应用所需功能包的许可证。
  • 移除评估许可证。
    • 获取许可证序列号:

      qwes_cli list
      Running GetAllSerialNumber test with multithread Disabled
      Success. Len = 25
      Parsing 2 serial numbers
      Serial Number: 15b3
      Serial Number: 3e52b512f2f47851a40fa5b30000018c86261aa1
      
    • 移除许可证:

      ssh root@device-ip-address
      qwes_cli -s 3e52b512f2f47851a40fa5b30000018c86261aa1 remove
      Serial number length 20
      Remove License is successful.
      
    • 验证移除的许可证序列号是否不在许可证列表中:

      qwes_cli list
      Running GetAllSerialNumber test with multithread Disabled
      Success. Len = 4
      Parsing 1 serial numbers
      Serial Number: 15b3
      
功能包许可证 – 软件升级后的持久性
  • 许可证安装在持久安全存储RPMB中。
  • 当许可证成功安装时,其元数据存储在RPMB中,并且在数据分区中保留一份副本。
  • 即使用户数据被擦除,许可证仍保存在RPMB中,设备功能不受影响。

注意:
拥有完整访问Qualcomm Linux附带的专有软件的用户可以管理功能包许可证。如果您有访问权限,请参见《Qualcomm Linux Wireless Edge Services Guide》

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值