一种软件授权方法、装置、设备及存储介质与流程

文档序号:26587103发布日期:2021-09-10 19:40阅读:146来源:国知局

1.本公开涉及计算机应用技术领域,特别是涉及一种软件授权方法、装置、设备及存储介质。


背景技术:

2.随着计算机技术的快速发展,可在终端中安装并运行的各类软件逐渐增多。有的软件需在得到授权的情况下才能在终端中运行。软件授权是在软件保护的基础上提出的,可以有效保护软件不被非法拷贝和非法使用。
3.目前,对于软件授权,多是基于硬件模块实现,如使用加密狗或光盘等,在终端中需要增加相应的硬件模块才能运行要保护软件,部署成本较高,而且,有的终端并不适合增加硬件模块,使得无法正常运行要保护的软件,给用户对软件的使用带来不便。


技术实现要素:

4.本公开的目的是提供一种软件授权方法、装置、设备及存储介质,以通过较低的部署成本实现终端上的软件授权,方便用户对软件的使用。
5.为解决上述技术问题,本公开提供如下技术方案:
6.一种软件授权方法,应用于授权服务端,所述授权服务端部署有智能密码钥匙,所述方法包括:
7.接收授权客户端发送的授权申请;
8.获取所述授权客户端所在目标终端的硬件特征信息;
9.基于所述硬件特征信息和所述智能密码钥匙中的权限关键信息,生成权限文件;
10.将所述权限文件下发给所述授权客户端,以使所述授权客户端基于所述权限文件,确定是否允许在所述目标终端中运行要保护的软件。
11.在本公开的一种具体实施方式中,所述基于所述硬件特征信息和所述智能密码钥匙中的权限关键信息,生成权限文件,包括:
12.根据所述硬件特征信息和所述智能密码钥匙中的权限关键信息,生成权限隐私信息;
13.确定所述权限隐私信息的存放信息,所述存放信息包括存放位置及在所述存放位置中的存放起点;
14.基于所述权限隐私信息和所述存放信息,生成权限文件。
15.在本公开的一种具体实施方式中,所述基于所述权限隐私信息和所述存放信息,生成权限文件,包括:
16.使用所述权限关键信息中的私钥对所述存放信息进行签名,获得存放签名值;
17.基于所述权限隐私信息、所述存放信息、所述存放信息签名值和所述权限关键信息中的公钥的证书,生成权限文件。
18.在本公开的一种具体实施方式中,所述存放信息还包括随机信息。
19.在本公开的一种具体实施方式中,所述智能密码钥匙中包含权限关键信息密文和对称密钥密文,所述对称密钥密文为使用所述智能密码钥匙的公钥对对称密钥进行加密后得到的密文,所述权限关键信息密文为使用所述对称密钥对权限关键信息进行加密后得到的密文;
20.通过以下步骤获取所述权限关键信息:
21.利用所述智能密码钥匙的私钥对所述对称密钥密文进行解密,获得所述对称密钥;
22.使用所述对称密钥对所述权限关键信息密文进行解密,获得所述权限关键信息。
23.在本公开的一种具体实施方式中,在所述生成权限文件之后,还包括:
24.对所述智能密码钥匙中的所述权限关键信息进行更新。
25.一种软件授权方法,应用于授权客户端,所述方法包括:
26.向授权服务端发送授权申请,以使所述授权服务端获取所述授权客户端所在目标终端的硬件特征信息,基于所述硬件特征信息和部署的智能密码钥匙中的权限关键信息,生成权限文件;
27.接收所述授权服务端下发的所述权限文件;
28.对所述权限文件进行验证;
29.根据验证结果,确定是否允许在所述目标终端中运行要保护的软件。
30.在本公开的一种具体实施方式中,所述权限文件包括权限隐私信息、存放信息、存放信息签名值和所述权限关键信息中的公钥的证书,所述对所述权限文件进行验证,包括:
31.基于所述权限关键信息中的公钥的证书和所述存放信息签名值,确定所述存放信息是否完整;
32.如果所述存放信息完整,则根据所述存放信息,获得所述权限隐私信息;
33.基于所述权限隐私信息进行权限验证。
34.一种软件授权装置,应用于授权服务端,所述授权服务端部署有智能密码钥匙,所述装置包括:
35.授权申请接收模块,用于接收授权客户端发送的授权申请;
36.硬件特征获取模块,用于获取所述授权客户端所在目标终端的硬件特征信息;
37.权限文件生成模块,用于基于所述硬件特征信息和所述智能密码钥匙中的权限关键信息,生成权限文件;
38.权限文件下发模块,用于将所述权限文件下发给所述授权客户端,以使所述授权客户端基于所述权限文件,确定是否允许在所述目标终端中运行要保护的软件。
39.一种软件授权装置,应用于授权客户端,所述装置包括:
40.授权申请发送模块,用于向授权服务端发送授权申请,以使所述授权服务端获取所述授权客户端所在目标终端的硬件特征信息,基于所述硬件特征信息和部署的智能密码钥匙中的权限关键信息,生成权限文件;
41.权限文件接收模块,用于接收所述授权服务端下发的所述权限文件;
42.权限文件验证模块,用于对所述权限文件进行验证;
43.软件授权确定模块,用于根据验证结果,确定是否允许在所述目标终端中运行要保护的软件。
44.一种软件授权设备,包括:
45.存储器,用于存储计算机程序;
46.处理器,用于执行所述计算机程序时实现上述任一项所述软件授权方法的步骤。
47.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述软件授权方法的步骤。
48.应用本公开实施例所提供的技术方案,授权服务端可以单独部署在服务器等设备上,并在其中部署智能密码钥匙,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。
附图说明
49.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本公开实施例中一种授权系统的结构示意图;
51.图2为本公开实施例中一种软件授权方法的实施流程图;
52.图3为本公开实施例中另一种软件授权方法的实施流程图;
53.图4为本公开实施例中一种软件授权装置的结构示意图;
54.图5为本公开实施例中另一种软件授权装置的结构示意图;
55.图6为本公开实施例中一种软件授权设备的结构示意图;
56.图7为本公开实施例中另一种软件授权设备的结构示意图。
具体实施方式
57.本公开的核心是提供一种软件授权方法。该方法可以通过授权系统实现,如图1所示,授权系统可以包括授权服务端110和授权客户端120。授权服务端110可以部署有智能密码钥匙,授权客户端120部署在目标终端中,可以与授权服务端110通信。目标终端可以是手机、平板电脑、笔记本电脑、台式机等任意一种能够运行要保护的软件的终端。智能密码钥匙可以由厂家生产发货给用户,随授权服务端110一起使用。
58.授权服务端110可以接收授权客户端120发送的授权申请,获取授权客户端120所在目标终端的硬件特征信息,基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件,将权限文件下发给授权客户端120,这样授权客户端120基于权限文件,可以确定是否允许在目标终端中运行要保护的软件。
59.授权服务端110可以单独部署在服务器等设备上,并在其中部署智能密码钥匙,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。而且,因为有智能密码钥匙的限制,所以,无论授权服务端110处于互联网条件下还是独立网络环境中,都可以保障授权服务端110的安全性,可以避免对授权服务端110的恶意重置等操作导致的对软件保护的失效。
60.为了使本技术领域的人员更好地理解本公开方案,下面结合附图和具体实施方式对本公开作进一步的详细说明。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
61.参见图2所示,为本公开实施例所提供的一种软件保护方法的实施流程图,该方法可以应用于授权服务端,授权服务端部署有智能密码钥匙,该方法可以包括以下步骤:
62.s210:接收授权客户端发送的授权申请。
63.在实际应用中,用户可以根据实际需要通过授权客户端向授权服务端发送授权申请。授权服务端接收到授权客户端发送的授权申请后,可以继续执行步骤s220的操作。
64.s220:获取授权客户端所在目标终端的硬件特征信息。
65.授权服务端接收到授权客户端发送的授权申请后,可以根据该授权申请,获取授权客户端所在目标终端的硬件特征信息。目标终端的硬件特征信息可以唯一表征目标终端,如目标终端的mac(media access control address,媒体存取控制位址)值等。
66.s230:基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件。
67.授权服务端获取到授权客户端所在目标终端的硬件特征信息后,可以基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件。
68.智能密码钥匙中的权限关键信息可以包括权限总数量、权限剩余数量、权限有效期、授权服务端的公私钥等信息。
69.权限关键信息数据格式如下所示:
[0070][0071]
其中,int、char表示数据类型,controlnum表示权限总数量,是控制的关键,可以防止用户超过限定的总数颁发权限,leftnum表示权限剩余数量,start表示权限有效期的起始时间,end表示权限有效期的结束时间,pubkey表示授权服务端的公钥,prvkey表示授权服务端的私钥。
[0072]
在使用过程中,可能出现授权服务端系统重置,数据全部清零的情况,在这种情况下,因为权限关键信息存储于智能密码钥匙中,不会影响对权限总数的控制。
[0073]
基于硬件特征信息和权限关键信息,可以确定当前是否还可以生成权限文件,生成的权限文件中可以包含目标终端的硬件特征信息、权限总数量、权限当前序数、权限有效
期等信息。
[0074]
s240:将权限文件下发给授权客户端,以使授权客户端基于权限文件,确定是否允许在目标终端中运行要保护的软件。
[0075]
授权服务端基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件之后,可以将权限文件下发给授权客户端,这样,授权客户端可以基于权限文件,确定是否允许在目标终端中运行要保护的软件。具体的,授权客户端可以对权限文件进行验证,确定权限文件的完整性。如果验证通过,则确定允许在目标终端中运行要保护的软件,以在软件授权的情况下,方便用户使用。如果验证不通过,则确定不允许在目标终端中运行要保护的软件,以限制软件的使用,对软件起到保护作用。在验证不通过的情况下,授权客户端可以输出权限限制提示信息,以便用户进行问题排查。
[0076]
应用本公开实施例所提供的方法,授权服务端可以单独部署在服务器等设备上,并在其中部署智能密码钥匙,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。而且,因为有智能密码钥匙的限制,所以,无论授权服务端处于互联网条件下还是独立网络环境中,都可以保障授权服务端的安全性,可以避免对授权服务端的恶意重置等操作导致的对软件保护的失效。
[0077]
在本公开的一个实施例中,步骤s230可以包括以下步骤:
[0078]
步骤一:根据硬件特征信息和智能密码钥匙中的权限关键信息,生成权限隐私信息;
[0079]
步骤二:确定权限隐私信息的存放信息,存放信息包括存放位置及在存放位置中的存放起点;
[0080]
步骤三:基于权限隐私信息和存放信息,生成权限文件。
[0081]
为便于描述,将上述三个步骤结合起来进行说明。
[0082]
授权服务端接收到授权客户端发送的授权申请,并获取到授权客户端所在目标终端的硬件特征信息之后,可以根据硬件特征信息和智能密码钥匙中的权限关键信息,生成权限隐私信息。
[0083]
如前所描述的,智能密码钥匙中的权限关键信息可以包括权限总数量、权限剩余数量、权限有效期、授权服务端的公私钥等信息。
[0084]
根据权限关键信息中的权限总数量和权限剩余数量等,可以确定当前是否还有可分配的权限,如果有,则可以基于权限总数量和权限剩余数量,确定权限当前序数。如权限总数量为10,权限剩余数量为3,权限初始序数为0,则可以确定权限当前序数为7。如果确定当前没有可分配的权限,则可以向授权客户端返回权限用尽的提示信息。这样在授权客户端所在目标终端上无法运行要保护的软件。
[0085]
根据权限关键信息中的权限有效期,可以确定当前权限有效期。
[0086]
具体的,权限隐私信息可以包括目标终端的硬件特征信息、权限总数量、权限当前序数、权限有效期等信息。
[0087]
权限隐私信息数据格式可以如下所示:
[0088][0089]
其中,controlnum表示权限总数量,与权限关键信息中的权限总数量相同,currentnum表示权限当前序数,mac表示目标终端的硬件特征信息,start表示权限有效期的起始时间,end表示权限有效期的结束时间,与权限关键信息中的权限有效期的起始时间和结束时间相同。
[0090]
生成权限隐私信息后,进一步可以确定权限隐私信息的存放信息,存放信息可以包括存放位置及在存放位置中的存放起点。存放位置是指权限隐私信息的存放位置。
[0091]
基于权限隐私信息和存放信息,可以生成权限文件。权限文件中包含权限隐私信息、存放信息等信息。
[0092]
授权服务端将权限文件下发给授权客户端后,授权客户端通过权限文件中的存放信息可以确定权限隐私信息的存放位置和在存放位置的存放起点,可以读取到权限隐私信息,从而可以基于权限隐私信息确定是否允许目标终端中运行要保护的软件。
[0093]
在本公开的一种具体实施方式中,基于权限隐私信息和存放信息,生成权限文件,具体可以包括以下步骤:
[0094]
第一个步骤:使用权限关键信息中的私钥对存放信息进行签名,获得存放签名值;
[0095]
第二个步骤:基于权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,生成权限文件。
[0096]
为便于描述,将上述两个步骤结合起来进行说明。
[0097]
在本公开实施例中,权限关键信息中可以包括授权服务端的公钥和私钥。授权服务端根据硬件特征信息和智能密码钥匙中的权限关键信息,生成权限隐私信息,并确定权限隐私信息的存放信息后,可以使用权限关键信息中的私钥对存放信息进行签名,获得存放信息签名值,然后基于权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,生成权限文件。这样生成的权限文件中可以包含权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书等。
[0098]
权限文件中包含权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,授权客户端接收到权限文件后,可以从权限文件信息中的公钥的证书中得到授权服务端的公钥,利用授权服务端的公钥和存放信息签名值,确定存放信息是否完整。如可以利用授权服务端的公钥对存放信息进行签名,确定当前得到的签名值与权限文件中包含的存放信息签名值是否相同,如果相同,则可以确定权限文件中的存放信息是完整的,否则,可以确定权限文件中的存放信息不完整。如果确定权限文件中的存放信息是完整的,则
可以根据存放信息,获得权限隐私信息,从而基于权限隐私信息进行权限验证。
[0099]
在本公开的一种具体实施方式中,存放信息还可以包括随机信息。即存放信息包括存放位置、在存放位置中的存放起点及随机信息。随机信息的数据长度可以与存放位置和在存放位置中的存放起点的数据长度相同,以掩盖存放位置和存放起点的值。增强存放信息的安全性,以避免恶意获取权限隐私信息的情况发生。
[0100]
权限文件的整体文件结构可以如下所示:
[0101][0102][0103]
其中,pivotal表示权限隐私信息的存放位置,pos表示权限隐私信息在存放位置中的存放起点,random表示随机信息,用来掩盖pos和pivotal值,字段sign为使用权限关键信息中的私钥prvkey对前三个字段进行签名,如使用sm2算法进行签名,得到的存放签名值,cert为权限关键信息中的公钥对应的证书。
[0104]
进一步需要说明的是,在权限文件下发到授权客户端后,可以通过sign值避免权限文件被暴力破解或者被仿冒。sign值是使用权限关键信息中的私钥prvkey签名得到的,只有权限关键信息中的pubkey才能验证,在权限文件中,cert为授权服务端的证书,基于pubkey生成。授权客户端对权限文件进行签名验证,可以确定文件的有效性和是否被篡改。
[0105]
权限文件中的random对pivotal和pos进行了掩盖,如通过异或运算掩盖,在验证权限文件时,random基于pivotal和pos再进行一次异或运算就可以还原pivotal信息,pos指明了在pivotal[max_pivotal_len]的数组中typedefstruct_pivotalinfo
[0106][0107]
的开始位置,通过从开始位置,取32+32+32+4+4长度的数据,就可以得到pivinfo的真实信息。通过pivinfo的信息,可以确定权限总数量,即权限文件控制总数、权限当前序数、mac、起始时间、结束时间。
[0108]
授权客户端在验证权限文件时,可以先验证权限当前序数是否小于权限总数量,再验证mac是否与所在终端mac相符,最后验证所在终端时间是否在起始时间和结束时间之间。
[0109]
权限文件在授权客户端上进行验证,使用软算法模块验证权限文件的签名信息(sm2),如果验证通过,则说明权限文件没有被篡改。
[0110]
在本公开的一个实施例中,智能密码钥匙中包含权限关键信息密文和对称密钥密文,对称密钥密文为使用智能密码钥匙的公钥对对称密钥进行加密后得到的密文,权限关键信息密文为使用对称密钥对权限关键信息进行加密后得到的密文;通过以下步骤获取权限关键信息:
[0111]
步骤一:利用智能密码钥匙的私钥对对称密钥密文进行解密,获得对称密钥;
[0112]
步骤二:使用对称密钥对权限关键信息密文进行解密,获得权限关键信息。
[0113]
为便于描述,将上述两个步骤结合起来进行说明。
[0114]
在本公开实施例中,为了提高安全性,智能密码钥匙中包含的权限关键信息可以是密文形式。在智能密钥钥匙中可以包含权限关键信息密文和对称密钥密文。其中,对称密钥密文为使用智能密码钥匙的公钥对对称密钥进行加密后得到的密文,权限关键信息密文为使用对称密钥对权限关键信息进行加密后得到的密文,具体可以使用sm1算法进行加密保护。
[0115]
授权服务端可以通过调用智能密码钥匙的接口,得到智能密钥钥匙的私钥句柄,从而可以利用智能密钥钥匙的私钥对对称密钥密文进行解密,获得对称密钥,然后再使用对称密钥对权限关键信息密文进行解密,获得权限关键信息。利用权限关键信息进行权限文件的生成。
[0116]
在智能密钥钥匙中以密文形式存储权限关键信息,可以提高权限关键信息的安全性,有效避免对权限关键信息的篡改导致权限滥用的情况发生。
[0117]
在本公开的一个实施例中,在生成权限文件之后,还可以对智能密钥钥匙中的权限关键信息进行更新。
[0118]
可以理解的是,权限总数量一定的情况下,每次的授权申请都可能会消耗一定数量的权限。授权服务端在接收到授权客户端发送的授权申请,生成权限文件之后,可以对智能密钥钥匙中的权限关键信息进行更新,具体的可以更新权限剩余数量,以在再次接收到授权申请时,可以基于更新后的权限关键信息生成权限文件。
[0119]
本公开中先对称加密,再使用非对称密钥保护对称密钥,主要原因在于保护对称密钥的非对称私钥在软算法模块中不能被安全存储,但可以在授权服务端的智能密码钥匙中安全存储。如果权限文件存储在智能密码钥匙中,那么每个授权客户端都要配用一个智能密码钥匙,配用一个硬件模块,成本较高。而本公开在授权客户端不需要增加额外的硬件模块,可以减少部署成本。
[0120]
需要说明的是,在使用过程中,可能会因为某些原因导致已经得到的权限文件丢失,在这种情况下,用户可能会通过授权客户端再次向授权服务端发送授权申请。这就出现了同一终端上的授权客户端的多次授权申请的情况,授权服务端获取到的授权客户端所在终端的硬件特征信息与已生成过的权限文件中的硬件特征信息相同,再次生成的权限文件将与之前已经生成过的权限文件相同,不会消耗权限数量。
[0121]
上面主要是在授权服务端的角度对本公开所提供的软件授权方法进行的描述,下面在授权客户端的角度对该方法进行进一步说明。
[0122]
参见图3所示,该方法可以应用于授权客户端,可以包括以下步骤:
[0123]
s310:向授权服务端发送授权申请,以使授权服务端获取授权客户端所在目标终端的硬件特征信息,基于硬件特征信息和部署的智能密码钥匙中的权限关键信息,生成权限文件;
[0124]
s320:接收授权服务端下发的权限文件;
[0125]
s330:对权限文件进行验证;
[0126]
s340:根据验证结果,确定是否允许在目标终端中运行要保护的软件。
[0127]
为便于描述,将上述几个步骤结合起来进行说明。
[0128]
用户可以根据实际需要通过授权客户端向授权服务端发送授权申请。授权服务端接收到授权客户端发送的授权申请后,可以根据该授权申请,获取授权客户端所在目标终端的硬件特征信息,基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件,并下发给授权客户端。
[0129]
智能密码钥匙中的权限关键信息可以包括权限总数量、权限剩余数量、权限有效期、授权服务端的公私钥等信息。生成的权限文件中可以包含目标终端的硬件特征信息、权限总数量、权限当前序数、权限有效期等信息。
[0130]
授权客户端接收到授权服务端下发的权限文件后,可以对权限文件进行验证,确定权限文件的完整性。根据验证结果可以确定是否允许目标终端中运行要保护的软件。如果验证通过,则确定允许在目标终端中运行要保护的软件,以在软件授权的情况下,方便用户使用。如果验证不通过,则确定不允许在目标终端中运行要保护的软件,以限制软件的使用,对软件起到保护作用。在验证不通过的情况下,授权客户端可以输出权限限制提示信息,以便用户进行问题排查。
[0131]
应用本公开实施例所提供的方法,授权服务端可以单独部署在服务器等设备上,并在其中部署智能密码钥匙,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。而且,因为有智能密码钥匙的限制,所以,无论授权服务端处于互联网条件下还是独立网络环境中,都可以保障授权服务端的安全性,可以避免对授权服务端的恶意重置等操作导致的对软件保护的失效。
[0132]
在本公开的一个实施例中,权限文件可以包括限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,对权限文件进行验证可以包括以下几个步骤:
[0133]
步骤一:基于权限关键信息中的公钥的证书和存放信息签名值,确定存放信息是否完整;
[0134]
步骤二:如果存放信息完整,则根据存放信息,获得权限隐私信息;
[0135]
步骤三:基于权限隐私信息进行权限验证。
[0136]
在本公开实施例中,权限关键信息中可以包括授权服务端的公钥和私钥。授权服务端根据硬件特征信息和智能密码钥匙中的权限关键信息,生成权限隐私信息,并确定权限隐私信息的存放信息后,可以使用权限关键信息中的私钥对存放信息进行签名,获得存放信息签名值,然后基于权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公
钥的证书,生成权限文件。这样生成的权限文件中可以包含权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书等。
[0137]
权限文件中包含权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,授权客户端接收到权限文件后,可以从权限文件信息中的公钥的证书中得到授权服务端的公钥,利用授权服务端的公钥和存放信息签名值,确定存放信息是否完整。如可以利用授权服务端的公钥对存放信息进行签名,确定当前得到的签名值与权限文件中包含的存放信息签名值是否相同,如果相同,则可以确定权限文件中的存放信息是完整的,否则,可以确定权限文件中的存放信息不完整。如果确定权限文件中的存放信息是完整的,则可以根据存放信息,获得权限隐私信息,从而基于权限隐私信息进行权限验证。
[0138]
具体的,授权客户端可以将自身所在目标终端的硬件特征信息与权限隐私信息中的硬件特征信息进行比较,如果一致,则进一步确定当前时间是否在权限隐私信息中的权限有效期范围内,如果在,则进一步确定权限隐私信息中的权限当前序数是否未超过权限总数量对应的序数值,如果是,则可以确定对权限文件验证通过,可以允许在目标终端中运行要保护的软件。
[0139]
其中只要有一项不满足,就可以确定权限文件验证不通过,不允许在目标终端中运行要保护的软件。
[0140]
通过授权客户端对权限文件进行验证,可以对要保护的软件进行保护,保证软件的使用合法性。
[0141]
相应于上面图2所示的方法实施例,本公开实施例还提供了一种软件授权装置,应用于授权服务端,授权服务端部署有智能密码钥匙,下文描述的软件授权装置与上文描述的软件授权方法可相互对应参照。
[0142]
参见图4所示,该软件授权装置400可以包括以下模块:
[0143]
授权申请接收模块410,用于接收授权客户端发送的授权申请;
[0144]
硬件特征获取模块420,用于获取授权客户端所在目标终端的硬件特征信息;
[0145]
权限文件生成模块430,用于基于硬件特征信息和智能密码钥匙中的权限关键信息,生成权限文件;
[0146]
权限文件下发模块440,用于将权限文件下发给授权客户端,以使授权客户端基于权限文件,确定是否允许在目标终端中运行要保护的软件。
[0147]
应用本公开实施例所提供的装置,授权服务端可以单独部署在服务器等设备上,并在其中部署智能密码钥匙,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。而且,因为有智能密码钥匙的限制,所以,无论授权服务端处于互联网条件下还是独立网络环境中,都可以保障授权服务端的安全性,可以避免对授权服务端的恶意重置等操作导致的对软件保护的失效。
[0148]
在本公开的一种具体实施方式中,权限文件生成模块430,用于:
[0149]
根据硬件特征信息和智能密码钥匙中的权限关键信息,生成权限隐私信息;
[0150]
确定权限隐私信息的存放信息,存放信息包括存放位置及在存放位置中的存放起点;
[0151]
基于权限隐私信息和存放信息,生成权限文件。
[0152]
在本公开的一种具体实施方式中,权限文件生成模块430,用于:
[0153]
使用权限关键信息中的私钥对存放信息进行签名,获得存放签名值;
[0154]
基于权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,生成权限文件。
[0155]
在本公开的一种具体实施方式中,存放信息还包括随机信息。
[0156]
在本公开的一种具体实施方式中,智能密码钥匙中包含权限关键信息密文和对称密钥密文,对称密钥密文为使用智能密码钥匙的公钥对对称密钥进行加密后得到的密文,权限关键信息密文为使用对称密钥对权限关键信息进行加密后得到的密文;该软件授权装置400还包括权限关键信息获取模块,用于通过以下步骤获取权限关键信息:
[0157]
利用智能密码钥匙的私钥对对称密钥密文进行解密,获得对称密钥;
[0158]
使用对称密钥对权限关键信息密文进行解密,获得权限关键信息。
[0159]
在本公开的一种具体实施方式中,还包括权限关键信息更新模块,用于在生成权限文件之后,对智能密码钥匙中的权限关键信息进行更新。
[0160]
相应于上面图3所示的方法实施例,本公开实施例还提供了一种软件授权装置,应用于授权客户端,下文描述的软件授权装置与上文描述的软件授权方法可相互对应参照。
[0161]
参见图5所示,该软件授权装置500可以包括以下模块:
[0162]
授权申请发送模块510,用于向授权服务端发送授权申请,以使授权服务端获取授权客户端所在目标终端的硬件特征信息,基于硬件特征信息和部署的智能密码钥匙中的权限关键信息,生成权限文件;
[0163]
权限文件接收模块520,用于接收授权服务端下发的权限文件;
[0164]
权限文件验证模块530,用于对权限文件进行验证;
[0165]
软件授权确定模块540,用于根据验证结果,确定是否允许在目标终端中运行要保护的软件。
[0166]
应用本公开实施例所提供的装置,在终端侧只需要部署授权客户端,不需要增加其他硬件模块,可以减少部署成本,以较低的部署成本实现终端上的软件授权,方便用户对软件的使用。而且,因为有智能密码钥匙的限制,所以,无论授权服务端处于互联网条件下还是独立网络环境中,都可以保障授权服务端的安全性,可以避免对授权服务端的恶意重置等操作导致的对软件保护的失效。
[0167]
在本公开的一种具体实施方式中,权限文件包括权限隐私信息、存放信息、存放信息签名值和权限关键信息中的公钥的证书,权限文件验证模块530,用于:
[0168]
基于权限关键信息中的公钥的证书和存放信息签名值,确定存放信息是否完整;
[0169]
如果存放信息完整,则根据存放信息,获得权限隐私信息;
[0170]
基于权限隐私信息进行权限验证。
[0171]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0172]
图6是根据一示例性实施例示出的一种软件授权设备600的框图。如图6所示,该软件授权设备600可以包括:处理器601,存储器602。该软件授权设备600还可以包括多媒体组件603,输入/输出(i/o)接口604,以及通信组件605中的一者或多者。
[0173]
其中,处理器601用于控制该软件授权设备600的整体操作,以完成上述图3所示的
软件授权方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该软件授权设备600的操作,这些数据例如可以包括用于在该软件授权设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read

