主页 详情

《手机安全和可信应用开发指南 TrustZone与OP-TEE技术详解》_帅峰云,黄腾,宋洋编著_14493108_9787111609568

【书名】:《手机安全和可信应用开发指南 TrustZone与OP-TEE技术详解》
【作者】:帅峰云,黄腾,宋洋编著
【出版社】:北京:机械工业出版社
【时间】:2018
【页数】:348
【ISBN】:9787111609568
【SS码】:14493108

最新查询

内容简介

第一篇 基础技术篇

第1章 可信执行环境

1.1系统存在的安全问题

1.2 TEE如何保护数据安全

1.3现有TEE解决方案

1.3.1智能手机领域的TEE

1.3.2智能电视领域的TEE

1.3.3 IoT领域及其他领域的TEE

1.4为什么选择OP-TEE

第2章ARM的TrustZone技术

2.1 TrustZone技术

2.1.1片上系统硬件框架

2.1.2 ARMv7架构的TrustZone技术

2.1.3 ARMv8架构的TrustZone技术

2.2 ARM安全扩展组件

2.2.1 AXI总线上安全状态位的扩展

2.2.2 AXI-to-APB桥的作用

2.2.3 TrustZone地址空间控制组件

2.2.4 TrustZone内存适配器组件

2.2.5 TrustZone保护控制器组件

2.2.6 TrustZone中断控制器组件

2.2.7 Cache和MMU的扩展

2.3 TrustZone技术对资源隔离的实现

2.3.1中断源的隔离

2.3.2片上RAM和片上ROM的隔离

2.3.3片外DRAM的隔离

2.3.4外围设备的隔离

2.4小结

第3章 ARM可信固件

3.1为什么使用ATF

3.2 ATF的主要功能

3.3 ATF与TEE的关系

3.4小结

第4章 OP-TEE运行环境的搭建及编译

4.1获取OP-TEE代码并搭建运行环境

4.1.1 OP-TEE开发环境的搭建

4.1.2获取OP-TEE的源代码

4.1.3获取编译OP-TEE的toolchain

4.1.4编译QEMU

4.1.5运行OP-TEE

4.1.6运行xtest和optee_example_hello_world

4.2运行CA和TA示例

4.2.1示例代码的获取和集成

4.2.2目录和文件创建

4.2.3 CA端代码的修改

4.2.4 TA端代码的修改

4.2.5 TA和CA在OP-TEE的集成

4.3 OP-TEE源代码结构

4.4 OP-TEE编译

4.4.1编译目标的依赖关系

4.4.2 bios.bin镜像的生成过程

4.4.3 run-only目标的执行

4.5小结

第二篇 系统集成篇

第5章 QEMU运行OP-TEE的启动过程

5.1 bios.bin的入口函数

5.2 OP-TEE镜像的加载和启动

5.3 Linux内核镜像的加载和启动

5.4 rootfs的挂载

5.5 OP-TEE驱动的启动

5.6 tee_ supplicant的启动

5.7小结

第6章 安全引导功能及AT F的启动过程

6.1安全引导的作用

6.2安全引导的原理

6.2.1 ARMv7安全引导的过程

6.2.2 ARMv8安全引导的过程

6.3 ATF的启动过程

6.3.1 ATF中bl1的启动

6.3.2 ATF中bl2的启动

6.3.3 ATF中bl31的启动

6.3.4 ATF中bl32的启动

6.3.5 ATF启动过程小结

6.4小结

第7章 OP-TEE OS的启动过程

7.1 OP-TEE镜像启动过程

7.1.1 OP-TEE OS的入口函数

7.1.2 OP-TEE的内核初始化过程

7.1.3 OP-TEE服务项的启动

7.1.4 OP-TEE驱动的挂载

7.2 ARM64位与ARM32位OP-TEE启动过程的差异

7.3小结

第8章 OP-TEE在REE侧的上层软件

8.1 OP-TEE的软件框架

8.2 REE侧libteec库提供的接口

8.2.1 libteec库提供的接口说明

8.2.2 CA调用libteec库中接口的流程

8.3 REE 侧的守护进程——tee_ supplicant

8.3.1 tee_ supplicant编译生成和自启动

8.3.2 tee_ supplicant入口函数

8.3.3 tee_ supplicant存放RPC请求的结构体

8.3.4 tee_ supplicant中的无限循环

8.3.5 tee_ supplicant获取TA的RPC请求

8.3.6 TA RPC请求的解析

8.3.7 RPC请求的处理

8.3.8回复RPC请求

8.4各种RPC请求的处理

8.4.1加载TA镜像

8.4.2操作REE侧的文件系统

8.4.3操作RPMB

8.4.4分配共享内存

8.4.5释放共享内存

8.4.6记录程序执行效率

8.4.7网络套接字操作

8.5小结

第9章 REE侧OP-TEE的驱动

9.1 OP-TEE驱动模块的编译保存

9.2 REE侧OP-TEE驱动的加载

9.2.1设备号和class的初始化

9.2.2 optee_ driver_ init函数

9.2.3挂载驱动的probe操作

9.2.4获取切换到Monitor模式或EL3的接口

9.2.5驱动版本和API版本校验

9.2.6判定OP-TEE是否预留共享内存空间

9.2.7配置驱动与OP-TEE之间的共享内存

9.2.8分配和设置tee0和teepriv0的设备信息结构体变量

9.2.9 tee0和teepriv0设备的注册

9.2.10请求队列的初始化

9.2.11使能TEE中共享内存的缓存

9.2.12 OP-TEE驱动挂载的总结

9.3 REE侧用户空间对驱动的调用过程

9.4 OP-TEE驱动中重要的结构体变量

9.4.1 OP-TEE驱动的file_ operation结构体变量tee_fops

9.4.2 tee0设备的tee_ driver_ops结构体变量optee_ ops

9.4.3 teepriv0设备的操作结构体变量optee_ supp_ ops

9.4.4共享驱动缓存操作变量tee_shm_dma_buf_ops

9.5 OP-TEE驱动与OP-TEE之间共享内存的注册和分配

9.6 libteec库中的接口在驱动中的实现

9.6.1 libteec库中的open操作

9.6.2 libteec库中的release操作

9.6.3 libteec执行get_ version操作

9.6.4 libteec库中的open session操作

9.6.5 libteec库中的invoke操作

9.7 tee_ supplicant接口在驱动中的实现

9.7.1接收OP-TEE的RPC请求

9.7.2获取OP-TEE的RPC请求

9.7.3 OP-TEE的RPC请求的返回

9.8小结

第三篇OP-TEE内核篇

第10章 ARM核安全态和非安全态间的切换

10.1 ARMv7基本知识

10.1.1 ARMv7运行模式扩展

10.1.2安全状态位扩展

10.1.3重要寄存器

10.1.4安全监控模式调用的汇编指令

10.2 Monitor模式下的处理过程

10.2.1 Monitor模式对安全监控模式调用的处理

10.2.2正常世界状态中触发安全监控模式调用的处理过程

10.2.3安全世界状态中触发安全监控模式调用的处理过程

10.3 ARMv8基本知识

10.3.1 ARM核运行模式的新定义

10.3.2 ARMv8安全状态位扩展

10.3.3寄存器资源

10.3.4安全监控模式调用汇编指令

10.4 EL3的处理过程

10.4.1 ATF中EL3异常向量表的注册

10.4.2 EL3处理安全监控模式调用的流程

10.4.3安全世界状态中触发安全监控模式调用的处理过程

10.4.4正常世界状态中触发安全监控模式调用的处理过程

10.4.5 opteed_smc_handler函数

10.5小结

第11章 OP-TEE对安全监控模式调用的处理

11.1 OP-TEE的线程向量表

11.2 ARMv7中Monitor模式对安全监控模式调用的处理

11.3 ARMv8中EL3处理安全监控模式调用的实现

11.4 OP-TEE对快速安全监控模式调用的处理

11.5 OP-TEE对标准安全监控模式调用的处理

11.5.1 OP-TEE对RPC请求返回操作的处理

11.5.2 OP-TEE对libteec库触发的安全监控模式调用的处理

11.6小结

第12章 OP-TEE对中断的处理

12.1系统的中断处理

12.2中断控制器

12.2.1 GIC寄存器

12.2.2 ARMv7 SCR寄存器的设定

12.2.3 ARMv8 SCR寄存器的设定

12.2.4 GICv2架构

12.2.5 GICv3架构

12.3异常向量表配置

12.3.1 ARMv7中Monitor模式的异常向量表

12.3.2 ARMv8中EL3阶段的异常向量表

12.3.3 OP-TEE异常向量的配置

12.4 OP-TEE的线程向量表

12.5全局handle变量的初始化

12.6 ARMv7 Monitor对FIQ事件的处理

12.7 ARMv8 EL3阶段对FIQ事件的处理

12.8 OP-TEE对FIQ事件的处理

12.9 OP-TEE对IRQ事件的处理

12.10小结

第13章 OP-TEE对TA操作的各种实现

13.1创建会话在OP-TEE中的实现

13.1.1静态TA的创建会话操作

13.1.2动态TA的创建会话操作

13.2调用TA命令操作在OP-TEE中的实现

13.2.1静态TA的调用命令操作的实现

13.2.2动态TA的调用命令操作实现

13.3关闭会话操作在OP-TEE中的实现

13.3.1静态TA的关闭会话操作

13.3.2动态TA的关闭会话操作

13.4小结

第14章 OP-TEE的内存和缓存管理

14.1物理内存和缓存数据的硬件安全保护

14.1.1内存设备安全区域的隔离

14.1.2 MMU和缓存中数据的安全隔离

14.2 ARM核对内存的访问

14.2.1 ARM核获取内存数据的过程

14.2.2获取缓存数据的过程

14.2.3缓存和TLB中条目的一致性

14.3 OP-TEE对内存区域的管理

14.3.1 OP-TEE中内存区域的类型

14.3.2内存区域编译设置

14.4 MMU的初始化和映射页表

14.4.1 MMU的初始化入口函数

14.4.2物理地址到虚拟地址表的建立

14.4.3 MMU转换页表的创建

14.4.4 MMU寄存器配置

14.5 OP-TEE内存安全权限检查

14.6系统的共享内存

14.6.1共享内存的配置

14.6.2 OP-TEE驱动与OP-TEE之间的共享内存

14.6.3 OP-TEE内核空间与用户空间之间的共享内存

14.7数据是否需要写入Cache

14.8小结

第15章 OP-TEE中的线程管理

15.1 OP-TEE中的线程

15.2线程状态切换

15.2.1 Free态到Active态的实现

15.2.2 Active态到 Suspend态的实现

15.2.3 Suspend态到Active态的实现

15.2.4 Active态到Free态的实现

15.3线程运行时的资源

15.3.1线程数据结构体

15.3.2 OP-TEE分配的内核栈

15.3.3线程运行于用户空间的资源

15.3.4 tee ta session结构体

15.4线程运行时资源的使用关系

15.5 OP-TEE中线程的调度

15.6线程的死锁

15.6.1死锁的原理

15.6.2防止死锁

15.7小结

第16章 OP-T EE的系统调用

16.1 OP-TEE系统调用的作用

16.2 OP-TEE系统调用的实现

16.2.1系统调用的整体流程

16.2.2系统调用的定义

16.2.3系统调用表tee_ sv_ syacall_table

16.3小结

第17章 OP-TEE的IPC机制

17.1 IPC机制的作用

17.2 IPC机制的原理

17.3 IPC的实现

17.3.1 TA调用其他TA的实现

17.3.2 TA调用系统服务和安全驱动的实现

17.3.3 TA对密码学系统服务的调用实现

17.3.4对SE功能模块进行操作的系统服务

17.3.5加载TA镜像的系统服务

17.4小结

第四篇 应用开发篇

第18章 TA镜像的签名和加载

18.1 TA镜像文件的编译和签名

18.1.1 TA镜像文件的编译

18.1.2对TA镜像文件的签名

18.2 TA镜像的加载

18.2.1 REE侧获取TA镜像文件的内容

18.2.2加载TA镜像的RPC请求

18.2.3 RPC请求的发送

18.2.4读取TA镜像文件内容到共享内存

18.3 TA镜像合法性的验证

18.3.1验证TA镜像合法性使用的RSA公钥的产生和获取

18.3.2 TA镜像文件合法性的检查

18.4加载TA镜像到OP-TEE的用户空间

18.5 TA运行上下文的初始化

18.6小结

第19章 OP-TEE中的密码学算法

19.1算法使用示例

19.1.1示例代码获取和集成

19.1.2板级编译文件的修改

19.1.3通用编译文件的修改

19.1.4编译运行

