ZHCABI4 January   2022 TDA4VM , TDA4VM-Q1

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2TIDK 器件验证
    1. 2.1 对次级引导加载程序(SBL)签名和加密
    2. 2.2 为系统映像签名和加密
  5. 3密钥编程
    1. 3.1 安装 Keywriter
    2. 3.2 密钥生成
    3. 3.3 编译 Keywriter 应用
    4. 3.4 在 HS-FS 器件中对密钥进行编程
  6. 4密钥编程验证
  7. 5使用 Linux SDK 对 HS 器件进行编译和引导
  8. 6总结

引言

在从开发到批量生产的不同客户阶段,J7 系列 SoC 可根据不同的安全要求提供多种类型的器件,如图 1-1 中所示。

图 1-1 Jacinto7 SoC 器件类型
  • GP 器件:通用器件类型可以是生产器件,但通常在考虑安全性的开发流程中使用。
  • HS-SE-TIDK 器件:高安全性器件包含 TI 密钥,并且客户区域中有 TI 虚拟密钥。TIDK 器件绝不可能是生产器件。
  • HS-FS 器件:高安全性 - 现场安全型器件,客户区域为空。HS-FS 器件需要先进行密钥编程,然后才能交付给终端客户。
  • HS-SE 器件:高安全性 - 强制安全型器件。客户已将其密钥编程到客户区域中。HS-SE 器件可以是生产器件。

不同类型的器件提供不同的安全特性,但也有不同的限制。GP 器件没有安全特性,JTAG 端口未锁定,并且所有二进制均不需要签名和加密,因此,它通常用作开发器件。HS 器件强制执行安全特性,但 JTAG 端口已锁定,并且所有二进制均必须签名和加密,因此,它通常用作生产器件。客户可以查看图 1-2 中的开发流程以完成 HS 流程。

图 1-2 Jacinto7 高安全性开发

建议的流程为:

  • 客户工程师针对 GP 器件进行开发;同时,HS 工程师开始针对 HS-SE-TIDK 器件进行安全开发,以确保 HS 签名和加密操作的正确性。
  • HS 工程师购买 HS-FS 器件,并使用 TI 虚拟密钥或随机虚拟密钥复查 HS 流程,以便确认密钥生成、Keywriter 设置和 eFuse 编程流程。
  • 合成 GP 的工作和 HS-FS 的安全分支,而且客户还需要设置其 HSM,将客户密钥编程到 eFuse 中,并使用相同的客户密钥对系统映像签名和加密。

在 J7 器件的安全流程中会用到许多密钥,如表 1-1 中所示。注释介绍了 HS 开发期间的重要密钥。SMPKH、SMEK、BMPKH 和 BMEK 被编程到 eFuse 中,以对系统映像进行验证和解密。AES-256 密钥和 TI FEK 公钥用于保护密钥编程流程。

TI 还在 Keywriter 包中提供测试密钥。客户可以使用这些测试密钥完成整个 HS 流程,接着设置其 HSM 并使用客户密钥完成任务,然后再进行生产。

表 1-1 高安全性开发中的密钥
首字母缩写词 名称 状态 所有者 注意事项
KEK 密钥加密密钥 必需 器件 每个器件具有一个 256 位的在统计上唯一的随机数字
MPK 哈希 制造商公钥哈希 必需 TI MPK 的 512 位 SHA2 哈希。MPK 是 TI 在工厂中编程的 4096 位密钥。
MEK 制造商加密密钥 必需 TI 器件的 256 位初始加密密钥,用于加密引导,由 TI 在工厂中编程。
SMPK 哈希 次级制造商公钥哈希 必需 客户 SMPK 的 512 位 SHA2 哈希。SMPK 是用于验证已签名二进制的 4096 位密钥。
SMEK 次级制造商加密密钥 必需 客户 加密引导的 256 位客户加密密钥,用于将加密二进制解密。
BMPK 哈希 备用制造商公钥哈希 可选 客户 SMPK 的备用 512 位 SHA2 哈希。SMPK 是用于验证已签名二进制的 4096 位密钥。
BMEK 备用制造商加密密钥 可选 客户 加密引导的备用 256 位客户加密密钥,用于将加密二进制解密。
AES-256 高级加密标准 256 位密钥 可选 客户 要用作临时 AES 加密密钥以保护 OTP 扩展数据的随机 256 位数字。
TI FEK Pub TI 工厂加密密钥 必需 TI 在客户密钥资料被写至 eFuses 之前对其进行保护的 RSA 4K 加密密钥。