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

一种应用签名方法、装置、设备及存储介质与流程

2022-06-16 02:42:24 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,尤其涉及一种应用签名方法、装置、设备及存储介质。


背景技术:

2.随着移动互联网业务的蓬勃发展,移动智能终端逐渐普及,因此,信息安全重心也从互联网逐渐向移动互联网转移。在移动智能终端上,各种应用层出不穷,区别合法且安全的应用尤为重要。在现有技术中,一般使用签名文件对应用进行签名。应用的签名,可以保证应用的可信度和完整性,在应用出现问题时可进行追溯,因此在一定程度上可以保证应用的合法性。
3.现有的应用签名技术,一般是应用的开发者在开发过程中自己使用签名文件对应用进行签名。这种方案下签名文件非常容易泄露,使得恶意软件的开发者盗用这些合法的签名文件,使用合法的签名文件对恶意软件进行签名,造成恶意软件可以随意安装在移动智能终端上。这种行为会对签名文件所属的公司或者企业造成极大的负面影响。因此,如何保证签名文件不外泄是一个亟需解决的问题。


技术实现要素:

4.本技术提供一种应用签名方法、装置、设备及存储介质,有效防止了签名文件的泄漏。
5.第一方面,本技术提供一种应用签名方法,该方法包括:接收目标应用的安装包;根据目标应用的标识,从服务器中获取目标应用的签名文件,其中,服务器存储有申请过签名的应用的标识和对应签名文件;采用目标应用的签名文件,对目标应用的安装包进行签名。
6.一种可能的实现方式中,根据目标应用的标识,从服务器中获取目标应用的签名文件之前,方法还包括:确定目标应用运行的操作系统;若目标应用运行的操作系统为安卓系统,则确定目标应用未签名;或者,若目标应用运行的操作系统为ios系统,则确定目标应用已采用调试签名证书和对应描述文件进行签名。
7.另一种可能的实现方式中,上述方法还包括:接收创建请求,创建请求用于请求创建目标应用的签名文件;响应创建请求,确定目标应用运行的操作系统;根据目标应用运行的操作系统,创建目标应用的签名文件;将目标应用的签名文件和目标应用的标识关联存储在服务器中。
8.又一种可能的实现方式中,根据目标应用运行的操作系统,创建目标应用的签名文件,包括:若目标应用运行的操作系统为安卓系统,则创建目标应用的签名证书;若目标应用运行的操作系统为ios系统,则创建目标应用的发布签名证书和对应描述文件。
9.又一种可能的实现方式中,上述方法还包括:若目标应用运行的操作系统为安卓系统,则显示目标应用的签名证书的指纹信息,用于开发人员对目标应用进行调试;若目标
应用运行的操作系统为ios系统,则显示目标应用的调试签名证书和对应的描述文件的下载入口信息,下载入口信息用于开发人员下载目标应用的调试签名证书和对应的描述文件,以进行目标应用的调试签名。
10.又一种可能的实现方式中,上述方法还包括:接收上传至平台的目标应用的校验信息;查询服务器中是否存在校验信息;若存在,则确定目标应用的签名合法;若不存在,则确定目标应用的签名不合法。
11.可以理解,本方案通过查询服务器中是否存在应用的校验信息,以确定该应用签名的合法性,为其他三方平台提供签名的合法性验证的方案,可以有效防止开发人员私自生成签名文件对应用进行签名,在应用出现问题时可进行追溯,进一步的提高了签名文件的安全性。
12.本技术提供的应用签名方法,接收目标应用的安装包,根据目标应用的标识从服务器中获取该目标应用的签名文件,以对目标应用的安装包进行签名。由于签名文件是从服务器中获取,可以避免开发者接触到签名文件,相较于开发者自行创建并发送签名文件以对应用进行签名的方式,本方案使得开发者无需自己创建及私下发送签名文件,便可实现对应用的签名。在不影响开发者的开发流程下,有效地防止了签名文件的泄露,保证签名文件的安全性,防止签名文件的泄露对公司或企业造成的负面影响。
13.第二方面,本技术提供一种应用签名装置,该装置包括:接收模块、获取模块和签名模块;接收模块,用于接收目标应用的安装包;获取模块,根据目标应用的标识,从服务器中获取目标应用的签名文件,其中,服务器存储有申请过签名的应用的标识和对应签名文件;签名模块,用于采用目标应用的签名文件,对目标应用的安装包进行签名。
14.一种可能的实现方式中,上述装置还包括:确定模块;确定模块,用于确定所述目标应用运行的操作系统;若所述目标应用运行的操作系统为安卓系统,则确定所述目标应用未签名;或者,若所述目标应用运行的操作系统为ios系统,则确定所述目标应用已采用调试签名证书和对应描述文件进行签名。
15.另一种可能的实现方式中,上述装置还包括:创建模块。接收模块,还用于接收创建请求,创建请求用于请求创建目标应用的签名文件;确定模块,还用于响应创建请求,确定目标应用运行的操作系统;创建模块,还用于根据目标应用运行的操作系统,创建目标应用的签名文件;将目标应用的签名文件和目标应用的标识关联存储在服务器中。
16.又一种可能的实现方式中,创建模块,具体用于若目标应用运行的操作系统为安卓系统,则创建目标应用的签名证书;若目标应用运行的操作系统为ios系统,则创建目标应用的发布签名证书和对应描述文件。
17.又一种可能的实现方式中,上述装置还包括:显示模块。显示模块,用于若目标应用运行的操作系统为安卓系统,则显示目标应用的签名证书的指纹信息,用于开发人员对目标应用进行调试;若目标应用运行的操作系统为ios系统,则显示目标应用的调试签名证书和对应的描述文件的下载入口信息,下载入口信息用于开发人员下载目标应用的调试签名证书和对应的描述文件,以进行目标应用的调试签名。
18.又一种可能的实现方式中,上述装置还包括:查询模块。接收模块,还用于接收上传至平台的目标应用的校验信息;查询模块,用于查询服务器中是否存在校验信息;若存在,则确定目标应用的签名合法;若不存在,则确定目标应用的签名不合法。
19.第三方面,本技术提供一种电子设备,该电子设备包括:处理器和存储器;存储器存储有处理器可执行的指令;处理器被配置为执行指令时,使得电子设备实现上述第一方面的方法。
20.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质包括:计算机软件指令;当计算机软件指令在电子设备中运行时,使得电子设备实现上述第一方面的方法。
21.第五方面,本技术提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面描述的相关方法的步骤,以实现上述第一方面的方法。
22.上述第二方面至第五方面的有益效果可以参考第一方面的对应描述,不再赘述。
附图说明
23.图1为本技术提供的一种应用签名方法的应用环境示意图;
24.图2为本技术提供的一种应用签名方法流程示意图;
25.图3为本技术提供的另一种应用签名方法流程示意图;
26.图4为本技术提供的一种安卓系统的目标创建方案流程示意图;
27.图5为本技术提供的又一种应用签名流程示意图;
28.图6为本技术提供的一种签名管理服务平台的组成示意图;
29.图7为本技术提供的一种应用签名装置的组成示意图;
30.图8为本技术提供的一种电子设备的组成示意图。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.需要说明的是,本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
33.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
34.如背景技术的描述,信息安全重心逐渐从互联网向移动互联网转移。如何区别市面上层出不穷的应用,应用签名技术必不可少。但是,现在的应用签名技术存在一些弊端,以最常用的安卓(android)系统和ios系统为例进行说明。
35.安卓系统是谷歌公司开发的自由及开放源代码的操作系统,因此是开放平台。安卓系统上的应用的签名,一般是应用的开发者通过代码技术生成自签名证书,使用自签名证书对应用进行签名。这种开发者自主生成签名证书进行应用签名的方式,容易造成签名证书的泄露。签名证书中可能包含有公司标识等相关信息,签名证书一旦泄露,其他恶意软
件的开发者可能会使用该签名文件对其应用进行签名,导致携带有公司标识的恶意软件在市面上流通,给该公司带来负面的影响。
36.ios系统是由苹果公司开发的移动操作系统,是商业的操作系统,因此ios系统不是开放平台。但是,ios系统上的应用,也是通过签名证书和描述文件对应用进行签名的。这些签名证书和描述文件一旦泄露,其他恶意软件的开发者使用签名证书和描述文件对其应用进行签名后,该应用就可以安装到任意苹果设备上,此种行为会给签名证书和描述文件所属企业带来严重损失以及负面影响。
37.为了便于描述,在本实施例中,将用于对应用进行签名的文件称为签名文件。不同操作系统中签名文件具体包括的文件可能不同,当然也可能相同。如,在安卓系统中,该签名文件可以为签名证书。又如,在ios系统中,该签名文件包括签名证书和描述文件。
38.综上所述,如何保证签名文件不外泄是一个亟需解决的问题。另外,针对不同的操作系统,如何对签名文件进行统一管理也是一个亟待解决的问题。
39.在此背景技术下,本技术实施例提供一种应用签名方法,利用该方法可以使得开发者在不接触签名文件的情况下,对应用进行签名,有效防止了签名文件的泄露,提高了应用签名文件的安全性。另外,本实施例提供的方法,能够对不同操作系统的应用的签名文件进行统一管理。
40.本技术提供的应用签名方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境可以包括:应用签名装置101(或称为签名管理服务平台,签名管理系统)和用户侧设备102。应用签名装置101和用户侧设备102之间互相连接。
41.其中,应用签名装置101可以应用于服务器中。其中,这里所说的服务器可以是多个服务器组成的服务器集群、或者单个服务器、又或者计算机。应用签名装置101具体可以是服务器中的处理器或处理芯片等。本技术实施例对上述服务器的具体设备形态不作限制。图1中以应用签名装置101应用于单个服务器为例示出。另外,在本实施例中,该服务器还可以包括存储器件。该存储器件可以包括数据库和存储器。
42.上述用户侧设备102可以是手机终端、计算机或者平板电脑等电子设备。本技术实施例对用户侧设备102的具体设备形态不作限制,图1中以前端设备为计算机为例示出。该用户侧设备102可以用于应用开发者申请签名文件。
43.在一些实施例中,在需要对应用签名之前,用户侧设备102可以向应用签名装置101发起创建请求,该创建请求用于请求创建签名文件(例如请求创建签名证书)。应用签名装置101在接收到创建请求后,根据应用的运行系统,创建该运行系统对应的签名文件并存储起来。在需要对应用签名时,用户侧设备102可以向应用签名装置101发送该应用的安装包,应用签名装置根据应用的标识获取存储在服务器中的签名文件,使用签名文件对应用的安装包进行签名,并提供签名后应用的安装包的下载方式,以完成应用的签名操作。
44.图2为本技术实施例提供的一种应用签名方法的流程示意图。如图2所示,本技术提供的应用签名方法,可以通过上述应用签名装置实现,具体可以包括以下步骤:
45.s201、接收目标应用的安装包。
46.对应用的签名可以理解为使用签名文件对应用的安装包进行签名操作。在一些实施例中,在开发人员需要对某应用,如称为目标应用进行签名时,可以通过用户侧设备发送该目标应用的安装包至应用签名装置。之后,应用签名装置便可以接收目标应用的安装包,
以后续对目标应用进行签名。
47.s202、根据目标应用的标识,从服务器中获取目标应用的签名文件。
48.其中,服务器存储有申请过签名的应用的标识和对应签名文件。
49.如背景技术所述,开发者私下对应用进行签名的方式容易导致签名文件的泄露,因此本方案采用服务器存储签名文件的方式,避免开发者直接接触签名文件。因此,应用签名装置在获取目标应用的安装包后,可以根据目标应用的标识,从服务器中获取目标应用的签名文件。
50.s203、采用目标应用的签名文件,对目标应用的安装包进行签名。
51.应用签名装置在获取到目标应用的签名文件后,可以采用目标应用的签名文件,对目标应用的安装包进行签名操作。
52.上述实施例提供的技术方案至少带来以下有益效果,本技术实施例提供的应用签名方法,接收目标应用的安装包,根据目标应用的标识从服务器中获取该目标应用的签名文件,以对目标应用的安装包进行签名。由于签名文件是从服务器中获取,可以避免开发者接触到签名文件,相较于开发者自行创建并发送签名文件以对应用进行签名的方式,本方案使得开发者无需自己创建及私下发送签名文件,便可实现对应用的签名。在不影响开发者的开发流程下,有效地防止了签名文件的泄露,保证签名文件的安全性,防止签名文件的泄露对公司或企业造成的负面影响。
53.以下将结合具体实施例详细阐述本技术实施例提供的应用签名方法,该方法可以应用于应用签名装置。其中,该应用签名方法可以包括两个流程,分别为“签名文件创建流程”和“应用签名流程”。“签名文件创建流程”可以在“应用签名流程”之前完成。
54.如图3所示,“签名文件创建流程”可以包括如下s301-s302。“应用签名流程”可以包括如下s304-s306。
55.s301、接收创建请求。
56.其中,创建请求用于请求创建目标应用的签名文件。
57.目前的应用签名方案,是应用的开发者自行获取应用的签名文件,并使用应用的签名文件对应用进行签名的。这种开发者持有签名文件的方式容易造成签名文件的泄露。因此,本方案对签名文件进行统一的管理,开发者在签名文件以后续对应用进行签名时,可以向应用签名装置发起请求,借助应用签名装置对应用进行签名。
58.在一些实施例中,应用签名装置可以接收用户侧设备发送的用于请求创建目标应用的签名文件的创建请求。
59.示例性的,以目标应用为安卓系统的应用为例,签名文件可以为签名证书。在应用开发者需要对某应用,如称为目标应用进行签名之前,可以先为该目标应用申请签名证书。如应用开发者可以采用用户侧设备向应用签名装置发送用于请求创建该目标应用的签名证书的创建请求。应用签名装置可以接收用户侧设备发送的创建请求。在一些示例中,该创建请求可以包括如下信息:目标应用的标识和申请原因。在一些特殊情况下,开发者开发的应用,如上述目标应用也可能属于某个应用(如称为大应用)的一部分,该应用可以称为子应用。这种情况下子应用可以复用大应用的签名证书,因此,在其他一些示例中,创建请求中可以包括目标应用(该目标应用为子应用)的标识、被复用应用签名证书的应用(如上述大应用)的标识和申请原因。其中,目标应用的标识,被复用应用签名证书的应用的标识可
以为包名。
60.又示例性的,以目标应用为ios系统的应用为例,签名文件可以包括签名证书和描述文件。描述文件是ios系统特有的一种设置文件,里面包含了设备的很多授权信息,如网络配置、访问限制、安全策略等信息。在应用开发者需要对某应用,如称为目标应用进行签名之前,可以先为该目标应用申请签名证书和描述文件。如应用开发者可以采用用户侧设备向应用签名装置发送用于请求创建该目标应用的签名证书和描述文件的创建请求。应用签名装置可以接收用户侧设备发送的创建请求。在一些示例中,该创建请求可以包括如下信息:ios账号类型、目标应用的标识、签名证书类型和申请原因。
61.其中,ios账号类型分为个人账号,企业账号和组织账号。每种账号类型申请的签名证书上有一定的差别。因此,创建请求中可以包含开发者需要的账号类型。目标应用的标识可以为唯一识别标识(bundleid)。对于ios系统来说,签名证书分为调试签名证书和发布签名证书,每种签名证书可以用于不同阶段的签名,因此创建请求中可以包含开发者需要申请的签名证书类型。在申请调试签名证书的情况下,创建请求还可以包括关联设备标识,用于指示使用该调试证书进行调试的设备。可选的,由于应用在设备上运行需要获得一定的设备权限(如访问存储权限、打开摄像头权限和录音权限等),因此,根据开发者的需求,创建请求中还可以包括应用权限的信息,用于开发者根据需求申请应用运行所需要的权限。
62.应用签名装置在接收到上述创建请求后,可以将创建请求中包括的信息保存在服务器中,如保存在服务器的数据库中。
63.需要说明的是,以上示例是以开发者在需要为应用申请签名文件时,直接通过用户侧设备向应用签名装置发送创建请求为例进行说明的。在另一些实施例中,用户侧设备的创建请求也可以是经过审批后,发送给应用签名装置的。例如,开发者可以通过用户侧设备将创建请求发送给自身的上级主管或管理员的设备。开发者的上级主管或管理员可以在对应设备上对该创建请求进行审批,确认请求的必要性。审批通过后该创建请求才会传输给应用签名装置,以便其可以根据创建请求进行后续的相关处理。如果审批不通过,创建请求将会被退回至开发者的用户侧设备。之后,开发者可以对创建请求的信息进行修改重新发起请求,或者作废此次请求。
64.s302、响应创建请求,确定目标应用运行的操作系统,根据目标应用运行的操作系统,创建目标应用的签名文件。
65.如前述实施例所述,不同系统上应用签名过程中使用的签名文件有差别,创建签名文件的流程也可能有一定的差异。因此,在一些实施例中,应用签名装置在接收到创建请求后,作为响应,可以确定目标应用运行的操作系统,以根据目标应用运行的操作系统来创建目标应用的签名文件。
66.示例性的,结合上述实施例中的示例,以目标应用运行的操作系统为安卓系统进行说明,签名文件可以为签名证书。作为对接收到的创建请求的响应,应用签名装置可以采用如下两种方式进行签名证书的创建。
67.例如,应用签名装置可以使用java的签名证书管理工具,如keytool或其他三方工具为目标应用创建签名证书。如,可以使用命令keytool-genkey-alias xx.keystore-keyalg rsa-validity 36500-keystore xx.keystore为目标应用创建签名证书。其中,该
命令的含义是:创建了一个名为xx.keystore,别名也为xx.keystore,采用rsa加密算法,有效期为100年的签名证书。需要说明的是,具体创建方式以keytool所具有功能为准,本实施例在此不再详细赘述。又例如,应用签名装置可以使用openssl工具为目标应用创建签名证书。具体创建流程参考相关技术文档,本实施例在此也不再详细赘述。
68.另外,如前述实施例的描述,安卓系统允许复用签名证书,若创建请求中包括目标应用的标识和被复用应用签名证书的应用的标识,则应用签名装置可以根据被复用应用签名证书的应用的标识从服务器的数据库中查询是否存在与该标识对应的签名证书。若可以查询到与该标识对应的签名证书,则无需为该目标应用创建新的签名证书,即无需执行s302,而是执行以下s303,即将查询到的该签名证书与目标应用的标识关联起来。若未查询到与该标识对应的签名证书,则可以提示需要重新申请签名证书,或者,直接为该目标应用创建新的签名证书并执行如下s303。
69.又示例性的,结合上述实施例中的示例,以目标应用运行的操作系统为ios系统为例,签名文件可以包括发布签名证书和对应描述文件。另外,签名文件还可以包括调试签名证书和对应描述文件。
70.例如,作为对接收到的创建请求的响应,应用签名装置可以如下采用方案进行签名证书和对应描述文件的创建:
71.a、获取公钥。
72.应用签名装置可以获取公钥。例如,该公钥可以是应用签名装置的开发人员创建并安装到服务器,应用签名装置从服务器上获取到的。如,应用签名装置的开发人员可以在自己的电脑设备上使用openss l工具创建公钥和私钥。其中,公钥用于后续向ios开发平台申请签名证书,私钥用于应用签名的过程中。在完成公钥的创建后,应用签名装置的开发人员可以将公钥从自己的电脑设备上导入到服务器上进行安装。之后,应用签名装置可以从服务器处获取公钥。又例如,该公钥可以是应用签名装置的开发人员直接在服务器上使用openss l工具创建的,应用签名装置可以从服务器上获取公钥。当然,应用签名装置的开发人员也可以直接在服务器上使用openssl工具创建私钥,用于后续对应用的签名。
73.b、根据公钥和预置账号从ios开发平台获取调试签名证书和发布签名证书。
74.其中,上述预置账号可以为预置的ios账号。签名证书可以使用公钥和ios账号从ios开发平台申请。如前述实施例的描述,ios账号分为不同的类型,每种类型申请的签名证书也有区别。因此,应用签名装置可以预置各种类型的ios账号,根据应用开发者填写的创建请求中的账号类型,从不同的预置账号中选择ios账号,确定用于申请签名证书的账号。需要说明的是,应用签名装置可以动态展示不同的ios账号,由开发者选择需要的ios账号,或者,应用签名装置随机选择ios账号。另外,应用开发者填写的创建请求中还包括签名证书类型,根据应用开发者的要求,确定本次申请是申请调试签名证书或者是发布签名证书。进一步的,应用签名装置根据公钥和预置账号,从ios开发平台申请调整签名证书和发布签名证书。
75.c、根据调试签名证书、关联设备标识和目标应用的标识,从ios开发平台获取调试签名证书对应的描述文件,根据发布签名证书和目标应用的标识,从ios开发平台获取发布签名证书对应的描述文件。
76.其中,关联设备标识用于指示使用调试签名证书对应用进行调试的设备
77.其中,对于申请调试签名证书对应的描述文件的情况,在申请前可以将使用该调试签名证书对应用进行调试的设备的关联设备标识(设备唯一标识符(unique device identifier,udid))绑定到ios账号中。具体包括两种实施方案:一是使用ios账号登陆ios官网网页上进行绑定;二是直接调用添加设备的接口(如,https://developer.apple.com/services-account/#{protocol_version}/account/#{proto col_version}/device/enabledevice.action)或使用其他封装有此接口的工具进行绑定。之后,应用签名装置可以根据调试签名证书、关联设备标识和目标应用的标识,从ios开发平台申请调试签名证书对应的描述文件。
78.对于申请发布签名证书对应的描述文件的情况,应用签名装置可以根据发布签名证书和目标应用的标识,从ios开发平台申请发布签名证书对应的描述文件。
79.例如,可以通过如下接口申请描述文件:
80.https://developer.apple.com/services-account/#{protocol_version}/profile/cre ateprovisioningprofile.action
81.s303、将目标应用的签名文件和目标应用的标识关联存储在服务器中。
82.一般情况下,一个应用对应一个签名文件,应用签名装置为不同应用创建的签名文件可以存储在服务器中统一管理。在应用签名装置为目标应用创建了签名文件后,可将创建请求中的携带目标应用的标识和为该目标应用创建的签名文件对应存储,以来区分不同应用的签名证书。也就是说,在一些实施例中,应用签名装置在创建目标应用的签名文件后,可以将目标应用的签名文件和目标应用的标识关联存储在服务器中,方便签名文件的后续查询使用。
83.示例性的,以目标应用运行的操作系统为安卓系统为例,应用签名装置创建好目标应用的签名证书后,可以将签名证书存储在服务器的存储器中,并将签名证书的文件存储路径以及签名证书的标识同目标应用的标识关联存储在服务器的数据库中,以便于后续根据应用标识查询签名证书的存储位置以获取签名证书。在复用签名证书的情况下,应用签名装置将被复用的签名证书的存储路径以及被复用的签名证书的标识同目标应用的标识关联存储在服务器的数据库中。另外,应用签名装置还可以根据目标应用的签名证书获取目标应用的签名证书的指纹信息(例如:信息摘要算法(md5 message-digest algorithm,md5)、安全散列算法1(secure hash algorithm 1,sha1)和安全散列算法256(secure hash algorithm 256,sha256))。应用签名装置在获取到目标应用的签名证书的指纹信息后,还可以将指纹信息与目标应用的标识关联存储在服务器的数据库中。为保证签名证书不泄露,应用签名装置不展示签名证书,也不提供签名证书的下载。签名证书的指纹信息可以展示给开发者,用于开发者对目标应用进行功能性调试。
84.基于以上描述,可以理解的是,对于目标应用运行的操作系统是安卓系统的场景,上述签名文件创建流程也可以表示为图4所示的流程。其中,以上述应用签名装置称为签名管理服务平台为例。如图4所示,应用开发者在签名管理服务平台上发起申请(相当于s301中的创建请求),由应用开发者的上司或管理员对该申请进行审批。若审批不通过,退回到上一步,应用开发者接收到退回的申请后,可以修改申请信息,再次发起申请。若审批通过,签名管理服务平台可以接收到申请(相当于上述实施例中的s301)。之后,签名管理服务平台判断此次申请是否请求复用证书,若不请求复用证书,则可以根据申请创建签名证书(相
当于上述实施例中的s302)。签名管理服务平台创建了签名证书后,还可以展示签名证书的相关信息(如,相当于上述实施例中s303的显示签名证书的指纹信息)。若请求复用证书,则签名管理服务平台可以查询是否存在被复用的签名证书,若存在则展示签名证书的相关信息。若不存在,则可以提示需要重新申请签名证书。至此,签名文件创建流程结束。
85.又示例性的,以目标应用运行的操作系统为ios系统为例,如前述实施例所述,ios系统的签名文件包括调试签名证书和对应的描述文件,以及发布签名证书和对应的描述文件。例如,在申请完上述签名证书和描述文件之后,可以通过如下接口下载签名证书和描述文件:https://developer.apple.com/services-account/#{protocol_version}/account/ios/pro file/downloadprofilecontent。应用签名装置在下载上述签名证书和描述文件后,可以将签名文件(即上述签名证书和描述文件)存储在服务器的存储器中,并将签名文件的存储位置以及签名文件的标识和目标应用的标识关联存储在服务器的数据库中,以便于后续根据目标应用的标识查询签名文件的存储位置以获取签名证书和描述文件。其中,调试签名证书和对应描述文件用于在开发时对ios系统的应用进行调试签名,调试签名的应用无法上架到ios系统的应用市场(appstore)以及在非ios账号绑定的设备上进行安装。基于此,在一些实施例中,为了保证应用签名的安全性,应用签名装置可以展示目标应用的调试签名证书和对应的描述文件的下载入口信息,用于开发者下载目标应用的调试签名证书和对应描述文件,使用调试签名证书和对应描述文件对目标应用进行调试签名。
86.继续参见图3所示,以下将结合具体的实施例,对“应用签名流程”进行说明,“应用签名流程”可以包括以下s304-s306。
87.s304、接收目标应用的安装包。
88.对应用的签名可以理解为使用签名文件对应用的安装包进行签名操作。在一些实施例中,在开发人员需要对某应用,如称为目标应用进行签名时,可以通过用户侧设备发送该目标应用的安装包至应用签名装置。之后,应用签名装置可以接收目标应用的安装包,以后续对目标应用的安装包进行签名。
89.s305、根据目标应用的标识,从服务器中获取目标应用的签名文件。
90.其中,服务器存储有申请过签名的应用的标识和对应签名文件。
91.在一些实施例中,应用签名装置在接收目标应用的安装包后,可以根据目标应用的标识,从服务器中获取事先存储的目标应用的签名文件。
92.示例性的,以目标应用运行的操作系统为安卓系统为例,则目标应用的签名文件可以为签名证书。在相关签名技术中,安卓系统支持对已经签名的应用进行重新签名,这种方法存在应用被其他签名覆盖的风险,造成应用被伪造签名。因此,本方案提供的应用签名方法不允许对应用进行重签名。即确定目标应用运行的操作系统为安卓系统后,应用签名装置确定目标应用未签名的情况下,从服务器中获取目标应用的签名证书。
93.应用签名装置在接收目标应用的安装包后,可以解析安装包,在确定目标应用运行的操作系统为安卓系统的情况下,确定目标应用是否已经签名。若目标应用未签名,则应用签名装置根据解析安装包获得的目标应用的标识,从服务器的数据库中查询目标应用是否已经申请过签名证书。若未申请,则提示应用的开发者需要申请签名证书。在目标应用未签名,且目标应用已经申请过签名证书的情况下,应用签名装置可以从服务器的存储器中
获取对应签名证书,用于后续对目标应用的签名,如对目标应用的安装包的签名。
94.又示例性的,由于ios系统只支持对使用调试签名证书和对应描述文件签名过的应用进行重签名,因此,在目标应用运行的操作系统为ios系统的情况下,目标应用的签名文件可以包括发布签名证书以及对应描述文件。:即确定目标应用运行的操作系统为ios系统后,应用签名装置确定目标应用已采用调试签名证书和对应描述文件进行签名的情况下,从服务器中获取目标应用的发布签名证书和对应描述文件。
95.应用签名装置在接收目标应用的安装包后,可以解析安装包,在确定目标应用运行的操作系统为ios系统的情况下,确定目标应用于是否已经被调试签名证书及对应描述文件签名,即是否进行过调试签名。若目标应用已经进行过调试签名,则应用签名装置根据解析安装包获得的目标应用的标识,去服务器的数据库中查询目标应用是否已经申请过发布签名证书和对应描述文件。若未申请,则提示应用的开发者需要申请发布签名证书和描述文件。在目标应用已采用调试签名证书和对应描述文件进行签名,且目标应用已申请过发布签名证书和对应描述文件的情况下,应用签名装置可以从服务器的存储器中获取发布签名证书和对应描述文件,用于后续对目标应用的签名,如对目标应用的安装包的签名。
96.s306、采用目标应用的签名文件,对目标应用的安装包进行签名。
97.在一些实施例中,应用签名装置在获取目标应用的签名文件后,可以根据目标应用的签名文件,对目标应用进行签名,如对目标应用的安装包进行签名。
98.示例性的,在目标应用运行的操作系统为安卓系统的情况下,应用签名装置可以根据查询获得的目标应用的签名证书,对目标应用的安装包进行签名。签名方式具体包括两种:一是使用jdk中的jarsigner工具对目标应用进行签名;二是使用安卓的软件开发工具包(software development kit,sdk)中提供的apksigner工具进行应用签名。具体的使用方式参考相关技术文档,在此不再一一赘述
99.又示例性的,在目标应用运行的操作系统为ios系统的情况下,应用签名装置可以根据发布签名证书和对应描述文件,对已采用调试签名证书和对应描述文件进行签名后的目标应用的安装包,进行重签名。具体签名方式可以使用ios官方提供的重签名命令:codesign-fs"signing_identity"
‑‑
no-strict
‑‑
entitlements=权限文件.plist app包。
100.应用签名装置在对目标应用签名成功后,可以提供签名后的目标应用的安装包下载地址,以使得开发者可以下载签名后的目标应用的安装包。
101.签名后的应用上传到其他平台(例如应用市场)时,平台可能需要对该应用的签名进行合法性校验。因此,如图3所示,还执行如下s307-s308。
102.s307、根据进行签名后的目标应用的安装包,确定目标应用的校验信息,将校验信息存储在服务器中。
103.在一些实施例中,应用签名装置可根据进行签名后的目标应用的安装包,确定目标应用的校验信息(例如md5值),并将该校验信息存储在服务器的数据库中,用于校验上传至平台的目标应用的安装包的合法性。
104.s308、接收上传至平台的目标应用的校验信息,根据校验信息验证目标应用的签名是否合法。
105.因此,在一些实施例中,应用签名装置可以接收上传至平台的目标应用的校验信息,根据校验信息验证目标应用的签名是否合法。具体执行如下:
106.1.接收上传至平台的目标应用的校验信息。
107.2.查询服务器中是否存在校验信息。若存在,则确定目标应用的签名合法;若不存在,则确定目标应用的签名不合法。
108.例如,以校验信息为md5值为例进行说明,目标应用的安装包在应用市场上架后,应用市场的管理员可以根据目标应用的安装包计算目标应用的md5值,并调用应用签名装置提供的接口,向应用签名装置发送待验证的md5值。应用签名装置可以接收待验证的md5值,查询服务器的数据库中是否存在该md5值的记录。若数据库中存在与待验证的md5值相同的md5值,则说明该目标应用已经在应用签名装置中完成过签名,说明该目标应用的签名合法。相对的,若数据库中不存在与待验证的md5值相同的md5值,则说明该目标应用未通过应用签名装置中完成过签名,说明该目标应用的签名不合法。
109.基于上述描述,可以理解的是,上述应用签名流程也可以表示为如图5所示的流程。其中,以上述应用签名装置称为签名管理服务平台为例。如图5所示,应用的开发者可以在签名管理服务平台上上传应用包(该应用包可以为应用的安装包,相当于上述实施例中s304)。之后,签名管理服务平台可以确定是否存在该应用的签名文件。若存在,则使用签名文件签名应用(相当于上述实施例中s305和s306)。若不存在,则可以提示开发者先申请签名文件。至此,应用签名流程结束。
110.上述实施例提供的技术方案至少带来以下有益效果,本技术实施例提供的应用签名方法,接收目标应用的安装包,根据目标应用的标识从服务器中获取该目标应用的签名文件,以对目标应用的安装包进行签名。由于签名文件是从服务器中获取,可以避免开发者接触到签名文件,相较于开发者自行创建并发送签名文件以对应用进行签名的方式,本方案使得开发者无需自己创建及私下发送签名文件,便可实现对应用的签名。在不影响开发者的开发流程下,有效地防止了签名文件的泄露,保证签名文件的安全性,防止签名文件的泄露对公司或企业造成的负面影响。
111.进一步的,对于安卓系统来说,本方案只对未签名的应用进行签名,能有效防止对已签名应用进行重签名导致其他应用的签名被覆盖,造成的应用被伪造签名的情况发生。另外,本方案通过查询服务器中是否存在应用的校验信息,以确定该应用签名的合法性,为其他三方平台提供签名的合法性验证的方案,可以有效防止开发人员私自生成签名文件对应用进行签名,在应用出现问题时可进行追溯,进一步的提高了签名文件的安全性。本方案中对签名文件的创建过程进行统一处理,可有效减少开发者的签名文件的创建流程,提高了开发者的开发效率,同时还可以有效避免相关信息(例如:ios账号)泄露,保证开发者个人隐私的安全性。本方案提供的应用签名方法,可以应用到各种系统应用的签名流程中,方便不同系统的开发者采用本方案提高开发效率。
112.本技术实施例还提供一种签名管理服务平台的组成示意图,如图6所示。其中,签名管理服务平台包括:申请模块,审批模块,创建模块,展示下载模块,应用签名模块和应用校验模块。用户(例如开发者)向签名管理服务平台发起申请,申请模块提供开发者发起申请的功能,并可以接收申请。审批模块对申请进行审批。在审批通过后,创建模块可以根据申请,创建对应的签名文件。展示下载模块,可以向用户展示签名文件的相关信息以及提供下载方式。应用签名模块可以采用签名文件,对开发者上传的应用的安装包进行签名。应用校验模块,可以接收应用上架平台的校验请求,以对上架平台的应用的签名的合法性进行
校验。
113.在示例性的实施例中,本技术还提供一种应用签名装置。该应用签名装置可以包括一个或多个功能模块,用于实现以上方法实施例的应用签名方法。
114.例如,图7为本技术实施例提供的一种应用签名装置的组成示意图。如图7所示,该应用签名装置包括:接收模块701、获取模块702和签名模块703。接收模块701、获取模块702和签名模块703之间互相连接。
115.接收模块701,用于接收目标应用的安装包。
116.获取模块702,根据目标应用的标识,从服务器中获取目标应用的签名文件,其中,服务器存储有申请过签名的应用的标识和对应签名文件。
117.签名模块703,用于采用目标应用的签名文件,对目标应用的安装包进行签名。
118.在一些实施例中,上述装置还包括:确定模块704。
119.确定模块704,用于确定所述目标应用运行的操作系统;若所述目标应用运行的操作系统为安卓系统,则确定所述目标应用未签名;或者,若所述目标应用运行的操作系统为ios系统,则确定所述目标应用已采用调试签名证书和对应描述文件进行签名。
120.在一些实施例中,上述装置还包括创建模块705。
121.接收模块701,还用于接收创建请求,创建请求用于请求创建目标应用的签名文件。
122.确定模块704,还用于响应创建请求,确定目标应用运行的操作系统;
123.创建模块705,还用于根据目标应用运行的操作系统,创建目标应用的签名文件;将目标应用的签名文件和目标应用的标识关联存储在服务器中。在一些实施例中,创建模块705,具体用于若目标应用运行的操作系统为安卓系统,则创建目标应用的签名证书;若目标应用运行的操作系统为ios系统,则创建目标应用的发布签名证书和对应描述文件。
124.在一些实施例中,上述装置还包括显示模块706。
125.显示模块706,用于若目标应用运行的操作系统为安卓系统,则显示目标应用的签名证书的指纹信息,用于开发人员对目标应用进行调试。若目标应用运行的操作系统为ios系统,则显示目标应用的调试签名证书和对应的描述文件的下载入口信息,下载入口信息用于开发人员下载目标应用的调试签名证书和对应的描述文件,以进行目标应用的调试签名。
126.在一些实施例中,上述装置还包括:查询模块707。
127.接收模块701,还用于接收上传至平台的目标应用的校验信息。
128.查询模块707,用于查询服务器中是否存在校验信息;若存在,则确定目标应用的签名合法;若不存在,则确定目标应用的签名不合法。
129.其中,接收模块701相当于上述图6中申请模块和审批模块。签名模块703相当于上述图6中应用签名模块。查询模块707相当于上述图6中应用校验模块。显示模块707相当于上述图6中展示下载模块。创建模块705和获取模块702相当于上述图6中创建模块。
130.在示例性的实施例中,本技术实施例还提供了一种电子设备,该电子设备可以是上述方法实施例中的应用签名装置。图8为本技术实施例提供的电子设备的组成示意图。如图8所示,该应用签名装置可以包括:处理器801和存储器802;存储器802存储有处理器801可执行的指令;处理器801被配置为执行指令时,使得电子设备实现如前述方法实施例中描
述的方法。
131.在示例性的实施例中,本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令;当计算机程序指令被计算机执行时,使得计算机实现如前述实施例中描述的方法。其中,计算机可以是上述电子设备。计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
132.在示例性的实施例中,本技术实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关方法步骤,以实现上述实施例中的应用签名方法。
133.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
再多了解一些

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

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

相关文献