摘要 | 第3-4页 |
ABSTRACT | 第4-5页 |
1. 绪论 | 第11-16页 |
1.1 研究背景和意义 | 第11-13页 |
1.2 国内外研究现状 | 第13-14页 |
1.3 论文的主要工作 | 第14-15页 |
1.4 论文的结构安排 | 第15-16页 |
2. ANDROID中数据保护相关技术与本文功能需求 | 第16-27页 |
2.1 应用签名机制 | 第16页 |
2.2 UID的延续与发展 | 第16-17页 |
2.3 资源权限管理机制 | 第17页 |
2.4 SELinux | 第17-18页 |
2.5 磁盘加密 | 第18-19页 |
2.6 安全启动 | 第19-20页 |
2.7 密钥管理 | 第20-23页 |
2.7.1. KeyStore服务 | 第21页 |
2.7.2. KeyChain | 第21-22页 |
2.7.3. KeyMaster | 第22-23页 |
2.8 硬件安全防护 | 第23-25页 |
2.8.1. Trust Zone技术 | 第23-25页 |
2.9 本章小结 | 第25-27页 |
3. 透明文件加密技术 | 第27-38页 |
3.1 加密算法的选择 | 第27-31页 |
3.1.1. 算法简介 | 第27-28页 |
3.1.2. 从安全性角度比较 | 第28页 |
3.1.3. 从加密前后数据长度变化角度比较 | 第28页 |
3.1.4. 从误差传播角度比较 | 第28-30页 |
3.1.5. 从数据加解密速度上来看 | 第30-31页 |
3.2 应用标识的选取 | 第31-32页 |
3.3 加密策略: | 第32页 |
3.4 Xposed Hook原理 | 第32-34页 |
3.5 Hook相关方法细节 | 第34-36页 |
3.5.1. Hook文件操作的构造方法 | 第34页 |
3.5.2. Hook read相关方法 | 第34-35页 |
3.5.3. Hook write相关方法 | 第35-36页 |
3.5.4. Hook skip方法 | 第36页 |
3.5.5. Hook close方法 | 第36页 |
3.5.6. 多线程操作 | 第36页 |
3.6 本章小结 | 第36-38页 |
4. 加密密钥的管理 | 第38-45页 |
4.1 密钥的生成 | 第38-40页 |
4.1.1. 获取SharedUser Id以及签名信息 | 第38-39页 |
4.1.2. 自动生成密钥 | 第39-40页 |
4.2 密钥的保存 | 第40-43页 |
4.2.1. KeyStore的常规使用 | 第40页 |
4.2.2. 使用反射机制在KeyStore中保存任意信息 | 第40-43页 |
4.2.3. 保存与获取密钥 | 第43页 |
4.3 删除应用时密钥的处理 | 第43-44页 |
4.4 本章小结 | 第44-45页 |
5. 文件使用跟踪功能设计 | 第45-55页 |
5.1 建立文件跟踪列表: | 第45-46页 |
5.2 跟踪文件访问情况 | 第46-53页 |
5.2.1. inotify | 第46-47页 |
5.2.2. FileObserver | 第47-49页 |
5.2.3. LD_PRELOAD的HOOK原理 | 第49页 |
5.2.4. LD_PRELOAD的作用域 | 第49-51页 |
5.2.5. 设置LD_PRELOAD全局环境变量 | 第51页 |
5.2.6. Hook函数中调用原生Open函数 | 第51-53页 |
5.3 应用卸载时数据的处理 | 第53-54页 |
5.4 本章小结 | 第54-55页 |
6. 实验与分析 | 第55-59页 |
6.1 实验平台介绍 | 第55页 |
6.2 功能测试及结果 | 第55-57页 |
6.2.1. 数据加密检验 | 第55-56页 |
6.2.2. 密钥管理与文件跟踪: | 第56-57页 |
6.3 性能测试及结果 | 第57-58页 |
6.4 本章小结 | 第58-59页 |
7. 总结与展望 | 第59-61页 |
7.1 本文工作总结 | 第59页 |
7.2 研究展望 | 第59-61页 |
参考文献 | 第61-63页 |
致谢 | 第63-64页 |
攻读硕士学位期间已发表或录用的论文 | 第64-66页 |