Android 安全架构深究

更新时间:2022-10-22 17:27:52 阅读: 评论:0

内容简介

《Android 安全架构深究》自底向上描述了Android 的安全架构,深入探究与安全相关的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 和rvice 权限 ......... 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

AndroidOpenSSL Provider ............. 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

Android JSSE 的实现 .......... 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

xxii Android 安全架构深究

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

本文发布于:2022-10-22 17:27:52,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/83/347815.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图