书籍作者:帅峰云 黄腾 宋洋 | ISBN:9787111609568 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7698 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
近年来随着指纹支付的盛行,如支付宝、微信支付等,可信执行环境(Trusted Execution Environment,TEE)被广泛应用在手机、平板电脑等移动终端设备中。尤其是近年来谷歌对系统安全问题越来越重视,可信执行环境已成为谷歌提升系统安全性的重要技术之一,包含为人熟知的keymaster、gatekeeper等,未来在Android P上还会引入基于TUI(Trusted User Interface)衍生的Confirmation UI,此将会为使用者提供更好的安全体验。
可信执行环境是一个典型的软硬件协同合作的概念,基于ARM的TrustZone技术为系统提供资源的物理隔离,将系统执行环境区隔为安全区域和非安全区域。开发者通过使用安全操作系统(secure OS)提供的API开发更多的可信应用来实现特定的安全功能。系统的安全是环环相扣的信任链,从设备开机的安全引导到安全操作系统的安全性验证,一直到软件开发者开发的软件安全性验证,每层相扣,而可信执行环境为可信应用提供了一个基础且可信任的执行环境。
未来TEE的发展方向是多元的,TEE的应用也会进入更多的产业,除了目前大热的指纹识别之外,系统也会引入更多的生物识别技术,如虹膜与人脸识别,从摄像头获取图像到识别演算的整个过程都会在TEE中完成。此外TUI也是重要的方向之一,使用者如何确认所见即所支付,确认的支付金额或转账账号不会被别人攻击或修改,都是相当重要的安全需求。除了移动终端设备之外,车载系统和IoT设备也都有对应的安全需求,因此在可遇见的未来,TEE将会被广泛应用到不同领域、不同的电子设备中。
此外,安全应用的开发者如何将安全应用广泛部署到不同的设备中,以及如何安全升级它们也相当重要。当发现了软件漏洞,如何第一时间更新安全应用并避免版本回滚的攻击,是系统安全的一个重要议题,目前商用TEE的生态、安全应用的签名密钥都掌握在设备制造商手中,而安全应用的独立在线下发和更新,将是未来的重要技术发展方向。
机缘巧合,我认识峰云已经有相当久的时间了,他对TEE的了解相当深入,也相当用心地完成了该书,遇到有疑问与不理解的地方,他会想方设法地找出答案,他的专业与用心深受大家的肯定与赞赏。本书涵盖了TEE的硬件和软件知识,通过OP-TEE开源项目的协助,读者可以通过理论与实践的结合,深入理解TEE的原理、设计与应用。期望通过本书的出版,能够让更多人了解与接触TEE的相关知识,进而发现更多的应用场景,享受更多的安全服务,让未来的生活在因为科技更方便的同时,使用者的隐私与安全也能得到保护。
邱国政(Koshi)
Trustonic中国OEM经理
早在2014年,投资过Facebook、Skype、Twitter等的风投公司创始人安德森就说:“移动正在吞噬这个世界”(mobile is eating the world)。这毫不夸张,全球范围内移动设备的数量已经超过了世界人口的总和。在如今信息化技术高速发展的时代,人们的生活越来越离不开智能手机,越来越多的业务从原先复杂的流程演变到现在只需要简单地在手机上按几个按键。技术是一把双刃剑,总能给人带来难以想象的便利,但便利总是伴随着用户隐私的泄漏、身份认证的滥用等一系列的安全风险。据著名安全漏洞报告机构FreeBuf 2017年度移动应用程序安全漏洞与数据泄漏状况报告指出,多达88%的金融类App存在内存敏感数据泄漏问题,娱乐类移动应用程序更是安全漏洞的重灾区,社交类App被仿冒的概率比其他类别平均高出10倍以上。如何保障移动设备的安全,提高安全认证程序的可靠性,一直是近几年的热门话题。
由嵌入式处理器最大的设计商ARM公司提出的硬件虚拟化扩展技术TrustZone,发展到现在已经有十余年的光景,如今已成为智能手机平台不可或缺的部分。从Android 7.0开始,谷歌就明确表示,Android设备上有关生物特征(指纹、虹膜等)识别的方案一定要基于可信执行环境(Trust Execution Environment,TEE)来实现。TEE就是基于TrustZone技术建立的具有更高安全级别的可信执行环境,运行在TEE环境下的应用称为可信应用程序(Trusted Application,TA)。随着TEE可信应用开发的API的普及,国内越来越多的手机厂商开始集成TEE以及相关的可信应用。TEE环境的提供商也越来越多,从先前国外的Trustonic TEE、高通QSEE到现在国内的豆荚、华为、瓶钵等,可以说TEE的技术开发门槛在降低,应用热度在提高。在众多TEE产品方案中,有一个优秀的开源方案逐渐进入人们的视野,那就是OP-TEE。OP-TEE(Open Platform Trusted Execution Environment)由ST-Ericsson创建,由STMicroelectronics维护,2014年ARM的开源社区Linaro将OP-TEE方案开源。截至目前,OP-TEE一直是Linaro社区在维护的核心安全项目之一。目前看来,进入TEE领域最好的方式就是学习成熟的OP-TEE方案。作者便是在学习OP-TEE的过程中完成了本书,旨在为后继的入门者扫除一些障碍。
本书组织结构
本书将采取由浅入深的方式介绍TrustZone技术的原理、OP-TEE的整体架构及其主要功能模块的原理,同时介绍如何基于OP-TEE进行可信应用、客户端应用(Client Application,CA)、安全驱动等功能的开发。
本书主要分为四篇,总计25章,各篇的主要内容分别如下。
第一篇,基础技术篇(第1章~第4章),包含TrustZone技术的背景和实现原理、系统基本框架以及OP-TEE环境的搭建。
第二篇,系统集成篇(第5章~第9章),分析OP-TEE在REE和TEE中各个组件的作用和联系,对于有一定嵌入式以及Linux/Android开发经验的读者,该篇实质上给将OP-TEE集成到基于ARMv7/ARMv8处理器的开发平台打下基础。
第三篇,OP-TEE内核篇(第10章~第17章),包含OP-TEE内核的中断处理、线程管理和通信等主要功能的实现原理,使读者对TEE OS的架构设计有进一步认识。
第四篇,应用开发篇(第18章~第25章),介绍基于OP-TEE在加密、解密、安全存储等方面的实际应用,以及如何开发基于OP-TEE的可信应用程序。如果对OP-TEE有一定了解的读者希望通过实践开发来了解TEE的工作原理,可以直接从应用开发篇学习。
OP-TEE的代码量远没有Linux内核大,但其涉及的设计之复杂、模块之丰富也不是本书能完全涵盖的。我们的初衷是希望通过本书对重要模块的代码和流程进行分析,使读者对OP-TEE的架构有整体的认识,之后看到其他部分也能做到举一反三。
本书的主要代码均引用自GitHub上OP-TEE开源项目的源代码(链接:https://github.com/OP-TEE/optee_os),作者在翻译了一些代码英文注释的基础上根据自己的理解对部分代码补充了更多的注释。如果读者对书中代码的中文注释有疑问,可参考上述链接中的原始代码和注释。另外,OP-TEE也有详细的文档资料(https://github.com/OP-TEE/optee_os/tree/master/documentation ),强烈建议英文基础好的读者结合本书和官方文档来学习。如发现本书有纰漏和错误,或者需要改进之处,希望读者不吝指出。
本书特色
俗话说,基础打不牢,学问攀不高。本书采取自下而上的方式从硬件的角度介绍了TrustZone技术,并结合源代码逐步剖析了基于TrustZone技术的OP-TEE实现。在技术深度上,本书从入门者的角度出发由浅入深,从最基础的开发环境的搭建到最终的OP-TEE OS的内部实现都进行了介绍;从内容易读性上来讲,本书提供了基础的示例代码和各种算法的使用示例,并给出了所有示例的源代码链接及操作的实验步骤。相信读者通过边学习边实践的方式阅读完本书后,能够掌握TrustZone技术的基础原理和使用OP-TEE进行实际的应用开发。
由于任何TEE方案的源代码都属于芯片厂商的商业机密,外界无法一览各TEE方案的实现原理,且TrustZone也是最近几年才被正式商用的,所以网上的资料较少。本书是作者基于多年的工作积累并对实际工作过程中遇见的问题进行整理后形成的。
本书读者对象
手机、嵌入式系统和芯片开发者及技术支持人员;
手机和嵌入式系统安全与可信应用(支付系统、多媒体及身份识别等)开发人员;
相关专业安全技术研究者和大专院校学生;
广大关心安全技术的爱好者。