内容简介
第1章 Android安全模型
Android体系结构
Linux 内核层
原生用户空间层
Dalvik虚拟机
Java 运行时库
系统服务
进程间通信
Binder
Android框架库
应用程序
Android 的安全模型介绍
应用程序沙箱
权限
IPC
代码签名和平台密钥
多用户支持
SELinux
系统更新
验证启动模式
总结
第2章 权限
权限的本质
权限申请
权限管理
权限的保护级别
权限的赋予
权限执行
内核层的权限执行
原生守护进程级别的权限执行
框架层的权限执行
系统权限
signature权限
development权限
共享用户ID
自定义权限
公开和私有组件
activity和service权限
广播权限
content provider权限
静态provider权限
动态provider权限
pending intent
总结
第3章 包管理机制
Android应用程序包文件的格式
代码签名
Java代码签名
Android代码签名
APK的安装过程
应用程序包和数据的位置
活动组件
安装一个本地包
更新包
安装加密的APK
转发锁定
Android 4.1 转发锁定实现
加密的App和Google Play
包验证
Android对包验证的支持
Google Play实现
总结
第4章 用户管理
多用户支持概述
用户类型
主用户(持有者)
次要用户
受限用户
访客用户
用户管理
命令行工具
用户状态和相关广播
用户元数据
用户清单文件
用户元数据文件
用户系统目录
每个用户的应用程序管理
应用程序数据目录
应用共享
外存
外存实现
多用户外存
外存权限
其他多用户特性
总结
第5章 加密服务
JCA Provider结构
加密服务Provider
JCA引擎类
获得引擎类实例
算法名称
SecureRandom
MessageDigest
Signature
Cipher
Mac
Key
SecretKey和PBEKey
PublicKey、PrivateKey和KeyPair
KeySpec
KeyFactory
SecretKeyFactory
KeyPairGenerator
KeyGenerator
KeyAgreement
KeyStore
CertificateFactory和CertPath
CertPathValidator和CertPathBuilder
Android的JCA Provider
Harmony加密Provider
Android的Bouncy Castle Provider
AndroidOpenSSLProvider
OpenSSL
使用定制的Provider
Spongy Castle
总结
第6章 网络安全与PKI
PKI与SSL概述
公钥证书
直接信任和Private CA
公钥基础设施
证书撤销
JSSE介绍
安全套接字
对等认证
主机名认证
AndroidJSSE的实现
证书管理与认证
证书黑名单
重新审视PKI信任模型
总结
第7章 凭据存储
VPN和Wi-Fi EAP凭据
认证密钥和证书
系统凭据库
凭据存储的具体实现
密钥库(keystore)服务
密钥blob的版本和类型
访问限制
keymaster模块和密钥库服务的实现
Nexus 4的基于硬件的实现
框架集成
公开API
密钥链(KeyChain)API
密钥链API的实现
控制对密钥库的访问
Android密钥库Provider
总结
第8章 在线账户管理
Android账户管理概述
账户管理在Android中的具体实现
AccountManagerService与AccountManager
认证模块
认证模块缓存
账户管理服务的操作和权限
账户数据库
多用户支持
增加一个认证器模块
Google账户支持
Google登录服务
Google服务认证和授权
Google Play服务
总结
第9章 企业安全
设备管理
实现方法
添加设备管理员
企业账户集成
VPN支持
PPTP
L2TP/IPSec
IPSec Xauth
基于SSL的VPN
legacy VPN
基于应用的VPN
多用户支持
Wi-Fi EAP
EAP认证方法
Android Wi-Fi架构
EAP凭据管理
使用WifiManager添加EAP网络
总结
第10章 设备安全
控制系统的启动和安装
引导加载程序
恢复系统
验证启动
dm-verity简介
Android实现
打开验证启动
磁盘加密
密码模式
密钥生成
磁盘加密密码
修改磁盘加密密码
启用磁盘加密
启动加密设备
屏幕安全
锁屏实现
KeyGuard解锁方法
暴力破解保护
安全USB调试
ADB简介
对安全ADB的需求
安全ADB
安全ADB实现
ADB认证密钥
验证宿主密钥指纹
Android备份
Android备份简介
备份文件格式
备份加密
控制备份范围
总结
第11章 NFC和安全元件
NFC简介
Android对NFC的支持
读/写模式
端对端模式
卡模拟模式
安全元件
移动设备中的SE组件
访问内嵌SE
Android SE执行环境
使用UICC作为安全元件
软件卡模拟
Android 4.4的HCE架构
APDU路由
编写HCE服务
HCE应用的安全
总结
第12章 SELinux
SELinux介绍
SELinux架构
强制访问控制
SELinux模式
安全上下文
安全上下文的设定和保存
安全规则
策略声明
类型转换规则
域转换规则
访问向量规则
Android实现
内核修改
用户空间修改
设备规则文件
策略事件日志
Android 4.4的SELinux策略
策略概述
强制域
无限制域
应用域
总结
第13章 系统更新和root访问
引导加载程序
解锁引导加载程序
快速启动模式
recovery
原生恢复系统
定制恢复系统
root权限
工程机上的root访问
正式版本中的root访问
通过修改boot和system镜像获取root
通过刷入个OTA更新包来获取root
通过漏洞来获取root
总结