论文部分内容阅读
Android平台由于其开源性、免费性、硬件多等优点,一经推出就获得了厂商和消费者的喜爱,迅速成为市场份额最多的移动端平台。面向Android平台开发设计的应用程序也如雨后春笋般增长。与此同时,Android系统的开放性高、Android应用与iOS应用相比开发门槛低,国内对应用市场缺乏统一监管,使得Android应用良莠不齐,安全性得不到保障。大量的恶意应用流入到市场,面向Android平台的恶意攻击行为和黑色产业链也不断升级。在各种恶意行为中,个人数据的窃取对用户造成的危害最大。轻者个人数据直接被贩卖,不法分子由此谋取暴利,让用户遭受各种电话销售和诈骗短信的干扰,影响正常生活;重者可能引起账户被盗,名誉受损,给用户造成经济和精神的双重打击。针对Android应用的数据安全防护问题,本文主要从恶意应用检测和本地数据安全存储两方面进行研究,具体成果如下: (1)研究了Android操作系统和应用程序的相关内容。关于Android操作系统,研究了系统层次结构和原生安全机制,归纳总结了不同级别的API权限在高版本和低版本上的授权方式,分析了权限特征对恶意应用检测的影响。关于应用程序,介绍了应用程序的主要组成,分析了APK文件的生成和逆向,总结了本地数据存储的方式及特点。这些内容为下一步的研究打下了基础。 (2)针对大量应用程序的恶意性检测问题,提出一种轻量级的静态检测方案。该方案利用数据挖掘中分类器的思想对应用程序进行分类检测,创新性的将最小距离分类器引入到Android恶意应用检测中;利用API权限列表作为分类依据,提取训练集中应用程序的权限信息,通过一系列去冗余的操作,选取特征权限作为中心向量,形成分类模型,再使用训练好的分类模型进行应用程序的分类。实验结果表明了方案的可行性,通过与同级别其他方案的对比,本方案在复杂度和检测效果上表现出优越性,可以对大规模恶意应用程序进行初步检测。 (3)针对Android应用程序开发中Java语言极易反编译,导致本地密钥安全存储困难的问题,提出了一种基于Android的密钥分存方案。该方案将可视密码中广泛应用的秘密共享思想引入到Android密钥存储中,利用门限思想和拉格朗日插值多项式实现密钥的分存。方案通过口令动态推导出密钥,使用 AES对信息进行加密,加密完成后将口令分存在Android手机的多个位置并销毁原始口令和密钥。解密时利用部分分存信息重组口令并生成密钥,从而完成解密工作。方案降低了密钥泄漏的风险,提高了鲁棒性,适应性强,可以用于一般的商用软件加密。