可信执行环境(TEE)学习笔记

news/2024/11/20 21:11:08/文章来源:https://www.cnblogs.com/binbinzhidao/p/18559302

来越多的数据在云环境下进行存储、共享和计算,云环境下的数据安全与隐私保护也逐渐成为学术界以及工业界关注的热点问题。目前阶段,隐私保护技术主要基于密码算法及协议(如安全多方计算、同态加密等)完成场景落地,其优点主要在于具有较高的安全性和可靠性,然而,由于这些算法或协议的实现依赖于大量复杂计算(如乘法循环群上的乘法、指数运算,Pairing 运算,格上的数学运算等),因此存在较大的性能瓶颈,难以在实际场景中大规模应用。

作为基于密码学的隐私保护技术的一种替代方案,可信执行环境(Trusted execution environment,TEE)基于硬件安全的 CPU 实现了基于内存隔离的安全计算,可在保证计算效率的前提下完成隐私保护的计算。

TEE 定义

TEE 是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息。以此来实现敏感数据的隐私计算。

富执行环境 (Rich Execution Environment,REE) 指的是操作系统运行时的环境中,可以运行如 Android、IOS 等通用的 OS(Opreating System)。REE 是一个容易受到攻击的开放环境,如敏感数据的窃取、移动支付盗用等等。而 TEE 是中央处理器上的一个安全区域,能够保证敏感数据在隔离和可信的环境内被处理,从而免受来自 REE 中的软件攻击。此外,与其他的安全执行环境相比,TEE 可以端到端地保护 TA(Trusted Application)的完整性和机密性,能够提供更强的处理能力和更大的内存空间。

上图初印象(TEE 和 REE 的关系):看上图,从下往上看 REE 和 TEE 都有着相同的平台硬件,REE 有着公共的外设,TEE 有着被信任的外设,在 REE 的 rich 系统组件中,有着公共的设备驱动程序。来自平台硬件的消息可以传到 REE 通信代理,也可以到 TEE 的通信代理。可信外设和可信执行环境中的可信内核进行交互。可信的系统组件里面还有可信核心框架和可信函数。中间这一层有着更多的特权。而再往上更高的一级则会有更少的特权。
在最上层的 REE 部分,客户应用和 TEE 客户 API,TEE 功能 API 进行交互,一些客户应用程序中还有共享内存(和 TEE 中是共享的)。在 TEE 部分,则是运行着可信的应用,他们则通过 TEE 内部 API 进行交互。

TEE 强大的数据安全和隐私保护能力,使其成为隐私计算主要技术流派之一,比 REE 得到了更广泛的应用。

目前对于 TEE 的定义有很多种形式,针对于不同的安全性需求和平台,TEE 的定义也不尽相同,但在所有 TEE 的定义中都会包含两个最关键的点:

  • 独立执行环境
  • 安全存储

在 GlobalPlatform, TEE System Architecture, 2011 中,GlobalPlatform 将 TEE 定义如下:TEE 是一个与设备操作系统并行,但相互隔离的执行环境。 TEE 可以保护其中的数据免受一般的软件攻击,TEE 可以使用多种技术实现 ,在不同的技术实现下 TEE 的安全性等级也会有所不同。

在 IEEE International Conference on Trust 2015 上,Mohamed Sabt 等人使用分离核(separation kernel)对 TEE 进行了崭新的更一般化的定义 。分离核最早用于模拟分布式系统,其需要满足以下安全性准则:

  • 数据独立:存储在某个分区中的数据不能被其他分区读取或篡改。
  • 时间独立:公共资源区域中的数据不会泄露任意分区中的数据信息。
  • 信息流控制:除非有特殊的允许,否则各个分区之间不能通信。
  • 故障隔离:一个分区中的安全性漏洞不能传播到其他分区。

基于分离核的安全性特质,TEE 可被定义成「一个运行在分离核上的不可篡改的执行环境。也就是说,TEE 可以保证其内部代码的安全性,认证性和完整性;可以向第三方证明它的安全性;可以抵抗几乎所有的对主要系统的软件攻击和物理攻击;可以有效杜绝利用后门安全漏洞所展开的攻击。

TEE 发展脉络及现状

TEE 技术最早可以追溯到 2006 年。开放移动终端平台(Open Mobile Terminal Platform ,以下简称 OMTP))率先提出一个针对移动终端的双系统安全解决方案,即在同一个终端系统下同时部署两个操作系统,其中一个是常规的操作系统,另一个是隔离的安全操作系统。其中,安全操作系统运行在隔离的硬件环境中,专门处理敏感信息以保障其安全性。

