一种软件授权管理方法、服务器及系统转让专利

申请号 : CN201810122770.1

文献号 : CN108376211B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹健

申请人 : 杭州矩视科技有限公司

摘要 :

本发明实施例公开了一种软件授权管理方法、服务器及系统,其中,该方法包括:服务器接收工作站发送的软件许可码和工作站的标识信息;在所述软件许可码和所述工作站的标识信息满足预设条件时,所述服务器依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,其中所述服务器、所述加密狗与用户一一对应;所述服务器依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性。本发明实施例在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。

权利要求 :

1.一种软件授权管理方法,其特征在于,包括:

服务器接收工作站发送的软件许可码和工作站的标识信息;

在所述软件许可码和所述工作站的标识信息满足预设条件时,所述服务器依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,其中所述服务器、所述加密狗与用户一一对应;

所述服务器依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性;

其中,所述服务器依据所述工作站定时发送的心跳数据,控制所述软件的授权持续性,包括:所述服务器接收所述工作站定时发送的心跳数据,其中,所述心跳数据包括所述软件许可码、所述工作站的标识信息以及第二随机数;其中,所述第二随机数用于区分每次发送的心跳数据,以实现监控所述工作站的软件运行情况;

当所述服务器对所述工作站的授权无调整时,所述服务器产生第三随机数;

所述服务器从所述加密狗的N组管理密钥中获取以所述第三随机数为索引的第一管理密钥;

所述服务器通过所述第一管理密钥对所述心跳数据进行加密,并将加密后的心跳数据和所述第三随机数作为反馈数据,发送至所述工作站;其中,所述反馈数据用于指示所述工作站保持所述软件的授权。

2.根据权利要求1所述的方法,其特征在于,所述服务器依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,包括:所述服务器对所述软件许可码进行解码得到软件许可码密文及第一随机数;

所述服务器从所述加密狗的M组认证密钥中获取以所述第一随机数为索引的第一认证密钥;

所述服务器依据所述第一认证密钥对所述软件许可码密文进行解密得到软件许可码明文;

当所述软件许可码明文中的预设信息与所述服务器中存储的预设信息相同的情况下,对所述工作站的软件进行授权认证。

3.根据权利要求1所述的方法,其特征在于,在所述服务器通过所述第一管理密钥对所述心跳数据进行加密,并将加密后的心跳数据和所述第三随机数作为反馈数据,发送至所述工作站之后,还包括:所述工作站接收到所述反馈数据后,在所述工作站的N组管理密钥中获取以所述第三随机数为索引的第二管理密钥;

所述工作站依据所述第二管理密钥对所述加密后的心跳数据进行解密;

当解密结果与所述心跳数据一致时,所述工作站保持所述软件的授权。

4.根据权利要求1所述的方法,其特征在于,在所述服务器接收所述工作站定时发送的心跳数据之后,还包括:在预设时段内所述工作站未收到所述服务器发送的反馈数据,则停止所述软件的授权。

5.根据权利要求1所述的方法,其特征在于,所述服务器依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性,包括:当所述服务器对所述工作站的授权进行调整时,所述服务器向所述工作站发送授权失败消息,其中,所述授权失败消息是所述服务器针对所述心跳数据或者所述用户输入的控制数据输出的消息;

所述工作站接收到所述授权失败消息后,停止所述软件的授权。

6.根据权利要求1所述的方法,其特征在于,在服务器接收工作站发送的软件许可码和工作站的标识信息之前,还包括:所述服务器均与所述用户的各工作站和所述加密狗建立通信连接;

所述服务器将待分配的软件许可码发送至对应的各工作站。

7.根据权利要求6所述的方法,其特征在于,在所述服务器依据加密狗中的认证密钥,对所述工作站的软件进行授权认证之后,还包括:若所述服务器检测到与所述加密狗的通信连接断开,则控制所述各工作站停止软件的授权。

8.一种服务器,其特征在于,包括:

信息接收模块,用于接收工作站发送的软件许可码和工作站的标识信息;

授权认证模块,用于在所述软件许可码和所述工作站的标识信息满足预设条件时,依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,其中所述服务器、所述加密狗与用户一一对应;

授权控制模块,用于依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性;

其中,所述授权控制模块包括:

数据接收单元,用于接收所述工作站定时发送的心跳数据,其中,所述心跳数据包括所述软件许可码、所述工作站的标识信息以及第二随机数;其中,所述第二随机数用于区分每次发送的心跳数据,以实现监控所述工作站的软件运行情况;

随机数生成单元,用于当所述服务器对所述工作站的授权无调整时,产生第三随机数;

管理密钥获取单元,用于从所述加密狗的N组管理密钥中获取以所述第三随机数为索引的第一管理密钥;

数据加密单元,用于通过所述第一管理密钥对所述心跳数据进行加密;