19.2 OP-TEE中的SHA算法

19.2.1 TA中使用SHA算法的实现

19.2.2 SHA算法实现接口说明

19.3 OP-TEE中的 AES算法

19.3.1 TA中使用AES算法的实现

19.3.2 AES算法实现接口说明

19.4 OP-TEE中的RSA算法

19.4.1 TA中使用RSA算法的实现

19.4.2 RSA算法实现接口说明

19.5小结

第20章 OP-TEE的安全存储

20.1安全存储简介

20.2安全存储使用示例

20.2.1示例代码获取和集成

20.2.2板级编译文件的修改

20.2.3通用编译文件的修改

20.2.4编译运行

20.3安全存储功能使用的密钥

20.3.1安全存储密钥

20.3.2可信应用的存储密钥

20.3.3文件加密密钥

20.4安全文件、dirf. db文件的数据格式和操作过程

20.4.1 dirf. db文件和安全文件的格式

20.4.2安全存储功能中使用的重要结构体

20.4.3安全存储中的文件节点组成

20.4.4查询安全文件中的特定数据块

20.5安全存储文件的创建

20.5.1安全存储软件框架

20.5.2 dirf.db文件的创建

20.5.3安全文件的创建

20.6安全文件的打开操作

20.6.1安全文件的打开

20.6.2打开dirf.db文件并建立节点树

20.6.3安全文件在/data/tee目录下的文件编号

20.6.4打开特定安全文件

20.7安全文件的读写操作

20.7.1安全文件中数据的读取

20.7.2安全文件中数据的写入

20.8安全文件中数据的加解密

20.8.1各种类型数据的组成及作用

20.8.2元数据的加密

20.8.3数据块区域的加密策略

20.9小结

第21章 可信应用及客户端应用的开发

21.1 TA及CA的基本概念

21.2 GP标准

21.3 GP标准对TA属性的定义

21.4 GP标准定义的接口

21.4.1 GP定义的客户端接口

21.4.2 GP定义的内部接口

21.5 TA和CA的实现

21.5.1建立CA和TA的目录结构

21.5.2 CA代码的实现

21.5.3 TA代码的实现

21.6 TA和CA的集成

21.6.1 CA和TA的Makefile的修改

21.6.2 OP-TEE中comm.mk和xxx.mk文件的修改

21.7 TA和CA的调试

21.8 TA和CA的使用

21.9小结

第22章 安全驱动的开发

22.1安全设备的硬件安全隔离

22.2 OP-TEE中安全驱动的框架

22.2.1系统服务层

22.2.2驱动层

22.2.3驱动文件在源代码中的位置

22.3安全驱动的开发过程和示例

22.3.1示例代码获取和集成

22.3.2驱动实现

22.3.3添加系统服务

22.3.4添加系统调用

22.3.5 测试使用的TA和CA

22.4安全驱动示例的测试

22.5小结

第23章 终端密钥在线下发系统

23.1密钥在线下发系统的框架

23.2密钥在线下发的数据包格式

23.3密钥在线下发系统示例

23.3.1示例代码获取和集成

23.3.2板级编译文件的修改

23.3.3通用编译文件的修改

23.3.4编译运行

23.4离线工具的使用

23.5小结

第24章 基于OP-TEE的在线支付系统

24.1在线支付系统的基本框架

24.2可信通信通道

24.3数据交互协议

24.3.1数据头部区域

24.3.2数据区域

24.3.3电子签名区域

24.3.4交互数据包的格式

24.4在线支付系统示例的实现

24.4.1第一次握手请求

24.4.2第二次握手数据的解析

24.4.3第三次握手请求

24.4.4支付请求

24.4.5支付反馈

24.5示例的集成

24.5.1示例代码的获取和集成

24.5.2板级编译文件的修改

24.5.3通用编译文件的修改

24.5.4编译运行

24.5.5示例支持的命令说明

24.5.6服务器端工具

24.6 组包操作嵌入内核

24.7支付系统与生物特征的结合

24.8小结

第25章 TEE可信应用的使用领域

25.1在线支付

25.2数字版权保护

25.3身份验证

25.4其他领域

术语表


书查询(www.shuchaxun.com)本网页唯一编码:
c3b85e733a7ddc5522653e5e34dbce8d#0d698e1474b460fcf75551c8c30aff35#42844870#14493108.zip