APP下载

基于TrustZone技术的TEE安全方案的研究

2016-02-24郝先林胡荣磊

北京电子科技学院学报 2016年2期
关键词:内核架构安全性

郝先林 曾 萍 胡荣磊

基于TrustZone技术的TEE安全方案的研究

郝先林 曾 萍 胡荣磊

北京电子科技学院,北京 100070

本文首先介绍了移动终端安全关键技术TrustZone和TEE,并对现有的TEE方案的安全性进行了分析。其次针对其安全性不足的问题以及不同运营商的具体情况,提出了基于TrustZone TEE+Secure OS模式改进其安全性的解决方案。最后对该方案进行的安全性分析表明,方案能够提高移动终端的安全性。

移动终端;隔离;可信执行环境;安全

引言

移动互联网的到来给移动终端带来了前所未有的发展机遇,同时也带来了严峻的安全挑战。智能移动终端作为移动互联网时代最主要的载体,如今已经高度普及,功能也日益完善。智能移动终端中存储的用户个人隐私及商业秘密等敏感信息越来越多,但其丰富的通信和数据交换功能同时也为信息泄露和恶意软件的传播提供了通道,各种安全问题如隐私泄露、恶意订购、自动联网、病毒感染等日益凸显。尤其是在斯诺登事件、苹果iCloud“艳照门”等事件曝光后,智能移动终端的安全问题已经引起各界的广泛关注。安全性在目前移动终端的设计中成为一项极其重要的参考指标。

REE(Rich Execution Environment,普通执行环境)主要包括运行于通用嵌入式处理器中的Rich OS(RichOperating System,普通操作系统)及其上的客户端应用程序。尽管在REE中采取了诸多安全措施,如传统的设备访问控制、设备数据加密机制、应用运行时的隔离机制、基于权限的访问控制、应用逆向工程的防止策略和系统安全更新来保障应用和数据的安全,但是众多的攻击案例和系统漏洞表明,这些仍然无法保证敏感数据的安全性。因此 OMTP (Open Mobile Terminal Organization,开放移动终端组织)首先提出了 TEE(Trusted Execution Environment,可信执行环境)概念。2010年7月,GP(Global Platform,全球平台组织)第一个提出了TEE标准。

本文介绍了新兴的移动安全技术TrustZone技术和TEE。TrustZone是用来构建TEE的底层硬件隔离技术。TrustZone技术在不影响系统的功耗和性能的前提下通过硬件来实现安全环境与普通环境的隔离,而软件提供基本的安全服务和接口,由软硬件相结合来保障系统安全[1]。TEE提出了在原有硬件和软件的基础上,隔离出TEE和REE,其中TEE用于安装、存储和保护TA(Trusted Apps,可信应用),而REE用于安装、存储其它的应用[2]。

本文通过对现有TEE方案的分析,针对其存在的安全性不足的问题,利用TrustZone技术的硬件隔离和TEE技术的软件框架,提出了TrustZone TEE与Secure OS相结合的改进方案并对其安全性进行了分析。该改进方案实现了基于TrustZone TEE技术的运行在ARM内核上的安全操作系统。该安全操作系统应用于使用ARM硬件安全扩展——TrustZone技术的移动设备,可以为终端用户提供高安全性的系统和应用。

1 关键技术及安全性分析

1.1 TrustZone技术安全隔离机制的实现

从芯片就开始提供设备的安全防护是提升设备的安全防护水准最有效的举措。ARM公司于2003年在嵌入式领域中提出了TrustZone技术,为硬件系统提供安全保护。不过,TrustZone技术提出的时候,手机的应用功能还未发展到今天这么复杂和高度集成,这个十多年前提出的技术已经不能适应现在移动安全的需求了。而ARM处理器最重要的结构改变是使用了安全扩展架构,ARMv6以上的各个版本都支持安全扩展。

TrustZone技术在ARMv6内核架构下的重要扩展特性之一是:在CPU内核的设计中集成系统安全性扩展。通过这些额外增加的扩展,单个物理处理器内核能够以时间片的方式安全地同时从普通区域和安全区域内执行代码。这样,便不需要使用专用安全处理器内核,从而节省了芯片面积和能源,并且允许高性能安全软件与普通区域操作环境一起运行。它分离了两个并行执行的环境:非安全的“普通”执行环境;安全可信任的“安全”环境,安全监控器Monitor控制着安全与“普通”环境之间的转换,以决定系统是否运行在安全或不安全的环境下[3]。TrustZone模式下两个并行执行环境示意图如图1所示:

