H04L29/08 H04L9/32 G06F21/10 G06F17/30
1.一种软件授权管理方法,其特征在于,包括:
用户端根据用户发起的软件业务操作、利用集成在所述软件业务中的授权 代理在本地查授权信息,所述授权信息包括有效用户端硬件信息和有效用户 端数量限额;
若查到授权信息,则所述授权代理根据预设的授权判断规则判断所述授 权信息是否有效,若所述授权信息有效,则允许所述用户在所述用户端使用所 述业务;若所述授权信息无效,则向授权管理服务器发送申请授权请求,从而 获取授权文件;
若未查到授权信息,则所述授权代理在本地搜索授权文件,若搜索到授 权文件,则安装所述授权文件以便获得所述授权信息;若未搜索到授权文件, 则向所述授权管理服务器发送申请授权请求,从而获取所述授权文件。
2.如权利要求1所述的软件授权管理方法,其特征在于,所述根据预设的 授权判断规则判断所述授权信息是否有效的步骤包括:
获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述 授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹 配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用 户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权 信息有效。
3.如权利要求1所述的软件授权管理方法,其特征在于,所述授权信息还 包括授权终止期限,所述根据预设的授权判断规则判断所述授权信息是否有效 的步骤包括:
判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权 信息无效;
若未超过所述授权终止期限,则获取所述用户端的用户端硬件信息,将所 述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不 匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹 配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用 户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权 信息有效。
4.如权利要求1所述的软件授权管理方法,其特征在于,所述方法还包括:
所述授权管理服务器收到来自所述授权代理的申请授权请求后,获取所述 授权代理所在的用户端的用户端硬件信息;
生成密钥对,所述密钥对包括公钥和私钥;
导出公钥文件;
根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所 述授权信息生成授权文件;
将所述公钥文件和所述授权文件发送给所述授权代理。
5.如权利要求4所述的软件授权管理方法,其特征在于,所述安装所述授 权文件的步骤包括:
利用所述公钥文件中的公钥解密所述授权文件;
若解密成功,则缓存解密后得到的授权信息,然后执行所述根据预设的授 权判断规则判断所述授权信息是否有效的步骤;
若解密失败,则报告所述授权文件错误,并向所述授权管理服务器发送申 请授权请求。
6.一种软件授权管理系统,其特征在于,包括授权管理服务器、用户端、 以及授权代理;
所述用户端用于接收用户发起的软件业务操作;
所述授权代理包括:
授权信息查模块,用于在所述用户端接收到用户发起的软件业务操作后, 在本地查授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数 量限额;
授权信息判断模块,用于在所述授权信息查模块查到授权信息时,根 据预设的授权判断规则判断所述授权信息是否有效;
授权模块,用于在所述授权信息判断模块确定所述授权信息有效时,允许 所述用户在所述用户端使用所述业务;
授权文件查模块,用于在所述授权信息查模块未查到授权信息时, 在本地搜索授权文件;
授权文件安装模块,用于在所述授权文件查模块查到授权文件时,安 装所述授权文件以便获得所述授权信息;
第一通信模块,用于在所述授权信息判断模块确定所述授权信息无效或所 述授权文件查模块为查到授权文件时,向授权管理服务器发送申请授权请 求,获取授权文件;
所述授权管理服务器包括:
第二通信模块,用于接收所述授权代理发送的申请授权请求,并向所述授 权代理发送授权文件。
7.如权利要求6所述的软件授权管理系统,其特征在于,所述授权信息判 断模块包括:
硬件信息对比模块,用于获取所述用户端的用户端硬件信息,将所述获取 的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配, 则判定所述授权信息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬 件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的 有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则 判定所述授权信息无效,若未超过,判定所述授权信息有效。
8.如权利要求6所述的软件授权管理系统,其特征在于,所述授权信息还 包括授权终止期限,所述授权信息判断模块包括:
授权期限判断模块,用于判断是否超过所述授权信息中的授权终止期限, 若超过,则判定所述授权信息无效;
硬件信息对比文件,用于在所述授权期限判断模块判定未超过所述授权终 止期限时,获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息 与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信 息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬 件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的 有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则 判定所述授权信息无效,若未超过,判定所述授权信息有效。
9.如权利要求6所述的软件授权管理系统,其特征在于,所述授权管理服 务器还包括授权文件生成模块,所述授权文件生成模块包括:
用户端硬件信息获取模块,用于在所述第二通信模块收到来自所述授权代 理的申请授权请求后,通过所述第二通信模块获取所述授权代理所在的用户端 的用户端硬件信息;
密钥对生成模块,用于生成密钥对,所述密钥对包括公钥和私钥;
公钥导出模块,用于导出公钥文件;
加密模块,用于根据所述用户端的用户端硬件信息生成授权信息,并利用 所述私钥加密所述授权信息生成授权文件。
10.如权利要求9所述的软件授权管理系统,其特征在于,所述授权文件 安装模块包括:
解密模块,用于利用所述公钥文件中的公钥解密所述授权文件;
缓存模块,用于当所述解密模块解密成功时,缓存解密后得到的授权信息;
报错模块,用于当所述解密模块解密失败时,报告所述授权文件错误。
本发明涉及计算机技术领域,尤其涉及一种软件授权管理方法及系统。
随着软件行业的飞速发展,人们对软件知识产权的保护意识也不断增强, 特别是大型商业软件,都需要有一套完整的知识产权保护机制。通过进行软件 保护,可以有效遏制软件被大量盗版使用,保护软件作者利益的同时也维护了 合法购买者的正当权利。目前常用的软件保护方式是在软件中使用加密狗或加 密锁。这种利用加密狗或加密锁保护软件的方案一般并不包括授权和用户管理 的功能,软件开发商往往需要自行开发初始化工具和用户管理工具,增加了软 件开发成本,也给软件开发商带来更大的工作负担。另外,单纯的软件加密保 护功能无法满足互联网时代的软件电子化发行以及按需销售的要求。
本发明实施例所要解决的技术问题在于,针对现有技术中软件保护方式缺 少授权管理的缺点,提供一种软件授权管理方法及系统。
为了解决上述技术问题,本发明实施例提供了一种软件授权管理方法,包 括:
用户端根据用户发起的软件业务操作、利用集成在所述软件业务中的授权 代理在本地查授权信息,所述授权信息包括有效用户端硬件信息和有效用户 端数量限额;
若查到授权信息,则所述授权代理根据预设的授权判断规则判断所述授 权信息是否有效,若所述授权信息有效,则允许所述用户在所述用户端使用所 述业务;若所述授权信息无效,则向授权管理服务器发送申请授权请求,从而 获取授权文件;
若未查到授权信息,则所述授权代理在本地搜索授权文件,若搜索到授 权文件,则安装所述授权文件以便获得所述授权信息;若未搜索到授权文件, 则向所述授权管理服务器发送申请授权请求,从而获取所述授权文件。
其中,所述根据预设的授权判断规则判断所述授权信息是否有效的步骤包 括:
获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述 授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹 配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用 户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权 信息有效。
其中,所述授权信息还包括授权终止期限,所述根据预设的授权判断规则 判断所述授权信息是否有效的步骤包括:
判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权 信息无效;
若未超过所述授权终止期限,则获取所述用户端的用户端硬件信息,将所 述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不 匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹 配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用 户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权 信息有效。
其中,所述方法还包括:
所述授权管理服务器收到来自所述授权代理的申请授权请求后,获取所述 授权代理所在的用户端的用户端硬件信息;
生成密钥对,所述密钥对包括公钥和私钥;
导出公钥文件;
根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所 述授权信息生成授权文件;
将所述公钥文件和所述授权文件发送给所述授权代理。
其中,所述安装所述授权文件的步骤包括:
利用所述公钥文件中的公钥解密所述授权文件;
若解密成功,则缓存解密后得到的授权信息,然后执行所述根据预设的授 权判断规则判断所述授权信息是否有效的步骤;
若解密失败,则报告所述授权文件错误,并向所述授权管理服务器发送申 请授权请求。
相应地,本发明还提供了一种软件授权管理系统,包括授权管理服务器、 用户端、以及集成在软件业务中的授权代理;
所述用户端用于接收用户发起的软件业务操作;
所述授权代理包括:
授权信息查模块,用于在所述用户端接收到用户发起的软件业务操作后, 在本地查授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数 量限额;
授权信息判断模块,用于在所述授权信息查模块查到授权信息时,根 据预设的授权判断规则判断所述授权信息是否有效;
授权模块,用于在所述授权信息判断模块确定所述授权信息有效时,允许 所述用户在所述用户端使用所述业务;
授权文件查模块,用于在所述授权信息查模块未查到授权信息时, 在本地搜索授权文件;
授权文件安装模块,用于在所述授权文件查模块查到授权文件时,安 装所述授权文件以便获得所述授权信息;
第一通信模块,用于在所述授权信息判断模块确定所述授权信息无效或所 述授权文件查模块为查到授权文件时,向授权管理服务器发送申请授权请 求,获取授权文件;
所述授权管理服务器包括:
第二通信模块,用于接收所述授权代理发送的申请授权请求,并向所述授 权代理发送授权文件。
其中,所述授权信息判断模块包括:
硬件信息对比模块,用于获取所述用户端的用户端硬件信息,将所述获取 的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配, 则判定所述授权信息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬 件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的 有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则 判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述授权信息还包括授权终止期限,所述授权信息判断模块包括:
授权期限判断模块,用于判断是否超过所述授权信息中的授权终止期限, 若超过,则判定所述授权信息无效;
硬件信息对比文件,用于在所述授权期限判断模块判定未超过所述授权终 止期限时,获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息 与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信 息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬 件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的 有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则 判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述授权管理服务器还包括授权文件生成模块,所述授权文件生成 模块包括:
用户端硬件信息获取模块,用于在所述第二通信模块收到来自所述授权代 理的申请授权请求后,通过所述第二通信模块获取所述授权代理所在的用户端 的用户端硬件信息;
密钥对生成模块,用于生成密钥对,所述密钥对包括公钥和私钥;
公钥导出模块,用于导出公钥文件;
加密模块,用于根据所述用户端的用户端硬件信息生成授权信息,并利用 所述私钥加密所述授权信息生成授权文件。
其中,所述授权文件安装模块包括:
解密模块,用于利用所述公钥文件中的公钥解密所述授权文件;
缓存模块,用于当所述解密模块解密成功时,缓存解密后得到的授权信息;
报错模块,用于当所述解密模块解密失败时,报告所述授权文件错误。
实施本发明实施例,具有如下有益效果:通过针对用户端硬件和用户端数 量对软件业务进行授权保护,可以提升软件保护的质量,满足用户的不同需求; 通过授权管理服务器对各个用户端和各种软件业务的授权进行统一管理,可以 降低软件的保护成本和发行成本,更快响应用户需求和市场变化。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的软件授权管理系统的结构示意图;
图2是本发明一实施例提供的软件授权管理方法的流程图;
图3是本发明实施例提供的申请授权方法的流程图;
图4是本发明实施例提供的授权文件安装方法的流程图;
图5是本发明第一实施例提供的授权代理的结构示意图;
图6是本发明第二实施例提供的授权代理的结构示意图;
图7是本发明一实施例提供的授权管理服务器的结构示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的软件授权管理系统的示意图。如图1所 示,软件授权管理系统包括授权管理服务器1和至少一个授权代理2,每个授权 代理2均位于用户端3中。具体地,用户端3上安装有至少一个软件业务,软 件开发商在研发软件业务时,可以直接将软件代理2植入所开发的软件业务中, 这样就可以通过软件授权管理系统对软件业务进行授权保护。其中,用户端3 可以是台式计算机、笔记本电脑、手机、平板电脑等具有操作系统且可以执行 软件业务的电子终端,软件业务可以包括计费软件、办公软件、视频软件等需 要实行知识产权保护的程序代码。
请参见图2,是本发明一实施例提供的软件授权管理方法的流程图,该方法 包括:
S101、用户端根据用户发起的软件业务操作、利用集成在所述软件业务中 的授权代理在本地查授权信息,所述授权信息包括有效用户端硬件信息和有 效用户端数量限额。
若查到授权信息,则执行步骤S102。S102、所述授权代理根据预设的授 权判断规则判断所述授权信息是否有效。
若所述授权信息有效,则执行步骤S103。S103、允许所述用户在所述用户 端使用所述业务。
若所述授权信息无效,则执行步骤S104。S104、向软件授权管理系统发送 申请授权请求,从而获取授权文件。
若未查到授权信息,则执行步骤S105。S105、所述授权代理在本地搜索 授权文件。
若搜索到授权文件,则执行步骤S106。S106、安装所述授权文件以便获得 所述授权信息。
若未搜索到授权文件,则执行步骤S104。
本发明实施例提供的软件授权管理方法,通过针对用户端硬件和用户端数 量对软件业务进行授权保护,可以提升软件保护的质量,满足用户的不同需求; 通过授权管理服务器对各个用户端和各种软件业务的授权进行统一管理,可以 降低软件的保护成本和发行成本,更快响应用户需求和市场变化。
在图2所示的实施例中,用于判断授权信息是否有效的授权判断规则可以 有多种。通过设置不同的授权判断规则对授权进行限制,可以满足客户的不同 需求,有利于软件授权管理系统的推广和应用。
在一个优选实施例中,授权信息包括有效用户端硬件信息和有效用户端数 量限额,步骤S102包括:获取所述用户端的用户端硬件信息,将所述获取的用 户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判 定所述授权信息无效;若所述获取的用户端硬件信息与所述授权信息中的有效 用户端硬件信息匹配,则判断数据库中记录的有效用户端数量是否超过所述授 权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超 过,判定所述授权信息有效。同理,在其它实施例中,也可以先判断有效用户 端数量,再判断有效用户端硬件信息。
在另一个实施例中,授权信息包括有效用户端硬件信息、有效用户端数量 限额和授权终止期限,步骤S102包括:判断是否超过所述授权信息中的授权终 止期限,若超过,则判定所述授权信息无效;若未超过所述授权终止期限,则 获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权 信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;若 所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配,则 判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数 量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有 效。同理,判断有效用户端硬件信息、有效用户端数量和授权终止期限的顺序 也可以变化。
在其它实施例中,授权信息还可以包括授权级别和/或授权功能范围。其中, 若授权信息包括授权功能范围,则步骤S102中还需要判断用户端所请求的软件 业务功能是否在授权信息中的授权功能范围内,只有在授权功能范围内时,才 可能判定授权信息有效。本领域技术人员应当理解,判断授权功能的步骤最好 在判断有效用户端数量的步骤之后执行。授权级别可以包括内测模式、验收模 式、正式模式和试用模式,不同模式下,允许用户使用的软件业务的功能和期 限不同。步骤S103中,可以根据授权信息中有关授权级别的信息,在相应范围 内允许用户使用软件业务。
用户首次在用户端3上使用软件业务时,必须先在用户端3上安装软件, 预先植入软件业务中的授权代理2也自动安装在用户端3上。然后,用户可以 点击软件快捷方式启动软件业务,这时,授权代理2可以通过用户端3向用户 提示是否进行注册,若用户同意注册,则授权代理2向授权管理服务器1发送 申请授权请求。
如图3所示,为本发明实施例提供的申请授权方法的流程图,该方法包括:
S301、授权管理服务器接收来自授权代理的申请授权请求。
S302、根据申请授权请求获取授权代理所在用户端的用户端硬件信息,包 括获取原有基本信息(例如时间、版本需求范围、产品功能许可等)、原有用户 信息(例如用户数量、类型等)、原有授权级别信息(例如内测、验收、正式、 试用等)、原有客户信息(例如局点信息)、以及原有其它信息。获取的用户硬 件信息可以包括:i)操作系统信息,包括操作系统内核信息、操作系统描述信 息、操作系统类型信息、操作系统厂商名称、操作系统名称、操作系统版本号 等;ii)内存信息,包括物理内存信息(内存总量、内存使用量、内存剩余量)、 交换区信息(内存总量、内存使用量、内存剩余量);iii)CPU信息,包括CPU 数量、CPU相关信息(频率、厂商、类别、缓冲存储器数量等)、CPU使用信息 (用户使用率、系统使用率、当前等待率、当前空闲率、总使用率);iv)资源 信息,包括各分区或挂载点详细信息;v)网络信息,包括当前用户端正式域名、 当前用户端内网IP、当前用户端MAC地址、接收总包裹数、发送总包裹数、接 收总字节数、发送总字节数、接收到的错误包数、发送时的错误包数、接收时 的丢弃包数、发送时的丢弃包数;vi)其他信息,包括IP地址、网关广播地址、 网卡MAC地址、子网掩码、网卡描述等信息。
S303、生成密钥对,所述密钥对包括公钥和私钥。具体地,步骤S303可以 包括:判断密钥仓库是否存在,如不存在则重新建立;获得当前时间的Long型 表示,将其设置为密钥访问入口地址。在实施过程中,可以通过使用Java2SDK 提供的KeyStore数据结构,完成对密码仓库中已存储密钥的查询和管理工作, 即通过提供KeyStorage外层包装操作对象,来提供更为完善的对外部密码仓库 文件访问的支持,包括:读入一个JSK格式的密码仓库文件、获得密码仓库中 的所有密码对入口地址、获得一个密码对的X.509格式公钥信息、判断当前密 码仓库中是否存在特定的公钥信息。
S304、导出公钥文件。具体地,步骤S304可以包括:提取出当前密钥仓库 中的所有密钥访问入口地址;根据每个公钥访问入口地址,提取出其所对应的 公钥信息;将公钥信息转换为X.509公钥体系结构表示;将公钥信息保存到外 部的公钥文件。
S305、根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥 加密所述授权信息生成授权文件。这种加密方式是非对称加密,加密精度较高。 具体地,步骤S305可以包括:根据密钥仓库中的所有入口地址得到其所对应的 私钥信息;读取license.properties文件;验证license.properties文件中的功能块 信息;验证并添加所生成License的起始与终止时间;根据所述用户端的用户端 硬件信息生成授权信息,将其保存为license_*****.lic格式的授权文件。生成文 件时,对数据用Base64编码加密;利用传入的密钥对明文密码进行AES加密; 对加密后的数据进行Base64编码加密;生成文件说明“在此jar包所在目录创 建1个名称为ComputerInfo.txt的文件;在文件中,各个数据之间是用“|”分隔 的”。优选地,为了保护授权信息的私密性,在用户端通常会对授权信息进行加 密,此时,授权管理服务器在获取授权信息的过程中,首先解密需要生成授权 文件的数据;然后获取解密后数据中的mac地址;将解密后的数据mac地址以 分号分割的方式拼接到license命令中,如:keytool-genkey-alias 20991001;99;00-13-D3-DC-73-AF-keystore privateKeys.store;解密后的数据mac 地址以分号分割的方式拼接到license项目关键类CMVPLicenseManager、 SWLicenseManager中,如:SWLicenseManager类中的public static final String SUBJECT="20991001;99;00-13-D3-DC-73-AF"。
S306、将所述公钥文件和所述授权文件发送给所述用户端。
例如,授权文件(即License文件)可以由注释行、Server行、Demon行、 以及Feature行构成。
注释行:当一行的开始是"
本文发布于:2023-04-15 01:04:49,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/87491.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |