• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

智能终端信息安全概念三硬件安全技术—主芯片安全技术1

武飞扬头像
Hkcoco
帮助3

内容来自:《移动互联网时代的智能终端安全》李兴新侯玉华周晓龙郭晓花严斌峰等编著

1、TrustZone

ARM TrustZone技术是芯片级的安全解决方案,通过在CPU内核的设计中集成系统安全性扩展,同时提供安全软件平台,为安全支付、数字版权管理(DRM, Digital Rights Management)、企业服务等应用提供了安全的运行环境。

TrustZone将硬件和软件资源划分为两个执行环境:安全世界(Secure World)和普通世界(Normal World)。不同执行环境的系统软件和应用软件、内存区和外围设备等均相互独立。TrustZone的硬件逻辑,使安全世界的资源与普通世界隔离,不能被普通世界的组件访问。

把敏感资源放在安全世界,能保护绝大多数的资源免受很多潜在的攻击,包括一些很难保证安全的操作,如用键盘或者触摸屏输入密码。普通世界和安全世界的代码以分时共享的方式在同一个物理处理器核上运行,使其不需要专用的处理器内核来执行安全代码,节省了芯片面积和能耗。

1.1 TrustZone硬件架构

TrustZone的硬件架构如图3-1所示,其核心包括处理器内核、直接内存访问(DMA,Direct Memory Access)、安全RAM、安全启动ROM、通用中断控制(GIC,Generic Interrupt Controller)、TrustZone地址空间控制器(TZASC,Trust Zone Address Space Controller)、TrustZone保护控制器、动态内存控制器(DMC,Dynamic Memory Controller)和DRAM(Dynamic Random Access Memory,动态内存控制器),TrustZone内部组件通过AXI(Advanced eXtensible Interface,先进的可扩展接口)系统总线通信,与外设通过AXI-to-APB桥通信。

学新通

(1)系统安全性

TrustZone隔离了所有SoC(System on Chip,系统级芯片)硬件和软件资源,划分为两个执行环境,即用于安全子系统的安全区域以及用于存储其他所有内容的普通区域。TrustZone通过AXI和APB实现了硬件资源的区域分离,并通过AXI总线的硬件逻辑确保普通区域的组件无法访问安全区域的资源。将敏感数据存储在安全区域,将安全软件运行在安全处理器内核中,确保敏感数据存储和访问免受攻击,如使用键盘或触摸屏输入密码等难以防护的攻击。

TrustZone架构的总线结构中,AXI是一种面向高性能、高带宽、低延迟的片内总线,用于连接高速设备APB是一种低门数、低带宽的外设总线,用于连接低速设备,APB通过AXI-to-APB桥连接到AXI系统总线上。

AMBA协议是用于连接和管理片上系统中功能块的开放标准和芯片互连规范,TrustZone使用的AXI总线和APB外设总线均遵循AMBA3协议。

为支持TrustZone技术,AMBA3 AXI系统总线在每个读写信道都增加了一个额外的控制信号,称作非安全位(NS位)

当主设备向总线提出读写事务请求时,必须将控制信号发送到总线上,总线从设备的解码逻辑解释该控制信号,**允许安全主设备对安全从设备的访问,并拒绝非安全主设备对安全从设备的访问,**依据外设的硬件设计和总线配置,从设备或总线可以产生错误访问的状态信号。

TrustZone架构通过AMBA3 APB外设总线提供了保护外设安全性的特性,**包括中断控制器、时钟及用户I/O设备。**相比仅仅保护数据安全,TrustZone架构的安全世界可以解决更广泛的安全问题。

安全中断控制器和时钟允许非中断安全任务来监控系统,安全时钟源保证了DRM的可靠性安全键盘保证用户输入密码的安全性。为了使现有AMBA2 APB外设与实现TrustZone技术的系统兼容,APB总线没有带对应的NS位,而由AXI-to-APB桥负责管理APB外设的安全。AXI-to-APB桥会主动拒绝异常的安全设置事务请求,而不会把请求发送给外设。

(2)处理器内核安全性

通过ARM处理器内核的扩展,普通区域和安全区域的代码能够以分时的方式安全有效地运行在同一个物理处理器内核上,不需要使用专用安全处理器内核,在保证处理器内核安全的同时兼顾了芯片面积和能耗。(有点像时间片任务切换)

目前ARM主流产品,如ARM Cortex-A5、ARM Cortex-A7、ARM Cortex-A9等处理器均已支持前述处理器内核安全扩展。

在处理器架构上,每个带TrustZone安全扩展的处理器核都提供两个虚拟核:安全核和非安全核。

它们分属不同的执行环境安全区域和非安全区域,如图3-2所示。同时处理器引入了一个特殊的机制——监控模式,负责不同执行环境间的切换。非安全核仅能访问非安全系统资源,但安全核能访问所有资源。

