基于QEMU的ARMv9 RME安全模拟平台详解与关键组件

6 下载量 47 浏览量 更新于2024-06-24 收藏 543KB PDF 举报
本文主要介绍了基于QEMU的ARM CCA模拟平台的RME(Remote Memory Encryption)安全架构。该平台由硬件仿真平台、软件平台两大部分组成,旨在提供一个全面的ARM安全环境,以便进行高级别的安全测试,包括ARMv9架构下的内存加密、权限管理以及多世界安全模型。 1. **硬件仿真平台(QEMU-RME)** - QEMU-RME是核心组件,其代码量超过1500+行,它扩展了QEMU的虚拟化功能,支持新的领域状态(Realm States)的添加,如处理GPC(Generic Protection Control)故障,并对TLB(Translation Lookaside Buffer)进行扩展,引入基于物理地址和领域世界的TLB指令。 - MMU(Memory Management Unit)模块也得到了修改,涉及页表的NS(Not Secure)和NSE(Secure)位格式,以及PTW(Page Table Walk)行为的调整,以适应RME的要求。 2. **软件平台** - 除了硬件层面的改动,软件平台如Firmware Provisioning System (FVP) 和 QEMU-kvm 的集成也至关重要。FVP用于加载和管理基础软件堆栈,包括启动加载器(如EDK2 Bootloader)、KVM-RME,以及guest kernel和应用程序。 - ATF-RME(ARM Trusted Firmware for RME)负责初始化过程,确保BL2在EL3加载,并实现新的RMM加载流程。此外,它还处理世界转换,包括从领域世界到正常世界的切换,并通过SMCCC(Secure Monitor Call Control Center)来管理粒度委托请求。 - 平台迁移功能,即virtplatform layout and driver migration,使得QEMU平台可以在不影响实际应用的情况下迁移,保证系统的连续性和兼容性。 - GPT(GUID Partition Table)初始化也被纳入,包括配置初始L1/L2表和开启GPT功能。 3. **RMM(Remote Memory Manager)** RMM是关键的安全组件,其代码量约20K行,负责执行远程内存加密和访问控制。作为bare-metal测试框架的一部分,它提供了安全基线,确保在底层硬件上进行的测试准确反映实际系统行为。 4. **多世界模型** 平台采用多世界架构,包括Secure Monitor、Normal World、Root World等不同特权级别(EL0至EL3)。例如,BL1和BL2位于EL1和EL2,而RMM位于最高特权级别EL3。Worldswitch机制允许在这些世界之间安全地进行通信。 总结,这篇文档详细阐述了基于QEMU的ARM CCA模拟平台如何通过RME安全架构增强内存安全性,包括硬件和软件层面的改进,以及在多世界模型中的应用,为研究人员和开发者提供了一个全面的测试和开发环境。