引言 ................... 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 ............. 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
· · · · · · (
收起)