数据发送单元,用于将加密后的心跳数据和所述第三随机数作为反馈数据,发送至所述工作站;其中,所述反馈数据用于指示所述工作站保持所述软件的授权。

9.根据权利要求8所述的服务器,其特征在于,所述授权认证模块包括:解码单元,用于对所述软件许可码进行解码得到软件许可码密文及第一随机数;

认证密钥获取单元,用于从所述加密狗的M组认证密钥中获取以所述第一随机数为索引的第一认证密钥;

解密单元,用于依据所述第一认证密钥对所述软件许可码密文进行解密得到软件许可码明文;

授权认证单元,用于当所述软件许可码明文中的预设信息与所述服务器中存储的预设信息相同的情况下,对所述工作站的软件进行授权认证。

10.一种软件授权管理系统,其特征在于,包括:服务器、加密狗和至少一个工作站;

所述服务器是权利要求8至9中任一项所述的服务器;

所述工作站用于定时向所述服务器发送心跳数据,接收所述服务器的反馈数据或授权失败消息,以控制所述工作站上的软件的授权持续性;

所述加密狗,用于存储M组认证密钥和N组管理密钥。

说明书 :

一种软件授权管理方法、服务器及系统

技术领域

[0001] 本发明实施例涉及计算机技术领域,尤其涉及一种软件授权管理方法、服务器及系统。

背景技术

[0002] 为了保证软件厂商的利益,防止软件被盗用,用户在购买软件时,软件厂商会提供多个软件许可码,用户只有通过软件许可码获得授权后才能够使用购买软件的全部功能。
[0003] 目前,常用的软件授权过程是用户在设备上打开该软件程序,输入一个软件许可码,程序会自动通过互联网连接到软件厂商的认证服务器,并将软件许可码和工作站唯一标识码发送至认证服务器,认证服务器查询该软件许可码在数据库中尚无对应的工作站唯一标识且软件许可码正确,则将该软件许可码与用户工作站唯一标识绑定,并将其对应关系记录在数据库中,向软件程序反馈授权成功的消息,用户即可正常运行该软件。该用户在其他工作站上也按此步骤向软件厂商的认证服务器申请软件的授权许可,直至购买的软件许可码全都用完。
[0004] 由于现有的软件授权过程中软件许可码和工作站唯一标识是绑定的,导致软件许可码的迁移能力差,无法满足用户动态分配使用软件的需求,并且对于软件厂商来说软件维护时间较长、工作量大,容易受到不稳定因素的影响。

发明内容

[0005] 本发明提供一种软件授权管理方法、服务器及系统,在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0006] 第一方面,本发明实施例提供了一种软件授权管理方法,该方法包括:
[0007] 服务器接收工作站发送的软件许可码和工作站的标识信息;
[0008] 在所述软件许可码和所述工作站的标识信息满足预设条件时,所述服务器依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,其中所述服务器、所述加密狗与用户一一对应;
[0009] 所述服务器依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性。
[0010] 第二方面,本发明实施例还提供了一种服务器,该服务器包括:
[0011] 信息接收模块,用于接收工作站发送的软件许可码和工作站的标识信息;
[0012] 授权认证模块,用于在所述软件许可码和所述工作站的标识信息满足预设条件时,依据加密狗中的认证密钥,对所述工作站的软件进行授权认证,其中所述服务器、所述加密狗与用户一一对应;
[0013] 授权控制模块,用于依据所述工作站定时发送的心跳数据或用户输入的控制数据,控制所述软件的授权持续性。
[0014] 第三方面,本发明实施例还提供了一种软件授权管理系统,该系统包括:服务器、加密狗和至少一个工作站;
[0015] 所述服务器是本发明任意实施例所述的服务器;
[0016] 所述工作站用于定时向所述服务器发送心跳数据,接收所述服务器的反馈数据或授权失败消息,以控制所述工作站上的软件的授权持续性;
[0017] 所述加密狗,用于存储M组认证密钥和N组管理密钥。
[0018] 本发明实施例提供了一种软件授权管理方法、服务器及系统,服务器通过接收工作站发送的软件许可码和工作站的标识信息,在软件许可码和标识信息满足预设条件时,根据加密狗中的认证密钥对工作站的软件进行授权认证,软件认证成功后,服务器依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件授权的持续性。在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。

附图说明

[0019] 为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
[0020] 图1是本发明实施例一提供的一种软件授权管理方法的流程图;
[0021] 图2是本发明实施例二提供的一种软件授权管理方法中对软件授权认证的流程图;
[0022] 图3是本发明实施例三提供的一种软件授权管理方法中控制软件授权持续性的流程图;
[0023] 图4是本发明实施例四提供的一种服务器的结构框图;
[0024] 图5是本发明实施例五提供的一种工作站的结构框图;
[0025] 图6是本发明实施例六提供的一种软件授权管理系统的结构框图。

