一种应用程序计费方法和装置与流程

文档序号:11843917阅读:140来源:国知局
一种应用程序计费方法和装置与流程

本发明涉及数据业务技术领域,尤其涉及一种应用程序计费方法和装置。



背景技术:

随着智能手机的普及,移动终端的应用程序得到了快速发展。软件开发工具包(Software Development Kit,简称SDK)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。运营平台一般提供SDK及相应的开发文档,供开发者在应用内集成调用。终端从相应渠道或运营平台下载应用包体而获得自身需要的应用程序,并在安装使用的过程中,触发计费流程。

某些开发商对应用包体进行分解,获取相应计费信息并与病毒或恶意程序进行统一打包发布,造成不知情订购、暗扣费等行为,对用户付费安全造成较大损失,给运营平台的计费安全性带来了极大隐患。目前,平台可为每个应用包体生成对应的密钥,用户在使用应用程序时会发送根据该密钥加密的计费请求并由平台判断与应用程序ID是否对应,以确定客户端软件是否合法,若不合法则不予计费。但是如此会产生大量的数据交互,降低了计费请求的速度,并且,在客户端未联因特网的情况下,无法建立客户端与服务端之间有效的应用安全实时认证,无法保障未联网计费的安全。



技术实现要素:

本发明实施例提供了一种应用程序计费方法和装置,用以避免大量数据交互,提高计费请求速度,保证了未联网计费的安全性。

本发明方法包括:

一种应用程序计费方法,包括:

计费平台接收终端发来的计费请求,所述计费请求包含密钥对比结果和签名对比结果;其中,所述终端上运行有从所述计费平台下载的应用包体;

所述计费平台根据所述密钥对比结果和所述签名对比结果对所述计费请求进行安全校验;

所述计费平台将所述计费请求的校验结果传送回所述终端;

所述密钥对比结果,是将所述终端接收到的应用包体中的对应用包体进行签名的第一签名密钥与预置于软件开发工具包安全存储区中的计费平台对应用包体进行签名的第一签名密钥进行对比的结果;

所述签名对比结果,是将所述计费平台预置于所述软件开发工具包安全存储区中发送给所述终端的应用程序文件的签名与所述终端通过所述软件开发工具包对接收到的应用程序文件进行签名得到的真实签名进行比对的结果。

较佳地,所述计费平台根据所述密钥对比结果和所述签名对比结果对所述计费请求进行安全校验,还包括:

所述计费平台根据所述终端的标识查询所述终端的安全级别,若所述终端的安全级别为高安全级别,则所述计费平台在所述密钥对比结果和所述签名对比结果都相符时,对所述计费请求进行处理;若所述终端的安全级别为低安全级别,则所述计费平台在至少所述签名对比结果相符时,对所述计费请求进行处理。

较佳地,所述计费平台接收终端发来的计费请求,还包括:

所述计费请求为使用第三密钥加密的计费请求;

所述第三密钥是通过以下方式获得的:

所述计费平台为所述应用包体生成一对公私密钥,将公钥作为第三密钥预置于所述软件开发工具包的安全存储区中发送给所述终端,以使所述终端通过使用所述第三密钥加密所述计费请求。

一种应用程序计费方法,包括:

终端接收计费平台传送来的应用包体,所述应用包体至少包括所述应用包体的签名及签名使用的第一签名密钥、应用程序文件和软件开发工具包,其中,所述软件开发工具包的安全存储区中存储有所述第一签名密钥、所述应用程序文件的签名及签名使用的第二签名密钥;

所述终端通过所述软件开发工具包从接收到的应用包体中获取第一签名密钥,并与预置于所述软件开发工具包安全存储区中所述第一签名密钥进行对比得到密钥对比结果;

所述终端通过所述软件开发工具包对接收到的应用程序文件进行摘要并使用从所述软件开发工具包中获取的所述第二签名密钥进行加密处理得到应用程序文件的真实签名,将所述应用程序文件的签名和所述真实签名进行对比得到签名对比结果;

所述终端通过所述软件开发工具包向所述计费平台发起计费请求,所述计费请求中至少包括所述密钥对比结果和所述签名对比结果,以使所述计费平台对所述计费请求进行安全校验。

较佳地,所述方法进一步包括:

