【云计算】Intel SGX ARM TrustZone等技术简介与分析入门
小标 2019-04-10 来源 : 阅读 4027 评论 0

摘要:本文主要向大家介绍了【云计算】Intel SGX ARM TrustZone等技术简介与分析入门,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】Intel SGX ARM TrustZone等技术简介与分析入门,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

【云计算】Intel SGX ARM TrustZone等技术简介与分析入门

Intel’s SGX


Intel SGX全称Intel Software Guard Extensions,是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。将合法软件的安全操作封装在一个容器中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问容器,也就是说,一旦软件和数据位于容器中,即便操作系统或者和VMM(Hypervisor)被攻破,也无法影响容器里面的代码和数据。Enclave的安全边界只包含CPU和它自身。SGX创建的enclave也可以理解为一个可信执行环境TEE(Trusted Execution Environment)。硬件实现是在正常的MMU之后又加了一层,专门检测是不是属于容器的,同时也会防止Snooping等操作的窥探。设置这个容器的寄存器,指令和独立MMU游离于Hypervisor之外,不能被更高优先级所修改。想法是很好,但SGX仅仅是CPU侧的防护,还是可以通过PCIe和DMA设备直接读取DDR内容的。ARMv9里面也会有类似设计。




Intel SGX设计目标可以概括为以下8个方面:

1、允许应用程序员保护敏感数据,防止运行在高特权级的流氓软件非法访问或修改。

2、使应用程序能够保存的敏感代码和数据的机密性和完整性,而不会中断的合法的系统软件来安排和管理使用平台资源的能力。

3、计算设备的使用者能够重新获得平台的控制权,而且可以自由的安装或卸载应用和选择服务。

4、使平台能衡量应用程序的受信任的代码,并产生一个签署认证,植根于处理器,包括这个衡量代码已在可信环境中正确初始化的认证。

5、允许使用熟悉的工具和流程开发可信应用。

6、允许受信任的应用程序的性能和底层应用处理器的功能扩展。

7、使软件厂商可以以他们的节奏带来可靠的应用程序和更新,使用自己选择的分销渠道。

8、使应用程序能定义代码和数据的安全区域,即使攻击者已经对平台的物理控制而且能够直接攻击内存,该区域也能保持保密性。

ARM’s TrustZone


TrustZone技术简介


ARM TrustZone技术已有近十年。在x86平台上有关可信平台模块(TPM)的有争议的讨论正在全面展开(TCPA,Palladium)的时候被介绍。相似于TPM芯片意味着使PC“值得信赖”,TrustZone旨在建立对基于ARM的平台的信任。与被设计为具有预定义功能集的固定功能设备的TPM相比,TrustZone通过将CPU用作可自由编程的可信平台模块来表示更灵活的方法。为了做到这一点,除了常规正常模式之外,ARM还推出了一种称为“安全模式”的特殊CPU模式,从而建立了“安全的世界”和“正常世界”的概念。两个世界之间的区别与用户级和内核级代码之间的正常环保保护完全正交,并且与正常世界中运行的操作系统隐藏。此外,它不限于CPU,而是通过系统总线传播到外围设备和存储器控制器。这样一来,这样一个基于ARM的平台就成了一种分裂的个性。当安全模式处于活动状态时,与在非安全模式下运行的软件相比,CPU上运行的软件与整个系统的视图不同。这样,系统功能,特别是安全功能和加密凭据,可以从正常世界中隐藏起来。

TrustZone技术的核心理念是将可信资源与非可信资源在硬件上实现隔离。在处理器内部,软件只能安装于安全或非安全域其中一处;在两个域间切换则必须经过Cortex-A处理器的软件(后文称安全监视器)和Cortex-M处理器的硬件(核心逻辑)处理才能执行。这种将安全(可信)域和非安全(非可信)域隔离理念的实现不仅涉及CPU,还涵盖存储、片上总线系统、中断、周边设备接口和SoC上的软件。目的是使设备能够从功能丰富的开放操作环境和强大的安全解决方案中受益。精心设计的系统硬件架构和适当的安全软件设计可以确保敏感数据保持安全,无论可信赖的操作环境如何。


TrustZone硬件架构


TrustZone的硬件架构方面主要体现在内核虚拟化、内存隔离、外设/总线隔离技术、中断隔离技术。

内核虚拟化: 内核虚拟化是指通过CPU中虚拟出两个内核,并且把安全世界的OS运行在内核0中,普通世界的OS运行在内核1中。两个OS独立运行在不同的虚拟内核中,通过时间片进行两个内核间切换执行。

外设/总线隔离技术:通过总线扩展了AWPROT(总线写事务控制信号)和ARPROT总线读事务信号)。当低电平时为安全世界的总线读写控制信号,当高电平时为普通世界的读写控制信号。

内存隔离技术:TrustZone技术采用两个MMU,把安全世界和普通世界的内存管理隔离开。

MMU内存管理单元

中断隔离技术:为了区分安全世界和普通世界的中断源,ARM设计了FIQ和IRQ两种不同的中断源,设计者可以将FIQ用于安全世界的中断源,将IRQ用于普通世界的中断源。


Trustzone能做什么:


1.防止操作系统被攻破后关键数据泄密,关键数据存放在特定内存区域,而那块区域,只有安全操作系统才有可能读到。

2.防止通过JTAG等调试接口读到寄存器,缓存,内存或者闪存数据。

3.从芯片制造开始,最初的密钥可以用芯片熔丝实现,往后启动的每一步都需要最高特权级和密钥验证,建立信任链,杜绝软件被替换或者被恶意读取。

4.防止边带攻击,比如量取内存颗粒的信号猜测数据,制造故障让检验模块停止工作,替换外围器件,输入特定数据确定电磁信号特征,打开芯片直接量内部信号线等。


Apple’s Secure Enclave


苹果定制了一个高度优化的TrustZone版本,可以说A7的TrustZone安全系统是由硬件和软件分区来成就的。不管是硬件还是软件中,都有两个区,一个是安全子系统,一个是正常的区。TrustZone AMBA3 AXI总线可确保正常区组件不访问安全区的数据。而那些敏感的数据就放在安全区,来防止许多可能的攻击。当有安全验证的需求时,Moniter模式就会自主进行两个虚拟处理器的切换,有针对性地工作。


IBM SecureBlue


SecureBlue是IBM设计的一种计算机硬件,可将数据加密内置到微处理器中。它可以添加到现有的处理器,并且在数据通过它们时加密和解密数据,而不需要处理器本身的任何电源。该技术的可能用途是保护被盗设备上的数据和数字版权管理(DRM)的实施。


特性与区别


SGX与ARM TrustZone(TZ)还是有一点小区别的,TZ中通过CPU划分为两个隔离环境(安全世界和正常世界),两者之间通过SMC指令通信;而SGX中一个CPU可以运行多个安全enclaves,并发执行亦可。当然,在TZ的安全世界内部实现多个相互隔离的安全服务亦可达到同样的效果。


Trustzone默认相信SecureOS,安全世界。SGX仅相信CPU core,通过sgx指令构建enclave容器。简单比喻,TEE是个公用大保险柜,什么东西都装进去,有漏洞的app可能也进去了,而且保险柜钥匙在管理员手上,必须相信管理员。SGX每个app有自己的保险柜,钥匙在自己手上


Intel SGX最关键的优势在于将程序以外的software stack如OS和BIOS都排除在了TCB(Trusted Computing Base)以外。换句话说,就是在enclave里的code只信任自己和intel的CPU。从理论上来说,SGX的应用范围比较广泛,一个重要用途是对于在multi-tenant的cloud上的软件来讲可以防止底层OS被compromise以后对自己的攻击,同时在软件的管理上也可以不用信任云供应商,这个threat model是比较符合当前要解决的云计算安全的,相对于AMD最新出的SEV技术,SGX提供了fine-grained 的保护在应用程序层面而不是虚拟机层面。当然,SGX的缺点也是比较明显,最大的缺点是需要开发人员对代码进行重构,将程序分成可信部分和非可信部分,目前有Intel发布的SDK来协助做这方面工作,但仍然是很大量的工作,而且是比较容易造成秘密泄漏的。第二是性能问题,其中enclave的进出是瓶颈,这是由于TLB中cache了enclave中的memory access的缘故,因而进出enclave需要进行TLB flush。另外执行enclave code时,非TLB的memory access也会造成额外的一些检查,导致更大的overhead。第三是如果enclave code本身有vulnerabilities的话,enclave是无法保护程序的integrity,目前就有针对bufferoverflow的ROP攻击能够控制enclave。另外也有些side-channel attack,能够导致secret leakage。针对SGX应用目前主要停留在研究阶段,一个大的方向便是保护cloud相关的infrastructure,比如map-reduce(VC3), zookeeper, 还有NFV。另外有一些工作是针对解决SGX存在的如上所述的问题的,比如大家尝试用不同的方法来把程序整体全部放在enclave里面,从而避免代码重构,重要的工作有Haven,SCONE,和Graphene-SGX。SGX要进入工业界应用尚需时间,一个重要的问题是现在在intel发行的服务器芯片上还没有SGX,而SGX的重要应用就是在数据中心和云端的应用。目前云提供商还是有所跟进,相信不远的将来会在工业界有一席之地。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 1
看完这篇文章有何感觉?已经有2人表态,50%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程