《ANDROID安全架构深究》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)NIKOLAY ELENKOV著;刘惠明,刘跃译;(美)JON SAWYER作序;诸葛建伟审校;诸葛建伟组织翻译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121279447
  • 页数:372 页
图书介绍:目前在用的Android设备约有10亿台,而且每一台设备都是一个潜在的安全漏洞。Android设备的安全问题是其用户和开发者的主要关注点之一。在本书中作者探讨了Android组件和子系统,以帮助你对Android设备的安全内核建立深入且全面的理解。主题包括包、用户管理、加密提供者和证书存储的细节,等等。

第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 118

Signature 118

Cipher 119

Mac 123

Key 124

SecretKey和PBEKey 124

PublicKey、PrivateKey和KeyPair 125

KeySpec 125

KeyFactory 125

SecretKeyFactory 126

KeyPairGenerator 127

KeyGenerator 127

KeyAgreement 128

KeyStore 129

CertificateFactory和CertPath 131

CertPathValidator和CertPathBuilder 132

Android的JCA Provider 133

Harmony加密Provider 133

Android的Bouncy Castle Provider 133

AndroidOpenSSLProvider 137

OpenSSL 139

使用定制的Provider 140

Spongy Castle 140

总结 141

第6章 网络安全与PKI 142

PKI与SSL概述 143

公钥证书 143

直接信任和Private CA 145

公钥基础设施 145

证书撤销 147

JSSE介绍 148

安全套接字 148

对等认证 149

主机名认证 151

AndroidJSSE的实现 152

证书管理与认证 152

证书黑名单 158

重新审视PKI信任模型 161

总结 165

第7章 凭据存储 166

VPN和Wi-Fi EAP凭据 167

认证密钥和证书 167

系统凭据库 168

凭据存储的具体实现 169

密钥库(keystore)服务 169

密钥blob的版本和类型 171

访问限制 171

keymaster模块和密钥库服务的实现 172

Nexus 4的基于硬件的实现 173

框架集成 175

公开API 175

密钥链(KeyChain)API 176

密钥链API的实现 180

控制对密钥库的访问 181

Android密钥库Provider 183

总结 184

第8章 在线账户管理 186

Android账户管理概述 186

账户管理在Android中的具体实现 187

AccountManagerService与AccountManager 188

认证模块 189

认证模块缓存 189

账户管理服务的操作和权限 190

账户数据库 193

多用户支持 196

增加一个认证器模块 197

Google账户支持 200

Google登录服务 201

Google服务认证和授权 203

Google Play服务 206

总结 208

第9章 企业安全 209

设备管理 209

实现方法 211

添加设备管理员 217

企业账户集成 220

VPN支持 223

PPTP 223

L2TP/IPSec 223

IPSec Xauth 224

基于SSL的VPN 224

legacy VPN 225

基于应用的VPN 230

多用户支持 233

Wi-Fi EAP 236

EAP认证方法 237

Android Wi-Fi架构 238

EAP凭据管理 239

使用WifiManager添加EAP网络 242

总结 244

第10章 设备安全 245

控制系统的启动和安装 246

引导加载程序 246

恢复系统 247

验证启动 247

dm-verity简介 248

Android实现 249

打开验证启动 249

磁盘加密 251

密码模式 252

密钥生成 253

磁盘加密密码 254

修改磁盘加密密码 255

启用磁盘加密 256

启动加密设备 259

屏幕安全 261

锁屏实现 261

KeyGuard解锁方法 263

暴力破解保护 270

安全USB调试 270

ADB简介 271

对安全ADB的需求 273

安全ADB 273

安全ADB实现 274

ADB认证密钥 275

验证宿主密钥指纹 276

Android备份 277

Android备份简介 277

备份文件格式 278

备份加密 279

控制备份范围 281

总结 281

第11章 NFC和安全元件 283

NFC简介 283

Android对NFC的支持 284

读/写模式 284

端对端模式 289

卡模拟模式 289

安全元件 290

移动设备中的SE组件 290

访问内嵌SE 293

Android SE执行环境 296

使用UICC作为安全元件 299

软件卡模拟 303

Android 4.4的HCE架构 304

APDU路由 304

编写HCE服务 309

HCE应用的安全 311

总结 312

第12章 SELinux 313

SELinux介绍 313

SELinux架构 314

强制访问控制 315

SELinux模式 315

安全上下文 316

安全上下文的设定和保存 317

安全规则 318

策略声明 318

类型转换规则 321

域转换规则 322

访问向量规则 323

Android实现 324

内核修改 325

用户空间修改 326

设备规则文件 334

策略事件日志 334

Android 4.4的SELinux策略 335

策略概述 335

强制域 337

无限制域 338

应用域 340

总结 341

第13章 系统更新和root访问 342

引导加载程序 343

解锁引导加载程序 343

快速启动模式 344

recovery 347

原生恢复系统 347

定制恢复系统 357

root权限 359

工程机上的root访问 359

正式版本中的root访问 363

通过修改boot和system镜像获取root 364

通过刷入个OTA更新包来获取root 364

通过漏洞来获取root 371

总结 372