具体实施方式

[0026] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0027] 实施例一
[0028] 图1为本发明实施例一提供的一种软件授权管理方法的流程图,本实施例可适用于用户购买软件后对软件进行授权管理的情况,该方法可以由软件授权管理系统来执行,例如,可以是用户的各工作站、服务器和加密狗配合执行。如图1所示,该方法具体包括:
[0029] 步骤S101:服务器接收工作站发送的软件许可码和工作站的标识信息。
[0030] 其中,服务器是用户购买软件时由软件厂商为用户配置的服务器,用于为该用户购买的软件提供授权认证和管理业务。优选的,该服务器中可以安装用户购买软件时,软件厂商提供的服务器认证程序和服务器管理程序,服务器认证程序是用于认证软件许可码的合法性,进而完成对软件授权的认证,服务器管理程序是用于动态管理软件授权的持续性。
[0031] 软件许可码是软件厂商提供的用于软件授权认证和管理的字符串,具体的,软件许可码可以是对部分软件许可码明文通过对称加密算法(例如,高级加密标准(Advanced Encryption Standard,AES)、分组密码算法(RC5))进行加密,得到软件许可码密文,再通过自定义的字符编码算法(例如,自定义Base32、Base64等)对软件许可码密文进行编码后得到的仅含有字母和数字的固定长度(通常为20、24、32个字符)的字符串。软件许可码中可以包括:用于查找认证密钥的随机数、用于区分软件厂商发布的各软件的产品类型、为购买该软件的用户设定的固定编号和用于给同一个用户的多个软件许可码进行排序的许可码序号。优选的,在生成软件许可码的过程中,随机数不进行加密只进行编码,而软件产品类型、用户编号和许可码序号是既进行加密又进行编码。
[0032] 工作站是用户安装购买的软件程序的设备,例如,可以是个人计算机(Personal Computer,PC)、智能终端、物联网设备等。优选的,每个工作站都有一个标识该工作站唯一性的标识信息(即工作站的标识信息),可以是一串数字或一组二进制数据,常用于软件授权、身份验证等。优选的,可以是工作站的MAC地址(Media Access Control)、处理器信息(CPUID)、全球唯一标识符(Globally Unique Identifier,GUID)、自定义算法生成的唯一标识等,还可以是以上一种或多种的组合。
[0033] 为了保证软件厂商的利益,一个工作站只能对应一个软件许可码,因此工作站安装的软件第一次使用时,要先进行授权认证,此时工作站就要向服务器发送软件许可码和工作站的标识信息,用于判断是否可以对该工作站的软件进行授权认证。
[0034] 步骤S102:在软件许可码和工作站的标识信息满足预设条件时,服务器依据加密狗中的认证密钥,对工作站的软件进行授权认证,其中服务器、加密狗与用户一一对应。
[0035] 其中,服务器接收到软件许可码和工作站的标识信息后,先要进行预设条件的判断,具体的,预设条件可以是服务器中没有存储该工作站的标识信息且该软件许可码没有重复使用。其中,判断服务器中是否存储工作站的标识信息,是为了防止服务器对一个工作站重复进行软件授权认证,从而造成软件许可码的浪费。判断该软件许可码是否重复使用,是为了防止用户在不同工作站上重复使用同一个软件许可码,影响厂商的利益。
[0036] 当满足预设条件时,服务器可以从存储有认证密钥信息的加密狗中获取认证密钥,依据获取的认证密钥对工作站的软件授权进行下一步的认证。加密狗是一种插在计算机并行口上的软硬件结合的加密产品,一般都有几十或者几百字节的非易失性存储空间可供读写,本实施例的加密狗是用户在购买软件时软件厂商提供的,其中烧录了多组密钥,例如,有用于对软件授权认证的认证密钥和对软件授权管理的管理密钥。服务器可以通过加密狗配套的软件开发工具包(Software Development Kit,SDK)读取其中的密钥信息。为了保证授权的安全性,不同用户的加密狗中烧录的密钥不同,每个用户的加密狗都是与该用户的软件许可码对应的,只能为该用户提供有效的密钥信息。
[0037] 优选的,由于软件厂商提供给用户的软件许可码是经过认证密钥加密和编码得到的,所以在进行认证时,可以是对工作站发送的软件许可码进行解码后依据认证密钥再进行解密,得到软件许可码明文后再进行判断。
[0038] 优选的,服务器、加密狗与用户是一一对应的,每一个用户都有自己的服务器和加密狗,用户可以通过服务器自由分配软件授权,不需要软件厂商提供一个总的互联网服务器对所有用户的软件授权进行管理,因此,软件厂商不需要再长期维护总的互联网服务器,只需要在某个用户的服务器出现问题时,进行适当的维修,大大减少了软件厂商的工作量。
[0039] 优选的,在对工作站的软件授权认证成功后,为了防止该工作站被重复授权或者该软件许可码被重复使用,可以在服务器中存储认证成功的工作站的标识信息和对应的软件许可码。
[0040] 步骤S103:服务器依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件的授权持续性。
[0041] 其中,工作站发送的心跳数据可以包括该工作站授权认证的软件许可码、该工作站的标识信息和该工作站自动生成的一个随机数。为了实时对软件授权情况进行监控和管理,工作站要定时向服务器发送心跳数据,例如,工作站可以每分钟向服务器发送一次心跳数据。优选的,服务器控制软件授权持续性除了依据工作站发送的心跳数据外,还可以依据用户手动输入的控制数据,例如,用户想主动停止某个工作站软件的授权时可以手动收入停止软件授权的工作站的标识信息和该工作站授权认证的软件许可码作为控制数据,控制软件停止授权。
[0042] 在步骤S102完成软件授权认证后,服务器还可以控制工作站软件的授权持续性,实现对工作站软件的动态管理,例如,当用户授权的工作站发生故障时,可以停止该工作站软件的授权,将该软件许可码分配给其他未授权的工作站;也可以是当用户由于工作需要,要将授权工作站的软件更换到另一个工作站上使用。优选的,服务器对工作站软件授权的动态管理可以是根据工作站定时发送的心跳数据进行自动管理,若工作站收到服务器的反馈消息后才能继续正常使用,否则,停止该工作站软件的授权。优选的,服务器对工作站软件授权的动态管理也可以是用户手动进行控制,从而达到自动和人工相配合进行软件许可码的动态管理,灵活性更高。
[0043] 本实施例提供了一种软件授权管理方法,服务器通过接收工作站发送的软件许可码和工作站的标识信息,在软件许可码和标识信息满足预设条件时,根据加密狗中的认证密钥对工作站的软件进行授权认证,软件认证成功后,服务器依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件授权的持续性。在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0044] 进一步地,在服务器接收工作站发送的软件许可码和工作站的标识信息之前,还可以包括:服务器均与用户的各工作站和加密狗建立通信连接;服务器将待分配的软件许可码发送至对应的各工作站。
[0045] 其中,当用户购买的软件安装到工作站上时,还不能使用,需要将软件厂商提供的服务器认证程序和服务器管理程序安装在服务器中,然后分别建立服务器与用户各工作站的通信连接、服务器与加密狗之间的通信连接。其中服务器和加密狗之间的通信连接可以是加密狗通过通用串行总线(Universal Serial Bus,USB)接口连接到服务器上。服务器与用户各工作站的通信连接方式不进行限定,可以是有线连接,例如光纤、网线、光缆等,也可以是无线连接,例如,蓝牙、无线网(Wireless-Fidelity,Wi-Fi)、通用分组无线服务技术(General Packet Radio  Service,GPRS)、近距离无线通讯技术(Near Field Communication,NFC)等。优选的,各工作站与服务器之间可以进行双工通信,且通信数据可以是加密的,具体的加密方法不进行限定,可以使用本领域中对通信数据进行加密的任意一种方法。
[0046] 服务器与用户的各工作站和加密狗建立通信连接后,服务器会将待分配的软件许可码发送至对应的各工作站,具体的,服务器分配软件许可码可以是通过用户手动输入的分配信息进行分配,例如,可以是用户在服务器上手动输入待分配的软件许可码和工作站的标识信息,服务器依据用户输入的信息进行软件许可码的分配;服务器分配软件许可码可以是服务器搜索拓扑网络中的未授权的工作站,并自动对未授权的工作站分配待分配的软件许可码。
[0047] 进一步地,工作站安装了购买的软件后,只需在建立通信连接后第一次运行时进行授权认证,认证成功后,服务器通过工作站发送的心跳数据和用户输入的控制数据来动态管理软件的授权持续性。即用户可动态对任意工作站上运行的软件停止授权,或动态对未授权的工作软件授权,使软件立即进入正常工作状态。
[0048] 实施例二
[0049] 本实施例在上述实施例的基础上,提供了一种软件授权认证方法,适用于用户对软件授权进行认证的情况。图2为本发明实施例二提供的一种软件授权管理方法中对软件授权认证的流程图,如图2所示,包括如下步骤:
[0050] 步骤S201:服务器接收工作站发送的软件许可码和工作站的标识信息。
[0051] 步骤S202:判断软件许可码和工作站的标识信息是否满足预设条件,如果是,执行步骤S203,如果否,执行步骤S208。
[0052] 只有在同时满足服务器中没有存储该工作站的标识信息、该软件许可码没有重复使用这两种情况时,才执行步骤S203,进行进一步的授权认证,否则执行步骤S208,软件授权认证失败。
[0053] 步骤S203:服务器对软件许可码进行解码得到软件许可码密文及第一随机数。
[0054] 由于软件许可码是软件厂商先对软件许可码明文进行加密得到软件许可码密文,再对软件许可码密文进行编码得到的,而认证软件许可码的有效性,又需要通过软件许可码明文进行认证,所以需要先对软件许可码进行解码操作,因为软件厂商在对软件许可码明文进行加密时不对随机数进行加密,所以步骤S203对软件许可码进行解码操作后得到的是软件许可码密文和第一随机数。
[0055] 优选的,第一随机数是软件厂商生成软件许可码明文时随机生成的一个正整数,不同的软件许可码明文中的随机数可以相同,也可以不同,例如,可以设置一个范围1-100,在这个范围内为每个软件许可码明文随机生成一个正整数作为第一随机数。
[0056] 步骤S204:服务器从加密狗的M组认证密钥中获取以第一随机数为索引的第一认证密钥。
[0057] 其中,加密狗中存储有软件厂商随机生成的用于对软件许可码明文加密时使用的M组认证密钥,软件厂商在对软件许可码进行加密时并不是M组密钥都使用,而是从M组认证密钥中获取第一认证密钥,第一认证密钥即为用于对软件许可码明文进行加密和解密的认证密钥。为了增加破解仿制的难度,对于不同的软件许可码,软件厂商用于加密软件许可码明文的第一认证密钥是不一样的,具体的,可以以软件许可码明文中的第一随机数为索引从M组认证密钥中获取与第一随机数对应的第一认证密钥。第一随机数为不大于M值的正整数。
[0058] 依据软件厂商对软件许可码的加密过程,服务器要对软件许可码进行解密,就需要先从加密狗的M组认证密钥中以第一随机数为索引获取第一认证密钥,示例性的,若加密狗中存储有50组认证密钥,软件许可码明文中的第一随机数为25,则获取的第一认证密钥就是50组认证密钥中的第25组认证密钥。
[0059] 步骤S205:服务器依据第一认证密钥对软件许可码密文进行解密得到软件许可码明文。
[0060] 其中,步骤S204中已经获取了第一认证密钥,此时使用与软件厂商加密软件许可码明文时相同的算法,将软件许可码密文解密为软件许可码明文,步骤S205对软件许可码密文进行解密的过程是软件厂商对软件许可码明文进行加密的逆过程。
[0061] 步骤S206:判断软件许可码明文中的预设信息与服务器中存储的预设信息是否相同,若相同,执行步骤S207,若不同,执行步骤S208。
[0062] 其中,步骤S205中已经获取到了解密后的软件许可码明文,此时需要认证解密后的软件许可码明文中的预设信息和服务器给该工作站分配软件许可码时存储的预设信息是否相同,具体的,预设信息可以包括随机数、软件商品类型、用户编号、许可码序号等。
[0063] 优选的,在多个预设信息中可以通过比较软件产品类型和用户编号来判断是否可以对该工作站的软件进行授权认证。比较软件产品类型是为了防止用户使用同一个软件许可码申请认证同一个软件厂商发布的不同类型的软件产品,例如,软件厂商发布了软件A和软件B,一般一个软件厂商生成软件许可码的加密方法是一样的,所以软件A和软件B的软件许可码明文可以通过软件产品类型进行区分,通过比较软件商品类型就可以确定该软件许可码是否是要授权认证的软件对应的许可码;比较用户编号是为了防止该用户的软件许可码被其他用户使用,例如,用户A和用户B都购买了该软件,软件厂商为用户A和用户B各提供了十个软件许可码,用户A和用户B的软件许可码中的用户编号是不一样的,若用户A的软件许可码用完了,使用用户B的软件许可码进行自己工作站软件的授权,通过比较用户编号就可以确定该软件许可码是否是该用户的软件许可码。
[0064] 步骤S207:工作站的软件授权认证成功。
[0065] 工作站的软件授权成功后用户才可以不受限制的使用该软件的全部功能,优选的,在工作站的软件授权认证成功后,工作站的显示屏上相应的会弹出授权成功的提示窗口,提示用户该软件已经授权成功可以正常使用。
[0066] 步骤S208:工作站的软件授权认证失败。
[0067] 若工作站的软件授权认证失败,工作站的显示屏上相应的会弹出授权失败的提示窗口,提示用户该软件授权认证失败,优选的,还可以在提示窗口上显示具体的失败原因,例如,该软件许可码重复使用、工作站重复授权、软件商品类型错误、用户编号错误等。
[0068] 本实施例提供了一种软件授权认证方法,服务器通过接收工作站发送的软件许可码和工作站的标识信息,在软件许可码和标识信息满足预设条件时,将软件许可码解码为软件许可密文和随机数,通过随机数获取第一认证密钥将软件许可码密文解密为软件许可码明文,当软件许可码明文中的预设信息与服务器中存储的预设信息相同时对软件进行授权。在软件授权认证的过程中授权安全性高,破解仿制难度大,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0069] 实施例三
[0070] 本实施例在上述实施例的基础上,提供了一种控制软件授权持续性的方法,适用于服务器在软件授权完成后,对软件授权持续性进行控制的情况。图3为本发明实施例三提供的一种软件授权管理方法中控制软件授权持续性的流程图,如图3所示,包括如下步骤:
[0071] 步骤S301:工作站的软件授权认证成功。
[0072] 步骤S302:服务器接收工作站定时发送的心跳数据,其中,心跳数据包括软件许可码、工作站的标识信息以及第二随机数。
[0073] 其中,第二随机数是工作站自动生成的一个随机数,工作站是定时向服务器发送心跳数据,第二随机数用于区分每次发送的心跳数据,从而实现对工作站的软件运行情况的监控。
[0074] 步骤S303:判断服务器是否对工作站的授权进行调整,若调整,执行步骤S312,若无调整,执行步骤S304。
[0075] 其中,服务器对工作站的授权进行调整的过程可以是服务器停止某个工作站软件授权的过程,或者是将软件的授权从一个工作站调整到另一个工作站的过程。服务器对工作站的授权是否调整可以是用户控制的,例如,用户根据需要手动输入控制数据对任意工作站的授权情况进行调整;也可以是服务器自身进行自动的调整,例如,当某个工作站的软件授权到期或者服务器检测到与工作站或加密狗的通信断开时,服务器可以根据心跳数据对该工作站的授权自动进行调整。若服务器需要对工作站的授权进行调整时,执行步骤S312,若不需要进行调整时,执行步骤S304。
[0076] 步骤S304:服务器产生第三随机数。
[0077] 其中,服务器接收到工作站发送的心跳数据,且不需要对该工作站的授权进行调整时,会随机产生第三随机数,第三随机数为一个正整数,可用于获取管理密钥以对心跳数据进行加密,提高授权管理的安全性。
[0078] 步骤S305:服务器从加密狗的N组管理密钥中获取以第三随机数为索引的第一管理密钥。
[0079] 其中,加密狗中不仅存储有M组用于对软件许可码进行加密和解密的认证密钥,还存储有N组用于对心跳数据进行加密和解密的管理密钥,且第三随机数为不大于N值的正整数,M值和N值可以一样,也可以不一样。具体的获取过程与软件授权认证过程中获取第一认证密钥类似,服务器可以从加密狗的N组管理密钥中以第三随机数为索引获取第三随机数对应的第一管理密钥。例如,若加密狗中存储有100组管理密钥,服务器生成的第三随机数为50,则获取的第一管理密钥就是100组管理密钥中的第50组管理密钥。
[0080] 步骤S306:服务器通过第一管理密钥对心跳数据进行加密,并将加密后的心跳数据和第三随机数作为反馈数据,发送至工作站。
[0081] 其中,服务器根据步骤S305获取的第一管理密钥,对步骤S302接收到的心跳数据进行加密,具体的加密过程不做限定,可以是本领域现有的任意一种加密方法。例如,可以是高级加密标准(Advanced Encryption Standard,AES)、分组密码算法(RC5)等对称加密算法。将加密后的数据和步骤S304产生的第三随机数作为反馈数据发送至工作站。反馈数据用于指示工作站保持软件的授权。
[0082] 步骤S307:判断在预设时间内工作站是否接收到反馈数据,若接收到,执行步骤S308,若没有接收到,执行步骤S313。
[0083] 其中,步骤S306中服务器向工作站发送反馈数据后,工作站有可能并没有收到反馈数据,例如,若工作站与服务器的通信连接突然断开或者服务器损坏时,工作站就收不到服务器发送的反馈数据。所以要判断在预设时间内工作站是否接收到反馈数据,预设时间可以是根据服务器与工作站通信时最大的延迟时间确定的,例如可以是10秒,若预设时间内接收到,执行步骤S308,若预设时间内没有收到,执行步骤S313。
[0084] 步骤S308:在工作站的N组管理密钥中获取以第三随机数为索引的第二管理密钥。
[0085] 其中,工作站接收到的反馈数据是步骤S306加密后的心跳数据和第三随机数,为了对加密后的心跳数据进行解密,工作站中同样也存储了和加密狗中一样的N组管理密钥,优选的,N组管理密钥可以存储在工作站的软件程序中。与步骤S305获取第一管理密钥的方法类似,工作站可以从工作站中存储的N组管理密钥中以第三随机数为索引获取第三随机数对应的第一管理密钥。优选的,步骤S305从加密狗中获取的第一管理密钥和步骤S308从工作站中获取的第二管理密钥是一致的。
[0086] 步骤S309:工作站依据第二管理密钥对加密后的心跳数据进行解密。
[0087] 其中,由于第一管理密钥与第二管理密钥是一样的,所以工作站依据第二管理密钥对加密后的心跳数据进行解密的过程是步骤S306服务器依据第一管理密钥对心跳数据进行加密的过程的逆过程,具体的解密算法与步骤S306的加密算法相同。
[0088] 步骤S310:判断解密结果与工作站发送的心跳数据是否一致,若一致,执行步骤S311,若不一致,执行步骤S313。
[0089] 其中,判断步骤S309的解密结果与该工作站向服务器发送的心跳数据是否一致,若一致,说明软件运行正常,执行步骤S311;若不一致,说明服务器与该工作站至少一方出现问题,此时要执行步骤S313.
[0090] 步骤S311:工作站保持软件的授权。
[0091] 步骤S312:服务器向工作站发送授权失败消息。
[0092] 其中,当步骤S303判断服务器对工作站的授权进行调整时,服务器会根据具体的调整情况向对应的工作站发送授权失败消息,由于服务器对工作站的授权调整可以是自动进行调整,也可以是用户控制的,所以服务器向工作站发送的授权失败消息可以是服务器针对心跳数据或者用户输入的控制数据输出的消息。例如,当某个工作站的软件授权到期或者服务器与加密狗的通信断开时,服务器会自动生成授权失败消息,发送给对应的工作站,控制该工作站停止软件的授权。当用户想手动停止某个工作站软件授权时,可以通过手动输入要停止授权的软件许可码和该工作站的标识信息作为控制数据,让服务器依据该控制数据生成授权失败消息,发送给对应的工作站,控制该工作站停止软件的授权。优选的,授权失败消息中包括停止授权的软件许可码和对应的工作站的标识信息。
[0093] 步骤S313:工作站停止软件的授权。
[0094] 其中,工作站停止软件授权的情况包括:(1)工作站在发送心跳数据之后的预设时间内没有接收到服务器发送的反馈数据;(2)工作站的解密结果与该工作站发送给服务器的心跳数据不一致;(3)服务器向工作站发送授权失败消息。优选的,工作站停止软件授权的过程是由服务器控制工作站完成的。
[0095] 具体的,第(1)种情况可以是服务器与工作站的通信连接断开时,工作站向服务器发送的心跳数据服务器收不到,因此,该工作站在预设时间内也收不到服务器发送的反馈数据,此时该工作站要停止软件的授权。第(2)种情况可以是工作站或服务器至少一方出现问题,工作站通过对加密后的心跳数据进行解密后,发现接收到的反馈数据中包含的并不是该工作站所发送的心跳数据,此时该工作站要停止软件的授权。第(3)种情况可以是服务器针对心跳数据或者用户输入的控制数据输出的授权失败消息,工作站接收到服务器发送的授权失败后停止软件的授权。
[0096] 优选的,工作站停止软件授权的情况还包括:若服务器检测到与加密狗的通信连接断开,则服务器控制各工作站停止软件的授权。
[0097] 其中,当服务器与加密狗的通信连接断开时,服务器无法从加密狗中获取第一管理密钥来加密心跳数据,所以此时服务器要向所有的工作站发送授权失败消息,控制所有的工作站停止软件的授权,直到服务器与加密够的通信连接正好后,服务器会自动分配软件许可码到其对应的工作站,重新对工作站的软件授权进行认证。
[0098] 优选的,工作站停止软件授权后,将该工作站软件认证时使用的软件许可码和工作站的标识信息要从服务器的存储器中删除,此时该软件许可码为待分配的软件许可码,用户可以根据自身需要通过服务器手动为其分配新的工作站,服务器也可以通过搜索拓扑网络内未进行授权认证的工作站,自动为待分配的软件许可码分配新的工作站,进而完成对软件的动态授权管理。
[0099] 本实施例提供了一种控制软件授权持续性的方法,服务器依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件授权持续性。在控制软件授权持续性的过程中满足了用户动态使用软件的需求,软件厂商可增量发行软件许可码,服务器、加密狗、工作站任意组件损坏,可将软件许可码分配到新的工作站上不影响用户软件许可码的有效性,降低了使用成本低,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0100] 实施例四
[0101] 图4为本发明实施例四提供的一种服务器的结构框图,用于执行本发明任意实施例所提供的软件授权管理方法,具备执行方法相应的功能模块和有益效果。如图4所示,该服务器包括:
[0102] 信息接收模块401,用于接收工作站发送的软件许可码和工作站的标识信息;
[0103] 授权认证模块402,用于在软件许可码和工作站的标识信息满足预设条件时,依据加密狗中的认证密钥,对工作站的软件进行授权认证,其中服务器、加密狗与用户一一对应;
[0104] 授权控制模块403,用于依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件的授权持续性。
[0105] 本实施例提供了一种服务器,通过接收工作站发送的软件许可码和工作站的标识信息,在软件许可码和标识信息满足预设条件时,根据加密狗中的认证密钥对工作站的软件进行授权认证,软件认证成功后,依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件授权的持续性。在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0106] 进一步地,上述授权认证模块402包括:
[0107] 解码单元,用于对软件许可码进行解码得到软件许可码密文及第一随机数;
[0108] 认证密钥获取单元,用于从加密狗的M组认证密钥中获取以第一随机数为索引的第一认证密钥;
[0109] 解密单元,用于依据第一认证密钥对软件许可码密文进行解密得到软件许可码明文;
[0110] 授权认证单元,用于当软件许可码明文中的预设信息与服务器中存储的预设信息相同的情况下,对工作站的软件进行授权认证。
[0111] 进一步地,上述授权控制模块403包括:
[0112] 数据接收单元,用于接收工作站定时发送的心跳数据,其中,心跳数据包括软件许可码、工作站的标识信息以及第二随机数;
[0113] 随机数生成单元,用于当服务器对工作站的授权无调整时,产生第三随机数;
[0114] 管理密钥获取单元,用于从加密狗的N组管理密钥中获取以第三随机数为索引的第一管理密钥;
[0115] 数据加密单元,用于通过第一管理密钥对心跳数据进行加密;
[0116] 数据发送单元,用于将加密后的心跳数据和第三随机数作为反馈数据,发送至工作站;其中,反馈数据用于指示工作站保持软件的授权。
[0117] 进一步地,当服务器对工作站的授权进行调整时,上述服务器还包括:失败消息发送模块,用于向工作站发送授权失败消息,其中,授权失败消息是服务器针对心跳数据或者用户输入的控制数据输出的消息。
[0118] 进一步地,本发明实施例提供的服务器均与用户的各工作站和加密狗建立通信连接,该服务器中还包括检测模块,用于检测服务器和加密狗的通信连接是否断开。授权控制模块403还用于当服务器与加密狗的通信连接断开后,控制所有建立通信连接的工作站停止软件的授权。
[0119] 值得注意的是,上述服务器的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;例如,该服务器可以仅包括通信模块和控制模块,通信模块实现信息或数据的发送与接收;控制模块实现授权、控制、解码、解密、加密及检测等相关的功能。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0120] 实施例五
[0121] 图5为本发明实施例五提供的一种工作站的结构框图,用于执行本发明任意实施例所提供的软件授权管理方法,具备执行方法相应的功能模块和有益效果。如图5所示,该工作站包括:
[0122] 数据发送模块501,用于定时向服务器510发送心跳数据;
[0123] 数据接收模块502,用于接收服务器510发送的反馈数据和/或授权失败消息;
[0124] 管理密钥获模块503,用于在接收到反馈数据后,在工作站的N组管理密钥中获取以反馈数据中的第三随机数为索引的第二管理密钥;
[0125] 数据解密模块504,用于依据第二管理密钥对反馈数据中加密后的心跳数据进行解密;
[0126] 保持授权模块505,用于当解密结果与所发送的心跳数据一致时,保持软件的授权。
[0127] 授权停止模块506,用于在满足以下任一条件时停止软件的授权,所述条件包括:发送心跳数据之后的预设时段内未收到服务器510发送的反馈数据、解密结果与心跳数据不一致以及接收到授权失败消息。
[0128] 本实施例提供了一种工作站,通过定时向服务器发送心跳数据,并根据服务器发送的反馈数据或授权失败消息控制软件授权的持续性。在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0129] 值得注意的是,上述工作站的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;例如,该工作站可以仅包括通信模块和控制模块,通信模块实现消息或数据的发送与接收;控制模块实现授权、停止授权及解密等相关的功能。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0130] 实施例六
[0131] 图6为本发明实施例六提供的一种软件授权管理系统的结构框图,该系统可执行本发明任意实施例所提供的方法,达到相应的有益效果,软件授权管理系统包括:服务器601、加密狗602和至少一个工作站603;
[0132] 服务器601是实施例四中的服务器;
[0133] 工作站603是实施例五中的工作站,用于定时向服务器601发送心跳数据,接收服务器601的反馈数据或授权失败消息,以控制该工作站603上的软件的授权持续性;
[0134] 加密狗602,用于存储M组认证密钥和N组管理密钥。
[0135] 本实施例提供了一种软件授权管理系统,服务器通过接收工作站发送的软件许可码和工作站的标识信息,在软件许可码和标识信息满足预设条件时,根据加密狗中的认证密钥对工作站的软件进行授权认证,软件认证成功后,服务器依据工作站定时发送的心跳数据或用户输入的控制数据,控制软件授权的持续性。在软件授权管理的过程中授权安全性高,可通过心跳数据和用户输入的控制数据满足用户动态使用软件的需求,并且软件厂商无需长期维护互联网服务器,大大减少了维护的工作量。
[0136] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。