TrustZone技术可以通过以下方式确保系统安全:(1)隔离所有SoC硬件和软件资源,使它们分别位于两个区域,即用于安全子系统的安全区域以及用于存储其他所有内容的普通区域中[4]。(2)支持TrustZone的AMBA3 AXI总线构造中的硬件逻辑可确保普通区域组件无法访问安全区域资源,从而把这两个区域相互隔离开来[5]。(3)将敏感资源放入安全区域的设计,以及在安全的处理器内核中可靠运行软件可确保资产能够抵御众多潜在攻击,包括那些通常难以防护的使用键盘或触摸屏输入密码攻击。(4)通过在硬件中隔离安全敏感的外设,设计人员可限制需要通过安全评估的子系统的数目,从而在提交安全认证设备时可以节省成本。

TrustZone技术需要在ARM架构和软件上做到安全隔离。在ARM架构上要做的改变包括增加一条AXI总线控制线、可支持虚拟化核ARM core、TZASC(TrustZone Address Space controller,TrustZone地址空间控制器)和TZPC (TrustZone protection controller,TrustZone保护控制器)。软件上就是基于可虚拟化核心,加上SMC系统调用,使CPU进入安全世界,运行安全世界的APP。基于上述架构就可以做到完全隔离了,从而使设备能够抵御可能遇到的众多特定威胁。

TrustZone安全硬件架构是安全感知调试的基础结构,它可控制对安全区域调试的访问,而不会削弱普通区域的调试可视化。最高级的软件架构是专用安全区域操作系统;最简单的是放置在安全区域中的同步代码库。TrustZone安全软件架构就是专用安全区域操作系统。专用安全内核是一种复杂但强大的设计,它可模拟多个独立安全区域应用程序的并发执行、新安全应用程序的运行时下载以及完全与普通区域环境独立的安全区域任务。

1.2 TEE概述及安全性分析

1.2.1 TEE概述

目前智能手机和平板等移动终端进行数据保护的方式是引入全盘加密,全盘加密使用的主密钥是通过锁屏密码或设备PIN码来保护的,其安全性和密码/PIN码的强度息息相关,如果设置成弱口令,则全盘加密的安全性会大打折扣。这种保护全依赖于屏保密码或设备PIN码,是纯软件的保护方式,一旦密码或PIN码被攻破,全盘加密的主密钥就会被暴露。而TEE采用强制加密机制,不需要用户自行开启。TEE初次启动时使用临时密码对密钥进行加密,当用户设置密码后,只需要重新加密密钥,而不需要对数据重新加密。即使用户不设置PIN码也是加密状态,而且支持基于硬件方案存储密钥。

TEE是GP发布的支持隔离执行的软硬件技术规范,它自下而上地构建了一个与RichOS平行运行的独立执行环境,它可以为RichOS提供相应的安全服务。在移动设备上,TEE环境与RichOS是并行存在的,为丰富的移动操作系统环境提供安全功能。运行在TEE的应用称为可信应用,其可以访问设备主处理器和内存的全部功能,硬件隔离技术保护其不受安装在主操作系统环境的用户第三方应用程序的影响。而TEE内部的软件和密码隔离技术可以保证每个可信应用之间不会相互影响,这样可以供多个不同的服务提供商同时使用,而且不影响安全性。

TEE创建一个与RichOS并行运行的独立的安全执行环境,能够信任并运行涉及敏感数据的应用。在 TEE下,这些应用能够在Android、Windows phone和 Linux等平台中运行。基于ARM TrustZone硬件技术的TEE,将内部的软硬软件资源与RichOS及运行在其上的应用相隔离,为保护设备重要数据和执行可信代码提供一个安全区域[6,7]。TEE架构图如图2所示:

TEE架构的目标是通过可信应用向使用者提供分离的、可信的执行环境,并且执行的结果可以被客户端应用程序使用。当客户端应用需要执行敏感操作如安全输入输出、敏感数据计算时,通过调用TEE客户端API与可信应用进行信息传递,同时将需要处理的数据放入共享内存中。相关操作命令则通过REE通信代理传入TEE[8]。此时,通过调用TrustZone硬件上的监控器进行环境的切换。在TEE内,可信应用通过调用TEE内部API及可信内核来完成相关操作。然后将处理后的数据或命令通过共享内存或TEE通信代理传入REE[9]。由于整个数据处理过程都在TEE内进行,与普通执行环境隔离,从而保证了整个过程的安全。

TEE是运行在设备中的,提供介于RichOS和SE(Secure Element,安全元素)之间的安全性的框架。当前的很多安全架构还是基于 RichOS+SE的方式,这在方便程度和成本上都不是很合适。因为某些小额的支付,DRM,企业VPN等,所需要的安全保护强度并不高,还不需要一个单独的SE来保护,但是又不能直接放在Rich OS中。所以对于这类应用,TEE则提供了合适的保护强度,并且平衡了成本和易开发性。

1.2.2 TEE安全性分析

使用ARM TrustZone技术构建TEE是绝大多数智能移动终端的实现方式。TEE在现有的ARM TrustZone硬件基础上,通过虚拟化技术建立起一个隔离的可信执行环境。通过加入标记位,将安全数据与普通数据进行区分[10]。安全数据与资源必须只在可信环境内进行存储与执行,保证安全资源不会被恶意软件截获,从而在不增加成本的基础上来提高设备的安全性。然而TEE功能日益复杂与多样化,现有的TEE也不是真正的安全。

目前针对TEE架构的移动平台攻击包括: (1)芯片攻击:利用JTAG调试接口对MMU (Memory Management Unit,内存管理单元)处理器单元重新编程,修改RAM及存储的寻址范围,从而获得相应数据的访问权限;或者利用物理探针在SoC芯片的数据总线上进行信号窃听。(2)共享资源攻击:如果REE环境中的非法代码能共享访问与TEE相同的CPU或RAM资源,那么TEE就存在受到共享资源攻击的风险。(3)系统漏洞攻击:在智能手机设备上发现了TEE内存访问控制的漏洞;Bootloader存在设计漏洞,可用于系统非法提权;整数溢出会给TEE的运行带来风险;在安全启动代码中存在证书处理或签名有效期的漏洞,允许黑客插入恶意代码。(4)入侵式攻击:篡改代码签名机制可允许黑客插入恶意代码。

现有的国内外TEE方案在实际应用中存在的问题与缺点包括:(1)TEE的硬件隔离主要包括对CPU资源的分时、隔离、RAM资源和存储资源的寻址隔离上,而在物理器件上仍然与REE环境共享,本质上只是芯片内软件调度的隔离,所以并不具备较高的防篡改能力。(2)TEE的存储安全性不够,无法保证Token等关键数据的安全,不同于SE的关键数据不在内存中,当前TEE依然无法达到SE的安全等级[11]。(3)TEE本身仍存在一定级别的认证的问题(EAL2或EAL3,特殊行业应用EAL4及以上),CC(信息技术安全评价通用准则)组织的EAL(评估保证级别)等级认证仍在进行之中。(4)TEE的攻击面包括以下几个方面:安全启动、TEE内核本身、TA安全性、硬件操作与隔离和TEE与REE交互的部分。

为了防止上述针对TEE架构的移动平台的攻击以及避免现有TEE方案在实际应用中存在的问题,可以构建一个可信执行环境的操作系统,其安全性要比单纯地利用TEE内核的安全性要高得多。

2 基于TEE的安全性改善方案

2.1 TrustZone TEE与Secure OS相结合

本文通过对现有的TEE方案的分析,说明只有硬件安全的隔离还远远不够,TEE与上层安全应用自身的安全性更需要重视,需要从整体设计与安全评估进行TEE安全增强。具体包括以下四个方面:(1)针对芯片厂商的TrustZone硬件隔离实现机制各异的问题,基于TEE的安全性改善方案需要保证不同TEE方案的安全性。(2)针对大多数TEE与手机厂商更关注功能性的问题,该改善性安全方案也需要确保TEE自身的安全性。(3)针对TA不断增加带来的新的安全隐患的挑战,该改善性安全方案必须能够有效地将TEE与TA隔离开来。(4)针对TEE无法应对物理攻击的挑战,还要求该改善性安全方案能够提高TEE防御的层次。考虑到上述问题与挑战,本文提出了TrustZone TEE与 Secure OS(SecureOperating Systerms,安全操作系统)相结合的TEE安全方案来改善现有的TEE方案。

