LAT1331
Local Application Tips
LAT1331 Rev 1.0 Oct. 2023
DA 证书链之初体验
关键字:DA Debug Authentication, 调试认证, DA 证书, 证书链
1. 前言
本文是上文 STM32H5 DA 之初体验( TrustZone)》的后续之作。倘若你还没有阅读此
文,那么建议你先阅读下,然后再回过头来阅读本文。
之前我们已经讲过了如何通过 DA 认证来回退芯片产品状态,或者重新打开调试口,这样开
发人员在芯片为 Closed 状态下时仍可以调试芯片。在这个 DA 认证过程中,有使用到两个东
西:证书和私钥,它与之前已经预配置到芯片内部的 obk 文件是对应的关系。也就是说, 如果
已经预配置了芯片, 但对应的私钥文件或者证书丢失或忘记保存了, 么此芯片多半是无法再还原
, 除非你找到对应的私钥和证书.
私钥是如何来的 ? 如上文所述, 是通 TPC 工具生成的, 如下所 :
点击上图中的 Regenerate 按键将自动生成公钥私钥对.
LAT1331
LAT1331 - Rev 1.0 page 2/25
当然你也可以使用其它工具来生成, 比如 openssl 工具, 只要是 ecdsa-p256 类型的密钥即可.
证书是怎么来的 ? 也是通过 TPC 工具生成的
如上图所示, 输入根密钥的私钥和公钥, 证书类型选择为 “ROOT”, 然后在操作许可内选
所有权限(完全回退/半回退 + 安全调试 + 非安全调试).终点击 “Generate Certificate”按键,
生成根证书. 由于这里选择的类型 ROOT, 输入的密钥也为根密. 所以最终生成的证书为根证
. 它所许可的权限是最高的.
对于一个产品的开发, 可能由不同团队一起合作开发的, 比如, 一团队, 专门负责开 secure
部分的代码, non secure 工程提供 API 接口, 将那些关键算法放入到 secure 世界加以保,
仅面向 non secure 工程开放调用接口. 而另一个开发团队, 们仅仅开发 non secure 部分的代
, 实现应用层大部分功能, 需要时调 secure 部分代码开放出来的接口以实现特定的功能. 那么
对于这种不同的开发团, 其所允许的权限必须有所不同, 开发 secure 部分的团队, 必然希望他们
自己能调试 secure 部分的代码, 但不希望开发 non secure 部分的开发团队也可以调试 secure
代码. 但又要允许不影响他们可以调试自己 non secure 部分的代码, 可随意回退 non secure
部分代码. 如此复杂的权限控制, 就需要多个证书来实现了. 这就是证书链的意义所在.
2. 证书链介绍
在产品的开发过程中, 我们假设有三个团队: