CN104333562B - 数据包传输方法及装置 - Google Patents

数据包传输方法及装置 Download PDF

Info

Publication number
CN104333562B
CN104333562B CN201410705376.2A CN201410705376A CN104333562B CN 104333562 B CN104333562 B CN 104333562B CN 201410705376 A CN201410705376 A CN 201410705376A CN 104333562 B CN104333562 B CN 104333562B
Authority
CN
China
Prior art keywords
packet
identifying code
client
server end
reference information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410705376.2A
Other languages
English (en)
Other versions
CN104333562A (zh
Inventor
沈文策
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Financial Technology Co., Ltd.
Original Assignee
沈文策
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 沈文策 filed Critical 沈文策
Priority to CN201410705376.2A priority Critical patent/CN104333562B/zh
Publication of CN104333562A publication Critical patent/CN104333562A/zh
Application granted granted Critical
Publication of CN104333562B publication Critical patent/CN104333562B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network

Abstract

本发明实施例公开了数据包传输方法及装置,其中,所述方法包括:在与服务器端建立长连接后,确定当前待发送数据包;向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应。通过本发明,提高了网络数据通讯的安全性。

Description

数据包传输方法及装置
技术领域
本发明涉及网络数据通讯技术领域,特别涉及数据包传输方法及装置。
背景技术
随着信息技术的不断发展,网络数据通讯越来越便利,人们在生活中也越来越依赖网络通讯,各种各样的网站也随之兴起。其中一些网站服务器中提供的数据是公有数据,也即所有用户都可以访问,例如一些门户类的网站等。另外还有一些网站服务器则为用户提供了保存私有数据的功能,例如,社交网站、招聘网站等等。由于这类数据具有私有性,一般不需要也不应该被其他用户获知,因此,服务器可以分别为不同的用户开辟私有数据存储区,对各个用户的私有数据进行独立存储,并且只允许用户本人访问。
为了实现上述目的,这类网站服务器一般可以利用用户ID(Identity,身份标识号码)来区分不同的用户,具体的,用户可以在这类网站服务器中注册账号,相应的,网站服务器会分配给用户一个用户ID作为唯一的身份标识。当用户需要访问自己的私有数据时,可以使用该用户ID登陆网站服务器,与服务器建立长连接,然后再在该长连接中向服务器发送访问其私有数据的请求,以便获得在服务器中保存的私有数据。例如,通过在招聘网站服务器中注册账号,就可以利用这个账号在招聘网站中发布招聘信息,制作或者投递简历等等。
虽然通过用户ID的方式可以实现用户数据的私有化管理及访问,但是,在实际应用中,这种私有数据经常会面临被泄露的风险。例如,在客户端在访问其私有数据的过程中,可能会通过将其访问请求生成数据包,发送到服务器,服务器进行身份验证后,将响应数据生成响应数据包返回,在此期间,非法用户有可能截获到其中的数据包,通过分析数据包的格式等可以模拟出数据包,并且由于用户ID一般是由具有一定规则的字符串组成,因此,还可以通过穷举的方式试验出合法的用户ID,并以此伪装成合法用户,将模拟出来的数据包发送给服务器。,进而服务器就可以向这种非法用户返回相应的响应数据,使得非法用户获得这部分数据,从而造成私有数据的泄露。
总之,迫切需要本领域技术人员解决的技术问题就在于,如何降低私有数据被泄露的概率。
发明内容
基于上述问题,本发明实施例公开了数据包传输方法及装置,能够增加非法用户通过模拟数据包的方式来向服务器端骗取数据的难度,提高了网络数据通讯的安全性。技术方案如下:
一种数据包传输方法,包括:
在与服务器端建立长连接后,确定当前待发送数据包;
向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应。
可选地,每个长连接对应一个服务器端进程,服务器端在该进程中接收客户端在所述长连接中发送的数据包并进行校验;其中,在服务器端生成一个随机字符串后,在对应的进程中将该随机字符串保存为校验基准信息,以便在收到所述携带有第一验证码的数据包后,确定对应的进程,并从该进程中取出所述校验基准信息,与数据包中携带的第一验证码进行比对,以验证数据包的合法性。
可选地,还包括:
在与服务器端建立长连接后,首次发送数据包时,将预置的固定值作为第一验证码插入所述数据包中,并发送到服务器端,以便所述服务器端将所述固定值为校验基准信息,与数据包中携带的第一验证码进行对比,以验证数据包的合法性。
可选地,所述待发送数据包中包括包体,所述方法还包括:
确定待发送数据包包体长度,根据包体长度以及预置的算法计算得出第二验证码;
向所述数据包中插入所述第二验证码,以便服务器端在接收数据包之后,确定数据包包体长度,并根据包体长度以及与客户端同样的算法计算得到一数值,通过对比该数值与第二验证码是否一致,确定数据包的合法性。
一种数据包传输方法,包括:
在与客户端建立长连接后,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
判断所述数据包中的第一验证码与所述校验基准信息是否一致;
若一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
可选地,还包括:
接收到所述数据包后,判断所述数据包是否为与客户端建立长连接后首次发送的数据包,其中,所述首次发送的数据包中的第一验证码为预置的固定值;
若是,将预置的固定值作为所述校验基准信息。
可选地,还包括:
对同一客户端连续使用固定值作为第一验证码的次数进行监控;当所述次数达到预置阈值时,将该客户端对应的用户确定为非法用户。
可选地,算法得到第二验证码,将所述第二验证码插入数据包中,并发送给服务器端;所述方法还包括:
确定所述数据包包体长度,根据包体长度以及预置的与客户端同样的算法计算得到一数值;
在返回响应之前,判断所述数值与所述第二验证码是否一致;
若所述第一验证码与所述校验基准信息一致,并且所述第二验证码与所述数值一致,则返回响应,并生成随机字符串返回给客户端。
一种数据包传输装置,包括:
待发送数据包确定单元,用于在与服务器端建立长连接后,确定当前待发送数据包;
第一验证码插入单元,用于向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
数据包发送单元,用于发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应。
一种数据包传输装置,包括:
数据包接收单元,用于在与客户端建立长连接后,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
校验基准信息确定单元,用于确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
第一验证码校验单元,用于判断所述数据包中的第一验证码与所述校验基准信息是否一致;
随机字符串生成单元,用于若所述第一验证码与所述校验基准信息一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
校验基准信息储存单元,用于在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明实施例,客户端在每次向服务器端发送数据包时,都可以在数据包中插入一验证码,该验证码是由服务器端在收到上一个数据包后随机生成的,服务器在收到数据包之后,可以用这种验证码对用户合法性进行校验。也就是说,客户端每次发送的数据包中携带的验证码都是不同的。即使当非法用户截获到携带有验证码的数据包后,模拟出含有相同验证码的数据包,发送给服务器端,由于服务器端的校验基准信息是在不断变化的,服务器端对客户端每次发送的数据包的校验基准信息都是不一样的,所以发送该模拟数据包的用户会被服务器端判定为非法用户,不再向该非法用户返回响应,从而增加非法用户通过模拟数据包的方式来向服务器端骗取数据的难度,提高了网络数据通讯的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的方法的流程图;
图2是本发明实施例提供的另一方法的流程图;
图3是本发明实施例提供的第一装置的示意图;
图4是本发明实施例提供的第二装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的发明人在实现本发明的过程中发现,之所以会有非法用户模拟数据包从服务器骗取私密信息的问题出现,主要的原因在于:在客户端访问服务器端过程中,客户端可能会将访问请求生成数据包,再发送给服务器端,服务器端接收到数据包后,对数据包进行验证,校验通过后将响应数据返回。其中,数据包一般包括包头和包体,包体中包含访问请求消息等数据,包头中包含按照预置的通讯协议构建的字段信息和包体长度等一些与包体信息相关的数据等等。通讯协议字段里包含有访问用户等私有信息的ID、服务器地址等。当非法用户在截获到数据包后,可以对数据包进行一些分析,例如,数据包的格式,数据包中各字段所代表的含义,用户ID等。一旦非法用户获知了这些信息,就可以模拟数据包,发送给服务器来骗取数据。例如,非法用户获知了数据包中代表用户ID的字符,由于用户ID一般都是有限个字符组成的字符串,所以,非法用户可以通过穷举等方式仿制用户ID,发送给服务器,一旦ID命中,那么服务器就有可能返回被命中ID的用户的数据,造成用户数据的泄露。又由于,数据包格式大部分比较公知,又比较简单,非法用户不用做太多的分析就能够了解数据包的信息,同时,服务器端验证也很简单,对数据包的格式要求较低,非法用户发送的模拟数据包很容易蒙混过关,使服务器端返回响应,进而导致了服务器端用户私密数据信息被非法用户窃取,网络数据通讯的安全问题比较严重。
为了解决上述问题,本实施例提供一种数据包传输的方法。该方法可以在客户端发送给服务器端的数据包中插入验证码,该验证码可以是每次服务器端接收到客户端发送的合法数据包后,生成随机字符串返回给客户端的,并且,在当前数据包中插入的验证码,是服务器端上一次接收到合法数据包后,生成的随机字符串发送给客户端的。也就是说,验证码每次都是不同的。当服务器端接收到客户端发送的数据包时,需要根据校验基准信息对数据包中的验证码进行校验。其中校验基准信息可以是服务器端上一次接收到合法数据包后,生成的随机字符串。
由于数据包中的验证码每次都是不同的,并且是服务器端提供的随机字符串,大大增加了数据包被非法用户模拟的难度。同时服务器端在验证数据包信息时,也是用这个随机字符串来校验,所以,每次的校验基准信息都是不一样的。这样也提高了服务器端数据包验证的要求,增加了非法用户窃取用户隐私数据的难度。例如,数据包被非法用户截获,获知了数据包信息,并用穷举的方式仿制了用户ID,复制了验证码,发送给服务器端后,由于校验基准信息已经改变,所以服务器会判定该数据包为非法用户发送的数据包。即使验证码也被穷举,由于每次在非法用户发送数据包的同时,服务器端的校验基准信息也在不断的变化,所以被命中的概率非常的小,从而提高了网络数据通讯的安全性。
下面对具体实现方式进行如下介绍。
实施例一
参见图1所示,图1是本实施例提供的一种数据包传输方法的流程图。其中,客户端在访问服务器端数据时,需要建立长连接,在长连接建立后,本实施例还需做如下步骤:
步骤101,确定当前待发送数据包;
步骤102,向所述数据包中插入第一验证码,该第一验证码可以由服务器端提供,其中,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
步骤103,发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应。
通过本实施例可以有效的降低数据包被模仿并从客户端骗得数据的几率,从而提高了网络数据通讯的安全性。
例如,客户端与服务器端根据TCP协议(Transmission Control Protocol,传输控制协议)进行通信时,数据包包头中除了现有技术中协议需要的字段外,客户端还可以增加一个校验字段,该校验字段是与服务器端协议好的,该字段的值是一个名为seckey的验证码,该验证码即为步骤102中的第一验证码,是由服务器端生成的随机字符串。当客户端与服务器端建立长连接后,服务器端可以生成seckey0,并将seckey0发送给客户端;客户端将接收到的seckey0后,插入到预先协议好的位置中,并发送给服务器端;服务器端接收到数据包后,进行验证,比对数据包中的seckey是不是与之前发送给客户端的seckey0一致;如果一致,返回响应,并再生成一个随机字符串seckey1,发送给客户端;客户端继续发送数据包时,将接收到的seckey1插入到要发送的数据包中,发送给服务器端;服务器端接收到后,进行验证,比对数据包中的seckey是不是与之前发送给客户端的seckey1一致;若一致,返回响应,并生成seckey2,发送给客户端;这样以此类推,直到连接断开。数据包如果被非法用户抓取,例如,包含seckey2的数据包,非法用户通过分析得知了包含seckey2的数据包的格式,模拟出包含seckey2的数据包,非法用户也要与服务器建立连接,然后将模拟出的数据包发送给服务器端,服务器端会用seckey0对数据包进行验证,显然seckey0与seckey2不一致,服务器端会认定该数据包为非法用户发送的数据包,并可以将该用户屏蔽。从而防止了非法用户从服务器端骗取到数据,保证了用户私有数据的安全。
在具体应用中,可能会有多个用户访问服务器,而服务器发给每个用户的验证码也可能是多个,所以可能会有数据混乱的情况出现,影响正常的数据传输。
为了解决上述这个问题,本实施例可以在服务器端给每个用户建立进程。其中,每个长连接对应一个服务器端进程,服务器端可以在该进程中接收客户端在所述长连接中发送的数据包并进行校验;其中,在服务器端生成一个随机字符串后,在对应的进程中将该随机字符串保存为校验基准信息,以便在收到所述携带有第一验证码的数据包后,确定对应的进程,并从该进程中取出所述校验基准信息,与数据包中携带的第一验证码进行比对,以验证数据包的合法性。
这样,每个长连接中的数据包都是在各自的进程中进行校验的,并且,校验基准信息也是储存在各自的进程中,这样就有效的避免了信息出现混乱,进而让数据传输有序进行。
在具体实施时,客户端与服务器端建立长连接后,客户端发送首个数据包时,其中的第一验证码也可以是服务器端发送过来的,例如,服务器端在为某个客户端建立长连接之后,首先生成一随机字符串,保存为校验基准信息,并发送给该客户端,以便客户端在发送数据包时使用。。
或者,在另一种实现方式下,客户端在与服务器端建立长连接后,首次发送数据包时,还可以将预置的固定值作为第一验证码插入所述数据包中,并发送到服务器端,这样服务器端在收到数据包之后,可以首先判断是否为同一次长连接中首次发送的数据包,如果是,在可以用固定值作为校验基准信息,与数据包中携带的第一验证码进行对比,以验证数据包的合法性。
但是,如果预置的固定值被非法用户获取,非法用户就可以每次发送数据包时都重新建立连接,并且发送携带有预置固定值的模拟数据包,来骗取数据。为了使固定值更安全,本实施例还可以按照预置的周期,对预置固定值进行修改。降低了固定值泄露的可能。
另外,为了进一步增加数据包的安全性,本实施例中还可以在数据包中添加第二校验字段,第二校验字段的值为第二验证码。具体实现时,客户端所要执行的操作步骤可以如下:
确定待发送数据包包体长度,根据包体长度以及预置的算法计算得出第二验证码;
向所述数据包中插入所述第二验证码,以便服务器端在接收数据包之后,确定数据包包体长度,并根据包体长度以及与客户端同样的算法计算得到一数值,通过对比该数值与第二验证码是否一致,确定数据包的合法性。
由于预置的算法是有难易的,可以通过提高算法的难度来增加非法用于分析的成本,例如,预置的算法可以为MD5(Message-Digest Algorithm 5,信息-摘要算法第五版)。又因为对数据包的分析是需要时间的,数据的传输具有及时性,通过在数据包中添加第二校验字段,进一步增加了非法用户截获或抓取数据包后分析的时间,降低了数据包对于非法用户的价值,从而降低非法用户从服务器骗取数据的机会,提高了数据通讯的安全性。
综上所述,通过本发明实施例,增加了用户模拟数据包的成本,降低了用户通过模拟数据包的方式从服务器端骗取用户私密数据的可能,进而,提高了网络数据通讯的安全性。
实施例二
由于在实施例一具体实施过程中,服务器端需要有相对应的程序,才能够与客户端进行数据通讯。如图2所示,图2示出了本实施例提供的另一种数据包传输方法的流程图。其中在客户端与服务器端建立长连接后,服务器端还需要进行如下步骤:
步骤201,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
步骤202,确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
步骤203,判断所述数据包中的第一验证码与所述校验基准信息是否一致;
步骤204,若一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
步骤205,在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
由于判定第一验证码与校验基准信息是否一致时,还包括不一致的情况,所以上述步骤还可以包括:若所述数据包中的第一验证码与所述校验基准信息不一致,则确定对应的用户为非法用户。
为了节省资源,降低数据通讯的成本,同时又保证不降低提高网络数据通讯的安全的效果,本实施例步骤204中,还可以将随机字符串携带在响应信息中返回给客户端。
由实施例一可以知道,为了避免客户端发送首个数据包时,非法用户截获服务器端发送的用于首次通讯的验证码,同时使数据传输的步骤更简洁,客户端将预定的固定值作为首次发送数据包的第一验证码。服务器端为了能够验证建立长连接后客户端发来的首个数据包,本实施例还可以包括如下步骤:
接收到所述数据包后,判断所述数据包是否为与客户端建立长连接后首次发送的数据包,其中,所述首次发送的数据包中的第一验证码可以为预置的固定值;
若是,将预置的固定值作为所述校验基准信息。
其中,预置的固定值是可以在预置的时间周期里进行更换,这样确保了预置固定值的安全性。
为了进一步提高预置固定值的安全性,本实施例还可以包括:
对同一客户端连续使用固定值作为第一验证码的次数进行监控;当所述次数达到预置阈值时,将该客户端确定为非法用户。
这样非法用户就不能够用预置固定值来多次的向服务器端骗取数据,降低了预置的固定值对于非法用户的价值。
由实施例一可知,为了增加非法用户截获或抓取数据包后分析的时间,降低了数据包对于非法用户的价值,从而降低非法用户从服务器骗取数据的机会,提高数据通讯的安全性,实施例一还可以在数据包中插入了第二验证码。本实施例为了对第二验证码进行校验,还可以包括:
确定所述数据包包体长度,根据包体长度以及预置的与客户端同样的算法计算得到一数值;
在返回响应之前,判断所述数值与所述第二验证码是否一致;
若所述第一验证码与所述校验基准信息一致,并且所述第二验证码与所述数值一致,则返回响应,并生成随机字符串返回给客户端。
客户端发送给服务器端的数据包,无论第一验证码与对应的校验信息不一致,还是第二验证码与服务器端计算的值不易值,服务器端都会认为该数据包为非法数据包,将该数据包丢弃,同时还可以将发送这个数据包的客户端屏蔽掉,这样非法用户就不能够再通过这个客户端来向服务器骗取数据了。
综上所述,通过本发明实施例,降低了非法用户通过模拟的数据包从服务器来骗取数据,保护了用户在服务器端的私密数据,从而提高了网络数据通讯的安全。
需要说明的是,上述实施例二与实施例一是相对应的,具体的实现细节可以参见实施例一中的介绍,这里不再赘述。
实施例三
与实施例一提供的数据包传输方法相对应,本发明实施例还提供了一种数据包传输装置,参见图3,该装置可以包括:
待发送数据包确定单元301,用于在与服务器端建立长连接后,确定当前待发送数据包;
第一验证码插入单元302,用于向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
数据包发送单元303,用于发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应。
其中,每个长连接对应一个服务器端进程,服务器端在该进程中接收客户端在所述长连接中发送的数据包并进行校验;其中,在服务器端生成一个随机字符串后,在对应的进程中将该随机字符串保存为校验基准信息,以便在收到所述携带有第一验证码的数据包后,确定对应的进程,并从该进程中取出所述校验基准信息,与数据包中携带的第一验证码进行比对,以验证数据包的合法性。
为了使客户端与服务器端建立连接后发送首个数据包更简单,该装置还可以包括:
预置的固定值插入单元,用于在与服务器端建立长连接后,首次发送数据包时,将预置的固定值作为第一验证码插入所述数据包中,并发送到服务器端,以便所述服务器端将所述固定值为校验基准信息,与数据包中携带的第一验证码进行对比,以验证数据包的合法性。
其中,所述待发送数据包中包括包体,为了使数据包分析的难度更大,所述装置还可以包括:
第二验证码生成单元,用于确定待发送数据包包体长度,根据包体长度以及预置的算法计算得出第二验证码;
第二验证码插入单元,用于向所述数据包中插入所述第二验证码,以便服务器端在接收数据包之后,确定数据包包体长度,并根据包体长度以及与客户端同样的算法计算得到一数值,通过对比该数值与第二验证码是否一致,确定数据包的合法性。
实施例四
与实施例二提供的数据包传输方法相对应,本发明实施例还提供了一种数据包传输装置,参见图4,该装置可以包括:
数据包接收单元401,用于在与客户端建立长连接后,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
校验基准信息确定单元402,用于确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
第一验证码校验单元403,用于判断所述数据包中的第一验证码与所述校验基准信息是否一致;
随机字符串生成单元404,用于若所述第一验证码与所述校验基准信息一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
校验基准信息储存单元405,用于在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
为了验证实施例中客户端首次发送的携带有预置固定值的数据包,所述装置还可以包括:
首次发送的数据包判定单元,用于接收到所述数据包后,判断所述数据包是否为与客户端建立长连接后首次发送的数据包,其中,所述首次发送的数据包中的第一验证码为预置的固定值;
首次发送的数据包校验信息确定单元,用于若是首次发送的数据包,将预置的固定值作为所述校验基准信息。
为了保证固定值的安全性,所述装置还可以包括:
预置固定值使用次数监控单元,用于对同一客户端连续使用预置固定值作为第一验证码的次数进行监控;当所述次数达到预置阈值时,将该客户端对应的用户确定为非法用户。
其中,所述数据包包括包体,所述包体包括第二验证码,其中,客户端根据预置的算法得到第二验证码,将所述第二验证码插入数据包中,并发送给服务器端;所述装置还可以包括:
数值生成单元,用于确定所述数据包包体长度,根据包体长度以及预置的与客户端同样的算法计算得到一数值;
第二验证码校验单元,用于在返回响应之前,判断所述数值与所述第二验证码是否一致;
响应信息发送单元,用于若所述第一验证码与所述校验基准信息一致,并且所述第二验证码与所述数值一致,则返回响应,并生成随机字符串返回给客户端。
通过本发明实施例,客户端在每次向服务器端发送数据包时,都可以在数据包中插入一验证码,该验证码是由服务器端在收到上一个数据包后随机生成的,服务器在收到数据包之后,可以用这种验证码对用户合法性进行校验。也就是说,客户端每次发送的数据包中携带的验证码都是不同的。即使当非法用户截获到携带有验证码的数据包后,模拟出含有相同验证码的数据包,发送给服务器端,由于服务器端的校验基准信息是在不断变化的,服务器端对客户端每次发送的数据包的校验基准信息都是不一样的,所以发送该模拟数据包的用户会被服务器端判定为非法用户,不再向该非法用户返回响应,从而非法用户很难再通过模拟数据包的方式来向服务器端骗取数据,增加了网络数据通讯的安全。
对于系统或装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种数据包传输方法,其特征在于,包括:
在与服务器端建立长连接后,确定当前待发送数据包;
向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应;
每个长连接对应一个服务器端进程,服务器端在该进程中接收客户端在所述长连接中发送的数据包并进行校验;其中,在服务器端生成一个随机字符串后,在对应的进程中将该随机字符串保存为校验基准信息,以便在收到所述携带有第一验证码的数据包后,确定对应的进程,并从该进程中取出所述校验基准信息,与数据包中携带的第一验证码进行比对,以验证数据包的合法性。
2.根据权利要求1所述的方法,其特征在于,还包括:
在与服务器端建立长连接后,首次发送数据包时,将预置的固定值作为第一验证码插入所述数据包中,并发送到服务器端,以便所述服务器端将所述固定值为校验基准信息,与数据包中携带的第一验证码进行对比,以验证数据包的合法性。
3.根据权利要求1所述的方法,其特征在于,所述待发送数据包中包括包体,所述方法还包括:
确定待发送数据包包体长度,根据包体长度以及预置的算法计算得出第二验证码;
向所述数据包中插入所述第二验证码,以便服务器端在接收数据包之后,确定数据包包体长度,并根据包体长度以及与客户端同样的算法计算得到一数值,通过对比该数值与第二验证码是否一致,确定数据包的合法性。
4.一种数据包传输方法,其特征在于,包括:
在与客户端建立长连接后,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
判断所述数据包中的第一验证码与所述校验基准信息是否一致;
若一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收到所述数据包后,判断所述数据包是否为与客户端建立长连接后首次发送的数据包,其中,所述首次发送的数据包中的第一验证码为预置的固定值;
若是,将预置的固定值作为所述校验基准信息。
6.根据权利要求4所述的方法,其特征在于,还包括:
对同一客户端连续使用固定值作为第一验证码的次数进行监控;当所述次数达到预置阈值时,将该客户端对应的用户确定为非法用户。
7.根据权利要求4所述的方法,其特征在于,所述数据包包括包体,所述包体包括第二验证码,其中,客户端根据预置的算法得到第二验证码,将所述第二验证码插入数据包中,并发送给服务器端;所述方法还包括:
确定所述数据包包体长度,根据包体长度以及预置的与客户端同样的算法计算得到一数值;
在返回响应之前,判断所述数值与所述第二验证码是否一致;
若所述第一验证码与所述校验基准信息一致,并且所述第二验证码与所述数值一致,则返回响应,并生成随机字符串返回给客户端。
8.一种数据包传输装置,其特征在于,包括:
待发送数据包确定单元,用于在与服务器端建立长连接后,确定当前待发送数据包;
第一验证码插入单元,用于向所述数据包中插入第一验证码,其中,所述第一验证码由服务器端提供,服务器端每次收到一个合法数据包之后均生成随机字符串,并返回给客户端,以便客户端在同一次长连接中需要再次向服务器端发送数据包时,将发送完上一个数据包后从服务器端收到的随机字符串作为第一验证码插入所述当前数据包;
数据包发送单元,用于发送携带有所述第一验证码的数据包给所述服务器端,以便所述服务器端利用同一长连接中上次生成的随机字符串,对所述数据包携带的第一验证码进行校验,校验通过后返回响应;
其中,每个长连接对应一个服务器端进程,服务器端在该进程中接收客户端在所述长连接中发送的数据包并进行校验;其中,在服务器端生成一个随机字符串后,在对应的进程中将该随机字符串保存为校验基准信息,以便在收到所述携带有第一验证码的数据包后,确定对应的进程,并从该进程中取出所述校验基准信息,与数据包中携带的第一验证码进行比对,以验证数据包的合法性。
9.一种数据包传输装置,其特征在于,包括:
数据包接收单元,用于在与客户端建立长连接后,接收客户端当前发送的数据包,所述数据包包括第一验证码;其中,所述第一验证码是服务器端在同一次长连接中收到上一个数据包之后生成并返回给客户端的随机字符串;
校验基准信息确定单元,用于确定为该客户端建立的长连接所在的进程,并从该进程中取出校验基准信息;所述校验基准信息是在同一次长连接中收到上一个数据包之后生成并保存的随机字符串;
第一验证码校验单元,用于判断所述数据包中的第一验证码与所述校验基准信息是否一致;
随机字符串生成单元,用于若所述第一验证码与所述校验基准信息一致,则返回响应,并生成随机字符串返回给客户端,以便客户端在发送下一个数据包时,将该随机字符串作为第一验证码插入到数据包中;
校验基准信息储存单元,用于在当前长连接对应的进程中,将所述生成的随机字符串保存为校验基准信息,以便在收到客户端的下一个数据包时,利用该校验基准信息对所述下一个数据包进行合法性验证。
CN201410705376.2A 2014-11-27 2014-11-27 数据包传输方法及装置 Active CN104333562B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410705376.2A CN104333562B (zh) 2014-11-27 2014-11-27 数据包传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410705376.2A CN104333562B (zh) 2014-11-27 2014-11-27 数据包传输方法及装置

Publications (2)

Publication Number Publication Date
CN104333562A CN104333562A (zh) 2015-02-04
CN104333562B true CN104333562B (zh) 2017-11-03

Family

ID=52408213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410705376.2A Active CN104333562B (zh) 2014-11-27 2014-11-27 数据包传输方法及装置

Country Status (1)

Country Link
CN (1) CN104333562B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954386B (zh) * 2015-06-30 2018-10-02 百度在线网络技术(北京)有限公司 一种网络反劫持方法及装置
EP3328014A4 (en) * 2015-08-25 2018-08-29 Huawei Technologies Co., Ltd. Data packet transmission method, apparatus, node device, and system
CN106850502A (zh) * 2015-12-04 2017-06-13 阿里巴巴集团控股有限公司 基于长连接的业务请求转发方法、存储方法、装置及系统
CN106713328A (zh) * 2016-12-29 2017-05-24 北京奇虎科技有限公司 一种基于长连接的信息处理方法和装置
CN107733875A (zh) * 2017-09-21 2018-02-23 深圳市盛路物联通讯技术有限公司 一种数据传输方法及系统
CN107846400A (zh) * 2017-10-20 2018-03-27 国信嘉宁数据技术有限公司 一种数据保全的方法、装置和系统
CN107819768B (zh) * 2017-11-15 2020-07-31 厦门安胜网络科技有限公司 服务端主动断开非法长连接的方法、终端设备及存储介质
CN108965309B (zh) * 2018-07-27 2021-02-12 腾讯科技(深圳)有限公司 一种数据传输处理方法、装置、系统及设备
CN112152964A (zh) * 2019-06-26 2020-12-29 中兴通讯股份有限公司 网络攻击防御方法、装置、接收设备及计算机存储介质
CN114257421A (zh) * 2021-11-30 2022-03-29 企查查科技有限公司 请求验证方法、装置、计算机设备、存储介质
CN116866008A (zh) * 2023-06-15 2023-10-10 北京志凌海纳科技有限公司 一种超融合架构下的系统网络安全保障装置及方法
CN117041305B (zh) * 2023-10-10 2024-01-23 成都秦川物联网科技股份有限公司 基于物联网的气体流量计离线数据管理方法、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424736B2 (en) * 2004-03-10 2008-09-09 Combrio, Inc. Method for establishing directed circuits between parties with limited mutual trust
CN101741823B (zh) * 2008-11-12 2013-01-16 北京大学 一种交叉验证的安全通讯方法及系统
CN102045325B (zh) * 2009-10-13 2014-02-05 北京搜狗科技发展有限公司 一种基于网络通信的输入方法及系统
CN103001973B (zh) * 2012-12-26 2016-08-31 百度在线网络技术(北京)有限公司 基于二维码的登录控制方法、系统和装置
CN103067385B (zh) * 2012-12-27 2015-09-09 深圳市深信服电子科技有限公司 防御会话劫持攻击的方法和防火墙

Also Published As

Publication number Publication date
CN104333562A (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
CN104333562B (zh) 数据包传输方法及装置
CN107864115A (zh) 一种利用便携式终端进行用户账号登录验证的方法
CN105119722B (zh) 一种身份验证方法、设备及系统
Bowen et al. Automating the injection of believable decoys to detect snooping
Gelernter et al. Cross-site search attacks
CN107465651A (zh) 网络攻击检测方法及装置
CN109039987A (zh) 一种用户账户登录方法、装置、电子设备和存储介质
CN105939326A (zh) 处理报文的方法及装置
CN106778260A (zh) 攻击检测方法和装置
Valluripally et al. Attack trees for security and privacy in social virtual reality learning environments
CN109861968A (zh) 资源访问控制方法、装置、计算机设备及存储介质
CN107196972A (zh) 一种认证方法及系统、终端和服务器
CN106161453A (zh) 一种基于历史信息的SSLstrip防御方法
CN107395553A (zh) 一种网络攻击的检测方法及装置
Cisar et al. Some ethical hacking possibilities in Kali Linux environment
CN109756460A (zh) 一种防重放攻击方法及装置
CN110417747A (zh) 一种暴力破解行为的检测方法及装置
CN107733853A (zh) 页面访问方法、装置、计算机和介质
CN111131303A (zh) 一种请求数据的校验系统和方法
CN113468075A (zh) 一种服务器端软件的安全测试方法和系统
CN106713362A (zh) 一种对wifi接入上网实现安全审查的方法
CN107196906A (zh) 一种安全域网络接入控制方法及系统
CN101888296B (zh) 一种影子用户检测方法、装置、设备和系统
CN106209907A (zh) 一种检测恶意攻击的方法及装置
CN109495458A (zh) 一种数据传输的方法、系统及相关组件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180911

Address after: 100020 15 Guanghua Road, Chaoyang District, Beijing, 15A6 15

Patentee after: Beijing Financial Technology Co., Ltd.

Address before: 350003 Fujian Fuzhou Software Park, A 25, CICC.

Patentee before: Shen Wence