CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

安全验签验证

Second Boot示例支持OTA固件安全验签功能,用户可根据自身使用场景,选择是否开启该验签功能。如开启该验签功能,可在Second Boot示例工程目录下的user_config.h中,设置BOOTLOADER_SIGN_ENABLE = 1

在验签前,用户可先使用GProgrammer对应用固件进行加签,完整的加签和验签过程如下:

  1. 生成私钥和公钥Hash值

    生成签名信息的具体操作请参考GProgrammer用户手册加密加签章节,原理可参考GR55xx固件加密及应用介绍数字签名技术章节。

    通过GProgrammer生成的用于加密加签的文件如下:

    图 9 生成的用于加密加签的文件
  2. 加签固件

    导入product.json文件和应用固件ble_tem_dfu_fw.bin,再点击Sign按钮,如图 10

    图 10 应用固件加签

    选择加签文件路径后,即可生成加签应用固件(文件名带有_sign,ble_tem_dfu_fw_sign.bin),如图 11所示:

    图 11 生成的加签固件
  3. Public_key_hash.txt中的公钥Hash值复制到Second Boot工程user_config.h的public_key_hash数组后,重新编译Second Boot固件。
    //Hash value of the signed public key
    static const uint8_t public_key_hash[] = 
    {
        0x08,0x57,0x41,0xDD,0x34,0x17,0x0C,0x01,0x43,0xFB,0xCA,0xA5,0x5C,0x51,0x81,0xF5
    };
    
  4. 对加签固件进行验证

    利用GProgrammer将重新编译生成的Second Boot固件second_boot_fw.bin和加签的ble_tem_dfu_fw_sign.bin下载至GR5515 SK板,并设置Second Boot固件作为Startup固件并运行。Second Boot固件会对ble_tem_dfu_sign.bin固件进行校验和验签,若验证成功,则跳转到该应用固件中运行,如图 12

    图 12 对加签固件进行验证

扫描关注

打开微信,使用“扫一扫”即可关注。