所述软件开发工具包的安全存储区中还包括第三密钥,所述终端通过所述软件开发工具包使用所述第三密钥对所述计费请求加密后发送给所述计费平台。

一种应用程序计费平台,包括:接收模块、校验模块和发送模块;

所述接收模块,用于接收终端发来的计费请求,所述计费请求包含密钥对比结果和签名对比结果;其中,所述终端上运行有从所述计费平台下载的应用包体;

所述校验模块,用于根据所述密钥对比结果和所述签名对比结果对所述计费请求进行安全校验;

所述发送模块,用于将所述计费请求的校验结果传送回所述终端;

所述密钥对比结果,是将所述终端接收到的应用包体中的对应用包体进行 签名的第一签名密钥与预置于软件开发工具包安全存储区中的计费平台对应用包体进行签名的第一签名密钥进行对比的结果;

所述签名对比结果,是将所述计费平台预置于所述软件开发工具包安全存储区中发送给所述终端的应用程序文件的签名与所述终端通过所述软件开发工具包对接收到的应用程序文件进行签名得到的真实签名进行比对的结果。

较佳地,所述校验模块还用于,

根据所述终端的标识查询所述终端的安全级别,若所述终端的安全级别为高安全级别,则所述计费平台在所述密钥对比结果和所述签名对比结果都相符时,对所述计费请求进行处理;若所述终端的安全级别为低安全级别,则所述计费平台在至少所述签名对比结果相符时,对所述计费请求进行处理。

较佳地,所述发送模块,还用于为所述应用包体生成一对公私密钥,将公钥作为第三密钥预置于所述软件开发工具包的安全存储区中发送给所述终端,以使所述终端通过使用所述第三密钥加密所述计费请求;

所述接收模块,还用于接收所述终端发来的使用所述第三密钥加密的计费请求。

一种应用程序计费终端,包括:接收模块、处理模块和发送模块;

所述接收模块,用于接收计费平台传送来的应用包体,所述应用包体至少包括所述应用包体的签名及签名使用的第一签名密钥、应用程序文件和软件开发工具包,其中,所述软件开发工具包的安全存储区中存储有所述第一签名密钥、所述应用程序文件的签名及签名使用的第二签名密钥;

所述处理模块,用于通过所述软件开发工具包从接收到的应用包体中获取第一签名密钥,并与预置于所述软件开发工具包安全存储区中所述第一签名密钥进行对比得到密钥对比结果;

所述处理模块,还用于通过所述软件开发工具包对接收到的应用程序文件进行摘要并从所述软件开发工具包中获取所述第二签名密钥进行加密处理得到应用程序文件的真实签名,将所述应用程序文件的签名和所述真实签名进行 对比得到签名对比结果;

所述发送模块,用于通过所述软件开发工具包向所述计费平台发起计费请求,所述计费请求中至少包括所述密钥对比结果和所述签名对比结果,以使所述计费平台对所述计费请求进行安全校验。

较佳地,所述软件开发工具包的安全存储区中还包括第三密钥,所述发送模块还用于,通过所述软件开发工具包使用所述第三密钥对所述计费请求加密后发送给所述计费平台。

本发明实施例在应用程序启动时,终端侧检测应用程序文件和整个应用包体的完整性,即在终端侧完成比较,仅将对比结果上传计费平台,避免了大量的数据交互,减轻了计费平台侧的压力。在终端未联因特网的情况下也可通过短信等方式上传计费请求并携带检测结果,避免了大量数据交互,提高了计费请求速度,保证了未联网计费的安全。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一中应用程序计费终端侧的结构图;

图2为本发明实施例一中应用程序计费平台侧的结构图;

图3为本发明实施例二中软件开发工具包的结构图;

图4为本发明实施例二中应用程序计费方法的流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供了一种应用程序计费方法,该方法的流程包括:

计费平台接收终端发来的计费请求,所述计费请求包含密钥对比结果和签名对比结果;其中,所述终端上运行有从所述计费平台下载的应用包体;

所述计费平台根据所述密钥对比结果和所述签名对比结果对所述计费请求进行安全校验;

所述计费平台将所述计费请求的校验结果传送回所述终端;

所述密钥对比结果,是将所述终端接收到的应用包体中的对应用包体进行签名的第一签名密钥与预置于软件开发工具包安全存储区中的计费平台对应用包体进行签名的第一签名密钥进行对比的结果;

