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

文档序号:6634255阅读:204来源:国知局
一种智能终端应用程序的安装验证方法及系统的制作方法
【专利摘要】本发明公开了一种智能终端应用程序的安装验证方法,该方法包括以下步骤:获取智能终端系统层中预存储的第一公钥;根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。本发明还提供了一种实现上述方法的系统。本发明所述的智能终端应用程序的安装验证方法在安装应用程序前利用系统层预存储的第一公钥判断应用程序是否满足安装条件,只有满足时才能安装,能够确保在终端设备上的应用程序是经过认证的合法程序,有效防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。
【专利说明】一种智能终端应用程序的安装验证方法及系统

【技术领域】
[0001]本发明涉及应用程序安装领域,尤其涉及一种智能终端应用程序的安装验证方法及系统。

【背景技术】
[0002]智能终端设备产品,如智能手机、智能电视和智能盒子正在快速普及,它们一般都采用Android等智能操作系统平台,用户可以自由选择从不同渠道安装应用程序,随着用户量增多,恶意程序成为危害终端用户安全和隐私的重要因素,严重侵害用户合法权益。在应用程序开发环节嵌入恶意代码或通过篡改他人编写的应用程序并嵌入恶意代码是目前制作恶意程序的主要手段。另外,通过刷机替换整个系统及全部应用程序是一种釜底抽薪式的破解方法。
[0003]目前的Android系统要求每一个安装进系统的应用程序都要经过数字证书签名。签名的原理如图1所示,利用开发者私钥11对原始应用程序包12中所有未签名的文件,包括程序文件和资源文件,逐个用RSA算法13进行签名,再对数字签名信息采用Base64进行编码,得到签名数据14,将签名数据14、各文件的SHAl摘要15和开发者公钥16保存在一个叫做META-1NF的文件夹17里,META-1NF文件夹17和原始应用程序包11,包括程序文件和资源文件,构成发布应用程序包18。用于签名的私钥保存在程序开发者的手中,用于验证的公钥打包在应用程序文件内。其中,应用程序文件是个z ip压缩包。
[0004]在应用程序安装前的验证是利用打包在应用程序文件中的公钥对应用程序进行验证。因此,Android应用程序文件使用的数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序自我认证的,用来标识应用程序的作者并在应用程序之间建立信任关系,而不是用来控制用户能否安装应用程序。由于数字证书公钥就打包在应用程序文件内,任何人都可以生成一对新密钥,并使用私钥进行重新签名,并把新公钥替换到应用程序文件内。目前有很多像APKtool和Auto-sign之类的工具,可以很容易对应用程序反编译并进行应用程序签名。签名不一致会被Android系统视为不同开发者开发的应用程序(拥有私钥的情况除外),但却无法防止用户安装这些恶意程序。从安全性角度来看,目前的Android应用程序数字签名机制形同虚设,不能有效防止非法应用程序的安装,会导致智能终端安装非法的应用程序。


【发明内容】

