category
可信执行环境(TEE)是主处理器的安全区域。它保证加载在内部的代码和数据在保密性和完整性方面受到保护,数据完整性-当TEE外部的任何实体处理数据时,防止未经授权的实体更改数据,代码完整性-TEE中的代码不能被未经授权实体替换或修改,也可能是计算机所有者本身,如SGX中描述的某些DRM方案。这是通过实现独特、不可变和机密的体系结构安全来实现的,如Intel®Software Guard Extensions(Intel®SGX),它提供基于硬件的内存加密,隔离内存中的特定应用程序代码和数据。Intel®SGX允许用户级代码分配称为enclaves的私有内存区域,这些内存区域旨在防止以更高权限级别运行的进程。[1] [2][3]作为隔离执行环境的TEE提供了安全特性,例如隔离执行、使用TEE执行的应用程序的完整性以及其资产的机密性。[4] 一般来说,TEE提供的执行空间为设备上运行的受信任应用程序提供了比富操作系统(OS)更高级别的安全性,并比“安全元素”(SE)提供了更多功能。
历史
开放移动终端平台(OMTP)在其“高级可信环境:OMTP TR1”标准中首次定义了TEE,将其定义为“提供支持应用程序所需设施的一组硬件和软件组件”,必须满足两个定义的安全级别之一的要求。第一个安全级别Profile 1仅针对软件攻击,而Profile 2针对软件和硬件攻击。[5]
基于ARM TrustZone技术的商业TEE解决方案符合TR1标准,随后推出,例如Trusted Logic开发的Trusted Foundations。[6]
OMTP标准的工作于2010年中期结束,当时该集团过渡到批发应用社区(WAC)。[7]
OMTP标准,包括那些定义TEE的标准,由GSMA托管
细节
TEE通常由硬件隔离机制和在该隔离机制之上运行的安全操作系统组成,然而,该术语通常用于表示受保护的解决方案。[9] [10][11][12]虽然GlobalPlatform TEE需要硬件隔离,但其他公司(如EMVCo)使用术语TEE指硬件/软件,仅指基于软件的解决方案。[13] FIDO在基于硬件隔离的TEE受限操作环境中使用TEE概念。[14] 只有在TEE中运行的受信任应用程序才能访问设备的主处理器、外围设备和内存的全部功能,而硬件隔离保护这些设备免受在主操作系统中运行的用户安装应用程序的影响。TEE内的软件和加密隔离可相互保护其中包含的受信任应用程序。[15]
服务提供商、移动网络运营商(MNO)、操作系统开发人员、应用程序开发人员、设备制造商、平台提供商和硅供应商是围绕TEE开展标准化工作的主要利益相关者。
为了防止用用户控制的软件模拟硬件,使用了所谓的“硬件信任根”。这是一组在制造过程中直接嵌入芯片的私钥;移动设备上通常使用eFuse等一次性可编程存储器。即使在设备重置后,这些参数也无法更改,它们的公共对应项与属于受信任方(通常是芯片供应商)的公钥的非机密哈希一起驻留在制造商数据库中,用于在执行加密操作和控制访问的电路旁签署受信任固件。硬件的设计方式可以防止所有未经受信任方密钥签名的软件访问特权功能。供应商的公钥在运行时提供并哈希;然后将该散列与芯片中嵌入的散列进行比较。如果哈希匹配,则公钥用于验证受信任的供应商控制固件的数字签名(例如安卓设备上的引导加载程序链或SGX中的“架构飞地”)。然后,可信固件用于实现远程认证。[16]
当应用程序被证明时,它的不受信任组件将其受信任组件加载到内存中;受信任的应用程序受到保护,不会被硬件上不受信任的组件修改。不受信任方从验证器的服务器请求nonce,并将其用作加密身份验证协议的一部分,以证明受信任应用程序的完整性。证据被传递给验证者,验证者对其进行验证。无法在模拟硬件(即QEMU)中计算有效证明,因为为了构造它,需要访问烘焙到硬件中的密钥;只有受信任的固件可以访问这些密钥和/或从中派生或使用它们获得的密钥。因为只有平台所有者才能访问铸造厂记录的数据,所以验证方必须与供应商设置的服务进行交互。如果方案实施不当,芯片供应商可以跟踪在哪个芯片上使用了哪些应用程序,并通过返回表明身份验证未通过的消息选择性地拒绝服务。[17]
为了模拟硬件,使其能够非法通过远程身份验证,攻击者必须从硬件中提取密钥,因为执行该硬件所需的设备和技术技能非常昂贵。例如,使用聚焦离子束、扫描电子显微镜、微探针和芯片去封装[18][19][20][21][22][23],或者甚至不可能,如果硬件的设计方式使得逆向工程破坏了密钥。在大多数情况下,每个硬件的密钥都是唯一的,因此从一个芯片提取的密钥不能被其他芯片使用(例如,物理上不可识别的功能[24][25])。
虽然所有权剥夺不是TEE的固有属性(系统设计可能只允许首先获得设备所有权的用户控制系统),但实际上,消费电子产品中的所有此类系统都是有意设计的,以允许芯片制造商控制对认证及其算法的访问。它允许制造商仅向与制造商签订(通常是商业)业务协议的软件开发人员授予访问TEE的权限,并允许使用诸如虚拟化和DRM之类的用例。
使用
TEE有许多用例。虽然并非所有可能的用例都利用所有权剥夺,但TEE通常正是用于此目的。
高级内容保护/数字版权管理
注:许多TEE文献在“优质内容保护”的定义下涵盖了这个主题,这是许多版权所有者的首选术语。高级内容保护是数字版权管理(DRM)的一个特定用例,在一些社区(如自由软件基金会)中存在争议。[26]版权持有人广泛使用它来限制最终用户消费4K高清电影等内容的方式。
TEE是一个合适的环境,用于保护智能手机、平板电脑和高清电视等连接设备上的数字编码信息(例如高清电影或音频)。这种适用性源于TEE能够阻止设备所有者读取存储的机密,以及TEE与设备上的显示器和/或子系统之间通常存在受保护的硬件路径这一事实。
TEE用于在内容位于设备上时保护内容:虽然内容在传输或流式传输过程中通过使用加密进行保护,但一旦内容在设备上解密,TEE将通过确保解密的内容不会暴露在未经应用程序开发人员或平台供应商批准的环境中来保护内容。
移动金融服务
移动商务应用程序,例如:移动钱包、点对点支付、非接触式支付或使用移动设备作为销售点(POS)终端,通常都有明确的安全要求。TEE通常可与近场通信(NFC)、SE和可信后端系统结合使用,以提供进行金融交易所需的安全性
在某些情况下,需要与最终用户进行交互,这可能需要用户向移动操作系统公开PIN、密码或生物识别码等敏感信息,作为验证用户身份的手段。TEE可选地提供可用于在移动设备上构造用户身份验证的可信用户界面。
随着加密货币的兴起,TEE越来越多地被用于实现加密钱包,因为它们能够比常规操作系统更安全地存储令牌,并可以提供必要的计算和身份验证应用程序。[27]
认证
TEE非常适合支持生物识别ID方法(面部识别、指纹传感器和语音授权),这可能比PIN和密码更容易使用,更难窃取。身份验证过程通常分为三个主要阶段:
- 将参考“模板”标识符存储在设备上,以便与下一阶段提取的“图像”进行比较。
- 提取“图像”(例如扫描指纹或捕获语音样本)。
- 使用匹配引擎比较“图像”和“模板”。
TEE是移动设备中一个很好的区域,可以容纳匹配引擎和认证用户所需的相关处理。该环境旨在保护数据,并针对移动操作系统中的非安全应用程序建立缓冲区。这种额外的安全性有助于满足服务提供商的安全需求,并降低手机开发商的成本。
企业、政府和云
政府、企业和云服务提供商可以使用TEE安全处理移动设备和服务器基础设施上的机密信息。TEE对移动操作系统中产生的软件攻击提供了一定程度的保护,并有助于控制访问权限。它通过存储敏感的“可信”应用程序来实现这一点,这些应用程序需要与移动操作系统和可能存在的任何恶意恶意软件隔离和保护。通过利用TEE提供的功能和安全级别,政府和企业可以放心,员工使用自己的设备是安全可靠的。同样,基于服务器的TEE有助于抵御针对后端基础设施的内部和外部攻击。
安全的模块化编程
随着软件资产和重用的增加,模块化编程通过将功能分解为小的独立模块,成为设计软件架构的最高效的过程。由于每个模块都包含执行其所需功能所需的一切,因此TEE允许组织具有高可靠性和安全性的完整系统,同时防止每个模块受到其他模块的漏洞。
为了让模块进行通信和共享数据,TEE提供了在模块之间安全地发送/接收有效负载的方法,使用诸如对象序列化之类的机制以及代理。
参见基于组件的软件工程
TEE操作系统
Company | Product | Hardware Used | API Standard | Certification type | References |
---|---|---|---|---|---|
Alibaba | Cloud Link TEE | GlobalPlatform | Full | [28] | |
Apple | iOS Secure Enclave | Separate processor | Proprietary | [29] | |
BeanPod | Arm TrustZone | GlobalPlatform | [30] | ||
Huawei | iTrustee | Arm TrustZone | GlobalPlatform | Full | [31] |
Trusty | ARM / Intel | Proprietary | [32] | ||
Linaro | OPTEE | Arm TrustZone | GlobalPlatform | [33] | |
Qualcomm | QTEE | ARM TrustZone | GlobalPlatform + Proprietary | [34] | |
Samsung | TEEgris | Arm TrustZone | GlobalPlatform | Full | [35] |
TrustKernel | T6 | Arm / Intel | GlobalPlatform | [36] | |
Trustonic | Kinibi | Arm TrustZone | GlobalPlatform | Full | [37] |
Trustonic | SW TEE | SW TEE on | GlobalPlatform | [37] | |
Watchdata | WatchTrust | Arm TrustZone | GlobalPlatform | Full | [38] |
硬件支持
以下硬件技术可用于支持TEE实施:
- AMD:
- ARM:
- IBM:
- IBM Secure Service Container,[45] formerly zACI, first introduced in IBM z13 generation machines (including all LinuxONE machines) in driver level 27.[46]
- IBM Secure Execution,[47] introduced in IBM z15 and LinuxONE III generation machines on April 14, 2020.
- Intel:
- Trusted Execution Technology
- SGX Software Guard Extensions[48]
- "Silent Lake" (available on Atom processors)[49][50][51]
- RISC-V:
See also[edit]
- Open Mobile Terminal Platform
- Trusted Computing Group
- FIDO Alliance
- Java Card
- Intel Management Engine
- Intel LaGrande
- Software Guard Extensions
- AMD Platform Security Processor
- Trusted Platform Module
- ARM TrustZone
- NFC Secure Element
- Next-Generation Secure Computing Base
本文:
最新内容
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week 6 days ago
- 2 weeks ago
- 2 weeks 3 days ago
- 2 weeks 3 days ago
- 2 weeks 3 days ago