Advertisement

ARM TrustZone technology overview -- 4 (TrustOS)

阅读量:

TrustZone技术能够在物理层面将ARM处理器核心进行分时复用,从而形成两个独立的处理单元。其中,非安全区域运行的是常规的Linux操作系统,而安全区域则负责执行与安全高度相关的功能。由于ARM TrustZone具备硬件隔离能力,两个区域之间的通信必须通过SMC机器指令来实现切换操作,而具体的切换过程则由ARM提供的TrustFirmware BL31模块来完成。

在划分硬件外部设备的过程中,通常将IRQ中断请求交由非安全侧进行处理,而ARM独有的FIQ快速中断请求则由安全侧负责。具体哪些硬件设备和内存资源可以被安全侧或非安全侧访问,则可以通过配置相应的硬件寄存器进行设定。

当需要从非安全侧的Linux系统向安全侧的操作系统传递数据或请求时,其本质是通过一块物理内存同时映射到非安全侧与安全侧以实现数据共享的目的。然而,这部分内存也是整个TrustZone技术中暴露在外的主要攻击面。由于数据交互的特殊需求,这种用于在两个区域之间传递信息的内存必然能够被双方访问。其作用类似于操作系统中用户态程序与内核态功能之间交互所使用的内存空间,并且许多用于保护用户态和内核态之间数据交互的安全机制同样可以应用于保护非安全侧与安全侧之间的内存通信。

在早期TrustZone应用中,安全侧的处理逻辑大多仅限于简单的函数调用方式。例如,在非安全侧需要加密的数据被发送至安全侧后,该部分通过同步函

全部评论 (0)

还没有任何评论哟~