一种客户端软件保护方法、装置及客户端的制作方法
【技术领域】
[0001]本发明涉及软件安全技术领域,尤其涉及一种客户端软件保护方法、装置及客户端。
【背景技术】
[0002]目前,很多客户端开发方采用加密狗的方式对其出售的客户端软件(软件产品)进行权限保护,从而防止因非法用户复制传播软件,而给客户端开发方带来的经济损失。
[0003]加密狗是一种插在计算机并行口上的软硬件结合的加密产品,外形酷似U盘,其外部接口主要是USB接口。目前采用加密狗的方式对客户端进行权限保护的方式为:当用户第一次运行客户端时,将加密狗插在客户端运行的主机上,这样才能保证客户端的运行,如果不插入加密狗,客户端将无法运行;并且,在客户端第一运行时,客户端将加密狗中的信息调出,并保存到客户端的可执行程序所在的路径,当该客户端在同一主机上第二次运行客户端,则无需再次插入加密狗,直接调用保存的加密狗中的信息即可。
[0004]但是,通过加密狗对客户端进行权限保护的方式,只在用户设备侧对客户端进行了保护,一旦加密狗中的信息被破解,则非法用户即可随意复制传播客户端软件,客户端开发方无法阻止非法用户的这种复制传播行为,通过加密狗的方式对客户端保护的方式的保护力度不够,安全性不高。
[0005]因此,目前亟需一种在开发方的服务器侧能够对客户端软件进行保护的方法,从而提高客户端软件的安全性和保护力度。
【发明内容】
[0006]本发明提供一种客户端软件保护方法、装置及客户端,用以解决现有技术通过加密狗的方式对客户端保护的方式的保护力度不够,安全性不高的问题你。
[0007]—种客户端软件保护方法,包括:
[0008]服务器接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性;
[0009]服务器判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0010]如果是,确定所述客户端合法并执行所述业务请求消息对应的操作;
[0011]否则,确定所述客户端不合法并向所述客户端返回告警消息。
[0012]所述方法中,所述业务请求消息为认证请求消息时,所述执行所述业务请求消息对应的操作,具体包括:
[0013]对所述客户端进行认证,并向所述客户端返回认证成功消息;
[0014]所述业务请求消息为认证请求消息时,向所述客户端返回告警消息,具体包括:
[0015]向所述客户端返回认证失败消息,并指示关闭所述客户端的所有功能。
[0016]所述方法,还包括:
[0017]接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书;
[0018]判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0019]如果是,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包;
[0020]否则,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。
[0021]所述方法,进一步包括:
[0022]接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书;
[0023]判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0024]如果是,确定所述客户端合法,并允许所述客户端下载升级包;
[0025]否则,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。
[0026]所述方法中,所述客户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数;
[0027]则,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,具体包括:
[0028]根据所述客户端对应的许可证书的唯一标识,从所述许可证书数据库中提取与该唯一标识相同的许可证书;
[0029]获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值;
[0030]判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在预设范围之内;
[0031]如果是,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端;
[0032]否则,确定所述客户端对应的许可证书与提取的许可证书不匹配。
[0033]所述方法,向所述客户端返回认证成功消息后,进一步包括:
[0034]确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。
[0035]本发明还提供一种客户端软件保护方法,包括:
[0036]客户端接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性;
[0037]客户端确定向服务器发送业务请求消息时,将所述导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。
[0038]所述方法,客户端将提取的许可证书编辑到认证请求消息中发送给所述服务器后,还包括:
[0039]接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。
[0040]所述方法,还包括:
[0041]确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者,
[0042]确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。
[0043]所述方法,进一步包括:
[0044]确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。
[0045]所述方法,还包括:
[0046]接收所述服务器针对所述业务请求消息返回的处理结果消息;
[0047]确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。
[0048]本发明还提供一种客户端软件保护装置,包括:
[0049]接收单元,用于接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性;
[0050]判断单元,用于判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0051 ]第一确定单元,用于在判断单元判断是的情况下,确定所述客户端合法并执行所述业务请求消息对应的操作;
[0052]第二确定单元,用于在判断单元判断否的情况下,,确定所述客户端不合法并向所述客户端返回告警消息。
[0053]所述装置中,所述第一确定单元具体用于:
[0054]在所述业务请求消息为认证请求消息时,对所述客户端进行认证,并向所述客户端返回认证成功消息;
[0055]所述第二确定单元具体用于,在所述业务请求消息为认证请求消息时,向所述客户端返回认证失败消息,并指示关闭所述客户端的所有功能。
[0056]所述装置中,所述接收单元还用于,接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书;
[0057]所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0058]所述第一确定单元还用于,在所述判断单元判断是的情况下,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包;
[0059]所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。
[0060]所述装置中所述接收单元还用于,接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书;
[0061]所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0062]所述第一确定单元还用于,在所述判断单元判断是的情况下,,确定所述客户端合法,并允许所述客户端下载升级包;
[0063]所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。
[0064]所述装置中,所述判断单元具体用于:
[0065]在所述客
户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数时,根据所述客户端对应的许可证书的唯一标识,从所述许可证书数据库中提取与该唯一标识相同的许可证书;
[0066]获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值;
[0067]判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在预设范围之内;
[0068]如果是,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端;
[0069]否则,确定所述客户端对应的许可证书与提取的许可证书不匹配。
[0070]所述装置中,所述接收单元还用于:
[0071]在所述第一确定单元向所述客户端返回认证成功消息后,确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。
[0072]本发明还提供一种客户端,包括:
[0073]接收单元,用于接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性;
[0074]发送单元,用于确定向服务器发送业务请求消息时,将所述导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。
[0075]所述客户端中,所述发送单元还用于:
[0076]接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。
[0077]所述客户端中,所述发送单元,用于确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者,
[0078]确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。
[0079]所述客户端中,所述发送单元还用于:
[0080]确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。
[0081]所述客户端中,所述发送单元还用于:
[0082]接收所述服务器针对所述业务请求消息返回的处理结果消息;
[0083]确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。
[0084]利用本发明实施例提供的客户端软件保护方法、装置及客户端,具有以下有益效果:客户端在向服务器发送业务请求时,需要携带许可证书,并需要在服务器验证客户端对应的许可证书合法时,服务器才对客户端进行相应的业务操作,即使非法用户非法安装了客户端,如果不知客户端的许可证书,也无法对该客户端进行激活、认证以及授权等业务操作,从而在服务器侧实现了对客户端软件的保护,从而提高了客户端软件的安全性,并加大了对客户端软件的保护力度。
【附图说明】
[0085]图1为本发明实施例提供的客户端软件保护方法流程图之一;
[0086]图2为本发明实施例提供的客户端软件保护方法流程图之二;
[0087]图3为本发明实施例提供的客户端软件保护方法流程图之三;
[0088]图4为本发明实施例提供的匹配许可证书的方法流程图;
[0089]图5为本发明实施例提供的客户端软件保护方法流程图之四;
[0090]图6为本发明实施例提供的客户端软件保护装置示意图;
[0091 ]图7为本发明实施例提供的客户端示意图。
【具体实施方式】
[0092]下面结合附图和实施例对本发明提供的客户端软件保护方法、装置及系统进行更详细地说明。
[0093]本发明实施例提供一种客户端软件保护方法,如图1所示,包括:
[0094]步骤101,服务器接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性。
[0095]具体的,服务器可以为云端服务器,由客户端软件开发方维护,客户端软件开发方针对每个出售的客户端软件生成一个许可证书,用于验证已出售的客户端软件的合法性,服务器保存已出售的客户端对应的许可证书,该许可证书可以为数字证书,也可以为经过签名的数字证书。客户端为虚拟客户端,客户端被安装到购买该客户端软件的用户的相应设备后,该客户端需要向服务器发送激活请求消息,经过激活后,该客户端对应的功能才能被激活,客户端被激活后,进一步该客户端向服务器发送认证请求消息和授权请求消息,并且经过服务器的认证和授权后,该客户端对应的功能才可被用户使用。本发明实施例,客户端在向服务器发送业务请求消息时,在业务请求消息中携带客户端的许可证书,从而验证该客户端的合法性。业务请求消息为激活请求消息、认证请求消息或授权请求消息。优选地,许可证书携带在业务请求消息的头部。
[0096]优选地,本发明实施例中的客户端软件用于防御网络攻击,用户购买该客户端后,将该客户端安装在用户的网关设备上,并通过监控设备控制客户端的激活、认证和授权。
[0097]步骤102,服务器判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,如果是,执行步骤103,否则,执行步骤104。
[0098]具体的,服务器侧的许可证书数据库中保存了已售出的客户端软件的许可证书。
[0099]步骤103,确定所述客户端合法并执行所述业务请求消息对应的操作。
[0100]具体的,当业务请求为激活请求消息时,服务器激活该客户端,并向客户端返回激活成功消息;当业务请求为认证请求消息时,服务器对该客户端进行认证处理,并向客户端返回认证成功消息;当业务请求为授权请求消息时,服务器为该客户端进行授权,并向客户端返回授权成功消息。
[0101]步骤104,确定所述客户端不合法并向所述客户端返回告警消息。
[0102]具体的,如果未在保存的许可证书数据库中匹配到客户端对应的许可证书,则确定该客户端不合法,并向客户端返回客户端不合法的告警消息,进一步地,当业务请求为激活请求消息时,服务器向客户端返回激活失败消息;当业务请求为认证请求消息时,服务器向客户端返回认证失败消息;当业务请求为授权请求消息时,服务器向客户端返回授权失败消息。
[0103]需要说明的是,本发明实施例中的客户端软件即为客户端。
[0104]本发明实施例,客户端在向服务器发送业务请求时,需要携带许可证书,并需要在服务器验证客户端对应的许可证书合法时,服务器才对客户端进行相应的业务操作,即使非法用户非法安装了客户端,如果不知客户端的许可证书,也无法对该客户端进行激活、认证以及授权等业务操作,从而在服务器侧实现了对客户端软件的保护,从而提高了客户端软件的安全性,并加大了对客户端软件的保护力度。
[0105]具体的,当业务请求消息为认证请求消息时,所述执行所述业务请求消息对应的操作,具体包括:对所述客户端进行认证,并向所述客户端返回认证成功消息;所述业务请求消息为认证请求消息时,向所述客户端返回告警消息,具体包括:向所述客户端返回认证失败消息的告警消息,并指示关闭所述客户端的所有功能。当确定客户端为非法客户端时,服务器向客户端发送关闭功能的指示,从而使得客户端根据该指示关闭客户端的所有功能,进而使得非法用户无法使用该客户端,达到保护客户端软件、提高客户端软件安全性以及客户端软件开发方利益的目的。
[0106]在图1所示的实施例的基础上,服务器对客户端进行认证或授权后,如图2所示,还包括:
[0107]步骤201,接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书。
[0108]具体的,服务器侧的升级包站点保存了客户端的升级包,但服务器侧不会将客户端的升级包直接显示供客户端用户查看,而是执行步骤202
[0109]步骤202,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,如果是,执行步骤203,否则,执行步骤204。
[0110]步骤203,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包。
[0111]步骤204,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。
[0112]具体的,服务器在收到客户端发送的升级包查看请求消息,确定客户端合法时,月艮务器从相应升级包站点提取客户端的升级包,并允许所述客户端查看该升级包;确定客户端不合法时,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。这样可以防止非法用户查看其安装的非法(不合法)客户端的升级包,从而进一步提高了客户端软件的安全性,达到保护客户端软件以及客户端软件开发方利益的目的。
[0113]优选
地,如图3所示,本发明实施例提供的客户端软件保护方法,进一步包括:
[0114]步骤301,接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书;
[0115]步骤302,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,如果是,执行步骤303,否则,执行步骤304。
[0116]步骤303,确定所述客户端合法,并允许所述客户端下载升级包;
[0117]步骤304,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。
[0118]具体的,客户端下载升级包时,需要向服务器发送升级包下载请求,服务器根据升级包下载请求中携带的许可证书,确定客户端合法时,允许客户端下载升级包;确定客户单不合法时,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。这样可以防止非法用户对其安装的非法(不合法)客户端进行升级,从而进一步提高了客户端软件的安全性,达到保护客户端软件以及客户端软件开发方利益的目的。
[0119]优选地,所述客户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数。具体的,客户端软件开发方针对每个客户端软件,按照预设的哈希算法以及哈希因子,生成一个哈希值,即客户端哈希值,并按照预设的加密算法对客户端哈希值进行加密,得到加密后的哈希值,将加密后哈希值添加到许可证书中。其中,哈希因子包括许可证书序列号、许可证书的唯一标识以及许可证书的名称中的至少两项,许可证书的唯一标识为MD5值。预设的加密算法为:根据预先设置的私钥对许可证书的哈希值进行加密得到第一结果;对该第一结果进行base64编码后得到加密后的哈希值。
[0120]进一步地,客户端在向服务器发送业务请求时,在许可证书中添加第一随机数,并将添加第一随机数的许可证书携带在业务请求中发送给服务器。
[0121]在此基础上,上述各实施例中,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,如图4所示,具体包括:
[0122]步骤401,根据客户端对应的许可证书的唯一标识,查找许可证书数据库中是否存在与该唯一标识相同的许可证书,如果是,执行步骤402,否则,执行步骤406。
[0123]步骤402,从所述许可证书数据库中提取与该唯一标识相同的许可证书。
[0124]步骤403,获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值。
[0125]其中,提取的许可证书的哈希值根据预设的哈希算法和哈希因子计算得到,哈希因子包括提取的许可证书序列号、提取的许可证书的唯一标识以及提取的许可证书的名称中的至少两项,提取的许可证书的唯一标识为MD5值。预设的加密算法为:根据预先设置的私钥对提取的许可证书的哈希值进行加密得到第二结果;对该第二结果进行base64编码后得到提取的许可证书的加密后的哈希值。
[0126]步骤404,判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在第一预设范围之内,如果是,执行步骤405,否则,执行步骤406。
[0127]步骤405,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端。
[0128]具体的,第二随机数可通过激活成功消息,或者,认证成功消息,或者,授权成功消息返回给客户端。该第二随机数在第二预设范围之内,第一预设范围和第二预设范围可以相同也可以不同,这里不做限定。优选地,该第二随机数可根据第一随机数计算得到,比如:该第二随机数等于第一随机数加上设定值,或者,该第二随机数等于将第一随机数乘以设定值。
[0129]步骤406,确定所述客户端对应的许可证书与提取的许可证书不匹配。
[0130]本发明实施例,通过比对客户端对应的许可证书以及提取的许可证书中包括的各个信息是否相同来匹配客户端对应的许可证书。并且,根据与客户端同样的哈希因子和哈希算法以及加密算法,计算提取的许可证书的加密后哈希值,与客户端对应的许可证书中加密后的哈希值进行比对,可以提高许可证书校验的安全性。此外,在许可证书中添加随机数,此时即使攻击者抓取业务请求消息对应的数据包,也无法分析出业务请求消息中许可证书的规律,从而防止攻击者通过抓包方式分析业务请求消息中许可证书的规律,攻击服务器的现象出现。并且,服务器通过验证第一随机数是否在预设范围之内,也可在一定程度上进一步提高对客户端的保护力度。
[0131]优选地,向所述客户端返回认证成功消息后,进一步包括:
[0132]确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。
[0133]具体的,服务器第一次对客户端认证通过后,客户端需要周期性向服务器发送认证请求消息,以周期性验证客户端的合法性,如果服务器在预设时长内未接收到客户端发送的认证请求消息,则认为客户端已被非法使用,此时,将客户端的功能置为未激活状态,并向客户端返回激活提示消息,这样如果用户需要再次正常使用客户端需要重新对客户端进行激活。
[0134]以上是基于对客户端进行管理的服务器侧,对本发明实施例提供的客户端软件保护方法进行的说明,下面基于客户端侧对本发明实施例提供的客户端软件保护方法进行详细说明,如图5所示,包括:
[0135]步骤501,客户端接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性。
[0136]具体的,用户通过监控设备将客户端的许可证书导入客户端,客户端安装在用户的网关设备上,用户通过监控设备远程监控网关设备的异常以及网关设备上安装的客户端的异常,并且,用户通过监控设备控制客户端的激活、认证、授权和升级等。当用户选择对客户端进行激活、认证、授权或升级时,需要向客户端导入该客户端的许可证书。
[0137]步骤502,客户端确定向服务器发送业务请求消息时,将导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。
[0138]客户端向服务器发送业务请求消息时,将许可证书编辑到业务请求消息中,具体将许可证书中的信息编辑到业务请求消息中。该许可证书保存在用户侧的监控设备中。
[0139]进一步地,执行完步骤502后,客户端接收服务器返回的针对业务请求消息的处理结果消息,根据所述服务器针对所述业务请求消息返回的处理结果消息,进行相应的业务操作。
[0140]服务器返回的处理结果消息为激活成功消息或认证成功消息或授权成功消息,客户端根据服务器返回的激活成功消息激活器自身的功能,根据认证和授权成功消息,允许用户访问该客户端或者使用该客户端的功能。服务器返回的处理结果消息还可能是激活失败消息或认证失败消息或授权失败消息,此时,客户端关闭自身的功能,不允许用户使用其功能。
[0141]本发明实施例,即使非法用户恶意复制客户端安装到其他设备,但客户端的许可证书和客户端不再同一台设备,非法用户无法获取客户端的许可证书,从而无法对客户端进行任何业务操作,从而提高了客户端的安全性,保护了客户端软件开发方的利益。
[0142]优选地,客户端将提取的许可证书编辑到认证请求消息中发送给所述服务器后,还包括:
[0143]接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。
[0144]具体的,客户端在第一次被认证通过后,周期性向服务器发送认证请求消息,SP,间隔设定时长向服务器发送认证请求消息,优选地设定时长为一小时,从而实现对客户端的周期性认证。
[0145]优选地,确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。即只要该客户端在服务器侧有一次未被认证通过,则该客户端软件被指为未激活状态,在一定程度上提高客户端的安全性。
[0146]客户端向服务器发送认证请求消息后,具体的服务器对客户端的认证过程参见图1提供的实施例,这里不做详述。
[0147]优选地,确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者,
[0148]确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。
[0149]本发明实施例,必须在用户导入许可证书后,才可实现查看或下载客户端的升级包,从而在一定程度上提高了客户端的保护力度,保证了客户端的安全以及客户端开发方的利益。
[0150]优选地,所述许可证书包括:许可证书的唯一标识、加密后的许可证书哈希值以及第一随机数,具体的,对许可证书的说明解释可参见服务器侧对许可证书的解释说明,这里不做详述。
[0151]优选地,接
收所述服务器针对所述业务请求消息返回的处理结果消息;确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。
[0152]具体的,本发明实施例,在返回的处理消息为激活成功消息或者认证成功消息或者授权成功消息时,将第二随机数携带在激活成功消息或者认证成功消息或者授权成功消息中返回给客户端。客户端在确定第二随机数在预设范围之内,或者第二随机数等于第一随机数减去预设值,或者第二随机数等于第一随机数乘以预设值时,进行相应的业务操作。在处理结果消息中携带第二随机数,即使攻击者抓取处理结果消息对应的数据包,也无法分析出处理结果消息中各个信息的规律,从而防止攻击者通过抓包方式分析处理结果消息的规律攻击服务器的现象出现。
[0153]基于与图1提供的实施例同样的发明构思,本发明实施例还提供一种客户端软件保护装置,如图6所示,包括:
[0154]接收单元601,用于接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性;
[0155]判断单元602,用于判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0156]第一确定单元603,用于在判断单元判断是的情况下,确定所述客户端合法并执行所述业务请求消息对应的操作;
[0157]第二确定单元604,用于在判断单元判断否的情况下,,确定所述客户端不合法并向所述客户端返回告警消息。
[0158]优选地,所述装置中,所述第一确定单元具体用于:
[0159]在所述业务请求消息为认证请求消息时,对所述客户端进行认证,并向所述客户端返回认证成功消息;
[Ο??Ο]所述第二确定单元具体用于,在所述业务请求消息为认证请求消息时,向所述客户端返回认证失败消息,并指示关闭所述客户端的所有功能。
[0161]优选地,所述装置中,所述接收单元还用于,接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书;
[0162]所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0163]所述第一确定单元还用于,在所述判断单元判断是的情况下,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包;
[0164]所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。
[0165]优选地,所述装置中所述接收单元还用于,接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书;
[0166]所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;
[0167]所述第一确定单元还用于,在所述判断单元判断是的情况下,,确定所述客户端合法,并允许所述客户端下载升级包;
[0168]所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。
[0169]优选地,所述装置中,所述判断单元具体用于:
[0170]在所述客户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数时,根据所述客户端对应的许可证书的唯一标识,从所述许可证书数据库中提取与该唯一标识相同的许可证书;
[0171]获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值;
[0172]判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在预设范围之内;
[0173]如果是,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端;
[0174]否则,确定所述客户端对应的许可证书与提取的许可证书不匹配。
[0175]优选地,所述装置中,所述接收单元还用于:
[0176]在所述第一确定单元向所述客户端返回认证成功消息后,确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。
[0177]基于与图5提供的实施例同样的发明构思,本发明实施例还提供一种客户端,如图7所示,包括:
[0178]接收单元701,用于接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性;
[0179]发送单元702,用于确定向服务器发送业务请求消息时,将所述导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。
[0180]优选地,所述客户端中,所述发送单元还用于:
[0181]接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。
[0182]所述客户端中,所述发送单元,用于确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者,
[0183]确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。
[0184]优选地,所述客户端中,所述发送单元还用于:
[0185]确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。
[0186]优选地,所述客户端中,所述发送单元还用于:
[0187]接收所述服务器针对所述业务请求消息返回的处理结果消息;
[0188]确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。
[0189]利用本发明实施例提供的客户端软件保护方法、装置及客户端,具有以下有益效果:客户端在向服务器发送业务请求时,需要携带许可证书,并需要在服务器验证客户端对应的许可证书合法时,服务器才对客户端进行相应的业务操作,即使非法用户非法安装了客户端,如果不知客户端的许可证书,也无法对该客户端进行激活、认证以及授权等业务操作,从而在服务器侧实现了对客户端软件的保护,从而提高了客户端软件的安全性,并加大了对客户端软件的保护力度。
[0190]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0191]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0192]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0193]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0194]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种客户端软件保护方法,其特征在于,包括: 服务器接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性; 服务器判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 如果是,确定所述客户端合法并执行所述业务请求消息对应的操作; 否则,确定所述客户端不合法并向所述客户端返回告警消息。2.如权利要求1所述的方法,其特征在于,所述业务请求消息为认证请求消息时,所述执行所述业务请求消息对应的操作,具体包括: 对所述客户端进行认证,并向所述客户端返回认证成
功消息; 所述业务请求消息为认证请求消息时,向所述客户端返回告警消息,具体包括: 向所述客户端返回认证失败消息,并指示关闭所述客户端的所有功能。3.如权利要求2所述的方法,其特征在于,还包括: 接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书; 判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 如果是,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包; 否则,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。4.如权利要求2或3所述的方法,其特征在于,进一步包括: 接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书; 判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 如果是,确定所述客户端合法,并允许所述客户端下载升级包; 否则,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。5.如权利要求1-3任一所述的方法,其特征在于,所述客户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数; 贝1J,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书,具体包括: 根据所述客户端对应的许可证书的唯一标识,从所述许可证书数据库中提取与该唯一标识相同的许可证书; 获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值; 判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在预设范围之内; 如果是,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端; 否则,确定所述客户端对应的许可证书与提取的许可证书不匹配。6.如权利要求2所述的方法,其特征在于,向所述客户端返回认证成功消息后,进一步包括: 确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。7.一种客户端软件保护方法,其特征在于,包括: 客户端接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性; 客户端确定向服务器发送业务请求消息时,将所述导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。8.如权利要求7所述的方法,其特征在于,客户端将提取的许可证书编辑到认证请求消息中发送给所述服务器后,还包括: 接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。9.如权利要求7所述的方法,其特征在于,还包括: 确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者, 确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。10.如权利要求7或8所述的方法,其特征在于,进一步包括: 确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。11.如权利要求7-9任一所述的方法,其特征在于,还包括: 接收所述服务器针对所述业务请求消息返回的处理结果消息; 确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。12.一种客户端软件保护装置,其特征在于,包括: 接收单元,用于接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性; 判断单元,用于判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 第一确定单元,用于在判断单元判断是的情况下,确定所述客户端合法并执行所述业务请求消息对应的操作; 第二确定单元,用于在判断单元判断否的情况下,,确定所述客户端不合法并向所述客户端返回告警消息。13.如权利要求12所述的装置,其特征在于,所述第一确定单元具体用于: 在所述业务请求消息为认证请求消息时,对所述客户端进行认证,并向所述客户端返回认证成功消息; 所述第二确定单元具体用于,在所述业务请求消息为认证请求消息时,向所述客户端返回认证失败消息,并指示关闭所述客户端的所有功能。14.如权利要求13所述的装置,其特征在于, 所述接收单元还用于,接收所述客户端发送的升级包查看请求消息,所述升级包查看请求消息中携带所述客户端对应的许可证书; 所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 所述第一确定单元还用于,在所述判断单元判断是的情况下,确定所述客户端合法,从升级包站点提取所述升级包,并允许所述客户端查看升级包; 所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端查看升级包,并向所述客户端返回查看失败消息。15.如权利要求13或14所述的装置,其特征在于: 所述接收单元还用于,接收所述客户端发送的升级包下载请求消息,所述升级包下载请求消息中携带所述客户端对应的许可证书; 所述判断单元还用于,判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书; 所述第一确定单元还用于,在所述判断单元判断是的情况下,,确定所述客户端合法,并允许所述客户端下载升级包; 所述第二确定单元还用于,在所述判断单元判断否的情况下,确定所述客户端不合法,不允许所述客户端下载升级包,并向所述客户端返回下载失败消息。16.如权利要求12-14任一所述的装置,其特征在于,所述判断单元具体用于: 在所述客户端对应的许可证书包括:许可证书的唯一标识、加密后的哈希值以及第一随机数时,根据所述客户端对应的许可证书的唯一标识,从所述许可证书数据库中提取与该唯一标识相同的许可证书; 获取提取的许可证书对应的哈希值,并根据预设的加密算法对提取的许可证书对应的哈希值进行加密,得到提取的许可证书的加密后的哈希值; 判断是否满足所述客户端对应的许可证书的加密后的哈希值与提取的许可证书的加密后的哈希值相同,且,所述第一随机数在预设范围之内; 如果是,确定所述客户端对应的许可证书与提取的许可证书匹配,并将第二随机数返回给所述客户端; 否则,确定所述客户端对应的许可证书与提取的许可证书不匹配。17.如权利要求13所述的装置,其特征在于,所述接收单元还用于: 在所述第一确定单元向所述客户端返回认证成功消息后,确定在预设时长内未接收到所述客户端发送的认证请求消息时,向所述客户端返回激活提示消息。18.一种客户端,其特征在于,包括: 接收单元,用于接收用户导入的许可证书,所述客户端安装在用户的网关设备上,所述许可证书用于验证所述客户端的合法性; 发送单元,用于确定向服务器发送业务请求消息时,将所述导入的许可证书编辑到所述业务请求消息中发送给所述服务器,所述许可证书的保存在用户侧的监控设备上,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息。19.如权利要求18所述的客户端,其特征在于,所述发送单元还用于: 接收到所述服务器返回的认证成功消息后,间隔设定时长向所述服务器发送认证请求消息。20.如权利要求18所述的客户端,其特征在于: 所述发送单元,用于确定向服务器发送升级包查看请求消息时,将所述导入的许可证书编辑到升级包查看请求消息,发送给所述服务器;或者, 确定向服务器发送升级包下载请求消息时,将所述导入的许可证书编辑到升级包下载请求消息中,发送给所述服务器。21.如权利要求18或19所述的客户端,其特征在于,所述发送单元还用于: 确定接收到所述服务器返回的认证失败消息时,关闭所述客户端的所有功能。22.如权利要求18-20任一所述的客户端,其特征在于,所述发送单元还用于: 接收所述服务器针对所述业务请求消息返回的处理结果消息; 确定所述处理结果消息中携带的第二随机数在预设范围之内时,进行相应的业务操作。
【专利摘要】本发明提供一种客户端软件保护方法、装置及客户端,该方法包括:服务器接收客户端发送的业务请求消息,所述业务请求消息中携带所述客户端对应的许可证书,所述业务请求消息为激活请求消息、认证请求消息或授权请求消息,所述许可证书用于验证所述客户端的合法性;服务器判断是否在保存的许可证书数据库中匹配到所述客户端对应的许可证书;如果是,确定所述客户端合法并执行所述业务请求消息对应的操作;否则,确定所述客户端不合法并向所述客户端返回告警消息。本发明在服务器侧实现了对客户端软件的保护,从而提高了客户端软件的安全性,并加大了对客户端软件的保护力度。
【IPC分类】H04L29/06, H04L29/08
【公开号】CN105491062
【申请号】CN201511024718
【发明人】孙建鹏, 杨传安, 周素华
【申请人】北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月30日