IP Library Granted Patent US 11,870,756
Granted Patent B2
US 11,870,756 · App. 17/854,056 · Granted Jan 9, 2024

Reliable data transfer protocol for unidirectional network segments

Inventor: Travis Ferguson (Powell, TN)
Assignee: Science Applications International Corporation
H04L63/029H04L12/66H04L63/0263H04L63/0428H04L69/08H04L69/166
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 11,870,756
App. No.
17/854,056
Granted
Jan 9, 2024
Kind
B2
Abstract

A unidirectional transfer protocol allows data to be transmitted from a non-secure network into a secure network. A non-secure gateway may receive data and/or information, intended for the secure network, from one or more devices. The gateway may fragment the data and/or information into smaller chunks and transmit the chunks to a secure gateway via a unidirectional communication channel. The secure gateway may verify the chunks using one or more rules and reassemble the chunks when the data is validated. The reassembled data may be sent across a secure network enclave. The unidirectional transfer protocol may provide a hardware-agnostic solution for transmitting data over a unidirectional communication channel.

Claims (82)

1. A second gateway comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the second gateway to:

receive, from a first gateway via a unidirectional network segment, a start control message;

receive, from the first gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets;

receive, from the first gateway via the unidirectional network segment, an end control message; and

reassemble the plurality of data packets into a dataset.

2. The second gateway of claim 1 , wherein the start control message comprises a quorum agreement.

3. The second gateway of claim 2 , wherein the instructions, when executed by the one or more processors, cause the second gateway to:

determine whether a predetermined number of duplicates of the plurality of data packets have been received to satisfy the quorum agreement; and

reassemble the plurality of data packets into the dataset based on a determination that the quorum agreement has been satisfied.

4. The second gateway of claim 1 , wherein the instructions, when executed by the one or more processors, cause the second gateway to decrypt, using an encryption key, the plurality of data packets.

5. The second gateway of claim 1 , wherein the instructions, when executed by the one or more processors, cause the second gateway to verify a signature appended to each of the plurality of data packets.

6. The second gateway of claim 1 , wherein the instructions, when executed by the one or more processors, cause the second gateway to forward the dataset to a destination.

7. The second gateway of claim 1 , wherein the unidirectional network segment comprises at least one of a data diode or a satellite link.

8. The second gateway of claim 1 , wherein the instructions, when executed by the one or more processors, cause the second gateway to reclassify the dataset based on receiving the plurality of data packets via the unidirectional network segment.

9. A second gateway comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the second gateway to:

receive, from a first gateway via a unidirectional network segment, a start control message, wherein the start control message indicates a quorum agreement;

receive, from the first gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets;

receive, from the first gateway via the unidirectional network segment, an end control message;

determine whether a predetermined number of duplicates of the plurality of data packets have been received to satisfy the quorum agreement; and

generate, based on a determination that the quorum agreement has not been satisfied, an exception.

10. The second gateway of claim 9 , wherein the instructions, when executed by the one or more processors, cause the second gateway to notify a user of the exception.

11. The second gateway of claim 9 , wherein the instructions, when executed by the one or more processors, cause the second gateway to decrypt, using an encryption key, the plurality of data packets.

12. The second gateway of claim 9 , wherein the instructions, when executed by the one or more processors, cause the second gateway to verify a signature appended to each of the plurality of data packets.

13. The second gateway of claim 9 , wherein the unidirectional network segment comprises at least one of a data diode or a satellite link.

14. A first gateway comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the first gateway to:

send, to a second gateway via a unidirectional network segment, a start control message;

send, to the second gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets; and

send, to the second gateway via the unidirectional network segment and after sending the plurality of data packets, an end control message.

15. The first gateway of claim 14 , wherein the instructions, when executed by the one or more processors, cause the first gateway to:

determine one or more network conditions; and

define a quorum agreement based on the one or more network conditions, wherein the start control message comprises the quorum agreement.

16. The first gateway of claim 14 , wherein the start control message comprises a key identifier indicating an encryption key used to encrypt the plurality of data packets.

17. The first gateway of claim 14 , wherein the instructions, when executed by the one or more processors, cause the first gateway to:

generate a signature for each of the plurality of data packets; and

append the signature to a header and a payload for each of the plurality of data packets prior to sending the plurality of data packets to the second gateway.

18. The first gateway of claim 14 , wherein the start control message comprises a session identifier, wherein each of the plurality of data packets comprises the session identifier.

19. The first gateway of claim 14 , wherein the plurality of data packets comprises a dataset.