only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read

only memory,简称eprom),可编程只读存储器(programmable read

only memory,简称prom),只读存储器(read

only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该软件授权设备600与其他设备之间进行有线或无线通信。无线通信,例如wi

fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件605可以包括:wi

fi模块,蓝牙模块,nfc模块。
[0174]
在一示例性实施例中,软件授权设备600可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图3所示的软件授权方法。
[0175]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述图3所示的软件授权方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由软件授权设备600的处理器601执行以完成上述图3所示的软件授权方法。
[0176]
图7是根据一示例性实施例示出的一种软件授权设备700的框图。例如,软件授权设备700可以被提供为一服务器。参照图7,软件授权设备700包括处理器701,其数量可以为一个或多个,以及存储器702,用于存储可由处理器701执行的计算机程序。存储器702中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器701可以被配置为执行该计算机程序,以执行上述图2所示的软件授权方法。
[0177]
另外,软件授权设备700还可以包括电源组件703和通信组件704,该电源组件703可以被配置为执行软件授权设备700的电源管理,该通信组件704可以被配置为实现软件授权设备700的通信,例如,有线或无线通信。此外,该软件授权设备700还可以包括输入/输出(i/o)接口705。软件授权设备700可以操作基于存储在存储器702的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm等等。
[0178]
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述图2所示的软件授权方法的步骤。例如,该计算机可读存
储介质可以为上述包括程序指令的存储器702,上述程序指令可由软件授权设备700的处理器701执行以完成上述图2所示的软件授权方法。
[0179]
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。例如,可以将智能密码钥匙改变为信息存储装置。
[0180]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0181]
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1