SYSTEM AND METHOD FOR THE SECURE UNIDIRECTIONAL TRANSFER OF SOFTWARE AND SOFTWARE UPDATES
A system is disclosed that provides an authenticated payload, e.g., a software program or update, to a recipient device. A storage device stores a payload. A provider server coupled to the storage device outputs the payload and a manifest table. The manifest table includes information identifying the payload. A manifest engine TX server receives the payload and the manifest table from the provider server, generates information about the received payload, compares the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, forwards the payload to a one-way data link. The output of the one-way data link is coupled to a manifest engine RX server, which in turn forwards any received payload to a recipient device coupled to an output of the manifest engine RX server.
Latest OWL COMPUTING TECHNOLOGIES, INC. Patents:
- Secure one-way interface for a network device
- System and method for providing assured database updates via a one-way data link
- System and method for integrity assurance of partial data
- System and method for improving the resiliency of websites and web services
- Enterprise cross-domain solution having configurable data filters
The present invention relates generally to secure transfer of digital information, including software, firmware and critical data, from a provider to one or more devices or recipients at their corresponding facilities. More particularly, the present invention relates to the use of manifest tables and one-way, hardware-enforced information transfers, to secure both the provider and recipients of such digital information.
BACKGROUND OF THE INVENTIONProtection of a computer or data network from undesired and unauthorized data disclosure, interception or alteration has been a perennial concern in the field of computer and network security. For example, firewall and anti-spyware software have been developed to address security concerns for computers and networks connected to the Internet and to protect them from possible cyber-attacks such as Trojan horse-type viruses or worms that may trigger undesired and unauthorized data disclosure by these computers and networks. However, for high security computer networks such as those used by government agencies and intelligence community and certain commercial applications, conventional network security devices such as firewalls may not provide sufficiently reliable protection from undesired data disclosure.
Alternative network security methods and devices based on unidirectional data transfer have been devised to address the network security concern. For example, U.S. Pat. No. 5,703,562 to Nilsen (“the '562 patent”), the contents of which are hereby incorporated by reference in its entirety, provides an alternative way to address the network security concern. The '562 patent discloses a method of transferring data from an unsecured computer to a secured computer over a one-way optical data link comprising an optical transmitter on the sending side and an optical receiver on the receiving side. By providing such an inherently unidirectional data link to a computer/data network to be protected, one can eliminate any possibility of unintended data leakage out of the computer/data network over the same link.
Any data link that strictly enforces the unidirectionality of data flow is called a one-way link or one-way data link. In other words, it is physically impossible to send information or data of any kind through a one-way data link in the reverse direction. A one-way data link may be hardware-based, software-based, or based on some combination of hardware and software.
One-way data transfer systems based on such one-way data links provide network security to data networks by isolating the networks from potential security breaches (i.e., undesired and unauthorized data flow out of the secure network) while still allowing them to import data from the external source in a controlled fashion.
A configuration such as the one shown in
Software systems and applications, whether for direct use on a computer or embedded in other devices (e.g., firmware), often need to be installed and/or updated before initial use or periodically during the lifetime of such computer or device (i.e., to update to a new version or release). Such updates may add features, fix known problems and/or support the connection to or use of additional hardware and software components and systems. An initial software version or a software update (collectively a “payload” or “install payload”) may be delivered by the software or device manufacturer (or its agent) via recorded physical digital media (e.g., CDs, DVDs, USB drives, hard drives, etc.) or by making it available on an online server for delivery to or retrieval by an end user of the software or device. In some cases, e.g., a surgically-implanted device having internal updatable software/firmware, the payload may only be loaded into the device at a physician's office or other secure healthcare facility via a specialized programming apparatus.
There are cases in which the install payload could be compromised as the result of malicious modifications to code residing either on a physical media or on an online server. In other scenarios, regulatory and/or security requirements may forbid the introduction of physical media into a facility where the systems requiring the install payload is needed, e.g., because of the secure nature of such facility. For these scenarios, connecting to any external network may also be forbidden because of the danger posed by information exfiltration and exposure to malware as discussed above.
As described in U.S. Pat. No. 8,352,450, issued on Jan. 8, 2013, the contents of which are incorporated herein by reference, files based on various conventional transport protocols may be transferred across a one-way data link under suitable arrangements. The following example illustrates transfer of files based on the Transmission Control Protocol (TCP) across a one-way data link.
Construction of the conventional TCP sockets requires bilateral communications since it requires an acknowledgement channel from the receive node to the send node. Accordingly, the conventional TCP/IP protocol cannot be implemented directly in a one-way data transfer system based on a one-way data link, since no bilateral “hand shaking” is allowed over the one-way link due to physical enforcement of unidirectionality of data flow. Instead, the one-way data transfer system 200 illustrated in
In
In certain situations, it would be advantageous to use a one-way data link with an independent link layer protocol for one-way transfer so that non-routable point to point communications with a true IP protocol break can be enforced. With these properties, data packets or files cannot be accidentally routed in the network and other protocols (such as printer protocols, etc.) will not route across the one-way data link. An exemplary configuration enforcing such non-routable point to point communications with a true IP protocol break can be implemented in the one-way file transfer system 200 of
For the security of the overall one-way file transfer system 200, the IP address-to-channel number mapping table residing in the send node 204 may be different from the channel number-to-IP addressing mapping table residing in the receive node 208, and furthermore, neither table may be re-constructed on the basis of the other table. Neither table alone reveals the overall IP routing configuration from the source platform 201 to the destination platform 212. In this way, the IP information of the destination platform 212 may remain undisclosed to the sender at the source platform 201 and the security of the overall system 200 can be maintained.
Under the conventional TCP/IP protocol, the acknowledgement mechanism requiring bilateral communications may provide means for error detection. However, the one-way data link 207 forecloses such means. Instead, the one-way data transfer system 200 may assure file integrity by applying, for example, a hash algorithm such as MD5 to each file being transferred over the one-way data link 207. The send node 204 calculates an MD5 hash number for the file and sends the resulting hash number along with the file to the receive node 208 over the one-way data link 207. When the receive node 208 receives the file, it may re-calculate a hash number for the received file and compare the result with the hash number calculated by the send node 204. By comparing these results, the receive node 208 may be able to determine as to whether any error has occurred during the file transfer across the one-way data link.
It is an object of the present invention to provide a secure method of install payload transfer from a provider to a computer or device.
Other objects and advantages of the present invention will become apparent from the following description.
SUMMARY OF THE INVENTIONThe present invention is directed to a system for providing an authenticated payload to a recipient device and includes a storage device for storing at least one payload and a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads. The system also includes a manifest engine transfer engine consisting of a manifest engine TX server having an input coupled to the provider server and an output, a data link having an input coupled to the output of the manifest engine TX server and an output, and a manifest engine RX server having an input coupled to the output of the data link and an output. The manifest engine TX server is configured to receive the payload and the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on the output. The manifest engine RX server is configured to forward any payload received at the input to the output. Finally, the system includes a recipient device coupled to the output of the manifest engine RX server and configured to receive any payload output by the manifest engine RX server.
Preferably, the manifest engine TX server may add a tag to the payload to mark it as authenticated prior to forwarding the payload on the output thereof. Alternatively, the manifest engine RX server may add a tag to the payload to mark it as authenticated prior to forwarding the payload on the output thereof. Preferably, the data link is a one-way data link in which data may only pass from the input to the output.
Preferably, the provider server has two outputs, a first output for outputting the particular payload and a second output for outputting the manifest table. Likewise, the manifest engine TX server preferably has two inputs, a first input coupled to the first output of the provider server and a second input coupled to the second output of the provider server. In the alternative, the provider server has one output for outputting the particular payload and the manifest table and the manifest engine TX server has a single input coupled to the first output of the provider server. Preferably, the provider server is configured to separately tag the particular payload and the manifest table, and the manifest engine TX server is configured to identify the payload and the manifest table based upon such tags. In a further embodiment, the recipient device includes a system central processing unit and a dedicated storage device for storing authenticated payloads having a write-only input coupled to the output of the manifest engine RX server and a read-only output coupled to the system central processing unit.
In a first alternative embodiment, the present invention is a system for providing an authenticated payload to a recipient device and includes a storage device for storing at least one payload and a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads. The system also includes a manifest transfer engine consisting of a manifest engine TX server having an input coupled to the provider server and an output, a data link having an input coupled to the output of the manifest engine TX server and an output, and a manifest engine RX server having an input coupled to the output of the data link and an output. The manifest engine TX server is configured to receive the payload and the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on the output. Finally, the system includes a recipient device coupled to the output of the manifest engine RX server and is configured to receive any payload output by the manifest engine RX server. The provider server is also coupled to the recipient device via a separate connection and is further configured to output the particular one of the at least one payloads based upon a request for the particular one of the at least one payloads from the recipient device. Preferably, the separate connection may be a network connection.
In a second alternative embodiment, the present invention is a system for providing an authenticated payload to a recipient device which includes a storage device for storing at least one payload and a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads. The system also includes a first manifest transfer engine comprising a manifest engine TX server having an input coupled to the provider server and an output, a data link having an input coupled to the output of the manifest engine TX server and an output, and a manifest engine RX server having an input coupled to the output of the data link and an output. The manifest engine TX server configured to receive the payload and the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on the output. The manifest engine RX server is configured to forward any payload received at the input to the output. Further, the system includes a recipient device coupled to the output of the manifest engine RX server and configured to receive any payload output by the manifest engine RX server, the recipient device also having an output for requesting a payload, the request for such payload identifying a particular one of the at least one payloads. The system also includes a second manifest transfer engine including a second manifest engine TX server having an input coupled to the output of the recipient device and an output, a second data link having an input coupled to the output of the second manifest engine TX server and an output, and a second manifest engine RX server having a first input coupled to the output of the second data link, a second input coupled to the provider server and an output coupled to the provider server. The second manifest engine TX server is configured to forward any request received at the input to the output. The provider server is configured to provide a second manifest table including information identifying each of the at least one payloads. The second manifest engine RX server is configured to receive a request forwarded by the second manifest engine TX server via the second data link, to compare the received request with the information in the second manifest table and, if the particular requested payload is identified in the second manifest table, to forward the received request to the provider server via the output. Preferably, the request from the recipient device may also include second information demonstrating that the recipient device is authorized to receive the requested payload and the manifest table may also include, for each of the at least one payloads, second information identifying devices authorized to receive the associated payload. In this case, the second manifest engine RX server is also configured to compare the second information in the request with the second information in the manifest table when determining whether to forward the request to the provider server.
The above and related objects, features and advantages of the present invention will be more fully understood by reference to the following, detailed description of the preferred, albeit illustrative and exemplary, embodiments of the present invention when taken in conjunction with the accompanying figures, wherein:
In the present disclosure, like reference numbers refer to like elements throughout the drawings, which illustrate various exemplary embodiments of the presently disclosed system. Although the presently disclosed system will be discussed with reference to various illustrated examples, these examples should not be read to limit the broader spirit and scope of the present invention.
Referring now to the drawings and in particular to
As shown in
The send side 301 of the manifest transfer engine 300 may comprise a file client configured to receive files 305 from the user and send them across the one-way data link 302 upon validation. Similarly, the receive side 303 of the manifest transfer engine 300 may comprise a file server configured to receive the files from the one-way data link 302 and forward the received file (i.e., as an authenticated file 307) to the intended recipient (e.g., a file server in the destination network). In one or more embodiments, the send side 301 and the receive side 303 of the manifest transfer engine 300 may respectively comprise a TCP file client 202 and a TCP file server 213 shown in
In one or more embodiments, a user may transfer files to the send side 301 of the manifest transfer engine 300 from a USB memory stick. A special menu system (not shown) may allow the user to select a file from the USB file directory and copy and download it to the send side 301 for processing and/or validation for one-way transfer. For security reason, files to be transferred from the USB memory stick to the manifest transfer engine 300 may be required to be located in a special subdirectory (e.g., “owlsenddata”) of the USB memory. Unlike a USB walk-net where any file located on a USB memory stick used to transmit files from one computer to another may be transferred, in the system shown in
In one or more embodiments, only the designated system administrator can create, edit, and/or update the file manifest table 304 at, for example, one or more administrator servers. The file manifest table is not publicly accessible and preferably remains inaccessible by any unauthorized party. The file manifest table could even be made inaccessible by the user of the manifest transfer engine to transfer files, depending on the desired level of security for file transfer. In one or more embodiments, suitable IP filters may be defined in a configuration file for transferring the file manifest table so as to specifically designate the personal computers or servers that are allowed to send the file manifest table to the manifest transfer engine. Preferably, the transfer of the file manifest table 304 to the send side 301 of the manifest transfer engine 300 is under a strict control of the designated system administrator.
The file manifest table may be created in the form of an ASCII-only text file (“the manifest file”) containing hash numbers or other forms of identification corresponding to the files that are permitted to be transferred through one-way data link 302. For example, a manifest file may be assembled by the administrator based on the hash numbers provided by the user that correspond to the files that the user wishes to transfer across the network boundary via one-way data link 302. In another example, a manifest file may be assembled by the administrator based on the hash numbers of anti-virus and anti-malware updates and/or OS and software patches that are made publicly available from software companies.
The format of the manifest files need not be strict and may only require a list of valid hash numbers. Multiple hash code algorithms may be supported by the manifest files, including, for example, MD5 128-bit checksum (Unix: md5sum), SHA 160 bit checksum (Unix: shalsum), SHA 224 bit checksum (Unix: sha224sum), SHA 256 bit checksum (Unix: sha256sum), SHA 384 bit checksum (Unix: sha384sum), and SHA 512 bit checksum (Unix: sha512sum). The use of such algorithms to generate hash codes and text files having listings of hash codes from multiple files is conventional and known to those of ordinary skill in the art.
In one or more embodiments, the send side 301 of the manifest transfer engine 300 is capable of accepting and storing multiple file manifest tables. In such embodiments, the administrator may send new, updated, or multiple file manifest tables to the send side 301, either periodically or at various suitable times, and the send side 301 can receive and store them without having to overwrite or delete the previously received and stored file manifest tables.
The manifest transfer engine 300 may perform file manifest filtering as follows: The executable or non-executable file 305 received from the user by the send side 301 of the manifest transfer engine 300 is individually validated against the file manifest table 304 stored in the send side 301. In one or more embodiments, the send side 301 calculates a hash number for the received file 305 and compares it with the registered hash numbers listed on the file manifest table 304. If there is a match, the file 305 is validated and the send side 301 allows it to be transferred to the receive side 303 via one-way data link 302. On the other hand, if no match is found, the file 305 is denied transfer across one-way data link 302 and may be quarantined or deleted by the send side 301 or by the administrator. The incident of finding no match may be logged.
In one or more embodiments, a menu system associated with the manifest transfer engine may allow the system administrator to manage the file manifest tables stored in the manifest transfer engine. Management of the file manifest tables may include viewing, revising, updating and/or deleting of the file manifest tables. Preferably, users or unauthorized third parties are not allowed to access and edit the file manifest table or any individual registered hash numbers therein.
In a further embodiment, the administrator server 306 is configured to transmit the information manifest table to send side 301 on fixed intervals, and send side 301 is configured to discard each received information manifest table after a period of time corresponding to such interval. In the alternative, the information manifest table itself could also include an expiration time/date, and send side 301 may be configured to use the current information manifest table until that date/time.
As described below, the exemplary embodiments described in
To distribute the payload, provider server 430 transmits the payload via a transmit connection 435 to the manifest engine TX server, and if necessary, transmits an updated file manifest table via a separate manifest connection 436 to the manifest engine TX server before transmission of the payload. Transmit connection 435 and manifest connection 436 may each be any conventional means of conveying information known to one of ordinary skill in the art. Furthermore, although a direct connection 436 is shown in
If the payload is validated by the manifest transfer engine 440 based on the file manifest table 404 created and provided by the provider server, the payload is transferred over the one-way link 445 to the manifest engine RX server 448. This occurs, for example, when a hash value calculated for the payload matches a value included in the file manifest table. On the other hand, if the payload fails validation, the manifest transfer engine 440 does not allow the payload to be transferred across the one-way data link. Manifest engine RX server 448 may be configured to directly transfer the authenticated payload via a network 450 to the recipient computer/device 460. In the alternative, the authenticated payload may be transmitted to a kiosk or centralized facility for further distribution via direct communication to the recipient computer or device. In a further alternative, the receiving kiosk or centralized facility may be configured to record the payload onto a physical media (e.g., CD/DVD or thumb drive device) that is then used to transfer the payload to a recipient computer or device. Optionally, manifest engine TX server 442 may also tag the payload to mark it as authenticated before transferring the payload over the one-way link 445, or alternatively manifest engine RX server 448 may tag the payload to mark it as authenticated before transferring it to the recipient computer/device 460.
In the embodiment shown in
The manifest transfer engine 440, 700 disclosed herein provides great flexibility in distributing authenticated payloads, and may be included within servers (operated by the provider or a trusted third party) used to distribute payloads via a public network, within a local server used to distribute payloads via a private network, within a kiosk used to reproduce the payload on a CD/DVD or other type of portable storage device, within a specialized server used to transfer the payload to a specialized end device requiring a software change or update (e.g., an implanted medical device having upgradeable firmware), or within a network interface card for a personal computer.
Referring now to
While this invention has been described in conjunction with exemplary embodiments outlined above and illustrated in the drawings, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the exemplary embodiments of the invention, as set forth above, are intended to be illustrative, not limiting, and the spirit and scope of the present invention is to be construed broadly and limited only by the appended claims, and not by the foregoing specification.
Claims
1. A system for providing an authenticated payload to a recipient device, comprising:
- a storage device for storing at least one payload;
- a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads;
- a manifest engine TX server coupled to the provider server, the manifest engine TX server configured to receive the particular payload from the provider server, to receive the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on an output;
- a data link having an input coupled to the output of the manifest engine TX server and an output;
- a manifest engine RX server having an input coupled to the output of the data link and an output, and configured to forward any payload received at the input to the output; and
- a recipient device coupled to the output of the manifest engine RX server and configured to receive any payload output by the manifest engine RX server.
2. The system of claim 1, wherein the manifest engine TX server adds a tag to the payload to mark it as authenticated prior to forwarding the payload on the output thereof.
3. The system of claim 1, wherein the manifest engine RX server adds a tag to the payload to mark it as authenticated prior to forwarding the payload on the output thereof.
4. The system of claim 1, wherein the data link is a one-way data link in which data may only pass from the input to the output.
5. The system of claim 1, wherein the provider server has two outputs, a first output for outputting the particular payload and a second output for outputting the manifest table; and wherein the manifest engine TX server has two inputs, a first input coupled to the first output of the provider server to receive the particular payload and a second input coupled to the second output of the provider server to receive the manifest table.
6. The system of claim 1, wherein the provider server has two outputs, a first output for outputting the particular payload and a second output for outputting the manifest table; and wherein the manifest engine TX server has two inputs, a first input coupled to the first output of the provider server to receive the particular payload and a second input for indirectly receiving the manifest table output by the provider server.
7. The system of claim 1, wherein the provider server has one output for outputting the particular payload and the manifest table; and wherein the manifest engine TX server has a single input coupled to the first output of the provider server for receiving the particular payload and the manifest table.
8. The system of claim 7, wherein the provider server is configured to separately tag the particular payload and the manifest table; and wherein the manifest engine TX server is configured to identify the payload and the manifest table based upon such tags.
9. The system of claim 1, wherein the provider server is coupled to the recipient device via a separate connection and wherein the provider server is configured to output the particular one of the at least one payloads based upon a request for the particular one of the at least one payloads from the recipient device.
10. The system of claim 9, wherein the separate connection is a network connection.
11. The system of claim 1, wherein the recipient device has an output for requesting a payload, the request for such payload identifying a particular one of the at least one payloads, the system further comprising:
- a second manifest engine TX server having an input coupled to the output of the recipient device and an output, and configured to forward any request received at the input to the output;
- a second data link having an input coupled to the output of the second manifest engine TX server and an output; and
- a second manifest engine RX server having a first input coupled to the output of the second data link, a second input coupled to the provider server and an output coupled to the provider server;
- wherein the provider server is configured to provide a second manifest table including information identifying each of the at least one payloads; and wherein the second manifest engine RX server is configured to receive a request forwarded by the second manifest engine TX server via the second data link and to compare the received request with the information in the second manifest table and, if the particular requested payload is identified in the second manifest table, to forward the received request to the provider server via the output.
12. The system of claim 11, wherein the request from the recipient device also includes second information demonstrating that the recipient device is authorized to receive the requested payload, wherein the manifest table also includes, for each of the at least one payloads, second information identifying devices authorized to receive the associated payload, and wherein the second manifest engine RX server is also configured to compare the second information in the request with the second information in the manifest table when determining whether to forward the request to the provider server.
13. The system of claim 1, wherein the recipient device comprises:
- a system central processing unit; and
- a dedicated storage device for storing authenticated payloads having a write-only input coupled to the output of the manifest engine RX server and a read-only output coupled to the system central processing unit.
14. A system for providing an authenticated payload to a recipient device, comprising:
- a storage device for storing at least one payload;
- a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads;
- a manifest engine TX server coupled to the provider server, the manifest engine TX server configured to receive the particular payload from the provider server, to receive the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on an output;
- a data link having an input coupled to the output of the manifest engine TX server and an output;
- a manifest engine RX server having an input coupled to the output of the data link and an output, and configured to forward any payload received at the input to the output; and
- a recipient device coupled to the output of the manifest engine RX server and configured to receive any payload output by the manifest engine RX server, the provider server also coupled to the recipient device via a separate connection and wherein the provider server is configured to output the particular one of the at least one payloads based upon a request for the particular one of the at least one payloads from the recipient device.
15. The system of claim 14, wherein the separate connection is a network connection.
16. A system for providing an authenticated payload to a recipient device, comprising:
- a storage device for storing at least one payload;
- a provider server coupled to the storage device and configured to output a particular one of the at least one payloads and a manifest table, the manifest table including information identifying each of the at least one payloads;
- a manifest engine TX server coupled to the provider server, the manifest engine TX server configured to receive the particular payload from the provider server, to receive the manifest table from the provider server, to generate information about the received payload, to compare the information generated about the payload with the contents of the received manifest table, and, if the information about the received payload matches information for a particular one of the at least one payloads included in the received manifest table, to forward the payload on an output;
- a data link having an input coupled to the output of the manifest engine TX server and an output;
- a manifest engine RX server having an input coupled to the output of the data link and an output, and configured to forward any payload received at the input to the output;
- a recipient device coupled to the output of the manifest engine RX server and configured to receive any payload output by the manifest engine RX server, the recipient device also having an output for requesting a payload, the request for such payload identifying a particular one of the at least one payloads;
- a second manifest engine TX server having an input coupled to the output of the recipient device and an output, and configured to forward any request received at the input to the output;
- a second data link having an input coupled to the output of the second manifest engine TX server and an output; and
- a second manifest engine RX server having a first input coupled to the output of the second data link, a second input coupled to the provider server and an output coupled to the provider server;
- wherein the provider server is configured to provide a second manifest table including information identifying each of the at least one payloads; and wherein the second manifest engine RX server is configured to receive a request forwarded by the second manifest engine TX server via the second data link, to compare the received request with the information in the second manifest table and, if the particular requested payload is identified in the second manifest table, to forward the received request to the provider server via the output of the second manifest engine RX server.
17. The system of claim 16, wherein the request from the recipient device also includes second information demonstrating that the recipient device is authorized to receive the requested payload, wherein the manifest table also includes, for each of the at least one payloads, second information identifying devices authorized to receive the associated payload, and wherein the second manifest engine RX server is also configured to compare the second information in the request with the second information in the manifest table when determining whether to forward the request to the provider server.
18. A manifest transfer engine comprising:
- a server for sequentially outputting a series of file manifest tables, each file manifest table of the series including file information and being outputted at a predetermined fixed time interval after the output of the immediately preceding file manifest table of the series;
- a send side having an input and an output and configured to receive and store each of the series of file manifest tables from the server, the send side further configured to discard each file manifest table of the series of file manifest tables after the expiration of a period of time equal to the predetermined fixed interval so that only a single file manifest table is stored at any point in time, the send side still further configured to receive a file from a user on the input, to compare the received file with the file information in the currently stored file manifest table and, only if there is a match between the file and the file information in the currently stored file manifest table, to transmit the received file on the output;
- a one-way data link having an input coupled to the output of the send side and an output and configured to enforce unidirectional data flow from the input to the output; and
- a receive side having an input coupled to the output of the one-way data link.
19. A manifest transfer engine comprising:
- a server for outputting a file manifest table, the file manifest table including file information and time information;
- a send side having an input and an output and configured to receive and store the file manifest table from the server, the send side further configured to discard the file manifest table after a period of time equal to the time information, the send side still further configured to receive a file from a user on the input, to compare the received file with the file information stored in the file manifest table and, only if there is a match between the file and the file manifest table, to transmit the received file on the output;
- a one-way data link having an input coupled to the output of the send side and an output and configured to enforce unidirectional data flow from the input to the output; and
- a receive side having an input coupled to the output of the one-way data link.
Type: Application
Filed: Jan 23, 2013
Publication Date: Jul 24, 2014
Applicant: OWL COMPUTING TECHNOLOGIES, INC. (Ridgefield, CT)
Inventors: Ronald Mraz (South Salem, NY), Gabriel Silberman (Hastings on Hudson, NY)
Application Number: 13/748,045
International Classification: G06F 21/60 (20060101);