ARM TrustZone开发

时间:2011-10-31 15:40:57

标签: embedded arm trust-zone

我想知道是否有人在开发板上有任何可以使用ARM TrustZone的信息?我有BeagleBoard XM,它使用TI的OMAP3530和支持信任区域的Cortex-A8处理器,但是TI确认他们已经禁用了主板上的功能,因为它是一个通用设备。

进一步的研究让我看到了使用OMAP4430的熊猫板,但TI没有回复,互联网上的信息也很少。您如何学习如何使用信任区?

最诚挚的问候 吉古先生

7 个答案:

答案 0 :(得分:11)

据我所知,您可以现成的所有OMAP处理器都是GP设备,即禁用TrustZone功能(或者它们是生产设备中的处理器,例如现成的手机,你没有得到钥匙)。这种情况与其他SoC制造商类似。除了ARM的有限出版物(仅涵盖常见的ARM功能,而不是特定于芯片的功能,如内存管理细节,引导和加载可信代码),所有关于TrustZone功能的文档都在NDA下。这是一个遗憾,因为它排除了对这些安全功能的独立分析或开源软件的利用。

我担心如果你想为TrustZone设备编程,你必须联系TI的代表或他们的竞争对手之一,让他们相信你的应用程序是他们想要发生的事情,并获得HS设备,为开发板签署代码的关键,以及没有它的文档,你将会非常困难。

答案 1 :(得分:3)

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

答案 2 :(得分:3)

截至今天,OP-TEE运行在不少设备上(参见OP-TEE platforms supported),其中一些是随时可用的开发板。举几个HiKey,Raspberry Pi3,ARM Juno Board,飞思卡尔i.MX6变体等等。您可以选择其中一个,或者只使用very well supported in OP-TEE的QEMU进行全部尝试。

答案 3 :(得分:2)

关于openvirtualization,它可以像三星exynos 4XXX一样移植到arm开发板。

如果使用openvirtualization,您将可以访问所有源代码,包括安全操作系统。 但如果您只想开发使用Trustzone的程序,我想知道是否有必要。也许有标准的驱动程序或api允许你这样做,而不必担心编译自己的安全操作系统?

答案 4 :(得分:2)

目前有一些选择板允许使用TrustZone进行开发。就通用板而言,FriendlyARM板是一个良好的开端(http://www.friendlyarm.net)。此外,任何带有Cortex A15处理器的主板都必须具有TrustZone,因为虚拟化扩展只能在Normal世界中使用。可能仍然存在制造商是否在安全世界中运行自己的代码的问题,但您可以随时尝试。 Arndale是一个很好的开发板,但不幸的是三星已经在Secure世界中运行了代码,所以当你访问时,你正在普通世界中运行。因此,如果您需要安全访问世界,请寻找非三星Cortex A15处理器。这是你最好的选择。

值得注意的是,TI在技术上并没有禁用TrustZone。相反,bootrom代码在将执行切换到U-boot之前将处理器转换为Normal世界。所以它实际上是使用TrustZone移动到Normal世界,但是然后没有提供回到Secure世界的机制。为了证明这一点,只需尝试读取SCR,您就会得到一个未定义的异常,这通常会发生在Normal世界中。但是,如果你执行SMC调用,它将按预期执行(即,它切换到安全世界,但然后只是切换回正常世界),所以看起来什么也没发生。

答案 5 :(得分:1)

你能做的最好的事情就是金雅拓和带来Mobicore的人等联系方。请注意,他们确实会要求您签署保密协议。

其次,您可以购买ARM DS5开发套件。这附带了大量文档,包括一些关于trustzone的文档。

答案 6 :(得分:1)

你应该真正看一下反向路径的USB军械库:http://www.inversepath.com/usbarmory.html

它建立在开放硬件和开源上,可以完全访问Trustzone(你可以吹入保险丝以启用安全启动):https://github.com/inversepath/usbarmory

他们在正常世界的TZ和Linux中成功运行了Genode。