WO2010048838A1 - 网络认证方法、客户端请求认证的方法、客户端和装置 - Google Patents

网络认证方法、客户端请求认证的方法、客户端和装置 Download PDF

Info

Publication number
WO2010048838A1
WO2010048838A1 PCT/CN2009/073885 CN2009073885W WO2010048838A1 WO 2010048838 A1 WO2010048838 A1 WO 2010048838A1 CN 2009073885 W CN2009073885 W CN 2009073885W WO 2010048838 A1 WO2010048838 A1 WO 2010048838A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
syn
value
client
rst
Prior art date
Application number
PCT/CN2009/073885
Other languages
English (en)
French (fr)
Inventor
蒋武
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 EP09823030.3A priority Critical patent/EP2343851B1/en
Publication of WO2010048838A1 publication Critical patent/WO2010048838A1/zh
Priority to US13/095,413 priority patent/US8453208B2/en
Priority to US13/856,141 priority patent/US8800001B2/en

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls

Definitions

  • Network authentication method client request authentication method, client and device
  • the present invention relates to the field of network security technologies, and in particular, to a network authentication method, a client request authentication method, a client, and a device.
  • DDOS Distributed Denial of Service
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • this time is on the order of minutes (about 30 seconds - 2 minutes); a user exception that causes a thread on the server to wait for 1 minute is not a big problem, but if there is a malicious attacker massively simulate this In this case, the server will consume a lot of resources in order to maintain a very large semi-join list. Even if the storage and traversal of the single-sheet will consume a lot of CPU time and memory, the CPU will continue to use this.
  • the IP in the list performs a retry of SYN_ACK. In fact, if the server's TCP/IP stack is not powerful enough, the final result is often a stack overflow crash.
  • the prior art provides an authentication method for preventing DDOS attacks.
  • the method uses a gateway for authentication protection.
  • the gateway device After receiving a SYN packet, the gateway device sends a SYC-ACK packet to the client, S YN_ACK.
  • the sequence number (SEQ, sequence number) in the data packet is constructed by the gateway based on information such as the client's IP.
  • the client After receiving the SYN_ACK packet, the client will respond with an ACK packet whose SEQ is the SEQ plus 1 of the S YN_ACK packet.
  • the gateway receives the ACK packet, the source IP of the client is recorded in the white list, and a RST data packet is sent to the client, and the client disconnects after receiving the packet.
  • the client When the client sends a SYN packet request to connect again within a certain period of time, as long as it is within the aging time of the whitelist, it can directly access the protected server. Although the prior art can protect the server to a certain extent, the protection device must send the packet twice, which wastes resources.
  • the prior art 2 proposes a method for reducing a flood attack by a firewall.
  • the firewall receives a SYN packet including a sequence number (“SEQ”) sent by a client, and sends a SYN_ACK packet to the client, where the SYN_ACK packet includes an order.
  • No. SEQ and acknowledgment sequence number ACK_SEQUENCE value (“ACK") where the ACK of the SYN_ACK packet is not equal to SEQ+1 of the SYN packet; after the client receives the SYN_ACK packet containing the erroneous ACK, according to the TCP/IP protocol,
  • the RST packet will be sent to the firewall.
  • the SEQ of the RST packet is ACKed with the ACK of the SYN_ACK packet.
  • the firewall verifies that the SEQ in the RST packet matches the ACK of the SYN_ACK packet and, if so, specifies the connection to the server as an authorized connection.
  • the method firewall only needs to send a packet to the
  • the firewall authenticates by checking whether the SEQ in the RST packet matches the ACK of the SYN_ACK packet, and the firewall needs to send the SYN_ACK packet. Stores the ACK value in the SYN_ACK packet. Once the network is abnormal or flooded, there are a large number of semi-connections in the network. The firewall needs to save and maintain a large number of ACK values, which occupies storage resources. Summary of the invention
  • the embodiment of the invention provides a network authentication method, a client requesting authentication method, and a client And devices, which can reduce the storage resources occupied by network authentication.
  • a network authentication method including:
  • the SYN_ACK data includes an acknowledgment number ACK2, and the value of ACK2 is a value obtained by function transformation based on network parameters of the SYN data;
  • the RST data includes a sequence number SEQ3 or an acknowledgment number ACK3, and the value of SEQ3 or ACK3 is the same as the value of ACK2, and the RST data further includes a SYN The same network parameters of the data;
  • a network authentication device includes:
  • a first receiving unit configured to receive synchronous SYN data sent by the client, where the SYN data includes a sequence number SEQ1 and a network parameter;
  • a sending unit configured to send, to the client, synchronization confirmation SYN_ACK data in response to the SYN data received by the first receiving unit, where the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is a network according to the SYN data.
  • a second receiving unit configured to receive a reset request RST data sent by the client in response to the SYN_ACK data sent by the sending unit, where the RST data includes a sequence number SEQ3 or an acknowledgment number ACK3, and the value of ACK3 is related to SEQ3 or ACK2
  • the values are the same, and the RST data further includes the same network parameters as the SYN data;
  • a calculating unit configured to perform the function transformation according to the network parameter of the RST data received by the second receiving unit, to obtain a check value CHK;
  • An authentication unit configured to authenticate the client when the CHK calculated by the computing unit matches SEQ3 or ACK3 of the RST data.
  • a method for a client to request authentication comprising:
  • Sending synchronization SYN data to the gateway the SYN data includes a sequence number SEQ1 and a network parameter; the receiving gateway sends a synchronization confirmation SYN_ACK data in response to the SYN data,
  • the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is a value obtained by performing a function transformation according to a network parameter of the SYN data;
  • the reset request RST data in response to the SYN_ACK data is sent to the gateway, where the RST data includes a sequence number SEQ3 or an acknowledgment number ACK3, and the value of SEQ3 or ACK3 is the same as the value of ACK2.
  • the RST data further includes the same network parameters as the SYN data; and instructs the gateway to authenticate the client according to the RST data, and SEQ3 or ACK3.
  • a client, the client includes:
  • a sending unit configured to send synchronization SYN data to the gateway, where the SYN data includes a sequence number SEQ1 and a network parameter;
  • a receiving unit configured to receive, by the gateway, a synchronization confirmation SYN_ACK data that is responsive to the SYN data, where the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is a value obtained by performing a function transformation according to a network parameter of the SYN data;
  • a determining unit configured to determine whether the value of ACK2 is the same as the expected value, and send a reset request RST data in response to the SYN_ACK data to the gateway when the value of ACK2 is different from the expected value, where the RST data includes a sequence number SEQ3 or a confirmation No. ACK3, and the value of SEQ3 or ACK3 is the same as the value of ACK2, the RST data further includes the same network parameter as the SYN data; and instructs the gateway to authenticate the client according to the RST data, and SEQ3 or ACK3.
  • the method, the device, and the client provided by the embodiment of the present invention do not need to store the value of the acknowledgment number of the SYN_ACK packet at each authentication, but are calculated and authenticated by the same function at the time of verification. , reducing the occupation of storage resources.
  • the client when the client receives the SYN_ACK data, it should determine whether the ACK2 of the SYN_ACK data is the same as the expected value. If not, send the RST data to the gateway to facilitate the gateway to authenticate the client.
  • FIG. 1 is a schematic flowchart of a network authentication method according to Embodiment 1 of the present invention
  • 2 is a schematic flowchart of a network authentication method according to Embodiment 3 of the present invention
  • FIG. 3 is a schematic structural diagram of a network authentication apparatus according to an embodiment of the present invention.
  • FIG. 4 is a flowchart of a method for a client to request authentication according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a client according to an embodiment of the present invention.
  • a schematic flowchart of a network authentication method according to Embodiment 1 of the present invention includes: S11: receiving SYN data sent by a client, where the SYN data includes a sequence number SEQ1 and a network parameter;
  • This embodiment takes the TCP/IP protocol as an example, so the data referred to herein is in a format conforming to the TCP/IP protocol specification.
  • the structure of the IP packet header includes the following information: Version, Type of Service, Total Length, ID, Identification, Flags, Fragment Offset ), TTL, Time to Live Upper Protocol Type, Header Checksum, Source IP Address, Destination IP Address, Option (Options) ) and data (Padding).
  • the structure of the TCP packet header includes the following: Source port (SPORT, Source Port): Number of the calling port; Destination port (DPORT, Destination Port): Number of the called port; Sequence number (SEQ, Sequence Number): Transmitter The number of each TCP packet sent is incremented by 1 and the initial value is random.
  • ACK Acknowledgment Number: The expected TCP packet sequence number sent by the peer (implicitly acknowledges the received TCP) Packet); Header length (HLEN): Length of the header in 32-byte units; Reserved field: Set to 0; Code Bits: Used to control the transmission of segments (such as session establishment and abort) ), including: URG, ACK, PSH, RST, SYN, ⁇ six bits; Window size: Receiver can continue to receive Bytes; Checksum: Checksum including TCP header and data; Urgent Pointer: Offset of current sequence number to urgent data location; Option (Option); Data ( Data): Upper layer protocol data. In the application layer, TCP packets are encapsulated in IP packets.
  • the SYN, synchronize packet is the first packet of the TCP connection used to initiate a TCP connection request.
  • the TCP connection needs to be established through three handshakes. For example, if A wants to establish a TCP connection with B, then A sends a SYN packet to B.
  • the sequence number SEQ is X.
  • B sends a SYN_ACK packet to A, the sequence number is y, and the confirmation number is x. +1 ; Finally A sends an ACK packet to B, the acknowledgment number is y+1, so A and B successfully establish a TCP connection.
  • SYN_ACK data in response to the SYN data, where the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is a value obtained by performing a function transformation according to a network parameter of the SYN data, and the ACK2 is The value is not equal to SEQ1 plus 1;
  • the gateway After receiving the SYN packet including the sequence number SEQ1 sent by the client, the gateway performing authentication protection needs to send a SYN_ACK packet to the client, and the acknowledgement number sent at this time is not SEQ1+1, but is based on the SYN sent by the client.
  • the network parameter carried in the data packet constructs an acknowledgment number ACK2 according to a specific function.
  • Receive reset request RST data sent by the client in response to the SYN_ACK data where the RST data includes a sequence number SEQ3 or an acknowledgement number ACK3, and a value of SEQ3 or ACK3 is the same as a value of ACK2, where the RST data further includes The same network parameters as the SYN data;
  • step S12 because the ACK2 value received by the client is different from the expected value, according to the TCP/IP protocol, the client sends a reset connection RST (RESET) packet whose sequence number SEQ3 or acknowledgment number ACK3 is equal to The value of the acknowledgment number ACK2 of the SYN_ACK packet.
  • RST reset connection
  • the sequence number SEQ3 and the acknowledgment number ACK3 of the RST packet may be equal and equal to the value of ACK2; or any one of SEQ3 or ACK3 may be equal to the value of ACK2, and the corresponding authentication is performed by using SEQ3 or ACK3. Certification.
  • the ACK packet ACK3 value and the S YN_ACK packet acknowledgment number ACK2 The values are the same. Therefore, at the time of authentication, only the network parameters carried in the RST packet are subjected to the same function transformation, and the calculated value is compared with the value of the sequence number SEQ3 or the acknowledgment number ACK3 of the RST packet. If the two match, it is considered that the SYN packet is sent the same as the client that sent the RST packet, so the authentication is successful, otherwise the authentication fails.
  • the network parameters include one or more of a source IP address SIP, a source port SPORT, a destination IP address DIP, a destination port DPORT, a protocol type protocol, and a lifetime TTL in a TCP/IP packet header structure. If the SYN packet is sent and the RST packet is sent to the same host, the network parameters carried in the two packets are the same. Therefore, the network parameters carried by the RST packet are verified by the same function transformation.
  • the value CHK is compared with the sequence number SEQ3 of the RST packet or the acknowledgment number ACK3 (that is, the network parameter carried by the SYN packet is obtained by the same function transformation), and if the CHK is equal to the value of SEQ3 or ACK3, then the authentication by the client; If CHK is not equal to the value of SEQ3 or ACK3, the authentication is considered to have failed.
  • the above FUNC function transformation may be a HASH function or an arbitrary function.
  • the variable value satisfying the network parameter is transformed by the function, the variable value and the function value have a corresponding relationship, that is, the function value calculated by the same network parameter.
  • the result is the same, the function results calculated by different network parameters are different.
  • the client's IP address and other information can be recorded in the whitelist.
  • the authentication may not be required, and the client is allowed to directly access the protected. Server.
  • the contents of the whitelist may include: a source IP address, a creation time, a latest time, a time-to-live TTL, and a valid tag; wherein, the creation time indicates the time when the client record was created, and the latest time is the time when the last session occurred, and the TTL indicates The IP packet actually reaches the TTL value recorded by the device, and the valid flag indicates whether the record is valid.
  • the acknowledgment number ACK included in the gateway is calculated by performing a specific function on the network parameter carried by the SYN data packet sent by the client, and therefore, in the verification
  • the calculated value is compared with the SEQ value in the RST packet to determine whether the client passes the authentication. Therefore, the method provided by the embodiment of the present invention does not need to store the value of the SYN_ACK at each authentication, but is calculated and recognized by the same function at the time of verification. Proof, reducing the occupation of storage resources.
  • This embodiment can further prevent an attacker from forging a fake IP to perform a flood attack.
  • the gateway cannot distinguish whether the host that sent the RST packet and the host that sends the SYN packet are the same host. That is to say, in this case, whether it is an attack host or a RST packet sent by a forged host, the network parameters it carries, such as source IP address SIP, source port address SPORT, destination IP address DIP, destination port DPORT, protocol The type of protocol is the same.
  • the lifetime TTL is related to the operating system type and the number of hops. If the attacking host and the spoofed host are in the same LAN, the number of hops to the gateway is the same, so the attacking host packet is attacked. The TTL is the same as the TTL value of the spoofed host packet.
  • the value of the function transformation of the gateway according to the above network parameters carried by the RST packet is the same, so the virtual IP cannot be identified. For example, if the host that sends the SYN is a forged host and the host that replies to the RST packet is the attacking host, the gateway still considers that the authentication is successful, and the attacking host can send a large number of packets that the gateway considers normal to attack the server.
  • the embodiment is different from the first embodiment in that the network parameter used in performing the function transformation includes the identifier ID (identification) in the IP packet header.
  • ID indicates the order in which IP packets are sent in the same host system. Each time a packet is sent, the ID is automatically incremented by one; therefore, at two different hosts at the same time, the ID of the packet is almost impossible to be the same or close. That is to say, if the SYN packet and the RST packet received by the gateway within a certain period of time are sent by the same host, the ID values are not far apart; if they are sent by different hosts, the ID values will be far apart, and the gateway utilizes This feature allows for the identification of fake IPs.
  • the network parameter including the ID value is subjected to function transformation as the confirmation number of the SYN_ACK packet; and the same function transformation is performed based on the same network parameter during authentication.
  • the same function transformation is performed based on the same network parameter during authentication.
  • FIG. 2 is a schematic flowchart of a network authentication method according to Embodiment 3 of the present invention. This embodiment describes an application example, and a firewall is used to protect a server.
  • Step 21 The client sends a SYN packet to the gateway, requesting to establish a connection with the server, and the server is protected by a firewall.
  • the sequence number of the SYN packet arriving at the firewall has a SEQ1 value of 100, an ID value of 232, and a lifetime TTL value of 58.
  • Step 22 The firewall responds to the SYN packet, and sends a SYN_ACK packet to the client.
  • Step 23 After receiving the SYN_ACK packet containing the erroneous acknowledgement number ACK2, the client sends a RST packet of the reset request to the firewall, the value of the ACK packet ACK3 and the acknowledgment number of the SYN_ACK packet sent by the firewall.
  • the values are the same, that is, FUNC (232, 58), SEQ3 is not limited, and can be FUNC (232, 58) or other values selected by the client. ID of the RST packet, with a value of 233 and a time-to-live TTL of 58.
  • Step 24 After receiving the RST data packet, the firewall needs to verify the identity of the client, compare the value of the ACK3 carried by the RST packet with the identifier ID carried by the RST, and the lifetime TTL, and perform the function transformation. Whether it matches, that is, whether the difference between FUNC( 232, 58 ) and FUNC ( 233 , 58 ) is within the allowable window WINDOWS range. If yes, the client's authentication allows the client to communicate directly with the server.
  • x, y, z are three constant parameters
  • Mod means take the remainder
  • M means modulo 65536
  • hash means hash function
  • other symbols have the same meaning as the previous description.
  • the difference is the ID value.
  • the ID differs by 1 or a small number. Therefore, the network parameters carried by the SYN_ACK packet and the RST packet are converted by the FUNC function. The value that comes out will be within the corresponding window range. For example, you can divide x, y, and z into 1, 1 , 1 , and the difference will not be greater than 10. Then you can take the window as 10.
  • TTL For a request initiated by a fake real host, although the HASH result is the same, its TTL and ID are usually different, because the IDs of the two different hosts at the same time are almost impossible to be the same or close.
  • the value of the TTL is related to the operating system version and the number of hops of the route. It is difficult to determine that the TTL of the real host to the gateway is the same as the TTL of the attacking host to the gateway. Therefore, the calculated two FUNC values are difficult to be consistent, thus achieving Certification.
  • Embodiment 4 Network authentication device
  • FIG. 3 is a schematic structural diagram of a network authentication apparatus according to an embodiment of the present invention, where the network authentication apparatus includes:
  • the first receiving unit 31 is configured to receive synchronous SYN data sent by the client, where the SYN data includes a sequence number SEQ1 and a network parameter;
  • the sending unit 33 is configured to send, to the client, SYN-ACK data in response to the SYN data received by the first receiving unit 31, where the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is based on the SYN data.
  • the value of the network parameter is transformed by the function, and the value of ACK2 is not equal to SEQ1+1;
  • the second receiving unit 35 is configured to receive reset request data RST data sent by the client in response to the synchronization confirmation SYN_ACK data sent by the sending unit 33, where the RST data includes a sequence number SEQ3 or an acknowledgment number ACK3, and SEQ3 or ACK3 The value is the same as the value of ACK2, and the RST data further includes the same network parameter as the SYN data;
  • the calculating unit 37 is configured to perform the function transformation according to the network parameter of the RST data received by the second receiving unit 35, to obtain a check value CHK;
  • An authentication unit 39 configured to calculate the CHK and the RST data in the calculating unit 37 When the SEQ3 or ACK3 of the packet matches, the authentication of the client is passed.
  • the authentication unit 39 is configured to: when the CHK calculated by the calculating unit 37 is equal to the SEQ3 or ACK3 of the RST data, by using the authentication of the client, specifically, whether the values of the CHK and the SEQ3 or ACK3 are equal. If yes, pass the authentication of the client.
  • the authentication unit 39 is configured to: when the difference between the CHK calculated by the calculating unit 37 and the SEQ3 or ACK3 of the RST data is within a preset range, The authentication of the client, specifically, is used to compare whether the difference between CHK and SEQ3 or ACK3 is within a set range, and if so, the authentication of the client.
  • An embodiment of the present invention further provides a method for requesting authentication by a client, and a schematic structural diagram thereof is shown in FIG. 4, where the method includes:
  • Step 401 The client sends synchronous SYN data to the gateway, where the SYN data includes a sequence number.
  • Step 402 The client receiving gateway sends a synchronization confirmation SYN_ACK data in response to the SYN data, where the SYN_ACK data includes an acknowledgement number ACK2, and the value of the ACK2 is a value obtained by performing a function transformation according to the network parameter of the SYN data, and the ACK2 is The value is not equal to SEQ1 plus 1;
  • Step 403 If the client determines that the value of ACK2 is different from the expected value, the client sends a reset request RST data to the gateway in response to the SYN_ACK data, where the RST data includes a sequence number SEQ3 or an acknowledgement number ACK3. And the value of SEQ3 or ACK3 is the same as the value of ACK2, the RST data further includes the same network parameter as the SYN data; and instructs the gateway to authenticate the client according to the RST data, and SEQ3 or ACK3.
  • the gateway authenticates the client according to the RST data in the reset request RST data, and the SEQ3 or ACK3; that is, the gateway according to the RST data network.
  • the parameter performs the function transformation to obtain a check value CHK; if the CHK matches the value of SEQ3 or ACK3, the authentication is performed on the client.
  • the matching of the CHK with the value of SEQ3 or ACK3 specifically includes: if CHK and SEQ3 Or ACK3 is equal, then the authentication of the client is passed. Or if the difference between CHK and SEQ3 or ACK3 is within the set range, the authentication is performed on the client.
  • the network parameters include: one or more of a source IP address SIP, a source port SPORT, a destination IP address DIP, a destination port DPORT, a protocol type Protocol, and a lifetime TTL in the IP header of the data packet.
  • the network parameter includes: an identity identifier ID in an IP packet header.
  • the function is a hash function.
  • the embodiment of the present invention further provides a client.
  • the structure of the client is shown in FIG. 5.
  • the client includes: a sending unit 51, a receiving unit 52, and a determining unit 53, wherein the sending unit 51
  • the sending SYN data is sent to the gateway, where the SYN data includes a sequence number SEQ1 and a network parameter.
  • the receiving unit 52 is configured to: after the sending unit 51 sends the synchronization SYN data to the gateway, the receiving gateway sends a synchronization confirmation that responds to the SYN data.
  • the SYN_ACK data includes an acknowledgment number ACK2
  • the value of ACK2 is a value obtained by performing a function transformation according to the network parameter of the SYN data, and the value of ACK2 is not equal to SEQ1 plus 1
  • the determining unit 53 is configured to determine ACK2 Whether the value is the same as the expected value, and when the value of ACK2 is different from the expected value, sending a reset request RST data in response to the SYN_ACK data, the RST data including the sequence number SEQ3 or the acknowledgment number ACK3, and the SEQ3 or ACK3
  • the value is the same as the value of ACK2, the RST data further includes the same network parameter as the SYN data; and indicates It is based on the number RST off, and SEQ3 or ACK3 to authenticate the client.
  • the network authentication apparatus may be used to perform the network authentication method provided in Embodiments 1 to 3.
  • the acknowledgement number ACK included therein is a SYN sent by the client.
  • the network parameters carried by the data packet are calculated by a specific function. Therefore, during the verification, the same function calculation is performed on the network parameters carried by the RST data packet returned by the client, and the calculated value is compared with the RST data packet.
  • the ACK value or the SEQ value is compared to determine whether the client passes the authentication. Therefore, the network provided by the embodiment of the present invention
  • the network authentication device does not need to store the value of the acknowledgment number of the SYN_ACK packet at each authentication, but is calculated and authenticated at the time of verification, thereby reducing the occupation of the storage resource.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
  • the embodiments of the present invention provide a network authentication device, which is generally used to strengthen security protection software or hardware entities, and is used to protect servers, private networks, and the like from unauthorized connections and malicious attacks.
  • firewalls may be formed. Part or all of a gateway, router, etc.; can also be used as part of a client to protect clients from attacks and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Description

