黑客在2/17/2018发布了最新消息,Switch使用的ARM处理器Tegra X1存在的“信任区”漏洞支持到目前最新的4.1.0系统,黑客发布了视频,并告诫大家保持在当前的4.1.0系统,不要升级系统!下面是ARM处理器TrustZone介绍。 TrustZone是ARM对ARM6的扩展,其实只是增加了一条指令,一个配置状态位,以及一个新的有别于核心态和用户态的安全态。ARM并没有把TrustZone设计成能够解决所有的安全问题,它的目标是希望TrustZone能把一些安全性要求高的代码放在安全区域里执行,这也就是TrustZone名字的由来。 ARM把TrustZone固化在硬件里的道理是,系统的安全性不能全靠软件来保证,而且改写现有的不安全的软件,使之更安全也不大可行。较为可行的方案就是引入一块安全的硬件逻辑,并且只让一小块软>件控制此安全逻辑。这样既保护了既有投资,也把系统的安全风险降到最小。 因为操作系统和普通应用都可以运行在安全态,所以安全态不同于传统的运行态环状的特权划分,因此ARM把安全态描述成一个平行区域,称之为安全区,又称为安全监控模式。 核心态程序要进入到安全区运行,必须执行安全监控中断( secure monitor interrupt, SMI)指令,而应用程序则必须通过API 函数来调用SMI 指令,此时,操作系统要负责检查应用程序是否安全,若通过检查则执行SMI指令进入到安全区。这样,整个系统的安全性就全由操作系统负责了。换句话说,TrustZone需要软件的支持,才能达到安全目标。 执行SMI 指令的具体动作是,SMI在CP15的安全状态寄存器中设置S位.。S位扩展还体现在AMBA总线上,这样外设也可以实现对TrustZone的支持。 安全监控程序(固件)是独立于操作系统的、自足的、不可重入的一小段代码。只要CP15安全状态寄存的S位处于置1状态,安全监控程序就要起作用(监测所有处理器操作)。首先监控程序要负责保存>上下文状态,即寄存器内容(一般保存到紧致内存TCM中),并且把当前处理器配置信息保存到CP15的单独一组分编(banked)寄存器中。TrustZone的开销是增加了大约350位状态信息,完成上下文切换需要200时钟周期。 由于TrustZone为安全区配备了单独的缓存、TLB和紧致内存TCM,上下文切换并不会导致这些性能构件内容的倒换,也即不会导致系统性能的降低。 ARM建议把安全监控程序及其运行时需要的内存置于一个TCM块中,以使延迟更低且更可预测。 安全扩展对于中断处理也有影响。因为中断既可以来自外设,也可来自软件,那就必须假定中断有可能造成安全漏洞,这样,在安全代码执行时,就不能简单地让任何中断切入进来。ARM建议的方案是,把中断也分为安全的和非安全的,安全代码只能被安全中断打断。当然,也可以把所有中断都提升为安全的,但那样会引入不必要的延迟。 TrustZone是体系结构的扩展,系统软件可以利用这一扩展提供安全支持,TrustZone本身并不能实现安全保障功能,但这一解决方案硬件实现不复杂,也不增加许多功耗,仍是具有很好性价比的安全嵌入式解决方案。 |
Archiver|手机版|小黑屋|深圳斯威奶牛科技有限公司 ( 粤ICP备14034528号-1 )|网站地图
GMT+8, 2024-12-22 09:57 , Processed in 0.031991 second(s), 17 queries .
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.