Android平台上已安装软件保护方法_2

文档序号:8259360阅读:来源:国知局
主要有以下优点:
[0026]I)对Android本身系统结构并无修改,不需要添加任何模块,对应用程序的开发人员不造成任何影响。
[0027]2)用口令实现对密钥的保护,不需要添加额外的可信安全存储模块,每个密钥存储在其应用程序包的资源文件目录中,有效的避免了密钥管理的复杂问题。
[0028]3)若攻击者将密钥和加密文件的摘要值删除并且篡改应用程序,在没有加密密钥的情况下攻击者无法生成验证所需要的摘要值。倘若攻击者重新选择密钥进行加密,则为了满足条件,攻击者在将密钥存储到资源文件目录中时需要输入口令保护密钥,但攻击者无法获得用户口令,因此,即使攻击者篡改应用程序并在资源文件目录中存储验证时所需要的密钥及摘要值,但在应用程序启动时由于口令不匹配仍然会判断出应用程序被篡改,终止应用程序的启动。
【附图说明】
[0029]图1为本发明应用程序安装阶段的流程图;
[0030]图2为本发明启动过程验证阶段的流程图。
【具体实施方式】
[0031]—种Android平台上已安装软件保护方法,包括如下步骤:
[0032]( I)方法的前提及初始化
[0033]①本方法认为安装应用程序时从应用商店上下载的应用都是安全的,不含有任何恶意代码。
[0034]②当应用程序启动时系统会找到加载这个应用程序所属的类,在加载这个应用程序的类中添加进行单向散列函数、密钥生成器函数、加密函数、提示用户输入保护加密密钥的函数和对比函数。
[0035]现在对几种技术及对应的算法做下简单介绍:
[0036]对称加密技术:对称加密算法又称传统密码算法,在多数对称加密算法中,加密密钥和解密密钥是相同的。主要的对称加密算法有DES、三重DES、AES等,加/解密运算速度较快。
[0037]单向散列函数:单向散列函数(又称哈希函数、杂凑函数)可以将任意一段长度的消息不可逆转的转换为一段固定长度的散列密文,要找到两个不同的m和ml,使其分别哈希后的值相等很难。主要应用有MD5、SHA-U SHA-2等。
[0038]③本方法中涉及的相关技术,如单向散列函数、对称加密技术及口令保护等。本方案中对上述加载的各项函数算法并没有指定性需求,具体实现时候可按照实际需求选取某种具体的函数算法。
[0039]( 2 )应用程序安装阶段(参加图1):
[0040](2.1)调取应用程序安装完成后的优化代码文件即可执行文件,并对可执行文件进行单向散列函数运算,得到可执行文件的摘要值;
[0041](2.2)利用加密函数触发密钥生成器,生成加密密钥对可执行文件的摘要值进行加密,且调出提示信息让用户输入一个保护密钥的口令,最后将由口令保护的加密密钥保存到应用程序资源文件目录中;
[0042](2.3)对加密后的摘要值再进行单向散列函数运算,得到最终的摘要值,并将最终的摘要值保存到应用程序资源文件目录中;
[0043]( 3 )启动过程验证阶段(参加图2 ):
[0044](3.1)启动时由单向散列函数对可执行文件进行单向散列运算,得到可执行文件的摘要值;
[0045](3.2)由加密函数对得到的摘要值进行加密,并调用应用程序资源文件目录中的加密密钥,提示用户输入口令获得密钥;
[0046](3.3)对加密后的摘要值再进行单向散列函数运算,得到最终需要比对的摘要值;
[0047](3.4)由对比函数对步骤(2.3)所得的最终的摘要值和(3.3)所得到的最终需要比对的摘要值进行比较;若比较结果相同,则应用程序没有被篡改,继续启动应用程序;若比对结果不同,则应用程序被篡改,终止应用程序的启动。
【主权项】
1.Android平台上已安装软件保护方法,其特征是包括如下步骤: (1)应用程序安装阶段: (1.1)调取应用程序安装完成后的优化代码文件即可执行文件,并对可执行文件进行单向散列函数运算,得到可执行文件的摘要值; (1.2)利用加密函数触发密钥生成器,生成加密密钥对可执行文件的摘要值进行加密,且调出提示信息让用户输入一个保护密钥的口令,最后将由口令保护的加密密钥保存到应用程序资源文件目录中; (1.3)对加密后的摘要值再进行单向散列函数运算,得到最终的摘要值,并将最终的摘要值保存到应用程序资源文件目录中; (2)启动过程验证阶段: (2.1)启动时由单向散列函数对可执行文件进行单向散列运算,得到可执行文件的摘要值; (2.2)由加密函数对得到的摘要值进行加密,并调用应用程序资源文件目录中的加密密钥,提示用户输入口令获得密钥; (2.3)对加密后的摘要值再进行单向散列函数运算,得到最终需要比对的摘要值; (2.4)由对比函数对步骤(1.3)所得的最终的摘要值和(2.3)所得到的最终需要比对的摘要值进行比较;若比较结果相同,则应用程序没有被篡改,继续启动应用程序;若比对结果不同,则应用程序被篡改,终止应用程序的启动。
2.根据权利要求1所述的Android平台上已安装软件保护方法,其特征是包括如下步骤:所述单向散列函数、密钥生成器函数、加密函数、提示用户输入保护密钥的函数和对比函数均已预先加载在应用程序所属的类中。
【专利摘要】本发明公开一种Android平台上已安装软件保护方法,当应用程序在安装时,先给优化后的可执行代码文件的摘要值利用私钥进行加密,最后将加密后的文件的摘要值进行存储。当应用程序在安装时对优化后的可执行文件的做单向散列运算生成的摘要值文件再利用密钥给生成的摘要值加密,最后再次给加密后的摘要值做单向散列运算得到摘要值,作为验证的根文件。本发明能够克服现有的保护方案的不足及Android本身验证机制的安全隐患,且对Android本身系统结构并无修改,不需要添加任何模块,对应用程序的开发人员不造成任何影响。
【IPC分类】G06F21-51
【公开号】CN104573490
【申请号】CN201310522197
【发明人】丁勇, 张皎, 李新国, 丁继强, 官秀国
【申请人】桂林电子科技大学
【公开日】2015年4月29日
【申请日】2013年10月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1