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.

[FAQ] [参考译文] 【常见问题解答】TDA4AL-Q1:使用 OPTEE 更新 keyrev 的参考代码

Guru**** 2535150 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1566654/faq-tda4al-q1-reference-code-to-update-keyrev-using-optee

器件型号:TDA4AL-Q1


工具/软件:

帮助获取参考代码、以使用 optee 更新 KEYREV。

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

    OPTEE 中的关键修订更新流程

    概述

    本指南提供了使用 OPTEE 更新关键修订版的全面演练、涉及证书生成、可信应用程序创建和客户端应用程序实现。

    详细步骤

    1.双签名证书生成

    目标: 创建具有两级签名机制的证书

    • 使用 SMPK(主密钥)签名的主证书
    • 使用 BMPK(备份密钥)签名的辅助证书

    证书生成流程

    1. 使用  脚本生成双签名证书。
      python3 dualCertGen.py -s smpk.pem -b bmpk.pem
    2. 上面的脚本将生成二进制格式的证书。 使用以下命令将二进制转换为“.h"格“格式:
      xxd -i dual_cert_keyrev.bin > keycert.h

    2.值得信赖的应用程序开发

    准备:

    关键考虑因素:

    • 在调用 TIFS API 之前、双签名证书被复制到 OCMC 内存 (0x41CFEFFF)、
       如果已经使用 上述地址范围 (0x41CFEFFF)、请确保相应地执行这些更改。

    3.客户端应用程序创建

    实施:

    关键要求:

    • 利用keycert.h(#Step1 中转换后的双签名证书)
    • 确保与可信应用程序正确集成

    4、编译和部署步骤

    1. 按照 SDK 文档编译 OPTEE OS
    2. 编译客户端应用程序
    3. 将客户端应用程序复制到根文件系统

    5、验证过程

    1. 引导目标器件
    2. 启用 VPP。
    3. 执行 /optee_example_otp_keyrev
    4. 上述应用程序执行成功后、密钥版本将得到更新。
    5. 要验证相同的。 按照 常见问题解答中提到的步骤操作。您应该会看到 keyrev 的更新值、如下所示。

      在 Keyrev 更新之前:
      -----------------------
      SoC ID Header Info:
      -----------------------
      NumBlocks            : 2
      -----------------------
      SoC ID Public ROM Info:
      -----------------------
      SubBlockId           : 1
      SubBlockSize         : 26
      DeviceName           : j7aep
      DeviceType           : HSSE
      DMSC ROM Version     : [0, 1, 0, 1]
      R5 ROM Version       : [0, 1, 0, 1]
      -----------------------
      SoC ID Secure ROM Info:
      -----------------------
      Sec SubBlockId       : 2
      Sec SubBlockSize     : 166
      Sec Prime            : 0
      Sec Key Revision     : 1
      Sec Key Count        : 2
      Sec TI MPK Hash      : bf0efb75bade39aa63eab5514b98ebda84cb1dd8a35e07b7a0f473760592a465d82f4945ee60da406209b1748f16074e47ccd30cea5c2ba494eca747ad876d1c
      Sec Cust MPK Hash    : 1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189760dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d
      Sec Unique ID        : 8ed01cc5eafff89affa2b44942b8659ff5c57a2159878c3cbfb656c78c130699

      更新 keyrev 后:
      -----------------------
      SoC ID Header Info:
      -----------------------
      NumBlocks            : 2
      -----------------------
      SoC ID Public ROM Info:
      -----------------------
      SubBlockId           : 1
      SubBlockSize         : 26
      DeviceName           : j7aep
      DeviceType           : HSSE
      DMSC ROM Version     : [0, 1, 0, 1]
      R5 ROM Version       : [0, 1, 0, 1]
      -----------------------
      SoC ID Secure ROM Info:
      -----------------------
      Sec SubBlockId       : 2
      Sec SubBlockSize     : 166
      Sec Prime            : 0
      Sec Key Revision     : 2
      Sec Key Count        : 2
      Sec TI MPK Hash      : bf0efb75bade39aa63eab5514b98ebda84cb1dd8a35e07b7a0f473760592a465d82f4945ee60da406209b1748f16074e47ccd30cea5c2ba494eca747ad876d1c
      Sec Cust MPK Hash    : 1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189760dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d
      Sec Unique ID        : 8ed01cc5eafff89affa2b44942b8659ff5c57a2159878c3cbfb656c78c130699


     6.参考资料:

    1. software-dl.ti.com/.../otp_revision.html


    此致
    Diwakar