[0005]本发明是为了解决现有技术中的上述不足而完成的,本发明的目的在于提出一种智能终端应用程序的安装验证方法及系统,该方法能够解决现有应用程序签名机制不能够有效防止非法应用程序的安装的问题。
[0006]为达此目的,本发明采用以下技术方案:
[0007]第一方面,本发明公开了一种智能终端应用程序的安装验证方法,包括以下步骤:
[0008]获取智能终端系统层中预存储的第一公钥;
[0009]根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。
[0010]进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤:
[0011]获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据,
[0012]所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤:
[0013]根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。
[0014]进一步地,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。
[0015]进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤:
[0016]获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥,
[0017]所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤:
[0018]判断所述预存储的第一公钥与所述应用程序公钥是否匹配,如果匹配,则继续验证所述待安装应用程序是否满足安装条件,如果不匹配,则禁止安装所述待安装应用程序。
[0019]进一步地,所述第二签名数据是利用RSA签名算法得到的。
[0020]进一步地,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤:
[0021]根据所述应用程序公钥和所述第二签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
[0022]进一步地,所述获取智能终端系统层中预存储的第一公钥之前或之后还包括以下步骤:
[0023]获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书,
[0024]所述根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件包括以下步骤:
[0025]利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序。
[0026]进一步地,所述第三签名数据是利用RSA签名算法得到的。
[0027]进一步地,所述继续验证所述待安装应用程序是否满足安装条件包括以下步骤:
[0028]根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
[0029]进一步地,所述获取智能终端系统层中预存储的第一公钥之前还包括以下步骤:
[0030]获取智能终端Boot层中预存储的第二公钥;
[0031]根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
[0032]进一步地,所述获取智能终端Boot层中预先存储的第二公钥之前还包括以下步骤:
[0033]获取智能终端芯片中预存储的第三公钥;
[0034]根据所述预存储的第三公钥和Boot层中的签名数据对Boot层验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
[0035]第二方面,本发明公开了一种智能终端应用程序的安装验证系统,包括:
[0036]第一公钥获取模块,用于获取智能终端系统层中预存储的第一公钥;
[0037]应用程序安装条件判断模块,用于根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。
[0038]进一步地,还包括:
[0039]第一应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据,
[0040]所述应用程序安装条件判断模块包括:
[0041]第一应用程序验证模块,用于根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。
[0042]进一步地,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。
[0043]进一步地,还包括:
[0044]第二应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥,
[0045]所述应用程序安装条件判断模块包括:
[0046]第二应用程序匹配模块,用于判断所述预存储的第一公钥与所述应用程序公钥是否匹配,如果匹配,则继续验证所述待安装应用程序是否满足安装条件,如果不匹配,则禁止安装所述待安装应用程序。
[0047]进一步地,所述第二签名数据是利用RSA签名算法得到的。
[0048]进一步地,还包括:
[0049]第二应用程序验证模块,用于所述预存储的第一公钥与所述应用程序公钥匹配时,根据所述应用程序公钥和所述第二签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
[0050]进一步地,还包括:
[0051]第三应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书,
[0052]所述应用程序安装条件判断模块包括:
[0053]证书验证模块,用于利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序。
[0054]进一步地,所述第三签名数据是利用RSA签名算法得到的。
[0055]进一步地,还包括:
[0056]第三应用程序验证模块,用于根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
[0057]进一步地,还包括:
[0058]第二公钥获取模块,用于获取智能终端Boot层中预存储的第二公钥;
[0059]系统层验证模块,用于根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
[0060]进一步地,还包括:
[0061]第三公钥获取模块,用于获取智能终端芯片中预存储的第三公钥;
[0062]Boot层验证模块,用于根据所述预存储的第三公钥和Boot层中的签名数据对Boot层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
[0063]本发明所述的智能终端应用程序的安装验证方法在安装应用程序之前先使用系统层预存储的第一公钥判断待安装应用程序是否满足安装条件,只有满足时才允许进行安装,能够确保在终端设备上的应用程序是经过认证的合法程序,有效防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。

【专利附图】

【附图说明】
[0064]为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
[0065]图1是现有技术中应用程序的签名原理示意图。
[0066]图2是本发明实施例一提供的智能终端应用程序的安装验证方法的流程示意图。
[0067]图3是本发明实施例二提供的智能终端应用程序的安装验证方法的流程示意图。
[0068]图4是本发明实施例二提供的智能终端应用程序的安装验证方法中利用RSA签名算法进行签名的原理示意图。
[0069]图5是本发明实施例二提供的智能终端应用程序的安装验证方法中利用RSA验证算法进行验证的原理示意图。
[0070]图6是本发明实施例三提供的智能终端应用程序的安装验证方法的流程示意图。
[0071]图7是本发明实施例三提供的智能终端应用程序的安装验证方法中利用RSA签名算法进行签名的原理示意图。
[0072]图8是本发明实施例三提供的智能终端应用程序的安装验证方法中进行匹配和利用RSA验证算法进行验证的原理示意图。
[0073]图9本发明实施例四提供的智能终端应用程序的安装验证方法的流程示意图。
[0074]图10是本发明实施例四提供的智能终端应用程序的安装验证方法中利用RSA签名算法进行签名的原理示意图。
[0075]图11是本发明实施例四提供的智能终端应用程序的安装验证方法中进行匹配和利用RSA验证算法进行验证的原理示意图。
[0076]图12是本发明实施例五提供的智能终端应用程序的安装验证方法的流程示意图。
[0077]图13是本发明实施例五提供的智能终端应用程序的安装验证方法中的自底向上的信任链的示意图。
[0078]图14是本发明实施例六提供的智能终端应用程序的安装验证系统的结构示意图。
[0079]图15是本发明实施例七提供的智能终端应用程序的安装验证系统的结构示意图。
[0080]图16是本发明实施例八提供的智能终端应用程序的安装验证系统的结构示意图。
[0081]图17是本发明实施例九提供的智能终端应用程序的安装验证系统的结构示意图。
[0082]图18是本发明实施例十提供的智能终端应用程序的安装验证系统的结构示意图。

