一种数据传输的方法、系统及相关组件与流程

文档序号:17158719发布日期:2019-03-20 00:20阅读:139来源:国知局
一种数据传输的方法、系统及相关组件与流程

本申请涉及网络通信技术领域,特别涉及一种数据传输的方法、系统,一种数据获取的方法、系统,一种计算机可读存储介质及一种数据交互系统。



背景技术:

随着互联网、物联网的快速发展,人们的日常生活中每天都使用到网络进行数据通讯,比如在电脑上使用浏览器访问各种网站、在网上商城购买商品,在手机上使用微信、支付宝等应用软件进行手机支付,以及在各种能够连上网络的如智能家居、安防监控等终端产品上,都会有大量的重要数据在网络上传输,所以这些数据都需要经过十分严格的加密流程进行保护,而所有这些保护措施的背后,都需要投入大量的人力、财力、物力才能实现。

在互联网通信领域中,服务器与客户端之间通过网络进行数据的传输,而由于这些数据的传输是按照指定的协议进行,因此通常有固定的格式。如果有攻击者利用木马程序、网络嗅探、网络抓包等手段,获取到这些在网络上传输的数据,经过整理、分析,很有可能总结出其中的规律,破解出这些通信协议的格式,从而按照这些协议,伪造攻击者自己恶意的请求数据包发送给服务器,最终造成服务器的数据泄漏、被篡改、被删除等严重后果。

因此,如何防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种数据传输的方法、系统,一种数据获取的方法、系统,一种计算机可读存储介质及一种数据交互系统,能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

为解决上述技术问题,本申请提供一种数据传输的方法,应用于服务器端,该方法包括:

当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;

判断key校验信息是否正确;

若是,则向客户端传输请求数据对应的数据包。

可选的,在获取请求数据中的key校验信息之前,还包括:

当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;

对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

可选的,生成与客户端对应的原始token信息,具体包括:

判断客户端是否为首次登录;

若是,则生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;

若否,则获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

可选的,判断key校验信息是否正确,具体包括:

获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;

通过信息摘要生成算法对组合信息进行处理得到标准key值;

判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

本申请还提供了一种数据传输的系统,应用于服务器端,该系统包括:

信息获取模块,用于当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;

判断模块,用于判断key校验信息是否正确;

传输模块,用于当key校验信息正确时,向客户端传输请求数据对应的数据包。

可选的,该系统还包括:

token信息生成模块,用于当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;

token信息加密模块,用于对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

可选的,token信息生成模块具体用于判断客户端是否为首次登录;若是,则生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;若否,则获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

可选的,判断模块具体包括:

组合单元,用于获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;

标准key值获取单元,用于通过信息摘要生成算法对组合信息进行处理得到标准key值;

key值判断单元,用于判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

本申请还提供了一种数据获取的方法,应用于客户端,该方法包括:

向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;

根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;

将请求数据发送至服务器端,以便获取请求数据对应的数据包。

可选的,根据加密token信息生成key校验信息,具体包括:

通过信息摘要生成算法对加密token信息和请求参数进行处理得到key校验信息。

本申请还提供了一种数据获取的系统,应用于客户端,该系统包括:

登录模块,用于向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;

请求生成模块,用于根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;

数据获取模块,用于将请求数据发送至服务器端,以便获取请求数据对应的数据包。

可选的,请求生成模块具体为通过信息摘要生成算法对加密token信息进行处理得到key校验信息,并根据key校验信息和请求参数生成请求数据的模块。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序执行时实现上述数据传输的方法和/或数据获取的方法执行的步骤。

本申请还提供了一种数据交互系统,包括:

服务器端,用于当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;还用于判断key校验信息是否正确;若是,则向客户端传输请求数据对应的数据包;

客户端,用于向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;还用于根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;还用于将请求数据发送至服务器端,以便获取请求数据对应的数据包。

本申请提供了一种据传输的方法,应用于服务器端,包括当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;还用于判断key校验信息是否正确;若是,则向客户端传输请求数据对应的数据包。

本申请在服务器端向客户端发送数据包之前,首先对key校验信息进行校验,只有校验通过才能够发送数据包。key校验信息是根据服务端生成的加密token信息生成的可以通过判断key校验信息是否正确,来判断是否存在伪造、恶意请求数据包的状况。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本申请能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。本申请同时还提供了一种数据传输的系统、一种数据获取的方法、一种计算机可读存储介质和数据交互系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种数据传输的方法的流程图;

图2为本申请实施例所提供的另一种数据传输的方法的流程图;

图3为本申请实施例所提供的一种数据传输的系统的结构示意图;

图4为本申请实施例所提供的一种数据获取的方法的流程图;

图5为本申请实施例所提供的一种数据获取的系统的结构示意图;

图6为本申请实施例提供的一种服务器端的结构图;

图7为本申请实施例提供的另一种服务器端的结构图;

图8为本申请实施例提供的一种客户端的结构图;

图9为本申请实施例提供的另一种客户端的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种数据传输的方法的流程图。

具体步骤可以包括:

s101:当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;

其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成。本步骤的目的在于获取请求数据中的key校验信息,本实施例的执行主体为服务器端,在本步骤之前默认存在客户端登录服务器端的步骤。值得注意的是key校验信息是客户端根据加密token信息生成的,而加密token信息是服务器端根据客户端的身份信息生成,因此本步骤中提到的key校验信息可以作为校验客户端身份的信息。

需要说明的是,计算机身份认证中token意为令牌,在一些数据传输之前,要先进行token信息的核对,不同的token信息被授权不同的数据操作。由于加密token信息是服务器端根据客户端的身份信息生成的,因此加密token信息与客户端是唯一对应的。本步骤默认当服务器端为客户端生成加密token信息后,客户端会将加密token信息进行存储,在客户端向服务器端发送请求参数之前,客户端会根据加密token信息生成key校验信息,根据key校验信息和请求参数得到请求数据。因此,在服务器端收到请求数据后,对请求数据进行解析得到key校验信息,以便判断key校验信息是否正确。由于客户端利用加密token信息与传递的参数组合起来形成key校验信息,并且需要把加密token发送信息给client模块,服务器端和客户端都需要同步,使用相同的加密token才能得到相同的key校验信息,对于伪造的非法请求,key校验不会通过,因此可以有效的防止伪造数据请求信息。

s102:判断key校验信息是否正确;若是,则进入s103;若否,则结束流程;

其中,由于本实施例默认客户端利用加密token信息与传递的参数组合起来形成key校验信息,并且需要把加密token发送信息给客户端,只有使用相同的加密token才能得到相同的key校验信息,对于伪造的非法请求,key校验不会通过,因此可以有效的防止伪造数据请求信息。

可以理解的是,用于生成key校验信息的是加密token信息,即经过加密处理后的token信息。假使攻击者出根据通信协议的格式,从而按照这些协议,伪造攻击者自己恶意的请求数据包发送给服务器,但是由于攻击值不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在。因此,可以通过判断key校验信息是否正确来判断请求数据是否安全。

作为一种优选的实施方式,判断key校验信息是否正确的过程可以包括以下步骤:

步骤1、获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;

其中,本步骤中提到的请求数据的生成过程具体为:客户端将请求参数和key校验信息进行组合得到请求数据。因此,本步骤首先将请求数据进行拆分得到请求参数和key校验信息,本步骤将正确的加密token信息与请求参数进行组合得到组合信息,以便利用组合信息得到标准key值。

步骤2、通过md5信息摘要生成算法对组合信息进行处理得到标准key值;

其中,本实施例默认客户端是对请求参数和加密token信息进行md5信息摘要生成算法得到的key校验信息,因此本步骤中同样通过md5信息摘要生成算法对组合信息进行处理得到标准key值,若key校验信息与标准key值不一致则说明请求数据是伪造的。

步骤3、判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

s103:向客户端传输请求数据对应的数据包。

本实施例在服务器端向客户端发送数据包之前,首先对key校验信息进行校验,只有校验通过才能够发送数据包。key校验信息是根据服务端生成的加密token信息生成的可以通过判断key校验信息是否正确,来判断是否存在伪造、恶意请求数据包的状况。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

