Android 安全架構深究

Android 安全架構深究

《Android 安全架構深究》是2016年3月電子工業出版社出版的圖書,作者是【不詳】(美)Nikolay Elenkov(尼古拉 埃倫科夫 )。

內容簡介

《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 和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

相關詞條

熱門詞條

聯絡我們