访问权限控制
TrustZone技术之所以能提高系统的安全性,是因为对外部资源和内存资源的硬件隔离。这些硬件隔离包括中断隔离、片上RAM和ROM的隔离、片外RAM和ROM的隔离、外围设备的硬件隔离、外部RAM和ROM的隔离等。
实现硬件层面的各种隔离,需要对整个系统的硬件和处理器核做出相应的扩展。这些扩展包括:
• □ 对处理器核的虚拟化,也就是将AMR处理器的运行状态分为安全态和非安全态。
• □ 对总线的扩展,增加安全位读写信号线。
• □ 对内存管理单元(Memory Management Unit, MMU)的扩展,增加页表的安全位。
• □ 对缓存(Cache)的扩展,增加安全位。
• □ 对其他外围组件进行了相应的扩展,提供安全操作权限控制和安全操作信号。
在支持TrustZone的SoC上,会对MMU进行虚拟化,使得寄存器TTBR0、TTBR1、TTBCR在安全状态和非安全状态下是相互隔离的,因此两种状态下的虚拟地址转换表是独立的。
存放在MMU中的每一条页表描述符都会包含一个安全状态位,用以表示被映射的内存是属于安全内存还是非安全内存。
虚拟化的MMU共享转换监测缓冲区(Translation Lookaside Buffer ,TLB),同样TLB中的每一项也会打上安全状态位标记,只不过该标记是用来表示该条转换是正常世界状态转化的还是安全世界状态转化的。
Cache也同样进行了扩展,Cache中的每一项都会按照安全状态和非安全状态打上对应的标签,在不同的状态下,处理器只能使用对应状态下的Cache。
在REE(linux)和TEE(optee)双系统的环境下,可同时开启两个系统的MMU。在secure和non-secure中使用不同的页表.secure的页表可以映射non-secure的内存,而non-secure的页表不能去映射secure的内存,否则在转换时会发生错误:
在EL2系统中,MMU地址转换时,会自动使用TTBR2_EL1指向的页表。
在EL3系统中,MMU地址转换时,会自动使用TTBR3_EL1指向的页表。
全部0条评论
快来发表一下你的评论吧 !