所述签名对比结果,是将所述计费平台预置于所述软件开发工具包安全存储区中发送给所述终端的应用程序文件的签名与所述终端通过所述软件开发工具包对接收到的应用程序文件进行签名得到的真实签名进行比对的结果。

本发明实施例一提供了一种终端侧检测完整性并将比较结果上传计费平台,计费平台控制计费的应用程序计费方法。在应用程序启动时,终端侧SDK检测应用程序文件和整个应用包体的完整性,即在终端侧完成比较,仅将对比结果上传计费平台,避免了大量的数据交互,减轻了计费平台侧的压力。在终端未联因特网的情况下也可通过短信等方式上传计费请求并携带检测结果,避免了大量数据交互,提高了计费请求速度,保证了未联网计费的安全。

较佳地,计费平台根据密钥对比结果和签名对比结果对计费请求进行安全校验,还包括:

计费平台根据终端的标识查询其安全级别,若所述终端的安全级别为高安全级别,则所述计费平台在所述密钥对比结果和所述签名对比结果都相符时,对所述计费请求进行处理;若所述终端的安全级别为低安全级别,则所述计费 平台在至少所述签名对比结果相符时,对所述计费请求进行处理。

计费平台可针对不同应用程序和用户手机号码,设置不同安全级别及终端用户计费策略,即不要求完整性结果为全部一致,安全级别要求不高时仅需部分相同,实现计费安全级别动态控制。如手机A和手机B,手机A是高安全级别,手机B是低安全级别。计费平台将两个手机的安全级别预先储存起来。两个手机都下载某一应用程序,并向计费平台发出计费请求,计费请求中包含密钥对比结果和签名对比结果。计费平台收到计费请求后,根据手机号,查询出两个手机的安全级别。对于手机A,要求密钥对比结果和签名对比结果都相符,计费平台才根据计费策略完成计费;对于手机B,要求密钥对比结果和签名对比结果中的任意一个相符,计费平台就完成计费。

较佳地,计费请求使用第三密钥加密,第三密钥是通过以下方式获得的:

计费平台为应用包体生成一对公私密钥,将公钥作为第三密钥预置于软件开发工具包的安全存储区中发送给终端,以使所述终端通过使用所述第三密钥加密所述计费请求。

上述为本发明实施例中计费平台侧收到计费请求后如何进行计费请求判断,下面从应用程序计费方法的终端侧方面进行描述,该应用程序计费方法包括:

终端接收计费平台传送来的应用包体,所述应用包体至少包括所述应用包体的签名及签名使用的第一签名密钥、应用程序文件和软件开发工具包,其中,所述软件开发工具包的安全存储区中存储有所述第一签名密钥、所述应用程序文件的签名及签名使用的第二签名密钥;

所述终端通过所述软件开发工具包从接收到的应用包体中获取第一签名密钥,并与预置于所述软件开发工具包安全存储区中所述第一签名密钥进行对比得到密钥对比结果;

所述终端通过所述软件开发工具包对接收到的应用程序文件进行摘要并使用从所述软件开发工具包中获取的所述第二签名密钥进行加密处理得到应 用程序文件的真实签名,将所述应用程序文件的签名和所述真实签名进行对比得到签名对比结果;

所述终端通过所述软件开发工具包向所述计费平台发起计费请求,所述计费请求中至少包括所述密钥对比结果和所述签名对比结果,以使所述计费平台对所述计费请求进行安全校验。

本发明实施例一为应用程序计费提供了多重安全保障:一是对应用包体的完整性校验,将计费平台对应用包体签名所使用的密钥预置于软件开发工具包的安全存储区中,与终端收到的对应用包体签名所使用的密钥相比较,保障应用包体的完整性;二是对应用程序的完整性校验,将计费平台对应用程序的签名预置于软件开发工具包的安全存储区中,与终端对收到的应用程序所做的签名相对比,保障应用程序的完整性;三是软件开发工具包具有安全存储区,保障了存储于其中的应用包体签名密钥、应用程序签名和应用程序签名密钥等数据的安全,提高了应用程序计费的安全性,极大地保障了用户计费安全。