该改善性安全方案的创新点就是将TrustZone TEE与Secure OS相结合,它组成了一个运行在ARM内核上的基于TrustZone技术的可信执行环境的操作系统。该操作系统可以应用于使用ARM硬件安全扩展TrustZone技术的移动设备。TrustZone技术支持传统的操作系统,如Android、Linux等,并能够为它们提供更强的安全性。TrustZone技术提供了一个易于使用的可信计算平台的研究社区,同时为移动设备供应商提供一个高质量的TEE,从而可以为终端用户提供高安全性的系统和应用,包括移动安全支付、数字版权管理、内核Rootkit检测和预防以及BYOD(Bring Your Own Device,自带设备)解决方案。TrustZone TEE+Secure OS结构图如图3所示:

从上面的TrustZone TEE+Secure OS结构图可以看出可信执行环境的操作系统的设计支持加载第三方可信应用程序用签名来动态检查,可以大大降低系统的攻击面;提供了一系列丰富的用户区域库;可以加强不同的受信任应用程序之间的隔离,也可以加强不可信的和受信任的应用程序之间的隔离以及可信任应用程序和内核之间的隔离。还有,通过实现安全的引导,该方案可确保系统不能被篡改。

TrustZone TEE+Secure OS可以应用到实际中,它能够和Android、Linux等传统操作系统同时运行。从而TrustZone TEE+Secure OS可以实现可信执行环境的三层架构,可信执行环境的三层架构图如图4所示:

上述可信执行环境的三层架构图的设计包括:TA层、Secure OS层和硬件层三层架构,其中TA层实现了数字版权管理、安全支付、TUI (TrustedUser Interface,可信用户界面)等功能,Secure OS层实现了安全操作系统和对上层TA提供支持库,硬件层则实现了CPU状态隔离、内存隔离和外设隔离。除此之外,还包括参照GP提出的接口标准和规范来设计可信执行环境客户端应用程序接口和可信执行环境服务端内部接口,从而实现不可信执行环境和可信执行环境间安全交互的通信机制。

2.2 方案分析

可信执行环境的操作系统作为可信任的内核是在高度安全的前提下,用一个简单的和设计,更少的代码实现,内核将更容易达到高安全可信。此外,用自底向上的方法来实现一个安全内核比自顶向下的方法容易削减现有的内核。为使可信执行环境的操作系统能够抵御目前常见的物理攻击,在以下几个方面进行了设计:(1)将所有明文数据只存在SoC内部,外部内存中只保存密文数据,因为仅SoC可信,对SoC本身进行物理攻击的难度极高;(2)做到全系统级保护,支持包括TA在内的TEE整体; (3)支持后向兼容,保持对现有TA透明,对TEE和TA内存大小没有限制;(4)实现基于PUF(Physical Unclonable Functions,物理不可克隆功能)的秘钥管理,增强存储安全以及有效保证Token等关键数据的安全。这样设计便可以使可信执行环境的操作系统拥有更安全的数据存储、更强的物理攻击防御和更小的可信基。

该方案的设计符合Global Platform的标准,支持安全应用如DRM、安全支付、密码管理以及支持灵活定制和二次开发。最大的优点在于基本上不需要更改原有操作系统。对于一些特定的业务需求如Rookit保护,该方案需要轻量级的修改操作系统。

目前该方案已成功应用在 Exynos 4412 Cortex-A9硬件开发平台上,实现了SecureBoot的完整信任链、TA签名验证与保护、TUI和TA中不同域与库间互相隔离,四者形成动静态保护,保证了移动终端的高度安全。

3 结束语

