- 原文:https://www.trustonic.com/technical-articles/what-is-a-trusted-execution-environment-tee/
- 译者:TrustZone
Trustonic是一家在可信实行环境(Trusted Execution Environment, TEE)技术范畴具有领先地位的公司,专注于为智能连接设备市场提供高级安全解决方案。本文来自其官网Blog。
什么是可信实行环境(TEE)?
可信实行环境(TEE)是一个实行代码的环境,在该环境中,实行代码的人可以高度信任周围环境,因为它可以忽略来自设备其他部分的威胁。
我的手机有什么题目吗?
从某种程度上说,没题目。它是一个精彩的设备,可以实行数百项任务,这些任务过去需要多个设备才气完成……但这也正是题目所在。
随着实行多任务的本领而来的是大量的软件。软件越多,大概存在安全题目的地方就越多(即“攻击面”越大),发现毛病的大概性也就越高。为相识决这个题目,由网络运营商、制造商和操作系统供应商等相关方组成的联盟开辟了可信实行环境(TEE)。
软件环境的攻击面是指差别点(即“攻击向量”)的总和,在这些点上,未经授权的用户(“攻击者”)可以实验向环境中输入数据、提取数据、控制设备或关键软件。尽大概减小攻击面是一项根本的安全措施。
什么是可信实行环境(TEE)?
可信实行环境(TEE)是一个实行代码的环境,在该环境中,实行代码的人可以高度信任周围环境的资产管理,因为它可以忽略来自设备“未知”部分的威胁。
因此,TEE代表可信实行环境,为了将其与REE中应用步伐的不确定性子区分开来,TEE中的应用步伐被称为可信应用步伐(TA)。
通常,设备的其余部分托管一个功能丰富的操作系统,如Android™,因此在这个上下文中通常被称为REE(Rich Operating System Execution Environment)。
可信实行环境(TEE)中的信任
“信任”一词有多种表明。在TEE中,它意味着与更通用的软件环境相比,您大概对存储在此空间中的项目(资产)的有用性、隔离性和访问控制有更高程度的信任。
这进而推导出一种断言,即在该空间内实行的可信操作系统(Trusted OS)和可信应用步伐(Trusted Applications)更加值得信任。
为什么可信实行环境更加值得信任?
安全启动
在TEE中,这种信任要求全部与TEE相关的资产、代码、底层的可信操作系统(Trusted OS)及其支持代码都必须通过一种方法安装和启动,该方法要求其初始状态符合设计者的预期(即全部内容都经过签名验证、不可变或处于隔离状态)。
TEE仅接受经过以下步骤的代码实行:
-
-
- 这包括从ROM启动后的全部内容
(你可以认为ROM代码为其授权)。
TA只能直接访问它们自己的数据(包括密钥)资产:
- 没有方法可以让TA直接访问其他TA或TEE其他组件的资产。
在抱负环境下:
- 一个示例TEE由一些你可以信任的实验室举行测试(大概是因为该实验室本身已经通过了其他实验室和当局的认证)
-
- 你信任设备制造商在生产设备中复制了测试样本TEE,从而使证实有用。
但在实际世界中,很少有用户愿意为这种抱负状态支付足够的费用,以是我们得到的是:
-
- 如果TEE启动或服务签名查抄失败,TEE必须不提供该服务或依赖服务。
你信任设备制造商已正确构建了TEE,从而使TEE或服务证实有用。
请注意,这与最初的可信计算模子大不相同,在最初的模子中,任何代码都可以实行,但这些代码在启动后大概由远程实体举行验证。在没有外部实体参考的环境下,该模子在需要本地用户信任的设备中并不那么有用。
运行时隔离
在安装、启动和加载材料时举行签名查抄是很好的,但……1秒钟后发生了什么?
为了保持信任,我们必须在运行时阻止对实行代码及其资产的干扰。为此,硬件TEE与设备的其余部分隔离,而且TEE在可信应用步伐和TEE内的其他资产之间提供隔离。
- 在TEE中,给定的可信应用步伐(TA)只需信任可信操作系统(Trusted OS),而无需关心TEE中存在哪些其他TA。
- 这也意味着TA的资产与设备中的全部其他环境隔脱离来。
- 利用基于TEE的软件的用户知道,他们可以确信自己的资产不会在没有授权的环境下被袒露、修改或删除(在特定TEE的隔离配置文件内)。
隔离示例:一个TA没有方法打开另一个TA拥有的文件:
- 如果TA1创建了一个名为“Secrets”的文件,TA2也可以创建一个名为“Secrets”的文件,但可信操作系统将它们视为两个差别的文件。TA2可以对其文件举行任何操作,但不能对TA1的文件举行任何更改。
- REE中的任何内容都无法访问任何TA的文件内容。
值得注意的是,攻击者以致无法手动在设备之间复制TA的资产以实验粉碎TEE安全性,因为TEE存储都与设备绑定。
一些可信实行环境比其他环境更好
Trustonic的Kinibi OS为TEE设计的微内核架构提供了更多的隔离性,因此如果可信操作系统的某部分出现题目,则可以低落风险。
别的,
- Kinibi的加密部分可以或许抵御实行单元利用率、分支预测器、基于时序和缓存的侧信道攻击。
- Kinibi还利用地址空间布局随机化(ASLR)和堆栈掩护来低落通过缓冲区溢出和类似攻击举行未授权实行的风险。
而且(可预测的是)……Kinibi的代码已经过Spectre毛病的审查,并采用了防范Meltdown毛病的方法。
远程管理
一些TEE被设计为仅用于有限的用例,以满足特定制造商的需求。然而,由于内部隔离的高质量,我们这里关注的TEE被设计为允许开辟者在初始生产线安装人员之外,利用设备的最佳安全性。
为了在生产后安全地安装代码和资产,需要一个可信的远程管理根本设施,其中的操作通过安全通道或加密令牌举行控制。密钥管理为除直接全部者之外的全部用户提供资产隔离和资产控制。
遵循TEE隔离原则,TEE远程管理被设计为允许特定的远程管理器控制应用步伐的子集,但无法干扰TEE中其他应用步伐。例如,原始设备制造商(OEM)可以管理其TA,银行也可以管理其TA,但两者都不能干扰对方的TA。
是什么让实行环境成为“TEE”?
并非全部设备都托管对非OEM应用步伐开放的受信实行环境(TEE),也并非全部设备都托管相同的TEE。尽管Arm® TrustZone®技术的隔离环境是构建TEE的抱负之地,但并非在该环境中运行的全部代码都符合上述TEE的抱负标准。
如果您对利用多种型号的设备感兴趣,那么符合标准将扩大可以或许安全运行您软件的潜在目的列表。GlobalPlatform(以其在UICC、银行卡和电子护照背后的安全元件标准方面的工作而著称)也为TEE的隔离性、可管理性和功能定义了标准。详细而言,他们描述了TEE的预期总体架构,并在诸如以下文档中定义了同等性合规性要求(以及相关的基于实验室的测试):
- GPD TEE Internal Core API (Originally published in 2011)
- GPD TEE Client API (Still as published in 2010)
别的,还定义了一个国际公认的通用标准掩护框架(Common Criteria Protection Profile),以针对以下方面对TEE的安全属性举行认证:
- GPD TEE Protection Profile (Originally published in 2013)
如果您盼望远程管理TEE及其可信应用步伐,那么还有一个标准可以帮助您实现这一目的:
- GPD TEE Management Framework (Originally published in 2018)
可以认为,如果TEE不符合这些标准,那么它就不是TEE,但更准确的说法是,它不是GlobalPlatform可认证的TEE,因此您是在信任特定制造商的想法,而不是以下三者的结合:
- 制造商
- 它们对由安全专家联盟定义标准的合规性
- (如已指出,这是可选的)测试机构对该标准的认证本领
荣幸的是,Android范畴的大多数制造商(即2018年按销量排名前10的全部制造商)都在其TEE中支持GlobalPlatform功能,这使得服务提供商软件的安全关键组件可以或许在整个通用智能手机范畴中得到推广。
TEE的应用场景?
以上内容大致描述了智能手机和平板电脑中TEE的利用模式。
TEE也出现在智能手表、机顶盒,以致(请做好心理准备)功能受限的物联网(IoT)设备中。
在简单的IoT设备中,REE和TEE大概不是完备的操作系统,而是软件库套件。固然这些简单的设备通常没有用户安装的软件,但它们会经历一系列制造过程,其中每个实体大概并不完全信任下一个实体。一个管理良好的TEE可以使这些实体在没有信任的环境下协同工作。
结论
受信实行环境(TEE)技术使当代设备可以或许提供广泛的功能,同时满足关心隐私、证实、身份验证、验证、可管理性和全部其他安全方面的软件开辟人员和服务提供商的要求。
References
- http://globalplatform.org/specs-library/tee-management-framework-v1/
- http://globalplatform.org/specs-library/tee-client-api-specification/
- http://globalplatform.org/specs-library/tee-protection-profile-v1-2-1/
- http://globalplatform.org/specs-library/globalplatform-technology-tee-trusted-user-interface-low-level-api-v1-0-1/
- http://globalplatform.org/specs-library/tee-internal-core-api-specification-v1-2/
- http://globalplatform.org/specs-library/tee-system-architecture-v1-2/
术语与缩写——可信实行环境(Trusted Execution Environment, TEE)与TrustZone
2FA
双重身份验证(Two-Factor Authentication)——一种额外的安全层,要求您在实验访问资产时提供至少两种身份证实;例如,密码和特定帐户的移动电话访问权限。
ASLR
地址空间布局随机化(Address Space Layout Randomisation)——一种常用的混淆技术,用于防止攻击者在代码内部举行未经授权的函数调用。
封闭TEE
由ODM(原始设计制造商)或OEM(原始设备制造商)控制的TEE,其他方无法安装可信应用步伐(Trusted Applications, TAs)。封闭TEE仅提供有限的服务集,类似于HSM(硬件安全模块)。
设备
一个或多个平台(以及大概的一个或多个设备)组合在一个离散物理对象中。例如,移动SIM卡是设备中的安全元件(Secure Element, SE)平台,该设备被插入到大概还包含TEE平台和REE平台(S)的移动电话设备中。
DFA
差分故障分析(Differential Fault Analysis)——一种“侧信道”方法,通过监测设备内部电子信号中由诱导故障引起的变化来发现秘密。例如,故障导致秘密被写入屏幕内存而不是其正常位置。
DPA
差分功耗分析(Differential Power Analysis)——一种“侧信道”方法,通过监测设备功耗的变化来发现秘密。
DRAM
动态随机存取存储器(Dynamic Random Access Memory)——一种可以高速读写的存储器情势。它需要定期更新以保持内容有用。
FLASH
基于硅的非易失性存储器(Non-Volatile Memory, NVM),没有移动部件。该技术通常比用于制造处理器核心和SoC的技术落伍3代或4代,因此Flash无法与处理核心直接集成在同一硅片上。
KISS
保持简单愚笨(Keep It Simple Stupid)——一种设计哲学,认识到随着复杂性的增加,出现毛病和安全毛病的大概性也会增加。从安全角度来看,这导致将安全关键代码放在单独的隔离地域中,以低落这种风险。
MMU
内存管理单元(Memory Management Unit)——一种硅组件,用于限定和映射历程的内存访问。
NFC
近场通讯(Near Field Communications)——一种有限范围的无线技术,可用作指示近间隔存在以及创建数据通讯的方法。
NVM
非易失性存储器(Non-Volatile Memory)——一种在断电后仍能保留其内容的存储器。
ODM
原始设计制造商(Original Design Manufacturer)——通常指不生产消费产品,但生产其他制造商用作产品组件的制造商。这大概包括白盒制造商,其产品随后由零售商“贴牌”。
OEM
原始设备制造商(Original Equipment Manufacturer)——通常指生产终极消费产品的制造商。
开放TEE
开放TEE是指对第三方服务提供商的可信应用步伐(Trusted Applications, TAs)安装开放的受信实行环境(Trusted Execution Environment, TEE)。
操作员卡组
操作员卡组是一组包含带有HSM封装秘密和潜在密钥的芯片(安全元件,Secure Element, SE)的卡片,这些卡片允许HSM将特定卡片与HSM大概提供的特定操作或操作集相关联。利用SE使得生成未经授权的副本变得更加困难。
OTP
一次性可编程(One-Time Programmable)——一种只能写入一次的存储器情势,通常用于包括密钥和哈希在内的小型数据资产。请注意,某些情势的OTP应按位视为OTP。这些OTP从值0xFF开始,可以写入以变为0xF0。之后,它们不能再次更改为0xFF,但可以更改为0x00。为防止这种环境,必须利用第二块OTP存储器来“锁定值”并防止进一步更改。
平台
一个单一的实行环境,可以视为一个与任何其他域隔离的信任域。在手机中,平台的示例大概包括:• 运行丰富操作系统(Rich OS)如Android或iOS的富实行环境(Rich Execution Environment, REE)• 运行JavaCard应用步伐的通用集成电路卡(UICC)• 运行符合全球平台(GlobalPlatform)标准的可信应用步伐(Trusted Applications, TAs)的受信实行环境(Trusted Execution Environment, TEE)• 运行专用电话相关服务的基带操作系统(Base Band OS)。请注意,这是GlobalPlatform中的定义,但还有其他定义存在。
REE
富操作系统实行环境(Rich Operating System Execution Environment)——最初被认为是承载丰富操作系统(Rich OS)的环境。现在,由于物联网(IoT)环境中摆设了TEE技术,其中“其他操作系统”大概不被视为功能丰富,因此REE也可以被描述为承载设备操作系统(Device OS)。从某种意义上说,它应该被视为设备内部不属于当前TEE的全部内容,因此可以或许攻击TEE。在安全方面,如果REE中存在安全元件(Secure Elements)和其他TEE,则应该包括这些组件,但为简单起见,这些组件被单独列出。
丰富操作系统(Rich OS)
设备内部的“主”操作系统。这种操作系统旨在为用户提供访问设备一样平常软件功能的本领,并被认为“功能丰富”。典范示例包括Linux、Android、iOS、Windows。在支持TEE的设备中,此Rich OS在REE中运行,与TEE并行,并大概利用TA提供的一些服务。在物联网设备中,这大概不是一个操作系统,而是一组通用服务,如互联网访问堆栈。
信任根
信任根(Root of Trust, RoT)——GlobalPlatform有一份详细文档定义了信任根(RoT),这是我们此处利用的根本。信任根是软件、硬件和数据的组合,提供一项服务,没有其他任何软件、硬件和数据的组合可以或许证实其初始状态。
SE
安全元件(Secure Element,SE)——安全元件是一种微处理器芯片,可以或许存储敏感数据并运行安全应用步伐,如支付应用。它是UICC、microSD卡、HSM操作卡组和银行卡等位置中的安全计算设备。
ServiceProvider
服务提供商——在TEE和SE范畴中,这是一个通用术语,指的是应用开辟者或利用应用来提供服务的实体。尽管通常关注于TA开辟者,但在TEE案例中,服务提供商大概会链接云服务、Rich OS应用和/或可信应用。
SiP
硅供应商(Silicon Provider)——负责制造和封装硅片的组织。它也可以被定义为负责芯片安全硬件方面的组织,以及(在某些环境下)在芯片上运行的第一层ROM RoT软件的组织。如果需要,SiP产品通常由原始设计制造商(ODM)采用和利用,并终极由原始设备制造商(OEM)制成终极产品。
SoC
系统级芯片(System On Chip)——一种技术,将传统PC中发现的全部离散组件集成到单个硅片上。如许做具有优势,因为组件之间的连接可以运行得更快和/或功耗更低。别的,从安全角度来看,探测这些集成组件之间的通讯变得更加困难。
SRAM
静态随机存取存储器(Static Random Access Memory)——一种可以高速读写的存储器情势。它不需要定期更新以保持内容有用,但与DRAM相比,它占用的硅片空间更大。
SRW
短间隔无线(Short Range Wireless)——对低功耗无线通讯定义的通用术语,如蓝牙、ZigBee或NFC。这是一种表现近间隔存在以及创建通讯的方法。
TEE
可信实行环境(Trusted Execution Environment,TEE)——一个与其他环境隔离的环境,已经通过了一个启动过程,该过程对其启动和运行时环境的全部可加载组件举行了签名查抄,而且只有经过签名查抄的应用步伐软件才气被加载到该环境中。从技术上讲,TEE可以在类似安全元件(Secure Element)的东西中实例化,但通常利用如ARM TrustZone技术[ARM_TZ]等技术来实现。
TPM
可信平台模块(Trusted Platform Module,TPM)——一种硬件安全模块,专门用于在一系列称为平台配置寄存器(Platform Configuration Registers,PCRs)的寄存器中记录单个平台的上电启动状态,并向外部方提供对该状态的签名证实。
Trusted OS
可信操作系统(Trusted OS)——TEE由软件和硬件组件组成。可信操作系统是其中的一个组件,它提供运行时功能来启用和管理可信应用步伐。在物联网(IoT)设备中,这大概不是一个完备的操作系统,而是一组通用服务,如TLS堆栈,用于实现与设备外部实体的安全通讯。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |