一种基于SDK动态水印的客户端合法性校验的方法与流程

文档序号:15931038发布日期:2018-11-14 01:38阅读:164来源:国知局

本申请涉及网络通信技术领域,具体而言,涉及一种基于sdk动态水印的客户端合法性校验的方法。

背景技术

随着网络技术的不断发展,网络中的终端越来越多,为了使合法用户能够正常使用网络,并阻止非法用户进入,服务端需要对客户端的合法性进行校验,在验证合法时才允许客户端访问,验证不合法时则拒绝客户端访问。当前普通的客户端请求的合法性校验方法多是在标准协议的应用层数据中加入标记,然后服务端进行校验,例如服务端向客户端发送加密数据,服务端确认解密数据准确时确定客户端合法。由于加入的解密数据的验证信息一般都是静态的,解密数据的验证信息很容易被恶意客户端窃取、伪造、重放或者损坏,一旦服务端遭受重放攻击,造成服务端资源耗费,影响服务端正常的工作。



技术实现要素:

有鉴于此,本申请的目的在于提供一种基于sdk动态水印的客户端合法性校验的方法,以有效防止重放攻击,识别出真实客户端请求。

第一方面,本申请实施例提供了一种基于sdk动态水印的客户端合法性校验的方法,包括:

接收客户端发送的水印生成请求,根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印;

向所述客户端返回所述水印;

接收所述客户端每次连接动作中发送的嵌入有所述水印的数据包,并记录接收该数据包的第二时间戳;

根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。

结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,

接收客户端发送的水印生成请求,根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印中进一步包括:

建立所述水印和所述第一时间戳的对应关系;

所述第一时间戳为接收所述客户端发送所述水印生成请求时的本地时间。

结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,

接收客户端发送的水印生成请求,根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印中进一步包括:

根据第一时间戳、所述水印生成请求中的客户端信息以及随机数生成针对该客户端的水印。

结合第一方面,本申请实施例提供了第三种可能的实施方式,其中,所述接收所述客户端每次连接动作中发送的嵌入有所述水印的数据包进一步包括:

根据与所述客户端的tcpsocket通信,所述嵌入有所述水印的数据包为与所述客户端建立连接后的首个数据包。

结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,其中,

所述根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性进一步包括:

所述第二时间戳为接收到所述数据包时的本地时间;

根据所述水印匹配出与之相对应的所述第一时间戳;

当所述第一时间戳与所述第二时间戳之差小于预设门限值时,则校验通过,并将所述数据包转发出去;

当所述第一时间戳与所述第二时间戳之差大于或等于预设门限值时,则校验不通过。

第二方面,本申请实施例提供了一种基于sdk动态水印的客户端合法性校验的方法,其中,

定时向服务端发送水印生成请求,并接收所述服务端返回的水印,所述水印生成请求中包括客户端信息以及第一时间戳;

在数据包中嵌入所述水印,并在与服务端的每次连接动作中将所述数据包发送给所述服务端进行校验。

结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,

所述定时向服务端发送水印生成请求进一步包括:

当未与所述服务端协商预设门限值时,根据服务端的重置连接响应,定时向服务端发送水印生成请求;

当已与所述服务端协商预设门限值时,根据所述第一时间戳以及所述预设门限值,定时向服务端发送水印生成请求。

第三方面,本申请实施例提供了一种基于sdk动态水印的客户端合法性校验的装置,所述装置包括第一接收模块、水印生成模块、发送模块、第二接收模块、记录模块和校验模块,其中,

所述第一接收模块,用于接收客户端发送的水印生成请求;

所述水印生成模块,用于根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印;

所述发送模块,用于向所述客户端返回所述水印;

所述第二接收模块,用于接收所述客户端每次连接动作中发送的嵌入有所述水印的数据包;

所述记录模块,用于记录接收该数据包的第二时间戳;

所述校验模块,用于根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。

上述技术方案中,所述装置还包括:

判断模块,用于判断所述第一时间戳与所述第二时间戳之差是否小于预设门限值;

转发模块,用于当所述第一时间戳与所述第二时间戳之差小于预设门限值时,将所述数据包转发出去。

第四方面,本申请实施例提供了另一种基于sdk动态水印的客户端合法性校验的装置,所述装置包括:第一发送模块、接收模块、嵌入模块和第二发送模块,其中,

所述第一发送模块,用于定时向服务端发送水印生成请求;

所述接收模块,用于接收所述服务端返回的水印,所述水印生成请求中包括客户端信息以及第一时间戳;

所述嵌入模块,用于在数据包中嵌入所述水印;

所述第二发送模块,用于在与服务端的每次连接动作中将所述数据包发送给所述服务端进行校验。

第五方面,本申请实施例还提供了一种电子设备,包括处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当网络侧设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述方法的步骤。

第六方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法。

本申请实施例提供的一种基于sdk动态水印的客户端合法性校验的方法,采用动态水印的校验方法,与现有技术中的静态标记的校验方法相比,其动态、加密的校验方法能精确识别是否由真实客户端发起的请求,校验客户端的合法性。

进一步,本申请实施例提供的一种基于sdk动态水印的客户端合法性校验的方法,将客户端发送的水印生成请求中的客户端信息和第一时间戳通过随机选择的加密算法进行加密生成的动态水印随机性高,不易被恶意客户端伪造、窃取、重放或者损坏,能有效防止重放攻击。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例一所提供的一种基于sdk动态水印的客户端合法性校验的方法的流程图;

图2示出了本申请实施例二所提供的另一种基于sdk动态水印的客户端合法性校验的方法的流程图;

图3示出了本申请实施例三所提供的另一种基于sdk动态水印的客户端合法性校验的方法的流程图;

图4示出了本申请实施例四所提供的另一种基于sdk动态水印的客户端合法性校验的方法的流程图;

图5示出了本申请实施例五所提供的一种基于sdk动态水印的客户端合法性校验装置的结构示意图;

图6示出了本申请实施例六所提供的另一种基于sdk动态水印的客户端合法性校验装置的结构示意图;

图7示出了本申请实施例七所提供的电子设备的结构图;

图8示出了本申请实施例八所提供的电子设备的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

考虑到现有校验客户端合法性的方法中多采用静态标记,容易泄露,遭受重放攻击的问题。基于此,本申请实施例提供了一种一种基于sdk动态水印的客户端合法性校验的方法,下面通过实施例进行描述。

本申请提供了一种基于sdk动态水印的客户端合法性校验的方法,首先客户端定时向服务端发送水印生成请求,服务端接收客户端发送的水印生成请求,然后根据所述水印生成请求中的客户端信息和第一时间戳生成针对该客户端的水印,所述服务端将生成的针对该客户端的水印再返回给所述客户端,所述客户端将所述服务端返回的所述水印嵌入到数据包中,再将所述数据包发送给所述服务端,所述服务端接收所述客户端发送的嵌入有所述水印的数据包,并记录下接收到该数据包的第二时间戳,所述服务端根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。本申请实施例通过校验动态水印的方法,有效防止重放攻击,从而精确识别出真实客户端的请求。

实施例一

本申请实施例一提供了一种基于sdk动态水印的客户端合法性校验的方法如图1所示,该方法包括:

s101:接收客户端发送的水印生成请求,根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印。

本实施例中,建立所述水印和所述第一时间戳的对应关系,在具体地实施过程中,可以建立所述水印和所述第一时间戳的对应关系表。

本实施例中,根据所述第一时间戳、所述水印生成请求中的客户端信息以及随机数生成针对该客户端的水印,所述随机数为盐或者随机字符串等。

本实施例中,所述第一时间戳为接收所述客户端发送所述水印生成请求时的本地时间。

本实施例中,所述客户端信息包括系统名称、版本信息、国际移动设备识别码imei、用户唯一标识信息等,所述用户唯一标识信息用户包括账号、密码等;所述随机数包括随机字符串等。所述水印的生成方法有多种加密算法,例如信息-摘要算法md5、crc-32加密算法、sha1算法、sha-256算法,在具体地实施过程中,将在多种加密算法中随机选择一种加密算法。

s102:向所述客户端返回所述水印。

本实施例中,所述向所述客户端返回所述水印中包括:将所述水印以及水印信息的配置信息返回给所述客户端,所述配置信息包括所述水印嵌入数据包的位置以及所述水印的长度。

本实施例中,所述数据包中的数据皆以十六进制表示。

本实施例中,所述配置信息包括所述数据包中第一个字节标识所述水印的起始位置,第二和第三字节组合起来标识所述水印的长度,例如:090101表示从第9个字节开始的257个字节;所述配置信息是与客户端协商好动态调整的,例如,09002000000000001d1a1d1a2d2a2d2a3d3a3d3a4d4a4d4a5d5a5d5a6d6a6d6a7d7a7d7a8d8a8d8a,其中:090020是配置信息,表示水印嵌入数据包的位置从第9个字节开始,水印的长度为32个字节,其中0000000000是填充信息,1d1a1d1a2d2a2d2a3d3a3d3a4d4a4d4a5d5a5d5a6d6a6d6a7d7a7d7a8d8a8d8a是水印信息。

s103:接收所述客户端每次连接动作中发送的嵌入有所述水印的数据包,并记录接收该数据包的第二时间戳。

本实施例中,根据与所述客户端的tcpsocket通信,所述嵌入有所述水印的数据包为与所述客户端建立连接后的首个数据包;所述首个数据包可以为业务数据包,例如游戏数据包等。

本实施例中,所述第二时间戳为接收到该数据包时的本地时间。

s104:根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。

本实施例中,在所述水印和所述第一时间戳的对应关系表中匹配出与所述水印相对应的所述第一时间戳;

当所述第一时间戳与所述第二时间戳之差小于预设门限值时,则校验通过,并将所述数据包转发出去,本实施例中,所述数据包转发到业务处理服务端;

当所述第一时间戳与所述第二时间戳之差大于或等于预设门限值时,则校验不通过,则响应重置连接rst。

进一步地,统计所述水印出现的次数,当所述水印出现的次数大于1次,则响应重置连接rst。

进一步地,所述预设门限值是与服务端协商好的,用于校验所述第一时间戳与所述第二时间戳之差的时间阈值,即所述预设门限值是用于校验水印是否过期的时间阈值。

本申请所述的实施例一提供的一种基于sdk动态水印的客户端合法性校验的方法,将客户端发送的水印生成请求中的客户端信息、第一时间戳和随机数三个参数通过随机选择的加密算法进行加密生成水印,生成的水印具有随机性,而且水印是动态的,不易被恶意客户端伪造、窃取、重放或者损坏;并且水印与第一时间戳之间建立了对应关系,在校验客户端合法性的时候,需要从客户端发送的数据包中分析出所嵌入的水印的信息,从水印与第一时间戳建立的对应关系中找出与嵌入的水印相匹配的第一时间戳,只有当第一时间戳与记录的第二时间戳之差小与预设门限值时,校验才能通过。本申请提供的一种基于sdk动态水印的客户端合法性校验的方法,能精确识别是否由真实客户端发起的请求,有效防止重放攻击。

实施例二

本申请实施例二提供了另一种基于sdk动态水印的客户端合法性校验的方法如图2所示,该方法包括:

s201:向服务端发送携带有客户端信息的水印生成请求,并接收所述服务端返回的水印,所述水印中包括第一时间戳和所述客户端信息。

本实施例中,首先加载软件数据开发包sdk,软件数据开发包sdk通过超文本传输协议安全https请求向所述服务端发送水印生成请求;

所述第一时间戳为所述服务端接收所述水印生成请求时的本地时间。

s202:在与所述服务端的每次连接动作中将嵌入有所述水印的数据包发送给所述服务端进行校验。

本实施例中,所述在与所述服务端的每次连接动作中将嵌入有所述水印的数据包发送给所述服务端进行校验进一步包括:

当未通过校验,接收所述服务端返回的重置连接rst响应,并继续向所述服务端发送水印生成请求;

例如,当第一时间戳为00:00:00时,若10min后收到所述重置连接rst响应,则00:10:00继续向所述服务端发送一次水印生成请求。

本实施例中,所述在嵌入有所述水印的数据包进一步包括,根据与所述服务端的tcpsocket通信,所述嵌入有所述水印的数据包为与所述服务端建立连接后的首个数据包。

实施例三

本申请实施例三提供了另一种基于sdk动态水印的客户端合法性校验的方法如图3所示,该方法包括:

s301:定时向服务端发送携带有客户端信息的水印生成请求,并接收所述服务端返回的水印,所述水印中包括第一时间戳和所述客户端信息。

本实施例中,首先加载软件数据开发包sdk,所述软件数据开发包sdk通过超文本传输协议安全https请求向所述服务端发送水印生成请求;

所述第一时间戳为所述服务端接收所述水印生成请求时的本地时间。

本实施例中,与所述服务端协商好预设门限值,所述预设门限值即水印的过期时间,所述软件数据开发包sdk以小于所述预设门限值的时间间隔定时向所述服务端发送所述水印生成请求,例如所述时间间隔为所述预设门限值的三分之一,根据所述第一时间戳、所述预设门限值以及所述时间间隔,定时向所述服务端发送水印生成请求。

例如,当第一时间戳为00:00:00时,与所述服务端协商好的预设门限值为9min,为了使下一次的水印生成请求能在预设门限值之前发送,可以设置所述时间间隔为3min,则下一次水印生成请求的发送时间为00:03:00,以此类推。

s302:在与所述服务端每次连接动作中将嵌入有所述水印的数据包发送给所述服务端进行校验。

本实施例中,所述嵌入有所述水印的数据包进一步包括,根据与所述服务端的tcpsocket通信,所述嵌入有所述水印的数据包为与所述服务端建立连接后的首个数据包。

本申请所述的实施例三提供的一种基于sdk动态水印的客户端合法性校验的方法,定时向服务端发送水印生成请求,也就是周期性地向服务端发送客户端信息以及第一时间戳,服务端依据接收到的水印生成请求生成的水印是动态的,而非静态不变的,大大增强了水印的安全性和可靠性,由于与服务端端协商有预设门限值,如果水印被抓包获取,恶意客户端也很有可能因超过预设门限值不能通过校验,即使恶意客户端一次通过校验,下次也无法获取水印进行校验,而客户端将继续定时向服务端发送水印生成请求,进行再次校验,直到校验通过,从而有效防止重放攻击。

实施例四

本申请实施例四提供了另一种基于sdk动态水印的客户端合法性校验的方法如图4所示,该方法包括:

s401:客户端的应用程序首先加载软件开发包sdk,软件开发包sdk通过超文本传输协议安全https请求向服务端发送水印生成请求。

s402:所述服务端接收所述客户端发送的所述水印生成请求,根据所述的水印生成请求中的客户端信息、第一时间戳和盐这三个参数生成针对该客户端的水印。

本实施例中,建立所述水印和所述第一时间戳的对应关系,在具体地实施过程中,可以建立所述水印和所述第一时间戳的对应关系表。

本实施例中,所述服务端采用信息-摘要算法md5将客户端信息、第一时间戳和盐进行加密生成水印。所述客户端信息包括系统名称、版本信息、国际移动设备识别码imei、用户唯一标识信息等,所述用户唯一标识信息包括账号、密码等。

本实施例中,所述第一时间戳为所述服务端接收所述客户端发送所述水印生成请求时的本地时间。所述盐为随机字符串。

s403:所述服务端向所述客户端返回所述水印。

本实施例中,所述水印包括水印信息和该水印的配置信息,所述配置信息包括所述数据包中第一个字节标识所述水印的起始位置,第二和第三字节组合起来标识所述水印的长度,例如:090101表示从第9个字节开始的257个字节;所述配置信息是与客户端协商好动态调整的,所述配置信息包括所述水印嵌入数据包的位置以及所述水印的长度。例如09002000000000001d1a1d1a2d2a2d2a3d3a3d3a4d4a4d4a5d5a5d5a6d6a6d6a7d7a7d7a8d8a8d8a,其中:090020是配置信息,表示水印嵌入数据包的位置从第9个字节开始,水印的长度为32个字节,其中0000000000是填充信息,1d1a1d1a2d2a2d2a3d3a3d3a4d4a4d4a5d5a5d5a6d6a6d6a7d7a7d7a8d8a8d8a是水印信息。

s404:所述客户端向所述服务端发送同步序列编号syn包请求连接。

在本实施例中,所述同步序列编号syn包是所述客户端与所述服务端建立连接时使用的握手信号。

s405:所述服务端响应所述客户端,并向所述客户端发送同步序列编号syn+确认信号ack。

s406:所述客户端根据所述水印的配置信息将所述水印嵌入到首个数据包中,并将该首个数据包发送给所述服务端。

本实施例中,根据所述客户端与所述服务端的tcpsocket通信,所述首个数据包为所述客户端与所述服务端建立连接后的首个数据包,所述首个数据包可以为业务数据包,例如游戏数据包。

本实施例中,所述首个数据包中的数据以十六进制表示。

s407:所述服务端接收所述首个数据包,并记录接收该首个数据包的第二时间戳。

本实施例中,所述第二时间戳为所述服务端接收所述建立连接后的首个数据包时的时间。

s408:所述服务端根据所述水印、所述第一时间戳以及所述第二时间戳校验所述首个数据包的合法性。

本实施例中,在所述水印和所述第一时间戳的对应关系表中匹配出与所述水印相对应的所述第一时间戳。

s409:统计所述水印出现的次数,当所述水印出现的次数大于1次时,则所述服务端向所述客户端响应重置连接rst。

s410:当所述第一时间戳与所述第二时间戳之差小于预设门限值时,则校验通过,所述服务端就向所述客户端响应同步序列编号syn+确认信号ack,并将所述首个数据包转发到业务处理服务端;

s411:当所述第一时间戳与所述第二时间戳之差大于或等于预设门限值时,则校验不通过,所述服务端向所述客户端响应重置连接rst。

例如,当所述第一时间戳为00:00:00,所述第二时间戳为00:07:00,所述预设门限值为10min,所述第二时间戳与所述第一时间戳的时间差为7min,小于10min,校验通过;当所述第一时间戳为00:00:00,所述第二时间戳为00:07:00,所述预设门限值为5min,所述第二时间戳与所述第一时间戳的时间差为7min,大于5min,校验不通过。

进一步地,所述预设门限值是所述客户端与所述服务端协商好的。

实施例五

本申请实施例五提供的一种基于sdk动态水印的客户端合法性校验的装置的结构如图5所示,所述一种基于sdk动态水印的客户端合法性校验的装置包括第一接收模块、水印生成模块、发送模块、第二接收模块、记录模块和校验模块,其中,

所述第一接收模块,用于接收客户端发送的水印生成请求;

所述水印生成模块,用于根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印;

所述发送模块,用于向所述客户端返回所述水印;

所述第二接收模块,用于接收所述客户端每次连接动作中发送的嵌入有所述水印的数据包;

所述记录模块,用于记录接收该数据包的第二时间戳;

所述校验模块,用于根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。

进一步地,所述一种基于sdk动态水印的客户端合法性校验的装置还包括:

判断模块,用于判断所述第一时间戳与所述第二时间戳之差是否小于预设门限值;

转发模块,当所述第一时间戳与所述第二时间戳之差小于预设门限值时,则校验通过,将所述数据包转发出去。

实施例六

本申请实施例六提供了另一种基于sdk动态水印的客户端合法性校验的装置的结构如图6所示,所述另一种基于sdk动态水印的客户端合法性校验的装置包括:第一发送模块、接收模块、嵌入模块和第二发送模块,其中,

所述第一发送模块,用于定时向服务端发送水印生成请求;

所述接收模块,用于接收所述服务端返回的水印,所述第一时间戳以及水印生成请求中包括客户端信息;

所述嵌入模块,用于在数据包中嵌入所述水印;

所述第二发送模块,用于在与所述服务端每次连接动作中将所述数据包发送给所述服务端进行校验。

进一步地,所述第一发送模块具体地根据所述第一时间戳以及预设门限值,定时向服务端发送水印生成请求。

实施例七

如图7所示,为本申请实施例七所提供的一种电子设备700的结构示意图,包括:处理器701、存储器702和总线703;

所述存储器702存储有所述处理器701可执行的机器可读指令,当网络侧设备运行时,所述处理器701与所述存储器702之间通过总线703通信,所述机器可读指令被所述处理器701执行时执行如下处理:

接收客户端发送的水印生成请求,根据第一时间戳和所述水印生成请求中的客户端信息生成针对该客户端的水印;

向所述客户端返回所述水印;

接收所述客户端发送的嵌入有所述水印的数据包,并记录接收该数据包的第二时间戳;

根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性。

在具体实施中,上述处理器701执行的处理中,所述接收客户端发送的水印生成请求,根据所述水印生成请求中的客户端信息以及第一时间戳生成针对该客户端的水印中包括:建立所述水印和所述第一时间戳的对应关系,具体的地可以建立所述水印和所述第一时间戳的对应关系表。

在具体实施中,上述处理器701执行的处理中,所述接收客户端发送的水印生成请求,根据所述水印生成请求中的客户端信息以及第一时间戳生成针对该客户端的水印中还包括:根据第一时间戳、所述水印生成请求中的客户端信息以及随机数生成针对该客户端的水印,具体的地随机数为盐或者随机字符串等。

在具体实施中,所述第一时间戳是客户端发送水印生成请求时的本地时间。

在具体实施中,所述客户端信息包括系统名称、版本信息、国际移动设备识别码imei、用户唯一标识信息等,所述用户唯一标识信息用户包括账号、密码等;所述随机数包括随机字符串等。所述水印的生成方法有多种加密算法,例如信息-摘要算法md5、crc-32加密算法、sha1算法、sha-256算法,在具体地实施过程中,上述处理器701将在多种加密算法中随机选择一种加密算法。

在具体实施中,上述处理器701执行的处理中,所述向所述客户端返回所述水印中包括:将所述水印的配置信息返回给所述客户端,所述配置信息包括所述水印嵌入所述数据包的位置以及所述水印的长度。具体地,所述数据包中的数据皆以十六进制表示,所述所述配置信息包括所述数据包中第一个字节标识所述水印的起始位置,第二和第三字节组合起来标识所述水印的长度。

在具体实施中,上述处理器701执行的处理中,所述根据所述水印、第一时间戳以及第二时间戳校验所述数据包的合法性进一步包括:根据所述水印匹配出与之相对应的所述第一时间戳,具体地,所述第二时间戳为接收到该数据包时的时间。

在具体实施中,上述处理器701执行的处理中,当所述第一时间戳与所述第二时间戳之差小于预设门限值时,则校验通过,上述处理器701将所述数据包转发出去;当所述第一时间戳与所述第二时间戳之差大于或等于预设门限值时,则校验不通过,具体地,所述预设门限值是与服务端协商的,用于校验所述第一时间戳与所述第二时间戳之差的时间阈值,即所述预设门限值是用于校验水印是否过期的时间阈值。

实施例八

如图8所示,为本申请实施例八所提供的一种电子设备800的结构示意图,包括:处理器801、存储器802和总线803;

所述存储器802存储有所述处理器801可执行的机器可读指令,当网络侧设备运行时,所述处理器801与所述存储器802之间通过总线803通信,所述机器可读指令被所述处理器801执行时执行如下处理:

定时向服务端发送水印生成请求,并接收所述服务端返回的水印,所述水印生成请求中包括客户端信息以及第一时间戳;

在数据包中嵌入所述水印,并将所述数据包发送给所述服务端进行校验。

在具体实施中,上述处理器801执行的处理中,所述定时向服务端发送水印生成请求进一步包括:

根据所述第一时间戳以及预设门限值,定时向服务端发送水印生成请求。

实施例九:

本申请实施例九还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述一种基于sdk动态水印的客户端合法性校验的方法的步骤。

基于上述分析可知,与现有技术中的静态标记的校验方法相比,本申请实施例提供的一种基于sdk动态水印的客户端合法性校验的方法,将客户端发送的水印生成请求中的客户端信息和第一时间戳通过随机选择的加密算法进行加密生成的动态水印,利用其动态、加密的校验方法能精确识别是否由真实客户端发起的请求,校验客户端的合法性,动态水印随机性高,不易被恶意客户端伪造、窃取、重放或者损坏,有效防止重放攻击。

本申请实施例所提供的进行一种基于sdk动态水印的客户端合法性校验的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1