3. 安全镜像生成

本章概述 CV184x Spinor 安全启动场景下,FIPFIT(内核/设备树)SquashFS RootFSDATA(userdata) 四层签名或加密与验签的关系。具体操作、命令与密钥生成请分章阅读:

3.1. 四层保护对照

对象

典型镜像/分区

说明

FIP

fip.bin / fip_enc.bin

ROM/BL1 对 FIP 验签与解密(可选);需 CONFIG_FSBL_SECURE_BOOT_SUPPORT 等配置,详见 FIP 签名与加密及 eFuse

内核(FIT)

boot.spinor 内 FIT

U-Boot 对 FIT 验签与可选解密;与 Enable kernel secure boot、U-Boot Security 等选项相关,详见 FIT 镜像安全启动

RootFS

rootfs.spinor(SquashFS)

构建时追加签名块,内核挂载前验签,详见 SquashFS RootFS 签名与内核验签

userdata(DATA)

data.spinor(JFFS2)

构建时追加 trailer,启动脚本调用 verify_data_sig 通过后挂载,详见 DATA 分区(userdata)签名与验签

注解

注意事项

为避免量产密钥被窃,建议量产密钥单独保管,并在安全环境下进行签名与加密操作。

3.2. 密钥与工具(速查)

FIP 侧常用私钥与密钥文件包括:rsa_hash0.pembl_priv.pemloader_ek.keybl_ek.key;FIT 与 RootFS、DATA 签名常与 ramdisk/keys/test_reeos.keylinux_5.10/certs/cert.pem 配合使用。fipsign.py 与 eFuse 见 FIP 签名与加密及 eFuse;FIT 密钥与菜单项见 FIT 镜像安全启动。FIP 签名工具路径示例:

python3 fsbl/plat/cvitek/cv184x/common/fipsign.py sign-enc --help

仅签名不加密时可使用 sign 子命令(参数见工具 --help 输出)。U-Boot 镜像生成仍参考《U-boot 移植应用开发指南》等文档得到原始 fip.bin 后再做签名或加密。