在终端侧进行应用包体的安全检测,通过判断应用包体签名的第一签名密钥是否被篡改,检测了整个应用包体的完整性。具体的,终端接收到两个第一签名密钥,一个预置于SDK的安全存储区,另一个保存于应用包体中。预置于安全存储区的密钥为计费平台对应用包体签名所使用的密钥,被SDK所保护,不易被篡改。若接收到的应用包体整体被不法开发商拆解加壳等,其签名会改变,所使用的密钥也与计费平台所使用的密钥不同。应用包体整体被拆解加壳时,篡改者会根据原应用包体的结构对应进行修改,如原应用包体进行过签名加密,则修改后的应用包体也会进行签名加密。终端收到修改后的应用包体,根据其中的签名密钥对收到的应包体进行摘要等比对操作,比对结果必然是一致的,此时并不会发现应用包体被修改了,故难以发现应用包体被整体拆解加壳。本实施例中终端可以通过对比两个第一签名密钥,检测应用包体的完整性。同时,终端判断应用程序文件的签名是否一致,检测了应用程序文件的完整性,保证了应用程序文件不会被篡改;通过双重对比,提高了应用程序计 费的安全性。并且,SDK提供了安全存储区,就像一个保险箱,将第一签名密钥、应用程序签名和第二签名密钥等保存于其中,在应用包体从计费平台向终端传送的过程中,保障了预置于安全存储区中数据和文件的安全。因此,本发明实施例为应用程序计费提供了多重保障,提高了应用程序计费的安全性,极大地保障了用户计费安全。

较佳地,软件开发工具包的安全存储区中还包括第三密钥,终端通过软件开发工具包使用所述第三密钥对所述计费请求加密后发送给计费平台。将计费请求加密传输,防止对计费请求的恶意篡改,保证了计费请求的安全。

基于相同的技术构思,本发明实施例还提供一种应用程序计费平台,如图1所示,包括:接收模块11、校验模块12和发送模块13。

接收模块11,用于接收终端发来的计费请求,所述计费请求包含密钥对比结果和签名对比结果;其中,所述终端上运行有从所述计费平台下载的应用包体;

校验模块12,用于根据所述密钥对比结果和所述签名对比结果对所述计费请求进行安全校验;

发送模块13,用于将所述计费请求的校验结果传送回所述终端;

密钥对比结果,是将所述终端接收到的应用包体中的对应用包体进行签名的第一签名密钥与预置于软件开发工具包安全存储区中的计费平台对应用包体进行签名的第一签名密钥进行对比的结果;

签名对比结果,是将所述计费平台预置于所述软件开发工具包安全存储区中发送给所述终端的应用程序文件的签名与所述终端通过所述软件开发工具包对接收到的应用程序文件进行签名得到的真实签名进行比对的结果。

较佳地,校验模块12还用于,根据终端的标识查询终端的安全级别,若所述终端的安全级别为高安全级别,则所述计费平台在所述密钥对比结果和所述签名对比结果都相符时,对所述计费请求进行处理;若所述终端的安全级别为低安全级别,则所述计费平台在至少所述签名对比结果相符时,对所述计费 请求进行处理。

较佳地,发送模块13,还用于为应用包体生成一对公私密钥,将公钥作为第三密钥预置于软件开发工具包的安全存储区中发送给终端,以使终端通过使用第三密钥加密计费请求;

接收模块11,还用于接收终端发来的使用第三密钥加密的计费请求。

本发明实施例一还提供一种应用程序计费终端,该终端可执行上述方法实施例,所述装置如图2所示,包括接收模块21、处理模块22和发送模块23。

接收模块21,用于接收计费平台传送来的应用包体,所述应用包体至少包括所述应用包体的签名及签名使用的第一签名密钥、应用程序文件和软件开发工具包,其中,所述软件开发工具包的安全存储区中存储有所述第一签名密钥、所述应用程序文件的签名及签名使用的第二签名密钥;

处理模块22,用于通过所述软件开发工具包从接收到的应用包体中获取第一签名密钥,并与预置于所述软件开发工具包安全存储区中所述第一签名密钥进行对比得到密钥对比结果;

处理模块22,还用于通过所述软件开发工具包对接收到的应用程序文件进行摘要并从所述软件开发工具包中获取所述第二签名密钥进行加密处理得到应用程序文件的真实签名,将所述应用程序文件的签名和所述真实签名进行对比得到签名对比结果;

