1、TrustZone 简介
1.1 什么是 TrustZone
arm TrustZone 技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理(DRM)、企业服务和基于
Web 的服务。
TrustZone 技术与 Cortex™-A
处理器紧密集成,并通过 AMBA-AXI 总线和特定的 TrustZone 系统 IP块在系统中进行扩展。此系统方法意味着可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们免遭软件攻击。
按照 TrustZone Ready Program 建议开发并利用 TrustZone 技术的设备提供了能够支持完全可信执行环境(TEE)以及安全感知应用程序和安全服务的平台。
智能
手机和平板电脑等最新设备为消费者提供了基于扩展服务集的高价值体验,移动设备已发展为能够从 Internet 下载各种大型应用程序的开放软件平台。这些应用程序通常由设备 OEM 进行验证以确保质量,但并非可对所有功能进行测试,并且攻击者正在不断创建越来越多以此类设备为目标的恶意代码。
同时,移动设备处理重要服务的需求日益增加。从能够支付、下载和观看某一特定时段的最新好莱坞大片,到能够通过手机远程支付帐单和管理银行帐户,这一切都表明,新的商业模式已开始出现。这些发展趋势已使手机有可能成为恶意软件、木马和
rootkit 等病毒的下一软件攻击目标。但是,通过应用基于 ARM TrustZone 技术的高级安全技术并整合 SecurCore™防篡改元素,可开发出能够提供功能丰富的开放式操作环境和强大安全
解决方案的设备。
可信应用程序采用基 TrustZone 技术的
SOC(运行可信执行环境),与主 OS 分开,可防止软件/恶意软件攻击。TrustZone 可切换到安全模式,提供硬件支持的隔离。可信应用程序通常是可集装箱化的,如允许不同支付公司的可信应用程序共存于一台设备上。处理器支持 ARM TrustZone 技术是所有 Cortex-A 类处理器的基本功能,是通过 ARM 架构安全扩展引入的。这些扩展可在供应商、平台和应用程序中提供一致的程序员模型,同时提供真实的硬件支持的安全环境。
1.2 TrustZone 软硬件架构
1.2.1 硬件架构
TrustZone 硬件架构旨在提供安全框架,从而使设备能够抵御将遇到的众多特定威胁。TrustZone 技术可提供允许 SoC 设计人员从大量可在安全环境中实现特定功能的组件中进行选择的基础结构,而不提供固定且一成不变的安全解决方案。
架构的主要安全目标是支持构建可编程环境, 以防止资产的机密性和完整性受到特定攻击。具备这些特性的平台可用于构建一组范围广泛的安全解决方案,而使用传统方法构建这些解决方案将费时费力。
可通过以下方式确保系统安全:隔离所有 SoC 硬件和软件资源,使它们分别位于两个区域(用于安全子系统的安全区域以及用于存储其他所有内容的普通区域)中。支持 TrustZone 的 AMBA3 AXI™总线构造中的硬件逻辑可确保普通区域组件无法访问安全区域资源,从而在这两个区域之间构建强大边界。将敏感资源放入安全区域的设计,以及在安全的处理器
内核中可靠运行软件可确保资产能够抵御众多潜在攻击,包括那些通常难以防护的攻击(例如,使用键盘或触摸屏输入密码)。通过在硬件中隔离安全敏感的外设,设计人员可限制需要通过安全评估的子系统的数目,从而在提交安全认证设备时节省成本。
TrustZone 硬件架构的第二个方面是在一些 ARM 处理器内核中实现的扩展。通过这些额外增加的扩展,单个物理处理器内核能够以时间片的方式安全有效地同时从普通区域和安全区域执行代码。这样,便无需使用专用安全处理器内核,从而节省了
芯片面积和能源,并且允许高性能安全软件与普通区域操作环境一起运行。
更改当前运行的虚拟处理器后,这两个虚拟处理器通过新处理器模式(称为监视模式)来进行上下文切换。
物理处理器用于从普通区域进入监视模式的机制受到密切控制, 并且这些机制始终被视为监视模式软件的异常。要监视的项可由执行专用指令(安全监视调用 (SMC)指令)的软件触发,或由硬件异常机制的子集触发。可对 IRQ、FIQ、外部数据中止和外部预取中止异常进行配置,以使处理器切换到监视模式。
在监视模式中执行的软件是实现定义的,但它通常保存当前区域的状态,并还原将切换到的区域位置的状态。然后,它会执行从异常返回的操作,以在已还原区域中重新启动处理过程。TrustZone 硬件架构的最后一个方面是安全感知调试基础结构,它可控制对安全区域调试的访问,而不会削弱普通区域的调试可视化。
1.2.2 软件架构
在 SoC 硬件中实现安全区域要求在其中运行某些安全软件,并利用存储在其中的敏感资产。可能有许多支持 TrustZone 的处理器内核上的安全区域软件堆栈可实现的软件架构。最高级的软件架构是专用安全区域
操作系统;最简单的是放置在安全区域中的同步代码库。这两个极端架构之间有许多中间选项。
专用安全内核可能是一种复杂但强大的设计。它可模拟多个独立安全区域应用程序的并发执行、新安全应用程序的运行时下载以及完全与普通区域环境独立的安全区域任务。
这些设计与将在 SoC 中看到的软件堆栈非常类似,它们在非对称多处理(AMP)配置中使用两个单独的物理处理器。在每个虚拟处理器上运行的软件是独立的操作系统,并且每个区域使用硬件中断来抢占当前运行的区域和获得处理器时间。
使用将安全区域任务与请求这些任务的普通区域威胁相关联的通信协议的紧密集成设计可提供对称多处理(SMP)设计的许多优点。例如,在这些设计中,安全区域应用程序可继承它支持的普通区域任务的优先级。这将导致对媒体应用程序做出某些形式的软实时响应。
安全扩展是 ARM 架构的开放式组件,因此任何开发人员都可创建自定义安全区域软件环境,以满足其要求。
1.2.3 TrustZone 与 TEE
支付、网上银行、内容保护和企业身份验证之类的应用可通过利用 TrustZone 技术增强型设备所提供的
三个关键要素来提高其完整性、功能和
用户体验:
1. 面向软件的安全执行环境,可防止从富操作系统发起恶意软件攻击
2. 已知良好的硬件信任根,可在富操作领域检查数据和应用程序的完整性,确保安全环境不受到损害
3. 按需访问安全外设,如内存、键盘/触摸屏,甚至显示器
基于 ARM TrustZone 技术的设备与开放 API 相结合,提供了可信执行环境(TEE),开发人员需要通过一种新型软件才能实现其功能和一致性:这种软件就是可信应用程序。典型可信应用程序可在普通区域和安全区域各包含部分代码,例如,处理关键存储和操控。TEE 还提供了与其他可信应用程序的隔离,使多个可信服务可以共存。
TEE API 的标准化(由 GlobalPlatform 管理)将会使服务提供商、运营商和 OEM 的可互操作可信应用程序和服务实现市场化。
ARM TrustZone 技术无需单独的安全硬件来验证设备或用户的完整性。它通过在主手机芯片集中提供真正的硬件信任根来实现这一点。
为确保应用程序的完整性,TrustZone 还提供了安全执行环境(即可信执行环境 (TEE)),在此环境中只有可信应用程序才能运行,从而防止遭到黑客/病毒/恶意软件形式的攻击。
TrustZone 硬件提供了 TEE 与软件攻击媒介的隔离。硬件隔离可扩展为保护一直到物理外设(包括键盘/触摸屏等)的数据输入和输出。
正是具备了这些关键功能,采用 TrustZone 技术的芯片集提供了众多机会来重新定义用户可以访问的服务(更多、更好的服务),如何访问服务(更快、更轻松)以及在何处访问服务(随时随地)。
在大多数
Android 设备上,Android Boot 加载程序都不会验证设备内核的真实性。希望进一步控制其设备的用户可能会安装破解的Android内核来对设备进行root。破解的内核可让超级用户访问所有数据文件、应用程序和资源。一旦破解内核损坏,则会导致服务被拒绝。如果内核包含恶意软件,则将危害企业数据的安全性。
而 Secure Boot 可有效防止上述问题,Secure Boot 是一种安全机制,它可防止在启动过程中加载未经授权的启动加载程序和内核。由值得信任的已知权威机构以加密方式签名的固件映像(如操作系统和系统组件)会被视为经过授权的固件。安全启动组件可以形成第一道防线,用以防范恶意软件对设备进行攻击。
更多详细内容请下载附件查看