历经一年多时间的系统整理合补充,《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 》一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件,从用户空间到内核空间的顺序对TEE技术详细阐述,读者可从用户空间到TEE内核一步一步了解系统安全的所有内容,同时书中也提供了相关的示例代码,读者可根据自身实际需求开发TA。

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

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

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

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

若觉得书中内容有错误的地方,欢迎大家指出,私信或者在博文中留言联系方式亦可发邮件至:shuaifengyun@126.com,多谢各位了!!!!我会第一时间处理

  

使用secure storage的时候首先就需要创建安全文件并初始化该安全文件。如果在创建安全文件之前,在/data/tee目录下如果没有dirf.db文件,则在创建安全文件之前首先会创建dirf.db文件并进行初始化,而创建的dirf.db文件和安全文件中的初始化数据都会按照相同的格式进分成三个区域进行保存。所有对REE侧中/data/tee目录中的操作都是通过在TEE侧发送RPC请求通知tee_supplicant来完成。

1. secure storage功能框架

  所有对REE侧/data/tee目录下的文件操作都是通过tee_supplicant来实现,而整个secure storage 功能的架构如下图所示:

  在TA中调用GP的接口,然后通过syscall陷入到OP-TEE的kernel space中,然后根据实际操作需求组装RPC请求需要的参数,并触发smc操作将RPC请求到tee_supplicant中,tee_supplicant将会解析出RPC请求中的参数,并按照参数的定义执行对/data/tee目录下的具体操作。

2. dirf.db文件的创建

  当/data/tee目录下没有dirf.db文件时首先会创建dirf.db文件,在执行get_dirh函数时,get_dirh函数会判定在/data/tee目录下是否有dirf.db文件,如果没有则会先创建dirf.db文件。该文件的创建过程如下:

  在创建dirf.db文件过程中会产生一个随机数作为fek,且在调用update_root函数时会产生另外一个随机数作为加密fek数据的IV值并保存到head.iv中。且每次head的更新该iv值都会重新使用随机数进行更新。

3. 安全文件的创建

  在TA中调用TEE_CreatePersistentObject接口可以创建安全文件,创建安全文件时可以带入初始化数据作为创建安全文件时数据区域的初始化数据被加密保存。而整个安全文件的创建过程如下图所示:

  新建完安全文件之后会使用需要初始化的数据写入到创建的文件中,在将初始化数据加密后写入安全文件之后会更新整个安全文件的tee_fs_htree_node_image区域以及保存在文件头的tee_fs_htree_image区域。到此安全文件创建就完毕了,而为了后续操作能够通过dirf.db文件找到安全文件则还需要更新dirf.db文件中的内容,主要是dirf.db文件中的数据区域中的dirfile_entry数据。

42. OP-TEE中secure stroage------安全文件的创建相关推荐

  1. 38. OP-TEE中secure stroage------安全文件数据格式和操作过程

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

  2. 36. OP-TEE中secure stroage的使用

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

  3. html中如何插入pdf文件,如何创建PDF文件

    如何新建PDF格式文件大多数人所接触到的PDF格式文件,大多是其他格式转换而来的,转换成PDF是为了它的安全.兼容.打英传输方便.也因为大多数软件可转换成PDF,如办公软件或各类设计软件.为现时印刷的 ...

  4. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

  5. ArcMap中Shapefile和dBASE文件的创建与管理

    1.新建Shapefile文件 [1]启动ArcMap,新建空白地图文档: [2]打开[目录]窗口.单击[标准工具条]->[目录],弹出[目录]窗口,拖放[目录]窗口停靠在ArcMap右侧: [ ...

  6. 在Xcode6中添加prefix.pch文件

    在Xcode6中添加prefix.pch文件 1. 创建prefix.pch文件 2.工程->BuildSettings->prefix END 转载于:https://www.cnblo ...

  7. 在IDEA中`New`没有`Mapper`文件选项(亲测)

    在IDEA中New没有Mapper文件可以创建: 问题解决 1.File–>Settings–>Editor–>File and Code Templates 2.按照如下提示进行: ...

  8. MTK平台Android 安全中secure boot机制

    一.相关名词解释 1.公钥:通俗来说,公钥就是公开的密钥,是私钥拥有者公开的,公钥通常用于加密会话密钥.验证数字签名,或加密可以用相应的私钥解密的数据. 2.私钥:私有的钥匙,不会公开,私钥加密又称为 ...

  9. GP TEE中的几种存储方式介绍

    转载:https://cloud.tencent.com/developer/article/1043705 我们知道TEEOS最重要的功能莫过于安全存储了,这是一切安全的前提,根据存储安全性和使用场 ...

最新文章

  1. main函数的参数问题 (转载)
  2. Vue el-menu高亮设置及点击菜单项实现路由跳转
  3. 1.7 理解 Dropout-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  4. sqoop 增量导入,不重复
  5. 线性表实现一元多项式的表示及相加(C语言实现)【线性表】
  6. 循环语句until和while
  7. Android子线程真的不能更新UI么
  8. CookieValue注解
  9. 网站被写入恶意代码的主要原因及防范策略
  10. Reuse library debug in Chrome - phase2 handle success response (2)
  11. python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...
  12. ----斐波那契数列---eval函数----类递归思想 栈 进出 思想
  13. 关于微信小程序,一些想法
  14. 图像变换--灰度切割、位图切割
  15. 如何使用Snagit修剪视频?
  16. 大数据相加_清华大学黄高——图像数据的语义层扩增方法
  17. RTX客户端插件开发 for Delphi XE6 (一)
  18. PreRNN+:Towards A Resolution of the Deep-in-Dilemma in Saptiotemporal Predictive Learning
  19. 各品牌进入Bios方法,附U盘制作启动盘
  20. Smart-doc的脚本生成在线文档(精简官方文档描述)

热门文章

  1. Python小游戏——王校长的S8冠军奖杯【下】
  2. 5个商用字体网站分享
  3. AllenNLP系列文章之六:Textual Entailment(自然语言推理-文本蕴含)
  4. 详解Flutter中各种Binding
  5. android自动切换输入法,一种动态切换Android系统输入法的弹出模式的方法
  6. python fun函数、求4x4整型数组的主对角线元素的和_输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。...
  7. php手机模板修改,pc和手机模板自动切换
  8. 数据挖掘技术的算法与应用读书报告
  9. BIOS INT 10中断功能详解
  10. 手写数字识别Mnist数据集和读取代码分享