在 OMTP 方案的基础上,ARM 公司提出了一种硬件虚拟化技术 TrustZone 及其相关的硬件实现方案,并于 2008 年第一次发布了 Trustzone 技术白皮书。目前 ARM 是移动端最具影响力的方案供应商,其 TEE 技术也在行业内处于主导地位:高通的骁龙 835/845 系列芯片,海思的麒麟 950/960 系列芯片,联发科的 HelioX20、X25、X30,三星的 Exynos8890、7420、5433 等移动端主流处理器的芯片均基于 ARM 结构,并且它们采用的 TEE 技术也基于 ARM 结构。除此之外,还有一种比较主流的可信执行环境产品是 Intel 公司推出的 SGX(Software Guard Extensions)。

2010 年 7 月,Global Platform(以下简称 GP)正式提出了 TEE 的概念,并从 2011 年开始起草制定相关的 TEE 规范标准,针对 TEE 系统设计了一系列规范,对应用接口,应用流程,安全存储,身份认证等功能进行了规范化。GP 是跨行业的国际标准组织,致力于制定和发布基于硬件安全的技术标准。GP 组织制定和发布的国际标准被称为 GP 标准。此外 GP 组织还设立了 TEE 检测认证体系,对 TEE 产品进行功能检测并颁发证书,国际上大多数基于 TEE 技术的 Trust OS 都遵循了 GP 的标准规范。

国内,银联自 2012 年起与产业链合作开始制定包括 TEE 硬件、TEE 操作系统、TEE 基础服务和应用等各个层面的规范标准,并且于 2015 年通过技术管理委员会的审核发布银联 TEEI 规范。2017 年初,人民银行开始制定 TEE 各层面的需求类规范。2020 年 7 月,中国信通院发布联合 20 家单位共同参与制定的标准《基于可信执行环境的数据计算平台技术要求与测试方法》。

TEE 与安全多方计算(MPC)、同态加密相比

安全多方计算(MPC)、同态加密是和 TEE 一样各有所长的隐私计算技术。
对比图

MPC 与同态加密是密码学领域最主流的两种隐私计算技术,这两种技术一般在数学上的困难性假设基础均可证明安全,因此它们具有逻辑严谨、可解释性强、可证明安全等特点,但是安全性的提升也导致了较高的计算或通信复杂度,让两种技术的可用性受到了一定限制。

同态加密的加解密过程中群上的大数运算带来的计算开销,同态加密的密文长度增长以及安全多方计算技术中多轮通信带来的通信开销等,虽然存在针对这些问题的大量优化方案,但是其性能瓶颈仍未从根本上解决。因此通用型 MPC 协议很难在大规模计算环境下广泛应用,更多是针对特定问题的 MPC 协议,如隐私信息检索(PIR)、隐私集合求交(PSI)等,而同态加密技术则大多仅应用于某些计算协议中关键步骤的计算。

与 MPC 和同态加密相比,TEE 可被视为密码学与系统安全的结合,既包含底层的密码学基础,又结合硬件及系统安全的上层实现,其安全性来源于隔离的硬件设备抵御攻击的能力,同时避免了额外的通信过程以及公钥密码学中大量的计算开销。其缺点也在于其安全性很大程度上依赖于硬件实现,因此很难给出安全边界的具体定义,也更容易遭受来自不同攻击面的侧信道攻击。

TEE 的优劣势以及适用场景

优势:

  • 可信硬件部分可支持多层次、高复杂度的算法逻辑实现
  • 运算效率高,相较于明文计算仅有 3-4 倍损耗,而 MPC 等技术具有上百倍的计算损耗
  • 能够抵御恶意敌手

劣势:

  • 方案实现依赖底层硬件架构
  • 更新升级需要同步进行软硬件升级
  • 不同厂商的 TEE 技术各异,需要形成统一的行业标准

根据 TEE 技术的优势和劣势,可以总结出 TEE 技术适用于以下应用场景

  • 计算逻辑相对复杂的计算场景
  • 数据量大,数据传输和加解密的成本较高
  • 性能要求较高,要求在较短时间内完成运算并返回结果
  • 需要可信第三方参与的隐私计算场景,且数据(部分或间接)可被可信第三方获取或反推
  • 数据的传输与使用环境与互联网直接接触,需要防范来自外部的攻击
  • 数据协作的各方不完全互信,存在参与各方恶意攻击的可能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837534.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同步与互斥与通信

同步与互斥 同步:两任务要协调 互斥:两任务要争用 举一个例子。在团队活动里,同事A先写完报表,经理B才能拿去向领导汇报。经理B必须等同事A完成报表,AB之间有依赖,B必须放慢脚步,被称为同步。在团队活动中,同事A已经使用会议室了,经理B也想使用,即使经理B是领导,他也…

Windows 自动色彩管理(ACM)

在一些笔记本上Win11可以看到设置里有“自动管理应用的颜色”选项,有些笔记上没有。这里讲下“自动管理应用的颜色”的显示规则 看华为MetaBook E设置界面显示:“自动管理应用的颜色”与“颜色自适应”是一个功能? 不是,颜色自适应是要依赖环境颜色传感器来实现的,有环境颜…

闲话 11.20

杂题乱写 11.2010 days left. 不说闲话,捡重点说。P4113 [HEOI2012] 采花 hh 的项链加强版。 首先考虑莫队,轻松写,轻松 133pts,轻松过不了后两个 hack,考虑优化。 既然是加强版,那么就考虑沿用之前的思路。记录上次出现某个数的位置和上上次出现某个数的位置,离线之后将…

CTFshow渗透知识点

1.robot.txtRobots是一个协议,全称为“网络爬虫协议”,也称爬虫协议、机器人协议等。网站通过Robots协议告诉搜索引擎哪些页面可以访问,哪些不可以访问。 使用方法: 在浏览器的网址搜索框中,输入根域名,再输入/robots.txt即可 博客:Robots.txt在渗透测试中的利用_robots.…

Goby 漏洞发布|超高危!Palo-alto-panos createRemoteAppwebSession.php 命令执行漏洞CVE-2024-0012 CVE-2024-947

漏洞名称:Palo-alto-panos createRemoteAppwebSession.php 命令执行漏洞CVE-2024-0012 CVE-2024-947 English Name:Palo-alto-panos /php/utils/createRemoteAppwebSession.php Command Execution Vulnerability CVE-2024-0012 CVE-2024-9474 CVSS core: 9.5 漏洞描述: Palo…

一个.NET开源、快速、功能丰富的跨平台阅读服务器

前言 今天大姚给大家分享一个基于.NET开源的快速、功能丰富的跨平台阅读服务器,它的设计初衷是提供一个全面的解决方案,满足用户的所有阅读需求。用户可以设置自己的服务器,并与朋友和家人分享阅读收藏:Kavita。 支持格式书籍:epub, pdf。 漫画/网络漫画/漫画书:cbr, cbz…

人工智能之机器学习线代基础——矩阵分类

1. 按维度和大小方阵(Square Matrix):行数和列数相等的矩阵。列矩阵(Column Matrix):只有一列的矩阵。行矩阵(Row Matrix):只有一行的矩阵。零矩阵(Zero Matrix):所有元素均为 0。单位矩阵(Identity Matrix):对角线为 1,其他元素为 0 的方阵。对角矩阵(Diagon…

Linux 命令之 tar

目录1 tar 命令介绍2 压缩与解压缩2.1 压缩2.2 解压4 高级用法4.1 排除目录4.2 显示进度4.2.1 脚本解压缩4.2.2 命令解压缩4.2.3 压缩进度 1 tar 命令介绍常见的压缩包有 .tar.gz、.tar.xz、.tar.bz2,以及 .rar、.zip、.7z 等压缩包。常见的 tar 选项:- 1. 文件操作选项:-c,…

2024年11月最新版Adobe PhotoShop(26.0)中文版下载

Adobe PhotoShop 是一款功能强大的应用程序,已被各种公司、专业艺术家、设计和创作者广泛使用。该程序允许您创建、编辑和合成多层、蒙版和多种颜色模型(包括 RGB、专色、CMYK 等)的光栅图像。点击跳转下载页面 Adobe PhotoShop 是一款功能强大的应用程序,已被各种公司、专…

SpringBoot如何集成mybatis-plus

前言 大家好,我是小徐啊。我们在使用SpringBoot的时候,毫无疑问,一般是和mybatis集成的,而mybatis-plus作为mybatis的进阶,又是必须要集成的。今天,小徐就来介绍下如何在SpringBoot中集成mybatis-plus。 如何集成 首先,讲一下如何在配置文件中配置mybatis-plus的配置。主…

ubuntu安装docker+后端发布

一:更新软件包索引,并且安装必要的依赖软件 1.sudo apt-get update #更新软件包索引 2.sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common lsb-release #安装apt依赖包,用于通过HTTPS来获取Docker 仓库 二:添加 D…

IDEA如何找到在IDEA中下载jdk

前言 大家好,我是小徐啊。在使用IDEA开发java应用的时候,都是需要配置好jdk的环境的。当然,如果我们一开始,先安装好了jdk,那就不需要安装了。不然的话,我们也可以在IDEA中便捷的安装jdk。今天,小徐就来教大家如何在IDEA中安装jdk。 如何下载jdk 首先,点击下文件,项目…