为Arm信任区制定计划

jia*_*wen 7 security arm trustzone

如何开发使用Arm的信任区域的应用程序?具体来说,我想开发一个可以在安全的世界中保存敏感数据的程序.

该程序应该在正常世界还是安全世界中运行?我知道安全领域有信任小组,我是否需要开发信任小组?我可以使用SDK或API直接与现有的安全世界操作系统进行交互,还是需要编译和安装我自己的安全操作系统?

任何建议将不胜感激.

谢谢!

art*_*ise 7

有两个极端.这些内容记录在ARMs 安全技术软件概述章节中:使用TrustZone技术构建安全系统.

蜜蜂

在频谱的一端,只有一组API可以从普通世界调用.这是在详细SMC电话Linux的.例如,如果设备包含公钥 - 私钥,则API调用可以签署数据.在正常的世界将永远不会有机会获得私有密钥,但任何人都可以验证该设备是原来通过验证签名.因此,普通世界可以通过任何通信接口自由转发此请求.这可能是验证设备的一部分.

合作操作系统

在这种模式下,安全正常世界都有一个完整的操作系统(在其他地方称为TEEREE).操作系统必须与中断和调度协作.他们还可以使用SMC调用,无算法和信号量以及共享内存.

ARM建议将FIQ用于安全世界,并将IRQ保留为正常世界.具体来说,有一些设置可以阻止普通世界屏蔽FIQ.所有这些问题都依赖于系统所需的IPC类型,调度,中断响应等.

最简单的安全调度程序总是会抢占正常世界.只有空闲任务才能使CPU进入正常世界.更灵活的解决方案将使调度程序协作,以便两个世界都可以具有更高和更低优先级的任务.


小智 1

更好的方法是在一台设备上安装 REE 操作系统和 TEE 操作系统。当程序想要做一些敏感的事情时,设备会切换到TEE操作系统,这样你就可以安全地处理敏感数据。当您完成敏感数据后,设备将更改为 REE 操作系统。但在一台设备上实现两个操作系统的切换是一项艰巨的工作。