在一般情况下,TEE OS 中是没有磁盘的,也没有 EMMC/UFS 驱动,因此无法在 TEE OS 侧完成数据落盘。
那么,TEE OS 的安全存储是如何实现的呢?事实上,TEE OS 侧的安全存储是通过反向存储在 REE 侧来实现的。有人可能会问,这样数据岂不是不安全了?不用担心,因为所有存储的数据在反向存储到 REE 侧之前,都会由 TEE OS 进行加密。加密密钥始终保存在 TEE OS 中,不会被导出。此外,加密密钥也不需要存储,不需要落盘,而是每次开机时根据 CPU ID 和 HUK 等信息计算生成,并保存到 TEE OS 的运行内存中。
如下图所示,展示了一个示例。
对于 CA/TA 安全应用开发者而言,你无需关心底层架构如何实现,只需调用 GP Storage API 即可完成数据的读写操作。底层的存取方式是 TEE OS 的设计内容。在以下设计中,可以清晰看到通过 TEE OS 安全存储系统后,数据被反向存储到了 REE 的磁盘。