trustzone与OP-TEE介绍导读

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

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

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

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

非常感谢在此期间大家的支持以及各位友人的支持和帮助!!!。 若觉得书中内容有错误的地方,欢迎大家指出,私信或者在博文中留言联系方式亦可发邮件至:[email protected],多谢各位了!!!!我会第一时间处理。书中最新的勘误会发布在《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解》 勘误一文中,书中所用的OP-TEE代码已经上传到百度云盘,读者可自行下载:

OP-TEE网盘地址

提取码: cd94

 

 

          如果系统芯片支持trustzone技术且支持TEE,那么TEE将在系统中提供一个安全的运行环境,用于保护系统中的重要数据和安全操作。通常一个完成的系统除了有bootloader和kernel,recovery以及上层android系统之外还需要有TEE OS。系统启动的时候使用secure boot功能来保护整个系统的image不被恶意篡改。OP-TEE是借助trustzone技术实现的一种TEE方案。而TEE又属于整个系统中的一个部分,可以看作是与linux kernel同一个层面。本文将介绍如何有序的阅读OP-TEE相关的文章以便理解整个OP-TEE的具体实现。本系列的所有code和demo都是基于OP-TEE 2.4版本,不同版本的OP-TEE可能目录结果或者内容有所不同,所以在使用本博文中的用例时,请务必核对版本

本专栏中所有的示例代码中都有相关的patch,读者只需合入build/qemu.mk和build/common.mk的补丁就可以完成相关的集成操作

    由于OP-TEE的更新导致示例代码无法正常运行,读者可按照《0.使用Qemu运行OP-TEE》一文中的配置获取到代码,提供的示例代码的补丁已经在op-tee tag 2.6.0中更新

1. 环境搭建篇

  《0.使用Qemu运行OP-TEE

2. OP-TEE的使用篇

  《2.OP-TEE中添加自己的TA和CA

  《35.OP-TEE中基本算法接口调用实现

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

3. OP-TEE编译篇

  《1.OP-TEE代码结构

  《3.OP-TEE+qemu的编译--工程编译target依赖关系

  《4.OP-TEE+qemu的编译--bios.bin镜像的编译

4. qemu运行OP-TEE的启动过程篇

  《5.OP-TEE+qemu的启动过程分析--run-only目标执行

  《6.OP-TEE+qemu的启动过程分析--加载bios.bin

  《7.OP-TEE+qemu的启动过程分析--加载optee_os和rootfs

  《8.OP-TEE+qemu的启动过程分析--启动linux-kernel

5. OP-TEE OS的启动过程篇

  《10.OP-TEE-OS启动(一)

  《11.OP-TEE-OS启动(二)

  《12.OP-TEE-OS启动(三)--service-init

  《13.OP-TEE-OS启动(四)--service-init_late

  《14.OP-TEE-OS启动(五)--driver-init和driver-init_late

6. OP-TEE实现的硬件基础篇

  《trustzone的硬件框架和安全扩展

7. ATF的启动以及OP-TEE的加载篇

  《1.ATF(ARM-Trusted-firmware)完成启动流程

  《2.ATF(ARM-Trusted-firmware)启动---bl1

  《3.ATF(ARM-Trusted-firmware)启动---bl2

  《4.ATF(ARM-Trusted-firmware)启动---bl2到bl31的跳转

  《5.ATF(ARM-Trusted-firmware)启动---bl31

  《6.ATF(ARM-Trusted-firmware)启动---bl32(OP-TEE)

8. secure world与normal world执行流程篇

  《9.OP-TEE中CA接口调用的完整流程----系统各层面关系

9. REE侧userspace接口篇

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

  《20.OP-TEE中TA与CA执行流程-------CA部分的代码篇

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

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

  《23.OP-TEE中TA与CA执行流程-------tee-supplicant(TA请求具体请求的处理)

10 REE侧op-tee驱动篇

  《24.OP-TEE驱动篇----驱动编译,加载和初始化(一)

  《25.OP-TEE驱动篇----驱动编译,加载和初始化(二)

  《26.OP-TEE驱动篇----libteec和tee_supplicant调用驱动流程和重要结构体

  《27.OP-TEE驱动篇----libteec接口在驱动中的实现

  《28.OP-TEE驱动篇----tee_supplicant接口在驱动中的实现

11. normal world与secure world切换过程篇

  《18.OP-TEE中secur-world和non-secure-world的切换过程

12. REE和TEE对中断的处理篇

  《15.OP-TEE中的中断处理(一)------中断配置和向量表的配置

  《16.OP-TEE中的中断处理(二)------系统FIQ事件的处理

  《17.OP-TEE中的中断处理(三)------系统IRQ事件的处理

13.TEE侧对smc的处理篇

  《29.secure-world对smc请求的处理------monitor模式中的处理

  《30.secure-world对smc请求的处理------OP-TEE对fast-smc请求的处理

  《31.secure-world对smc请求的处理------OP-TEE对标准smc(std-smc)请求的处理

14. REE侧userspace的请求在TEE侧的实现篇

  《32.secure-world对smc请求的处理------open-session操作在OP-TEE中的实现

  《33.secure-world对smc请求的处理------invoke-command操作在OP-TEE中的实现

15. TEE侧userspace与kernelspace调用篇

  《34.OP-TEE中system-call的实现

16. OP-TEE中的安全存储的实现

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

  《37.OP-TEE中secure-stroage------安全存储使用的key的产生

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

  《39.OP-TEE中secure-stroage------安全文件数据的打开过程(open)

  《40.OP-TEE中secure-stroage------读写安全文件数据(read and write)

  《41.OP-TEE中secure-stroage------安全文件中数据的加密操作

  《42.OP-TEE中secure-stroage------安全文件的创建

17. TA镜像文件的签名和验签

《43.TA镜像文件的签名》

《44.TA镜像文件加载时的验证》

 

你可能感兴趣的:(OP-TEE,trustzone,ATF(ARM,Trusted,firmware),ARM,TrustZone技术)