ARM TrustZone开发

10

我想了解有哪些开发板可以利用ARM TrustZone? 我有BeagleBoard XM,它使用TI的OMAP3530和支持TrustZone的Cortex-A8处理器,但TI确认他们已在该板上禁用该功能,因为它是一款通用设备。

进一步研究让我找到了使用OMAP4430的Panda Board,但TI没有回复,并且互联网上的信息非常少。如何学习使用TrustZone?

此致 Gigu先生


可能有更适合您的问题的StackExchange论坛,而不仅仅是StackOverflow。建议迁移到SuperUser,但可能还有更专业领域的论坛可供选择。 - Jon Egerton
4
@JonEgerton Nonsense,这是关于开发的问题,完全适合在SO上讨论。 关于ARM板的问题无论如何都不适合在SU上讨论,会被视为不相关主题。 - Gilles 'SO- stop being evil'
7个回答

11
据我所知,所有现成的OMAP处理器都是GP设备,即带有TrustZone功能禁用的(否则它们就是生产设备中的处理器,如现成的手机处理器,您无法获得密钥)。其他SoC制造商的情况也类似。除了ARM的有限出版物(仅涵盖通用ARM功能,而不涉及芯片特定功能,如内存管理细节、启动和加载受信任代码),关于TrustZone功能的所有文档均受到保密协议约束。这很遗憾,因为它排除了对这些安全功能的独立分析或通过开源软件利用。
如果想要为TrustZone设备编程,恐怕您需要联系TI或其竞争对手的代表,说服他们您的应用程序是他们想要的,获得HS设备、签署开发板代码的密钥以及文件资料,否则将会非常困难。

4
截至今天,OP-TEE已在许多设备上运行(请参见支持的OP-TEE平台),其中一些是易于获取的开发板。例如HiKey、Raspberry Pi3、ARM Juno Board、Freescale i.MX6变体等。您可以选择其中之一,也可以使用在OP-TEE中非常受支持的QEMU来尝试它们全部。

是的,5年后情况已经发生了相当积极的变化 :) - MrGigu

3

您可以获得ARM fastmodels的45天试用版本。RaspberyPI也应该支持TrustZone。www.openvirtualization.org提供了完整的ARM TrustZone开源实现。ARM正在从其专有的TrustZone API转向globalplatform API。GlobalPlatform还定义了进程间通信等API。


1
这可能只是语义问题,但并不存在ARM TrustZone的开源实现。TrustZone是一组硬件扩展和修改,支持两个隔离执行环境。这些硬件特性没有软件实现。openvirtualization提供的是一个可信执行环境(TEE),利用TrustZone将TEE与常规操作系统(如Android或Ubuntu)隔离开来。因此,如果您使用的平台已经在安全世界中运行了代码,则openvirtualization TEE将无法工作。 - Eeyore

3
目前有一些选择的板子可以使用TrustZone进行开发。作为通用开发板,FriendlyARM是一个不错的开始(http://www.friendlyarm.net)。此外,任何搭载Cortex A15处理器的板子都必须具备TrustZone功能,因为虚拟化扩展只能从Normal world中使用。当然,制造商是否在Secure World中运行自己的代码还存在疑问,但你可以试试。Arndale是一个好的开发板,但不幸的是三星已经在Secure world中运行了代码,因此在你获得访问权限时,你正在Normal world中运行。因此,如果需要Secure world访问,请寻找非三星、Cortex A15处理器的板子,这是最好的选择。
同时值得注意的是,TI并没有技术上禁用TrustZone。相反,引导ROM代码将处理器转换为Normal world,然后再切换到U-boot执行。所以实际上是使用TrustZone切换到Normal world,但没有提供返回Secure world的机制。想要证明这一点,只需尝试读取SCR,就会产生未定义的异常,这通常会发生在Normal world中。然而,如果执行SMC调用,则会像预期的那样执行(即,它切换到Secure world,但随即就立即切换回Normal world),因此看起来好像什么都没有发生。

2
关于openvirtualization,它可以移植到像三星Exynos 4XXX这样的ARM开发板上。如果使用openvirtualization,您将可以访问所有源代码,包括安全操作系统。但是,如果您只想开发使用TrustZone的程序,我想知道是否有必要这样做。也许有标准驱动程序或API可以让您在不用编译自己的安全操作系统的情况下完成。

1

1

你最好的做法就是联系像Gemalto和开发Mobicore的人一样的相关方。请注意,他们确实会要求您签订保密协议。

其次,您可以购买ARM DS5开发套件。这个套件附带了很多文档,包括关于TrustZone的一些内容。


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