CN111526126B - 数据安全传输方法,数据安全设备及系统 - Google Patents
数据安全传输方法,数据安全设备及系统 Download PDFInfo
- Publication number
- CN111526126B CN111526126B CN202010233242.0A CN202010233242A CN111526126B CN 111526126 B CN111526126 B CN 111526126B CN 202010233242 A CN202010233242 A CN 202010233242A CN 111526126 B CN111526126 B CN 111526126B
- Authority
- CN
- China
- Prior art keywords
- client
- data
- information
- server
- access
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开涉及一种用于数据安全设备数据安全传输方法,包括:接收客户端发送给服务器的第一数据,基于所述第一数据判断所述客户端是否有访问所述服务器的权限;当确定所述客户端不具有所述访问权限时,判断所述客户端是否是合法客户端;当判断所述客户端是合法客户端时,授予所述客户端所述访问权限。本公开实施例通过对客户端的访问权限和合法性进行判断,并授予访问权限,有效的阻挡泛洪攻击的同时,提升了防护的准确率,更具有普遍适用性。
Description
技术领域
本公开涉及一种数据安全传输方法,与该方法对应的数据安全设备以及数据安全系统。
背景技术
在TCP/IP(Transmission Control Protocol/Internet Protocol)协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。完成三次握手后,客户端与服务器可以开始传送数据。三次握手的建立连接机制可以保证数据的可靠传输,但是相应的,也给了攻击者以可乘之机。泛洪(SYN Flood)便是利用这一机制而广泛被攻击者采用的攻击方法之一。其攻击的核心思想就是短时间内向服务器发送大量TCP请求连接报文而不做后续回应,消耗服务器资源,从而没有资源响应正常用户对于该服务器的访问。
目前的泛洪防护技术是在收到TCP-syn(TCP synchronization)报文时,服务器回复一个syn-ack(synchronization-acknowledgement)报文,携带一个经由自己cookie计算出的确认号,客户端在收到服务器的这个syn-ack报文时检查确认号与已经发出的syn报文的序列号是否有关联,确认没有关联时则会回复一个重置(rst)报文关闭连接。通过检测这个rst响应报文来确认发起连接设备的合法性,用以甄别是否为攻击者伪造IP发起的访问。
然而,有些合法客户端不支持异常关闭功能,无法回复rst报文。这就导致了该合法客户端在发起连接访问服务器时,无法通过验证而被错误的拒之门外。
发明内容
本公开实施例提供了一种数据安全传输方法,数据安全设备及数据安全系统,以解决上述技术问题。
根据本公开至少一个实施例,提供了一种用于数据安全设备的数据安全传输方法,所述方法包括:接收客户端发送的访问服务器的第一数据,基于所述第一数据判断所述客户端是否有访问所述服务器的权限;当确定所述客户端不具有所述访问权限时,判断所述客户端是否是合法客户端;当判断所述客户端是合法客户端时,授予所述客户端所述访问权限。
根据前述任一实施例的方法,例如,还包括:在判断所述客户端为合法客户端时,发送重置信息给所述合法客户端,以通知所述客户端重新进行数据发送。
根据前述任一实施例的方法,例如,还包括:在确定所述客户端具有所述访问权限时,将所述客户端发送的数据转发给所述服务器。
根据前述任一实施例的方法,例如,所述判断所述客户端是否是合法客户端包括:分别获取所述第一数据以及所述客户端再次发送的第二数据;基于所述第一数据和所述第二数据判定发送第一数据和第二数据的客户端是否是同一客户端,当所述两个客户端为同一客户端时,判断所述客户端为合法客户端。
根据前述任一实施例的方法,例如,所述判断所述客户端是否是合法客户端包括:获取所述客户端发送的第一数据中的第一信息,根据所述第一信息计算获得第一数据验证码;将第一返回数据发送给所述客户端,所述第一返回数据包括所述第一数据验证码;再次接收所述客户端发送的第二数据,所述第二数据基于所述第一返回数据而生成;从所述第二数据中获取确认信息,所述确认信息是基于所述第一数据验证码生成的;获取所述第二数据中的第一信息;根据所述第二数据中的第一信息计算获得第二数据验证码;判断所述第二数据验证码是否与所述确认信息相关;当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端。
根据前述任一实施例的方法,例如,根据所述第一信息计算获得第一数据验证码或第二数据验证码包括:基于所述数据安全设备的第一秘钥对所述第一信息进行加密运算;基于加密运算结果生成所述第一数据验证码或第二数据验证码。
根据前述任一实施例的方法,例如,还包括:当判断所述客户端为非法客户端时,丢弃所述第二数据。
根据前述任一实施例的方法,例如,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
根据前述任一实施例的方法,例如,所述基于所述第一数据判断所述客户端是否有访问所述服务器的权限包括:基于所述第一数据获取所述客户端的至少一种信息;根据所述至少一种信息确定所述客户端是否记录在权限数据库中,所述数据库存储合法的客户端信息;当确定所述客户端记录在所述权限数据库中时,确定所述客户端具有所述访问权限。
根据前述任一实施例的方法,例如,所述授予所述客户端所述访问权限包括:将判定为合法的客户端信息加入所述权限数据库中。
根据前述任一实施例的方法,例如,还包括:周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内,当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
根据本公开至少一个实施例,还提供了一种数据安全设备,所述设备包括:接收单元,被配置为接收客户端发送的访问服务器的第一数据,权限判定单元,被配置为基于所述第一数据判断所述客户端是否有访问所述服务器的权限;合法判定单元,被配置为当确定所述客户端不具有所述访问权限时,判断所述客户端是否是合法客户端;权限授予单元,被配置为当判断所述客户端是合法客户端时,授予所述客户端所述访问权限。
根据前述任一实施例的设备,例如,还包括:重置单元,被配置为,当判断所述客户端为合法客户端时,发送重置信息给所述客户端,以通知所述合法客户端重新进行数据发送。
根据前述任一实施例的设备,例如,还包括:转发单元,被配置为在确定所述客户端具有所述访问权限时,将所述客户端发送的数据转发给所述服务器。
根据前述任一实施例的设备,例如,所述合法判定单元进一步被配置为,分别获取所述第一数据以及所述客户端再次发送的第二数据;基于所述第一数据和所述第二数据判定发送第一数据和第二数据的客户端是否是同一客户端,当所述两个客户端为同一客户端时,判断所述客户端为合法客户端。
根据前述任一实施例的设备,例如,所述合法判定单元进一步被配置为,获取所述客户端发送的第一数据中的第一信息,根据所述第一信息计算获得第一数据验证码;将第一返回数据发送给所述客户端,所述第一返回数据包括所述第一数据验证码;再次接收所述客户端发送的第二数据,所述第二数据基于所述第一返回数据而生成;从所述第二数据中获取确认信息,所述确认信息是基于所述第一数据验证码生成的;获取所述第二数据中的第一信息;根据所述第二数据中的第一信息计算获得第二数据验证码;判断所述第二数据验证码是否与所述确认信息相关;当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端。
根据前述任一实施例的设备,例如,根据所述第一信息计算获得第一数据验证码或第二数据验证码包括:基于所述数据安全设备的第一秘钥对所述第一信息进行加密运算;基于加密运算结果生成所述第一数据验证码或所述第二数据验证码。
根据前述任一实施例的设备,例如,还包括:丢弃单元,被配置为,当判断所述客户端为非法客户端时,丢弃所述第二数据。
根据前述任一实施例的设备,例如,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
根据前述任一实施例的设备,例如,所述权限判定单元进一步被配置为,基于所述第一数据获取所述客户端的至少一种信息;根据所述至少一种信息确定所述客户端是否在权限数据库中,所述权限数据库存储合法的客户端信息;当确定所述客户端在所述权限数据库中时,确定所述客户端具有所述访问权限。
根据前述任一实施例的设备,例如,所述权限授予单元包括:信息加入单元,被配置为将判定为合法的客户端信息加入所述权限数据库中。
根据前述任一实施例的设备,例如,还包括:访问时间判断单元,被配置为周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内,信息删除单元,被配置为当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
根据本公开至少一个实施例,还提供了一种数据安全系统,所述数据安全系统包括前述任一实施例所述的数据安全设备,至少一个客户端以及至少一个服务器,所述数据安全设备分别与所述客户端以及所述服务器信号连接。
根据本公开的至少一个实施例,还提供了一种用于数据安全设备的客户端合法性识别方法,所述方法包括:接收客户端访问服务器时发出的第一数据,并获取所述第一数据中的第一信息;将根据所述第一信息计算获得的第一数据验证码包含在第一返回数据发送给所述客户端;接收所述客户端针对所述第一返回数据发送的第二数据,并获取所述第二数据中包含的基于第一数据验证码生成的确认信息;根据所述第二数据中的第一信息计算获得第二数据验证码;当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端。
根据前述任一实施例的方法,例如,所述第一信息计算获得第一数据验证码或第二数据验证码包括:基于所述数据安全设备的第一秘钥对所述第一信息进行加密运算;基于加密运算结果生成所述第一数据验证码或所述第二数据验证码。
根据前述任一实施例的方法,例如,当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端包括:当所述第一数据验证码与所述第二数据验证码相等时判定所述客户端为合法客户端。
根据前述任一实施例的方法,例如,还包括,在接收到所述第一数据后立即基于所述第一数据获取所述客户端的至少一种信息;以及当所述至少一种信息记录在存储合法的客户端信息的权限数据库中时,确定所述客户端为合法客户端。
根据前述任一实施例的方法,例如,还包括:判断所述客户端为合法客户端时,发送重置信息给所述合法客户端,以通知所述客户端重新进行数据发送。
根据前述任一实施例的方法,例如,还包括:将判定为合法的客户端的至少一种信息加入所述权限数据库中。
根据前述任一实施例的方法,例如,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
根据前述任一实施例的方法,例如,还包括:周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内;以及当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
根据前述任一实施例的方法,例如,还包括:当判断所述客户端为非法客户端时,丢弃所述第二数据。
根据本公开至少一个实施例,还提供了一种用于数据安全设备的客户端合法性识别装置,所述装置包括:第一信息获取单元,被配置为接收客户端访问服务器时发出的第一数据,并获取所述第一数据中的第一信息;第一返回数据发送单元,被配置为将根据所述第一信息计算获得的第一数据验证码包含在第一返回数据发送给所述客户端;确认信息获取单元,被配置为接收所述客户端针对所述第一返回数据发送的第二数据,并获取所述第二数据中包含的基于第一数据验证码生成的确认信息;第二数据验证码计算单元,被配置为根据所述第二数据中的第一信息计算获得第二数据验证码;合法客户端判定单元,被配置为当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端。
根据前述任一实施例的装置,例如,所述第一返回数据发送单元以及所述第二数据验证码计算单元进一步被配置为,基于所述数据安全设备的第一秘钥对所述第一信息进行加密运算;基于加密运算结果生成所述第一数据验证码或所述第二数据验证码。
根据前述任一实施例的装置,例如,当所述第二数据验证码与所述确认信息相关时,判定所述客户端为合法客户端包括:当所述第一数据验证码与所述第二数据验证码相等时判定所述客户端为合法客户端。
根据前述任一实施例的装置,例如,所述第一信息获取单元进一步被配置为,被配置为在接收到所述第一数据后立即基于所述第一数据获取所述客户端的至少一种信息;以及所述合法客户端判定单元进一步被配置为,当所述至少一种信息记录在存储合法的客户端信息的权限数据库中时,确定所述客户端为合法客户端。
根据前述任一实施例的装置,例如,还包括:重置信息发送单元,被配置为在判断所述客户端为合法客户端时,发送重置信息给所述合法客户端,以通知所述客户端重新进行数据发送。
根据前述任一实施例的装置,例如,还包括:信息加入单元,被配置为将判定为合法的客户端的至少一种信息加入所述权限数据库中。
根据前述任一实施例的装置,例如,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
根据前述任一实施例的装置,例如,还包括:访问时间判定单元,被配置为周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内;以及删除单元,被配置为当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
根据前述任一实施例的装置,例如,还包括:第二数据丢弃单元,被配置为当判断所述客户端为非法客户端时,丢弃所述第二数据。
本公开实施例通过对客户端的访问权限和合法性进行判断,并授予访问权限,有效的阻挡泛洪攻击的同时,提升了防护的准确率,更具有普遍适用性。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开实施例的数据安全设备使用环境示意图;
图2示出了根据本公开实施例的数据安全传输方法流程图;
图3示出了根据本公开另一实施例的数据安全传输方法流程图;
图4示出了根据本公开实施例的数据安全设备内部架构示意图;
图5示出了根据本公开另一实施例的数据安全设备内部架构示意图;
图6示出了根据本公开实施例的数据安全系统架构示意图;
图7示出了根据本公开实施例的用于数据安全设备的客户端合法性识别方法流程图;
图8示出了根据本公开实施例的用于数据安全设备的客户端合法性识别装置架构图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
在本公开实施例中,数据安全传输方法应用于数据安全设备。数据安全设备是一种用于控制数据能够安全传输的设备,例如,数据检测设备,数据清洗设备,防火墙等。图1示出了根据本公开实施例的数据安全设备的使用环境示意图,参见图1,数据安全设备100可以配置在客户端和服务器之间,确保数据在客户端和服务器之间的安全传输。在本公开实施例中,客户端可以有一个或多个,服务器也可以是一个或多个,数据安全设备可以分别与上述至少一个客户端以及至少一个服务器信号连接。例如,可以是有线连接,例如通过光纤,电话线路进行有线连接。当然,也可以是无线连接,例如通过WIFI,蓝牙进行无线连接。
图2示出了根据本公开实施例的数据安全传输方法,下面将参照图2介绍根据本公开实施例的数据安全传输方法的流程。数据安全传输方法应用于数据安全设备,也就是说,该方法由前述数据安全设备执行。参见图2,数据安全传输方法包括以下步骤S201-S204。
在步骤S201中,接收客户端发送的第一数据。在一个实施例中,至少一个客户端想要发送第一数据给目标服务器,该第一数据首先被数据安全设备接收,以进行检测是否安全,检测通过后才会进行后续转发到服务器的步骤。第一数据例如是客户端发送给服务器的第一个数据报文,通过该报文尝试与目的服务器进行连接。例如SYN(synchronization)报文。
在步骤S202中,基于第一数据判断客户端是否有访问服务器的权限。
为了避免“泛洪”攻击,在一个实施例中,数据安全设备在接收到用户发送的第一数据之后,首先判断发送第一数据的客户端是否有访问所述目的服务器的权限。为了确定该客户端是否具有访问权限,数据安全设备可以首先检测客户端的信息,一种信息或多种信息,然后根据相关信息确定该客户端是否具有访问权限。例如,数据安全设备从第一数据中获取客户端的上述至少一种信息进行判断。第一数据中可以携带客户端的多种信息,例如,客户端的源IP地址、目的IP地址、客户端端口号以及目标服务器端口号中的至少一个。
在一个示例中,为了判断客户端是否具有访问权限,数据安全设备可以根据这些信息确定客户端是否在权限数据库中。权限数据库是记录所有具有访问权限的客户端信息的数据库。数据安全设备可以在权限数据库中进行查询,确定客户端相应的信息字段是否记录于数据库中,如果权限数据库中的相应字段记录中存在该客户端的该信息,则表示该客户端具有访问权限。否则,如果查询后确定该客户端的相关信息不在权限数据库中时,则说明该客户端不具有访问权限。
由于上述客户端的第一信息一般都是与该客户端绑定的,属于唯一的不变的信息,因此,通过在权限数据库中查询第一信息来判定客户端的访问权限,可以保证只有具有权限的客户端能够通过数据安全设备的验证,继续访问服务器。
在步骤S203中,当通过判断确定客户端不具有访问权限时,判断客户端是否是合法客户端。
在步骤S204中,当判断客户端是合法客户端时,授予客户端访问权限。
当某些合法客户端第一次访问服务器时,可能还没有赋予访问权限,因此,为了使这些合法客户端能够正常访问服务器,在本公开实施例中,当判断客户端不具有访问权限时,数据安全设备会进一步判断该客户端是否是合法客户端,如果是合法客户端,则可以授予其访问权限。在一个示例中,当判断客户端为合法客户端时,数据安全设备可以建立或者调取存储所有合法的客户端信息的权限数据库,然后将判定为合法的客户端信息加入权限数据库中,表示该客户端具有访问权限。
为了判断该客户端是否是合法客户端,在一个示例中,数据安全设备可以通过连续两次接收客户端的数据,来确定这两次数据是否来自一个客户端。由于“泛洪”攻击中,非法设备在短时间内使用变造的多个不同客户端地址向服务器发送大量TCP请求,因此,本公开实施例可以排除这样的伪造客户端,有效防御“泛洪”攻击。
例如,首先,数据安全设备在接收到客户端发送的第一数据后,从第一数据中获取第一信息,然后根据第一数据中的第一信息进行计算,获得第一数据验证码。第一信息如前所述,可以是客户端的源IP地址、目的IP地址、客户端端口号以及目的服务器端口号中的任意一个信息或多个信息的组合。
第一数据验证码例如是通过第一信息得到的一个编码或密码。在一个示例中,数据安全设备可以获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的已有秘钥。然后,数据安全设备使用第一秘钥对第一信息进行加密运算,基于加密运算结果生成第一数据验证码。例如,可以直接将加密运算结果作为第一数据验证码,也可以将加密运算结果进行处理后作为第一数据验证码。例如,当客户端向服务器发送一个syn报文作为第一数据,报文携带序列号为m。数据安全设备截获该SYN报文,并根据SYN报文生成第一数据验证码。例如,数据安全设备用syn报文的第一信息和秘钥做hash运算获得hash值X,作为报文序列号填入报文序列号字段,然后,数据安全设备可以构造一个第一返回数据,例如syn-ack报文,返回给客户端,第一返回数据中可以包括上述报文序列号X作为第一数据验证码,此外,可选地,还可以包括确认号为m+1。可选地,数据安全设备可以将接收到的syn报文做丢弃处理。
之后,数据安全设备将第一返回数据发送给客户端。
客户端收到数据安全设备发送的第一返回数据后,会再次发送第二数据给服务器。第二数据是基于第一返回数据而生成的。第二数据中的确认信息与第一返回数据中的报文序列号字段相关,即与第一数据验证码相关。例如,确认数据是在第一数据验证码的基础上生成的。例如,该客户端收到数据安全设备发送的syn-ack报文后,会再次发送ack报文作为第二数据给服务器,ack报文携带序列号为m+1,确认信息为X+1,其中的X是前述第一返回数据中的报文序列号。
数据安全设备再次截获客户端发送给服务器的第二数据,并从第二数据中获取确认信息,例如X+1。然后数据安全设备还会获取第二数据中的第一信息,在这里,第一信息与前面的第一数据中的第一信息是相同的。例如,第一数据中的第一信息使用源IP地址,那么第二数据中的第一信息也使用源IP地址。第一数据中的第一信息如果使用目标服务器端口号,那么第二数据中的第一信息也使用目标服务器端口号。数据安全设备根据获得的第一信息进行计算,获得第二数据验证码。第二数据验证码的计算与第一数据验证码的计算相同或类似。例如在一个示例中,数据安全设备获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的秘钥。然后,数据安全设备基于第一秘钥对第二数据中的第一信息进行加密运算,基于加密运算结果生成第二数据验证码。例如,可以直接将加密运算结果作为第二数据验证码,也可以将加密运算结果进行处理后作为第二数据验证码。在这里,在计算第二数据验证码时数据安全设备使用的第一秘钥可以和前面的计算第一数据验证码时的第一秘钥相同。例如,数据安全设备在收到客户端发来的第二数据ack报文后,解析出确认信息字段Y,并用ack报文的第一信息和第一秘钥做hash运算获得hash值Z作为第二数据验证码。
然后,数据安全设备判断第二数据验证码是否与确认信息相关,当判断第二数据验证码与确认信息相关时,判定客户端为合法客户端。例如,若判断Y=Z+1,则表示第二数据验证码与确认信息相关。也就是说,第二数据验证码Z与第一数据验证码X相同。进一步可以得出,发送第一数据和第二数据的客户端是同一个客户端,因此判定该客户端是合法客户端。可选地,数据安全设备可以同时丢弃第二数据。例如丢弃客户端发送的ack报文。
如果判定第二数据验证码与确认信息不相关,则表示发送第一数据和第二数据的客户端不是同一个客户端,可能是攻击设备伪造的客户端发送的报文,因此判定该客户端为非法客户端。当判断客户端为非法客户端时,数据安全设备可以直接丢弃第二数据。例如,直接丢弃客户端发送的ack报文。
在泛洪攻击中,非法客户端伪造不同IP地址的多个客户端,在短时间内发送大量连接请求报文给服务器,消耗服务器资源。本公开实施例通过客户端发送的第一数据和第二数据来判定客户端的合法性,即根据客户端的连接请求数据和之后的响应数据来判断这两次数据是否来自于同一客户端,因此可以排除伪造IP地址的非法客户端,有效的阻挡泛洪攻击。
图3示出了根据本公开实施例的另一种数据安全传输方法,在该方法中,除了前述实施例的所有步骤之外,还包括,向合法客户端发送重置信息,以通知该客户端重新进行数据发送。参见图3,在数据安全传输方法,包括步骤S301-S305。在步骤S301中,接收客户端发送的第一数据。在步骤S302中,基于第一数据判断客户端是否有访问服务器的权限。在步骤S303中,当通过判断确定客户端不具有访问权限时,判断客户端是否是合法客户端。在步骤S304中,当判断客户端是合法客户端时,授予客户端访问权限。在步骤S305中,向所述合法客户端发送重置信息,以通知该客户端重新进行数据发送。
在该实施例中,在授予合法客户端访问权限后,执行步骤S305,数据安全设备可以向客户端发送重置信息,以通知该客户端重新进行数据发送。重置信息例如rst报文。然后关闭之前的连接。这样,上一个连接结束,客户端可以重新向服务器发送连接请求。当客户端再次尝试与服务器建立连接时,此时,该客户端已被授予访问权限,例如客户端信息已经记录在权限数据库中了。数据安全设备再次进行判断后,确定客户端具有访问权限,则将客户端发送的数据转发给服务器。从而客户端可以与服务器进行正常的信息传输,保证了合法客户端正常的数据请求,也保证了服务器的安全。
有些客户端虽然是合法客户端,但不支持异常关闭,也就是说,在与服务器之间的连接出现异常时,该客户端无法回复服务器重置响应报文(例如,rst报文)来关闭连接,因此可能会被服务器误认为是非法客户端而被屏蔽。本公开实施例通过设置权限数据库来辨别客户端的合法性,对于这些不支持异常关闭的客户端也同样适用,避免了这些合法客户端被错误地屏蔽掉,保证了数据的正常传输。
此外,为了便于维护安全客户端数据库,避免该数据库存储陈旧信息,在一个实施例中,权限数据库还包括客户端访问时间信息。客户端访问时间信息例如可以是任何一个客户端访问该数据库的时间戳,每次访问后系统会自动更新时间戳信息,使该时间戳记录该客户端最后一次访问该数据库的时间。数据安全设备可以周期性判断访问时间信息是否在预设时间范围内。例如,根据数据库的存储空间,访问频率,设置预设时间范围,例如6个月、1年或两年等。当查询到某个客户端的访问时间超过预设时间范围,例如大于2年,则将客户端的信息在数据库中删除。这样,可以将长时间不访问服务器的客户端删除,防止数据库数据过于庞大,便于数据的查询,也能提高查询检索效率,节省资源。
以上介绍了根据本公开实施例的数据安全传输方法,下面介绍根据本公开实施例的数据安全设备,数据安全设备与前述数据安全传输方法的所有实施例和示例一一对应,为了说明书的简洁,以下仅做简要介绍。数据安全设备可以通过软件、硬件或固件来实现。例如,计算机,微处理器,中央处理器,芯片等硬件。
图4示出了根据本公开实施例的数据安全设备,下面将参照图4介绍根据本公开实施例的数据安全设备的架构。参见图4,数据安全设备包括接收单元410,权限判定单元420,合法判定单元430以及权限授予单元440。
接收单元410,被配置为接收客户端发送的第一数据。
权限判定单元420,被配置为基于第一数据判断客户端是否有访问服务器的权限;
合法判定单元430,被配置为当通过判断确定客户端不具有访问权限时,判断客户端是否是合法客户端;
权限授予单元440,被配置为当判断客户端是合法客户端时,授予客户端访问权限。
下面将分别对上述各个单元的功能进行介绍。
接收单元410接收客户端发送的第一数据。在一个实施例中,至少一个客户端想要发送第一数据给目标服务器,该第一数据首先被数据安全设备接收,以进行检测是否安全,检测通过后才会进行后续转发到服务器的步骤。第一数据例如是客户端发送给服务器的第一个数据报文,通过该报文尝试与目的服务器进行连接。例如SYN(synchronization)报文。
权限判定单元420基于第一数据判断客户端是否有访问服务器的权限。
为了避免“泛洪”攻击,在一个实施例中,数据安全设备在接收到用户发送的第一数据之后,首先判断发送第一数据的客户端是否有访问所述目的服务器的权限。为了确定该客户端是否具有访问权限,数据安全设备可以首先检测客户端的信息,一种信息或多种信息,然后根据相关信息确定该客户端是否具有访问权限。例如,数据安全设备从第一数据中获取客户端的上述至少一种信息进行判断。第一数据中可以携带客户端的多种信息,例如,客户端的源IP地址、目的IP地址、客户端端口号以及目标服务器端口号中的至少一个。
在一个示例中,为了判断客户端是否具有访问权限,数据安全设备可以根据这些信息确定客户端是否在权限数据库中。权限数据库是记录所有具有访问权限的客户端信息的数据库。数据安全设备可以在权限数据库中进行查询,确定客户端相应的信息字段是否记录于数据库中,如果权限数据库中的相应字段记录中存在该客户端的该信息,则表示该客户端具有访问权限。否则,如果查询后确定该客户端的相关信息不在权限数据库中时,则说明该客户端不具有访问权限。
由于上述客户端的第一信息一般都是与该客户端绑定的,属于唯一的不变的信息,因此,通过在权限数据库中查询第一信息来判定客户端的访问权限,可以保证只有具有权限的客户端能够通过数据安全设备的验证,继续访问服务器。
当通过判断确定客户端不具有访问权限时,合法判定单元430判断客户端是否是合法客户端。
当判断客户端是合法客户端时,权限授予单元440授予客户端访问权限。
当某些合法客户端第一次访问服务器时,可能还没有赋予访问权限,因此,为了使这些合法客户端能够正常访问服务器,在本公开实施例中,当判断客户端不具有访问权限时,数据安全设备会进一步判断该客户端是否是合法客户端,如果是合法客户端,则可以授予其访问权限。在一个示例中,当判断客户端为合法客户端时,数据安全设备可以建立或者调取存储所有合法的客户端信息的权限数据库,然后将判定为合法的客户端信息加入权限数据库中,表示该客户端具有访问权限。
为了判断该客户端是否是合法客户端,在一个示例中,数据安全设备可以通过连续两次接收客户端的数据,来确定这两次数据是否来自一个客户端。由于“泛洪”攻击中,非法设备在短时间内使用变造的多个不同客户端地址向服务器发送大量TCP请求,因此,本公开实施例可以排除这样的伪造客户端,有效防御“泛洪”攻击。
例如,首先,数据安全设备在接收到客户端发送的第一数据后,从第一数据中获取第一信息,然后根据第一数据中的第一信息进行计算,获得第一数据验证码。第一信息如前所述,可以是客户端的源IP地址、目的IP地址、客户端端口号以及目的服务器端口号中的任意一个信息或多个信息的组合。
第一数据验证码例如是通过第一信息得到的一个编码或密码。在一个示例中,数据安全设备可以获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的已有秘钥。然后,数据安全设备使用第一秘钥对第一信息进行加密运算,基于加密运算结果生成第一数据验证码。例如,可以直接将加密运算结果作为第一数据验证码,也可以将加密运算结果进行处理后作为第一数据验证码。例如,当客户端向服务器发送一个syn报文作为第一数据,报文携带序列号为m。数据安全设备截获该SYN报文,并根据SYN报文生成第一数据验证码。例如,数据安全设备用syn报文的第一信息和秘钥做hash运算获得hash值X,作为报文序列号填入报文序列号字段,然后,数据安全设备可以构造一个第一返回数据,例如syn-ack报文,返回给客户端,第一返回数据中可以包括上述报文序列号X作为第一数据验证码,此外,可选地,还可以包括确认号为m+1。可选地,数据安全设备可以将接收到的syn报文做丢弃处理。
之后,数据安全设备将第一返回数据发送给客户端。
客户端收到数据安全设备发送的第一返回数据后,会再次发送第二数据给服务器。第二数据是基于第一返回数据而生成的。第二数据中的确认信息与第一返回数据中的报文序列号字段相关,即与第一数据验证码相关。例如,确认数据是在第一数据验证码的基础上生成的。例如,该客户端收到数据安全设备发送的syn-ack报文后,会再次发送ack报文作为第二数据给服务器,ack报文携带序列号为m+1,确认信息为X+1,其中的X是前述第一返回数据中的报文序列号。
数据安全设备再次截获客户端发送给服务器的第二数据,并从第二数据中获取确认信息,例如X+1。然后数据安全设备还会获取第二数据中的第一信息,在这里,第一信息与前面的第一数据中的第一信息是相同的。例如,第一数据中的第一信息使用源IP地址,那么第二数据中的第一信息也使用源IP地址。第一数据中的第一信息如果使用目标服务器端口号,那么第二数据中的第一信息也使用目标服务器端口号。数据安全设备根据获得的第一信息进行计算,获得第二数据验证码。第二数据验证码的计算与第一数据验证码的计算相同或类似。例如在一个示例中,数据安全设备获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的秘钥。然后,数据安全设备基于第一秘钥对第二数据中的第一信息进行加密运算,基于加密运算结果生成第二数据验证码。例如,可以直接将加密运算结果作为第二数据验证码,也可以将加密运算结果进行处理后作为第二数据验证码。在这里,在计算第二数据验证码时数据安全设备使用的第一秘钥可以和前面的计算第一数据验证码时的第一秘钥相同。例如,数据安全设备在收到客户端发来的第二数据ack报文后,解析出确认信息字段Y,并用ack报文的第一信息和第一秘钥做hash运算获得hash值Z作为第二数据验证码。
然后,数据安全设备判断第二数据验证码是否与确认信息相关,当判断第二数据验证码与确认信息相关时,判定客户端为合法客户端。例如,若判断Y=Z+1,则表示第二数据验证码与确认信息相关。也就是说,第二数据验证码Z与第一数据验证码X相同。进一步可以得出,发送第一数据和第二数据的客户端是同一个客户端,因此判定该客户端是合法客户端。可选地,数据安全设备可以同时丢弃第二数据。例如丢弃客户端发送的ack报文。
如果判定第二数据验证码与确认信息不相关,则表示发送第一数据和第二数据的客户端不是同一个客户端,可能是攻击设备伪造的客户端发送的报文,因此判定该客户端为非法客户端。当判断客户端为非法客户端时,数据安全设备可以直接丢弃第二数据。例如,直接丢弃客户端发送的ack报文。
在泛洪攻击中,非法客户端伪造不同IP地址的多个客户端,在短时间内发送大量连接请求报文给服务器,消耗服务器资源。本公开实施例通过客户端发送的第一数据和第二数据来判定客户端的合法性,即根据客户端的连接请求数据和之后的响应数据来判断这两次数据是否来自于同一客户端,因此可以排除伪造IP地址的非法客户端,有效的阻挡泛洪攻击。图5示出了根据本公开实施例的另一种数据安全设备,在该设备中,除了前述实施例的数据安全设备的所有单元之外,还包括,重置单元550,被配置为向合法客户端发送重置信息,以通知该客户端重新进行数据发送。参见图5,在数据安全设备500中,包括接收单元510,权限判定单元520,合法判定单元530,权限授予单元540以及重置单元550。
接收单元510,被配置为接收客户端发送的第一数据。
权限判定单元520,被配置为基于第一数据判断客户端是否有访问服务器的权限;
合法判定单元530,被配置为当通过判断确定客户端不具有访问权限时,判断客户端是否是合法客户端;
权限授予单元540,被配置为当判断客户端是合法客户端时,授予客户端访问权限。
重置单元550,被配置为向合法客户端发送重置信息,以通知该客户端重新进行数据发送。
在该实施例中,在授予合法客户端访问权限后,数据安全设备的重置单元550可以向客户端发送重置信息,以通知该客户端重新进行数据发送。重置信息例如rst报文。然后关闭之前的连接。这样,上一个连接结束,客户端可以重新向服务器发送连接请求。当客户端再次尝试与服务器建立连接时,此时,该客户端已被授予访问权限,例如客户端信息已经记录在权限数据库中了。数据安全设备再次进行判断后,确定客户端具有访问权限,则将客户端发送的数据转发给服务器。从而客户端可以与服务器进行正常的信息传输,保证了合法客户端正常的数据请求,也保证了服务器的安全。
有些客户端虽然是合法客户端,但不支持异常关闭,也就是说,在与服务器之间的连接出现异常时,该客户端无法回复服务器重置响应报文(例如,rst报文)来关闭连接,因此可能会被服务器误认为是非法客户端而被屏蔽。本公开实施例通过设置权限数据库来辨别客户端的合法性,对于这些不支持异常关闭的客户端也同样适用,避免了这些合法客户端被错误地屏蔽掉,保证了数据的正常传输。
此外,为了便于维护安全客户端数据库,避免该数据库存储陈旧信息,在一个实施例中,权限数据库还包括客户端访问时间信息。客户端访问时间信息例如可以是任何一个客户端访问该数据库的时间戳,每次访问后系统会自动更新时间戳信息,使该时间戳记录该客户端最后一次访问该数据库的时间。数据安全设备可以周期性判断访问时间信息是否在预设时间范围内。例如,根据数据库的存储空间,访问频率,设置预设时间范围,例如6个月、1年或两年等。当查询到某个客户端的访问时间超过预设时间范围,例如大于2年,则将客户端的信息在数据库中删除。这样,可以将长时间不访问服务器的客户端删除,防止数据库数据过于庞大,便于数据的查询,也能提高查询检索效率,节省资源。
以上介绍了根据本公开实施例的数据安全设备,数据安全设备可以是一种流量清洗设备。下面进一步介绍根据本公开实施例的数据安全系统。图6示出了根据本公开实施例的数据安全系统架构示意图。参见图6,数据安全系统包括数据安全设备610,至少一个客户端620以及至少一个服务器630,数据安全设备分别与客户端以及服务器信号连接。数据安全系统中的数据安全设备为前述任一实施例中的数据安全设备,为了说明书的简洁,做此简要介绍,具体可以参考前述实施例和示例。
图7示出了根据本公开的另一实施例的用于数据安全设备的客户端合法性识别方法流程图。下面将参照图7介绍根据本公开实施例的客户端识别方法。该方法同样应用于前述所有实施例中的数据安全设备,也就是说,由前述的数据安全设备执行该方法。为了说明书的简洁,以下仅对该方法进行介绍,对于数据安全设备,可以完全参照前述所有实施例和示例的内容。参见图7,客户端合法性识别方法包括以下步骤S701-S705。
在步骤S701中,接收客户端访问服务器时发出的第一数据,并获取第一数据中的第一信息。
在一个实施例中,至少一个客户端想要发送第一数据给目标服务器,该第一数据首先被数据安全设备接收,以进行检测是否安全,检测通过后才会进行后续转发到服务器的步骤。第一数据例如是客户端发送给服务器的第一个数据报文,通过该报文尝试与目的服务器进行连接。例如SYN(synchronization)报文。
首先,数据安全设备在接收到客户端发送的第一数据后,从第一数据中获取第一信息,第一信息如前所述,可以是客户端的源IP地址、目的IP地址、客户端端口号以及目的服务器端口号中的任意一个信息或多个信息的组合。
在步骤S702中,将根据第一信息计算获得的第一数据验证码包含在第一返回数据发送给客户端。
在一个示例中,数据安全设备根据第一数据中的第一信息进行计算,获得第一数据验证码。第一数据验证码例如是通过第一信息得到的一个编码或密码。在一个示例中,数据安全设备可以获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的已有秘钥。然后,数据安全设备使用第一秘钥对第一信息进行加密运算,基于加密运算结果生成第一数据验证码。例如,可以直接将加密运算结果作为第一数据验证码,也可以将加密运算结果进行处理后作为第一数据验证码。例如,当客户端向服务器发送一个syn报文作为第一数据,报文携带序列号为m。数据安全设备截获该SYN报文,并根据SYN报文生成第一数据验证码。例如,数据安全设备用syn报文的第一信息和秘钥做hash运算获得hash值X,作为报文序列号填入报文序列号字段,上述报文序列号X即为第一数据验证码。
然后,数据安全设备可以构造一个第一返回数据,例如syn-ack报文,返回给客户端,第一返回数据中可以包括上述报文序列号X作为第一数据验证码,此外,可选地,还可以包括确认号为m+1。可选地,数据安全设备可以将接收到的syn报文做丢弃处理。之后,数据安全设备将第一返回数据发送给客户端。
在步骤S703中,接收客户端针对第一返回数据发送的第二数据,并获取第二数据中包含的基于第一数据验证码生成的确认信息。
在一个示例中,客户端收到数据安全设备发送的第一返回数据后,会再次发送第二数据给服务器。第二数据是基于第一返回数据而生成的。第二数据中的确认信息是基于第一返回数据中的报文序列号字段的内容生成的,例如,确认数据是在第一数据验证码的基础上生成的。即与第一数据验证码相关。例如,该客户端收到数据安全设备发送的syn-ack报文后,会再次发送ack报文作为第二数据给服务器,ack报文携带序列号为m+1,确认信息为X+1,其中的X是前述第一返回数据中的报文序列号。数据安全设备再次截获客户端发送给服务器的第二数据后,从第二数据中获取确认信息,例如X+1。
在步骤S704中,根据第二数据中的第一信息计算获得第二数据验证码。
在一个示例中,数据安全设备还会获取第二数据中的第一信息,在这里,第一信息与前面的第一数据中的第一信息是相同的。例如,第一数据中的第一信息使用源IP地址,那么第二数据中的第一信息也使用源IP地址。第一数据中的第一信息如果使用目标服务器端口号,那么第二数据中的第一信息也使用目标服务器端口号。数据安全设备根据获得的第一信息进行计算,获得第二数据验证码。第二数据验证码的计算与第一数据验证码的计算相同或类似。例如在一个示例中,数据安全设备获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的秘钥。然后,数据安全设备基于第一秘钥对第二数据中的第一信息进行加密运算,基于加密运算结果生成第二数据验证码。例如,可以直接将加密运算结果作为第二数据验证码,也可以将加密运算结果进行处理后作为第二数据验证码。在这里,在计算第二数据验证码时数据安全设备使用的第一秘钥可以和前面的计算第一数据验证码时的第一秘钥相同。例如,数据安全设备在收到客户端发来的第二数据ack报文后,解析出确认信息字段Y,并用ack报文的第一信息和第一秘钥做hash运算获得hash值Z作为第二数据验证码。
在步骤S705中,当第二数据验证码与确认信息相关时,判定客户端为合法客户端。
在一个示例中,数据安全设备判断第二数据验证码是否与确认信息相关,当判断第二数据验证码与确认信息相关时,判定客户端为合法客户端。例如,若判断Y=Z+1,则表示第二数据验证码与确认信息相关。也就是说,第二数据验证码Z与第一数据验证码X相同。进一步可以得出,发送第一数据和第二数据的客户端是同一个客户端,因此判定该客户端是合法客户端。也就是说,当第一数据验证码与第二数据验证码相等时判定客户端为合法客户端。可选地,数据安全设备可以同时丢弃第二数据。例如丢弃客户端发送的ack报文。
如果判定第二数据验证码与确认信息不相关,则表示发送第一数据和第二数据的客户端不是同一个客户端,可能是攻击设备伪造的客户端发送的报文,因此判定该客户端为非法客户端。当判断客户端为非法客户端时,数据安全设备可以直接丢弃第二数据。例如,直接丢弃客户端发送的ack报文。
以上介绍了根据本公开实施例的客户端合法性识别方法。由于在泛洪攻击中,非法客户端伪造不同IP地址的多个客户端,在短时间内发送大量连接请求报文给服务器,消耗服务器资源。本公开实施例通过客户端发送的第一数据和第二数据来判定客户端的合法性,即根据发送数据和响应数据来判断这两次数据是否来自于同一客户端,因此可以排除伪造IP地址的非法客户端,有效的阻挡泛洪攻击。
在一个示例中,当判断客户端为合法客户端时,数据安全设备可以建立或者调取存储所有合法的客户端信息的权限数据库,然后将判定为合法的客户端信息加入权限数据库中,表示该客户端具有访问权限。
此外,在一个示例中,在授予合法客户端访问权限后,数据安全设备可以向客户端发送重置信息,以通知该客户端重新进行数据发送。重置信息例如rst报文。然后关闭之前的连接。这样,上一个连接结束,客户端可以重新向服务器发送连接请求。
此外,在一个实施例中,当数据安全设备接收到第一数据后,可以基于第一数据获取客户端的至少一种信息;然后判定该至少一种信息是否记录在存储合法的客户端信息的权限数据库中,权限数据库是记录所有具有访问权限的客户端信息的数据库。数据安全设备可以在权限数据库中进行查询,确定客户端相应的信息字段是否记录于数据库中,如果权限数据库中的相应字段记录中存在该客户端的该信息,则表示该客户端具有访问权限。数据安全设备则允许该客户端继续访问服务器,将第一数据转发给服务器。否则,如果查询后确定该客户端的相关信息不在权限数据库中时,则说明该客户端不具有访问权限。
由于上述客户端的第一信息一般都是与该客户端绑定的,属于唯一的不变的信息,因此,通过在权限数据库中查询第一信息来判定客户端的访问权限,可以保证只有具有权限的客户端能够通过数据安全设备的验证,继续访问服务器。通过上述本公开实施例,使得有权限客户端可以与服务器进行正常的信息传输,保证了合法客户端正常的数据请求,也保证了服务器的安全。
此外,有些客户端虽然是合法客户端,但不支持异常关闭,也就是说,在与服务器之间的连接出现异常时,该客户端无法回复服务器重置响应报文(例如,rst报文)来关闭连接,因此可能会被服务器误认为是非法客户端而被屏蔽。本公开实施例通过设置权限数据库来辨别客户端的合法性,对于这些不支持异常关闭的客户端也同样适用,避免了这些合法客户端被错误地屏蔽掉,保证了数据的正常传输。
此外,为了便于维护安全客户端数据库,避免该数据库存储陈旧信息,在一个实施例中,权限数据库还包括客户端访问时间信息。客户端访问时间信息例如可以是任何一个客户端访问该数据库的时间戳,每次访问后系统会自动更新时间戳信息,使该时间戳记录该客户端最后一次访问该数据库的时间。数据安全设备可以周期性判断访问时间信息是否在预设时间范围内。例如,根据数据库的存储空间,访问频率,设置预设时间范围,例如6个月、1年或两年等。当查询到某个客户端的访问时间超过预设时间范围,例如大于2年,则将客户端的信息在数据库中删除。这样,可以将长时间不访问服务器的客户端删除,防止数据库数据过于庞大,便于数据的查询,也能提高查询检索效率,节省资源。
本公开实施例的用于数据安全设备的客户端合法性识别方法,可以有效识别访问服务器的客户端的合法性,有效阻止了泛洪攻击,保证来服务器的安全。
以上介绍了根据本公开实施例的用于数据安全设备的客户端合法性识别方法,下面进一步介绍根据本公开实施例的用于数据安全设备的客户端合法性识别装置,客户端合法性识别装置与前述的客户端合法性识别方法所有实施例和示例一一对应,为了说明书的简洁,以下仅做简要介绍。客户端合法性识别装置可以通过软件、硬件或固件来实现。例如,计算机,微处理器,中央处理器,芯片等硬件实现。
图8示出了根据本公开实施例的用于数据安全设备的客户端合法性识别装置。下面参照图8介绍根据本公开实施例的用于数据安全设备的客户端合法性识别装置。参见图8,用于数据安全设备的客户端合法性识别装置800包括第一信息获取单元810,第一返回数据发送单元820,确认信息获取单元830,第二数据验证码计算单元840,合法客户端判定单元850。
第一信息获取单元810接收客户端访问服务器时发出的第一数据,并获取第一数据中的第一信息。
在一个实施例中,至少一个客户端想要发送第一数据给目标服务器,该第一数据首先被数据安全设备接收,以进行检测是否安全,检测通过后才会进行后续转发到服务器的步骤。第一数据例如是客户端发送给服务器的第一个数据报文,通过该报文尝试与目的服务器进行连接。例如SYN(synchronization)报文。
首先,数据安全设备在接收到客户端发送的第一数据后,从第一数据中获取第一信息,第一信息如前所述,可以是客户端的源IP地址、目的IP地址、客户端端口号以及目的服务器端口号中的任意一个信息或多个信息的组合。
第一返回数据发送单元820将根据第一信息计算获得的第一数据验证码包含在第一返回数据发送给客户端。
在一个示例中,数据安全设备根据第一数据中的第一信息进行计算,获得第一数据验证码。第一数据验证码例如是通过第一信息得到的一个编码或密码。在一个示例中,数据安全设备可以获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的已有秘钥。然后,数据安全设备使用第一秘钥对第一信息进行加密运算,基于加密运算结果生成第一数据验证码。例如,可以直接将加密运算结果作为第一数据验证码,也可以将加密运算结果进行处理后作为第一数据验证码。例如,当客户端向服务器发送一个syn报文作为第一数据,报文携带序列号为m。数据安全设备截获该SYN报文,并根据SYN报文生成第一数据验证码。例如,数据安全设备用syn报文的第一信息和秘钥做hash运算获得hash值X,作为报文序列号填入报文序列号字段,上述报文序列号X即为第一数据验证码。
然后,数据安全设备可以构造一个第一返回数据,例如syn-ack报文,返回给客户端,第一返回数据中可以包括上述报文序列号X作为第一数据验证码,此外,可选地,还可以包括确认号为m+1。可选地,数据安全设备可以将接收到的syn报文做丢弃处理。之后,数据安全设备将第一返回数据发送给客户端。
确认信息获取单元830接收客户端针对第一返回数据发送的第二数据,并获取第二数据中包含的基于第一数据验证码生成的确认信息。
在一个示例中,客户端收到数据安全设备发送的第一返回数据后,会再次发送第二数据给服务器。第二数据是基于第一返回数据而生成的。第二数据中的确认信息是基于第一返回数据中的报文序列号字段的内容生成的,例如,确认数据是在第一数据验证码的基础上生成的。即与第一数据验证码相关。例如,该客户端收到数据安全设备发送的syn-ack报文后,会再次发送ack报文作为第二数据给服务器,ack报文携带序列号为m+1,确认信息为X+1,其中的X是前述第一返回数据中的报文序列号。数据安全设备再次截获客户端发送给服务器的第二数据后,从第二数据中获取确认信息,例如X+1。
第二数据验证码计算单元840根据第二数据中的第一信息计算获得第二数据验证码。
在一个示例中,数据安全设备还会获取第二数据中的第一信息,在这里,第一信息与前面的第一数据中的第一信息是相同的。例如,第一数据中的第一信息使用源IP地址,那么第二数据中的第一信息也使用源IP地址。第一数据中的第一信息如果使用目标服务器端口号,那么第二数据中的第一信息也使用目标服务器端口号。数据安全设备根据获得的第一信息进行计算,获得第二数据验证码。第二数据验证码的计算与第一数据验证码的计算相同或类似。例如在一个示例中,数据安全设备获取第一秘钥,该第一秘钥可以是数据安全设备生成的随机秘钥,也可以是其存储的秘钥。然后,数据安全设备基于第一秘钥对第二数据中的第一信息进行加密运算,基于加密运算结果生成第二数据验证码。例如,可以直接将加密运算结果作为第二数据验证码,也可以将加密运算结果进行处理后作为第二数据验证码。在这里,在计算第二数据验证码时数据安全设备使用的第一秘钥可以和前面的计算第一数据验证码时的第一秘钥相同。例如,数据安全设备在收到客户端发来的第二数据ack报文后,解析出确认信息字段Y,并用ack报文的第一信息和第一秘钥做hash运算获得hash值Z作为第二数据验证码。
合法客户端判定单元850当第二数据验证码与确认信息相关时,判定客户端为合法客户端。
然后,数据安全设备判断第二数据验证码是否与确认信息相关,当判断第二数据验证码与确认信息相关时,判定客户端为合法客户端。例如,若判断Y=Z+1,则表示第二数据验证码与确认信息相关。也就是说,第二数据验证码Z与第一数据验证码X相同。进一步可以得出,发送第一数据和第二数据的客户端是同一个客户端,因此判定该客户端是合法客户端。也就是说,当第一数据验证码与第二数据验证码相等时判定客户端为合法客户端。可选地,数据安全设备可以同时丢弃第二数据。例如丢弃客户端发送的ack报文。
如果判定第二数据验证码与确认信息不相关,则表示发送第一数据和第二数据的客户端不是同一个客户端,可能是攻击设备伪造的客户端发送的报文,因此判定该客户端为非法客户端。当判断客户端为非法客户端时,数据安全设备可以直接丢弃第二数据。例如,直接丢弃客户端发送的ack报文。
以上介绍了根据本公开实施例的客户端合法性识别装置。由于在泛洪攻击中,非法客户端伪造不同IP地址的多个客户端,在短时间内发送大量连接请求报文给服务器,消耗服务器资源。本公开实施例通过客户端发送的第一数据和第二数据来判定客户端的合法性,即根据客户端发送的连接请求数据和进一步的响应数据来判断这两次数据是否来自于同一客户端,因此可以排除伪造IP地址的非法客户端,有效的阻挡泛洪攻击。
在一个示例中,当判断客户端为合法客户端时,数据安全设备可以建立或者调取存储所有合法的客户端信息的权限数据库,然后将判定为合法的客户端信息加入权限数据库中,表示该客户端具有访问权限。
此外,在一个示例中,在授予合法客户端访问权限后,数据安全设备可以向客户端发送重置信息,以通知该客户端重新进行数据发送。重置信息例如rst报文。然后关闭之前的连接。这样,上一个连接结束,客户端可以重新向服务器发送连接请求。
此外,在一个实施例中,当数据安全设备接收到第一数据后,可以基于第一数据获取客户端的至少一种信息;然后判定该至少一种信息是否记录在存储合法的客户端信息的权限数据库中,权限数据库是记录所有具有访问权限的客户端信息的数据库。数据安全设备可以在权限数据库中进行查询,确定客户端相应的信息字段是否记录于数据库中,如果权限数据库中的相应字段记录中存在该客户端的该信息,则表示该客户端具有访问权限。数据安全设备则允许该客户端继续访问服务器,将第一数据转发给服务器。否则,如果查询后确定该客户端的相关信息不在权限数据库中时,则说明该客户端不具有访问权限。
由于上述客户端的第一信息一般都是与该客户端绑定的,属于唯一的不变的信息,因此,通过在权限数据库中查询第一信息来判定客户端的访问权限,可以保证只有具有权限的客户端能够通过数据安全设备的验证,继续访问服务器。通过上述本公开实施例,使得有权限客户端可以与服务器进行正常的信息传输,保证了合法客户端正常的数据请求,也保证了服务器的安全。
此外,有些客户端虽然是合法客户端,但不支持异常关闭,也就是说,在与服务器之间的连接出现异常时,该客户端无法回复服务器重置响应报文(例如,rst报文)来关闭连接,因此可能会被服务器误认为是非法客户端而被屏蔽。本公开实施例通过设置权限数据库来辨别客户端的合法性,对于这些不支持异常关闭的客户端也同样适用,避免了这些合法客户端被错误地屏蔽掉,保证了数据的正常传输。
在一个示例中,为了便于维护安全客户端数据库,避免该数据库存储陈旧信息,在一个实施例中,权限数据库还包括客户端访问时间信息。客户端访问时间信息例如可以是任何一个客户端访问该数据库的时间戳,每次访问后系统会自动更新时间戳信息,使该时间戳记录该客户端最后一次访问该数据库的时间。数据安全设备可以周期性判断访问时间信息是否在预设时间范围内。例如,根据数据库的存储空间,访问频率,设置预设时间范围,例如6个月、1年或两年等。当查询到某个客户端的访问时间超过预设时间范围,例如大于2年,则将客户端的信息在数据库中删除。这样,可以将长时间不访问服务器的客户端删除,防止数据库数据过于庞大,便于数据的查询,也能提高查询检索效率,节省资源。
本公开实施例的用于数据安全设备的客户端合法性识别装置,可以有效识别访问服务器的客户端的合法性,有效阻止了泛洪攻击,保证来服务器的安全。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述的实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (17)
1.一种用于数据安全设备的数据安全传输方法,所述方法包括:
接收客户端发送的访问服务器的第一数据,
基于所述第一数据判断所述客户端是否有访问所述服务器的权限;
当确定所述客户端不具有访问权限时,获取所述客户端发送的第一数据中携带的第一信息以及序列号m,基于所述第一信息和数据安全设备的第一秘钥做hash运算获得作为第一数据验证码的hash值X,将包含作为序列号的所述hash值X的第一返回数据发送给所述客户端,并在从客户端接收到针对第一返回数据做出的响应的携带序列号为m+1以及确认信息X+1的第二数据后,解析获得第二数据的确认信息字段Y并基于第二数据第一信息和第一秘钥做hash运算获得作为第二数据验证码的hash值Z,并在第一数据验证码与第二数据验证码相同以及确认信息字段Y等于确认信息Z+1的情况下,判断所述客户端为合法客户端;
当判断所述客户端是合法客户端时,授予所述客户端所述访问权限。
2.根据权利要求1所述的方法,还包括:
在判断所述客户端为合法客户端时,发送重置信息给所述合法客户端,以通知所述客户端重新进行数据发送。
3.根据权利要求1或2所述的方法,还包括:
在确定所述客户端具有所述访问权限时,将所述客户端发送的数据转发给所述服务器。
4.根据权利要求1所述的方法,还包括:
当判断所述客户端为非法客户端时,丢弃所述第二数据。
5.根据权利要求1所述的方法,其中,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
6.根据权利要求1所述的方法,其中,所述基于所述第一数据判断所述客户端是否有访问所述服务器的权限包括:
基于所述第一数据获取所述客户端的至少一种信息;
根据所述至少一种信息确定所述客户端是否记录在权限数据库中,所述数据库存储合法的客户端信息;
当确定所述客户端记录在所述权限数据库中时,确定所述客户端具有所述访问权限。
7.根据权利要求6所述的方法,其中,所述授予所述客户端所述访问权限包括:
将判定为合法的客户端信息加入所述权限数据库中。
8.根据权利要求6或7所述的方法,其中,还包括:
周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内,
当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
9.一种数据安全设备,所述设备包括:
接收单元,被配置为接收客户端发送的访问服务器的第一数据,
权限判定单元,被配置为基于所述第一数据判断所述客户端是否有访问所述服务器的权限;
合法判定单元,被配置为当确定所述客户端不具有访问权限时,获取所述客户端发送的第一数据中携带的第一信息以及序列号m,基于所述第一信息和数据安全设备的第一秘钥做hash运算获得作为第一数据验证码的hash值X,将包含作为序列号的所述hash值X的第一返回数据发送给所述客户端,并在从客户端接收到针对第一返回数据做出的响应的携带序列号为m+1以及确认信息X+1的第二数据后,解析获得第二数据的确认信息字段Y并基于第二数据第一信息和第一秘钥做hash运算获得作为第二数据验证码的hash值Z,并在第一数据验证码与第二数据验证码相同以及确认信息字段Y等于确认信息Z+1的情况下,判断所述客户端为合法客户端;
权限授予单元,被配置为当判断所述客户端是合法客户端时,授予所述客户端所述访问权限。
10.根据权利要求9所述的设备,还包括:
重置单元,被配置为,当判断所述客户端为合法客户端时,发送重置信息给所述客户端,以通知所述合法客户端重新进行数据发送。
11.根据权利要求9所述的设备,还包括:
转发单元,被配置为在确定所述客户端具有所述访问权限时,将所述客户端发送的数据转发给所述服务器。
12.根据权利要求9所述的设备,还包括:
丢弃单元,被配置为,当判断所述客户端为非法客户端时,丢弃所述第二数据。
13.根据权利要求9所述的设备,其中,所述第一信息包括,所述客户端的源IP地址、目的IP地址、端口号以及目的服务器端口号中的至少一个。
14.根据权利要求9所述的设备,其中,所述权限判定单元进一步被配置为,基于所述第一数据获取所述客户端的至少一种信息;根据所述至少一种信息确定所述客户端是否在权限数据库中,所述权限数据库存储合法的客户端信息;当确定所述客户端在所述权限数据库中时,确定所述客户端具有所述访问权限。
15.根据权利要求9所述的设备,所述权限授予单元包括:
信息加入单元,被配置为将判定为合法的客户端信息加入权限数据库中。
16.根据权利要求14所述的设备,还包括:
访问时间判断单元,被配置为周期性判断所述权限数据库所包括的客户端访问时间信息是否在预设时间范围内,
信息删除单元,被配置为当所述访问时间超过所述预设时间范围,将所述客户端的信息在所述数据库中删除。
17.一种数据安全系统,所述数据安全系统包括权利要求9-16任一所述的数据安全设备,至少一个客户端以及至少一个服务器,所述数据安全设备分别与所述客户端以及所述服务器信号连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233242.0A CN111526126B (zh) | 2020-03-29 | 2020-03-29 | 数据安全传输方法,数据安全设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233242.0A CN111526126B (zh) | 2020-03-29 | 2020-03-29 | 数据安全传输方法,数据安全设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111526126A CN111526126A (zh) | 2020-08-11 |
CN111526126B true CN111526126B (zh) | 2022-11-01 |
Family
ID=71902360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010233242.0A Active CN111526126B (zh) | 2020-03-29 | 2020-03-29 | 数据安全传输方法,数据安全设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111526126B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175013A (zh) * | 2006-11-03 | 2008-05-07 | 飞塔信息科技(北京)有限公司 | 一种拒绝服务攻击防护方法、网络系统和代理服务器 |
CN101594359A (zh) * | 2009-07-01 | 2009-12-02 | 杭州华三通信技术有限公司 | 防御传输控制协议同步洪泛攻击方法及传输控制协议代理 |
CN102780688A (zh) * | 2012-04-26 | 2012-11-14 | 华为技术有限公司 | 在传输控制协议tcp下防止攻击的方法和装置 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN107087007A (zh) * | 2017-05-25 | 2017-08-22 | 腾讯科技(深圳)有限公司 | 一种网络攻击的防御方法、相关设备及系统 |
CN109639712A (zh) * | 2018-12-29 | 2019-04-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种防护ddos攻击的方法及系统 |
CN110784464A (zh) * | 2019-10-24 | 2020-02-11 | 新华三信息安全技术有限公司 | 泛洪攻击的客户端验证方法、装置、系统及电子设备 |
-
2020
- 2020-03-29 CN CN202010233242.0A patent/CN111526126B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175013A (zh) * | 2006-11-03 | 2008-05-07 | 飞塔信息科技(北京)有限公司 | 一种拒绝服务攻击防护方法、网络系统和代理服务器 |
CN101594359A (zh) * | 2009-07-01 | 2009-12-02 | 杭州华三通信技术有限公司 | 防御传输控制协议同步洪泛攻击方法及传输控制协议代理 |
CN102780688A (zh) * | 2012-04-26 | 2012-11-14 | 华为技术有限公司 | 在传输控制协议tcp下防止攻击的方法和装置 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN107087007A (zh) * | 2017-05-25 | 2017-08-22 | 腾讯科技(深圳)有限公司 | 一种网络攻击的防御方法、相关设备及系统 |
CN109639712A (zh) * | 2018-12-29 | 2019-04-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种防护ddos攻击的方法及系统 |
CN110784464A (zh) * | 2019-10-24 | 2020-02-11 | 新华三信息安全技术有限公司 | 泛洪攻击的客户端验证方法、装置、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111526126A (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101109669B1 (ko) | 좀비 식별을 위한 가상 서버 및 방법과, 가상 서버에 기반하여 좀비 정보를 통합 관리하기 위한 싱크홀 서버 및 방법 | |
CN108551446B (zh) | 防攻击的syn报文处理方法、装置、防火墙及存储介质 | |
CN105939326B (zh) | 处理报文的方法及装置 | |
US20140298021A1 (en) | Method and system for storing information by using tcp communication | |
US20170012978A1 (en) | Secure communication method and apparatus | |
US9860272B2 (en) | System and method for detection of targeted attack based on information from multiple sources | |
WO2016006520A1 (ja) | 検知装置、検知方法及び検知プログラム | |
KR101236822B1 (ko) | Arp록킹 기능을 이용한 arp스푸핑 공격 탐지 방법과 그 방법을 실행하기 위한 프로그램이 기록된 기록매체 | |
CN102098305A (zh) | 较高级协议认证 | |
CN108737110B (zh) | 一种用于防重放攻击的数据加密传输方法及装置 | |
CN110061998B (zh) | 一种攻击防御方法及装置 | |
CN109067768B (zh) | 一种域名查询安全性的检测方法、系统、设备和介质 | |
CN106789858B (zh) | 一种访问控制方法和装置以及服务器 | |
CN107786489B (zh) | 访问请求验证方法及装置 | |
Li et al. | TuDoor Attack: Systematically Exploring and Exploiting Logic Vulnerabilities in DNS Response Pre-processing with Malformed Packets | |
KR101463873B1 (ko) | 정보 유출 차단 장치 및 방법 | |
CN108418844B (zh) | 一种应用层攻击的防护方法及攻击防护端 | |
CN111526126B (zh) | 数据安全传输方法,数据安全设备及系统 | |
CN109729084B (zh) | 一种基于区块链技术的网络安全事件检测方法 | |
CN114422248B (zh) | 一种攻击处理方法、系统、网络安全设备及存储介质 | |
KR20130009130A (ko) | 좀비 피씨 및 디도스 대응 장치 및 방법 | |
KR20170096780A (ko) | 침해사고 정보 연동 시스템 및 방법 | |
CN112491911B (zh) | Dns分布式拒绝服务防御方法、装置、设备及存储介质 | |
CN111064731B (zh) | 一种浏览器请求的访问权限的识别方法、识别装置及终端 | |
JP3986871B2 (ja) | アンチプロファイリング装置およびアンチプロファイリングプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |