IP Library Granted Patent US 7,133,930
Granted Patent B2
US 7,133,930 · App. 10/401,551 · Granted Nov 7, 2006

Agile network protocol for secure communications with assured system availability

Assignee: Science Applications International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,133,930
App. No.
10/401,551
Granted
Nov 7, 2006
Kind
B2
Abstract

A plurality of computer nodes communicates using seemingly random IP source and destination addresses and (optionally) a seemingly random discriminator field. Data packets matching criteria defined by a moving window of valid addresses are accepted for further processing, while those that do not meet the criteria are rejected. In addition to “hopping” of IP addresses and discriminator fields, hardware addresses such as Media Access Control addresses can be hopped. The hopped addresses are generated by random number generators having non-repeating sequence lengths that are easily determined a-priori, which can quickly jump ahead in sequence by an arbitrary number of random steps and which have the property that future random numbers are difficult to guess without knowing the random number generator's parameters. Synchronization techniques can be used to re-establish synchronization between sending and receiving nodes. These techniques include a self-synchronization technique in which a sync field is transmitted as part of each packet, and a “checkpoint” scheme by which transmitting and receiving nodes can advance to a known point in their hopping schemes. A fast-packet reject technique based on the use of presence vectors is also described. A distributed transmission path embodiment incorporates randomly selected physical transmission paths.

Claims (63)

1. A method of transmitting data packets from a first computer to a second computer, comprising the steps of:

(i) determining a sender's Internet Protocol (IP) address selected from a first set of IP addresses allocated to the first computer;

(ii) determining a receiver's IP address selected from a second set of IP addresses allocated to the second computer;

(iii) creating a packet header comprising the sender's and receiver's IP addresses;

(iv) the first computer transmitting to the second computer a data packet comprising the packet header;

(v) the second computer receiving the data packet;

(vi) determining a second sender IP address selected from a third set of IP addresses allocated to the first computer;

(vii) determining a second receiver IP address selected from a fourth set of IP addresses allocated to the second computer; and

