论文部分内容阅读
随着Android操作系统的广泛使用和移动互联网时代的到来,Android系统的安全问题也不断出现,给用户和开发者造成了许多困扰。Android应用程序面临着知识产权被侵犯、被二次打包、应用程序遭逆向等安全问题。如何加强Android平台上的应用程序的安全性就成了一个非常重要的问题。基于上述背景,本文将研究Android平台的应用程序的安全保护方案和技术,并依此为最终目的。本文主要通过研究Android操作系统的安全弱点、Android应用程序的安全弱点、Android应用程序的逆向工程技术等,提出一个完整的安全保护方案。本文提出基于Android平台的应用程序安全保护方案,该方案从逆向工程入手,借鉴传统PC端的安全保护技术,结合Android平台本身的特点,将混淆、防反编译、动态加载、完整性校验、加密等方面融合为一体,采用多层安全保护措施,全面提高了应用程序的安全性能。本文的主要工作有:1.对Android系统的安全性以及其平台的应用程序的安全性做出阐述。研究Android系统的体系结构和应用开发的技术要点,包括Dalvik虚拟机和DVM指令、Dex文件和Dalvik字节码、JNI技术等,重点分析Android应用程序开发的技术要点,详细阐述Android系统及其上的应用程序的安全基础。2.研究现有的逆向技术,包括其原理、使用到的工具以及技术细节,提出对这些工具和技术的“反制”措施,防范对Android应用程序逆向工程的技术。研究Android的安全模型及其存在的安全隐患,重点关注Android安全机制的缺点,提出安全保护技术。3.分析加密、解密、数据完整性算法,找到适合有限资源条件下的加密、解密措施。分析包括AES、MD5、NTRU、SSL/TLS安全协议等已有的加解密算法,将加解密技术适用到Android应用程序安全保护和开发中,保证应用程序的数据、网络通信、应用程序的安全性。4.结合加密、解密算法,在此技术基础之上提出针对Android平台上的应用程序的加壳、加固技术。旨在提高应用程序的反汇编能力,使利用现有的反编译、反汇编工具或方法失效,或只能较低程度的反编译、反汇编,从最根本上保护应用程序、用户数据、网络通信的安全性。5.Android平台上的应用程序的安全保护方案进行实现。对实现方案进行详细分析,主要是在应用程序的抗逆向能力、数据安全以及应用程序的运行效率做详细的分析。