下面请参见图2,图2为本申请实施例所提供的另一种数据传输的方法的流程图;

具体步骤可以包括:

s201:当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;

作为一种优选的实施方式,s201可以包括以下步骤:

步骤1、判断客户端是否为首次登录;若是,则进入步骤2;若否,则进入步骤3;

步骤2、生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;

步骤3、获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

上述优选的实施方式中,生成sn(serialnumber,产品序列号)的作用与实现是:每当有一个新的客户端成功登录,就生成一个新的sn。如果是已经分配有sn的客户端登录,则不再新生成,使用已经分配的即可。因此每个sn对应一个登录成功的客户端,保存在一个列表形式的数据库里,用来提供查询一一对应的关系,查找到一个sn,就可以找到对应的token;如001对应abc、002对应def…

为了保证登录的生命周期、有效性,本实施例只记录最后一次登录所产生的token到列表里,因此同一个客户端在第二次登录成功后,上一次的token值将会失效。例如sn=001的客户端本次登录产生的token=abc,下一次登录所产生的token=fff,那么之前使用“abc”所产生key信息将会无法通过验证,也就实现了就算被他人窃取到了所发送的请求数据流,在重新登录后,被窃取的数据流key已经失效、无法通过server模块的校验。

s202:对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

其中,由于原始token信息是在服务器端加密的,由服务器端传输的都是加密token信息,因此在整个过程中,在网络的应用层阶段就已经加密,无论是木马程序、网络嗅探、网络抓包,都无法窃取到真正的token明文提升了数据传输的安全性。

s203:当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;

s204:获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;

s205:通过信息摘要生成算法对组合信息进行处理得到标准key值;本申请中不对信息摘要生成算法进行具体的限定,包括md5、md2的md(消息摘要,messagedigest)方式,还可以选用sha1、sha-224、sha-384、sha-512的安全哈希算法sha方式,但在本申请一个优选的实施例中采用md5的信息摘要生成算法。

s206:判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确并进入s207;若不一致,则判定key校验信息错误并结束流程。

s207:向客户端传输请求数据对应的数据包。

本实施例中key验证信息的生成与保护机制,有效的识别伪造的非法请求数据。由于生成key校验码的算法只在客户端中发生,攻击者无法根据窃取的数据流信息伪造该key校验码的值。本实施例涉及的算法所依赖的token(令牌)在离开server装置的时候就以加密的形式存在,直到到达客户端,才会解密得到正确的值,使得攻击者无法伪造自己的key校验码值,本实施例能够很好的实现了网络通信的安全性。

请参见图3,图3为本申请实施例所提供的一种数据传输的系统的结构示意图;

该系统可以包括:

信息获取模块301,用于当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;

判断模块302,用于判断key校验信息是否正确;

传输模块303,用于当key校验信息正确时,向客户端传输请求数据对应的数据包。

本实施例在服务器端向客户端发送数据包之前,首先对key校验信息进行校验,只有校验通过才能够发送数据包。key校验信息是根据服务端生成的加密token信息生成的可以通过判断key校验信息是否正确,来判断是否存在伪造、恶意请求数据包的状况。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

可选的,该系统还包括:

token信息生成模块,用于当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;

token信息加密模块,用于对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

可选的,token信息生成模块具体用于判断客户端是否为首次登录;若是,则生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;若否,则获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

可选的,判断模块302具体包括:

组合单元,用于获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;

标准key值获取单元,用于通过md5信息摘要生成算法对组合信息进行处理得到标准key值;

key值判断单元,用于判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

下面请参见图4,图4为本申请实施例所提供的一种数据获取的方法的流程图。

具体步骤可以包括:

s401:向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;

s402:根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;

其中,通过md5信息摘要生成算法对加密token信息和请求参数进行处理得到key校验信息。

s403:将请求数据发送至服务器端,以便获取请求数据对应的数据包。

本实施例在接收到服务器端发送的加密token信息后,利用加密token信息生成key校验信息,并将包括有key校验信息的请求数据发送至服务器端,以便服务器端根据key校验信息判断请求数据的真伪。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

下面请参见图5,图5为本申请实施例所提供的一种数据获取的系统的结构示意图。