学新通
ARM CP15协处理器中引入一个安全配置寄存器(SCR),该寄存器中有一个NS位,NS位表明当前处理器所处的安全状态:0代表安全态,1代表非安全态。安全配置寄存器中的NS位是TrustZone对系统所做的关键扩展,该NS位不仅可以影响CPU内核和内存子系统,还可以影响片内外设的工作。

当ARM处理器处于特权模式工作状态,即系统模式(sys)、中断模式(irq)、快速中断模式(iq)、管理模式(svc)、数据访问终止模式(abt)或未定义指令终止模式(und)时,可以读写安全配置寄存器,而在用户模式(usr)时不允许读写。

NS位只能被运行在安全态且处于特权模式的软件改变,系统在非安全态时不能访问SCR寄存器,通过NS位的状态控制处理器安全状态的切换。

在TrustZone处理器中同时引入了一个特殊的模式——监控模式。监控模式是一种特殊的安全状态,当系统处于监控模式时,不管NS位是否为0,都可以访问安全世界的资源。从非特权模式到特权模式只能通过异常来进行,与该过程类似的,从非安全态到监控模式也是通过异常进行的。从非安全状态可以通过3种异常进入监控模式:执行SMC(Secure Monitor Call,安全监视调用)指令、外部中止、FIQ(Fast Interrupt Request,快速中断请求)和IRQ(Interrupt Request,中断请求)。监控模式还负责实现两个虚拟核之间切换时的上下文备份和恢复。

监控器可以在没有任何执行环境的代码帮助下直接捕获FIQ和IRQ,当执行流到达监控器的时候,监控器能将中断请求路由到相应的中断处理程序与安全中断控制器结合起来,从而让安全中断源发出的中断不被普通世界软件操作。(是不是中断管理器)

ARM推荐使用IRQ作为普通世界中断源,FIQ作为安全世界中断源。如果中断发生在相应的执行环境,则不需要进行执行环境的切换;如果中断发生在另外的执行环境,由监控器控制切换执行环境。一般情况下在执行监控器代码的时候应该关闭中断。同时在CP15协处理器中还引入一个配置寄存器以防止普通世界的恶意软件屏蔽安全世界的中断。

内存管理是实现安全管理的另一关键技术。TrustZone技术的内存管理,通过对一个增强的内存子系统MMU(Memory Management Unit,内存管理单元)和Cache增加相应的控制逻辑实现。

ARM处理器中一级存储系统的主要部件就是内存管理单元,用来将程序和数据的虚拟地址转换为物理地址。页表描述了虚拟地址到物理地址的映射关系,以及每一页的访问权限和Cache属性。

有MMU但是没有TrustZone安全扩展的**ARM内核中,只有一个页表基地址寄存器,**通过特权模式代码重写页表基地址寄存器,使其重新指向一个新的页表来提供多个独立的地址空间。

在TrustZone安全扩展处理器中,**有两个页表基地址寄存器,不同安全状态使用不同的页表基地址寄存器,**相当于有两个虚拟MMU,每个虚拟MMU分属不同的虚拟核,使每个执行环境有一个本地页表集,各个执行环境的虚拟地址到物理地址的转换是独立的,在切换执行环境时不需要切换页表。

这样,在两种模式切换时不必刷新缓存,进而提升软件在这两种模式间通信时的性能。为了实现这种特性,L1、L2等各级处理器缓存需要为Tag域增加一个NS位,用来标识这一行的安全状态。无论Cache行的安全状态如何,只要没被锁住,都可以被换出到主存中,为新的缓冲数据留出存储空间。高性能设计能够在Cache中同时支持安全模式及普通模式的数据缓存,是一个非常有用的特性。

TrustZone技术中使用协处理器实现处理器扩展功能,ARM协处理器附属于ARM处理器,通过扩展指令集或提供配置寄存器来扩展内核功能CP15协处理器是TrustZone技术中使用的最重要的ARM协处理器,用于控制Cache、TCM和存储器管理。

协处理器通过设置某些寄存器实现普通世界和安全世界的工作协同。其中某些寄存器是有备份的,即普通世界和安全世界各有一个这样的寄存器,此时修改寄存器只会对它所在执行环境起作用;有的协处理器寄存器是没有备份的,对它的修改会影响到全局,如控制对Cache进行锁定操作的寄存器。

对这种全局寄存器的访问必须严格控制,一般只对安全世界提供读写权限,而普通世界只能读取。

(3)调试安全性

通过安全感知的调试结构对安全区域的调试进行严格控制,而不会影响普通区域的调试。(这个方面我倒是一直没有接触到)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhfhfc
系列文章
更多 icon
同类精品
更多 icon
继续加载