i.MX系列芯片Yocto secure boot镜像签名

1 前言

安全引导是一种行业标准,用于确保设备引导一个受信任的原始设备制造商软件。NXP i.MX设备通过使用OEM受信任的根密钥来支持信任链(RoT)。通常,安全引导机制 (secure boot) 涉及对Bootloater和操作系统OS内核映像的签名和认证。
签名方法涉及通过分析构建日志确定需要签名的boot image部分,然后使用代码签名工具 (Code Signing Tool) 进行签名。这种方法通常是手动的,容易出错,可能导致签名/认证失败,最终可能导致引导失败。为了消除这种错误,NXP设计并提供了一种自动化方法,该方法分析输入的引导映像并使用CST进行签名。
作为NXP安全参考设计的一部分,NXP BSP发布包含了一个meta-nxp-security-reference-design/meta-secure-boot Yocto meta layer,支持i.MX引导映像签名自动化。本文主要介绍如何导入该layer并根据自己的配置实现自动化镜像签名的方法。

2 工具

2.1 Code Signing Tool

Code Signing TOOL 目前NXP提供的最新版为cst-3.4.0。该工具包含了用于生成密钥公钥的脚本,生成公钥hash和fuse的工具和进行代码签名的工具。如何使用该工具可参考博文使用CST进行secure boot。默认情况下,NXP CST签名工具使用i.MX 8/8x/8ULP/9系列设备的ECC P256-SHA256类型作为标准密钥,以及i.MX 6/7/8M系列设备的RSA 2048-SHA256类型作为标准密钥。这些密钥应该在CST的下载位置中提供。请参考CST包中的CST用户指南以生成密钥、证书、SRK表/熔丝,并获取更多信息。

2.2 NXP CST Signer

NXP创建的NXP CST Signer工具分析输入的NXP BSP映像,提取需要签名的映像的偏移量和大小,并为CST准备相应的命令序列文件CSF以进行签名。此工具作为meta layer的一部分用于支持映像签名。
NXP CST Signer工具具有以下特性:

  • 支持签名i.MX 6/7/8M系列设备的HAB和i.MX 8/8x/8ULP/9系列设备的AHAB映像。
  • 分析输入映像以签署IVT/FIT/容器格式的映像。
  • 从输入映像中提取偏移量和大小,并构造CSF。
  • CST签名器存储库中包含默认配置文件,填充了与要使用的密钥、证书和标志相关的基本信息,适用于HAB和AHAB设备。

详细可参考官方Github NXP CST Signer Tool

3 构建secure boot的Yocto配置

本节介绍根据官方手册的方法进行Yocto构建

3.1 Yocto配置

  1. 设置Yocto构建环境和配置
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.55-2.2.0_security-reference-design.xml
repo sync
DISTRO=<DISTRO> MACHINE=<MACHINE> source imx-setup-release.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值