一文看懂REE OS、TEE OS、CA以及TA概念、架构、流程

这篇具有很好参考价值的文章主要介绍了一文看懂REE OS、TEE OS、CA以及TA概念、架构、流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、概念

二、使能方式

三、TEE软件框架

四、TEE软件流程


一、概念

  • REE(Rich Execution Environment):比如Android系统,是一个开放的环境,容易收到恶意软件的攻击,比如敏感数据被窃取、数字版权被滥用、移动支付被盗用等。运行的系统和应用叫做Rich OSCA(Client APP)。
  • TEE(Trusted Execution Environment):可信执行环境,在目前的移动安全领域,默认就是指基于ARM Trustzone技术的TEE。运行的系统和应用叫做Trusted OSTA(Trusted APP)。

2010年7月GP(Global Platform,全球平台组织)提出了TEE(Trusted Execution Environment)可信执行环境的设计。TEE是一个与REE并存运行的独立执行环境,它具有其自身的执行空间,比Rich OS的安全级别更高,为Rich OS提供安全服务,如指纹的录入比对、支付校验认证等操作。TEE OS各家厂商和组织都有各自的实现方式,但是所有方案的外部接口都会遵循GP(GlobalPlatform)标准:

ree和tee,车载Camera专家教程,Android知识体系,系统架构

二、使能方式

Normal world和Secure world分别对应于REE和TEE。通过切换 Secure Configuration Register 系统寄存器来使能该模式的支持,该寄存器最后1bit为0,表示当前CPU处于secure mode。并且 ARM 本身支持将系统资源配置成 secure 状态,通过操作 TZPC 控制寄存器可以将系统总线、内存、DMA、cache 等资源配置成 secure 态,配置成 secure 态之后,normal 端运行的程序无法访问其硬件资源。

ree和tee,车载Camera专家教程,Android知识体系,系统架构

三、TEE软件框架

ree和tee,车载Camera专家教程,Android知识体系,系统架构

REE中的系统结构:

  • CA(Client APP)对应一些上层应用,比如指纹采集、支付应用等,通过调用TEE Client API实现与TEE环境的交互。
  • REE Communication Agent为TA和CA之间的消息传递提供了REE支持
  • TEE Client API是REE中的TEE驱动程序提供给外部的接口,可以使运行在REE中的CA能够与运行在TEE中的TA交换数据。

TEE中的系统结构:

  • TA(Trusted Application)是TEE中完成特定功能的应用。由于TEE中完成计算因此具有较高的安全性。每一个TA在REE中有一个或者多个对应的CA,在REE环境中可以通过调用CA的接口,将信息传送到TEE环境中执行TA,完成对应功能然后返回计算结果。
  • TEE Communication Agent是可信操作系统的特殊组成部分,它与REE Communication Agent一起工作,使TA与CA之间安全地传输消息。
  • TEE Internal Core API是TEE操作系统提供给TA调用的内部接口,包括密码学算法,内存管理等功能。
  • Trusted Device Drivers可信设备驱动程序,为专用于TEE的可信外设提供通信接口。
  • Shared Memory是一块只有CA和TA可以访问的一块安全内存,CA和TA通过共享内存来快速有效传输指令和数据

CA与TA交互流程如下:CA首先调用TEE Client API触发系统调用,进入REE的操作系统内核态,根据CA调用的参数找到对应的REE驱动程序,REE驱动程序通过调用SMC汇编指令进入Monitor模式,并将处理器切换到安全内核状态,进入安全模式。切换进入TEE以后,CA的服务请求通过总线传到TEE侧,然后TEE OS通过TEE Internal API调用对应的TA,最后TA运行结束后将运行结果和数据返回给CA,执行完以后回到TEE内核态调用SMC汇编指令进入Monitor切回REE环境。

更简清晰的软件交互如下:

ree和tee,车载Camera专家教程,Android知识体系,系统架构

简要描述:REE侧的Client APP是通过调用TEE Client API接口来跟TEE OS交互,具体交互流程是TEE Client API通过ioctl系统调用对TEE Driver通信,TEE Driver通过SMC指令实现 OpenSession,InvokeCommand,CloseSession 等的命令转发,同时也会处理来自 TEE 的请求,如请求REE的资源就让TEE Helper Daemon处理。Secure Monitor主要用于REE和TEE的环境切换、转发请求等。