如今内容保护、企业环境、连接性和移动金融服务的兴起都需要更高级别的安全保护,而TEE能够隔离安全应用,并防止其受到恶意软件的攻击[12]。同时TEE也面临着机遇和挑战,一方面是因为TEE本身会面临越来越多的安全挑战,另一方面是因为虚拟化等新的硬件特性会给TEE带来更多机会。通过安全的系统设计,TEE可以接近SE的安全等级。TEE能够满足大多数应用的安全需求,相信在未来各种安全技术的发展中,TEE可以为其提供更安全的存储和执行环境,可以从系统层面提供更广的安全。

智能手机操作系统的安全问题,不可只从软件层面去解决,还需要借助硬件本身的能力对其进行完善。可信执行环境的架构已逐渐被终端厂家采用,并且已有移动支付类的代表性应用落地,相信在不久的将来,智能手机安全操作系统将会得到普及。

[1]杜文银,张涛,凌君.基于ARM TrustZone技术的移动可信平台[J].测控技术,2009,28(S1):52-54.

[2]GlobalPlatform Device Technology TEE Internal API Specification Version 1.0[EB/ OL].http://www.trustedcomputinggroup.org,2011.

[3]TrustZone API specification,PRD29-USGC-000089,v2.0,ARM[EB/OL].http://www.arm.com/zh/products/ processors/technologies/trustzone/index.php

[4]PRD 29-GENC-009492C_trustzone_ security_whitepaper[EB/OL].http://www.doc88.com/p-461115844351.html

[5]Stefano Zammattio,Clive Davies.Partitioning a System for Safe and Non-safe Applications Using ARM’s TrustZone Technology[J].Electronic Engineering &Pro-ductWorld,2013(9):5-8.

[6]ARM Security Technology Building a Secure System usingTrustZoneTechnology[EB/ OL].http://infocenter.arm.com/help/ topic/com.arm.doc.prd29 - genc -009492c/PRD 29-GENC-009492C_ trustzone_security_whitepaper.pdf,2009.

[7]王熙友.ARMTrustZone安全隔离技术研究与应用[D].成都:电子科技大学,2010.

[8]GlobalPlatform Device Technology TEE Client API Specification Version 1.0[EB/OL].http://www.trustedcomputinggroup.org,2010.

[9]范冠男,董攀.基于TrustZone的可信执行环境构建技术研究[J].信息网络安全,2016(3):21-27.

[10]ARMSecurity TechnologyBuildingaSecure Systemusing Trust Zone© Technology[EB/ OL].http://infocenter.arm.com/help/topic/com.arm.doc.prd29 - genc -009492c/PRD29- GENC -009492C_ trustzone_security_whitepaper.pdf,2009.

[11]GlobalPlatform Device Technology TEE Client API Specification Version 1.0[EB/OL].http://www.trustedcomputinggroup.org,2010.

[12]张大伟,郭烜,韩臻.安全可信智能移动终端研究[J].中兴通讯技术,2015,21(5): 39-44.

Research on TrustZone-Based Security Scheme for TEE

Hao Xianlin Zeng Ping Hu R onglei
Beijing Electronic Science and Technology Institute,Beijing 100070,China

This paper firstly introduces the key technology TrustZone and TEE of the mobile terminal security,as well as analyzes the safety of the existing TEE schemes.Then in allusion to the problem of security weaknesses and the specific situations of different operators,this article puts forward the use of TrustZone TEE+Secure OS model to improve its security situations.Finally,the security analysis of the scheme shows that the proposed scheme can improve the security of mobile terminals.

Mobile terminals;Isolation;Trusted Execution Environment;Security

TN918.91

文章编号:1672-464X(2016)2-38-07

(责任编辑:鞠 磊)

北京市自然科学基金资助项目(项目编号:4163076);北京电子科技学院中央高校基本科研业务费项目“Saas云中多租户动态数据安全技术研究”资助(项目编号:328201502)。

** 作者简介:郝先林(1991-),女,北京电子科技学院在读研究生,主要研究方向为电子与通信安全。

猜你喜欢

内核架构安全性
两款输液泵的输血安全性评估
多内核操作系统综述①
新染料可提高电动汽车安全性
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
功能架构在电子电气架构开发中的应用和实践
某既有隔震建筑检测与安全性鉴定
基于B/S架构的图书管理系统探究
加强广播电视信息安全性的思考
构建富有活力和效率的社会治理架构