具体步骤可以包括:

登录模块501,用于向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;

请求生成模块502,用于根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;

其中,通过md5信息摘要生成算法对加密token信息和请求参数进行处理得到key校验信息。

数据获取模块503,用于将请求数据发送至服务器端,以便获取请求数据对应的数据包。

本实施例在接收到服务器端发送的加密token信息后,利用加密token信息生成key校验信息,并将包括有key校验信息的请求数据发送至服务器端,以便服务器端根据key校验信息判断请求数据的真伪。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

进一步的,请求生成模块502具体为通过md5信息摘要生成算法对加密token信息进行处理得到key校验信息,并根据key校验信息和请求参数生成请求数据的模块。

本申请还提供了一种数据交互系统,该数据交互系统包括服务器端和客户端;

参见图6,图6为本申请实施例提供的一种服务器端的结构图,服务器端的具体结构包括:

第一存储器110,用于存储计算机程序;

第一处理器120,用于执行计算机程序时可以实现上述数据传输的方法对应的实施例所提供的步骤。

具体的,第一存储器110包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。第一处理器120提供计算和控制能力,执行第一存储器110中保存的计算机程序时,可以实现以下步骤:当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;还用于判断key校验信息是否正确;若是,则向客户端传输请求数据对应的数据包。

本实施例在服务器端向客户端发送数据包之前,首先对key校验信息进行校验,只有校验通过才能够发送数据包。key校验信息是根据服务端生成的加密token信息生成的可以通过判断key校验信息是否正确,来判断是否存在伪造、恶意请求数据包的状况。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

优选的,第一处理器120执行第一存储器110中保存的计算机子程序时,可以实现以下步骤:当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

优选的,第一处理器120执行第一存储器110中保存的计算机子程序时,可以实现以下步骤:判断客户端是否为首次登录;若是,则生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;若否,则获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

优选的,第一处理器120执行第一存储器110中保存的计算机子程序时,可以实现以下步骤:获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;通过md5信息摘要生成算法对组合信息进行处理得到标准key值;判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

在上述实施例的基础上,作为优选实施方式,参见图7,图7为本申请实施例提供的另一种服务器端的结构图,服务器端还包括:

第一输入接口130,与第一处理器120相连,用于获取外部导入的计算机程序、参数和指令,经第一处理器120控制保存至第一存储器110中。该第一输入接口130可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

第一显示单元140,与第一处理器120相连,用于显示第一处理器120发送的数据。该第一显示单元140可以为pc机上的显示屏、液晶显示屏或者电子墨水显示屏等。

第一网络端口150,与第一处理器120相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

参见图8,图8为本申请实施例提供的一种客户端的结构图,客户端的具体结构包括:

第二存储器210,用于存储计算机程序;

第二处理器220,用于执行计算机程序时可以实现上述数据获取的方法对应的实施例所提供的步骤。

具体的,第二存储器210包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。第二处理器220提供计算和控制能力,执行第二存储器210中保存的计算机程序时,可以实现以下步骤:向服务器端发送登录认证信息,以便接收服务器端发送的加密token信息;还用于根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;还用于将请求数据发送至服务器端,以便获取请求数据对应的数据包。

本实施例在接收到服务器端发送的加密token信息后,利用加密token信息生成key校验信息,并将包括有key校验信息的请求数据发送至服务器端,以便服务器端根据key校验信息判断请求数据的真伪。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

优选的,第二处理器220执行第二存储器210中保存的计算机子程序时,可以实现以下步骤:通过md5信息摘要生成算法对加密token信息和请求参数进行处理得到key校验信息。

在上述实施例的基础上,作为优选实施方式,参见图9,图9为本申请实施例提供的另一种客户端的结构图,客户端还包括:

第二输入接口230,与第二处理器220相连,用于获取外部导入的计算机程序、参数和指令,经第二处理器220控制保存至第二存储器210中。该第二输入接口230可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

第二显示单元240,与第二处理器220相连,用于显示第二处理器220发送的数据。该第二显示单元240可以为pc机上的显示屏、液晶显示屏或者电子墨水显示屏等。

第二网络端口250,与第二处理器220相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

下面通过在实际应用中的实施例说明上述实施例描述的流程。

使用场景说明如下:

分别在客户端、服务器端增加了实现本实施例对应方法的模块,该模块的存在形式,可以是本地上保存、运行的软件模块,也可以是在云端运行,能够通过函数接口进行功能的调用。

客户端使用的模块是client版本(以下称为client模块);

服务器端使用的模块是server版本(以下称为server模块);

实现数据交互的步骤如下:

步骤1.当客户端需要服务时,首先发送认证信息如用户名、密码、验证码等登录服务器,并且获取token(令牌);

步骤2.服务器端收到登录请求,验证信息通过后,向server模块获取sn、token(令牌);

步骤3.服务器端把登录信息、加密的token(令牌)返回给客户端;

步骤4.客户端接收到登录成功的信息后,把该token保存到client模块;

步骤5.当客户端将要发起请求时,先把所需要发送的数据参数传入client模块,获取key校验信息,并且加入到发送数据参数当中;

步骤6.客户端通过网络,向服务器发送带key校验信息的数据,请求服务;

步骤7.服务器收到该请求后,先传入server模块进行数据的校验,如果校验通过,才会解释该请求,并且以适当的方式操作资源;

步骤8.校验、操作资源都通过后,返回数据给客户端,完成服务;

后续客户端所发出的每一个请求操作,都执行步骤5、6、7、8即可完成。

本实施例提供的装置,实现原理说明如下:

对于server模块,具有的功能是:生成sn、token(令牌)和校验数据;

生成sn的作用与实现是:每当有一个新的客户端成功登录,就生成一个新的sn。如果是已经分配有sn的客户端登录,则不再新生成,使用已经分配的即可。因此每个sn对应一个登录成功的客户端,保存在一个列表形式的数据库里,用来提供查询一一对应的关系,查找到一个sn,就可以找到对应的token;如001对应abc、002对应def…

生成token(令牌)的作用与实现是:与传递的参数组合起来形成key校验信息,并且需要把该token发送给client模块,两边都需要同步,使用相同的token才能得到相同的key校验信息,对于伪造的非法请求,key校验不会通过,因此可以有效的防止伪造数据请求信息。具体实现数据校验的方法在下文介绍。

token(令牌)具有生命周期,为了保证登录的生命周期、有效性,只记录最后一次登录所产生的token到列表里,因此同一个客户端在第二次登录成功后,上一次的token值将会失效。例如sn=001的客户端本次登录产生的token=abc,下一次登录所产生的token=fff,那么之前使用“abc”所产生key信息将会无法通过验证,也就实现了就算被他人窃取到了所发送的请求数据流,在重新登录后,被窃取的数据流key已经失效、无法通过server模块的校验。

基于上述的功能特点,校验数据的实现原理如下:

服务器端把收到的客户端请求参数,与对应的token组合起来,通过md5消息摘要生成算法生成key,对比客户端发过来的key,如果一致,则通过校验,表示数据没有被伪造、在有效期内。如果不一致,则校验失败,返回错误信息给客户端,无法提供服务器操作资源的服务。

具体的实现步骤为:

解析得到客户端发来的请求参数,如参数1、参数2、参数3…

在服务器端计算key校验信息:key=md5(参数1参数2参数3…token);

对比客户端发来的key,如果相同,则通过校验,不相同,则校验失败。

举例说明上述过程:

收到客户端发来的请求某用户的信息:

list=a.db&id=1001&key=0be6b766e34aa090c45204a7f7cbf441

在服务器端的校验:key=md5(a.db1001abc)

=0be6b766e34aa090c45204a7f7cbf441

其中,参数1=a.db,参数2=1001,token=abc,可以看到key一致,认证通过。

由于攻击者不知道key是采用何种算法、数据组合生成,也不知道有token的存在,因此,如果窃取到上述请求的数据流,想要进行伪造请求数据,也只能得到错误的key,示例攻击者伪造数据:

list=a.db&id=1002&key=0be6b766e34aa090c45204a7f7cbf441

服务器端收到、解析参数后,进行下列计算:

key=md5(a.db1002abc)=5442567e0ffabd51453c1caad61e8059

可以看出,客户端发来的key不等于服务器计算出来的key,校验不通过,伪造的请求被识破了,无法得到服务器的正常服务。

对于client模块,具有的功能是:保存token、获取key校验;

保存token:如上面的“token(令牌)的作用与实现”,客户端接收到服务器发来的token后,保存在client模块里,实现与server模块同步,提供后面的计算key使用。

获取key:客户端把将要发送的参数传入client模块,该装置按照如下算法计算出来key校验信息,最后一起传给服务器:

客户端将要发送的请求参数是:参数名1=值1&参数名2=值2&…

client模块计算key的方法:key=md5(值1值2token)

客户端最终发送的请求参数变成:参数名1=值1&参数名2=值2&…key=xxx

举例说明上述过程:

请求参数:list=a.db&id=1001

key=md5(a.db1001abc)=0be6b766e34aa090c45204a7f7cbf441

其中,参数1=a.db,参数2=1001,token=abc。

发送请求变成:

list=a.db&id=1001&key=0be6b766e34aa090c45204a7f7cbf441

其中,增加了key部分校验信息,如上,能够有效的防止攻击者伪造请求的数据,以及实现了有时效性,在下一次登录成功后,token的值已改变,该数据流已经无法再次重复使用。

本实施例安全性高,能够有效的识别、过滤攻击者伪造的非法请求数据;开发成本低,不需要购买硬件设备、不需要大量的人力、财力、物力就可以快速开发实现功能;调用形式灵活,可以做成本地上保存、运行的软件模块,也可以是在云端运行,能够通过远程接口函数进行功能的调用的形式。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有数据传输的方法对应的计算机程序和/或数据获取的方法对应的计算机程序,当数据传输的方法对应的计算机程序被处理器执行时实现以下步骤:当服务器端接收到客户端发送的请求数据时,获取请求数据中的key校验信息;其中,key校验信息通过客户端根据加密token信息生成,加密token信息由服务器端根据客户端的身份信息生成;还用于判断key校验信息是否正确;若是,则向客户端传输请求数据对应的数据包。

本实施例在服务器端向客户端发送数据包之前,首先对key校验信息进行校验,只有校验通过才能够发送数据包。key校验信息是根据服务端生成的加密token信息生成的可以通过判断key校验信息是否正确,来判断是否存在伪造、恶意请求数据包的状况。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

优选的,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:当客户端的登录认证信息通过身份校验时,生成与客户端对应的原始token信息;对原始token信息进行加密处理得到加密token信息,将加密token信息发送至客户端,以便客户端根据加密token信息生成key校验信息。

优选的,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:判断客户端是否为首次登录;若是,则生成与客户端唯一对应的sn码,生成与sn码对应的原始token信息;若否,则获取客户端对应的sn码,删除客户端上一次登录时生成的原始token信息,并生成与sn码对应的新的原始token信息。

优选的,计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:获取请求数据中的请求参数,将请求参数与加密token信息组合得到组合信息;通过md5信息摘要生成算法对组合信息进行处理得到标准key值;判断key校验信息与标准key值是否一致;若一致,则判定key校验信息正确;若不一致,则判定key校验信息错误。

当数据获取的方法对应的计算机程序被处理器执行时实现以下步骤:还用于根据加密token信息生成key校验信息,并根据key校验信息和请求参数生成请求数据;还用于将请求数据发送至服务器端,以便获取请求数据对应的数据包。

本实施例在接收到服务器端发送的加密token信息后,利用加密token信息生成key校验信息,并将包括有key校验信息的请求数据发送至服务器端,以便服务器端根据key校验信息判断请求数据的真伪。由于攻击者不知道key校验信息是采用何种算法、数据组合生成,也不知道加密token的存在,故即使攻击者窃取到数据流进行伪造请求数据,也只能得到错误的key。因此,本实施例能够防止伪造、恶意请求数据包破坏服务器数据库,提高网络通信的安全性。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:通过md5信息摘要生成算法对所述加密token信息和所述请求参数进行处理得到所述key校验信息。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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