详细描述:

  • REE 部分 Client Applications(CA) 一般是指指纹录入,支付应用等上层应用,其通过调用 TEE Client API 接口来与 TEE 环境的 Trusted OS 进行交互,这里的 TEE Client API 包括 TEE 厂商自定义的一些接口或 GlobalPlatform(GP) 全球组织定义的通用 API,其目的是制定一套标准的编程接口,方便开发者在不同软硬件平台下使用同一套代码实现其功能。
  • TEE Client API 通过 ioctl 系统调用对 TEE Driver 进行操作,TEE Driver 是沟通 REE 和 TEE 的桥梁,其通过 SMC 指令,实现将上层的 OpenSession,InvokeCommand,CloseSession 等标准调用的请求转发到 TEE 环境,同时其也会处理来自 TEE 的请求,将请求转发到 TEE Helper Daemon 让其处理。
  • TEE Helper Daemon 是一个辅助进程,用于 TEE 请求 REE 的资源。 一般来说,TEE 需要获得存储在 EMMC 的数据文件(例如安全加密文件,TA 可执行镜像文件等),而读写 EMMC 操作需要复杂的内核驱动的支持,显然如果把读写 EMMC 的驱动放到 TEE 侧运行会使软件复杂度会变得很高,因此 REE 需要一个可以访问这些资源的辅助进程支持,这就是 TEE Helper Daemon 的基本功能。TEE Helper Daemon 在软件逻辑实现上比较简单,以 OP-TEE 的 tee-supplicant 辅助进程为例,整体上是一个循环流程: 其首先通过 ioctl 接口查询是否有来自 TEE 的请求,如果没有,则进入睡眠等待状态,等待 TEE Driver 的唤醒信号,当 TEE Driver 收到来自 TEE 的请求后,会唤醒 tee-supplicant 辅助进程,然后根据请求号进行相应处理(读写数据文件,读写 EMMC 设备分区等),最后返回结果到 TEE Driver,完成一次循环。

  • TEE 侧的 Secure Monitor 的主要作用是实现 REE 和 TEE 环境的切换,转发请求到 Trusted OS。当 Secure Monitor 收到 TEE Driver 的 SMC 请求后,会将 CPU 切换到 Secure 状态,然后转发请求到 Trusted OS 来处理,Trusted OS 会找到请求对应的 Trusted App(TA) 去处理请求,具体逻辑流程会在下一节中详细说明。 另外 Secure Monitor 还用于开机时候 Trusted OS 的引导工作。

 Trusted OS 是运行在 TEE 侧的小型操作系统,简单来说,其作用是:

  • 构建满足 TA 运行的安全运行环境
  • 提供安全外设(SPI,I2C,Timer 等)的驱动程序
  • 根据 REE 的请求,调度相应 TA 处理请求
  • 提供 TA 运行所需要的加解密,随机数生成,证书生成校验等通用函数库

 上文提到 GlobalPlatform(GP) 全球组织定义的通用 API,TEE Client API 供 REE 侧的 CA 使用,TEE Internal API 则是供 TA 调用 Trusted OS 资源的标准 API,同样是用于方便 TA 开发者在不同软硬件平台进行开发。 

四、TEE软件流程

ree和tee,车载Camera专家教程,Android知识体系,系统架构

  1. 首先 CA 需要与 Trusted OS 之间建立一个 Context(InitializeContext),以后此 CA 与 TEE 环境的所有通信均基于此 Context。
  2. 然后 CA 会向 Trusted OS 申请与请求的 TA 建立一个 Session(OpenSession)。
  3. CA 与 TA 之间的 Session 建立完成后,CA 就可以向 TA 发送 Command(InvokeCommand)。
  4. Command 及其参数会通过共享内存的方式传递,TA 从共享内存中获取到 CA 的请求以及请求参数。
  5. TA 在 TEE 环境下执行处理,得到的处理结果重新填充到共享内存中,CA 通过共享内存就可以获取到处理结果。
  6. 获得处理结果后,如不需要进一步请求,则由 CA 发起关闭 Session 的请求(CloseSession),Trusted OS 回收 TA 相关资源,最后 CA 发起销毁 Context 的请求(FinalizeContext),完成一次完整交互。

各步骤时序图:

ree和tee,车载Camera专家教程,Android知识体系,系统架构

 ree和tee,车载Camera专家教程,Android知识体系,系统架构

 ree和tee,车载Camera专家教程,Android知识体系,系统架构

参考优秀博客:

深入浅出理解TEE|极客笔记 (deepinout.com)

TEE 软件交互流程概述 - 魅族内核团队 (meizu.com)文章来源地址https://www.toymoban.com/news/detail-670324.html

到了这里,关于一文看懂REE OS、TEE OS、CA以及TA概念、架构、流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文看懂解决方案分析方法论SWOT以及SMART原则

    今天给大家分享两个内容,解决方案分析方法论SWOT以及SMART原则 首先我们来分析SWOT分别代表什么: S(Strengths) :优势 W(Weaknesses):劣势 O(Opportunities):机会 T(threats):威胁 举个例子,项目需要使用一种消息队列,那么在众多消息队列中,哪个才是最适合我们的呢?

    2024年01月24日
    浏览(41)
  • 数据中台浅析——概念、架构以及未来

    在当今的数字化时代,数据被誉为\\\"新的石油\\\",越来越多的企业和组织开始深度挖掘数据的价值。在这个过程中,数据中台逐渐成为了数据管理和分析的核心架构,让我们来深入了解一下它。 1.1 数据中台的概念和价值 数据中台 是一个提供统一、标准化数据服务的平台,它负

    2024年02月08日
    浏览(44)
  • 干货!一文搞定无头浏览器的概念以及在selenium中的应用

      无头浏览器,即 Headless Browser,是一种没有界面的浏览器。它拥有完整的浏览器内核,包括 JavaScript 解析引擎、渲染引擎等。与普通浏览器最大的不同是,无头浏览器执行过程中看不到运行的界面,但是我们依然可以用 GUI 测试框架的截图功能截取它执行中的页面。在这里强

    2023年04月12日
    浏览(60)
  • 【TEE】ARM CCA 可信计算架构

    作者:Arm 首席应用工程师 David Brooke 原文: Learn the architecture - Introducing Arm Confidential Compute Architecture Version 3.0 Introducing the Confidential Compute Architecture Hign Level设计 安全威胁模型 用法 内存安全问题 在本指南中,我们将探讨机密计算在现代计算平台中的作用,并解释机密计算的

    2024年01月25日
    浏览(52)
  • Kubernetes技术--Kubernetes架构组件以及核心概念

    1. Kubernetes集群架构组件   搭建一个 Kubernetes环境集群,其架构如下所示: 内容详解: Master : 控制节点,指派任务、决策 Node : 工作节点,实际干活的。 Master组件内容:

    2024年02月10日
    浏览(51)
  • 汽车架构-工作流程 以及相关协议解读

    全车架构(E/E)  车载测试阶段: 台架测试 HIL测试(硬件在环测试) ADAS智能辅助驾驶测试 OTA测试(远程升级测试) 测试工具: Can协议工具:Canoe Pcan Zcanpro 辅助工具:万用表(测试电压 电流 电路通断) 电源 示波器(设备信号波分析) 编程语言:Cpla Python ADb HIL硬件在环测试

    2024年02月05日
    浏览(41)
  • 第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

    1.1.什么是主从复制集群 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主

    2024年01月20日
    浏览(56)
  • 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式

    传统上,企业应用程序在公司网络中部署和运行。为了获取有关用户的信息,如用户配置文件和组信息,这些应用程序中的许多都是为与公司目录(如Microsoft Active Directory)集成而构建的。更重要的是,通常使用目录存储和验证用户的凭据。例如,如果您使用在本地运行的Share

    2024年02月05日
    浏览(43)
  • 【ElasticSearch系列-06】Es集群架构的搭建以及集群的核心概念

    ElasticSearch系列整体栏目 内容 链接地址 【一】ElasticSearch下载和安装 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【三】ElasticSearch的高级查询Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月04日
    浏览(60)
  • 一文看懂SGPIO协议

    目录 1.简介 2.接口列表 3.时序 3.1 Sclok 3.2 Sload 3.3 Sdataout 3.4 Sdatain 4.应用 串行通用输入输出(SGPIO)是一种串行通用IO信号的方法。通常用于发起方(如主机总线适配器)和目标方(如背板)之间的通信。目标方通常将输出的串行信号转换为多个并行信号,并通过GPIO提供输入信

    2024年01月24日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包