我怎样才能开发使用ARM的信任区域的应用程序? 具体来说,我想开发一个程序,可以在安全世界中保存敏感数据。
如果这一方案在正常的世界或世界安全运行? 我知道有trustlets在安全世界,做我需要开发trustlets? 是否有SDK或API,我可以用它来直接与现有的安全世界的操作系统进行交互还是需要编译和安装我自己的安全的操作系统?
任何意见,将不胜感激。
谢谢!
我怎样才能开发使用ARM的信任区域的应用程序? 具体来说,我想开发一个程序,可以在安全世界中保存敏感数据。
如果这一方案在正常的世界或世界安全运行? 我知道有trustlets在安全世界,做我需要开发trustlets? 是否有SDK或API,我可以用它来直接与现有的安全世界的操作系统进行交互还是需要编译和安装我自己的安全的操作系统?
任何意见,将不胜感激。
谢谢!
有两个极端。 这些都记录在软件概述 ARM的 安全技术的一章:建立使用TrustZone技术的安全系统 。
在光谱的一端,只有一组API可以从正常的世界被称为的。 这是在详细SMC电话的Linux版本 。 例如,如果该设备包含一个公共-私有密钥,API调用可以注册数据。 正常的世界将永远不会有机会获得私钥 ,但任何人都可以验证该设备是验证签名原件 。 因此, 正常的世界是自由转发过任何通信接口这一请求。 认证设备的这可能是一部分。
在这种模式下,有两个安全和正常世界一个完全成熟的OS(称为TEE和REE其他地方)。 该操作系统必须中断和调度合作。 他们还可以使用SMC电话, 无锁算法和信号量与共享内存一起。
ARM建议使用FIQ的安全世界,离开IRQ为正常的世界。 具体来说,有设置,从以往掩蔽FIQ停止正常的世界。 所有这些问题都依赖于IPC, 调度 , 中断响应等系统需要的类型。
最简单的安全调度总是抢先正常的世界。 只有空闲任务将产生CPU到正常的世界。 一个更灵活的解决方案将有调度协同工作,使这两个世界能有较高和较低优先级的任务。
更好的方法是安装REE操作系统和一个设备中TEE OS。 当一个程序需要做一些事情敏感,该设备将变为TEE OS,这样你就可以处理敏感日期牢固。 当你与sensitvie日期完成,设备将变为REE OS。 但在设备上实现两个OS开关是一个艰难的工作。
操作系统,如MobiCore已经存在,并已部署在大众市场的设备,如三星Galaxy S3。
MobiCore是运行旁边的Android的OS,所以trustlets(= MobiCore应用程序)可以经由一组系统的调用到与Android应用通信MobiCore驱动器 ,这是Android OS的负责与可信执行enviromnent通信的一部分。
如果你正在寻找发展trustlets为MobiCore如上所述,你必须成为一个MobiCore开发者,你可以通过理论上注册成为做了MobiCore的Trustonic合资开发 。
如果您希望使用ARM的TrustZone技术在自己的设备/ dev板与开源安全的操作系统,也许你可以使用OpenVirtualization的SierraTEE ,这似乎被编译为Xilinx ZYNQ-7000 AP SOC也兼容Android作为富OS。
您可以使用OPTEE(打开Sourec便携式可信执行环境)操作系统 。 如果您正在寻找可信执行环境的应用实例,它们也知道信任的应用程序(TA),那么你可以检查这个optee信任的应用程序实例库和该TA使用OP-TEE和Comcast加密API 。
你可以参考文档在这里。