嵌入式系统安全性对攻击状况和防卫策略的概述和分析
统管理程序所占用的区域越小,需要去防范的的攻击面积就越小,而且对超级调用(hypercall)的服务响应时间就越短。一个小的覆盖区允许系统管理程序根映像被保存在芯片上,从而减小外界对存储器总线的探测和代码细节的暴露。
ARM的TrustZone技术
是一种将软件和硬件相结合为消费者产品提供安全保护的技术9,10,11。在硬件方面,特殊的具有"安全意识"的存储器包裹层(wrapper),系统总线,调试端口,及中断控制器都被集成到了SOC中。另外,TrustZone为CPU结构和核心增加了一个新的安全监控模式。
在软件方面,一个从受信任的逻辑提供的安全监控器,在新的安全监控模式下运行,并担当安全与不安全状态之间的看门监控任务。当操作系统调用TrustZone指令(安全监控中断或SMI)时,安全监控器受到了控制,与此同时,处理器获得了额外层次的特权以运行受到信任的代码,并通过嵌入已知有安全意识的外设的安全审核位或"S-位",来控制对受到信任的资源的访问。对安全存储器的访问是通过使用MMU和TLB中的安全位标记符和"S-位标记符"来控制的。这些标志被用来将存储器划分为安全区和不安全区。安全监控器通过将中断分为安全和不安全两类,来进一步增强安全性,并实现断开/连接调试端口的能力。
TrustZone技术,已被用来保护在芯片上或不在芯片上的存储器和外围设备免受软件攻击。通过对系统的精心设计,TrustZone可以额外地提供安全措施以抵抗一些硬件攻击。例如,将可信的代码放入SoC内部存储器,并保证置于外部存储器的硬件表 walker列表不能指向内部存储器或敏感程序(TLB的再次写入会失败)。因此,有进入外部存储器的许可并不能提供进入敏感资源的许可。
TrustZone为操作系统在无安全状态下的运行提供了二进制兼容性。如果操作系统需要与安全区域的应用程序进行交流,就必须写扩展名。同样的,在无TrustZone的平台上处于特权模式的一些可以被访问的寄存器, 一旦在TrustZone.内运行时,可以被强迫处于特权/不可信模式。
然而,这种方法一个潜在的缺点是TrustZone仅提供两种环境。一般的应用程序需要三种或更多:一个操作系统核(如RTOS)、一个用于处理DRM或其它安全处理要求的安全内核,以及"丰富的操作系统"-用于控制用户的界面(一般包括Windows Mobile、Symbian、Linux等)。如图5所示的小型终端交互操作平台(STIP)应用12是一类安全付款的方式。正如图中所示的那样,它被保护起来,免受任何在壁垒的"正常"一侧所发生的入侵行为影响,该壁垒是受控于安全监测器。
很多嵌入式方案的一个关键目标是减少材料单成本。许多OEM的发展动力,则是确保了单独的处理器有足够的CPU马力来容纳大量功能。在理想情况下,一个CPU可以同时运行无线工作栈、应用操作系统,及安全应用软件(DRM,还款应用)。将无线工作栈置于特权安全模式下,则产生容易遭受在外部存储器上发生的硬件攻击的弱点,并大大地增大了可信代码基(TCB)的尺寸,其原因可以由如下的例子来说明:一个3G GSM堆栈普遍有几兆大小,比普通的SOC内部存储器要大很多。这就使得设计只能在如下两个方面进行选择:通过将GSM堆栈与应用操作系统集成到一起,使得它能够在正常模式下运行,或是在第三种执行环境中运行它,这种特性是TrustZone所不具有的。
所以TrustZone能够很好地保护硬件,但是却不能为很多系统级的应用程序管理其安全区域。一个独立的系统管理程序可以提供一定程度的、针对软件攻击的防护力,可以让开发者生成多种执行环境,但它在防范硬件攻击方面只采取了很少的措施。不过,把这两者组合起来,就可以产生一种对两个领域来说都是最佳的选择。
正如图6所示的那样,一个以监控模式运行的系统管理程序,可以取代TrustZone安全监控器以及图5所示的安全内核的位置。所有其他软件组件都被推入用户空间中,于是特权模式实际上并未被使用。
图5 TrustZone架构概览
图6 带有系统管理程序的TrustZone
这种方式的优点是,具有运行大量虚拟机的能力,其中一些有安全区,另一些有不被保护的区域。所以,在这种方法中,GSM堆栈可以在它自己的域中运行,但是当它在用户态模式下运行时,如果堆栈被攻击,对黑客公开的资源仅限于那些在引导时就被赋予的资源。STIP应用程序在有墙壁保护且安全的区域是安全的。
系统管理程序精心地管理着对SOC内部的硬件资源的访问,以保证所有可信的数据和应用程序仍存在于合适的安全区域。敏感资源受益于TrustZone所提供的硬件保护,而对安全性来说不那么关键的虚拟机,例如容纳GSM堆栈的虚拟机,可以在外部存储器运行。
MI
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)