书刊介绍
《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解》内容简介
TrustZone技术是一种提高ARM芯片安全性的技术,OP-TEE是基于ARM的TrustZone技术搭建的可信执行环境。两者的结合可为系统软件提供硬件级别的安全保护。本书主要分为4篇,总计25章,第一篇介绍了TrustZone技术的背景、实现原理、系统基本框架以及OP-TEE开发环境的搭建;第二篇分析了OP-TEE在REE和TEE中各组件的作用和联系,为将OP-TEE集成到基于ARMv7/ARMv8处理器的开发平台打下基础;第三篇详细介绍OP-TEE内核的中断处理、进程管理和通信等主要功能的实现原理,使读者对TEEOS的架构设计有进一步的认识;第四篇介绍基于OP-TEE在加密、解密、安全存储、在线支付等方面的实际应用,以及如何开发基于OP-TEE的可信应用程序和安全驱动软件。本书适合以ARM芯片为核心的手机或嵌入式系统功能与应用开发人员和技术支持人员,以及有志于研究和学习ARM芯片安全技术的大专院校学生。
帅峰云,黄腾,宋洋编著。作品目录
推荐序
前言
致谢
第一篇
基础技术篇
第1章:可信执行环境
1.1、系统存在的安全问题
1.2、TEE如何保护数据安全
1.3、现有TEE解决方案
1.4、为什么选择OP-TEE
第2章:ARM的TrustZone技术
2.1、TrustZone技术
2.2、ARM安全扩展组件
2.3、TrustZone技术对资源隔离的实现
2.4、小结
第3章:ARM可信固件
3.1、为什么使用ATF
3.2、ATF的主要功能
3.3、ATF与TEE的关系
3.4、小结
第4章:OP-TEE运行环境的搭建及编译
4.1、获取OP-TEE代码并搭建运行环境
4.2、运行CA和TA示例
4.3、OP-TEE源代码结构
4.4、OP-TEE编译
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章:安全引导功能及ATF的启动过程
6.1、安全引导的作用
6.2、安全引导的原理
6.3、ATF的启动过程
6.4、小结
第7章:OP-TEE
OS的启动过程
7.1、OP-TEE镜像启动过程
7.2、ARM64位与ARM32位OP-TEE启动过程的差异
7.3、小结
第8章:OP-TEE在REE侧的上层软件
8.1、OP-TEE的软件框架
8.2、REE侧libteec库提供的接口
8.3、REE侧的守护进程——tee_supplicant
8.4、各种RPC请求的处理
8.5、小结
第9章:REE侧OP-TEE的驱动
9.1、OP-TEE驱动模块的编译保存
9.2、REE侧OP-TEE驱动的加载
9.3、REE侧用户空间对驱动的调用过程
9.4、OP-TEE驱动中重要的结构体变量
9.5、OP-TEE驱动与OP-TEE之间共享内存的注册和分配
9.6、libteec库中的接口在驱动中的实现
9.7、tee_supplicant接口在驱动中的实现
9.8、小结
第三篇
OP-TEE内核篇
第10章:ARM核安全态和非安全态间的切换
10.1、ARMv7基本知识
10.2、Monitor模式下的处理过程
10.3、ARMv8基本知识
10.4、EL3的处理过程
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.6、小结
第12章:OP-TEE对中断的处理
12.1、系统的中断处理
12.2、中断控制器
12.3、异常向量表配置
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.2、调用TA命令操作在OP-TEE中的实现
13.3、关闭会话操作在OP-TEE中的实现
13.4、小结
第14章:OP-TEE的内存和缓存管理
14.1、物理内存和缓存数据的硬件安全保护
14.2、ARM核对内存的访问
14.3、OP-TEE对内存区域的管理
14.4、MMU的初始化和映射页表
14.5、OP-TEE内存安全权限检查
14.6、系统的共享内存
14.7、数据是否需要写入Cache
14.8、小结
第15章:OP-TEE中的线程管理
15.1、OP-TEE中的线程
15.2、线程状态切换
15.3、线程运行时的资源
15.4、线程运行时资源的使用关系
15.5、OP-TEE中线程的调度
15.6、线程的死锁
15.7、小结
第16章:OP-TEE的系统调用
16.1、OP-TEE系统调用的作用
16.2、OP-TEE系统调用的实现
16.3、小结
第17章:OP-TEE的IPC机制
17.1、IPC机制的作用
17.2、IPC机制的原理
17.3、IPC的实现
17.4、小结
第四篇
应用开发篇
第18章:TA镜像的签名和加载
18.1、TA镜像文件的编译和签名
18.2、TA镜像的加载
18.3、TA镜像合法性的验证
18.4、加载TA镜像到OP-TEE的用户空间
18.5、TA运行上下文的初始化
18.6、小结
第19章:OP-TEE中的密码学算法
19.1、算法使用示例
19.2、OP-TEE中的SHA算法
19.3、OP-TEE中的AES算法
19.4、OP-TEE中的RSA算法
19.5、小结
第20章:OP-TEE的安全存储
20.1、安全存储简介
20.2、安全存储使用示例
20.3、安全存储功能使用的密钥
20.4、安全文件、dirf.db文件的数据格式和操作过程
20.5、安全存储文件的创建
20.6、安全文件的打开操作
20.7、安全文件的读写操作
20.8、安全文件中数据的加解密
20.9、小结
第21章:可信应用及客户端应用的开发
21.1、TA及CA的基本概念
21.2、GP标准
21.3、GP标准对TA属性的定义
21.4、GP标准定义的接口
21.5、TA和CA的实现
21.6、TA和CA的集成
21.7、TA和CA的调试
21.8、TA和CA的使用
21.9、小结
第22章:安全驱动的开发
22.1、安全设备的硬件安全隔离
22.2、OP-TEE中安全驱动的框架
22.3、安全驱动的开发过程和示例
22.4、安全驱动示例的测试
22.5、小结
第23章:终端密钥在线下发系统
23.1、密钥在线下发系统的框架
23.2、密钥在线下发的数据包格式
23.3、密钥在线下发系统示例
23.4、离线工具的使用
23.5、小结
第24章:基于OP-TEE的在线支付系统
24.1、在线支付系统的基本框架
24.2、可信通信通道
24.3、数据交互协议
24.4、在线支付系统示例的实现
24.5、示例的集成
24.6、组包操作嵌入内核
24.7、支付系统与生物特征的结合
24.8、小结
第25章:TEE可信应用的使用领域
25.1、在线支付
25.2、数字版权保护
25.3、身份验证
25.4、其他领域
术语表