虚拟化之安全虚拟化

虚拟化首次引入是在Armv7-A架构中。那时,Hyp模式(在AArch32中相当于EL2)仅在非安全状态下可用。当Armv8.4-A引入时,添加了对安全状态下EL2的支持作为一个可选特性。

当处理器支持安全EL2时,需要使用SCR_EL3.EEL2位从EL3启用该处理器。设置此位将启用进入EL2,并启用在安全状态下使用虚拟化功能。

在安全虚拟化可用之前,EL3通常用于托管一些混合了安全状态切换软件和平台固件的功能。这是因为我们希望最小化EL3中的软件数量,以便更容易保护EL3。安全虚拟化使得我们能够将平台固件移到EL1。虚拟化提供了用于平台固件和受信任内核的单独的安全分区。以下图表阐明了这一点:

安全EL2和两个中间物理地址空间

Arm架构定义了两个物理地址空间:安全(Secure)和非安全(Non-secure)。在非安全状态下,虚拟机(VM)的第一阶段翻译的输出始终是非安全的。因此,第二阶段需要处理单一的中间物理地址(IPA)空间。

在安全状态下,VM的第一阶段翻译可以输出安全和非安全地址。NS位在翻译表描述符中控制输出安全空间还是非安全空间。如下图所示,这意味着第二阶段有两个IPA空间,分别是安全和非安全:

与第一阶段表不同,第二阶段表条目中没有NS位。对于特定的IPA空间,所有的翻译结果要么是安全物理地址,要么是非安全物理地址。这个翻译由一个寄存器位来控制。通常,非安全的IPA翻译为非安全的PA,而安全的IPA翻译为安全的PA。

相关推荐
大新新大浩浩1 天前
arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
rabbitmq·arm
大新新大浩浩1 天前
arm64适配系列文章-第九章-arm64环境上sentinel的部署
arm
大新新大浩浩1 天前
arm64适配系列文章-第三章-arm64环境上mariadb的部署
数据库·arm·mariadb
Zenexus5 天前
Linux学习笔记协议篇(六):SPI FLASH设备驱动
linux·笔记·arm
Psyduck_ing6 天前
探秘STM32如何成为现代科技的隐形引擎
stm32·单片机·arm
欢喜躲在眉梢里7 天前
容器docker入门学习
运维·学习·nginx·docker·容器·虚拟化
安全二次方security²12 天前
SCP-Firmware安全通告:CVE-2024-11863和CVE-2024-11864
安全通告·arm安全架构·scp-firmware·scmi·cve-2024-11863·cve-2024-11864·dos拒绝服务攻击
安全二次方security²13 天前
【CVE-2024-7881】ARM CPU漏洞安全通告
arm安全架构·prefetch·arm安全中心·cve-2024-7881·cpuactlr6_el1·kpti·arm安全通告
FreakStudio17 天前
【电子DIY神器】通吃各种5线步进电机!I2C接口控制28BYJ-48五线四相步进电机
stm32·单片机·mcu·嵌入式·arm·技术栈·电子diy
漫谈网络19 天前
macvlan 和 ipvlan 实现原理及设计案例详解
linux内核·虚拟化·macvlan·网络命名空间·netns·ipvlan