我是TEE (可信执行环境)的新手。谁能帮我一点基本的疑虑吗?
AFAIK,每个Android移动设备都安装了一个单独的TEE操作系统和一些预定义的TA (可信应用程序)来存储指纹图像、密码、密钥对等秘密信息。
如何识别运行在Android手机上的TEE操作系统?是否有可能在一个设备中出现多个发球者,如信任(来自谷歌)、Kinibi (来自Trustonic)等?
由于信任来自谷歌,所有的设备都会默认拥有一个信任操作系统吗?
如何列出TEE中现有的TA应用程序?如果是的话,我们可以使用CA (Client Application 使用google提供的可靠API)从移动电话连接到现有的TA吗?
发布于 2018-08-31 15:03:55
为了使用TrustZone功能(TEE操作和特性),我们必须使用一个“安全操作系统”:可信操作系统、OP-TEE操作系统、SierraTEE。从ROM开始的安全引导过程有一些阶段,并在"Rich“(不安全OS)之前初始化安全操作系统。一旦两者都被初始化,正常世界的客户端应用程序(Rich )就可以使用TEE驱动程序与安全世界上的受信任应用程序(Secure )进行通信。对于第一个问题,我认为我们可以观察引导过程来观察哪个安全操作系统被初始化。我的一点点知识使我认为,没有命令,我们可以跑去发现这个信息,因为两个世界之间的通信是由发球司机。
对于运行在同一设备上的多个TEE OS,您必须更改安全引导的执行方式,以添加安全OSes初始化的顺序,并且您需要特定的驱动程序来与每个安全操作系统进行通信,或者需要一个通用驱动程序负责与它们进行通信。我不知道为什么要运行许多TEE OS,但我知道您可以在一个安全操作系统中同时运行多个TAs (受信任的应用程序)。
要使用可靠的系统,您必须检查Android版本是否支持它。此外,您还必须检查设备上是否启用了TrustZone (许多设备都有这种技术,但它们出售时禁用了它)。
在正常情况下,您不能列出在安全世界运行的受信任应用程序。您可以列出在正常环境下运行的所有客户端应用程序。但它们肯定可以连接到安全世界中运行的特定可信应用程序。
发布于 2018-10-10 06:54:22
请注意,可靠的操作系统不符合Global规范,而是基于Google。
其他TEE操作系统,如OP- TEE /Open,都是全局平台兼容的,从而解决了互操作性问题。
因此,在开发CA / TA时,您必须调整护理目标平台。如果我们这样想的话,就会有更多的TEE操作系统出现在单一设备上的可能性很小。
https://stackoverflow.com/questions/48515838
复制相似问题