(viii) accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein in steps (vi) and (vii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

2. The method of claim 1 , wherein the first and second sets of addresses are mutually exclusive.

3. The method of claim 1 , wherein in steps (i) and (ii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

4. The method of claim 1 , wherein the packet header periodically changes between successive data packets.

5. A method of transmitting data packets between a first computer and a second computer, comprising the steps of:

(i) the second computer receiving a data packet including a packet header comprising a first sender Internet Protocol (IP) address and a first receiver IP address;

(ii) determining a second sender IP address selected from a first set of IP addresses allocated to the first computer;

(iii) determining a second receiver IP address selected from a second set of IP addresses allocated to the second computer;

(iv) accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein the first receiver IP address periodically changes between successive data packets,

wherein in steps (ii) and (iii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair of the second sender IP address and the second receiver IP address.

6. The method of claim 5 , wherein the first and second sets of IP addresses are mutually exclusive.

7. A receiving computer that receives data packets from a transmitting computer, wherein the receiving computer comprises computer instructions that execute the steps of:

(i) receiving data packets from a transmitting computer including a packet header comprising a first sender Internet Protocol (IP) address and a first receiver IP address;

(ii) for each data packet, determining a second sender IP address selected from a first set of IP addresses allocated to the transmitting computer;

(iii) for each data packet, determining a second receiver IP address selected from a second set of IP addresses allocated to the receiving computer;

(iv) for each data packet, accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein the first receiver IP address periodically changes between successive data packets,

wherein in steps (ii) and (iii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair of the second sender IP address and the second receiver IP address.

8. The receiving computer of claim 7 , wherein the first and second sets of IP addresses are mutually exclusive.

9. A transmitting computer that transmits data packets to a receiving computer, wherein the transmitting computer comprises computer instructions that execute the steps of:

(i) determining a sender's IP address selected from a first set of IP addresses allocated to the transmitting computer;

(ii) determining a receiver's IP address selected from a second set of IP addresses allocated to the receiving computer;

(iii) creating a packet header comprising the sender's and receiver's IP addresses;

(iv) the transmitting computer transmitting to the receiving computer a data packet comprising the packet header;

(v) receiving an indication from the receiving computer of a result of the receiving computer performing steps of:

a. the receiving computer determining a second sender IP address selected from a third set of IP addresses allocated to the transmitting computer;

b. determining a second receiver IP address selected from a fourth set of IP addresses allocated to the receiving computer; and

c. accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein in steps a. and b. the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

10. The transmitting computer of claim 9 , wherein the first and second sets of IP addresses are mutually exclusive.

11. The transmitting computer of claim 9 , wherein in steps (i) and (ii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

12. The transmitting computer of claim 9 , wherein the packet header periodically changes between successive data packets.

13. A method of transmitting data packets between a first computer and a second computer, comprising the steps of:

(i) the second computer receiving a data packet including a packet header comprising a first sender Internet Protocol (IP) address and a first receiver IP address;

(ii) determining a second sender IP address selected from a first set of IP addresses allocated to the first computer;

(iii) determining a second receiver IP address selected from a second set of IP addresses allocated to the second computer;

(iv) accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein the first receiver IP address periodically changes between successive data packets,

wherein in steps (ii) and (iii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

14. The method of claim 13 , further comprising the step of maintaining a window of IP address pairs corresponding to a sequence of IP address pairs of sender and receiver IP addresses determined by the pseudo-random algorithm, and

wherein step (iv) includes a step of accepting the data packet when the first sender and first receiver IP addresses of the packet header match any of the IP address pairs presently in the window.

15. The method of claim 14 , wherein the window of IP address pairs changes over time.

16. The method of claim 14 , wherein a length of the window is configured to be adjusted.

17. A receiving computer that receives data packets from a transmitting computer, wherein the receiving computer comprises computer instructions that execute the steps of:

(i) receiving data packets from a transmitting computer including a packet header comprising a first sender Internet Protocol (IP) address and a first receiver IP address;

(ii) for each data packet, determining a second sender IP address selected from a first set of IP addresses allocated to the transmitting computer;

(iii) for each data packet, determining a second receiver IP address selected from a second set of IP addresses allocated to the receiving computer;

(iv) for each data packet, accepting the data packet when first and second sender IP addresses match and first and second receiver IP addresses match, otherwise, rejecting the packet,

wherein the first receiver IP address periodically changes between successive data packets,

wherein in steps (ii) and (iii) the IP address determination is based on a pseudo-random algorithm that selects an IP address pair.

18. The receiving computer of claim 17 , wherein the receiving computer maintains a window of IP address pairs corresponding to a sequence of IP address pairs of sender and receiver IP addresses determined by the pseudo-random algorithm,

wherein step (iv) includes a step of accepting the data packet when the first sender and first receiver IP addresses of the packet header match any of the IP address pairs presently in the window,

wherein the window is moved in response to detecting matches of the first sender and first receiver IP addresses and one of the IP address pairs presently in the window.

Assignments (3)
CHANGE OF ADDRESS OF ASSIGNEE Recorded Jan 19, 2012
From: VIRNETX INC.
To: VIRNETX INC.
Reel/Frame 027558/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2007
From: SCIENCE APPLICATIONS INTERNATIONAL CORPORATION
To: VIRNETX INC.
Reel/Frame 018757/0326 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2003
From: MUNGER, EDMUND C.; SABIO, VENCENT J.; SHORT, ROBERT D. III; GLIGOR, VIRGIL D.; SCHMIDT, DOUGLAS C.
To: SCIENCE APPLICATIONS INTERNATIONAL CORPORATION
Reel/Frame 014003/0435 →
Continuity (4)
Division 0942964300 · Oct 29, 1999
Provisional Application 6013770400 · Jun 7, 1999
Provisional Application 6010626100 · Oct 30, 1998
Related Publication 20040003116A1 · Jan 1, 2004