CN104580316B - 软件授权管理方法及系统 - Google Patents
软件授权管理方法及系统 Download PDFInfo
- Publication number
- CN104580316B CN104580316B CN201310508380.5A CN201310508380A CN104580316B CN 104580316 B CN104580316 B CN 104580316B CN 201310508380 A CN201310508380 A CN 201310508380A CN 104580316 B CN104580316 B CN 104580316B
- Authority
- CN
- China
- Prior art keywords
- authorization
- authorization message
- authority
- user terminal
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种软件授权管理方法及系统,用户端根据用户发起的软件业务操作、利用集成在所述软件业务中的授权代理在本地查找授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数量限额;若查找到授权信息,则所述授权代理根据预设的授权判断规则判断所述授权信息是否有效,若所述授权信息有效,则允许所述用户在所述用户端使用所述业务;若所述授权信息无效,则向授权管理服务器发送申请授权请求,从而获取授权文件;若未查找到授权信息,则所述授权代理在本地搜索授权文件,若搜索到授权文件,则安装所述授权文件以便获得所述授权信息;若未搜索到授权文件,则向所述授权管理服务器发送申请授权请求,从而获取所述授权文件。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件授权管理方法及系统。
背景技术
随着软件行业的飞速发展,人们对软件知识产权的保护意识也不断增强,特别是大型商业软件,都需要有一套完整的知识产权保护机制。通过进行软件保护,可以有效遏制软件被大量盗版使用,保护软件作者利益的同时也维护了合法购买者的正当权利。目前常用的软件保护方式是在软件中使用加密狗或加密锁。这种利用加密狗或加密锁保护软件的方案一般并不包括授权和用户管理的功能,软件开发商往往需要自行开发初始化工具和用户管理工具,增加了软件开发成本,也给软件开发商带来更大的工作负担。另外,单纯的软件加密保护功能无法满足互联网时代的软件电子化发行以及按需销售的要求。
发明内容
本发明实施例所要解决的技术问题在于,针对现有技术中软件保护方式缺少授权管理的缺点,提供一种软件授权管理方法及系统。
为了解决上述技术问题,本发明实施例提供了一种软件授权管理方法,包括:
用户端根据用户发起的软件业务操作、利用集成在所述软件业务中的授权代理在本地查找授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数量限额;
若查找到授权信息,则所述授权代理根据预设的授权判断规则判断所述授权信息是否有效,若所述授权信息有效,则允许所述用户在所述用户端使用所述业务;若所述授权信息无效,则向授权管理服务器发送申请授权请求,从而获取授权文件;
若未查找到授权信息,则所述授权代理在本地搜索授权文件,若搜索到授权文件,则安装所述授权文件以便获得所述授权信息;若未搜索到授权文件,则向所述授权管理服务器发送申请授权请求,从而获取所述授权文件。
其中,所述根据预设的授权判断规则判断所述授权信息是否有效的步骤包括:
获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述授权信息还包括授权终止期限,所述根据预设的授权判断规则判断所述授权信息是否有效的步骤包括:
判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权信息无效;
若未超过所述授权终止期限,则获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述方法还包括:
所述授权管理服务器收到来自所述授权代理的申请授权请求后,获取所述授权代理所在的用户端的用户端硬件信息;
生成密钥对,所述密钥对包括公钥和私钥;
导出公钥文件;
根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所述授权信息生成授权文件;
将所述公钥文件和所述授权文件发送给所述授权代理。
其中,所述安装所述授权文件的步骤包括:
利用所述公钥文件中的公钥解密所述授权文件;
若解密成功,则缓存解密后得到的授权信息,然后执行所述根据预设的授权判断规则判断所述授权信息是否有效的步骤;
若解密失败,则报告所述授权文件错误,并向所述授权管理服务器发送申请授权请求。
相应地,本发明还提供了一种软件授权管理系统,包括授权管理服务器、用户端、以及集成在软件业务中的授权代理;
所述用户端用于接收用户发起的软件业务操作;
所述授权代理包括:
授权信息查找模块,用于在所述用户端接收到用户发起的软件业务操作后,在本地查找授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数量限额;
授权信息判断模块,用于在所述授权信息查找模块查找到授权信息时,根据预设的授权判断规则判断所述授权信息是否有效;
授权模块,用于在所述授权信息判断模块确定所述授权信息有效时,允许所述用户在所述用户端使用所述业务;
授权文件查找模块,用于在所述授权信息查找模块未查找到授权信息时,在本地搜索授权文件;
授权文件安装模块,用于在所述授权文件查找模块查找到授权文件时,安装所述授权文件以便获得所述授权信息;
第一通信模块,用于在所述授权信息判断模块确定所述授权信息无效或所述授权文件查找模块为查找到授权文件时,向授权管理服务器发送申请授权请求,获取授权文件;
所述授权管理服务器包括:
第二通信模块,用于接收所述授权代理发送的申请授权请求,并向所述授权代理发送授权文件。
其中,所述授权信息判断模块包括:
硬件信息对比模块,用于获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述授权信息还包括授权终止期限,所述授权信息判断模块包括:
授权期限判断模块,用于判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权信息无效;
硬件信息对比文件,用于在所述授权期限判断模块判定未超过所述授权终止期限时,获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。
其中,所述授权管理服务器还包括授权文件生成模块,所述授权文件生成模块包括:
用户端硬件信息获取模块,用于在所述第二通信模块收到来自所述授权代理的申请授权请求后,通过所述第二通信模块获取所述授权代理所在的用户端的用户端硬件信息;
密钥对生成模块,用于生成密钥对,所述密钥对包括公钥和私钥;
公钥导出模块,用于导出公钥文件;
加密模块,用于根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所述授权信息生成授权文件。
其中,所述授权文件安装模块包括:
解密模块,用于利用所述公钥文件中的公钥解密所述授权文件;
缓存模块,用于当所述解密模块解密成功时,缓存解密后得到的授权信息;
报错模块,用于当所述解密模块解密失败时,报告所述授权文件错误。
实施本发明实施例,具有如下有益效果:通过针对用户端硬件和用户端数量对软件业务进行授权保护,可以提升软件保护的质量,满足用户的不同需求;通过授权管理服务器对各个用户端和各种软件业务的授权进行统一管理,可以降低软件的保护成本和发行成本,更快响应用户需求和市场变化。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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-alias20991001;99;00-13-D3-DC-73-AF-keystoreprivateKeys.store;解密后的数据mac地址以分号分割的方式拼接到license项目关键类CMVPLicenseManager、SWLicenseManager中,如:SWLicenseManager类中的public staticfinal String SUBJECT="20991001;99;00-13-D3-DC-73-AF"。
S306、将所述公钥文件和所述授权文件发送给所述用户端。
例如,授权文件(即License文件)可以由注释行、Server行、Demon行、以及Feature行构成。
注释行:当一行的开始是"#"符号时,该行被License Manager(lmgr32xx)认为是注释行,有时候"|"也可以作为注释行的开始。
Server行:Server行用来标识一台特定的主机,其格式是::SERVER nodename idport-number TCP端口号。
Daemon(或Vendor)行:Deamon行是用来标识不同的卖主,或者说是用来标识不同的软件商。其常见格式是DAEMON daemon_name daemon_path。
Feature行是用来对软件特定的功能进行限制的,其常见的格式为:FEATURE namevendor version expiration_date n Key"Vendor_String"hostID。
如:
FEATURE maxplus2alterad2001.1225-sep-2002uncounted E71125CEA376\HOSTID=GUARD_ID=T000072362
其中,FEATURE表示关键字,maxplus2表示FEATURE名,alterad表示厂商标识,2001.12表示版本标记,25-sep-2002表示2002年9月25日超期(也可以用permanent或0来表示永不过期),uncounted表示使用人数限制,E71125CEA376表示密码,HOSTID=GUARD_ID=T000072362表示运行机器(用户端)的特征,只有检测到存在T000072362的加密狗时,软件才可以使用。运行机器特征也可以指定硬盘号、网卡号等。
如图4所示,为本发明实施例提供的授权文件安装方法的流程图,该方法包括:
S401、利用所述公钥文件中的公钥解密授权文件。
若解密成功,则执行步骤S402。S402、缓存解密后得到的授权信息。接下来执行步骤S403。
S403、根据预设的授权判断规则判断所述授权信息是否有效。
若步骤S403的判断结果为是,则执行步骤S404。S404、将所述授权信息保存到授权文件,并提示安装成功。然后,可以授权允许用户使用相应的软件业务或相应软件业务的部分功能。
若步骤S403的判断结果为否,则执行步骤S405。S405、报告所述授权文件错误,并向所述软件授权管理系统发送申请授权请求。在步骤S405中,还可以提示用户选择是否发送申请授权请求。
若解密失败,同样执行步骤S405。
优选地,在本发明的其它实施例中,若授权失败,授权管理服务器还可以向授权代理返回失败信息文件,并自动连线技术员与用户进行沟通,然后人工或自动发送授权文件给用户。
请参见图5,是本发明第一实施例提供的授权代理2的结构示意图。
授权代理2包括:
授权信息查找模块21,用于在所述用户端接收到用户发起的软件业务操作后,在本地查找授权信息,所述授权信息包括有效用户端硬件信息和有效用户端数量限额;
授权信息判断模块22,用于在所述授权信息查找模块查找到授权信息时,根据预设的授权判断规则判断所述授权信息是否有效;
授权模块23,用于在所述授权信息判断模块确定所述授权信息有效时,允许所述用户在所述用户端使用所述业务;
授权文件查找模块24,用于在所述授权信息查找模块未查找到授权信息时,在本地搜索授权文件;
授权文件安装模块25,用于在所述授权文件查找模块查找到授权文件时,安装所述授权文件以便获得所述授权信息;
第一通信模块26,用于在所述授权信息判断模块确定所述授权信息无效或所述授权文件查找模块为查找到授权文件时,向授权管理服务器发送申请授权请求,获取授权文件。
在图5所示的实施例中,授权信息判断模块22判断授权信息是否有效的授权判断规则可以有多种。通过设置不同的授权判断规则对授权进行限制,可以满足客户的不同需求,有利于软件授权管理系统的推广和应用。
在一个优选实施例中,授权信息包括有效用户端硬件信息和有效用户端数量限额,授权信息判断模块包括:硬件信息对比模块,用于获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。同理,在其它实施例中,也可以先判断有效用户端数量,再判断有效用户端硬件信息。
在另一个实施例中,授权信息包括有效用户端硬件信息、有效用户端数量限额和授权终止期限,授权信息判断模块包括:授权期限判断模块,用于判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权信息无效;硬件信息对比文件,用于在所述授权期限判断模块判定未超过所述授权终止期限时,获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效。同理,判断有效用户端硬件信息、有效用户端数量和授权终止期限的顺序也可以变化。
在其它实施例中,授权信息还可以包括授权级别和/或授权功能范围。其中,若授权信息包括授权功能范围,则授权信息判断模块22还包括授权功能范围判断模块,用于判断用户端所请求的软件业务功能是否在授权信息中的授权功能范围内,只有在授权功能范围内时,才可能判定授权信息有效。本领域技术人员应当理解,判断授权功能的步骤最好在判断有效用户端数量的步骤之后执行。授权级别可以包括内测模式、验收模式、正式模式和试用模式,不同模式下,允许用户使用的软件业务的功能和期限不同。授权模块23可以根据授权信息中有关授权级别的信息,在相应范围内允许用户使用软件业务。
如图6所示,为本发明第二实施例提供的授权代理2的结构示意图。软件代理2包括授权信息查找模块21、授权信息判断模块22、授权模块23、授权文件查找模块24、授权文件安装模块25和第一通信模块26。
其中,授权文件安装模块25包括:
解密模块251,用于利用所述公钥文件中的公钥解密授权文件。
缓存模块252,用于当所述解密模块251解密成功时,缓存解密后得到的授权信息。
报错模块253,用于当所述解密模块251解密失败时,报告所述授权文件错误。报错模块253通过用户端向用户报错后,可以提示用户重新安装授权文件或重新连接授权管理服务器获取授权文件。
如图7所示,为本发明一实施例提供的授权管理服务器1的结构示意图。
授权管理服务器1包括:
第二通信模块11,用于接收来自授权代理的申请授权请求;还用于最后生成的公钥文件和授权文件发送给用户端3内的相应软件业务的授权代理2。
用户端硬件信息获取模块12,用于通过第二通信模块11、根据申请授权请求获取授权代理所在用户端的用户端硬件信息,包括获取原有基本信息(例如时间、版本需求范围、产品功能许可等)、原有用户信息(例如用户数量、类型等)、原有授权级别信息(例如内测、验收、正式、试用等)、原有客户信息(例如局点信息)、以及原有其它信息。获取的用户硬件信息可以包括:i)操作系统信息,包括操作系统内核信息、操作系统描述信息、操作系统类型信息、操作系统厂商名称、操作系统名称、操作系统版本号等;ii)内存信息,包括物理内存信息(内存总量、内存使用量、内存剩余量)、交换区信息(内存总量、内存使用量、内存剩余量);iii)CPU信息,包括CPU数量、CPU相关信息(频率、厂商、类别、缓冲存储器数量等)、CPU使用信息(用户使用率、系统使用率、当前等待率、当前空闲率、总使用率);iv)资源信息,包括各分区或挂载点详细信息;v)网络信息,包括当前用户端正式域名、当前用户端内网IP、当前用户端MAC地址、接收总包裹数、发送总包裹数、接收总字节数、发送总字节数、接收到的错误包数、发送时的错误包数、接收时的丢弃包数、发送时的丢弃包数;vi)其他信息,包括IP地址、网关广播地址、网卡MAC地址、子网掩码、网卡描述等信息。
密钥对生成模块13,用于生成密钥对,所述密钥对包括公钥和私钥。具体地,密钥对生成模块13可以用于:判断密钥仓库是否存在,如不存在则重新建立;获得当前时间的Long型表示,将其设置为密钥访问入口地址。在实施过程中,可以通过使用Java2SDK提供的KeyStore数据结构,完成对密码仓库中已存储密钥的查询和管理工作,即通过提供KeyStorage外层包装操作对象,来提供更为完善的对外部密码仓库文件访问的支持,包括:读入一个JSK格式的密码仓库文件、获得密码仓库中的所有密码对入口地址、获得一个密码对的X.509格式公钥信息、判断当前密码仓库中是否存在特定的公钥信息。
公钥导出模块14,用于导出公钥文件。具体地,公钥导出模块14可以用于:提取出当前密钥仓库中的所有密钥访问入口地址;根据每个公钥访问入口地址,提取出其所对应的公钥信息;将公钥信息转换为X.509公钥体系结构表示;将公钥信息保存到外部的公钥文件。
加密模块15,用于根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所述授权信息生成授权文件。这种加密方式是非对称加密,加密精度较高。具体地,加密模块15可以用于:根据密钥仓库中的所有入口地址得到其所对应的私钥信息;读取license.properties文件;验证license.properties文件中的功能块信息;验证并添加所生成License的起始与终止时间;根据所述用户端的用户端硬件信息生成授权信息,将其保存为license_*****.lic格式的授权文件。生成文件时,对数据用Base64编码加密;利用传入的密钥对明文密码进行AES加密;对加密后的数据进行Base64编码加密;生成文件说明“在此jar包所在目录创建1个名称为ComputerInfo.txt的文件;在文件中,各个数据之间是用“|”分隔的”。优选地,为了保护授权信息的私密性,在用户端通常会对授权信息进行加密,此时,授权管理服务器在获取授权信息的过程中,首先解密需要生成授权文件的数据;然后获取解密后数据中的mac地址;将解密后的数据mac地址以分号分割的方式拼接到license命令中,如:keytool-genkey-alias20991001;99;00-13-D3-DC-73-AF-keystoreprivateKeys.store;解密后的数据mac地址以分号分割的方式拼接到license项目关键类CMVPLicenseManager、SWLicenseManager中,如:SWLicenseManager类中的public staticfinal String SUBJECT="20991001;99;00-13-D3-DC-73-AF"。
例如,授权文件(即License文件)可以由注释行、Server行、Demon行、以及Feature行构成。
注释行:当一行的开始是"#"符号时,该行被License Manager(lmgr32xx)认为是注释行,有时候"|"也可以作为注释行的开始。
Server行:Server行用来标识一台特定的主机,其格式是::SERVER nodename idport-number TCP端口号。
Daemon(或Vendor)行:Deamon行是用来标识不同的卖主,或者说是用来标识不同的软件商。其常见格式是DAEMON daemon_name daemon_path。
Feature行是用来对软件特定的功能进行限制的,其常见的格式为:FEATURE namevendor version expiration_date n Key"Vendor_String"hostID。
如:
FEATURE maxplus2alterad2001.1225-sep-2002uncounted E71125CEA376\HOSTID=GUARD_ID=T000072362
其中,FEATURE表示关键字,maxplus2表示FEATURE名,alterad表示厂商标识,2001.12表示版本标记,25-sep-2002表示2002年9月25日超期(也可以用permanent或0来表示永不过期),uncounted表示使用人数限制,E71125CEA376表示密码,HOSTID=GUARD_ID=T000072362表示运行机器(用户端)的特征,只有检测到存在T000072362的加密狗时,软件才可以使用。运行机器特征也可以指定硬盘号、网卡号等。
优选地,在本发明的其它实施例中,若授权失败,授权管理服务器1还可以包括失败处理模块,用于向授权代理返回失败信息文件,并自动连线技术员与用户进行沟通,然后人工或自动发送授权文件给用户。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (8)
1.一种软件授权管理方法,其特征在于,包括:
用户端根据用户发起的软件业务操作、利用集成在所述软件业务中的授权代理在本地查找授权信息,所述授权信息包括有效用户端硬件信息、有效用户端数量限额、以及授权级别和授权功能范围,授权级别包括内测模式、验收模式、正式模式和试用模式,不同模式下,允许用户使用的软件业务的功能和期限不同;
若查找到授权信息,则所述授权代理根据预设的授权判断规则判断所述授权信息是否有效,若所述授权信息有效,则允许所述用户在所述用户端使用所述业务;若所述授权信息无效,则向授权管理服务器发送申请授权请求,从而获取授权文件;
若未查找到授权信息,则所述授权代理在本地搜索授权文件,若搜索到授权文件,则安装所述授权文件以便获得所述授权信息;若未搜索到授权文件,则向所述授权管理服务器发送申请授权请求,从而获取所述授权文件;
其中所述根据预设的授权判断规则判断所述授权信息是否有效的步骤包括:
获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
若所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配,则判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效;
若所述数据库中记录的有效用户端数量没有超过所述授权信息中的有效用户端数量限额,判断用户端所请求的软件业务功能是否在授权信息中的授权功能范围内,若在授权功能范围内,则判定授权信息有效,若不在授权功能范围内,则判定授权信息无效;
若用户端所请求的软件业务功能在授权信息中的授权功能范围内,根据授权信息中有关授权级别的信息,在相应范围内允许用户使用软件业务。
2.如权利要求1所述的软件授权管理方法,其特征在于,所述授权信息还包括授权终止期限,所述根据预设的授权判断规则判断所述授权信息是否有效的步骤还包括:
判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权信息无效;
若未超过所述授权终止期限,则进行获取所述用户端的用户端硬件信息、将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比的步骤。
3.如权利要求1所述的软件授权管理方法,其特征在于,所述方法还包括:
所述授权管理服务器收到来自所述授权代理的申请授权请求后,获取所述授权代理所在的用户端的用户端硬件信息;
生成密钥对,所述密钥对包括公钥和私钥;
导出公钥文件;
根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所述授权信息生成授权文件;
将所述公钥文件和所述授权文件发送给所述授权代理。
4.如权利要求3所述的软件授权管理方法,其特征在于,所述安装所述授权文件的步骤包括:
利用所述公钥文件中的公钥解密所述授权文件;
若解密成功,则缓存解密后得到的授权信息,然后执行所述根据预设的授权判断规则判断所述授权信息是否有效的步骤;
若解密失败,则报告所述授权文件错误,并向所述授权管理服务器发送申请授权请求。
5.一种软件授权管理系统,其特征在于,包括授权管理服务器、用户端、以及授权代理;
所述用户端用于接收用户发起的软件业务操作;
所述授权代理包括:
授权信息查找模块,用于在所述用户端接收到用户发起的软件业务操作后,在本地查找授权信息,所述授权信息包括有效用户端硬件信息、有效用户端数量限额、授权级别、以及授权功能范围;
授权信息判断模块,用于在所述授权信息查找模块查找到授权信息时,根据预设的授权判断规则判断所述授权信息是否有效;
授权模块,用于在所述授权信息判断模块确定所述授权信息有效时,允许所述用户在所述用户端使用所述业务;
授权文件查找模块,用于在所述授权信息查找模块未查找到授权信息时,在本地搜索授权文件;
授权文件安装模块,用于在所述授权文件查找模块查找到授权文件时,安装所述授权文件以便获得所述授权信息;
第一通信模块,用于在所述授权信息判断模块确定所述授权信息无效或所述授权文件查找模块未查找到授权文件时,向授权管理服务器发送申请授权请求,获取授权文件;
所述授权管理服务器包括:
第二通信模块,用于接收所述授权代理发送的申请授权请求,并向所述授权代理发送授权文件;
其中所述授权信息判断模块包括:
硬件信息对比模块,用于获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比,若不匹配,则判定所述授权信息无效;
有效用户端数量判断模块,用于在所述硬件信息对比模块获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息匹配时,判断数据库中记录的有效用户端数量是否超过所述授权信息中的有效用户端数量限额,若超过,则判定所述授权信息无效,若未超过,判定所述授权信息有效;
授权功能范围判断模块,用于在所述数据库中记录的有效用户端数量没有超过所述授权信息中的有效用户端数量限额时,判断用户端所请求的软件业务功能是否在授权信息中的授权功能范围内,若在授权功能范围内时,判定授权信息有效,若不在授权功能范围内,判定授权信息无效;
若用户端所请求的软件业务功能在授权信息中的授权功能范围内,所述授权模块根据授权信息中有关授权级别的信息,在相应范围内允许用户使用软件业务。
6.如权利要求5所述的软件授权管理系统,其特征在于,所述授权信息还包括授权终止期限,所述授权信息判断模块包括:
授权期限判断模块,用于判断是否超过所述授权信息中的授权终止期限,若超过,则判定所述授权信息无效;
所述硬件信息对比文件在所述授权期限判断模块判定未超过所述授权终止期限时,获取所述用户端的用户端硬件信息,将所述获取的用户端硬件信息与所述授权信息中的有效用户端硬件信息对比。
7.如权利要求5所述的软件授权管理系统,其特征在于,所述授权管理服务器还包括授权文件生成模块,所述授权文件生成模块包括:
用户端硬件信息获取模块,用于在所述第二通信模块收到来自所述授权代理的申请授权请求后,通过所述第二通信模块获取所述授权代理所在的用户端的用户端硬件信息;
密钥对生成模块,用于生成密钥对,所述密钥对包括公钥和私钥;
公钥导出模块,用于导出公钥文件;
加密模块,用于根据所述用户端的用户端硬件信息生成授权信息,并利用所述私钥加密所述授权信息生成授权文件。
8.如权利要求7所述的软件授权管理系统,其特征在于,所述授权文件安装模块包括:
解密模块,用于利用所述公钥文件中的公钥解密所述授权文件;
缓存模块,用于当所述解密模块解密成功时,缓存解密后得到的授权信息;
报错模块,用于当所述解密模块解密失败时,报告所述授权文件错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310508380.5A CN104580316B (zh) | 2013-10-24 | 2013-10-24 | 软件授权管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310508380.5A CN104580316B (zh) | 2013-10-24 | 2013-10-24 | 软件授权管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580316A CN104580316A (zh) | 2015-04-29 |
CN104580316B true CN104580316B (zh) | 2019-03-22 |
Family
ID=53095489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310508380.5A Active CN104580316B (zh) | 2013-10-24 | 2013-10-24 | 软件授权管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580316B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018515872A (ja) * | 2015-05-15 | 2018-06-14 | マイクロ モーション インコーポレイテッド | ドングルを用いたインターフェースへのアクセスの制御 |
CN106484610B (zh) * | 2015-09-02 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
CN108234384B (zh) * | 2016-12-09 | 2020-12-25 | 杭州海康威视系统技术有限公司 | 一种应用软件的授权方法及装置 |
CN106845164B (zh) * | 2017-02-04 | 2020-08-04 | 深圳泰科晶显科技有限公司 | 一种基于网络软件授权方法 |
CN108664771A (zh) * | 2017-03-28 | 2018-10-16 | 鸿富锦精密电子(天津)有限公司 | 软件保护系统及方法 |
CN107196925B (zh) * | 2017-05-09 | 2020-07-28 | 睿智合创(北京)科技有限公司 | 访问时间自调节的隐私数据保护方法 |
CN107844695A (zh) * | 2017-10-16 | 2018-03-27 | 深圳市合信自动化技术有限公司 | 一种plc工程软件保护装置及其保护方法 |
CN107784206A (zh) * | 2017-11-10 | 2018-03-09 | 北京深思数盾科技股份有限公司 | 软件保护方法和装置以及软件验证方法和装置 |
CN109800545A (zh) * | 2017-11-16 | 2019-05-24 | 航天信息股份有限公司 | 一种基于国密算法保护计算机软件的方法和系统 |
CN110032834B (zh) * | 2018-01-12 | 2024-02-27 | 厦门雅迅网络股份有限公司 | 系统授权控制方法、终端设备及存储介质 |
CN109063423B (zh) * | 2018-07-16 | 2020-12-11 | 北京知道创宇信息技术股份有限公司 | 应用软件授权方法及系统 |
CN110874455A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 授权管理方法和系统 |
CN109726526B (zh) * | 2018-12-25 | 2021-03-05 | 苏州思必驰信息科技有限公司 | 设备授权情况告警管理装置及基于设备授权情况进行告警的方法 |
CN110401629B (zh) * | 2019-05-20 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 一种激活授权的方法及相关装置 |
CN113647075B (zh) * | 2019-09-12 | 2023-04-04 | Oppo广东移动通信有限公司 | 设备激活方法、终端设备及计算机存储介质 |
CN110659457B (zh) * | 2019-09-20 | 2022-06-07 | 安徽听见科技有限公司 | 一种应用授权的验证方法、装置及客户端 |
CN110659473A (zh) * | 2019-09-24 | 2020-01-07 | 深圳创维-Rgb电子有限公司 | Ai摄像头授权方法、用户终端及计算机可读存储介质 |
CN111368263A (zh) * | 2020-03-03 | 2020-07-03 | 山东浪潮通软信息科技有限公司 | 一种客户授权方法 |
CN112528235A (zh) * | 2020-12-04 | 2021-03-19 | 上海波客实业有限公司 | 一种对工业软件进行授权的方法 |
CN113221075B (zh) * | 2021-06-02 | 2023-06-30 | 日照市海洲电子科技有限公司 | 一种软件授权方法、系统和软件终端 |
CN113378119B (zh) * | 2021-06-25 | 2023-04-07 | 成都卫士通信息产业股份有限公司 | 一种软件授权方法、装置、设备及存储介质 |
CN113672951A (zh) * | 2021-08-03 | 2021-11-19 | 浙江大华技术股份有限公司 | 一种授权方法、装置、计算机设备及存储介质 |
CN113806786B (zh) * | 2021-11-18 | 2022-03-18 | 北京持安科技有限公司 | 一种软件授权管理方法、系统、设备及存储介质 |
CN117707557B (zh) * | 2023-12-26 | 2024-05-14 | 和创(北京)科技股份有限公司 | 一种用于描述以及控制saas软件包安装的管理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406353A (zh) * | 1999-12-20 | 2003-03-26 | 柏纬有限公司 | 软件用于限制其它软件只可被其使用权拥有者使用及其方法 |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
-
2013
- 2013-10-24 CN CN201310508380.5A patent/CN104580316B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1406353A (zh) * | 1999-12-20 | 2003-03-26 | 柏纬有限公司 | 软件用于限制其它软件只可被其使用权拥有者使用及其方法 |
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
从软件保护到软件授权;Kevin.Wan;《博客园》;20111206;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN104580316A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104580316B (zh) | 软件授权管理方法及系统 | |
EP3400550B1 (en) | Methods and systems for securing data in the public cloud | |
US7805375B2 (en) | Digital license migration from first platform to second platform | |
US9461819B2 (en) | Information sharing system, computer, project managing server, and information sharing method used in them | |
CN103051600B (zh) | 文档访问控制方法和系统 | |
JP5516821B2 (ja) | 仮想化及び認証を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法 | |
US8417964B2 (en) | Software module management device and program | |
CN101571900B (zh) | 一种软件版权保护方法、设备和系统 | |
US20110276490A1 (en) | Security service level agreements with publicly verifiable proofs of compliance | |
US9300639B1 (en) | Device coordination | |
CN104718526A (zh) | 安全移动框架 | |
CN103095720B (zh) | 一种基于会话管理服务器的云存储系统的安全管理方法 | |
JP2006344156A (ja) | 個人情報流通管理システム、個人情報流通管理方法、個人情報提供プログラム及び個人情報利用プログラム | |
JP2007511821A (ja) | 分散ドキュメントのバージョンコントロール | |
KR100948873B1 (ko) | 데이터베이스 보안을 위한 데이터베이스 보안관리장치와 그제어방법 | |
CN112291375A (zh) | 物联网设备访问控制方法、物联网设备及物联网系统 | |
JP2004070674A (ja) | 電子データ交換システムにおけるデータ保護装置及びデータ保護方法並びにそれに用いるプログラム | |
WO2008108584A1 (en) | Method and apparatus for digital rights management for use in mobile communication terminal | |
CN107196957A (zh) | 一种分布式身份认证方法及系统 | |
WO2023239849A1 (en) | Internet protocol (ip) whitelisting for signed uniform resource locators (urls) | |
JP2011204016A (ja) | データベースアクセス管理システム及びデータベースアクセス管理方法 | |
TWM617427U (zh) | 具隱私保護的風險資訊交換系統 | |
CN113987561A (zh) | 一种基于可信执行环境的隐私数据分级方法、系统及终端 | |
CN111859351A (zh) | 向芯片写入信息的方法、系统、服务器及存储介质 | |
CN116827648B (zh) | 网站有效性检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |