下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 移动开发 >Android > Android 安全架构深究

Android 安全架构深究

综合评级:★★★★★

定价:89.00

作者:(美)Nikolay Elenkov(尼古拉 埃伦科夫 ) 著,刘惠明 刘跃 译

出版社:电子工业出版社

出版日期:2016年1月

页数:392

字数:560000

ISBN:9787121279447

书籍介绍
本书自底向上描述了Android 的安全架构,深入探究与安全相关的Android 子系统、设备和数据组件的内部实现。其中包括包和用户管理,权限和设备策略,以及一些特殊机制——密码服务、凭据存储和安全元件的支持等。

本书面向所有对Android 安全体系架构感兴趣的读者,希望对Android 整体或子系统进行评估的安全研究员,以及致力于定制和扩展Android 的开发人员。读者**具有Linux 系统和安卓开发的相关知识。

相关课程
目录
引言 .................. XXV

第 1章 Android安全模型 ............................................. 1

Android体系结构 ........................................................ 1

Linux内核层 ........................................................ 2

原生用户空间层 .................................................. 3

Dalvik虚拟机 ....................................................... 3

java运行时库 ...................................................... 4

系统服务 .... 4

进程间通信 4

Binder ......... 5

Android框架库 .................................................... 9

应用程序 .. 10

Android的安全模型介绍 .......................................... 11

应用程序沙箱 .................................................... 12

权限 .......... 14

IPC ............ 14

代码签名和平台密钥 ........................................ 15

多用户支持 ........................................................ 15

SELinux .... 16

系统更新 .. 16

验证启动模式 .................................................... 17

总结 .................. 18

第2章 权限 ...... 19

权限的本质 ...... 19

权限申请 .......... 20

权限管理 .......... 21

权限的保护级别 ........................................................ 22

权限的赋予 ...... 24

权限执行 .......... 29

内核层的权限执行 ............................................ 29

原生守护进程级别的权限执行 ......................... 30

框架层的权限执行 ............................................ 32

系统权限 .......... 36

signature权限 ..................................................... 37

development权限 ............................................... 38

共享用户 ID ..... 38

自定义权限 ...... 41

公开和私有组件 ........................................................ 42

activity和 service权限 .............................................. 43

广播权限 .......... 44

content provider权限 ................................................. 45

静态 provider权限 ............................................. 46

动态 provider权限 ............................................. 47

pending intent ... 48

总结 .................. 50

第3章 包管理机制 ..................................................... 51

Android应用程序包文件的格式 .............................. 51

代码签名 .......... 53

Java代码签名 .................................................... 53

Android代码签名 .............................................. 59

APK的安装过程 ....................................................... 61

应用程序包和数据的位置 ................................. 62

活动组件 .. 63

安装一个本地包 ................................................ 66

更新包 ...... 72

安装加密的 APK ............................................... 76

转发锁定 .. 79

Android 4.1转发锁定实现 ................................ 80

加密的 app和 Google Play ............................... 82

包验证 .............. 83

Android对包验证的支持 .................................. 84

Google Play实现 ................................................ 85

总结 .................. 85

第 4章 用户管理 ......................................................... 87

多用户支持概述 ........................................................ 87

用户类型 .......... 89

主用户(持有者) ............................................ 89

次要用户 .. 90

受限用户 .. 91

访客用户 .. 93

用户管理 .......... 93

命令行工具 ........................................................ 94

用户状态和相关广播 ........................................ 94

用户元数据 ...... 95

用户清单文件 .................................................... 95

用户元数据文件 ................................................ 96

用户系统目录 .................................................... 97

每个用户的应用程序管理 ........................................ 98

应用程序数据目录 ............................................ 98

应用共享 100

外存 ................ 102

外存实现 103

多用户外存 ...................................................... 103

外存权限 109

其他多用户特性 ...................................................... 111

总结 ................ 111

第 5章 加密服务 ....................................................... 112

JCA Provider结构 .................................................... 112

加密服务 Provider............................................ 113

JCA引擎类 .... 115

获得引擎类实例 .............................................. 115

算法名称 116

SecureRandom .................................................. 117

MessageDigest ..........................................

前言
推荐语

本书全面介绍了 Android体系架构的攻防,涉及 root、SEAndroid的加密解密等核心安全问题,是为数不多的深入讲解安卓底层安全的书籍。作者和译者都是业界资深专家,原文精彩、译文流畅,相关从业者均值得一读。

——乌云知识库

国内安全圈对攻防的热衷程度很高,但经典的安全架构大多来自国外,实际上攻防和安全建设并不能画等号,这也是国内安全设计人才极少的原因。而这本书正是从经典安全设计的角度,提供了较为系统化的分析,对于想积累软件安全体系架构的视野以及从事安全架构设计的从业人员来说都是很好的参考书,对移动安全领域的研究者或移动平台开发者同样适用。

——赵彦 华为云安全首席架构师

Android安全作为近年来的热门领域涌现出了大批优秀书籍,而本书则是其中新出现的佼佼者。本书在高层次上对 Android安全的上层架构做了详细介绍,是安全研究人员挖掘分析漏洞的优秀学习参考资料,ROM开发人员和 App开发者也可以通过阅读本书加深对 Android安全体系这个复杂而庞大结构的认识,从而减少漏洞的产生,设计出更安全的系统和 App,从而给用户以更好的保护。作者和译者均在 Android领域有着丰富的经验,相信会让读者受益良多。

——何淇丹(Flanker) KeenLab(原KeenTeam)高级研究员、谷歌 Android安全名人堂成员、Blackhat演讲者

通过本书,我们可以深度了解 Android的整个体系结构,并从中找到读者在研发及安全加固时所需要的资料与知识。如本书中的 EAP可扩展认证协议部分,通过对此架构的理解,你将对 Android对企业安全的支持有更深刻的认识,对研发以 Android为平台的企业安全产品有指导性的作用。本书关于 Android的 NFC协议栈的知识,建议各位读者认真阅读,这将是 Android体系中*有趣的部分,通过对该协议栈的掌握,你或许可以实现利用一台 Android手机的 NFC模块模拟一张自己的门禁卡这样炫酷的事情。

——杨卿(Ir0nSmith) 360独角兽团队(UnicornTeam)创始人

《Android安全架构深究》这本书一直是学习安卓安全的必备图书之一,很荣幸读到中文版。这本书深入讲解了 Android的安全架构,从 Android安全模型的介绍到相关权限、签名、用户管理、更新等机制无所不包。推荐每个学习安卓安全的读者都能好好阅读本书,相信对大家在 Android安全方面的技术进阶**能起到极大助益。

——张祖优(Fooying) 知道创宇安全研究员、Sebug 负责人

作为当今*流行的开放操作系统平台,Android驱动着数以亿计的设备工作。这样一个充满魅力的系统,一定拥有完善的安全体系。本书对 Android安全体系的架构做了详细介绍,如果你对 Android实现感兴趣,那么这本书一定会适合你。

——钱文祥 腾讯浏览器安全研究员,《白帽子讲浏览器安全》作者

新的信息技术给信息安全带来了新的研究方向,我们既感叹需要更新的知识越来越多,新的知识也让多年的信息安全从业者和热爱学习的新锐们又重新站在了同一起跑线上,这成为改变格局的机会。

Android的流行让我们很难忽视它可能存在的安全问题,《Android安全架构深究》能让我们快速了解它的整体架构,也能在我们需要的时候查找更底层的安全细节,无论是深度阅读,还是作为工具书偶尔查阅,这本书都是难能可贵的。作为一个希望能不断更新自身技术知识的信息安全从业人员,通过阅读本书的样章能够使我快速并愉快地了解一些之前觉得毫无头绪的内容。如果还有什么感慨,就是等本书正式发行的时候,迅速地去买一本,细细阅读。

——郝轶 百度云安全部资深安全专家

这本书对于致力于安卓安全研究和深入安卓系统开发的读者有非常大的参考价值,可以帮助大家了解和学习安卓的安全体系架构。在安全攻防圈子里流行着一句话“know it then hack it”,只有对一个事物足够了解,你才有能力 hack它,突破更多的限制,希望大家可以循着作者的思路对安卓安全有更进一步的了解。

——宋申雷 360安全技术经理

推荐序

《Android安全架构深究》一书正如其书名一样,着重从架构角度介绍 Android平台的安全机制。近几年,Android安全研究的热点一直围绕着恶意软件攻防、应用加固与逆向、支付安全、应用层与框架层漏洞挖掘和内核漏洞挖掘利用这几个方向。目前,已有数位研究者将应用逆向和应用层漏洞评估整理成书籍,但其他安全研究方向仍以碎片化的形式存在于各大安全会议或部分书籍之中。究其原因,我认为是一些高级的安全问题需要必要的平台安全机制方面的知识做铺垫,不然,初学者会感到难以上手。《Android安全架构深究》一书介绍的正是铺垫性的知识。

该书自底向上地描述了 Android的安全体系架构,深入探究与安全相关的 Android子系统、设备和数据组件的内部实现,并介绍了新引入的安全特性,如受限用户支持、全盘加密、硬件支持的凭据存储和集中式设备管理的支持。

本书前 4章首先简要介绍 Android的体系结构和安全模型。体系结构方面与其他书籍无异,介绍 Android系统重要组件的基本概念,包括 Linux内核层、Dalvik虚拟机、Java运行时库、Binder机制和 Android框架库,其中对 Binder机制的介绍较为详细。安全模型方面简要介绍了沙箱机制、应用层权限、IPC通信、多用户支持和 SELinux机制,尤其在 SELinux机制中,介绍了引入 MAC机制的必要性和 DAC机制的先天不足;并详细讲解了 Android权限的声明、使用和执行过程。开发过简单的 Android程序的人明白权限声明是怎么一回事儿,但这一部分具体阐述了当安装 App时,包管理器是如何将 App声明的权限标识记录到已安装包的核心数据库/data/system/package.xml文件中的。对于权限赋予,先将系统所有程序分为两类:高层组件(安装的 App和系统服务)和低层组件(本地进程),高层组件的权限赋予仍以包管理器通过 package.xml数据库来决定,低层组件的权限赋予依赖进程 UID、GID和补充 GID来决定。在权限执行的讲解中,作者还是按照自底向上的结构讲解内核层权限的执行、原生守护进程级别权限的执行和框架层权限的执行。实现内核层权限执行的关键在于 Android内核在普通 Linux内核访问控制机制的基础上,又增加了一些特有的访问控制机制,如对网络的访问,上层 App申请了 Internet权限后,内核层才能判断 App对应的进程是属于 inet组的(属于该组才能访问 Internet)。原生守护进程的权限执行采用标准文件系统权限机制进行权限控制。框架层权限执行正是我们熟知的 AndroidManifest.xml配置文件机制。该部分接着对四大组件的权限执行、共享用户 ID、自定义权限、四大组件声明权限进行了介绍,与基本的 Android开发无异;然后,作者详细讲解了 Android的包管理机制,包管理机制主要负责 APK包的安装和校验。在介绍 APK的安装过程之前,先介绍了 APK文件的格式和 APK文件的签名,这一部分已是老生常谈。之后针对 APK安装包的安装形式,介绍了其安装步骤:解析和验证包(从 AndroidManifest.xml中提取信息和包签名,验证 APK完整性)→接受权限和启动安装进程(显示应用申请的权限)→复制到应用程序目录( /data/)→包扫描→创建数据目录(由 installd进程负责)→生成 Optimized DEX文件( installd运行 dexopt命令)→文件和目录结构→添加到 package.xml数据库(包名、包属性、路径、权限……)→签名验证,一个 APK的安装过程大致如此;*后,介绍了 Android的多用户支持,并描述了在多用户设备上数据隔离的实现。多用户机制在 Android 4.2中就已经加入,但只支持平板模式;在 Android L中,多用户机制已支持手机模式。在该部分中,详细介绍了用户类型,每个用户类型所对应的用户元数据及对用户所有的应用程序的管理。

第 5章和第 6章介绍的是加密服务和 PKI机制,这两部分作为安全架构的重要组成部分同时也是 Android安全开发所关注的内容。 Android上的加密服务主要依赖 JCA引擎,在介绍加密服务的章节中,该书对 JCA引擎类中重要的类方法进行了较为细致的介绍,如安全随机数 SecureRandom、消息摘要 MessageDigest、签名 Signature、加密算法 Cipher和密钥 Key等。PKI机制一直在网络安全中扮演重要角色,在 Java语言中, Java安全套接字扩展 JSSE实现了 SSL和 TLS协议,并提供数据加密、服务器验证、消息完整性和可选客户端验证等机制。Android上 JSSE的实现极大地方便了开发人员在 Android App中部署 PKI方案。该章节对 Android JSSE实现的描述,对开发人员有着重要的参考意义。

接下来,该书详细介绍了 Android系统中引入的新的安全特性,比如硬件支持的凭据存储、集中式设备管理的支持和全盘加密技术的实现。在凭据存储部分,介绍了 Android的凭据存储,并介绍了提供给应用的安全存储密钥的 API。对于在线账户管理,本书详细分析了账户管理在 Android系统中的具体实现和认证模块的具体细节。在集中式设备管理方面,本书详细介绍了 Android VPN技术的各个细节和 Wi-Fi EAP认证的具体方法,这对开发企业安全应用有着重要的参考价值。随后的设备安全部分,介绍了验证启动( verified boot)、磁盘加密和 Android锁屏的实现,并展示了安全 USB调试和

热门图书
推荐新闻
技术文库
论坛推荐