Security 信任区与虚拟机监控程序

Security 信任区与虚拟机监控程序,security,arm,hypervisor,trust-zone,Security,Arm,Hypervisor,Trust Zone,我只是在《信任地带》上读ARM的文章,有些事情我还不清楚 虚拟机监控程序提供了一种特殊的CPU模式,而对于信任区,处理器附带了一个额外的第33位:模式不也是一种特殊的位设置吗?那么,在安全性方面,额外的一点是如何产生所有这些差异的呢。我确实理解,额外的位为两个单独的32位地址间隔让路,但除此之外,我无法将二和二放在一起。有人能清楚地解释为什么信任区比虚拟机监控程序更安全吗?典型的虚拟机监控程序只限于CPU。它不保护其他DMA主机。查看维基百科网页了解更多信息。其他攻击(如a)需要其他机制(如)来

我只是在《信任地带》上读ARM的文章,有些事情我还不清楚


虚拟机监控程序提供了一种特殊的CPU模式,而对于信任区,处理器附带了一个额外的第33位:模式不也是一种特殊的位设置吗?那么,在安全性方面,额外的一点是如何产生所有这些差异的呢。我确实理解,额外的位为两个单独的32位地址间隔让路,但除此之外,我无法将二和二放在一起。有人能清楚地解释为什么信任区比虚拟机监控程序更安全吗?

典型的虚拟机监控程序只限于CPU。它不保护其他DMA主机。查看维基百科网页了解更多信息。其他攻击(如a)需要其他机制(如)来防止利用。也就是说,信任区不是一个完整的安全解决方案,而是其中的一大部分。由于ARM只是一个CPU,控制其他总线主机的机制未指定。除了DMA主机之外,备用CPU也对内存分区构成威胁。为了解决这个问题,一些辅助CPU支持信任区。也就是说,它们总是使用NS位(第33位)标记事务

相反,虚拟机监控程序很少局限于两个世界虚拟机监控程序承载任意数量的操作系统信任区只有两个世界;安全正常。尽管每个世界都可以有一个控制管理器操作系统,在操作系统允许的情况下,有许多独立的线程、任务或进程

DMA攻击说明:与硬件位不同,虚拟机监控程序通常使用CPUMMU来限制软件访问。这不会阻止备用总线主控器获取内存。如果Hypervisor受限软件可以控制一个单独的总线主控器,那么它们可以获取要保护的内存。DMA使用物理地址并绕过MMU和一般的虚拟机监控程序保护


DMA攻击通过使用CPU外部的东西访问内存来绕过CPU保护。使用TrustZone,保护不是在CPU中,而是在总线控制器中。请参阅:对于示例,ARMTrustZoneCPU仅允许CPU支持四种模式;安全管理员、安全用户、正常管理员和正常用户。正常的ARM CPU仅支持用户和主管分离,且虚拟机监控程序的所有托管操作系统都在用户模式下运行;通常,所有DMA外围设备都以管理员权限运行,并且该值通常在SOC中硬编码

在Intel上使用IOMMU,在ARM DMA上使用SystemMMU,至少在国外可以避免攻击。基于信任区的系统安全性与基于虚拟机监控程序的系统安全性之间的主要区别之一是,虚拟机监控程序通常通过修改CPU MMU和添加外围MMU(IOMMU,SystemMMU)以页面粒度保护系统


在基于信任区的系统中,每个事务(访问)标记为安全或非安全(通过附加总线地址线第33位),因此,通常在处理器字大小级别以更精细的粒度提供安全性。

自然噪声:因此,额外的位也是总线的控制信号,因此可以消除基于信任区的解决方案的DMA攻击,而不是使用虚拟机监控程序,不是吗?是的,这是主要区别。对于多个CPU,它还具有一个集中位置限制访问的优势,因此更简单。使用虚拟机监控程序并非不可能;只是每个不受信任的托管操作系统必须没有可以访问关键内存的DMA外围设备;说起来容易做起来难。谢谢你天真的噪音。你的解释简单明了。你有关于这个话题的在线文章吗?或者你有没有写过关于这个话题的常见问题,以便我参考?如果没有请做!!