历经一年多时间的系统整理合补充,《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 》一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件,从用户空间到内核空间的顺序对TEE技术详细阐述,读者可从用户空间到TEE内核一步一步了解系统安全的所有内容,同时书中也提供了相关的示例代码,读者可根据自身实际需求开发TA。目前该书已在天猫、京东、当当同步上线,链接如下(麻烦书友购书时能给予评论,多谢多谢)

京东购买地址

当当购买地址

天猫购买地址

非常感谢在此期间大家的支持以及各位友人的支持和帮助!!!。

为方便和及时的回复读者对书中或者TEE相关的问题的疑惑,也为了大家能有一个统一的交流平台。我搭建了一个简单的论坛,网址如下:

https://www.huangtengxq.com/discuz/forum.php

关于您的疑问可在“相关技术讨论“”中发帖,我会逐一回复。也欢迎大家发帖,一起讨论TEE相关的一些有意思的feature。共同交流。同时该论坛中也会添加关于移动端虚拟化的相关技术的板块,欢迎各位共同交流学习

  

要使用OP-TEE来实现特定的安全功能就需要开发者根据自己的实际需求开发特定的CA和TA程序,并将TA集成到OP-TEE中。CA端负责实现在RTOS端userspace层面的对外接口,而TA端的代码则是在OP-TEE OS的userspace层面负责实现具体的安全功能,例如使用何种算法组合来对数据进行安全处理,对处理后的数据的安全保存,解密加密数据等等功能。接下来的章节将详细介绍CA到TA之间的所有流程以及相关结构体设置,接口调用等等,关于如何在OP-TEE中添加自有的TA和CA程序请参考文档《2. OP-TEE中添加自己的TA和CA》。关于OP-TEE的中断处理的流程请查阅《OP-TEE中的中断处理》相关文章,接下来的章节将介绍不考虑中断的情况下,一个完整的TA和CA之间进行调用的完整过程分析。下图为系统中CA与TA之间执行的软件框图。

  借助OP-TEE来实现特定安全需求时,一次完整的功能调用一般都是起源于CA,TA做具体功能实现并返回数据到CA,而整个过程需要经过OP-TEE的client端接口,OP-TEE在Linux kernel端的驱动,Monitor模式下的SMC处理,OP-TEE OS的thread处理,OP-TEE中的TA程序运行,OP-TEE端底层库或者硬件资源支持等几个阶段。当TA执行完具体请求之后会按照原路径将得到的数据返回给CA。

  由于每家对具体API的具体实现不一样,但是其功能和对外接口都是遵循GP的标准来做的,笔者就遇见海思和mstar在实现CA端的API的时就各有各的方式,其中海思的实现方便更加复杂一点,因为海思在添加TA和CA的时候,在驱动层和TEE端都会对调用TEE服务的process或者thread做权限检查,建立了类似白名单机制,在海思的TEE中添加TA和CA的时候必须要注意CA端调用的process的注册。

  由于当前所有厂商的TEE方案都会遵循GP标准,OP-TEE也遵循GP(Global Platform)标准,本文中牵扯到的API的实际实现则以OP-TEE中的source code为准。

  在《OP-TEE中TA与CA执行流程介绍》系列文章中,笔者将以实际的CA和TA例子为例,分别按照如下章节对整个过程做详细的介绍:

1. CA部分的代码介绍

2. TEE_Client_API(libteec)的实现

3. tee_supplicant服务介绍

4. OP-TEE在linux端的驱动

5. Monitor mode中的处理

6. OP-TEE OS中thread的handle

7. TA部分的代码介绍

开撸代码~~~~~~~~~~~~~~~~~~~~

19. OP-TEE中TA与CA执行流程详解-------软件架构篇相关推荐

  1. 21. OP-TEE中TA与CA执行流程-------libteec介绍

    历经一年多时间的系统整理合补充,<手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 >一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件, ...

  2. 22. OP-TEE中TA与CA执行流程-------tee-supplicant(一)

    历经一年多时间的系统整理合补充,<手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 >一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件, ...

  3. MySQL系列---架构与SQL执行流程详解

    文章目录 1. 背景 2. 架构体系 2.1 架构图 2.2 模块详解 2.3 架构分层 3. 查询SQL语句执行流程 3.1 连接 3.1.1 MySQL支持的通信协议 3.1.2 通信方式 3.2 ...

  4. TEE中TA和CA的编译

    原 2. OP-TEE中添加自己的TA和CA 2017年05月10日 12:46:50 漂流的猴子 阅读数:5862更多 <div class="tags-box space" ...

  5. statement执行insert into语句_【图文并茂】源码解析MyBatis ShardingJdbc SQL语句执行流程详解...

    源码分析Mybatis系列目录: 1.源码分析Mybatis MapperProxy初始化[图文并茂] 2.源码分析Mybatis MappedStatement的创建流程 3.[图文并茂]Mybat ...

  6. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  7. spring mvc返回页面显示空白_Spring 框架基础(06):Mvc架构模式简介,执行流程详解...

    一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不 ...

  8. springmvc的执行流程详解

    1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...

  9. Spring 框架基础(06):Mvc架构模式简介,执行流程详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集 ...

最新文章

  1. 安装开发环境注意事项2
  2. linux安装KVM
  3. virtualenv之python虚拟环境
  4. 11月13日上午ajax返回数据类型为JSON数据的处理
  5. java log4j 实例_log4j使用例子 - 小代码2016的个人页面 - OSCHINA - 中文开源技术交流社区...
  6. background: radial-gradient径向渐变
  7. linux 文件系统的简单操作
  8. IT工程项目需求获取的主要方法
  9. python 使用公司邮箱发邮件_python3使用腾讯企业邮箱发送邮件的实例
  10. C#实现QQ窗体的步骤和总结
  11. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 费马小定理以及快速幂应用
  13. 基于OFBiz的E-TICKET(在线咨询管理)模块
  14. 微信DAT文件解密(dat转图像)
  15. 景联文科技:关于语音标注,你知道多少?
  16. Windows 最值得推荐的“神器”,看看你中了几个?
  17. java简单记事本代码_简单记事本的java程序代码
  18. flex弹性布局教程-07容器属性flex-direction
  19. mysql update报错
  20. html用frontpage编写,在FrontPage2000用HTML

热门文章

  1. 从零开始的Unity萌导书#1:Hello,Unity! 1
  2. 一个精壮的代购骗子被我用Python彻底征服了
  3. Beyond Compare 中文乱码解决
  4. python正则表达式入门教程括号及字符
  5. 让kaldi在Linux开发板上运行起来~ (测试运行篇)
  6. 动态时间规整算法: 从DTW到FastDTW
  7. 109 个实用 Shell 脚本实例,代码清晰拿来就能用!(附pdf)
  8. 小程序|炎炎夏日、清爽一夏、头像大换装
  9. Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端
  10. 人机博弈 围棋程序GNU GO 所有版本源码及使用方法