目录 引言 .................. 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账户管理概述 .............................