ZHCAC19A January   2023  – December 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 关键概念
    2. 1.2 网络安全目标
    3. 1.3 平台信息安全机制
  5. 2器件安全模型
    1. 2.1 器件标识
    2. 2.2 启动时的初始条件
    3. 2.3 引导配置例程 (BCR)
    4. 2.4 引导加载程序 (BSL)
    5. 2.5 启动流程
    6. 2.6 用户指定的安全策略
      1. 2.6.1 引导配置例程 (BCR) 策略
        1. 2.6.1.1 串行线调试相关策略
          1. 2.6.1.1.1 SWD 安全级别 0
          2. 2.6.1.1.2 SWD 安全级别 1
          3. 2.6.1.1.3 SWD 安全级别 2
        2. 2.6.1.2 引导加载程序 (BSL) 启用/禁用策略
        3. 2.6.1.3 闪存保护和完整性相关策略
          1. 2.6.1.3.1 锁定应用 (MAIN) 闪存
          2. 2.6.1.3.2 锁定配置 (NONMAIN) 闪存
          3. 2.6.1.3.3 验证应用 (MAIN) 闪存的完整性
        4. 2.6.1.4 引导加载程序 (BSL) 安全策略
          1. 2.6.1.4.1 BSL 访问密码
          2. 2.6.1.4.2 BSL 读取策略
          3. 2.6.1.4.3 BSL 安全警报策略
      2. 2.6.2 客户安全代码 (CSC) 安全策略
        1. 2.6.2.1 CSC 强制存储体交换
        2. 2.6.2.2 CSC 强制防火墙
        3. 2.6.2.3 CSC 密钥写入 KEYSTORE
      3. 2.6.3 配置数据错误抵抗
        1. 2.6.3.1 由 CRC 支持的配置数据
        2. 2.6.3.2 16 位关键字段模式匹配
  6. 3安全启动
    1. 3.1 安全处理环境隔离
    2. 3.2 客户安全代码 (CSC)
      1. 3.2.1 安全启动流程
      2. 3.2.2 闪存映射
      3. 3.2.3 特性
        1. 3.2.3.1 CMAC 加速
        2. 3.2.3.2 非对称验证
        3. 3.2.3.3 KEYSTORE 及防火墙
        4. 3.2.3.4 CSC 性能
      4. 3.2.4 快速入门指南
        1. 3.2.4.1 环境设置
        2. 3.2.4.2 分步指导
        3. 3.2.4.3 CSC NONMAIN 配置
        4. 3.2.4.4 定制 CSC 示例上的更改
    3. 3.3 启动映像管理器 (BIM)
      1. 3.3.1 安全启动流程
      2. 3.3.2 闪存映射
      3. 3.3.3 快速入门指南
  7. 4安全存储
    1. 4.1 闪存写保护
    2. 4.2 闪存读取-执行保护
    3. 4.3 闪存 IP 保护
    4. 4.4 数据存储体保护
    5. 4.5 安全密钥存储
    6. 4.6 SRAM 保护
    7. 4.7 硬件单调计数器
  8. 5加密加速
    1. 5.1 硬件 AES 加速
      1. 5.1.1 AES
      2. 5.1.2 AESADV
    2. 5.2 硬件真随机数发生器 (TRNG)
  9. 6常见问题解答
  10. 7总结
  11. 8参考资料
  12. 9修订历史记录

定制 CSC 示例上的更改

更改应用程序起始地址

本节介绍了 MSP0 SDK CSC 示例中使用的一些与闪存地址相关的参数,以帮助用户更好地了解如何更改应用程序起始地址。

请参阅图 3-11图 3-12 左侧显示的参数是在 CSC 示例 Sysconfig 中定义的,所有这些参数都应该与 customer_secure_code 示例和 customer_secure_sample_image 示例链接器文件 (.cmd) 中的相应参数定义相同。

  • CSC 锁定存储地址:此地址应定义成大于 CSC 代码大小。
  • CSC 锁定存储大小:锁定存储区域的大小。
  • CSC 机密地址:机密区域起始地址,就在锁定存储区域之后。
  • CSC 机密大小:机密区域大小。
  • CSC 应用程序映像基地址:映像标头的起始地址。应用中断向量将放置在此地址之后 0x100 字节处(图像标头大小)。
  • CSC 应用程序映像大小:它应大于原始无符号应用程序代码大小 + 图像标头大小 + 图像 TLV 大小(CSC 示例中约 160 字节)。它确定映像尾部信息的放置位置,而未使用的区域将用 0xFF 填充。
注:

如果未在 CSC sysconfig 中启用“Security Configurator”,则将在 flash_mem_backend.c 文件中为不同的器件系列定义 CSC 地址和大小参数。用户需要更改此源文件以实现应用程序地址修改。需要对链接器文件和 signingArgs.json 文件进行相同的更改。

图 3-12 的右侧在 customer_secure_sample_image 示例中的 signingArgs.json 文件中定义:

  • slotSize:它需要同 CSC 应用程序映像大小相同。
  • 偏移量:它需要同 CSC 应用程序映像基地址相同。

如果用户想更改应用程序的起始地址(或任何其他地址,如机密或锁存储地址),他们需要同时修改 customer_secure_code 示例 sysconfig 文件和链接器文件、customer_secure_sample_image 示例链接器文件和 signingArgs.json 文件,以使修改有效。


 Sysconfig CSC 配置器

图 3-11 Sysconfig CSC 配置器

 CSC 闪存映射参数

图 3-12 CSC 闪存映射参数

生成新的 ECDSA 密钥

请参阅安全引导用户指南中 MSPM0 客户安全代码和引导加载程序 (CSC) 用户指南的“使用客户安全代码进行开发”部分,了解如何通过 python 脚本创建新的 ECDSA 密钥并使用新密钥对应用程序映像进行签名。