基于 TrustZone 的系统安全防护技术研究综述_第1页
基于 TrustZone 的系统安全防护技术研究综述_第2页
基于 TrustZone 的系统安全防护技术研究综述_第3页
基于 TrustZone 的系统安全防护技术研究综述_第4页
基于 TrustZone 的系统安全防护技术研究综述_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

21世纪是信息世纪,伴随着信息技术的蓬勃发展与广泛使用,人们既享受着信息技术带来的便利,又面临着快速发展且复杂的网络世界带来的安全危机。智能手机、平板电脑等嵌入式设备作为人们生活中不可或缺的角色,因此也成为绝大多数网络攻击的目标。智能移动设备中大多都存放着个人隐私与财产信息,一旦被攻击就会对机主造成重大损失。为了保护存储在移动设备中的金融数据、电子支付系统等敏感信息,业界提出了隐私计算中的可信执行环境(TrustedExecutionEnvironment,TEE)技术,其作为一种可以在保证数据“可用而不可见”的前提下进行数据运算的技术,逐渐被大家所关注。TEE是一个隔离的处理环境,代码和数据在执行期间受到保护,其内存区域与处理器的其他部分分离,并提供机密性和完整性属性。其目标是确保一个任务按照预期执行,保证初始状态和运行时的机密性和完整性。ARMTrustZone是TEE解决方案,是目前大量应用于智能移动设备上的基于硬件的片上系统(SystemonChip,SoC)安全体系结构。TrustZone技术的优势在于它可以保护数据的安全与完整,避免数据受到恶意攻击。基于此技术,ARM为安全敏感的代码和数据创建一个TEE,实现了系统级别的隔离。典型的基于TrustZone的系统将整个SoC的资源(包括硬件组件和正在运行的软件)划分为两个具有不同特权设置和保护的世界。在这两个世界中,普通世界负责运行富操作系统以及所有的常规应用程序,称为客户端应用程序(ClientApplication,CA)。相比之下,另一个孤立的安全世界执行一个小型的、受信任的安全操作系统,以及一些由可信应用程序(TrustedApplication,TA)开发的高级安全管理任务。在TEE内可以有基于TrustZone的操作系统,如高通的QSEE、开源的OPTEE等,为安全敏感应用提供安全服务。系统中不需要保护的操作全部在普通世界进行。处理器可以在两个世界分时使用,从而保证系统的灵活性。本文重点分析了ARMTrustZone技术的基本原理及其框架,并进一步深入探讨了基于TrustZone的安全防护技术;同时,将该技术与其他可信计算技术进行了对比分析,也着重分析了其优势和不足;最后,结合当前可信执行环境领域存在的安全问题和该技术在安全方面的优势,对该技术的未来发展方向和应用需求进行了展望。1TrustZone安全架构概述1.1TrustZone硬件架构支持TrustZone技术的ARM处理器被划分为两个区域,即单个的物理处理器中包含了两个虚拟处理器核:安全处理器核和普通处理器核。这两个区域都有自己的用户空间和内核空间,以及缓存、内存和其他资源,其硬件框架如图1所示。安全处理器可以访问普通处理器的资源,反之则不行,这也是TrustZone技术能够实现对系统资源硬件级别的保护和隔离的根本原因。同时,基于TrustZone技术提高系统安全性,需要对系统硬件和处理器核做出相应扩展。这些扩展可以保证安全内存和安全外设,能够拒绝非安全事务的访问。因此,它们可以在正常操作系统中很好地隐藏和隔离自己,从而实现真正意义上的系统安全。图1TrustZone硬件架构1.2TrustZone软件架构TrustZone典型的软件架构如图2所示,不可信操作系统运行在普通世界,也叫富执行环境(RichExecutionEnvironment,REE)。TEE运行在安全世界,保护环EL1为可信操作系统并提供运行时的支持,在用户模式下运行的保护环EL0能够维持TA的生命周期。可信操作系统的核心是可信内核,为调度和管理TA提供了基本的操作系统原语。可信操作系统还实现了访问可信外围设备的设备驱动程序,通过切换安全监控模式调用SMC指令和共享内存处理跨世界的请求,并实现共享库(例如加密)和TEE原语,即远程认证、可信I/O和安全存储。图2TrustZone软件架构除了可信的操作系统,TrustZone软件架构还包括两个基本的软件组件:安全监控器和TEE引导加载程序。安全监视器实现了在不同世界之间进行安全上下文切换的机制,并在保护环EL3中以最高权限运行。TEE引导加载程序将TEE系统引导到安全状态,实现受信任引导原语非常关键,它被分成两个步骤,首先在EL3中运行,然后在EL1中运行。可信操作系统、安全监控和TEE引导加载程序共同构成了典型TEE系统的可信计算基(TrustedComputingBase,TCB)软件。2基于TrustZone的系统安全防护技术2.1基于TrustZone构建可信内核TEE系统提供的基本功能包括一个执行环境,让安全敏感的应用程序可以与富操作系统隔离执行。在使用TrustZone的平台上,通常由安全世界的受信任的特权内核来维持此类应用程序的生命。富操作系统和受信任内核之间的通信需要在两个世界之间进行上下文切换。为了获得商业的竞争优势,一些公司构建了自有的封闭源代码的可信内核。KNOX是一款旨在为企业数据保护提供强有力保障的国防级移动安全平台。可以通过几层数据保护来实现安全,其中包括安全引导、基于TrustZone的完整性度量体系结构(Trustzone-basedIntegrityMeasurementArchitecture,TIMA)和安全增强型Android(SecurityEnhancementsforAndroid,SEAndroid),KNOX架构如图3所示。图3KNOX架构像KNOX这样的封闭系统很难评估其制造商声称的安全特性是否能够在实践中得到执行。此外,大多数TEE操作系统是作为单片内核实现的。在这种设计中,设备驱动程序、内核服务和内核模块都运行在内核中,这导致内核的攻击面很大,容易遭受外部攻击。因此,Ji等人提出了一种基于微内核架构的TEE操作系统MicroTEE。在MicroTEE中,微内核为TEE操作系统的基础服务,例如,为加密服务和平台密钥管理服务提供了强大的隔离,避免了当只有一个内核服务时,因其脆弱性造成整个TEEOS的损失,此外,还增加了一个监视器来执行安全世界和正常世界之间的切换。传统的可信内核往往以厂商为核心,忽视了应用开发者的需求。Sun等人提出了一个轻量级的、以应用开发者为中心的解决方案LEAP。由LEAP提供自动DevOps工具,帮助开发人员准备运行代码,使独立的代码并行执行,轻松访问外围设备(如移动GPU),并根据应用程序的请求动态管理系统资源。除此之外,为了解决工业物联网应用的具体要求,设计了一些可信内核来补充TEE的安全特性和实时能力。2.2基于TrustZone构建可信服务在启用TrustZone处理器的安全世界构建专用的可信服务时,排除了对底层操作系统的需求,因此可以在依赖相对较小的TCB的情况下为最终用户提供一些特定的功能。相关的可信服务如下文所述。2.2.1数据保密这一类受信任服务旨在对敏感文件提供安全存储和访问。Tenório等人

提出了一种基于TrustZone的灵活、简单、高效、低成本的物联网数据加密解决方案,通过该方案,即使是不受信任的云提供商或对手远程访问设备,也可以保障敏感数据安全。Oath是基于ARM平台提出的一种片上RAM(On-ChipRAM,OCRAM)辅助敏感数据保护机制,被用于保护敏感数据,特别是敏感I/O数据,使其免受软件攻击和物理内存泄露攻击。2.2.2身份认证这一类受信任服务旨在提供安全的身份认证。例如,Wang等人提出了一种基于TrustZone的移动远程认证方案TZ-MRAS,利用TrustZone的最高安全权限实现可信认证服务。为了防范软连接漏洞(TimeofCheck,TimeofUse,TOCTOU)攻击,他们提出了一种基于探针的动态完整性度量模型ProbeIMA,该模型可以动态检测内核和进程执行过程中产生的未知指纹。最后,根据改进的动态测量模型的特点,提出了一种基于局域原理(LocalityPrinciple,LPSML)的优化存储测量日志构建算法,缩短了认证路径的长度,提高了验证效率。其他解决方案已经利用TrustZone为基于设备的身份验证和访问控制提供受信任的服务。2.2.3富操作系统自省和控制研究人员发现了利用TrustZone覆盖富操作系统功能的新方法。RestrictedSpaces是Brasser等人

提出的一个系统,允许第三方(主机)在特定的物理空间(如工作空间)规范用户(客户)如何使用他们的设备(如管理设备资源)。为了实现这一点,RestrictedSpaces利用上下文感知方法安全地提炼富操作系统强制执行的权限。Chang等人提出了一种基于ARM的保护富操作系统内存完整性的保护方法,其利用TrustZone技术创建隔离的执行环境,保护敏感代码和数据不受攻击。2.2.4可信用户界面在移动设备上,安全敏感任务(如移动支付、一次性密码等)不仅涉及加密密钥材料等敏感数据,还涉及敏感I/O操作,如通过触摸屏输入PIN码,并在显示器上显示认证验证码。因此,全面保护这些服务应该强制使用可信用户界面(TrustedUserInterface,TUI),对敏感的用户输入和系统输出进行保护,预防软件攻击和物理内存泄露攻击。Chu等人开发了一个具有OCRAM分配机制的可信用户界面,在安全操作系统和富操作系统之间共享OCRAM,有效地保护了敏感用户输入和系统输出,同时还可以防止软件攻击和物理内存泄露攻击。Cai等人提出了一种基于ARMTrustZone硬件安全扩展的安全UI框架SuiT。通过该框架,在正常世界中实现一个安全的UI驱动和一个影子UI驱动。当应用程序需要以一种可靠的方式与用户交互时,影子UI驱动程序会代替原来的UI驱动程序完成用户交互。在UI驱动切换过程中,由安全世界中的切换代码动态构建安全UI驱动的临时可信执行环境,确保安全的UI驱动程序以安全的方式执行,来自富操作系统的潜在攻击不会干扰用户交互过程。2.3基于TrustZone构建可信云应用随着ARM64在服务器市场中的应用越来越广泛,TrustZone未来很可能成为云安全的一个关键支柱。但是随着移动云计算的快速发展,目前还没有针对移动终端访问可信云架构的安全解决方案。针对上述问题,Xia等人提出了一种面向可信移动终端的云服务安全接入方案。采用ARMTrustZone基于硬件的隔离技术,构建一个可信任的移动终端,保护云服务客户和终端上的安全敏感操作不受恶意攻击。提出了物理不可克隆功能(PhysicalUnclonableFunction,PUF)、密钥敏感数据管理机制。基于可信移动终端,采用可信计算技术,设计了安全访问协议。该协议兼容可信云架构,在云服务器和移动客户端之间建立端到端认证通道。同时,该方案实现了移动终端小TCB和云用户高效运行。考虑到用户上传到Facebook、Instagram等云服务上的信息中包含很多个人的敏感信息,一旦云服务器被攻击破坏,可能泄露用户的隐私信息。虽然在客户端对敏感内容进行加密可以防止入侵,但在云服务器上通常需要对图像进行解密,以进行处理,例如,用于压缩或缩略图生成。这一过程很容易受到具有管理特权的对手的攻击。基于此,引入了一个名为Darkroom的系统,该系统通过在服务器端由TrustZone辅助的TEE将变换功能应用于加密的用户图像,并以加密的方式保存,从而确保服务器的操作系统无法访问用户映像的原始数据。Brenner等人通过提出针对不可信云环境的分区应用程序的平台TrApps,进一步扩展了这种思路。与Darkroom类似,该平台的目标也是通过排除信任本地操作系统的需求来减少服务器端TCB。TrApps的优点在于其支持访客通用分布式应用程序,而不是简单的图像转换功能。2.4在虚拟化环境安全防护中的应用TrustZone不是为可虚拟化设计的,因为硬件只提供了一个TEE,这阻止了它被多个虚拟机安全地共享。以往的研究通过实现一个安全访问控制器(SecurityAccessController,SAC)来私有化一个安全的操作系统,这样它就可以管理在正常世界中运行的安全操作系统。例如,Sun等人提出的一种基于TrustZone的隔离框架Trustlce,普通和安全的操作系统都是在普通环境中执行的。当正常操作系统向TA请求安全服务时,会启动TA私有的安全操作系统执行。SAC位于安全世界中,干预操作系统之间的切换,其核心作用是将操作系统隔离,从而阻止外部对安全操作系统的未经授权访问,其设计如图4所示。然而,Trustlce要求一次只能运行一个操作系统,排他地占据整个正常世界,挂起所有其他操作系统,而没有详细的访问控制机制。这种一次只运行一个操作系统的策略可能会导致低资源利用率,特别是在多核系统中。图4Trustlce架构在虚拟化TrustZone(VirtualizingARMTrustZone,vTZ)

中,SAC是通过组合一个管理程序和TrustZone中的安全监视器来实现的。它使用管理程序在普通环境中构造虚拟执行环境,每个环境都私有地托管一个客户的安全操作系统,其设计如图5所示。与Trustlce不同的是,vTZ能够利用多核系统同时执行正常的操作系统和安全的操作系统。然而,普通世界中的虚拟化会带来额外的性能开销。同时,vTZ中的安全监视器使每个客户的安全操作系统拥有比虚拟机监视器更高的权限,因此安全操作系统可以保护自己免受包括虚拟机监视器在内的任何正常世界实体的攻击。但是,这种对特权层次结构的更改需要对现有的管理程序代码进行大量修改,可能会限制该技术的大规模应用。图5vTZ架构

提出的轻量级私有化安全操作系统(Light-weightPrivatizedSecureOSes,Pros)是另一种虚拟化实现方案,其中位于安全世界的SAC在同一个世界管理安全操作系统虚拟化的多个实例,而不是远程管理正常世界中的操作系统,设计方案如图6所示。为了完成这一点,Pros在安全环境中虚拟化TrustZone。值得注意的是,由于安全操作系统和Pros在安全世界中工作,不会影响正常世界软件的运行,也不会导致正常操作系统执行速度减慢。根据评估,Pros在正常环境和安全环境下的平均性能开销分别为0.02%和1.18%,证明了其可用性。图6Pros架构3TrustZone技术分析3.1与其他TEE技术的对比分析TEE是一种在多环境共存的同时,建立起策略来保护每个环境的代码和数据的方法。TEE的初始部署主要用于移动空间,解决诸如安全视频路径或安全支付等应用程序的安全问题。然而,在过去的几年中,在消费电子、智能家电、家庭网关、无人驾驶飞机等应用领域,也出现了类似的需求。本文列举了一些热门TEE相关技术与TrustZone技术进行对比分析。提供了TrustZone与使用GlobalPlatform标准的其他TEE技术进行比较的3项指标:功能性、安全性和可部署性。功能性指标包括保护执行、密封存储、保护输入、保护输出和验证。安全性指标包括数据分离、信息流控制、损害限制。可部署性指标衡量应用的难易程度。3.1.1SecureElement根据GlobalPlatform相关标准,安全元素(SecureElement)是一个防篡改的独立平台,其中存储安全应用程序及其加密数据。与TrustZone相比,一方面,安全元素的计算能力更低,因为它运行在单独的硬件上,不能访问主系统的CPU。TrustZone的可信执行环境与富操作系统运行在同一个CPU上。另一方面,安全元素通过提供安全密钥存储和信任根来保证更高级别的安全。TrustZone不提供非易失性存储的安全性,并且缺乏信任的保证根。3.1.2TPM/TCM与TPCM可信平台模块(TrustPlatformModule,TPM)始于2000年可信计算平台联盟制定的TPM1.0规范。与TPM相比,国内使用的可信基础模块(TrustCryptographyModule,TCM)简化了TPM中复杂的密钥管理。TPM和TCM的构成和功能类似,主要部署在服务器和桌面计算机上。同安全元素一样,TPM[27]为加密密钥存储提供了信任根,由于CPU总线很慢,而且不利用主CPU,因此其性能也很低。此外,还可以将TPM/TCM集成到TrustZone中,从而为系统提供信任根,并支持可信引导功能。可信平台控制模块(TrustedPlatformControlModule,TPCM)是基于国产化思路针对TPM/TCM的一些安全问题提出的可信标准。相对于TPM和TCM,TPCM对硬件和可信软件栈(TrustedSoftwareStack,TSS)架构做了较大的改动。TPCM最大的优点是具备对软硬件系统的可信控制、主动度量和主动报告等功能,但受限于硬件设计和制造能力,目前还没有完全具备设计要求的成品器件。3.1.3IntelTXT可信执行技术(IntelTrustedExecutionTechnology,IntelTXT)是一种虚拟机保护机制,旨在保护计算平台免受通用软件的攻击,可能的攻击型通用软件包括固件、基本输入输出系统(BasicInputOutputSystem,BIOS)和rootkit攻击载体。IntelTXT[29]的设计依赖于TPM,并提供一种可信的方式来加载和执行系统软件,如操作系统或虚拟机监视器。TPM允许IntelTXT为长期存储提供保护。然而,这也导致了TPM比TrustZone更依赖于制造商的可信度,而这种对制造商的信赖可能会存在一些安全隐患。3.1.4SGX英特尔软件防护扩展(IntelSoftwareGuardExtension,IntelSGX)是IntelCPU上的一个硬件扩展,通过内存加密技术保护程序运行态的安全,使得通过内存泄露攻击获取关键信息的难度增大,系统的可信计算基也缩小到CPU。相比于以往将整个操作系统或特权软件(如hypervisor等)视为可信计算基,SGX技术可以避免更多的系统攻击,并且支持虚拟化技术、容器技术,其可用性更强。但是SGX本身无法抵御侧信道攻击,同时,SGX提供的“飞地”可使用内存太小,当程序数量增多、规模增大时,需要换入换出页面。为了保证安全性,需要对页面进行完整性和机密性保障,这会对系统性能造成一定影响。3.2TrustZone技术的优势与不足TrustZone是ARM公司提出的嵌入式平台安全技术,在尽量不影响原有处理器设计的情况下,通过物理隔离保护安全内存、加密块、键盘和显示器等外设,对功耗、性能和面积的影响微乎其微。因此,该技术在提高嵌入式系统安全方面具有一定优势。首先,它提供的物理隔离的环境可以为隐私数据和加解密数据的密钥提供安全的存储空间,是一种天然的保密途径。其次,TrustZone可以保证整个存储空间的总线带宽,这使其不同于其他的安全技术,对性能的影响极小。此外,TrustZone系统架构是由软硬件相结合的,在硬件架构固定的情况下,用户可以通过在TEE中开发相应的TA来满足定制和升级保密系统的需求。但是TrustZone技术也不是万能的,其自身存在许多不足,主要体现在以下几个方面。首先,它只能防御各种软件攻击,难以防御物理攻击,比如物理篡改设备的主存。其次,它仅仅提供了一个隔离的执行环境,并没有向用户或远程者证明这个环境是可信的。另外,虽然用户可以通过在TEE中开发相应的TA来满足定制和升级保密系统的需求,但是一些依托于硬件的新技术可能无法应用在旧的硬件架构上,从而无法抵御新型攻击。最后,为系统平台提供一个可靠的可信根是保障整个系统安全的基石,而目前该技术是通过在片上系统固化设备密钥作为可信根,这种方法存在密钥更新困难,一旦泄露会导致整个平台无法使用的弊端,并且这种方式需要将设备密钥长期存储在设备上,其安全很难保证,比如如何防御旁道攻击、故障攻击,以及逆向工程等类型的攻击。4未来展望4.1TrustZone技术应用于物联网近几年,物联网(InternetofThings,IoT)行业蓬勃发展的同时,也吸引了不计其数的网络罪犯。物联网具有广泛的应用领域,如家用电器、医疗器械、工业自动化、智能建筑等。据报道,全球已有超过200亿台物联网设备,到2027年,这一数字将达到410亿台。可穿戴设备和物联网设备在现代社会越来越普遍。据思科公司材料显示,到2030年,物联网设备将达到5000亿台。这些设备持续地从各种传感器中产生与隐私相关的数据。问题是,由于硬件需求和成本限制推动了不同的设计方向,确保物联网设备的安全可能是一个难题。为了解决这个问题,ARM将TrustZone扩展到新一代微控制器(ARMv8-M),使安全在规模和整个价值链上变得切实可行。通过内置TrustZone,ARM减轻了安全的经济性,降低了风险、成本和实现健壮的安全措施的复杂性。目前,有关ARMv8-M安全运行时环境、框架、服务或产品开发的可用信息还很少。咨询机构Prove&Run推出的ProvenCore-M是一个使用正式验证代码实现的微内核。对于ARMv8-M而言,ProvenCore-M是下一代经过正式验证的安全TEE,它提供了一个运行在ARMv8-MTrustZone内的基于信任根的安全层。SequiturLabs公司推出的CoreLockr-TZ是一个轻量级的服务分派层,它简化了ARMv8-MTrustZone提供的访问安全功能。CoreLockr-TZ通过提供一套服务来简化编写非安全应用程序的开发人员对安全资源和功能的访问,从而抽象出TrustZone-M体系结构的复杂方面。为了弥补目前物联网设备传感器系统的不足,提出的虚拟传感系统VirtSense,为每个传感应用提供了一个虚拟传感器实例,实现了不同传感应用程序之间的传感隔离,并在不可信的环境中强制执行访问规则。这些目标能够同时合法地访问来自不同应用程序的传感器,而不会相互影响,进一步实现物联网设备上安全、灵活和隔离的传感环境。提出了utango第一个面向现代物联网设备的多世界TEE。utango提出了一种新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论