一种智能终端应用程序的安装验证方法及系统技术方案

技术编号:10999921 阅读:121 留言:0更新日期:2015-02-04 20:35
本发明专利技术公开了一种智能终端应用程序的安装验证方法,该方法包括以下步骤:获取智能终端系统层中预存储的第一公钥;根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。本发明专利技术还提供了一种实现上述方法的系统。本发明专利技术所述的智能终端应用程序的安装验证方法在安装应用程序前利用系统层预存储的第一公钥判断应用程序是否满足安装条件,只有满足时才能安装,能够确保在终端设备上的应用程序是经过认证的合法程序,有效防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。

【技术实现步骤摘要】
一种智能终端应用程序的安装验证方法及系统
本专利技术涉及应用程序安装领域,尤其涉及一种智能终端应用程序的安装验证方法及系统。
技术介绍
智能终端设备产品,如智能手机、智能电视和智能盒子正在快速普及,它们一般都采用Android等智能操作系统平台,用户可以自由选择从不同渠道安装应用程序,随着用户量增多,恶意程序成为危害终端用户安全和隐私的重要因素,严重侵害用户合法权益。在应用程序开发环节嵌入恶意代码或通过篡改他人编写的应用程序并嵌入恶意代码是目前制作恶意程序的主要手段。另外,通过刷机替换整个系统及全部应用程序是一种釜底抽薪式的破解方法。 目前的Android系统要求每一个安装进系统的应用程序都要经过数字证书签名。签名的原理如图1所示,利用开发者私钥11对原始应用程序包12中所有未签名的文件,包括程序文件和资源文件,逐个用RSA算法13进行签名,再对数字签名信息采用Base64进行编码,得到签名数据14,将签名数据14、各文件的SHAl摘要15和开发者公钥16保存在一个叫做META-1NF的文件夹17里,META-1NF文件夹17和原始应用程序包11,包括程序文件和资源文件,构成发布应用程序包18。用于签名的私钥保存在程序开发者的手中,用于验证的公钥打包在应用程序文件内。其中,应用程序文件是个z ip压缩包。 在应用程序安装前的验证是利用打包在应用程序文件中的公钥对应用程序进行验证。因此,Android应用程序文件使用的数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序自我认证的,用来标识应用程序的作者并在应用程序之间建立信任关系,而不是用来控制用户能否安装应用程序。由于数字证书公钥就打包在应用程序文件内,任何人都可以生成一对新密钥,并使用私钥进行重新签名,并把新公钥替换到应用程序文件内。目前有很多像APKtool和Auto-sign之类的工具,可以很容易对应用程序反编译并进行应用程序签名。签名不一致会被Android系统视为不同开发者开发的应用程序(拥有私钥的情况除外),但却无法防止用户安装这些恶意程序。从安全性角度来看,目前的Android应用程序数字签名机制形同虚设,不能有效防止非法应用程序的安装,会导致智能终端安装非法的应用程序。
技术实现思路
本专利技术是为了解决现有技术中的上述不足而完成的,本专利技术的目的在于提出一种智能终端应用程序的安装验证方法及系统,该方法能够解决现有应用程序签名机制不能够有效防止非法应用程序的安装的问题。 为达此目的,本专利技术采用以下技术方案: 第一方面,本专利技术公开了一种智能终端应用程序的安装验证方法,包括以下步骤: 获取智能终端系统层中预存储的第一公钥; 根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。 进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据, 所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。 进一步地,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。 进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥, 所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 判断所述预存储的第一公钥与所述应用程序公钥是否匹配,如果匹配,则继续验证所述待安装应用程序是否满足安装条件,如果不匹配,则禁止安装所述待安装应用程序。 进一步地,所述第二签名数据是利用RSA签名算法得到的。 进一步地,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤: 根据所述应用程序公钥和所述第二签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。 进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书, 所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序。 进一步地,所述第三签名数据是利用RSA签名算法得到的。 进一步地,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤: 根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。 进一步地,所述获取智能终端系统层中预存储的第一公钥之前还包括以下步骤: 获取智能终端Boot层中预存储的第二公钥; 根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。 进一步地,所述获取智能终端Boot层中预先存储的第二公钥之前还包括以下步骤: 获取智能终端芯片中预存储的第三公钥; 根据所述预存储的第三公钥和Boot层中的签名数据对Boot层验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。 第二方面,本专利技术公开了一种智能终端应用程序的安装验证系统,包括: 第一公钥获取模块,用于获取智能终端系统层中预存储的第一公钥; 应用程序安装条件判断模块,用于根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。 进一步地,还包括: 第一应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据, 所述应用程序安装条件判断模块包括: 第一应用程序验证模块,用于根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。 进一步地,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。 进一步地,还包括: 第二应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥, 所述应用程序安装条件判断模块包括: 第二应本文档来自技高网
...

【技术保护点】
一种智能终端应用程序的安装验证方法,其特征在于,包括以下步骤:获取智能终端系统层中预存储的第一公钥;根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。

【技术特征摘要】
1.一种智能终端应用程序的安装验证方法,其特征在于,包括以下步骤: 获取智能终端系统层中预存储的第一公钥; 根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。2.根据权利要求1所述的智能终端应用程序的安装验证方法,其特征在于,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据, 所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。3.根据权利要求2所述的智能终端应用程序的安装验证方法,其特征在于,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。4.根据权利要求1所述的智能终端应用程序的安装验证方法,其特征在于,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥, 所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 判断所述预存储的第一公钥与所述应用程序公钥是否匹配,如果匹配,则继续验证所述待安装应用程序是否满足安装条件,如果不匹配,则禁止安装所述待安装应用程序。5.根据权利要求4所述的智能终端应用程序的安装验证方法,其特征在于,所述第二签名数据是利用RSA签名算法得到的。6.根据权利要求5所述的智能终端应用程序的安装验证方法,其特征在于,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤: 根据所述应用程序公钥和所述第二签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。7.根据权利要求1所述的智能终端应用程序的安装验证方法,其特征在于,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤: 获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书,所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤: 利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序。8.根据权利要求7所述的智能终端应用程序的安装验证方法,其特征在于,所述第三签名数据是利用RSA签名算法得到的。9.根据权利要求8所述的智能终端应用程序的安装验证方法,其特征在于,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤: 根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。10.根据权利要求1-9任一所述的智能终端应用程序的安装验证方法,其特征在于,所述获取智能终端系统层中预存储的第一公钥之前还包括以下步骤: 获取智能终端Boot层中预存储的第二公钥; 根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。11.根据权利要求10所述的智能终端应用程序的安装验证方法,其特征在于,所述获取智能终端Boot层中预先存储的第二公钥之前还包括以下步骤: 获取智能终端芯片中预存储的第三公钥; 根据所述预存储的第三公钥和Boot层中的签名数据对Boot层验证,如果验证成功,则允许执行下一...

【专利技术属性】
技术研发人员:郭永伟王天星李伟东李红艳
申请(专利权)人:北京视博数字电视科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1