【具体实施方式】
[0083]为使本发明的目的、技术方案和优点更加清楚,以下将结合本发明实施例中的附图,通过【具体实施方式】,完整地描述本发明的技术方案。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下获得的所有其他实施例,均落入本发明的保护范围之内。
[0084]实施例一:
[0085]图2给出了本发明实施例一提供的智能终端应用程序的安装验证方法的流程示意图。
[0086]如图2,本实施例一提供的智能终端应用程序的安装验证方法包括以下步骤:
[0087]步骤S21、获取智能终端系统层中预存储的第一公钥;
[0088]本步骤中,获取的第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0089]步骤S22、根据第一公钥判断待安装应用程序是否满足安装条件,如果不满足,则执行步骤S23、禁止安装待安装应用程序;如果满足,则执行步骤S24、允许安装待安装应用程序。
[0090]本发明实施例一提供的智能终端应用程序的安装验证方法在安装应用程序前利用系统层预存储的第一公钥判断应用程序是否满足安装条件,只有满足时才能安装,能够确保在终端设备上的应用程序是经过认证的合法程序,有效防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。
[0091]实施例二:
[0092]图3给出了本发明实施例二提供的智能终端应用程序的安装验证方法的流程示意图。
[0093]如图3所示,本发明实施例二提供的智能终端应用程序的安装验证方法包括以下步骤:
[0094]步骤S31、获取智能终端系统层中预存储的第一公钥;
[0095]本步骤中,获取的第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0096]步骤S32、获取携带待安装应用程序的应用程序数据包;
[0097]本步骤中,获取的应用程序数据包除携带有待安装应用程序外,还携带有利用第一私钥获得的第一签名数据,签名者需要对第一私钥进行保密。
[0098]本步骤中,第一签名数据可以利用RSA签名算法得到,RSA是非对称加密算法,其签名原理如图4所示,针对开发者发布的发布应用程序包18添加文件头HEADER41,再使用第一私钥42,利用RSA签名算法43对其进行签名,生成第一签名数据44,将第一签名数据44放在文件中,形成应用程序数据包45。
[0099]其中,RSA签名算法可以采用RSASSA_PKCS1_V1_5/SHA1标准,公钥长度可以为2048bit,公钥指数可以为3或65537。
[0100]其中,第一签名数据的大小可以是256Byte。HEADER包括Magic-WorcU类型标识(Type)、版本标识(Vers1n)和长度标识(Length)。其中,Magic-Word的大小可以是4Byte ;类型标识的大小可以是4Byte,其用来标识待安装应用程序的类型,对于安卓系统的待安装应用程序,其取值可以为O ;版本标识的大小可以是4Byte,其用来标识待安装应用程序的版本号,其可以采用小端格式进行存储,其格式可以为8个4位BCD码,例如:YYMMDDHH ;长度标识的大小可以是4Byte,其用来标识待安装应用程序的长度,其可以采用小端格式进行存储。HEADER和原始应用程序为需要签名的区域范围,称为“待校验区域”,第一签名数据由“待校验区域”的摘要值经签名算法生成,放置在第一签名数据区域。待签名apk_to_sign.bin (即“待校验区域”)格式为:Magic-fford(4Byte) +Type (4Byte) +Vers1n (4Byte)+Length(4Byte)+原始应用程序。签名后的apk_signed.bin格式为:第一签名数据(256Byte)+apk_to_sign.bin。
[0101]步骤S33、根据预存储的第一公钥和第一签名数据对待安装应用程序进行验证,如果验证失败,则执行步骤S34、禁止安装待安装应用程序;如果验证成功,则执行步骤S35、允许安装待安装应用程序。
[0102]本步骤中,验证是在智能终端上完成的,在应用程序安装的入口处进行验证,验证的算法可以是RSA验证算法,其验证原理如图5所示,对应用程序数据包45进行分解,分解出第一签名数据44和携带有待安装应用程序的其它部分51,使用系统层中预存储的第一公钥52和第一签名数据44,利用RSA验证算法53判断待安装应用程序是否验证成功54,如果验证成功,则去掉HEADER允许安装待安装应用程序55 ;如果验证失败,则禁止安装待安装应用程序56。
[0103]本实施例中,步骤S32也可以在步骤S31之前。
[0104]本实施例二提供的智能终端应用程序的安装验证方法确保在智能终端上的应用程序是经过认证的合法程序,能够有效抵抗恶意压缩包攻击,防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。
[0105]实施例三:
[0106]图6给出了本发明实施例三提供的智能终端应用程序的安装验证方法的流程示意图。
[0107]如图6所示,本发明实施例三提供的智能终端应用程序的安装验证方法包括以下步骤:
[0108]步骤S61、获取智能终端系统层中预存储的第一公钥;
[0109]本步骤中,获取的第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0110]步骤S62、获取携带待安装应用程序的应用程序数据包;
[0111]本步骤中,获取的应用程序数据包中除携带有待安装应用程序外,还携带有利用第一私钥获得的第二签名数据和应用程序公钥,签名者需要对第一私钥进行保密。
[0112]本步骤中,第二签名数据可以利用RSA签名算法得到,使用第一私钥,利用RSA签名算法对其进行签名的签名原理如图7所示,对开发者发布的发布应用程序包18进行分解,分解出原始应用程序包11,对原始应用程序包11使用第一私钥71,利用RSA签名算法72对其进行签名,生成第二签名数据73,将第二签名数据73和应用程序公钥74放在文件中,形成应用程序数据包75。
[0113]步骤S63、判断预存储的第一公钥与应用程序公钥是否匹配;
[0114]本步骤中,对预存储的第一公钥与应用程序公钥是否匹配进行判断,如果不匹配,则执行步骤S64、禁止安装待安装应用程序;如果匹配,则执行步骤S65、根据应用程序公钥和第二签名数据对待安装应用程序进行验证,如果验证失败,则执行步骤S64、禁止安装待安装应用程序;如果验证成功,则执行步骤S65、允许安装待安装应用程序。
[0115]步骤S65中的验证的算法可以是RSA验证算法,其匹配及验证原理如图8所示,对应用程序数据包75进行分解,分解出应用程序公钥74、第二签名数据73和原始应用程序包11,首先判断系统层中预存储的第一公钥81和应用程序公钥74是否匹配82,如果不匹配,则禁止安装待安装应用程序83 ;如果匹配,则使用应用程序公钥74、第二签名数据73,利用RSA验证算法84判断待安装应用程序是否验证成功85,如果验证失败,则禁止安装待安装应用程序83 ;如果验证成功,则允许安装待安装应用程序86。
[0116]实施例四:
[0117]图9给出了本发明实施例四提供的智能终端应用程序的安装验证方法的流程示意图。
[0118]如图9所示,本发明实施例四提供的智能终端应用程序的安装验证方法包括以下步骤:
[0119]步骤S91、获取智能终端系统层中预存储的第一公钥;
[0120]本步骤中,获取的第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0121]步骤S92、获取携带待安装应用程序的应用程序数据包;
[0122]本步骤中,获取的应用程序数据包中除携带有待安装应用程序外,还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书,签名者需要对第一私钥进行保密。
[0123]本步骤中,第三签名数据可以利用RSA签名算法得到;证书可以利用第一私钥对开发者公钥进行签名得到,签名的算法可以是RSA签名算法。使用开发者私钥,利用RSA签名算法对其进行签名和利用第一私钥对其进行签名的签名原理如图10所示,一方面,利用RSA签名算法101,使用开发者私钥102对原始应用程序包103进行签名,得到第三签名数据104 ;另一方面,利用RSA算法105,使用第一私钥106对开发者公钥107进行签名,得到证书108,将第三签名数据104和证书108放入程序包内,形成应用程序数据包109。
[0124]步骤S93、利用预存储的第一公钥对证书进行验证;
[0125]本步骤中,利用预存储的第一公钥对应用程序数据包中的证书进行验证,如果验证失败,则执行步骤S94、禁止安装待安装应用程序;如果验证成功,则执行步骤S95、根据开发者公钥和第三签名数据对待安装应用程序进行验证,如果验证失败,则执行步骤S94、禁止安装待安装应用程序;如果验证成功,则执行步骤S95、允许安装待安装应用程序。
[0126]步骤S95中的验证的算法可以是RSA验证算法,其验证原理如图11所示,对应用程序数据包109进行分解,分解出证书108、第三签名数据104和原始应用程序包103,首先利用系统层中预存储的第一公钥111对证书108进行验证112,如果验证失败,则禁止安装待安装应用程序113 ;如果验证成功,则将证书108分解,得到开发者公钥107,使用开发者公钥107和第三签名数据104,利用RSA验证算法114判断待安装应用程序是否验证成功115,如果验证失败,则禁止安装待安装应用程序113 ;如果验证成功,则允许安装待安装应用程序116。
[0127]实施例五:
[0128]图12给出了本发明实施例五提供的智能终端应用程序的安装验证方法的流程示意图。
[0129]如图12所示,本发明实施例五提供的智能终端应用程序的安装验证方法包括以下步骤:
[0130]步骤S121、获取智能终端芯片中预存储的第三公钥;
[0131]本步骤中,获取的第三公钥是预先存储在芯片的BootROM中的,用来验证Boot层。
[0132]步骤S122、根据预存储的第三公钥和Boot层中的签名数据对Boot层验证,只有验证成功后才允许执行下一步;
[0133]本步骤中,验证Boot层包括芯片验证Boot、Boot验证恢复模块(Recovery)和恢复模块(Recovery)验证升级包。
[0134]步骤S123、获取智能终端Boot层中预存储的第二公钥;
[0135]本步骤中,获取的第二公钥是预先存储在Boot层中的,用来验证系统层。
[0136]步骤S124、根据预存储的第二公钥和系统层中的签名数据对系统层进行验证,只有验证成功后才允许执行下一步;
[0137]本步骤中,验证系统层包括验证内核(Kernel)和系统(System),安全的内核能够保护系统分区及预存储的第一公钥的安全,防止第一公钥被篡改或替换。
[0138]步骤S125、获取智能终端系统层中预存储的第一公钥;
[0139]本步骤中,获取的第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0140]步骤S126、根据第一公钥判断待安装应用程序是否满足安装条件,如果不满足,则执行步骤S127、禁止安装待安装应用程序;如果满足,则执行步骤S128、允许安装待安装应用程序。
[0141]本实施例五提供的智能终端应用程序的安装验证方法通过预先将每个组件进行签名,并将签名添加到组件中,后一环节的验证公钥预先保存在前一环节中,并被前一环节验证,实现了从底层开始的安全启动机制的保护,安全启动机制是基于一种自底向上的信任链,如图13所示,在信任链中的每个组件,都应在验证其后装入的组件成功后,再移交控制权。从底层安全芯片到上层应用程序,采用数字签名技术建立信任链,只有在信任链中的前面环节都通过签名校验后,信任链的后一环节才能启动。此方法不仅确保了在智能终端上的应用程序是经过认证的合法程序,还确保了智能终端上的操作系统的安全性。
[0142]实施例六:
[0143]图14给出了本发明实施例六提供的智能终端应用程序的安装验证系统的结构示意图。
[0144]如图14所示,本发明实施例六提供的智能终端应用程序的安装验证系统包括:
[0145]第一公钥获取模块A141,用于获取智能终端系统层中预存储的第一公钥;
[0146]本实施例中,第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0147]应用程序安装条件判断模块A142,用于根据预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装待安装应用程序,如果不满足,则禁止安装待安装应用程序。
[0148]本实施例六提供的智能终端应用程序的安装验证系统在安装应用程序前利用系统层预存储的第一公钥判断应用程序是否满足安装条件,只有满足时才能安装,能够确保在终端设备上的应用程序是经过认证的合法程序,有效防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。
[0149]实施例七:
[0150]图15给出了本发明实施例七提供的智能终端应用程序的安装验证系统的结构示意图。
[0151]如图15所示,本发明实施例七提供的智能终端应用程序的安装验证系统包括:
[0152]第一公钥获取模块A151,用于获取智能终端系统层中预存储的第一公钥;
[0153]本实施例中,第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0154]第一应用程序数据包获取模块A152,用于获取携带待安装应用程序的应用程序数据包;
[0155]本实施例中,应用程序数据包除携带有待安装应用程序外,还携带有利用第一私钥获得的第一签名数据。第一签名数据可以利用RSA签名算法得到,其签名原理如实施例二中所述。
[0156]第一应用程序验证模块A153,用于根据预存储的第一公钥和第一签名数据对待安装应用程序进行验证,如果验证成功,则允许安装待安装应用程序,如果验证失败,则禁止安装待安装应用程序。
[0157]本实施例中,验证是在智能终端上完成的,在应用程序安装的入口处进行验证,验证的算法可以是RSA验证算法,其验证原理如实施例二中所述。
[0158]本实施例七提供的智能终端应用程序的安装验证系统确保在智能终端上的应用程序是经过认证的合法程序,能够有效抵抗恶意压缩包攻击,防止安装非法的应用程序,确保终端应用可管可控,可以防止有害信息的非法侵入和传播,保护运营商和用户的利益。
[0159]实施例八:
[0160]图16给出了本发明实施例八提供的智能终端应用程序的安装验证系统的结构示意图。
[0161]如图16所示,本发明实施例八提供的智能终端应用程序的安装验证系统包括:
[0162]第一公钥获取模块A161,用于获取智能终端系统层中预存储的第一公钥;
[0163]本实施例中,第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0164]第二应用程序数据包获取模块A162,用于获取携带待安装应用程序的应用程序数据包;
[0165]本实施例中,应用程序数据包中除携带有待安装应用程序外,还携带有利用第一私钥获得的第二签名数据和应用程序公钥。第二签名数据可以利用RSA签名算法得到,其签名原理如实施例三中所述。
[0166]第二应用程序匹配模块A163,用于判断预存储的第一公钥与应用程序公钥是否匹配,如果匹配,则继续验证待安装应用程序是否满足安装条件,如果不匹配,则禁止安装待安装应用程序;
[0167]第二应用程序验证模块A164,用于预存储的第一公钥与应用程序公钥匹配时,根据应用程序公钥和第二签名数据对待安装应用程序进行验证,如果验证成功,则允许安装待安装应用程序,如果验证失败,则禁止安装待安装应用程序。
[0168]本实施例中,验证的算法可以是RSA验证算法,其验证原理如实施例三中所述。
[0169]实施例九:
[0170]图17给出了本发明实施例九提供的智能终端应用程序的安装验证系统的结构示意图。
[0171]如图17所示,本发明实施例九提供的智能终端应用程序的安装验证系统包括:
[0172]第一公钥获取模块A171,用于获取智能终端系统层中预存储的第一公钥;
[0173]本实施例中,第一公钥是预先存储在系统层中的,用来判断待安装应用程序是否满足安装条件。
[0174]第三应用程序数据包获取模块A172,用于获取携带待安装应用程序的应用程序数据包;
[0175]本实施例中,应用程序数据包中除携带有待安装应用程序外,还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书。第三签名数据可以利用RSA签名算法得到,其签名原理如实施例四中所述。
[0176]证书验证模块A173,用于利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序;
[0177]第三应用程序验证模块A174,用于根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
[0178]本实施例中,验证的算法可以是RSA验证算法,其验证原理如实施例四中所述。
[0179]实施例十:
[0180]图18给出了本发明实施例十提供的智能终端应用程序的安装验证系统的结构示意图。
[0181]如图18所示,与实施例六相比,本发明实施例十提供的智能终端应用程序的安装验证系统还包括:
[0182]第三公钥获取模块A181,用于获取智能终端终端芯片中预存储的第三公钥;
[0183]本实施例中,第三公钥是预先存储在芯片的BootROM中的,用来验证Boot层。
[0184]Boot层验证模块A182,用于根据所述预存储的第三公钥和Boot层中的签名数据对Boot层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一
I K
少;
[0185]本实施例中,验证Boot层包括芯片验证Boot、Boot验证恢复模块(Recovery)和恢复模块(Recovery)验证升级包。
[0186]第二公钥获取模块A183,用于获取智能终端Boot层中预存储的第二公钥;
[0187]本实施例中,第二公钥是预先存储在Boot层中的,用来验证系统层。
[0188]系统层验证模块A184,用于根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
[0189]本实施例中,验证系统层包括验证内核(Kernel)和系统(System),安全的内核能够保护系统分区及预存储的第一公钥的安全,防止第一公钥被篡改或替换。
[0190]本实施例十提供的智能终端应用程序的安装验证系统通过预先将每个组件进行签名,并将签名添加到组件中,后一环节的验证公钥预先保存在前一环节中,并被前一环节验证,实现了从底层开始的安全启动机制的保护,安全启动机制是基于一种自底向上的信任链,在信任链中的每个组件,都应在验证其后装入的组件成功后,再移交控制权。从底层安全芯片到上层应用程序,采用数字签名技术建立信任链,只有在信任链中的前面环节都通过签名校验后,信任链的后一环节才能启动。此方法不仅确保了在智能终端上的应用程序是经过认证的合法程序,还确保了智能终端上的操作系统的安全性。
[0191]上述仅为本发明的较佳实施例及所运用的技术原理。本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求的范围决定。
【权利要求】
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层验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
12.—种智能终端应用程序的安装验证系统,其特征在于,包括: 第一公钥获取模块,用于获取智能终端系统层中预存储的第一公钥; 应用程序安装条件判断模块,用于根据所述预存储的第一公钥判断待安装应用程序是否满足安装条件,如果满足,则允许安装所述待安装应用程序,如果不满足,则禁止安装所述待安装应用程序。
13.根据权利要求12所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第一应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第一签名数据, 所述应用程序安装条件判断模块包括: 第一应用程序验证模块,用于根据所述预存储的第一公钥和所述第一签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序。
14.根据权利要求13所述的智能终端应用程序的安装验证系统,其特征在于,所述第一签名数据是利用RSA签名算法得到的,所述验证的算法为RSA验证算法。
15.根据权利要求12所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第二应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用第一私钥获得的第二签名数据和应用程序公钥, 所述应用程序安装条件判断模块包括: 第二应用程序匹配模块,用于判断所述预存储的第一公钥与所述应用程序公钥是否匹配,如果匹配,则继续验证所述待安装应用程序是否满足安装条件,如果不匹配,则禁止安装所述待安装应用程序。
16.根据权利要求15所述的智能终端应用程序的安装验证系统,其特征在于,所述第二签名数据是利用RSA签名算法得到的。
17.根据权利要求16所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第二应用程序验证模块,用于所述预存储的第一公钥与所述应用程序公钥匹配时,根据所述应用程序公钥和所述第二签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
18.根据权利要求12所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第三应用程序数据包获取模块,用于获取携带所述待安装应用程序的应用程序数据包,所述应用程序数据包中还携带有利用开发者私钥获得的第三签名数据和利用第一私钥对开发者公钥进行签名获得的证书, 所述应用程序安装条件判断模块包括: 证书验证模块,用于利用所述预存储的第一公钥对所述证书进行验证,如果验证成功,则继续验证所述待安装应用程序是否满足安装条件,如果验证失败,则禁止安装所述待安装应用程序。
19.根据权利要求18所述的智能终端应用程序的安装验证系统,其特征在于,所述第三签名数据是利用RSA签名算法得到的。
20.根据权利要求19所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第三应用程序验证模块,用于根据所述开发者公钥和所述第三签名数据对所述待安装应用程序进行验证,如果验证成功,则允许安装所述待安装应用程序,如果验证失败,则禁止安装所述待安装应用程序,所述验证的算法为RSA验证算法。
21.根据权利要求11-20任一所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第二公钥获取模块,用于获取智能终端Boot层中预存储的第二公钥; 系统层验证模块,用于根据所述预存储的第二公钥和系统层中的签名数据对系统层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
22.根据权利要求21所述的智能终端应用程序的安装验证系统,其特征在于,还包括: 第三公钥获取模块,用于获取智能终端芯片中预存储的第三公钥; Boot层验证模块,用于根据所述预存储的第三公钥和Boot层中的签名数据对Boot层进行验证,如果验证成功,则允许执行下一步,如果验证失败,则禁止执行下一步。
【文档编号】G06F21/51GK104331658SQ201410646170
【公开日】2015年2月4日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】郭永伟, 王天星, 李伟东, 李红艳 申请人:北京视博数字电视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1