论文部分内容阅读
随着搭载Android系统的智能移动终端的快速发展,基于Android平台的应用开发也呈井喷式出现。然而,由于Android系统上应用的开发大都采用Java语言实现,Java语言对代码保护的天生缺陷使得由此开发的应用极易被不法分子反编译并进行攻击,使开发者和用户的经济利益及隐私信息被严重损害。目前,对Android系统下应用软件的保护研究尚处于起步阶段,鲜有一套完整的保护系统可以对应用软件提供有效的保护。本文以Android平台自身分层特点为基础,结合传统软件保护技术,设计并实现一套基于加密保护、完整性校验及签名认证的软件保护系统。该系统可以有效的对应用源码进行防逆向工程保护并进行完整性校验保护。本文主要工作如下:(1)对Android系统架构及分层机制进行研究,并对软件安全威胁类型进行分类划分。在对威胁类型分类的基础上,重点分析了Android平台常见的软件攻击方法,并对以ELF文件加壳技术及Java字节码保护技术的传统软件保护技术进行了深入理解。最终,结合Android自身特点,对传统软件保护技术在Android平台的使用性进行了分析,并在此基础上设计了一种Android平台代码保护的评估模型。(2)提出了一种基于加密保护和篡改抵制的Android软件保护方案。在应用开发完后使用该方案给出的系统,对应用进行加密、签名及逆向抵制等保护。该方案是在Android系统应用层及Native层进行保护的。应用被保护后,密钥及认证等信息被存储在Native层的加壳so库中,这些被保护的信息只有在系统启动时才被获得,且只有在应用被脱壳及解密后才可执行。由于这些过程都是在内存中进行的,这就预防了临时文件的生成和存储,保护源码的机密性等。(3)具体设计并实现了一套完整的Android平台软件保护系统,该系统实现了对软件安全性、机密性及可认证性的保护。对保护后软件的各种性能进行分析测试,最终证明在启动时间增加范围可接受的基础上,该系统是安全可靠并可被接受的。