可信执行环境 (TEE) 中的客户端应用程序和可信应用程序

DAC*_*C84 3 security android trusted-computing trustzone trusted-execution-environment

我是 TEE(可信执行环境)的新手。有人可以帮助我解决一些基本的疑问吗?

AFAIK,每个 Android 移动设备都安装了一个单独的 TEE 操作系统以及一些预定义的 TA(可信应用程序)来存储机密信息,如指纹图像、密码、密钥对等。

如何识别 Android 手机上运行的 TEE 操作系统?是否有可能在一台设备中存在多个 TEE,例如 Trusty(来自 Google)、Kinibi(来自 Trustonic)等?

由于 Trusty 来自谷歌,所以所有设备都会默认安装 Trust OS 吗?

如何列出 TEE 中现有的 TA 应用程序?如果是这样,我们可以使用 CA(使用来自谷歌的 Trusty API 的客户端应用程序)从手机连接到现有 TA吗?

Dal*_*ane 6

为了使用 TrustZone 功能(TEE 操作和功能),我们必须使用一个“安全操作系统”:Trusty OSOP-TEE OSSierraTEE。从 ROM 开始的安全启动过程有一些阶段,并在“Rich OS”(不安全操作系统)之前初始化安全操作系统。两者都初始化后,普通世界(Rich OS)的客户端应用程序可以使用 TEE 驱动程序与安全世界(Secure OS)的可信应用程序进行通信。对于你的第一个问题,我想我们可以通过观察启动过程来观察初始化了哪个Secure OS。我的一点知识让我认为没有我们可以运行的命令来发现这些信息,因为两个世界之间的通信是由 TEE 驱动程序进行的。

对于在同一设备上运行的多个 TEE 操作系统,您必须更改安全启动的执行方式,添加安全操作系统初始化的顺序,并且您需要特定的驱动程序来与每个安全操作系统进行通信或负责与之通信的通用驱动程序他们都。我不知道您为什么要运行多个 TEE 操作系统,但我知道您可以在安全操作系统中同时运行多个 TA(可信应用程序)。

要使用 Trusty,您必须检查 Android 版本是否支持它。此外,您必须检查您的设备是否启用了 TrustZone(许多设备都有该技术,但在出售时禁用了该技术)。

在正常世界中,您无法列出在安全世界中运行的受信任应用程序。您可以列出在 Normal World 中运行的所有客户端应用程序。但是这些肯定可以连接到在 Secure World 上运行的特定可信应用程序。