一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种终端设备的应用验签方法、装置及终端设备与流程

2022-03-22 23:17:35 来源:中国专利 TAG:


1.本公开涉及但不限于移动安全技术领域,尤其涉及一种终端设备的应用验签方法、装置及终端设备。


背景技术:

2.对于终端设备来说,需要保证经过授权的应用才能安装到终端设备上,以保证终端设备的安全性、可靠性和稳定性。
3.而作为金融领域的终端设备,则对应用的安全性要求更高,需要提高安全管控力度,保证可控性,传统的应用验签方式依然存在巨大的隐患,难以直接应用到金融领域;此外,也存在多个软件集成商提供不同应用的情况,而如何灵活方便的针对多个不同的应用进行有效管控,也是亟待解决的问题。


技术实现要素:

4.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
5.本公开实施例提供了一种终端设备的应用验签方法、装置及终端设备,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
6.第一方面,本公开实施例提供了一种终端设备的应用验签方法,包括:
7.接收apk文件的安装请求;其中,所述apk文件包括原生apk文件和apk签名块,所述apk签名块包括授权签名块和原生签名块,所述授权签名块包括工作证书;所述工作证书通过采用根私钥将工作公钥和所述apk文件的签名者信息进行加密生成,所述根私钥和根公钥为一组根密钥对,所述工作公钥和工作私钥为一组工作密钥对;
8.读取预先存储的根证书,根据所述根证书验证所述工作证书的合法性;其中,所述根证书通过采用根私钥将根公钥进行加密生成;若所述工作证书验证通过,则基于所述工作证书验证所述授权签名块的合法性;
9.若所述授权签名块验证通过,则对所述原生签名块进行验签;
10.若所述原生签名块验证通过,则安装所述apk文件。
11.在一些实施例中,所述根据所述根证书验证所述工作证书的合法性,包括:
12.提取所述apk签名块中的授权签名块,并将所述授权签名块从所述apk签名块中删掉;
13.解压所述授权签名块得到工作证书;
14.使用所述根证书验证所述工作证书的合法性,如果验签失败,则确定所述apk文件非法,如果验签成功,则确定所述工作证书验证通过。
15.在一些实施例中,所述授权签名块还包括:签名信息和签名数据,所述基于所述工作证书验证所述授权签名块的合法性,包括:
16.解压所述授权签名块得到签名信息和签名数据,从所述工作证书中提取出工作公
钥,并解析得到所述apk文件中的原生apk文件;
17.将所述签名信息添加到所述apk文件所包含的二进制文件的末尾,并将所述原生apk文件和签名信息合并,对合并后的数据进行哈希运算得到hash摘要值;
18.对所述签名数据、所述工作公钥和所述hash摘要值进行验签,如果验签失败,则确定所述apk文件非法,如果验签成功则确定所述授权签名块验证通过。
19.在一些实施例中,所述签名信息包括工作证书的id号、数字签名算法、签名时间中至少一种。
20.在一些实施例中,所述签名数据采用以下方法确定:
21.对所述签名信息进行哈希运算得到摘要值,采用所述工作私钥对所述摘要值进行签名操作,生成签名数据。
22.在一些实施例中,所述根证书预置于所述终端设备的se安全芯片中;所述方法还包括:
23.当从所述se安全芯片中读取根证书时,触发终端设备自动擦除所述根证书,并锁住所述终端设备的操作系统。
24.第二方面,本公开实施例还提供了一种终端设备的应用验签装置,所述终端设备的应用验签装置包括:
25.接收模块,用于接收apk文件的安装请求;其中,所述apk文件包括原生apk文件和apk签名块,所述apk签名块包括授权签名块和原生签名块,所述授权签名块包括工作证书;所述工作证书通过采用根私钥将工作公钥和所述apk文件的签名者信息进行加密生成,所述根私钥和根公钥为一组根密钥对,所述工作公钥和工作私钥为一组工作密钥对;
26.第一验证模块,用于读取预先存储的根证书,根据所述根证书验证所述工作证书的合法性;其中,所述根证书通过采用根私钥将根公钥进行加密生成;
27.第二验证模块,用于若所述工作证书验证通过,则基于所述工作证书验证所述授权签名块的合法性;
28.第三验证模块,用于若所述授权签名块验证通过,则对所述原生签名块进行验签;
29.安装模块,用于若所述原生签名块验证通过,则安装所述apk文件。
30.第三方面,本公开实施例还提供了一种终端设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的终端设备的应用验签方法。
31.第四方面,本公开实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如第一方面所述的终端设备的应用验签方法。
32.本公开实施例包括:接收apk文件的安装请求;其中,所述apk文件包括原生apk文件和apk签名块,所述apk签名块包括授权签名块和原生签名块,所述授权签名块包括工作证书;所述工作证书通过采用根私钥将工作公钥和所述apk文件的签名者信息进行加密生成,所述根私钥和根公钥为一组根密钥对,所述工作公钥和工作私钥为一组工作密钥对;读取预先存储的根证书,根据所述根证书验证所述工作证书的合法性;其中,所述根证书通过采用根私钥将根公钥进行加密生成;若所述工作证书验证通过,则基于所述工作证书验证所述授权签名块的合法性;若所述授权签名块验证通过,则对所述原生签名块进行验签;若所述原生签名块验证通过,则安装所述apk文件。
33.本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
34.附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
35.图1是本公开一个实施例提供的终端设备的应用验签方法的流程图;
36.图2是本公开一个实施例提供的apk文件的结构改进对比示意图;
37.图3是本公开一个实施例提供的终端设备的应用验签装置的结构示意图;
38.图4是本公开另一个实施例提供的终端设备的结构图。
具体实施方式
39.为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
40.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
41.如图1所示,图1是本公开一个实施例提供的一种终端设备的应用验签方法的流程图,在该方法中,包括但不限于有以下步骤:
42.步骤s100,接收apk文件的安装请求;其中,所述apk文件包括原生apk文件和apk签名块,所述apk签名块包括授权签名块和原生签名块,所述授权签名块包括工作证书;所述工作证书通过采用根私钥将工作公钥和所述apk文件的签名者信息进行加密生成,所述根私钥和根公钥为一组根密钥对,所述工作公钥和工作私钥为一组工作密钥对;
43.步骤s200,读取预先存储的根证书,根据所述根证书验证所述工作证书的合法性;其中,所述根证书通过采用根私钥将根公钥进行加密生成;
44.步骤s300,若所述工作证书验证通过,则基于所述工作证书验证所述授权签名块的合法性;
45.步骤s400,若所述授权签名块验证通过,则对所述原生签名块进行验签;
46.步骤s500,若所述原生签名块验证通过,则安装所述apk文件。
47.本公开提供的实施例中,终端设备接收到安装嵌有原生apk文件和apk签名块的apk文件的请求时,首先进行授权签名块的验签,然后进行原生签名块的验签。具体地,终端设备使用根证书验证apk文件中工作证书的合法性,验证通过后,再基于工作证书验证授权签名块的合法性,验证通过后,还需要进行原生签名块验签,如果有任何一个步骤验证不通过,就无法安装apk文件,通过多个步骤进行验签,有效提高了安装apk文件的安全可靠性;采用根私钥将根公钥进行加密,生成根证书,能够使根公钥真实可信,防止他人伪造根公钥。采用根证书和工作证书的两级证书结构可适用于多个被授权的签名者(比如多个软件
集成商),每个被授权的签名者各自申请一个工作证书,每个所述工作证书分别对应不同的签名者信息,方便根据apk文件的签名者信息追溯到签名者,进行精细化管控。本公开提供的终端设备的应用验签方法不仅安全可靠,也灵活方便。
48.在一些实施例中,根证书由终端设备厂商的服务器生成并预先存储在终端设备中,所述工作密钥对由所述apk文件的签名者的服务器生成;签名者的服务器将工作公钥和签名者信息发送给终端设备厂商的服务器,工作证书由终端设备厂商的服务器生成并签名颁发给与所述签名者信息对应的签名者,以对所述签名者授权,所述签名者信息用于表征授权签名者的身份信息。在一实施例中,根证书和工作证书采用x.509格式,使用国密算法加密。
49.另外,在步骤s200中,所述根据所述根证书验证所述工作证书的合法性,包括但不限于有以下步骤:
50.步骤s210,提取所述apk签名块中的授权签名块,并将所述授权签名块从所述apk签名块中删掉;
51.步骤s220,解压所述授权签名块得到工作证书;
52.步骤s230,使用所述根证书验证所述工作证书的合法性,如果验签失败,则确定所述apk文件非法,如果验签成功,则确定所述工作证书验证通过。
53.需要说明的是,授权签名块(signature-data-block,sdb)采用der编码格式,用于描述签名相关信息。
54.另外,在步骤s300中,所述授权签名块还包括:签名信息和签名数据,所述基于所述工作证书验证所述授权签名块的合法性,包括但不限于有以下步骤:
55.步骤s310,解压所述授权签名块得到签名信息和签名数据,从所述工作证书中提取出工作公钥,并解析得到所述apk文件中的原生apk文件;
56.步骤s320,将所述签名信息添加到所述apk文件所包含的二进制文件的末尾,并将所述原生apk文件和签名信息合并,对合并后的数据进行哈希运算得到hash摘要值;
57.步骤s330,对所述签名数据、所述工作公钥和所述hash摘要值进行验签,如果验签失败,则确定所述apk文件非法,如果验签成功则确定所述授权签名块验证通过。
58.另外,在一些实施例中,所述签名信息包括工作证书的id号、数字签名算法、签名时间中至少一种。
59.本公开提供的实施例中,授权签名块sdb包括签名信息主体、签名数据、工作证书,工作证书中包含签名者信息,方便根据apk文件的签名者信息追溯到签名者,有助于对签名者和apk文件进行细化管控。
60.另外,在一些实施例中,所述签名数据采用以下方法确定:
61.对所述签名信息进行哈希运算得到摘要值,采用所述工作私钥对所述摘要值进行签名操作,生成签名数据。
62.下面以一具体示例对上述实施例中的步骤s200和步骤s300进行举例说明:
63.a)分离:
64.先从所述apk签名块中将所述授权签名块拷贝出来,然后删掉所述授权签名块,并还原所述apk文件中的原生apk文件,其中,所述授权签名块为zip压缩包。
65.其中,所述授权签名块包括:签名信息、签名数据和工作证书;
66.b)解析:
67.解压所述授权签名块得到签名信息、签名数据、以及工作证书。
68.c)工作证书验签:
69.使用终端设备中保存在se安全芯片的根证书验证所述工作证书的合法性,如果验签失败则证明是非法apk文件,如果验签成功,则从所述工作证书中提取出工作公钥。
70.d)sm3哈希运算:
71.将所述签名信息添加到所述apk文件所包含的二进制文件的末尾,并将所述原生apk文件和签名信息合并,对合并后的数据进行sm3哈希运算得到hash摘要值。从而实现了将原生apk文件和签名信息的合并。
72.e)签名验签:
73.对所述签名数据、所述工作公钥和所述hash摘要值使用sm2验签算法进行验签,如果验签失败,则确定所述apk文件非法,如果验签成功,则确定所述授权签名块验证通过。
74.上面总结了授权签名的验签过程,验签成功后,接着进行原生签名块的验签,验签通过后整个验证流程才结束。
75.另外,在一实施例中,所述根证书预置于所述终端设备的se安全芯片中;所述方法还包括但不限于有以下步骤:
76.当从所述se安全芯片中读取根证书时,触发终端设备自动擦除所述根证书,并锁住所述终端设备的操作系统。
77.需要说明的是,根证书由终端设备厂商保管,在生产终端设备的时候,由终端设备厂商的授权工作人员在安全的作业区域,采用证书写入工具将根证书写入到终端设备的se安全芯片中的flash区域;通过将根证书预置在终端设备的se安全芯片中,由终端设备的硬件结构和固件进行保护,如果有人尝试通过拆机的手段从se安全芯片中读取根证书,会触发终端设备的防拆保护机制,通过自动擦除根证书,并霸屏锁住终端设备系统,使得终端设备无法正常使用,从而有效保护终端设备,并使所述根公钥真实可信,防止他人伪造根公钥。
78.需要说明的是,android7.0及更高版本的安卓操作系统支持apk文件签名方案,所述apk文件签名方案包含v2签名方案及更高版本的签名方案,例如,在android9中,v2签名方案已更新为v3签名方案,以在原生签名块中新增其他信息。
79.参考图2,本实施例中,授权的签名者用工作私钥对将原生apk文件进行哈希运算,以对原生apk进行签名,生成原生签名块,然后将生成的原生签名块插入到apk文件中。使用v2签名方案对apk文件进行签名时,在apk文件中插入一个原生签名块,所述原生签名块位于apk文件的“zip中央目录”之前且紧邻所述“zip中央目录”。
80.本公开提供的实施例中,基于对apk文件的原生签名格式进行改进,通过在原生签名块的基础上增加授权签名块,既可以添加已授权的签名者的签名信息,又可以保证所添加的签名信息不会影响对原生apk文件的安装验签流程。
81.另外,参考图3,在一实施例中,还提供了一种终端设备的应用验签装置,终端设备的应用验签装置包括;
82.接收模块100,用于接收apk文件的安装请求;其中,所述apk文件包括原生apk文件和apk签名块,所述apk签名块包括授权签名块和原生签名块,所述授权签名块包括工作证
书;所述工作证书通过采用根私钥将工作公钥和所述apk文件的签名者信息进行加密生成,所述根私钥和根公钥为一组根密钥对,所述工作公钥和工作私钥为一组工作密钥对;
83.第一验证模块200,用于读取预先存储的根证书,根据所述根证书验证所述工作证书的合法性;其中,所述根证书通过采用根私钥将根公钥进行加密生成;
84.第二验证模块300,用于若所述工作证书验证通过,则基于所述工作证书验证所述授权签名块的合法性;
85.第三验证模块400,用于若所述授权签名块验证通过,则对所述原生签名块进行验签;
86.安装模块500,用于若所述原生签名块验证通过,则安装所述apk文件。
87.另外,参照图4,本公开的一个实施例还提供了一种终端设备10,该终端设备10包括:存储器11、处理器12及存储在存储器11上并可在处理器12上运行的计算机程序。
88.处理器12和存储器11可以通过总线或者其他方式连接。
89.实现上述实施例的终端设备的应用验签方法所需的非暂态软件程序以及指令存储在存储器11中,当被处理器12执行时,执行上述实施例中的终端设备的应用验签方法。
90.此外,本公开的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述电子设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的终端设备的应用验签方法。
91.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
92.以上是对本公开的较佳实施进行了具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本公开权利要求所限定的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献