网络认证方法、 客户端请求认证的方法、 客户端和装置
本申请要求于 2008 年 10 月 27 日提交中国专利局、 申请号为 200810217107.6、 发明名称为 "网络认证方法和装置"的中国专利申请的优先 权, 其全部内容通过引用结合在本申请中。
技术领域
本发明涉及网络安全技术领域, 尤其涉及一种网络认证方法、客户端请求 认证的方法、 客户端和装置。
背景技术
网络上出现了大量的分布式拒绝服务 ( DDOS , Distributed Denial of Service )攻击, 俗称洪水攻击, 被攻击主机或服务器上有大量等待的传输控制 协议 (TCP , Transmission Control Protocol)连接网络中充斥着大量的无用的数据 包, 攻击者通过制造高流量无用数据, 利用受害主机提供的服务或传输协议上 的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常 请求, 造成网络拥塞, 严重时会造成系统死机。 同步洪水 (SYN Flood , Synchronize Flood)是 DDoS的主要攻击手段之一, SYN Flood利用了 TCP/互联 网协议 (IP , Internet Protocol ) 的固有漏洞, 面向连接的 TCP三次握手是 S YN Flood存在的基础。 假设一个用户向服务器发送了 SYN报文后突然死机或掉 线, 那么服务器在发出同步应答 (SYN_ACK, synchronize acknowledge )数据 包后是无法收到客户端的确认 ACK数据包的(第三次握手无法完成),这种情 况下服务器端一般会重试(再次发送 SYN_ACK数据包给客户端)并等待一段 时间后丟弃这个未完成的连接, 这段时间的长度我们称为同步延迟(SYN Timeout ), 一般来说这个时间是分钟的数量级(大约为 30秒 -2分钟); 一个用 户出现异常导致服务器的一个线程等待 1分钟并不是什么很大的问题,但如果 有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半 连接列表而消耗非常多的资源,即使是筒单的保存并遍历也会消耗非常多的中 央处理器 CPU时间和内存, 何况还要不断对这个列表中的 IP进行 SYN_ACK 的重试。 实际上如果服务器的 TCP/IP栈不够强大, 最后的结果往往是堆栈溢 出崩溃。 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的 TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之 小), 此时从正常客户的角度看来, 服务器失去响应, 这种情况称作服务器端 受到了 SYN Flood攻击 ( SYN洪水攻击)。
如图 1所示, 现有技术一提供了一种防止 DDOS攻击的认证方法, 该方 法利用网关进行认证防护, 网关设备收到 SYN 数据包后, 向客户端发送 SYC-ACK数据包, S YN_ACK数据包内的顺序号 (SEQ , sequence number)是 网关根据客户端的 IP等信息构造的。 客户端收到 SYN_ACK数据包后会回应 一个其应答 SEQ为 S YN_ACK数据包的 SEQ加 1的 ACK数据包。 当网关收 到这个 ACK数据包, 则把客户端的源 IP记入白名单中, 并发送一个 RST数 据包给客户端, 客户端收到后则断开连接。 当客户端在一定时间内再次发送 SYN数据包请求连接的时候, 只要在白名单的老化时间之内, 则可以直接访 问受保护的服务器。现有技术一虽然一定程度上可以保护服务器,但防护设备 必须发两次回包, 浪费资源。
现有技术二提出了一种防火墙降低洪水攻击的方法,防火墙接收到客户端 发送的包括顺序号 ("SEQ")的 SYN数据包, 向客户端发送 SYN_ACK数据包, 所述 SYN_ACK数据包包括顺序号 SEQ和确认顺序号 ACK_SEQUENCE值 ("ACK"),其中 SYN_ACK分组的 ACK不等于 SYN数据包的 SEQ+1 ;客户端 接收到包含错误的 ACK的 SYN_ACK数据包后, 按照 TCP/IP协议规定, 会 向防火墙发送 RST数据包, 正常情况下 RST数据包的 SEQ与 SYN_ACK数 据包的 ACK—致。 防火墙检验 RST数据包中的 SEQ是否与 SYN_ACK数据 包的 ACK匹配, 并且如果匹配, 则指定与服务器的连接作为授权的连接。 该 方法防火墙只需要向客户端发送一次包就可以实现认证。
发明人在实现本发明的过程中发现, 现有技术二至少存在如下的缺陷: 防火墙通过检验 RST数据包中的 SEQ是否与 SYN_ACK数据包的 ACK 匹配进行认证,那么防火墙需要在发送 SYN_ACK数据包之后存储 SYN_ACK 数据包中的 ACK值。 一旦网络异常或受到洪水攻击时, 网络中存在大量的半 连接, 防火墙需要保存并维护大量的 ACK值, 占用了存储资源。 发明内容
本发明实施例提供了一种网络认证方法、客户端请求认证的方法、客户端 和装置, 可以减少网络认证时占用的存储资源。
一种网络认证方法, 包括:
接收客户端发送的同步 SYN数据,所述 SYN数据包括顺序号 SEQ1和网 络参数;
向客户端发送响应所述 SYN 数据的同步确认 SYN_ACK数据, 所述
SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN数据的网络参 数进行函数变换得到的值;
接收客户端响应所述 SYN_ACK数据而发送的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2 的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数;
根据 RST数据的网络参数进行所述函数变换, 得到校验值 CHK;
若 CHK与 SEQ3或 ACK3匹配, 则通过对所述客户端的认证。
一种网络认证装置, 包括:
第一接收单元, 用于接收客户端发送的同步 SYN数据, 所述 SYN数据包 括顺序号 SEQ1和网络参数;
发送单元, 用于向客户端发送响应所述第一接收单元接收的 SYN数据的 同步确认 SYN—ACK数据,所述 SYN—ACK数据包括确认号 ACK2, ACK2的 值为根据所述 SYN数据的网络参数进行函数变换得到的值;
第二接收单元,用于接收客户端响应所述发送单元发送的 SYN_ACK数据 而发送的重置请求 RST数据,所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 ACK3的值与 SEQ3或 ACK2的值相同,所述 RST数据还包括与 SYN数据 相同的网络参数;
计算单元, 用于根据所述第二接收单元接收的 RST数据的网络参数进行 所述函数变换, 得到校验值 CHK ;
认证单元,用于在所述计算单元计算得到的 CHK与所述 RST数据的 SEQ3 或 ACK3匹配时, 通过对所述客户端的认证。
一种客户端请求认证的方法, 所述方法包括:
向网关发送同步 SYN数据,所述 SYN数据包括顺序号 SEQ1和网络参数; 接收网关发送响应所述 SYN 数据的同步确认 SYN_ACK数据, 所述 SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN数据的网络参 数进行函数变换得到的值;
若判断 ACK2的值与期望值不同, 则向网关发送响应所述 SYN_ACK数 据的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3, 且 SEQ3或 ACK3的值与 ACK2的值相同,所述 RST数据还包括与 SYN数据 相同的网络参数; 并指示网关根据 RST数据, 以及 SEQ3或 ACK3对客户端 进行认证。
一种客户端, 所述客户端包括:
发送单元, 用于向网关发送同步 SYN数据, 所述 SYN数据包括顺序号 SEQ1和网络参数;
接收单元, 用于接收网关发送响应所述 SYN数据的同步确认 SYN_ACK 数据, 所述 SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN 数据的网络参数进行函数变换得到的值;
判断单元, 用于判断 ACK2的值是否与期望值相同, 并在 ACK2的值是 与期望值不同时,向网关发送响应所述 SYN_ACK数据的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3, 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数; 并指示 网关根据 RST数据, 以及 SEQ3或 ACK3对客户端进行认证。
由以上技术方案可知, 本发明实施例提供的方法、 装置和客户端, 在每次 认证时无需存储 SYN_ACK数据包的确认号的值,而是在校验时通过相同的函 数计算得到并进行认证, 减少了对存储资源的占用。 另外, 在客户端接收到 SYN_ACK数据,应判断 SYN_ACK数据的 ACK2是否与期望值相同,如果不 相同, 向网关发送 RST数据, 以便于网关对该客户端的认证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付 出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例一提供的网络认证方法流程示意图; 图 2为本发明实施例三提供的网络认证方法的流程示意图;
图 3为本发明实施例提供的网络认证装置结构示意图;
图 4为本发明实施例提供的客户端请求认证的方法的流程图;
图 5为本发明实施例提供的客户端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 实施例一
如图 1所示, 为本发明实施例一提供的网络认证方法流程示意图, 包括: Sll、 接收客户端发送的 SYN数据, 所述 SYN数据包括顺序号 SEQ1和 网络参数;
本实施例以 TCP/IP协议为例,因此本文所指的数据表现为符合 TCP/IP协 议规范的格式。 IP数据包首部的结构内容包括如下信息: 版本号 (Version ), 服务类型( Type of Service )、总长度( Total Length )、标识( ID, Identification )、 标志 ( Flags )、 头偏移( Fragment Offset )、 生存时间 (TTL, Time to Live )上 层协议类型( Protocol )、头部校验 ( Header Checksum )、源 IP地址( SIP, Source Address ), 目的 IP地址 ( DIP, Destination Address )、 选项 (Options )和数据 ( Padding )。
TCP数据包首部的结构包括以下内容: 源端口 (SPORT, Source Port): 呼 叫端口的编号; 目的端口 (DPORT , Destination Port): 被叫端口的编号; 顺序 号 (SEQ, Sequence Number): 发送端发出的每个 TCP数据包的编号, 依次递 增 1 , 初始值是随机的; 确认号 (ACK, Acknowledgment Number): 期望的对 端发送过来的 TCP数据包顺序号 (隐含确认已收到的 TCP 包); 报头长度 (HLEN): 以 32字节为单位的报头的长度; 保留域 (Reserved): 设置为 0; 编码 位 (Code Bits):用于控制段的传输(如会话的建立和中止), 包括: URG、 ACK、 PSH、 RST、 SYN, ΠΝ六个位; 窗口大小 (Window): 接收方能够继续接收的 字节数; 校验和 (Checksum): 包括 TCP报头和数据在内的校验和; 紧急指针 (Urgent Pointer): 当前顺顺序号到紧急数据位置的偏移量; 选项 (Option); 数据 (Data): 上层协议数据。 在应用层中, TCP数据包是封装于 IP数据包的。
同步 (SYN, synchronize)数据包是 TCP连接的第一个包, 用来发起 TCP 连接请求。 TCP连接的建立需要经过三次握手,例如 A要和 B建立 TCP连接, 则 A向 B发送 SYN数据包, 顺序号 SEQ是 X; B向 A发送 SYN_ACK数据 包, 顺序号是 y, 确认号是 x+1 ; 最后 A向 B再发送 ACK数据包, 确认号是 y+1 , 如此则 A和 B成功建立 TCP连接。
512、 向客户端发送响应所述 SYN数据的同步确认 SYN_ACK数据, 所 述 S YN_ACK数据包括确认号 ACK2 , ACK2的值为根据所述 S YN数据的网 络参数进行函数变换得到的值, 且 ACK2的值不等于 SEQ1加 1 ;
在接收到客户端发送的包括顺序号 SEQ1的 SYN数据包之后, 进行认证 防护的网关需要向客户端发送 SYN_ACK数据包, 此时发送的确认号不是 SEQ1+1 , 而是根据客户端发送的 SYN数据包中携带的网络参数,根据某特定 的函数构造一个确认号 ACK2。
513、 接收客户端响应所述 SYN_ACK数据而发送的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数;
步骤 S12中,由于客户端接收到的 ACK2值与期望值的不同,根据 TCP/IP 协议的规定, 客户端将发送重置连接 RST ( RESET )数据包, 其顺序号 SEQ3 或确认号 ACK3的值等于 SYN_ACK数据包的确认号 ACK2的值。 通常情况 下, RST数据包的顺序号 SEQ3和确认号 ACK3可以相等, 并等于 ACK2的 值;或者也可以 SEQ3或 ACK3中任一个与 ACK2的值相等,相应的认证的时 候, 采用 SEQ3或 ACK3进行认证。
S14、 根据 RST数据的网络参数进行所述函数变换, 得到校验值 CHK; 具体地, 可以将 RST数据包携带的网络参数进行所述 FUNC函数变换, 得到 校验值 CHK; 比较 CHK与 SEQ3或 ACK3是否匹配, 若匹配, 则通过对所述 客户端的认证。
由于 RST数据包的确认号 ACK3的值与 S YN_ACK数据包的确认号 ACK2 的值相同, 因此, 在认证的时候, 只需要对回包 RST数据包携带的网络参数 进行相同的函数变换, 计算得到的值与 RST数据包的顺序号 SEQ3或确认号 ACK3的值进行比较,如果两者是匹配的,则认为发送 SYN数据包与发送 RST 数据包的客户端相同, 因此认证成功, 否则认证失败。
该网络参数包括 TCP/IP数据包头结构中的源 IP地址 SIP、源端口 SPORT、 目的 IP地址 DIP、 目的端口 DPORT、 协议类型 protocol和生命周期 TTL等中 的一项或多项。 如果发送 SYN包和发送 RST包是同一台主机的话, 通常两个 包中携带的上面这些网络参数都是相同的, 因此认证的时候将 RST包携带的 网络参数进行相同的函数变换得到的校验值 CHK, 与 RST包的顺序号 SEQ3 或确认号 ACK3 (即 SYN包携带的网络参数经过所述相同的函数变换得到 ) 进行比较, 如果 CHK等于 SEQ3或 ACK3的值, 那么通过客户端的认证; 如 果 CHK不等于 SEQ3或 ACK3的值, 则认为认证失败。
上述的 FUNC函数变换, 可以是 HASH函数或任意函数, 只要满足网络 参数的变量值经过函数变换后, 变量值与函数值具有——对应的关系即可, 即 相同的网络参数计算得到的函数值结果相同,不同的网络参数计算得到的函数 结果不同。 例如 FUNC函数为 Func=Hash(SIP, SPORT), 表示对数据包中携 带的源 IP地址和源端口 SPORT进行 hash变换得到的值。
若客户端通过认证, 则可以将客户端的 IP地址等信息记入白名单中, 下 次客户端再请求连接的时候, 在白名单记录的有效期内, 可以不必认证, 允许 客户端直接访问受保护的服务器。 例如, 白名单的内容可以包括: 源 IP地址、 创建时间、 最新时间、 生存时间 TTL和有效标记; 其中, 创建时间表示创建 客户端记录的时间, 最新时间是最近一次会话发生的时间, TTL表示该 IP数 据包实际达到该设备所记录的 TTL数值, 有效标记表示记录是否有效。
本发明实施例中, 网关在向客户端发送 SYN_ACK数据包时,其中包含的 确认号 ACK是通过对客户端发送的 SYN数据包携带的网络参数进行特定的函 数计算得到的, 因此, 在校验的时候, 对客户端返回的 RST数据包携带的网 络参数进行相同的函数计算, 将计算得到的值与 RST数据包中的 SEQ值进行 比较, 判断客户端是否认证通过。 因此, 本发明实施例提供的方法在每次认证 时无需存储 SYN_ACK的值,而是在校验时通过相同的函数计算得到并进行认 证, 减少了对存储资源的占用。 实施例二
本实施例可以进一步防止攻击者伪造虚假 IP进行洪水攻击。
若有一台攻击主机伪造另外一台主机的 IP地址, 由于被伪造的主机发起 请求, 攻击主机收到错误序号的 SYN_ACK包都会回复 RST包, 且 RST包与 被伪造主机发的 RST包无明显差异, 则网关根据接收到的 RST无法区分是发 RST包得主机与发 SYN包的主机是否同一主机。 也就是说, 在这种情况下, 无论是攻击主机或被伪造主机发的 RST数据包, 其携带的网络参数如源 IP地 址 SIP、 源端口地址 SPORT、 目的 IP地址 DIP、 目的端口 DPORT、 协议类型 protocol等是相同的, 生命周期 TTL跟操作系统类型和路由跳数有关, 如果攻 击主机和被伪造主机同一局域网内, 那么它们到网关的路由跳数是相同的, 因 此其攻击主机数据包的 TTL与被伪造主机数据包的 TTL数值也是相同的。 这 样网关根据 RST数据包携带的上面的网络参数进行函数变换的值是相同的, 因此是无法识别虚 支 IP的。 例如, 若发 SYN的主机是被伪造主机, 而回复 RST包的主机是攻击主机,则网关仍然认为认证成功,那么攻击主机就可以发 大量的被网关认为正常的数据包去攻击服务器。
为了使网关可以识别虚假 IP的情形,本实施例与实施例一不同之处在于, 在进行函数变换时采用的网络参数包括有 IP 数据包首部中的标识 ID ( Identification )。 ID字段表示 IP数据包在同一主机系统发包的次序, 每发一 个数据包, ID自动加 1 ; 因此在同一时间两台不同主机, 其发包的 ID几乎不 可能一样或接近。 也就是说, 如果网关在一定时间内接收到的 SYN数据包和 RST数据包是同一主机发的, 那 ID值相差不远; 如果是不同主机发的, 那么 ID值会相差较远, 网关利用这个特性可以进行虚假 IP的识别。 具体地, 在进 行实施例一所述的函数变换时, 将包括 ID值在内的网络参数进行函数变换作 为 SYN_ACK 包的确认号; 认证时也基于相同的网络参数进行相同的函数变 换。 在比较 CHK与 ACK3是否匹配时, 具体的可以比较 CHK与 ACK3是否 在设定的范围内, 如果是则认为认证成功, 否则认证失败。 实施例三
如图 2所示为本发明实施例三提供的网络认证方法的流程示意图,本实施 例描述一个应用实例, 保护服务器的是防火墙。
步骤 21、 客户端向网关发送 SYN数据包, 请求建立与服务器的连接, 该 服务器受防火墙的保护。 到达防火墙的 SYN数据包的顺序号 SEQ1值为 100, 标识 ID的值为 232, 生存时间 TTL的值为 58;
步骤 22、 防火墙响应 SYN数据包, 向客户端发送 SYN_ACK数据包, 该 SYN_ACK数据包的确认号 ACK2的值等于 FUNC(ID,TTL) =FUNC( 232, 58 ), 且 ACK2的值不等于 (SEQ1+1 ) 即不等于 101 ;
步骤 23、客户端接收到包含错误的确认号 ACK2的 SYN_ACK数据包后, 向防火墙发送重置请求的 RST数据包, 该 RST数据包的确认号 ACK3的值与 防火墙发送的 SYN_ACK数据包的确认号的值一致, 即为 FUNC ( 232, 58 ), SEQ3并不作限定,可以是 FUNC ( 232, 58 )也可以是客户端选定的其他数值。 RST数据包的标识 ID,值为 233 , 生存时间 TTL,值为 58。
步骤 24、 防火墙收到 RST数据包之后, 需要对客户端的身份进行校验, 比较 RST数据包携带的确认号 ACK3的数值与根据 RST携带的标识 ID,和生 存时间 TTL,进行函数变换后的数值是否匹配,即比较 FUNC( 232, 58 )与 FUNC ( 233 , 58 )的差值是否处于允许的窗口 WINDOWS范围内。 如果是, 则通过 客户端的认证, 则允许客户端直接与服务器进行通信。
上面的函数仅以 ID和 TTL为变量进行计算,也可以综合考虑多个变量构 造 FUNC函数, 例如, 可以取:
FUNC(TTL,ID,SIP,SPORT,DIP,DPORT,PROTOCOL)
= (x * TTL+ y * ID + z * HASH(SIP,SPORT,DIP,DPORT,PROTOCOL)) Mod
M
其中, x,y,z 为三个常量参数, Mod表示取余数, M表示模 65536, hash 表示哈希函数, 其他符号含义同前面的描述一致。
对于 SYN_ACK包的确认号 ACK和 RST包的确认号, 他们的 HASH 结果是相同的。 而对于真实的主机, 不同的是 ID数值, 通常 ID相差 1或很小 的数, 因此, SYN_ACK包和 RST包携带的网络参数经过 FUNC函数变换算 出来的值会在相应的窗口范围之内。 例如, 可以使 x,y,z分为 1 , 1 , 1 , 则差 值不会大于 10, 那么可以取窗口为 10。
对于伪造真实主机而发起的请求, 则虽然 HASH结果是相同的, 但其 TTL和 ID通常不同, 因为在同一时间两台不同主机, 其发包的 ID几乎不可 能一样或接近。 而 TTL的数值是和操作系统版本以及路由的跳数有关, 很难 殳定真实主机到网关的 TTL与攻击主机到网关的 TTL一致, 因此计算后的两 个 FUNC数值艮难一致, 从而实现了认证。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中, 所述的存储介质可为磁碟、 光盘、 只读存储记忆体(ROM, Read-Only Memory )或随机存储记忆体 ( RAM, Random Access Memory )等。 实施例四 网络认证装置
图 3 为本发明实施例提供的网络认证装置结构示意图, 网络认证装置包 括:
第一接收单元 31 , 用于接收客户端发送的同步 SYN数据, 所述 SYN数 据包括顺序号 SEQ1和网络参数;
发送单元 33 , 用于向客户端发送响应所述第一接收单元 31接收的 SYN 数据的 S YN—ACK数据, 所述 S YN—ACK数据包括确认号 ACK2 , ACK2的值 为根据所述 SYN数据的网络参数进行函数变换得到的值, 且 ACK2的值不等 于 SEQ1+1 ;
第二接收单元 35 , 用于接收客户端响应所述发送单元 33发送的同步确认 SYN_ACK数据而发送的重置请求数据 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST 数据还包括与 SYN数据相同的网络参数;
计算单元 37,用于根据所述第二接收单元 35接收的 RST数据的网络参数 进行所述函数变换, 得到校验值 CHK ;
认证单元 39, 用于在所述计算单元 37计算得到的 CHK与所述 RST数据 包的 SEQ3或 ACK3匹配时, 通过对所述客户端的认证。
若所述网络参数包括: 数据包 IP 包头中的源 IP地址 SIP、 源端口地址 SPORT、 目的 IP地址 DIP、 目的端口 DPORT、 协议类型 protocol或生命周期 TTL中的一项或多项 ,则所述认证单元 39用于在所述计算单元 37计算得到的 CHK与所述 RST数据的 SEQ3或 ACK3相等时, 通过对所述客户端的认证, 具体地, 用于比较 CHK与 SEQ3或 ACK3的值是否相等, 若是, 则通过对所 述客户端的认证。 若所述网络参数包括标识 ID, 则所述认证单元 39用于在所 述计算单元 37计算得到的 CHK与所述 RST数据的 SEQ3或 ACK3的差值在 预设的范围时, 通过对所述客户端的认证, 具体地, 用于比较 CHK与 SEQ3 或 ACK3的差值是否在设定的范围内, 若是, 则通过对所述客户端的认证。 实施例五
本发明实施例还提供一种客户端请求认证的方法, 其结构示意图详见图 4, 所述方法包括:
步骤 401 : 客户端向网关发送同步 SYN数据, 所述 SYN数据包括顺序号
SEQ1和网络参数;
步骤 402:客户端接收网关发送响应所述 SYN数据的同步确认 SYN_ACK 数据, 所述 SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN 数据的网络参数进行函数变换得到的值, 且 ACK2的值不等于 SEQ1加 1 ; 步骤 403: 客户端若判断 ACK2的值与期望值不同, 则向网关发送响应所 述 SYN_ACK数据的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或 确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST数据还 包括与 SYN数据相同的网络参数; 并指示网关根据 RST数据, 以及 SEQ3或 ACK3对客户端进行认证。
也就是说, 网关在接收到以便于客户端发送的重置请求 RST数据后, 根 据该重置请求 RST数据中的 RST数据, 以及 SEQ3或 ACK3对客户端进行认 证; 即网关根据 RST数据的网络参数进行所述函数变换, 得到校验值 CHK; 若 CHK与 SEQ3或 ACK3的值匹配, 则通过对所述客户端的认证。
其中, 所述 CHK与 SEQ3或 ACK3的值匹配具体包括: 若 CHK与 SEQ3 或 ACK3相等, 则通过对所述客户端的认证。 或者若 CHK与 SEQ3或 ACK3 的差值在设定的范围内, 则通过对所述客户端的认证。
优选的, 所述网络参数包括: 数据包 IP包头中的源 IP地址 SIP、 源端口 SPORT、 目的 IP地址 DIP、 目的端口 DPORT、 协议类型 Protocol和生存时间 TTL中的一项或多项。
优选的, 所述网络参数包括: IP包头中的身份标识 ID。
优选的, 所述函数为哈希函数。 实施例六
基于上述方法的实现过程, 本发明实施例还提供一种客户端, 其结构示意 图详见图 5 , 所述客户端包括: 发送单元 51、 接收单元 52和判断单元 53 , 其 中, 发送单元 51 , 用于向网关发送同步 SYN数据, 所述 SYN数据包括顺序 号 SEQ1和网络参数; 接收单元 52, 用于在发送单元 51向网关发送同步 SYN 数据后, 接收网关发送响应所述 SYN数据的同步确认 SYN_ACK数据, 所述 SYN_ACK数据包括确认号 ACK2 , ACK2的值为根据所述 SYN数据的网络参 数进行函数变换得到的值, 且 ACK2的值不等于 SEQ1加 1 ; 判断单元 53 , 用 于判断 ACK2的值是否与期望值相同, 并在 ACK2的值是与期望值不同时, 向网关发送响应所述 SYN_ACK数据的重置请求 RST数据, 所述 RST数据包 括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数; 并指示网关根据 RST数 据, 以及 SEQ3或 ACK3对客户端进行认证。
所述客户端中各个单元的实现过程详见上述方法中对应的实现过程,在此 不再赘述。
本发明实施例提供的网络认证装置可以用于执行实施例一至三提供的网 络认证方法, 网络认证装置在向客户端发送 SYN_ACK数据包时,其中包含的 确认号 ACK是通过对客户端发送的 SYN数据包携带的网络参数进行特定的函 数计算得到的, 因此, 在校验的时候, 对客户端返回的 RST数据包携带的网 络参数进行相同的函数计算, 将计算得到的值与 RST数据包中的 ACK值或 SEQ值进行比较, 判断客户端是否认证通过。 因此, 本发明实施例提供的网 络认证装置在每次认证时无需存储 SYN_ACK数据包的确认号的值,而是在校 验时计算得到并进行认证, 减少了对存储资源的占用。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中, 所述的存储介质可为磁碟、 光盘、 只读存储记忆体(ROM, Read-Only Memory )或随机存储记忆体 ( RAM, Random Access Memory )等。
以上本发明实施例提供网络认证装置,泛指用于加强安全防护软件或硬件 实体,用于保护服务器、私有网络等以免非授权用户的非法连接、恶意攻击等, 在实际产品中可能是组成防火墙、 网关、 路由器等的一部分或全部; 也可以用 于作为客户机的一部分, 防护客户机免受攻击等。
总之, 以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求
1、 一种网络认证方法, 其特征在于, 包括:
接收客户端发送的同步 SYN数据,所述 SYN数据包括顺序号 SEQ1和网 络参数;
向客户端发送响应所述 SYN 数据的同步确认 SYN_ACK数据, 所述
SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN数据的网络参 数进行函数变换得到的值;
接收客户端响应所述 SYN_ACK数据而发送的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2 的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数;
根据 RST数据的网络参数进行所述函数变换, 得到校验值 CHK;
若 CHK与 SEQ3或 ACK3的值匹配, 则通过对所述客户端的认证。
2、 如权利要求 1所述的方法, 其特征在于, 所述网络参数包括: 数据包 IP包头中的源 IP地址 SIP、源端口 SPORT、目的 IP地址 DIP、目的端口 DPORT、 协议类型 Protocol和生存时间 TTL中的一项或多项。
3、如权利要求 2所述的方法,其特征在于,所述若 CHK与 SEQ3或 ACK3 匹配, 则通过对所述客户端的认证的步骤包括:
若 CHK与 SEQ3或 ACK3相等, 则通过对所述客户端的认证。
4、 如权利要求 1所述的方法, 其特征在于, 所述网络参数包括: IP包头 中的身份标识 ID。
5、如权利要求 4所述的方法,其特征在于,所述若 CHK与 SEQ3或 ACK3 匹配, 则通过对所述客户端的认证的步骤包括:
若 CHK与 SEQ3或 ACK3的差值在设定的范围内, 则通过对所述客户端 的认证。
6、 如权利要求 1至 5任一项所述的方法, 其特征在于, 所述函数为哈希 函数。
7、 一种网络认证装置, 其特征在于, 包括:
第一接收单元, 用于接收客户端发送的同步 SYN数据, 所述 SYN数据包 括顺序号 SEQ1和网络参数; 发送单元, 用于向客户端发送响应所述第一接收单元接收的 SYN数据的 同步确认 SYN—ACK数据, 所述 SYN—ACK数据包括确认号 ACK2, ACK2的 值为根据所述 SYN数据的网络参数进行函数变换得到的值;
第二接收单元,用于接收客户端响应所述发送单元发送的 SYN_ACK数据 而发送的重置请求 RST数据,所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 ACK3的值与 SEQ3或 ACK2的值相同,所述 RST数据还包括与 SYN数据 相同的网络参数;
计算单元, 用于根据所述第二接收单元接收的 RST数据的网络参数进行 所述函数变换, 得到校验值 CHK ;
认证单元,用于在所述计算单元计算得到的 CHK与所述 RST数据的 SEQ3 或 ACK3匹配时, 通过对所述客户端的认证。
8、 如权利要求 7所述的装置, 其特征在于, 所述网络参数包括: 数据包 IP包头中的源 IP地址 SIP、 源端口地址 SPORT、 目的 IP地址 DIP、 目的端口 DPORT、 协议类型 protocol和生命周期 TTL中的一项或多项。
9、 如权利要求 8所述的装置, 其特征在于, 所述认证单元具体用于在所 述计算单元计算得到的 CHK与所述 RST数据的 SEQ3或 ACK3相等时,通过 对所述客户端的认证。
10、 如权利要求 7所述的装置, 其特征在于, 所述网络参数包括: IP 包 头中的标识 ID。
11、 如权利要求 10所述的装置, 其特征在于, 所述认证单元具体用于在 所述计算单元计算得到的 CHK与所述 RST数据的 SEQ3或 ACK3的差值在预 设的范围时, 通过对所述客户端的认证。
12、 一种客户端请求认证的方法, 其特征在于, 包括:
向网关发送同步 SYN数据,所述 SYN数据包括顺序号 SEQ1和网络参数; 接收网关发送响应所述 SYN 数据的同步确认 SYN_ACK数据, 所述
SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN数据的网络参 数进行函数变换得到的值;
若判断 ACK2的值与期望值不同, 则向网关发送响应所述 SYN_ACK数 据的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同,所述 RST数据还包括与 SYN数据 相同的网络参数; 并指示网关根据 RST数据, 以及 SEQ3或 ACK3对客户端 进行认证。
13、 一种客户端, 其特征在于, 包括:
发送单元, 用于向网关发送同步 S YN数据, 所述 SYN数据包括顺序号
SEQ1和网络参数;
接收单元, 用于接收网关发送响应所述 SYN数据的同步确认 SYN_ACK 数据, 所述 SYN_ACK数据包括确认号 ACK2, ACK2的值为根据所述 SYN 数据的网络参数进行函数变换得到的值;
判断单元, 用于判断 ACK2的值是否与期望值相同, 并在 ACK2的值是 与期望值不同时,向网关发送响应所述 SYN_ACK数据的重置请求 RST数据, 所述 RST数据包括顺序号 SEQ3或确认号 ACK3 , 且 SEQ3或 ACK3的值与 ACK2的值相同, 所述 RST数据还包括与 SYN数据相同的网络参数; 并指示 网关根据 RST数据, 以及 SEQ3或 ACK3对客户端进行认证。
PCT/CN2009/073885 2008-10-27 2009-09-11 网络认证方法、客户端请求认证的方法、客户端和装置 WO2010048838A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP09823030.3A EP2343851B1 (en) 2008-10-27 2009-09-11 Network authentication method, corresponding system and client device
US13/095,413 US8453208B2 (en) 2008-10-27 2011-04-27 Network authentication method, method for client to request authentication, client, and device
US13/856,141 US8800001B2 (en) 2008-10-27 2013-04-03 Network authentication method, method for client to request authentication, client, and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200810217107.6A CN101729513B (zh) 2008-10-27 2008-10-27 网络认证方法和装置
CN200810217107.6 2008-10-27

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/095,413 Continuation US8453208B2 (en) 2008-10-27 2011-04-27 Network authentication method, method for client to request authentication, client, and device

