一、基于trustzone的SoC里有什么?
Trustzone是ARM架构的安全扩展,是一个系统级别的安全方案,包括硬件方案和软件方案。在一个支持Trustzone的SoC上,硬件IP包括:
CPU:
目前主要的Cortex-A系列CPU都实现TrustZone安全扩展。
Trustzone system IP:
SoC内部支持TrustZone扩展的MMU、Cache、Bus、GIC、TZASC、TZPC等。
Trustzone Security IP:
常见的Security IP包括CryptoIsland、CryptoCell等。
二、CryptoCell产生背景
累计多次Secure World和Non Secure World之间进行save/switch context,会导致系统性能问题。解决方案是提供额外的硬件,它可以接收Non Secure World指令并在硬件内部执行密码操作,整个过程不需要将安全数据暴露给CPU,且可以将操作结果存放在指定的非安全内存,CPU只需要休眠或轮训结果。
CryptoCell包括CryptoCell 700和CryptoCell 300两个系列:
-
CryptoCell 700主要针对高性能的安全产品,一般与Cortex-A CPU配合使用。
-
CryptoCell 300主要针对低功耗的产品,一般与Cortex-M CPU配合使用。
三、high level diagram
从CryptoCell high level diagram可以看出,CryptoCell硬件服务通过firmware,分别向Linux OS和TEE OS提供接口。在TEE侧提供的CRYS Cryptographic Library,在REE侧提供Crypto API Driver来操作硬件IP。
四、CryptoCell内部逻辑
CryptoCell内部功能单元可分为“Shard Hardware”和“TEE Hardware”