P
USRE47296EExpiredUtilityPatentIndex 72

System and method for an adaptive TCP SYN cookie with time validation

Assignee: A10 NETWORKS INCPriority: Feb 21, 2006Filed: Jan 9, 2014Granted: Mar 12, 2019
Est. expiryFeb 21, 2026(expired)· nominal 20-yr term from priority
Inventors:CHEN LEESZETO RONALD WAI LUNHWANG SHIH-TSUNG
H04L 63/1458H04L 47/10H04L 47/43
72
PatentIndex Score
1
Cited by
562
References
28
Claims

Abstract

Provided is a method and system for TCP SYN cookie validation. The method includes receiving a session SYN packet by a TCP session setup module of a host server, generating a transition cookie including a time value representing the actual time, sending a session SYN/ACK packet, including the transition cookie, in response to the received session SYN packet, receiving a session ACK packet, and determining whether a candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A system for TCP SYN cookie validation at a host server comprising:
 a session SYN packet receiver for receiving a session SYN packet;   a transition cookie generator operating to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time, wherein the transition cookie generator generates the transition cookie secret key based on data obtained from the received session SYN packet, the data obtained from the SYN packet including at least one of a source IP address of an IP header, a destination port, a source port, and a sequence number of a TCP header in the received session SYN packet, wherein the transition cookie generator concatenates the obtained data from the session SYN packet to generate a first data item of the generator and the transition cookie generator uses a first hash function to generate the transition cookie secret key from the first data item of the generator;   a session SYN/ACK packet sender for sending the transition cookie in response to the received session SYN packet;   a session ACK packet receiver for receiving a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, for determining whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received, wherein the transition cookie validator generates a candidate transition cookie secret key based on data obtained from the received session ACK packet, the data obtained from the ACK packet including at least one of a source IP address of the IP header, a destination port, and a source port, wherein the transition cookie validator concatenates the obtained data from the session ACK packet to generate a first data item of the validator and the transition cookie validator uses the first or another hash function to generate the candidate transition cookie secret key from the first data item of the validator,   wherein at least one of:   the transition cookie generator uses a secret key offset to select one or more bits of data from the first data item of the generator in order to generate a second data item of the generator, and   the transition cookie validator uses a candidate secret key offset to select one or more bits of data from the first data item of the validator in order to generate a second data item of the validator.   
     
     
       2. The system according to  claim 1 , in which the transition cookie validator determines that the received session ACK packet is valid if the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received. 
     
     
       3. The system according to  claim 1 , in which the predetermined time interval is in the range of one to six seconds. 
     
     
       4. The system according to  claim 1 , in which the predetermined time interval is three seconds. 
     
     
       5. The system according to  claim 1 , in which the generating of the transition cookie includes the use of random data. 
     
     
       6. The system according to  claim 1 , in which the generating of the transition cookie includes the use of data obtained from the session SYN packet. 
     
     
       7. A system for TCP SYN cookie validation at a host server comprising:
 a session SYN packet receiver for receiving a session SYN packet;   a transition cookie generator operating to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time, wherein the transition cookie generator generates the transition cookie by (i) generating an encrypted data element of the generator by applying a cryptographic method on the transition cookie secret key and a transition cookie data element, (ii) performing an unsigned binary addition on the encrypted data element of the generator and a sequence number of a TCP header in the received session SYN packet, and (iii) storing the result in the transition cookie;   a session SYN/ACK packet sender for sending the transition cookie in response to the received session SYN packet;   a session ACK packet receiver for receiving a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, for determining whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received.   
     
     
       8. The system according to  claim 7 , wherein the transition cookie data element comprises data based on at least one of: a selective ACK, an MSS index, and a 32-bit current time of day indicated by a clock. 
     
     
       9. A system for TCP SYN cookie validation at a host server comprising:
 a session SYN packet receiver for receiving a session SYN packet;   a transition cookie generator operating to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time;   a session SYN/ACK packet sender for sending the transition cookie in response to the received session SYN packet;   a session ACK packet receiver for receiving a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, for determining whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received, wherein the transition cookie validator generates:   a candidate sequence number such that a sequence number of a TCP header in the received session ACK packet equals the sum of the candidate sequence number and a value of 1,   a candidate encrypted data element such that the result of performing an unsigned binary addition of the candidate encrypted data element and a candidate sequence number equals the candidate transition cookie, and   a candidate transition cookie data element by applying a cryptographic method on a candidate transition cookie secret key and the candidate encrypted data element.   
     
     
       10. The system according to  claim 9 , wherein the transition cookie validator validates the candidate transition cookie data element by adjusting the candidate transition cookie data element to generate, and determining if the adjusted candidate transition cookie data element is within a predetermined time margin of a modified current time. 
     
     
       11. A system for TCP SYN cookie validation at a host server, the system comprising:
 at least one processor and a memory storing:   a session SYN packet receiver, wherein when the session SYN packet receiver is executed by the at least one processor, the session SYN packet receiver causing the at least one processor to receive a session SYN packet;   a transition cookie generator, the transition cookie generator being executed by the at least one processor to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time;   a session SYN/ACK packet sender, the session SYN/ACK packet sender being executed by the at least one processor to send the transition cookie in response to the received session SYN packet;   a session ACK packet receiver, the session ACK packet receiver being executed by the at least one processor to receive a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, the transition cookie validator being executed by the at least one processor to determine whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received; and   
       wherein:
 the transition cookie generator is executed by the at least one processor to generate the transition cookie secret key based on data obtained from the received session SYN packet; 
 the transition cookie validator is executed by the at least one processor to generate a candidate transition cookie secret key based on data obtained from the received session ACK packet; 
 the transition cookie generator is executed by the at least one processor to concatenate the obtained data from the session SYN packet to generate a first data item of the generator; 
 the transition cookie validator is executed by the at least one processor to concatenate the obtained data from the session ACK packet to generate a first data item of the validator; 
 the transition cookie generator is executed by the at least one processor to use a secret key offset to select one or more bits of data from the first data item of the generator in order to generate a second data item of the generator, and 
 the transition cookie validator is executed by the at least one processor to use a candidate secret key offset to select one or more bits of data from the first data item of the validator in order to generate a second data item of the validator. 
 
     
     
       12. The system according to claim 11, wherein:
 when the transition cookie secret key is generated based on data obtained from the received session SYN packet, the obtained data includes at least one of: a source IP address of an IP header, a destination port, a source port, and a sequence number of a TCP header in the received session SYN packet, and   when the candidate transition cookie secret key is generated based on data obtained from the received session ACK packet, the obtained data includes at least one of:   a source IP address of the IP header, a destination port, and a source port.   
     
     
       13. The system according to claim 11, wherein at least one of:
 the transition cookie generator is executed by the at least one processor to use a first hash function to generate the transition cookie secret key from the first data item of the generator, and   when the transition cookie validator is executed by the at least one processor to use the first or another hash function to generate the candidate transition cookie secret key from the first data item of the validator.   
     
     
       14. The system according to claim 11, in which the transition cookie validator is executed by the at least one processor to determine that the received session ACK packet is valid if the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received. 
     
     
       15. The system according to claim 11, in which the predetermined time interval is in the range of one to six seconds. 
     
     
       16. The system according to claim 11, in which the predetermined time interval is three seconds. 
     
     
       17. The system according to claim 11, in which the generating of the transition cookie includes the use of random data. 
     
     
       18. The system according to claim 11, in which the generating of the transition cookie includes the use of data obtained from the session SYN packet. 
     
     
       19. A system for TCP SYN cookie validation at a host server, the system comprising:
 at least one processor and a memory storing:   a session SYN packet receiver, wherein the session SYN packet receiver is executed by the at least one processor to receive a session SYN packet;   a transition cookie generator, wherein the transition cookie generator is executed by the at least one processor to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time;   a session SYN/ACK packet sender, wherein the session SYN/ACK packet sender is executed by the at least one processor to send the transition cookie in response to the received session SYN packet;   a session ACK packet receiver, wherein when the session ACK packet receiver is executed by the at least one processor to receive a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, wherein the transition cookie validator is executed by the at least one processor to determine whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received; and wherein:   the transition cookie generator is executed by the at least one processor to generate the transition cookie by (i) generating an encrypted data element of the generator by applying a cryptographic method on the transition cookie secret key and a transition cookie data element, (ii) performing an unsigned binary addition on the encrypted data element of the generator and a sequence number of a TCP header in the received session SYN packet, and (iii) storing the result in the transition cookie.   
     
     
       20. The system according to claim 19, wherein the transition cookie data element comprises data based on at least one of: a selective ACK, an MSS index, and a 32-bit current time of day indicated by a clock. 
     
     
       21. The system according to claim 19, in which the transition cookie validator is executed by the at least one processor to determine that the received session ACK packet is valid if the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received. 
     
     
       22. The system according to claim 19, in which the predetermined time interval is in the range of one to six seconds. 
     
     
       23. The system according to claim 19, in which the predetermined time interval is three seconds. 
     
     
       24. The system according to claim 19, in which the generating of the transition cookie includes the use of random data. 
     
     
       25. The system according to claim 19, in which the generating of the transition cookie includes the use of data obtained from the session SYN packet. 
     
     
       26. A system for TCP SYN cookie validation at a host server, the system comprising:
 at least one processor and a memory storing:   a session SYN packet receiver, wherein the session SYN packet receiver is executed by the at least one processor to receive a session SYN packet;   a transition cookie generator, wherein the transition cookie generator is executed by the at least one processor to generate a transition cookie with the use of a transition cookie secret key, the transition cookie comprising a time value representing the actual time;   a session SYN/ACK packet sender, wherein the session SYN/ACK packet sender is executed by the at least one processor to send the transition cookie in response to the received session SYN packet;   a session ACK packet receiver, wherein the session ACK packet receiver is executed by the at least one processor to receive a session ACK packet, the session ACK packet including a candidate transition cookie; and   a transition cookie validator, wherein the transition cookie validator is executed by the at least one processor to determine whether the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received; and to generate:
 a candidate sequence number such that a sequence number of a TCP header in the received session ACK packet equals the sum of the candidate sequence number and a value of 1, 
 a candidate encrypted data element such that the result of performing an unsigned binary addition of the candidate encrypted data element and a candidate sequence number equals the candidate transition cookie, and 
 a candidate transition cookie data element by (i) applying a cryptographic method on a candidate transition cookie secret key and the candidate encrypted data element. 
   
     
     
       27. The system according to claim 26, wherein the transition cookie validator is executed by the at least one processor to validate the candidate transition cookie data element by adjusting the candidate transition cookie data element to generate, and determining if the adjusted candidate transition cookie data element is within a predetermined time margin of a modified current time. 
     
     
       28. The system according to claim 26, in which when the transition cookie validator is executed by the at least one processor to determine that the received session ACK packet is valid if the candidate transition cookie in the received session ACK packet comprises a time value representing a time within a predetermined time interval from the time the session ACK packet is received.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.