Method and apparatus for fault tolerant TCP handshaking
First Claim
1. A method comprising:
- receiving a message from a first node in a network at a second node in the network, the second node being one of at least two nodes in a cluster of nodes, the message including a cryptographic sequence number;
wherein the message was sent by the first node subsequent to an initial message sent by the first node to a third node, and an initial reply sent by the third node to the first node, the third node being in the cluster of nodes,wherein each of the nodes in the cluster stores a cluster wide shared secret, wherein the cluster wide shared secret comprises a private key of the nodes in the cluster,wherein the initial message sent by the first node includes a sequence number, and wherein the initial reply sent by the third node includes a cryptographic sequence number generated by the third node, the cryptographic sequence number generated by replacing a portion of the sequence number received in the initial message with a fingerprint based on the cluster wide shared secret stored at the third node, wherein the fingerprint is generated using an Internet Protocol (IP) address of the first node, a port of the first node, a port of the second node, an IP address of the second node, and the cluster wide shared secret;
processing the message at the second node to determine that the first node and the third node were involved in a connection setup procedure that has not yet been completed;
verifying at the second node that the cryptographic sequence number sent by the first node was created by one of the nodes in the cluster, wherein the verifying comprises accessing the cluster wide shared secret stored at the second node, and wherein either;
the second node builds a connection between the second node and the first node if the cryptographic sequence number was generated based on the cluster wide shared secret; and
the second node determines that the first node was not legitimately attempting to create a connection with the third node if the cryptographic sequence number was not generated based on the cluster wide shared secret.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for fault tolerant TCP handshaking that includes a first node and a second node both connected in a network where the second node is one of at least two nodes in a cluster of nodes. The second node receives a first message from the first node where the first message includes a sequence number. The second node generates a fingerprint and replaces a portion of the sequence number with the fingerprint to form a cryptographic sequence number. The cryptographic sequence number is sent from the second node to the first node. A second message that includes the cryptographic sequence number is received from the first node at the second node. Any node in the cluster can verify that the cryptographic sequence number sent by the first node was created by one of the nodes in the cluster thereby providing fault tolerant TCP handshaking.
-
Citations
19 Claims
-
1. A method comprising:
-
receiving a message from a first node in a network at a second node in the network, the second node being one of at least two nodes in a cluster of nodes, the message including a cryptographic sequence number; wherein the message was sent by the first node subsequent to an initial message sent by the first node to a third node, and an initial reply sent by the third node to the first node, the third node being in the cluster of nodes, wherein each of the nodes in the cluster stores a cluster wide shared secret, wherein the cluster wide shared secret comprises a private key of the nodes in the cluster, wherein the initial message sent by the first node includes a sequence number, and wherein the initial reply sent by the third node includes a cryptographic sequence number generated by the third node, the cryptographic sequence number generated by replacing a portion of the sequence number received in the initial message with a fingerprint based on the cluster wide shared secret stored at the third node, wherein the fingerprint is generated using an Internet Protocol (IP) address of the first node, a port of the first node, a port of the second node, an IP address of the second node, and the cluster wide shared secret; processing the message at the second node to determine that the first node and the third node were involved in a connection setup procedure that has not yet been completed; verifying at the second node that the cryptographic sequence number sent by the first node was created by one of the nodes in the cluster, wherein the verifying comprises accessing the cluster wide shared secret stored at the second node, and wherein either; the second node builds a connection between the second node and the first node if the cryptographic sequence number was generated based on the cluster wide shared secret; and the second node determines that the first node was not legitimately attempting to create a connection with the third node if the cryptographic sequence number was not generated based on the cluster wide shared secret. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 15, 17)
-
-
9. A system comprising:
-
a first node, the first node operably connected to a network; and a second node, the second node being one of at least two nodes in a cluster of nodes operably connected to the network, wherein each of the nodes in the cluster stores a cluster wide shared secret, wherein the cluster wide shared secret comprises a private key of the nodes in the cluster, the second node configured to receive an initial message that includes a sequence number from the first node, to generate a fingerprint based on the cluster wide shared secret stored at the second node, to replace a portion of the sequence number received from the first node with the fingerprint to form a cryptographic sequence number, and to send the cryptographic sequence number from the second node to the first node in an initial reply, wherein the second node generates the fingerprint using an Internet Protocol (IP) address of the first node, a port of the first node, a port of the second node, an IP address of the second node, and the cluster wide shared secret; a third node, the third node being in the cluster of nodes operably connected to the network, the third node configured to receive a message including the cryptographic sequence number from the first node, to process the message to determine that the first node and the second node were involved in a connection setup procedure that has not yet been completed, and to verify that the cryptographic sequence number sent by the first node in the message was created by one of the nodes in the cluster, wherein the verifying comprises accessing the cluster wide shared secret stored at the third node, and wherein either; the third node is configured to build a connection between the third node and the first node if the cryptographic sequence number was generated based on the cluster wide shared secret; and the third node is configured to determine that the first node was not legitimately attempting to create a connection with the second node if the cryptographic sequence number was not generated based on the cluster wide shared secret. - View Dependent Claims (10, 18, 19)
-
-
11. An apparatus comprising a computing device configured to perform:
-
receiving a message from a first node in a network at a second node in the network, the second node being one of at least two nodes in a cluster of nodes, the message including a cryptographic sequence number; wherein the message was sent by the first node subsequent to an initial message sent by the first node to a third node, and an initial reply sent by the third node to the first node, the third node being in the cluster of nodes, wherein each of the nodes in the cluster stores a cluster wide shared secret, wherein the cluster wide shared secret comprises a private key of the nodes in the cluster, wherein the initial message sent by the first node includes a sequence number, and wherein the initial reply sent by the third node includes a cryptographic sequence number generated by the third node, the cryptographic sequence number generated by replacing a portion of the sequence number received in the initial message with a fingerprint based on the cluster wide shared secret stored at the third node, wherein the fingerprint is generated using an Internet Protocol (IP) address of the first node, a port of the first node, a port of the second node, an IP address of the second node, and the cluster wide shared secret; processing the message at the second node to determine that the first node and the third node were involved in a connection setup procedure that has not yet been completed;
verifying at the second node that the cryptographic sequence number sent by the first node was created by one of the nodes in the cluster, wherein the verifying comprises accessing the cluster wide shared secret stored at the second third node, and wherein either;the second node builds a connection between the second node and the first node if the cryptographic sequence number was generated based on the cluster wide shared secret; and the second node determines that the first node was not legitimately attempting to create a connection with the third node if the cryptographic sequence number was not generated based on the cluster wide shared secret. - View Dependent Claims (12, 13, 14, 16)
-
Specification