如何在Android应用程序中与QSEE通信?

3
我希望能够开发使用TEE技术的可信应用程序。 我有一台Nexus 5手机,上面安装了Android 5.1.1 (LMY48M)系统。我想创建一个非常基本的Hello World应用程序来理解TEE逻辑在真实设备上的运行情况。 Nexus 5支持QSEE(高通安全执行环境),但我找不到任何关于如何在普通的Android应用程序中包含QSEE通信库的文档。
在adb root shell中,
cat /d/tzdbg/log
cat /d/tzdbg/qsee_log

命令显示为空结果。

有没有人尝试过开发这样的应用程序?非常感谢任何帮助。

4个回答

0

很抱歉,目前没有直接的方法来实现这个。

如果你想立即学习使用TEE,我建议你使用运行OP-TEE或Open-TEE的虚拟机(因为我在你对@Cobain的回复中读到了),因为GlobalPlatform API在不同设备上得到广泛支持。

不幸的是,你现在基本上需要成为设备OEM或已经建立的软件供应商才能做到你想要的,但这可能会在未来变得更容易 - 这是使用相对较新技术的缺点。

TSM是Trusted Services Manager,是一种由一些GlobalPlatform TEE实现使用的技术,用于在TEE上加载TA。它不适用于QSEE。

Trusty是Google专有的TEE,我不知道是否有任何可用的设备向用户公开此功能。QSEE是高通TEE。不幸的是,我无法评论它可能做或不做的事情。


0

如果你发现了这个链接:http://source.android.com/security/trusty/index.html

我认为下面的内容是相关的:

目前,所有Trusty应用程序都由单个团队开发并打包在Trusty内核映像中。整个映像会在启动过程中由引导加载程序进行签名和验证。本版本的Trusty不支持第三方应用程序开发。

所以,除非您正在创建自己的自定义ROM,否则我认为您无法针对Trusty进行任何操作。


1
谢谢您的回复,我之前已经阅读了那份文档。我认为Trusty TEE和QSEE是不同的TEE操作系统,如果我理解有误请指正。在Android源代码中有一些与QSEE相关的文件(如QSEEComAPI.h、libQSEEComAPI.so、qseecom.h等),但是没有任何与Trusty TEE相关的内容。它是一个仅适用于特定ACL的不同repo。因此,我想使用QSEEComAPI在TrustZone上进行SMC调用。 - acalb
我理解TEE是由QSEE实现的。你看过这个吗:https://www.blackhat.com/docs/us-14/materials/us-14-Rosenberg-Reflections-on-Trusting-TrustZone.pdf 第三页的图表显示了“正常世界”和“安全世界”。我的期望是,在“安全世界”中进行任何操作都需要Qualcomm的许可。除非你通过自定义ROM将Trusty作为TEE构建。 - Morrison Chang

0

首先,对于 TEE,一个应用程序包含两个部分,TA(Trust APP,在 TEE 中运行)和 CA(Client APP,在 REE 中运行)。

QSEE 已经实现了 GlobalPlatform(GP)API(并非全部 GP API),因此您应该阅读 GP API 白皮书并使用它们来开发 CA 和 TA。

但是,您不能自己安装 CA 和 TA,因为 CA 和 TA 应由 TSM 分发。


我使用Open-TEE开发了一个CA和TA。该项目也符合GP标准,但它提供的是虚拟TEE环境。我正在寻找一种方法来使用QSEE API与真实硬件环境中的TEE进行通信。顺便问一下,您所说的TSM是什么意思?能否请您详细解释一下? - acalb
@acalb 嗨,很高兴从你那里听到你已经开发了TA和CA。我在Open-TEE项目中遇到了一个问题。core/build-binary.mk 1.错误:(688)Android NDK:模块nativelibtee-jni依赖于未定义的模块:c 错误:(701)*** Android NDK:中止(设置APP_ALLOW_MISSING_DEPS=true以允许缺失的依赖项)。Stop.:otservice:buildNative 失败
  1. /Users/Anand/Documents/OpenTEE/tee/opentee-android/otservice/src/main/jni/LibteeWrapper.cpp 错误:(17, 35)tee_shared_data_types.h:没有这个文件或目录 编译终止。
- Ritesh Bhavsar

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接