一种基于网络的软件授权控制装置的制造方法

文档序号:8223803阅读:380来源:国知局
一种基于网络的软件授权控制装置的制造方法
【专利说明】一种基于网络的软件授权控制装置
[0001]
技术领域
[0002]本发明涉及软件知识产权保护技术领域,具体是一种基于网络的软件授权控制装置。
[0003]
【背景技术】
[0004]随着计算机技术的迅速发展,其在各行各业都有了广泛的应用。越来越多的软件企业针对各种行业开发了适应行业需求的应用软件。一个优秀的应用软件往往包含了开发企业大量的投入,为了防止软件未经授权的非法使用,往往要通过一些技术手段对开发的软件进行保护。
[0005]在软件知识产权保护的技术领域涉及几个利益相关方:
I)授权控制装置的生产商,如传统的加密锁生产厂商,简称授权装置生产商。授权装置生产商通过销售保护软件不被非法使用的实体装置而获得盈利。
[0006]2)针对各种行业开发应用软件的应用软件提供商,简称应用软件开发商。应用软件开发商通过大量的研发投入,开发出了适合特定行业应用的应用软件,并通过销售该软件的拷贝盈利。应用软件开发商最担心的是自己的应用软件被拷贝后非法使用,因此一般会向授权装置生产商购买实体授权装置,并将该实体授权装置的API集成到自己的应用软件中。应用软件开发商每销售一份应用软件的拷贝,同时要配上一套实体授权装置。应用软件运行时只有和实体授权装置进行了正确的信息交互,才能正常运行。应用软件开发商以此种方式防止自己的软件被非法使用。
[0007]3)应用软件的最终用户,简称最终用户。最终用户在生产活动中对特定应用软件有使用的需求,并且愿意付费向应用软件开发商购买。最终用户所购买的软件形式一般是一份存储有应用软件的存储介质,外加一套授权装置。
[0008]目前常见的加密方式是硬加密和软加密两种方式。
[0009]硬加密方式是通过软件加密狗来实现对软件的保护。加密狗一般是一个具有USB接口的小装置,需保护的软件在特定计算机上运行期间,需要将加密狗插在该计算机的USB接口上,加密狗内部以加密的形式存储着一些授权相关信息。应用软件运行时通过加密狗的API读取加密狗中的授权信息,然后按照授权信息运行。
[0010]软加密方式是通过收集将要运行软件的计算机的唯一信息作为加密密钥对授权信息进行加密来保护软件。当应用软件开发商销售一套软件时,一般先提供给最终用户一个信息收集程序,最终用户在将要运行应用软件的计算机上运行一下信息收集程序,这个程序一般会收集该计算机的CPU序列号、硬盘序列号、MAC地址等唯一标识信息,并将这些信息以文件形式或网络形式传递回应用软件开发商。应用软件开发商以这些能唯一标识一台计算机的信息作为加密密钥对授权信息进行加密生成授权文件,并拷贝至要运行应用软件的计算机上。应用软件运行时,也收集相同的唯一标识信息,作为解密密钥对授权文件进行解密,并按照解密出的授权信息运行程序。
[0011]前述两种方式在以前运转良好,但随着云计算越来越普及,目前很多企业从节省硬件成本的角度考虑,越来越倾向于将软件运行在云平台上。在这种情况下,这两种方式就都遇到了问题。因为云平台上的操作系统都是在虚拟机上运行的,因此不存在实体的USB接口,也就无法使用USB接口的加密狗。并且由于操作系统是在虚拟机上运行的,因此CPU序列号、硬盘序列号、MAC地址等信息都是虚拟出来的,因此很容易复制,也就无法阻止应用软件使用一个授权文件的多个拷贝在多台机器同时运行的情况发生。
[0012]

【发明内容】

