3

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

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

如何识别安卓手机上运行的TEE OS?是否有可能在一台设备中出现多个 TEE,例如 Trusty(来自 Google)、Kinibi(来自 Trustonic)等?

由于 Trusty 来自 Google,所有设备是否都默认具有 Trust OS?

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

4

2 回答 2

6

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

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

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

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

于 2018-08-31T15:03:55.203 回答
1

请注意,Trusty OS 不符合全球平台 TEE 规范,而是基于 Google TEE API。

OP-TEE/Open TEE 等其他 TEE 操作系统是全球平台合规性,因此解决了互操作性问题。

所以在开发CA/TA时必须要关注目标平台。如果我们以这种方式思考,则很少有可能在单个设备上出现一个以上的 TEE 操作系统。

于 2018-10-10T06:54:22.807 回答