前言
本文是上文 《STM32H5 DA 之初体验(带 TrustZone)》的后续之作。倘若你还没有阅读此文,那么建议你先阅读下,然后再回过头来阅读本文。
之前我们已经讲过了如何通过 DA 认证来回退芯片产品状态,或者重新打开调试口,这样开发人员在芯片为 Closed 状态下时仍可以调试芯片。在这个 DA 认证过程中,有使用到两个东西:证书和私钥,它与之前已经预配置到芯片内部的 obk 文件是对应的关系。也就是说, 如果你已经预配置了芯片, 但对应的私钥文件或者证书丢失或忘记保存了, 那么此芯片多半是无法再还原了, 除非你找到对应的私钥和证书.
证书链介绍
在产品的开发过程中, 我们假设有三个团队:
- 安全开发团队: 负责开发 secure 部分代码, 并向 non secure 提供 API 接口. 当芯片烧录完 secure 代码后, 芯片会被设置为 TZ_Closed 状态.
- OEM 开发团队: 负责开发 non secure 部分代码, 无法直接访问 secure 世界的代码,但能调用 secure 提供的特定的 API 接口, 以完成特定功能. 此团队拿到芯片时, 芯片已经处于 TZ_Closed 状态. 在此状态下, 开发 non secure 工程不受任何限制. 可以随意调试 NS 工程.
- 现场技术支持团队: 产品到达终端客户, 若出现任何问题, 需要现场进行技术支持.对于这三个团队, 需要授予不同的权限. 安全开发团队需要授予平台软硬件完全访问的权限. 且安全开发团队可向 OEM 团队授予权限. 完全访问权限就包括了可完全回退+部分回退, S+NS 调试.
OEM 开发团队的权限应该仅仅局限在 NS 部分, 不应该影响其 NS 代码的调试, 当然回退也不应该限制. 仅需要限制其调试 S 代码的权利. 因此, OEM 团队包括的权限应该有: 完全回退+部分回退, NS 调试. 除此之外, OEM 开发团队应可向现场技术支持团队授予权限的能力.
现场技术支持团队的权限应该仅限于回退的权利.而且仅能完全回退. 以便检查硬件方面的问题.
动手实验
其它问题
在生成证书链过程中, 有涉及到中间证书, 我们用它来生成二级证书, 原则上中间证书只能用来生成二级证书, 其本身并不会直接使用, 那么这里有一个问题, 直接使用中间证书能有效吗?