Publications (1)

Publication Number Publication Date
WO2010048838A1 true WO2010048838A1 (zh) 2010-05-06

Family

ID=42128234

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/073885 WO2010048838A1 (zh) 2008-10-27 2009-09-11 网络认证方法、客户端请求认证的方法、客户端和装置

Country Status (4)

Country Link
US (2) US8453208B2 (zh)
EP (1) EP2343851B1 (zh)
CN (1) CN101729513B (zh)
WO (1) WO2010048838A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116866055A (zh) * 2023-07-26 2023-10-10 中科驭数(北京)科技有限公司 数据泛洪攻击的防御方法、装置、设备及介质

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377640B (zh) * 2010-08-11 2014-12-31 杭州华三通信技术有限公司 一种报文处理装置和报文处理方法、及预处理器
US8458344B2 (en) * 2011-05-05 2013-06-04 Blue Coat Systems, Inc. Establishing tunnels between selective endpoint devices along communication paths
US8832830B2 (en) * 2011-11-28 2014-09-09 International Business Machines Corporation Securing network communications from blind attacks with checksum comparisons
US20130278642A1 (en) * 2012-04-20 2013-10-24 Samsung Electronics Co., Ltd. Perceptual lossless display power reduction
US8887280B1 (en) * 2012-05-21 2014-11-11 Amazon Technologies, Inc. Distributed denial-of-service defense mechanism
CN102946387B (zh) * 2012-11-01 2016-12-21 惠州Tcl移动通信有限公司 一种防御拒接服务攻击的方法
US9288227B2 (en) 2012-11-28 2016-03-15 Verisign, Inc. Systems and methods for transparently monitoring network traffic for denial of service attacks
KR101371902B1 (ko) * 2012-12-12 2014-03-10 현대자동차주식회사 차량 네트워크 공격 탐지 장치 및 그 방법
FI126032B (en) * 2013-03-07 2016-05-31 Airo Finland Oy Detection of threats in communication networks
CN105099952B (zh) * 2014-05-23 2018-12-07 华为技术有限公司 一种资源分配方法及装置
CN105337929A (zh) * 2014-06-24 2016-02-17 阿里巴巴集团控股有限公司 Ip地址的校验方法和装置
CN104125233B (zh) * 2014-08-06 2017-03-22 南通大学 基于VMSoar 和Soar的认知的入侵防御方法
CN104750103A (zh) * 2015-03-09 2015-07-01 深圳市道通智能航空技术有限公司 无线数据传输方法和装置及飞行器控制方法和装置
KR20170074328A (ko) * 2015-12-22 2017-06-30 주식회사 마크애니 티씨피 동기 패킷을 이용한 인증 시스템 및 방법 및 클라이언트 및 기록매체
CN105939325A (zh) * 2016-01-12 2016-09-14 杭州迪普科技有限公司 Tcp旁路阻断的方法及装置
CN106453419A (zh) * 2016-12-07 2017-02-22 东软集团股份有限公司 识别源ip地址合法性、网络攻击防御的方法及装置
WO2018208221A1 (zh) * 2017-05-09 2018-11-15 华为国际有限公司 网络认证方法、网络设备及终端设备
US20180359639A1 (en) * 2017-06-12 2018-12-13 Francesco Trama Methods and Systems for Protecting Computer Networks by Masking Ports
US11405271B2 (en) 2017-12-06 2022-08-02 Honor Device Co., Ltd. Method for reducing power consumption and device
US20190182286A1 (en) * 2017-12-11 2019-06-13 Xm Cyber Ltd. Identifying communicating network nodes in the presence of Network Address Translation
CN110417632B (zh) * 2018-04-26 2021-08-17 腾讯科技(深圳)有限公司 一种网络通信方法、系统及服务器
CN112583570A (zh) * 2019-09-27 2021-03-30 华为技术有限公司 一种序列号同步的方法及装置
CN111092900B (zh) * 2019-12-24 2022-04-05 北京北信源软件股份有限公司 服务器异常连接和扫描行为的监控方法和装置
CN114039747B (zh) * 2021-10-21 2023-05-16 烽火通信科技股份有限公司 防ddos数据重传攻击方法、装置、设备及存储介质
US20230171099A1 (en) * 2021-11-27 2023-06-01 Oracle International Corporation Methods, systems, and computer readable media for sharing key identification and public certificate data for access token verification
CN114500021A (zh) * 2022-01-18 2022-05-13 神州绿盟成都科技有限公司 一种攻击检测方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823387B1 (en) * 2000-06-23 2004-11-23 Microsoft Corporation System and method for enhancing a server's ability to withstand a “SYN flood” denial of service attack
CN1735045A (zh) * 2004-08-12 2006-02-15 海信集团有限公司 网络防syn洪流攻击检测方法
CN1938982A (zh) * 2004-04-07 2007-03-28 思科技术公司 通过认证因特网控制消息协议分组来防止网络攻击的方法和装置
EP1898586A1 (en) * 2006-09-07 2008-03-12 Mitsubishi Electric Information Technology Center Europe B.V. Protection for data transmission network systems against SYN flood denial of service attacks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606242A (en) 1994-10-04 1997-02-25 Duracell, Inc. Smart battery algorithm for reporting battery parameters to an external device
US5958053A (en) * 1997-01-30 1999-09-28 At&T Corp. Communications protocol with improved security
TW518864B (en) * 2000-05-12 2003-01-21 Ibm Methods and system for defeating TCP SYN flooding attacks
WO2004046835A2 (en) 2002-11-15 2004-06-03 Applied Materials, Inc. Method, system and medium for controlling manufacture process having multivariate input parameters
US7979694B2 (en) * 2003-03-03 2011-07-12 Cisco Technology, Inc. Using TCP to authenticate IP source addresses
CN1630248A (zh) * 2003-12-19 2005-06-22 北京航空航天大学 基于连接请求验证的SYN flooding攻击防御方法
PT1854263E (pt) * 2005-02-04 2011-07-05 Qualcomm Inc Técnica de bootstrapping para protecção de comunicações sem fios
US7613193B2 (en) * 2005-02-04 2009-11-03 Nokia Corporation Apparatus, method and computer program product to reduce TCP flooding attacks while conserving wireless network bandwidth
CN100396156C (zh) * 2005-07-26 2008-06-18 华为技术有限公司 一种同步sqn的处理方法
US8379738B2 (en) 2007-03-16 2013-02-19 Samsung Electronics Co., Ltd. Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks
US7921282B1 (en) * 2007-08-20 2011-04-05 F5 Networks, Inc. Using SYN-ACK cookies within a TCP/IP protocol
CN100586169C (zh) 2007-12-25 2010-01-27 北京惠信博思技术有限公司 一种互动电视业务中认证方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823387B1 (en) * 2000-06-23 2004-11-23 Microsoft Corporation System and method for enhancing a server's ability to withstand a “SYN flood” denial of service attack
CN1938982A (zh) * 2004-04-07 2007-03-28 思科技术公司 通过认证因特网控制消息协议分组来防止网络攻击的方法和装置
CN1735045A (zh) * 2004-08-12 2006-02-15 海信集团有限公司 网络防syn洪流攻击检测方法
EP1898586A1 (en) * 2006-09-07 2008-03-12 Mitsubishi Electric Information Technology Center Europe B.V. Protection for data transmission network systems against SYN flood denial of service attacks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116866055A (zh) * 2023-07-26 2023-10-10 中科驭数(北京)科技有限公司 数据泛洪攻击的防御方法、装置、设备及介质
CN116866055B (zh) * 2023-07-26 2024-02-27 中科驭数(北京)科技有限公司 数据泛洪攻击的防御方法、装置、设备及介质

Also Published As

Publication number Publication date
US20110202972A1 (en) 2011-08-18
CN101729513A (zh) 2010-06-09
EP2343851A4 (en) 2012-03-07
EP2343851A1 (en) 2011-07-13
US8453208B2 (en) 2013-05-28
EP2343851B1 (en) 2017-11-15
US20130219467A1 (en) 2013-08-22
US8800001B2 (en) 2014-08-05
CN101729513B (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
WO2010048838A1 (zh) 网络认证方法、客户端请求认证的方法、客户端和装置
US9438592B1 (en) System and method for providing unified transport and security protocols
US7069438B2 (en) Establishing authenticated network connections
WO2010048865A1 (zh) 一种防止网络攻击的方法及装置
US8418242B2 (en) Method, system, and device for negotiating SA on IPv6 network
US20120227088A1 (en) Method for authenticating communication traffic, communication system and protective apparatus
US20050216954A1 (en) Preventing network reset denial of service attacks using embedded authentication information
US11297107B2 (en) Message queuing telemetry transport (MQTT) data transmission method, apparatus, and system
US8880891B2 (en) Method, system and apparatus for establishing communication
WO2023174143A1 (zh) 数据传输方法、设备、介质及产品
JP2011504332A (ja) Wapiユニキャストシークレットキー交渉方法
KR101263381B1 (ko) TCP/IP네트워크에서의 서비스 거부 공격(DoS) 방어 방법 및 방어 장치
Cao et al. 0-rtt attack and defense of quic protocol
KR101020470B1 (ko) 네트워크 침입차단 방법 및 장치
JP4183664B2 (ja) 認証方法、サーバ計算機、クライアント計算機、および、プログラム
JP4768547B2 (ja) 通信装置の認証システム
US20060253603A1 (en) Data communication system and method
EP3907967A1 (en) Method for preventing sip device from being attacked, calling device, and called device
Kasslin et al. Replay attack on Kerberos V and SMB

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09823030

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2009823030

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2009823030

Country of ref document: EP