[0013]本发明的目的在于提供一种基于网络的软件授权控制装置,以解决运行在云平台上的应用软件的授权保护问题。
[0014]本发明的技术方案为:
一种基于网络的软件授权控制装置,该装置包括接入网络的实体装置、运行在所述实体装置上的服务端和集成在客户端的API模块,所述服务端与所述API模块在以太网上通过特定协议进行信息交互。
[0015]所述的基于网络的软件授权控制装置,所述服务端包括监听模块、判断模块和处理模块;
所述监听模块,用于监听特定端口是否有API模块发送过来的连接,若已经存在一个合法连接,则新的连接进来后直接拒绝;
所述判断模块,用于根据特定协议判断API模块发送过来的连接是否合法,若判断结果为连接合法,则进一步判断请求种类;还用于判断API模块发送过来的保活请求是否合法;
所述处理模块,用于当判断结果为连接不合法时,断开当前连接;还用于当判断结果为修改读写密码请求时,允许API模块根据特定协议修改读写密码,并向API模块返回执行结果,然后断开当前连接;还用于当判断结果为合法的写入信息请求时,允许API模块根据特定协议写入授权信息,并向API模块返回执行结果,然后断开当前连接;还用于当判断结果为合法的读出信息请求时,周期性接收API模块发送的保活请求,当判断结果为保活请求合法时,允许API模块根据特定协议读出授权信息,并向API模块返回授权信息,当判断结果为保活请求不合法时,断开当前连接。
[0016]所述的基于网络的软件授权控制装置,所述API模块包括读写密码修改接口、授权信息写入接口和授权信息读出接口;
所述读写密码修改接口,用于当客户端对其进行调用时,根据广播报文或API输入参数确定实体装置的网络地址,根据特定协议连接服务端并检查连接是否合法,若连接合法,则根据特定协议修改读写密码,并将服务端返回的执行结果返回给客户端,若连接不合法,则将出错信息返回给客户端;
所述授权信息写入接口,用于当客户端对其进行调用时,根据广播报文或API输入参数确定实体装置的网络地址,根据特定协议连接服务端并检查连接是否合法,若连接合法,则根据特定协议写入授权信息,并将服务端返回的执行结果返回给客户端,若连接不合法,则将出错信息返回给客户端;
所述授权信息读出接口,用于当客户端对其进行调用时,若客户端是第一次对其进行调用,则根据广播报文或API输入参数确定实体装置的网络地址,根据特定协议连接服务端并检查连接是否合法,若连接合法,则根据特定协议读出授权信息,接收服务端返回的执行结果,若执行结果合法,则本地缓存授权信息,并将授权信息返回给客户端,若连接不合法或执行结果不合法,则将出错信息返回给客户端后退出;若客户端不是第一次对其进行调用,则向服务端发送保活请求并接收服务端返回的响应,若发送和接收正常,则读出本地缓存的授权信息并返回给客户端,若发送和接收不正常,则将出错信息返回给客户端后退出。
[0017]所述的基于网络的软件授权控制装置,其特征在于:所述特定协议包括由所述API模块产生随机码发送给服务端,所述服务端与API模块在后续信息交互过程中均采用所述随机码对传输的报文进行加解密;所述API模块定期向服务端发送含有递增序号的保活请求,所述服务端向API模块返回含有所述递增序号的响应。
[0018]本发明的有益效果为:当应用软件在云平台上运行时,没有实体USB接口,无法采用USB接口的加密狗来保护软件;云平台上的操作系统是在虚拟机上运行的,因此CPU序列号、MAC地址等可以用于软加密的唯一标识很容易被模拟,因此也不利于采用软加密的方式保护软件。由上述技术方案可知,本发明的装置可以避免以上问题,从而解决运行在云平台上的应用软件的授权保护问题。
[0019]
【附图说明】
[0020]图1是本发明网络授权装置的相关模块关系示意图;
图2是本发明网络授权装置的服务端工作流程图;
图3是本发明网络授权装置的读写密码修改接口工作流程图;
图4是本发明网络授权装置的授权信息写入接口工作流程图;
图5是本发明网络授权装置的授权信息读出接口工作流程图;
图6是本发明网络授权装置写入授权信息的过程示意图;
图7是需要授权保护的应用软件调用API的过程示意图。
[0021]
【具体实施方式】
[0022]下面结合附图和具体实施例进一步说明本发明。
[0023]如图1所示,一种基于网络的软件授权控制装置,包括接入网络的实体装置102、运行在实体装置102上的服务端103和集成在客户端104的API模块105,客户端104运行在计算机101上。计算机101与实体装置102通过以太网相连,API模块105与服务端103在以太网上通过特定协议交互信息。
[0024]如图2所示,本发明网络授权装置的服务端103工作流程如下:
步骤201、网络授权装置服务端软件启动; 步骤202、监听特定端口 ;
步骤203、检查是否有API模块105发送过来的连接;如果已经有一个合法连接存在,则新的连接进来后直接拒绝;
步骤204、按照特定协议对API模块105发送过来的连接的合法性进行判断;
特定协议可以有不同的格式,但具有以下特征:由API模块105产生随机码发送给服务端103,服务端103与API模块105在后续通讯过程发送的任何报文都使用该随机码通过相同的方法加密,收到报文后使用该随机码解密。API模块105需要定期向服务端103发送保活请求,保活请求中要有递增序号,服务端103对各种保活请求进行响应,且响应中要包含保活请求中的递增序号。如果在协议交互过程中发现下述任何一种情况,说明连接被攻击,直接断开连接即可:
(O如果解密后报文格式非法;
(2)如果API模块105长时间接收不到保活请求的响应,或者响应中的递增序号与保活请求中的递增序号不符;
(3)如果服务端103长时间接收不到保活请求。
[0025]步骤205、判断连接是否合法,如果是,则跳转至步骤207,如果否,则执行步骤206 ;
步骤206、断开当前连接,跳转至步骤202 ;
步骤207、判断请求种类;
步骤208、判断是否是修改读写密码请求,如果是,则执行步骤209
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1