可信执行环境(TEE)技术介绍(Trusted Execution Environment)

2023-10-26

本文对当前流行的移动终端TEE技术做简要概述,并对一些细节展开讨论。


1. 当前移动安全背景

当前移动终端面临这严重的安全威胁,威胁点如下图所示:



因此移动厂商、用户、服务提供商等各方都对移动安全提出了强烈的需求。



2. REE介绍(Rich Execution Environment)


REE简介

所有移动设备都支持REE

运行通用OS:Android、iOS、Linux

为上层App提供设备的所有功能

开放的、可扩展的且通用的

在互联互通的网络世界中运转

REE存在安全隐患

基于OS实现的App隔离极易被绕过;

OS代码庞大,漏洞频发;

OS很难被检验和认证;

OS可以看到App内部的所有数据;

大量的恶意代码和高级的攻击技术;

缺乏隔离意味着App无法安全存储密钥;

需要一个隔离环境操作密钥和敏感数据.


虚拟化技术实现的隔离

多个OS执行在虚拟的处理器上

基于软件的隔离,缺乏硬件安全性

Hypervisor可以访问所有OS的数据:进而可以访问所有App的数据

Hypervisor存在bugs

Malware通过控制hypervisor 窃取各种密钥

运行性能损耗大

SE实现的安全平台

SE具备极强的安全等级

SE向外提供的接口和功能极其有限:缓慢的串口连接、性能极低的CPU、无法处理大量数据、无UI能力

SE主要关注于保护内部密钥

TEE+SE的方案更加有强大:强于单独使用某一技术

3.TEE(Trusted Execution Environment)的提出


GlobalPlatform TEE 架构

TEE具备的特性

受硬件机制保护:TEE隔离于REE、只能通过特定的入口与TEE通信、并不规定某一种硬件实现方法

高性能:TEE运行时使用CPU的全部性能(独占)

快速通信机制:TEE可以访问REE的内存、REE无法访问受硬件保护的TEE内存

TEE中可以同时运行多个Trusted Application(TA)

由GlobalPlatform(GP)标准化:可在多种平台上移植

TEE中的所有组件模块先定义安全,再考虑性能

TEE中的可执行代码在执行前先要被验证(validate)

对于密钥使用安全存储机制:认证性、完整性和机密性

GP定义了TEE的保护轮廓(Protection Profile): 定义了所需的硬件保护强度

TA间相互隔离


TEE的安全设计

基本目标:
1.保护敏感数据免受REE和其他环境的恶意行为
2.必须使用硬件机制进行保护,且该机制仅能受控于TEE

保护强度:
1.对于密码学算法,当前采用128bit的安全强度

可抵御某些基于硬件的攻击:
1.抵御能力不如SE
2.SoC内部无安全防护措施

TEE必须被安全启动:
1.使用片上(on-chip)资源实现完全的安全启动流程
2.在控制权转移过程中完成完整性的传递

TEE提供可信存储:
1.
保护数据的认证性、机密性和完整性
2.安全防护能力等同于TEE
3.可以被存储于非安全区域
4.必须提供某种回滚保护机制


TEE软件架构



TEE Internal APIs

 TEE Internal Core API:向上提供TrustedOS的功能、与CA通信、TA与TA通信、安全存储、密码学功能、时间

其他APIs:构建于Internal Core API之上,共享错误处理和API定义规则

私有APIs:GP未定义,无法通用,允许产品的特定差异化


启动流程

GP标准:启动流程只在系统启动时执行一次、要求启动流程至少建立一个信任根(RoT)、需要一些机制和方法去实现

一般情况下启动基于ROM代码:允许其他实现、依次验证加载的代码

一般情况下TEE首先启动:阻止REE接口生效

系统可以实现一个启动时的TEE(完全TEE的子集)

启动流程1:Trusted OS首先启动,如下图:

启动流程2:Trusted OS按需启动,如下图:

4.TEE实现:ARM TrustZone

TrustZone

为TA提供系统硬件隔离

嵌入式安全解决方案

ARM Cortex-A系列处理器及Cortex-M微处理器

创建了一个隔离的Secure World

REE与TEE通过SMC实现切换

应用场景包括:认证,支付,内容保护

目前实现和应用TEE的主要方式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可信执行环境(TEE)技术介绍(Trusted Execution Environment) 的相关文章

随机推荐

  • SQL注入***

    SQL注入 是 对数据库进行 的常用手段之一 随着B S模式应用开发的发展 使用这种模式编写应用程序的程序员也越来越多 但是由于程序员的水平及经验也参差不齐 相当大一部分程序员在编写代码的时候 没有对用户输入数据的合法性进行判断 使应用程序
  • npm 安装卸载模块 & ionic插件安装与卸载

    npm安装模块 npm install xxx利用 npm 安装xxx模块到当前命令行所在目录 npm install g xxx利用npm安装全局模块xxx 本地安装时将模块写入package json中 npm install xxx
  • 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果

    用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果 以下转载自 http blog csdn net ghgk archive 2004 10 20 144795 aspx 近日在为一个数据应用写数据输入界面 大量的编辑框要想
  • maven本地仓库批量上传私服

    最近做项目遇到一个问题 从别的地方拿过来的工程是用maven构建的 而且用了许多自有的依赖包 如果一个个的上传到私服简直是浪费时间 于是用Python 写了一个批量上传的工具 简化自己的工作量 使用的是Python3 分别依赖了os sub
  • Run-Time Check Failure #2 - Stack around the variable ‘password(数组名)‘ was corrupted.

    记录一些小小的bug 使用visaul 2019编辑c语言程序 程序可以正常运行 但程序结束退出时忽然报错闪退 原来是我定义password 数组时没有规定数组大小 导致栈溢出 正确的做法只要给数组规定一个大小就行了 以下讲解来自chatg
  • 芯片的英文手册需要全部看吗?

    以下文章来源于 公 众 号开源电子网 读取更多技术文章 请扫码关注 芯片的英文手册需要全部看吗 进入嵌入式行业的人都知道 必定和英文手册打交道的 例如使用一款PHY芯片设置电路 那么首要任务就是查找该PHY芯片的手册以及相关资料 这些资料呢
  • 用房屋建筑方式理解软件构建

    如果你是在建一栋房子 那么这个建造过程就会复杂得多 而糟糕的设计所引发的后果也更严重 首先你要决定准备建一个什么类型的房子 在软件开发里的类似事项称为问题定义 problem definition 接下来 你必须和某个建筑师 archite
  • java代码规范(转载整合)

    1 标识符命名规范 1 1 概述 标识符的命名力求做到统一 达意和简洁 1 1 1 统一 统一是指 对于同一个概念 在程序中用同一种表示方法 比如对于供应商 既可以用supplier 也可以用provider 但是我们只能选定一个使用 至少
  • 数据库文件被.eight后缀勒索病毒加密?不要惊慌,91数据恢复专家教您应对处理!

    当企业遭受勒索病毒攻击时 数据库文件被加密 这会导致企业无法访问其重要的业务数据 会给企业带来较大的困扰 本篇文章 91数据恢复专家将会针对 tsai shen zohomail eu eight勒索病毒 介绍如何恢复被 tsai shen
  • keras部分介绍

    1 keras 关于batch normalization函数参数axis 3的解释 https www zhihu com question 318398221 tips BN层的作用 1 加速收敛 2 控制过拟合 可以少用或不用Drop
  • 2023年面试问答-二分查找

    正常实现 Input 1 2 3 4 5 key 3 return the index 2 public int binarySearch int nums int key int l 0 h nums length 1 while l l
  • 一键端2

    新仙剑ol 链接 http pan baidu com s 1i3xZHLb 密码 hyly 链接 http pan baidu com s 1c0HgGKw 密码 druj 本帖隐藏的内容 龙之谷133服务端 链接 http pan ba
  • 索琦c语言程序设计第二版第七章,C语言程序设计自学考试大纲(2000年7月版).doc...

    天津市高等教育自学考试课程考试大纲 课程名称 应用程序基础及设计 课程代码 1115 4874 第一部分 课程性质与设置目的 一 课程性质与特点 应用程序基础及设计 课程是高等教育自学考试电子信息工程专业的必修课 是该专业一门重要的基础课
  • Qt实现TCP客户端和服务器通讯程序

    复习的心态过一遍之前基础的一些东西 Qt封装了QTcpServer和QTcpSocket两个类 其中QTcpServer继承自QObject 通过listen 函数监听传入的客户端连接 当Client连接上时 QTcpServer会发出ne
  • 使 QComboBox 下拉一个带复选框的树形列表

    背景 在项目开发过程中需要使 QComboBox 下拉一个树形列表 直接通过 setModel 和 setView 设置 combox 控件可以实现 但是在单击节点箭头按钮时也会隐藏下拉框的显示 因此需要重新实现 QComboBox 的方法
  • 解决vue 路由传参 页面刷新或者后退参数丢失的问题

    vue路由传递参数如果用params传递参数 那么页面刷新就会丢失数据 可以改用query来传递参数 这样刷新就不会丢失 this router push path business bizInspectionTaskSub query f
  • Db2 v11.1 Upgrade to V11.5 HADR 模式

    https www ibm com docs en db2 11 5 topic methods universal versus product specific fix packs Universal versus product sp
  • RocketMQ重置消费位点源码分析

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 背景 最近在使用RocketMQ的重置消费位点的时候经常出现报错 所以就打算研究下RocketMQ是如何重置消费者的消费位点的 RocketM
  • 图像形态学处理(膨胀腐蚀开闭运算)——数字图像处理学习八(C++版)

    一 基本概念 1 形态学的基本思想是利用一种特殊的结构元来测量或提取输入图像中相应的形状或特征 以便进一步进行图像分析和目标识别 2 图像的形态学处理是对二值图像进行处理 所以在形态学处理前需要将图像二值化 3 结构元可以是任意形状 结构元
  • 可信执行环境(TEE)技术介绍(Trusted Execution Environment)

    本文对当前流行的移动终端TEE技术做简要概述 并对一些细节展开讨论 1 当前移动安全背景 当前移动终端面临这严重的安全威胁 威胁点如下图所示 因此移动厂商 用户 服务提供商等各方都对移动安全提出了强烈的需求 2 REE介绍 Rich Exe