Abstract:
A data transfer system comprising a first node, a second node, and a first one-way link for unidirectional transfer of data from the first node to the second node. The first node is configured to receive data and to allow transfer of the data to the second node via the first one-way link only if there is a match between a characteristic of the received data and an entry in a first predefined configuration file. The system may also include a second one-way link for unidirectional transfer of second data from the second node to the first node. The second node is configured to receive the second data and to allow transfer of the second data to the first node via the second one-way link only if there is a match between a characteristic of the second data and an entry in a predefined configuration file.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This patent application is a divisional application of U.S. patent application Ser. No. 13/705,885, which is a continuation of U.S. patent application Ser. No. 13/488,028, filed Jun. 4, 2012, now U.S. Pat. No. 8,266,689 B2, which is a continuation of U.S. patent application Ser. No. 13/167,932, filed Jun. 24, 2011, now U.S. Pat. No. 8,266,689, which in turn is a continuation of U.S. patent application Ser. No. 11/879,968, filed Jul. 19, 2007, now U.S. Pat. No. 7,992,209, the contents of which are incorporated herein by reference in their entirety. 
    
    
     FIELD OF INVENTION 
     The present invention relates generally to unidirectional data transfer. More particularly, the present invention relates to bilateral communication using multiple one-way data links. 
     BACKGROUND OF THE INVENTION 
     Protection 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 cyberattacks 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 communities 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 &#39;562 patent”), the content of which is hereby incorporated by reference in its entirety, provides an alternative way to address the network security concern. The &#39;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. 
     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.  FIG. 1  schematically illustrates an example of one such one-way data transfer system  100 . In the one-way data transfer system shown in  FIG. 1 , two computing platforms (or nodes)  101  and  102  (respectively, “the Send Node” and “the Receive Node”) are connected to the unsecured external network  104  (“the source network”) and the secure network  105  (“the destination network”), respectively. The Send Node  101  is connected to the Receive Node  102  by a one-way data link  103 , which may be an optical link comprising, for example, a high-bandwidth optical fiber. This one-way optical data link  103  may be configured to operate as a unidirectional data gateway from the source network  104  to the secure destination network  105  by having its ends connected to an optical transmitter on the Send Node and to an optical receiver on the Receive Node. 
     This configuration physically enforces one-way data transfer at both ends of the optical fiber connecting the Send Node  101  to the Receive Node  102 , thereby creating a truly unidirectional one-way data link between the source network  104  and the destination network  105  shown in  FIG. 1 . Unlike the conventional firewalls, one-way data transfer systems based on a one-way data link are designed to transfer data or information only in one direction and it is physically impossible to transfer data or information of any kind in the reverse direction. No information or data of any kind, including handshaking protocols such as those used in data transport protocols such as TCP/IP, SCSI, USB, Serial/Parallel Ports, etc., can travel in the reverse direction from the Receive Node back to the Send Node across the one-way data link. Such physically imposed unidirectionality in data flow cannot be hacked by a programmer, as is often done with firewalls. Accordingly, the one-way data transfer system based on a one-way data link ensures that data residing on the isolated secure computer or network is maximally protected from any undesired and unauthorized disclosure. 
     When two different network security domains need to communicate bilaterally, it is often desirable and necessary to apply different security policies or protocols to data flows in different directions. Preferably, data transfers from a low security domain to a high security domain are subject to fewer security restrictions, while a high security domain has a need to protect its data from the low security domain by carefully configured security protocols. Hence, it is an object of the present invention to implement bilateral communication capable of applying different security policies depending on the direction of the data flow. 
     It is another object of the present invention to use multiple one-way data links to implement bilateral communication. 
     It is yet another object of the present invention to separately administer data transfer over each one-way data link in bilateral communication. 
     It is yet another object of the present invention to apply separate security policy to each one-way data link in bilateral communication. 
     It is yet another object of the present invention to provide separate data transfer configuration files for each one-way data link in bilateral communication. 
     It is yet another object of the present invention to provide the capability to apply different security policies, protocols or restrictions to the data transfers in opposite directions in bilateral communication using multiple one-way data links. 
     It is yet another object of the present invention to provide the capability to enforce different security levels for the data transfers in opposite directions in bilateral communication using multiple one-way data links. 
     It is yet another object of the present invention to provide the capability to allow different types of data for the data transfers in opposite directions in bilateral communication using multiple one-way data links. 
     It is yet another object of the present invention to provide the capability to apply different data filtering processes to the data transfers in opposite directions in bilateral communication using multiple one-way data links. 
     Other objects and advantages of the present invention will become apparent from the following description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       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, embodiment of the present invention when taken in conjunction with the accompanying figures, wherein: 
         FIG. 1  schematically illustrates an example of a secure one-way data transfer system based on a one-way data link. 
         FIG. 2  is a functional block diagram that schematically illustrates one possible embodiment of the present invention. 
     
    
    
     SUMMARY OF THE INVENTION 
     It has now been found that the above and related objects of the present invention are obtained in the form of several related aspects, including bilateral communication using multiple one-way data links. 
     More particularly, the present invention relates to a bilateral data transfer system comprising a first node, a second node, a first one-way link for unidirectional transfer of first data from the first node to the second node, a second one-way link for unidirectional transfer of second data from the second node to the first node, a first data transfer application for administering the unidirectional transfer of the first data from the first node to the second node via the first one-way link, and a second data transfer application for administering the unidirectional transfer of the second data from the second node to the first node via the second one-way link. 
     The present invention is also directed to a data transfer application for bilateral communications between a first node and a second node, wherein the first node and the second node are interconnected by a first one-way link for unidirectional transfer of first data from the first node to the second node and a second one-way link for unidirectional transfer of second data from the second node to the first node, the data transfer application comprising a first data transfer application for administering the unidirectional transfer of the first data from the first node to the second node via the first one-way link, and a second data transfer application for administering the unidirectional transfer of the second data from the second node to the first node via the second one-way link. 
     Furthermore, the present invention also relates to a machine readable medium having instructions stored on at least one of a first node and a second node, wherein the first node and the second node are interconnected by a first one-way link for unidirectional transfer of first data from the first node to the second node and a second one-way link for unidirectional transfer of second data from the second node to the first node, the instructions, when executed by the at least one of the first and the second nodes, causing the first and the second nodes to separately administer the unidirectional transfer of the first data from the first node to the second node via the first one-way link and the unidirectional transfer of the second data from the second node to the first node via the second one-way link. 
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     Illustrated in  FIG. 2  is a functional block diagram of an exemplary embodiment of the present invention for bilateral communication using multiple one-way data links. The system  201  comprises two computing platforms or nodes, Node A  202  and Node B  203 , interconnected by two separate, oppositely directed one-way communication channels, Link R  204  and Link L  205 . These one-way communication channels are deployed in parallel to enable bilateral communications between Node A and Node B, wherein Link R  204  is for unidirectional data transfer from Node A to Node B, while Link L  205  is for unidirectional data transfer in the opposite direction, from Node B to Node A. This arrangement forces all data traffic between Nodes A and B to flow unidirectionally through two entirely separate conduits. As further explained below, each of the unidirectional data transfers across these conduits, Link R  204  and Link L  205 , is separately administered. 
     Although  FIG. 2  shows a single one-way data link in each of the one-way communication channels, Link R  204  and Link L  205 , the present invention is not restricted in any way with respect to the number of one-way data links used for bilateral communication, as long as the oppositely directed one-way data links are separately administered and are not cross-linked. For instance, each of Link R  204  and Link L  205  illustrated in  FIG. 2  may comprise one or more one-way data links for the same data transfer direction. 
     The unidirectional data transfer across Link R  204  and the unidirectional data transfer across Link L  205  in the opposite direction are separately administered by the exemplary embodiment of the present invention illustrated in  FIG. 2  in the following exemplary manner. Under the present invention, each of the one-way communication channels for bilateral communication may be associated with its own data transfer applications, interfaces and configuration files solely for the unidirectional data transfer in one direction, which are configured to prevent any cross-talk with the one-way communication channel for the opposite direction. 
     In  FIG. 2 , Link R  204 , the one-way communication channel for unidirectional data transfer from Node A  202  to Node B  203 , is associated with data sending application  210  and interface  206  in Node A  202  and data receiving application  212  and interface  208  in Node B  203 . Meanwhile, Link L  205 , the one-way communication channel for unidirectional data transfer from Node B  203  to Node A  202 , is associated with data sending application  213  and interface  209  in Node B  203  and data receiving application  211  and interface  207  in Node A  202 . 
     One-way data links used in Link R  204  and Link L  205  in  FIG. 2  can be of any types of data transfer conduit that are capable of enforcing unidirectional data flow. For example, Link R  204  (or Link L  205 ) may comprise a high-bandwidth optical fiber whose both ends are respectively coupled to the data sending interface  206  in Node A (or  209  in Node B) and the data receiving interface  208  in Node B (or  207  in Node A). The data sending and receiving interfaces  206  and  208  (or  209  and  207 ) for the optical data link may comprise Asynchronous Transfer Mode (ATM) network interface cards which are specially configured to enforce unidirectional data flow from Node A to Node B (or from Node B to Node A). This and other examples of one-way data links and the corresponding network interface circuitry for enforcing unidirectional data flow through the links are disclosed in the co-pending U.S. patent application Ser. No. 11/787,778 by one of the inventors of the present application, the content of which is incorporated herein by reference in its entirety. 
     In  FIG. 2 , the data sending application  210  in Node A (or  213  in Node B) and data receiving application  212  in Node B (or  211  in Node A) in combination with proxy and session managing applications  220 ,  218  and  221 ,  219  respectively in Node A and Node B use Transmission Control Protocol/Internet Protocol (TCP/IP) as a user interface to the one-way data link in Link R  204  (or Link L  205 ). Examples of TCP-based one-way data transfer system are disclosed in the co-pending U.S. patent application Ser. No. 11/788,157 by the co-inventors of the present application, the content of which is incorporated herein by reference in its entirety. 
     The TCP proxy applications  220  and  221  are preferably TCP/IP socket-based proxy software, but may also be hardware-based or based on a suitable combination of software and hardware. The TCP proxy application  220  residing in Node A  202  fully implements TCP/IP-based bilateral communications between Node A and an external platform communicatively coupled to Node A, such as a remote terminal client  222  shown in  FIG. 2 . Likewise, the TCP proxy application  221  residing in Node B  203  fully implements TCP/IP-based bilateral communications between Node B and an external platform communicatively coupled to Node B, such as a remote terminal server  223  shown in  FIG. 2 . 
     The TCP session managing applications  218  and  219  are software-based applications for maintaining one or more TCP sessions. Each of the session managing applications  218  and  219  may additionally function as a communication channel manager for controlling the data traffic flows through the corresponding node. The session managing application  218 ,  219  in each node  202 ,  203  “splits” the bilateral communication channel between the node and corresponding remote terminal  222 ,  223  into two unidirectional communication channels based respectively on Link R  204  and Link L  205  in the following way. The session managing application  218  in Node A  202  routes any data coming from the remote terminal client  222  only to the data sending application  210 , but not to the data receiving application  211 ; and it routes any data coming from Link L  205  through the data receiving application  211  to the remote terminal client  222  via the proxy application  220 , but not to the data sending application  210 . Likewise, the session managing application  219  in Node B  203  routes any data coming from the remote terminal server  223  only to the data sending application  213 , but not to the data receiving application  212 ; and it routes any data coming from Link R  204  through the data receiving application  212  to the remote terminal server  223  via the proxy application  221 , but not to the data sending application  213 . In an alternative embodiment of the present invention, this channel managing function may be performed by the proxy applications  220 ,  221 , instead of the session managing applications  218 ,  219 . 
     While  FIG. 2  shows one pair of proxy application  220  and session managing application  218  in each node  202 , in an alternative embodiment of the present invention, each node may comprise two or more pairs of proxy and session managing applications. For example, if a node is coupled to two or more remote terminals, the corresponding number of pairs of proxy and session managing applications may be present in the node, wherein each pair is configured for routing data between the corresponding remote terminal and the data sending and receiving applications of the node. 
     The data sending application  210  in Node A and the data receiving application  212  in Node B associated with the one-way data link in Link R  204  operate in conjunction with the proxy and session managing applications  220 ,  221  and  218 ,  219  to simulate the TCP/IP protocol between the remote terminal client  222  and the remote terminal server  223  across the one-way data link in Link R  204  in the following way: When the TCP proxy application  220  receives TCP-based data packets or files from the remote terminal client  222 , it removes the IP information normally carried in the data under the TCP/IP protocol and replaces it with pre-assigned channel numbers, so that no IP information is sent across the one-way data link in Link R  204 . Instead, IP routes may be defined at the time of the configuration of the system  201  in the form of complementary channel mapping tables associated respectively with the data sending application  210  in Node A and data receiving application  212  in Node B. For the security of the overall system, neither table may be used to re-construct the other table, and neither table alone reveals the overall IP routing configuration from the remote terminal client  222  to the remote terminal server  223 . 
     The session managing application  218  in Node A  202  maintains one or more TCP sessions and also routes the received data packets or files from the remote terminal client  222  via the proxy application  220  to the data sending application  210 . The data sending application  210  is configured to send the data with the pre-assigned channel numbers to Node B  203  through the data sending interface  206  across the one-way data link in Link R  204 . The data is then received by the data receiving application  212  in Node B  203  through the data receiving interface  208 . The data receiving application  212  then maps the channel numbers from the received data to the TCP session managing application  219 . The session managing application  219  maintains one or more TCP sessions and routes the received data packets or files from the data receiving application  212  to the proxy application  221 . The TCP proxy application  221  in Node B fully implements the TCP/IP protocol in its bilateral communications with the remote terminal server  223 , requests a socket connection and delivers the data received from the remote terminal client  222  to the remote terminal server  223 . 
     In some embodiments of the present invention, the pair of the proxy and session managing applications  221 ,  219  in Node B  203  may be configured to control the socket connections between the Node B and the remote terminal server  223 . In this way, the remote terminal server  223  can be prevented from initiating a connection with the proxy application  221  in Node B to, for example, request information from the remote terminal client  222 . This configuration further enhances the security of the remote terminal client  222 , while providing it with the ability to request and obtain information from the remote terminal server  223  through bilateral communications using one-way communication channels Link R and Link L. 
     As shown in  FIG. 2 , the definition of the IP routes (e.g., in the form of channel mapping tables) may be stored in data sending configuration file  214  associated with the data sending application  210  in Node A and data receiving configuration file  216  associated with the data receiving application  212  in Node B. The data sending configuration file  214  (e.g., Hostports.txt.) may include IP filtering information that defines allowable source network addresses. The data sending configuration file  214  may be located within the data sending application  210 , or may be located elsewhere within the same software zone as the data sending application  210  to be accessible by it. The data receiving configuration file  216  (e.g., Portmap.txt.) defines destination network addresses. The data receiving configuration file  216  may be located in the data receiving application  212 , or may be located elsewhere within the same software zone as the data receiving application  212  to be accessible by it. While not shown in  FIG. 2 , each of the session managing applications  218 ,  219  (or, alternatively, the proxy applications  220 ,  221 ) may have a data routing configuration file for managing and controlling the data traffics between its corresponding remote terminal  222 ,  223  coupled to the node and data sending/receiving applications  210 / 211 ,  213 / 212  in the node. 
     The data transfer in the opposite direction, from the remote terminal server  223  to the remote terminal client  222  via the one-way data link in Link L  205 , is conducted in a similar manner. However, it is important to emphasize that the one-way data transfer across Link L  205  is associated with the data sending and receiving applications, interfaces and configuration files that are entirely separate from those associated with the one-way data transfer across Link R  204  in the opposite direction. 
     The data sending application  213  in Node B and the data receiving application  211  in Node A associated with the one-way data link in Link L  205  operate in conjunction with the proxy and session managing applications  221 ,  220  and  219 ,  218  to simulate the TCP/IP protocol between the remote terminal server  223  and the remote terminal client  222  across the one-way data link in Link L  205 . When the TCP proxy application  221  receives TCP-based data packets or files from the remote terminal server  223 , it replaces the IP information associated with the data with pre-assigned channel numbers, so that no IP information is sent across the one-way data link in Link L  205 . Instead, IP routes may be defined at the time of the configuration of the system  201  in the form of complementary channel mapping tables associated respectively with the data sending application  213  in Node B and data receiving application  211  in Node A. The definition of the IP routes (e.g., in the form of channel mapping tables) may be stored in data sending configuration file  217  associated with the data sending application  213  in Node B and data receiving configuration file  215  associated with the data receiving application  211  in Node A. Like the configuration files associated with the data transfer across Link R  204 , the data sending configuration file  217  (e.g., Hostports.txt.) may include IP filtering information that defines allowable source network addresses, and the data receiving configuration file  215  (e.g., Portmap.txt.) defines destination network addresses. The data sending configuration file  217  may be located within the data sending application  213  in Node B, or, alternatively, may be located elsewhere within the same software zone as the data sending application  213  to be accessible by it. Likewise, the data receiving configuration file  215  may be located within the data receiving application  211  in Node A, or, may alternatively be located elsewhere within the same software zone as the data receiving application  211  to be accessible by it. 
     The session managing application  219  in Node B  203  maintains one or more TCP sessions and routes the received data packets or files from the remote terminal server  223  via the proxy application  221  to the data sending application  213 . The data sending application  213  is configured to send the received data with the pre-assigned channel numbers to Node A  202  through the data sending interface  209  across the one-way data link in Link L  205 . The data is then received by the data receiving application  211  in Node A  202  through the data receiving interface  207 . The data receiving application  211  then maps the channel numbers from the received data to the TCP session managing application  218 . The session managing application  218  maintains one or more TCP sessions and routes the received data packets or files from the data receiving application  211  to the proxy application  220 . The TCP proxy application  220  in Node A fully implements the TCP/IP protocol in its bilateral communications with the remote terminal client  222 , requests a socket connection and delivers the data received from the remote terminal server  223  to the remote terminal client  222 . 
     Under the present invention, each node may be partitioned into three separately administered software zones or virtual machines, with one zone associated with a data sending application, another zone associated with a data receiving application and a third zone associated proxy and session managing applications for controlling the data traffics between a remote terminal coupled to the node and the data sending and receiving applications in the node. In  FIG. 2 , Node A  202  may comprise three separately administered software zones, wherein a first zone comprises the data sending application  210 , its associated data sending configuration file  214  and data sending interface  206 , a second zone comprises the data receiving application  211 , its associated data receiving configuration file  215  and data receiving interface  207 , and a third zone comprises the proxy and session managing applications  220 ,  218  with their associated data routing configuration file (not shown in  FIG. 2 ). Node B  203  may likewise comprise three separately administered software zones, wherein a first zone comprises the data sending application  213 , its associated data sending configuration file  217  and data sending interface  209 , a second zone comprises the data receiving application  212 , its associated data receiving configuration file  216  and data receiving interface  208 , and a third zone comprises the proxy and session managing applications  221 ,  219  with their associated data routing configuration file (not shown in  FIG. 2 ). This zoning or partitioning of each node further ensures separate administration of the one-way communication channels  204 ,  205  between the nodes  202 ,  203 , thereby preventing cross-talks between the one-way communication channels  204 ,  205  and enabling secure bilateral communication between the remote terminals  222 ,  223  via the nodes  202 ,  203 . 
     While  FIG. 2  illustrates an exemplary embodiment using TCP-based data transfers, the present invention is not limited with respect to data types or types of data transport protocol used in data transfers. The data sending and receiving applications and proxy and session managing applications supporting other data transport protocol, such as User Datagram Protocol (UDP), or even multiple data transport protocols may be implemented in accordance with the present invention. Examples of data sending and receiving applications and proxy application supporting TCP data packet and file transfers, UDP datagram transfer and concurrent data transfers involving two or more different data transport protocols are disclosed in the co-pending U.S. patent application Ser. No. 11/788,157 by the co-inventors of the present application, the content of which has been incorporated herein by reference in its entirety. 
     The foregoing descriptions of the exemplary embodiment of the present invention in  FIG. 2  show that by deploying in parallel two one-way data transfer systems based on one-way data links, bilateral communications between two terminals can be separated or segregated into two one-way communication channels, each of which can be subject to separate data routing configuration and administration. By separately configuring and administering each of the data routing associated with the one-way data transfer across Link R  204  (e.g., through the data sending and receiving configuration files  214  and  216 ) and the data routing associated with the one-way data transfer across Link L  205  in the opposite direction (e.g., through the data sending and receiving configuration files  217  and  215 ), it is possible to impose different data filtering process, different type or level of security policy or restriction, different restriction on allowable data types, etc. on each of the one-way communication channels  204  and  205 . In this way, significant benefits in network security can be achieved. 
     Such an arrangement can enable more secure bilateral communications across two different security domains, since it provides an agent or terminal in a high security domain with the capability to impose and administer unique security constraints on each direction of the data exchange with a low security domain. The embodiment described above and in  FIG. 2  is capable of supporting the inherently different security checks and restrictions required for transferring data to a high security domain and for transferring data from it. For example, the session managing applications  218  and  219 , and their associated data sending and receiving configuration files (not shown) associated with the data transfer across Link R  204  may be configured so that only keyboard and mouse data and no other data are allowed to pass from the remote terminal client  222  in a high-security domain to a remote terminal server  223  in a low-security domain through the one-way data link in Link R  204 . At the same time, the session managing applications  219  and  218 , and their associated data sending and receiving configuration files (not shown) associated with the data transfer across Link L  205  may be configured so that only graphical display data and no other data are allowed to pass from the remote terminal server  223  to the remote terminal client  222  through the one-way data link in Link L  205 . Such a session-based TCP/IP communication system allows the remote terminal client  222  in the high-security domain to be hosted by the remote terminal server  223  in the low-security domain. All the communications between them are separated into one-way data transfer channels, Link R and Link L, each of which may be subject to separately administered security restrictions, or data filtering processes, etc. In this way, secure remote terminal services and Web browsing across different network security domains may be enabled through bilateral communication using multiple one-way data links. 
     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.