gpt4 book ai didi

security - TrustZone 与虚拟机管理程序

转载 作者:行者123 更新时间:2023-12-02 22:15:38 27 4
gpt4 key购买 nike

我正在阅读this document来自 TrustZone 上的 ARM,有些事情我不清楚。

事实上,Hypervisor 提供了一种特殊的 CPU 模式,并且对于 TrustZone,处理器附带了一个额外的第 33 位:模式不也是一个特定的位设置吗?那么,额外的一点是如何在安全性方面产生如此大的差异的呢?我确实知道额外的位可以为两个单独的 32 位地址空间让路,但除此之外,我无法将两个和两个放在一起。有人可以清楚地解释为什么 TrustZone 比虚拟机管理程序更安全吗?

最佳答案

典型的管理程序仅限于CPU。它不能防止其他 DMA 主设备。请参阅维基百科 DMA Attack网页了解更多相关信息。其他攻击,例如Cold boot ,需要其他机制如zeroizable memory以防止剥削。也就是说,TrustZone 不是一个全部安全解决方案,而是其中的一个重要部分。由于ARM只是一个CPU,因此控制其他BUS Master的机制未指定。除了DMA Master之外,备用CPU也对内存分区构成威胁。为了解决这个问题,一些辅助 CPU 可以识别 TrustZone。即,他们总是使用 NS 位(33rd)来标记交易。

相比之下,虚拟机管理程序很少局限于两个世界管理程序托管任意数量的操作系统。 TrustZone 只有两个世界;安全且正常。尽管每个世界可以有一个控制监督者操作系统,具有许多独立的线程任务进程 在操作系统允许的情况下。

DMA 攻击解释:与硬件位相比,管理程序通常使用 CPU MMU 来限制软件访问。这不会阻止替代总线主控器访问内存。如果管理程序受限软件可以控制单独的总线主设备,那么它们就可以获取要保护的内存。 DMA 使用物理地址并绕过 MMU 和一般虚拟机管理程序保护。

DMA 攻击通过使用 CPU 外部的东西访问内存来规避 CPU 保护。通过TrustZone,保护不在 CPU 中,而是在总线 Controller 中。请参阅:NIC301举个例子 ARM TrustZone CPU 仅允许 CPU 支持四种模式; 安全主管安全用户普通主管普通用户。普通的 ARM CPU 仅支持用户管理程序分离,并且管理程序的所有托管操作系统都在用户模式下运行;通常,所有 DMA 外设都以管理程序特权运行,并且该值通常硬编码在 SOC 中。

<小时/>

更新:原始问题不包括 IOMMU。

<表类=“s-表”><标题>类型优点 <正文>TZ总线切换,减轻主机和外设的负担高压无 DMA 缓解,单主机 (CPU)IOMMUIOMMU 是一种从属缓解措施,需要更新“世界切换”

Hypervisor + IOMMU 可以完成一些针对 DMA 攻击的防护。然而,这意味着在“世界切换”上,IOMMU 表必须更新。这将防止针对该外设的 DMA 攻击。每个需要这种保护的外设都需要 IOMMU。

在某些情况下,“正常世界”设备可能会访问安全设备以执行“安全操作”。例如,请求在不访问 key 的情况下解密数据。

管理程序 + IOMMU 并不等同于信任区域。 Trustzone 受总线矩阵保护,包括所有外设和主设备。大师可以处于任一世界状态;即,在多CPU系统上,一个可以正常,另一个可以安全。意义计算可以在两者上进行。 HV+IOMMU方案相当于抢占式多任务。当系统进入该模式时,必须切换 IOMMU。

同样,TZ 的弱点是仅支持两个“世界”。 HV+IOMMU 可以支持多个“ guest ”。

关于security - TrustZone 与虚拟机管理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17485367/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com