20. The first gateway of claim 19 , wherein the instructions, when executed by the one or more processors, cause the first gateway to fragment the dataset into a plurality of chunks prior to sending the plurality of data packets.

21. A non-transitory computer-readable medium storing instructions that, when executed, cause a second gateway to:

receive, from a first gateway via a unidirectional network segment, a start control message;

receive, from the first gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets;

receive, from the first gateway via the unidirectional network segment, an end control message; and

reassemble the plurality of data packets into a dataset.

22. The non-transitory computer-readable medium of claim 21 , wherein the start control message comprises a quorum agreement.

23. The non-transitory computer-readable medium of claim 22 , wherein the instructions, when executed, cause the second gateway to:

determine whether a predetermined number of duplicates of the plurality of data packets have been received to satisfy the quorum agreement; and

reassemble the plurality of data packets into the dataset based on a determination that the quorum agreement has been satisfied.

24. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed, cause the second gateway to decrypt, using an encryption key, the plurality of data packets.

25. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed, cause the second gateway to verify a signature appended to each of the plurality of data packets.

26. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed, cause the second gateway to forward the dataset to a destination.

27. The non-transitory computer-readable medium of claim 21 , wherein the unidirectional network segment comprises at least one of a data diode or a satellite link.

28. The non-transitory computer-readable medium of claim 21 , wherein the instructions, when executed, cause the second gateway to reclassify the dataset based on receiving the plurality of data packets via the unidirectional network segment.

29. A non-transitory computer-readable medium storing instructions that, when executed, cause a second gateway to:

receive, from a first gateway via a unidirectional network segment, a start control message, wherein the start control message indicates a quorum agreement;

receive, from the first gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets;

receive, from the first gateway via the unidirectional network segment, an end control message;

determine whether a predetermined number of duplicates of the plurality of data packets have been received to satisfy the quorum agreement; and

generate, based on a determination that the quorum agreement has not been satisfied, an exception.

30. The non-transitory computer-readable medium of claim 29 , wherein the instructions, when executed, cause the second gateway to notify a user of the exception.

31. The non-transitory computer-readable medium of claim 29 , wherein the instructions, when executed, cause the second gateway to decrypt, using an encryption key, the plurality of data packets.

32. The non-transitory computer-readable medium of claim 29 , wherein the instructions, when executed, cause the second gateway to verify a signature appended to each of the plurality of data packets.

33. The non-transitory computer-readable medium of claim 29 , wherein the unidirectional network segment comprises at least one of a data diode or a satellite link.

34. A non-transitory computer-readable medium storing instructions that, when executed, cause a first gateway to:

send, to a second gateway via a unidirectional network segment, a start control message;

send, to the second gateway via the unidirectional network segment and after the start control message, a plurality of data packets, wherein at least one data packet of the plurality of data packets is a duplicate of at least one other data packet of the plurality of data packets; and

send, to the second gateway via the unidirectional network segment and after sending the plurality of data packets, an end control message.

35. The non-transitory computer-readable medium of claim 34 , wherein the instructions, when executed, cause the first gateway to:

determine one or more network conditions; and

define a quorum agreement based on the one or more network conditions, wherein the start control message comprises the quorum agreement.

36. The non-transitory computer-readable medium of claim 34 , wherein the start control message comprises a key identifier indicating an encryption key used to encrypt the plurality of data packets.

37. The non-transitory computer-readable medium of claim 34 , wherein the instructions, when executed, cause the first gateway to:

generate a signature for each of the plurality of data packets; and

append the signature to a header and a payload for each of the plurality of data packets prior to sending the plurality of data packets to the second gateway.

38. The non-transitory computer-readable medium of claim 34 , wherein the start control message comprises a session identifier, wherein each of the plurality of data packets comprises the session identifier.

39. The non-transitory computer-readable medium of claim 34 , wherein the plurality of data packets comprises a dataset.

40. The non-transitory computer-readable medium of claim 39 , wherein the instructions, when executed, cause the first gateway to fragment the dataset into a plurality of chunks prior to sending the plurality of data packets.

Assignments (2)
SECURITY INTEREST Recorded Dec 10, 2025
From: SCIENCE APPLICATIONS INTERNATIONAL CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073170/0273 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: FERGUSON, TRAVIS
To: SCIENCE APPLICATIONS INTERNATIONAL CORPORATION
Reel/Frame 060366/0178 →
Continuity (3)
Continuation 17029186 · Sep 23, 2020
Continuation 16895126 · Jun 8, 2020
Related Publication 20220337552A1 · Oct 20, 2022