ARM有一个名为TrustZone的东西.根据ARM文档,它提供了一个进程可以在安全/非安全世界中运行.
请帮助我理解这一点.
我想知道是否有人在开发板上有任何可以使用ARM TrustZone的信息?我有BeagleBoard XM,它使用TI的OMAP3530和支持信任区域的Cortex-A8处理器,但是TI确认他们已经禁用了板上的功能,因为它是一个通用设备.
进一步的研究让我看到了使用OMAP4430的熊猫板,但没有TI的反应和互联网上的信息很少.您如何学习如何使用信任区?
最好的问候吉古先生
如何开发使用Arm的信任区域的应用程序?具体来说,我想开发一个可以在安全的世界中保存敏感数据的程序.
该程序应该在正常世界还是安全世界中运行?我知道安全领域有信任小组,我是否需要开发信任小组?我可以使用SDK或API直接与现有的安全世界操作系统进行交互,还是需要编译和安装我自己的安全操作系统?
任何建议将不胜感激.
谢谢!
我想基于ARM的TrustZone技术启动一个项目,我想在其中为Android进行身份验证启动.
我应该使用哪种电路板?
最低要求:
到目前为止,我发现了飞思卡尔i.MX53,Pandaboard,Beagle主板xM(显然已经禁用了TrustZone),基于Atmel的主板,Versiatile Express A9x4和用于ARM1176JZF-S的RealView平台底板.但通常不清楚是否启用了TrustZone扩展.
如何在 C 中编写 svc 处理程序以调用 SMC(监控模式)指令以切换到 arm cortex a9 的监控模式?即从主管模式到监控模式都需要在 svc 处理程序中完成什么,如何在 C 中编写相同的内容。感谢详细答案...
我正在尝试在Qemu中模拟TrustZone功能。我发现了两个似乎可以解释此过程的链接。
《第一参考》未附加支持TrustZone的映像内核(在哪里可以找到它?)
《第二参考》解释了如何编译内核,但它并非以第一个网站中编写的命令行开头,如下所示
./arm-softmmu/qemu-system-arm -kernel $PATH_TO_KERNEL/zImage -M vexpress-a15 -cpu cortex-a15 -dtb PATH_TO_DTB/vexpress-v2p-ca15-tc1.dtb -m 1024 -append 'console=ttyAMA0,38400n8' -serial stdio -initrd $PATH_TO_INITRD/initrd.img
Run Code Online (Sandbox Code Playgroud)
有替代方法来运行TrustZone仿真器吗?
我在 QEMU 上成功运行 OP-TEE,并想弄清楚调度程序是如何工作的。我修改了源代码,在进入安全世界之前和返回正常世界之后获取变量jiffies 。这是一段代码。
i=jiffies;
tee_smc_call(¶m);
j=jiffies
Run Code Online (Sandbox Code Playgroud)
这里tee_smc_call是发出SMC调用的asm函数。我发现如果定时器中断导致离开SW,j将大于i 。我认为这意味着计时器中断已在某处处理。如果我的推论不正确请纠正我。
我转到链接https://lists.linaro.org/pipermail/tee-dev/2015-August/000160.html和https://github.com/OP-TEE/optee_os/issues/332。OP-TEE 开发人员表示,一旦切换回 NW,计时器中断将由 NW 提供服务。
我阅读了SW的IRQ处理程序的源代码。我认为 SW 处理程序会找到 NW 的 VBAR 并将返回地址更改为 NW 处理程序。但是我没有发现这样的代码。
我已经阅读了此网站上的一些帖子
TrustZone:来自两个世界的调度进程和
ARM TrustZone - 安全和非安全操作系统中调度程序的行为。后者与我的类似,但答案没有说明 OP-TEE 实现中发生了什么。
所以我想知道定时器中断在返回NW后再次被处理的魔力是什么,因为它已经在SW中服务过一次。
我对OP-TEE不太熟悉。这是我的第一个问题。如果不清楚或愚蠢,请原谅我。谢谢。
我目前正在对ARM的TrustZone进行一些研究,例如:ARM信息中心。据我了解,使用TrustZone可以创建基于AMBA AXI总线的安全环境。
在ARM网站上,它表示:“安全和非安全世界的概念已扩展到处理器之外,涵盖了SoC中的内存,软件,总线事务,中断和外围设备。” 我读的外设可以通过被连接到的TrustZone Ñ上小号的AMBA AXI总线的ecure位(额外的信号用于可信和不可信的请求之间进行区分)。
1)除了带AMBA AXI总线的额外引脚外,带TrustZone的SoC中的TrustZone特定硬件是什么?
2)是否可以将外部非易失性存储器(例如Flash)或其分区连接到TrustZone,从而可以访问安全环境(通过外部存储器接口和-然后内部-AXI总线)?如果否,如何存储秘密(作为密钥)以在安全环境中使用(借助保险丝?)?如果是,如何防止包含恶意代码的Flash被连接?
3)是否有可能在芯片出厂之前或之后以芯片供应商(例如TI或NXP)的客户的身份向安全领域实施代码?
谢谢您的回答。
我的Android应用程序的某些功能取决于手机上显示的TEE(受信任执行环境/ ARM TrustZone)。如何从Java应用程序中检测该手机是否安装了TEE,如果安装了TEE,那么它是什么供应商的TEE?谢谢!
我刚刚在TrustZone上阅读ARM 的这份文档,有些事情我不清楚。
事实上,Hypervisor提供了一种特殊的 CPU 模式,并且对于TrustZone来说,处理器附带了一个额外的第 33 位:模式不是也是一个特定的位设置吗?那么,额外的一点是如何在安全性方面产生如此大的差异的呢?我确实知道额外的位可以为两个单独的 32 位地址空间让路,但除此之外,我无法将两个和两个放在一起。有人可以清楚地解释为什么TrustZone比 Hypervisor 更安全吗?
trustzone ×10
arm ×9
android ×3
security ×3
linux ×2
c ×1
embedded ×1
handler ×1
hypervisor ×1
linux-kernel ×1
op-tee ×1
peripherals ×1
qemu ×1