This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-MSPM0L2228:如何在 CSC 代码中启用回滚

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1518482/lp-mspm0l2228-how-to-enable-rollback-in-csc-code

器件型号:LP-MSPM0L2228

工具/软件:

您好团队:

我在 SDK 中的"Customer_secure_code.c"找到了这个回滚保护代码。  

我认为这是阻止回滚、但如果我要执行回滚、我是否只需要删除此函数?

是否还有其他事情要做?

#ifdef CSC_ENABLE_ROLLBACK_PROTECTION
        /* Check that the current version is at least as recent, if not, fail.
         * TODO: this is a preliminary version of rollback protection, more secure monotonic
         * variants will be explored in future releases of the Customer Secure Code, and
         * being integreated into MCUBoot.
         */
        Rollback_status status;
       
        status = Rollback_compareCount(bootRsp.br_hdr->ih_ver.iv_major); 
        if (status != ROLLBACK_OK) {
            mcubootFail();
        }
#endif

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是保护(验证)映像本身不会通过其他方式更改的基本方法。

    它没有得到足够的保护。

    这不是回滚的函数、而是与回滚保护相关的函数。

    以下是您的问题:如何在 CSC 中启用回滚?

    以下是我的建议:

    1. 设置回滚条件,如新映像无法通过 CRC 检查,这取决于您自己的验证要求。

    2.将此无效应用标记为无效状态,然后运行存储体交换

    3.然后在您的 CSC 引导代码中,引导将检查有效的应用程序,然后运行它。

    所有这些步骤都只是建议步骤、实际的回滚代码应该与您的 CSC 功能高度结合。

    CSC 中已经有某种回滚功能、CSC 将运行哈希计算、如果映像无法通过此验证、CSC 将自动找到通过验证且具有最新版本号的映像、然后跳转到该应用程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Helic,

    感谢您的支持。  

    CSC 将自动找到通过验证且具有最新版本号的映像

    您知道在哪里可以找到相关代码吗?  

    此致、

    Robin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    boot_return_master_version (&bootRsp);
    此函数将返回最新版本的映像。
    在此函数中、  
    boot_go (&bootRsp);
    will 调用  
    Context_boot_go、
    此函数中有映像验证功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Helic、

    谢谢您、我找到了该功能。

    此外、您提到 CSC 运行哈希计算、但函数似乎为空。 用户是否应该修改并使用这部分代码?

    CSC 将运行哈希计算

    此致、

    罗宾·金

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它应该在中  

    BOOT_IMAGE_CHECK
    然后输入  
    BootUtil_img_validate
     
    然后输入  
    BootUtil_img_hash
    这是有效的 SHA256计算。