发送模块23,用于通过所述软件开发工具包向所述计费平台发起计费请求,所述计费请求中至少包括所述密钥对比结果和所述签名对比结果,以使所述计费平台对所述计费请求进行安全校验。

较佳地,软件开发工具包的安全存储区中还包括第三密钥,终端发送模块还用于,通过软件开发工具包使用第三密钥对计费请求加密后发送给计费平台。

实施例二

下面以本发明实施例二中的应用程序计费方法为例,对本发明进一步详细 说明。

在介绍应用程序计费流程之前,先接合图3对本发明实施例中软件开发工具包的具体结构进行介绍。

本发明实施例中的安全SDK包括业务逻辑模块1和安全模块2,其中安全模块2包括安全接口层21、安全核心层22和安全存储层23。

终端通过业务逻辑模块1实现与SDK的交互,业务逻辑模块1规定了SDK业务规则的制定和业务流程的实现,将安全模块2中的数据组合成与业务处理流程相关的操作,是终端与安全模块2之间的桥梁。安全模块2存储应用程序相关的数据和信息,并保护业务逻辑模块1的安全。

业务逻辑模块1通过安全接口层21调用安全模块2中的数据。只有安全接口层21能访问安全核心层22,只有安全核心层才具备读写安全存储层中数据的能力,这种安排防止安全核心层22被恶意访问,进一步保证了安全存储层的安全。另外,安全存储层23具有防破解能力,也保护了其中数据信息的安全。

参照图4所示,本发明实施例二中,应用程序计费具体流程如下:

S01、终端向计费平台发送下载应用程序的请求。

S02、计费平台打包应用包体。计费平台对应用包体进行签名,应用包体签名的密钥为第一签名密钥,与应用包体的签名一起放入应用包体中,且将第一签名密钥的副本预置于SDK的安全存储层23中。并且,计费平台对应用包体内的应用程序文件进行处理,如对应用程序文件进行摘要,再使用SALT进行加密,生成应用程序文件的签名,该SALT值即为第二签名密钥,将应用程序文件的签名和第二签名密钥也放入SDK的安全存储层23中。另外,计费平台为每个应用包体生成一对公私钥,私钥由计费平台自己安全地保存在密钥中心,公钥作为第三密钥,也预置于SDK的安全存储层23中,用于计费请求的加密传输。

由此,应用包体中包括:SDK、计费文件、应用程序文件、应用包体签名 和第一签名密钥。SDK的安全存储层23中预置的至少有:第一签名密钥、应用程序文件的签名、第二签名密钥和第三密钥。

S03、计费平台将应用包体下发给终端。

S04、终端启动运行应用程序。

S05、SDK初始化。SDK将终端接收到的应用包体中的第一签名密钥与预置于安全存储层23中的第一签名密钥相对比,所得结果为密钥对比结果。并且,SDK对终端接收到的应用程序文件进行摘要,并从安全存储层23中获取第二签名密钥即SALT值,对该摘要进行加密得到应用程序文件的真实签名,将该真实签名与预置于SDK安全存储层中的应用程序文件的签名进行对比,所得结果为签名对比结果。

SDK对终端接收到的应用程序进行双重完整性检测,判断应用程序文件是否被替换篡改,判断应用包体整天是否经过拆解加壳,提高了计费的安全性。终端侧在应用程序启动时即开始进行应用程序文件的签名并完成比较过程,在计费请求时可直接上传比较结果,提高了计费请求的速度。

S06、终端向计费平台发起应用计费请求。SDK将计费请求用预置于安全存储层23中的第三密钥加密,通过短信或联网的方式发送给计费平台,计费请求中包括S05中的密钥对比结果和签名对比结果。

S07、计费平台收到计费请求后,将计费请求终端密钥对比结果和签名对比结果与终端的安全级别进行对比,判断是否允许计费。计费平台根据终端的标识查询终端的安全级别,高安全级别需要密钥对比结果和签名对比结果都相符,低安全级别需要密钥对比结果和签名对比结果中的任一个相符。

S08、计费平台向终端发送计费请求的校验结果。若校验通过,则根据计费策略完成计费。计费策略包括但不仅限于:直接短信计费、强制联网验证计费、输入图形验证码计费、输入支付密码计费、动态短信验证码校验计费等

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1