查看: 3229|回复: 0

imx rt 系列的HAB Code-Signing Tool 简介

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3873

    主题

    7477

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39278
    最后登录
    2025-7-21
    发表于 2020-2-5 11:03:47 | 显示全部楼层 |阅读模式
    1.简述


      CST能够让制造商为其包含NXP处理器的产品签署或加密软件。结合NXP处理器中包含的高保证引导(HAB)特性,CST可以用来确保只有验证过的可靠的软件才能在最终产品上运行。


    名词解释:


    HAB:High Assurance Boot 高保障引导
    Code-Signing Tool:代码签名工具
    组成:


    nxp处理器引导rom中的HAB库
    HAB CST
    1.2 HAB 库


      HAB库是nxp处理器上引导ROM的一个组件,HAB 主要负责验证产品软件的数字签名,确保未经验证的代码运行。同时也能提供程序克隆保护。
    21.png
    上图为使用HAB时的引导流程,具体细节参考《HAB Code Signing tool user's guide》。


    HAB库分为两个版本HAB3及HAB4,HAB4的功能更多一些,rt1050用的是HAB4进行签证。


       为了允许ROM外部的引导组件继续安全引导连,这些组件必须可以回调到HAB中,所以提供了HAB库的API,根据HAB3,HAB4也有两个版本详见I.MX25,i.MX35和i.MX50参考手册的系统启动章节。


    1.3HAB CST


      在完成代码加密签名时涉及到以下几个部分:


    CA(A Certificate Authority 证书颁发机构?): CA负责保护顶级CA密钥并验证低级代码签名密钥。
    SA(A Signature Authority 签名权威?):SA负责执行代码签名的行为
    A Manufacturer  制造商:负责跨蟾片软件请求数字签名
    22.png
    CST则是位于上位机的命令行工具,提供CA,SA让制造商控制HAB代码签名的过程。


    CST可以在用户提供的数据(SA)生成数字签名,同时也能简历代码签名所需要的密钥和证书的PKI树。CST生成的签名可作为最终产品软件映像的一部分,然后由HAB进行验证签名。


    CST主要有两个输入项:


        1.待签名的二进制image或者产品软件的image


        2.CSF文件:CSF文件向cst提供关于对二进制哪些区域需要签名,用哪个密钥对image进行签名的信息。(flashloader中即bdfile)


      CST接收输入并生成二进制HAB数据,其中包括签名,证书和CSF命令,然后将其附加到产品软件用以创建签名image。下图为一个签名的示意图。
    23.png
    其中一些处理器提供加密image。下图是加密的示意图:
    24.png
    CST生成一次性AES数据加密密钥(DEK),DEK独立于用于代码签名的公钥。同时必须再每块处理器的OEM制造阶段创建DEK的加密块,然后将其附加到引导设备的image中。原因是DEK blob是使用嵌入到nxp处理器中的期间唯一密钥创建的,该密钥只能由偏上加密引擎读取。DEK对于所有使用相同加密图像的IC都很常见,但DEK blob对每个IC都是唯一的。
    25.png
    2.HAB4证书和密钥即PKI树


      HAB4的树由文件hab4_pki_tree脚本( windows 为.bat,linux是.sh)生成。下图是PKI树的组成:


    PKI树由以下密钥和证书组成:
    26.png
    CA密钥:是最上层的密钥,仅用于签署生成SRK证书。
    lSRK:是HAB代码签名密钥的根密钥。 SRK表格的加密哈希被制成一次性可编程的efuse以建立信任根。每个复位周期中只能选择表中的一个SRK(表中最多可以存放四个SRK)。选择哪个SRK是Install Key CSF 命令中的一个参数决定的。
    lCSF:是SRK的下级密钥,用于验证CSF命令中的签名。
    IMG:是SRK的下级密钥,用于验证产品软件中的签名。
    注:不会为快速身份验证PKI书生成CSF 和IMG密钥。
        hab4_pki_tree脚本生成一个基本树,最多可以生成四个SRK,对于每个SRK,还会生成一个CSF密钥和IMG密钥。其他密钥可能需要使用单独的add_key脚本添加到树中。(也可以用另一个密钥生成解决方案替换OpenSSL和hab4_pki_tree脚本)



    作者:lwplwp2          文章出处:点击

    qiandao qiandao
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 01:05 , Processed in 0.078453 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表