Computer Multiplexor
This invention relates to a computer multiplexor and a method of multiplexing computers.
Multiplexors are known which allow a user to use a single keyboard, video screen and mouse to control two or more computers: They are referred to as keyboard video mouse (KV ) multiplexors.
A user may have multiple computers on separate networks for security reasons, i.e. to avoid any computer having access to information on any other computer. The security requirement may be due to confidentiality or integrity or both. If however two otherwise separate computer networks are linked by a multiplexor, the multiplexor provides a route for unauthorised transfer of information from one network to another.
It is an object of the invention to provide a computer multiplexor arranged to inhibit unauthorised transfer of information between different computers.
The present invention provides a computer multiplexor for connecting a plurality of computers to at least one of a keyboard a mouse and a monitor characterised in that the multiplexor incorporates elements linked by hardware-implemented unidirectional data links and by virtue of such links is arranged to inhibit communication between the plurality of computers while providing for necessary data flow to and from one of the plurality of computers selected for operation in conjunction with the multiplexor.
The invention provides the advantage that unwanted data flow is inhibited by hardware, and so unlike the prior art it cannot be defeated by software faults.
The multiplexor of the invention may be arranged to gather configuration information from ' a keyboard and mouse to storage means and to make it available from the storage means to a computer selected for operation in conjunction with the multiplexor. The keyboard and mouse may be connected to the storage means by unidirectional links along which the configuration information is passed, the unidirectional links being enabled during multiplexor power up and disabled at other times.
The multiplexor may include means for interfacing the storage means to a computer selected for operation with the multiplexor, such interfacing means being arranged to supply such computer with scan codes appropriate for a keyboard mode selected by such computer. It may include means for interfacing the keyboard to a computer selected for operation with the multiplexor, such interfacing means being arranged to set a fixed auto- repeat delay and typematic rate so that these information need not be provided by a computer selected for operation with the multiplexor. It may also include keyboard status indicators actuated via unidirectional links and responsive to a computer selected for operation in conjunction with the multiplexor.
In another aspect, the invention provides a method of multiplexing a plurality of computers to at least one of a keyboard, a mouse and a monitor, characterised in that it includes the step of linking multiplexing elements by hardware-implemented unidirectional data links and by virtue of such links arranging to inhibit communication between the plurality of computers while providing for necessary data flow to and frqm one of the plurality of computers selected for operation.
In order that the invention might be more fully understood, embodiments thereof will now be described, by way of example only, with reference to the accompanying drawings, in which:-
Figure 1 is a schematic drawing of a computer multiplexor of the invention; and
Figure 2 is a schematic drawing of a computer multiplexor of the invention arranged to include connections for a video monitor.
Referring to Figure 1 , A computer multiplexor 10 of the invention connects a computer keyboard 12 and a mouse 14 to two computers 16 and 18: one computer 16 is part of a high confidentiality, high trust network and the other computer 18 is part of a low confidentiality, low trust network. The mouse 14 and keyboard 12 are connected directly to a mouse interface 20 and a keyboard interface 22 by respective bi-directional links 26 and 24. Each of the interfaces 20 and 22 is a single microprocessor. The multiplexor 10 has two sets of keyboard and mouse connectors K1/M1 , K2/M2 connected to respective computers 16 and 18: these are conventional PS/2 cables. The connectors K1/M1 and K2/M2 are connected by bi-directional links 27k/27m and 28k/28m to dedicated microprocessors 29 and 30 respectively, each emulating a keyboard and a mouse and acting as a keyboard/mouse interface. The keyboard/mouse interfaces 29 and 30 are
connected to respective stores 32 and 34 which contain configuration information for the keyboard 12 and mouse 14: the stores 32 and 34 are dedicated microprocessors which supply configuration information to stores 29 and 30 if requested by respective computers 16 and 18. The software in each of these interface and store microprocessors 29 to 34 is untrusted.
The keyboard interface 22 is connected to the stores 32 and 34 by upwardly unidirectional optically coupled links 36 and 38: arrows 36a and 38a indicate link directionality. Unidirectionality arises from use of a commercially available optical isolator incorporating an optical emitter and an optical detector - The optical emitter has no receive function and the optical detector has no transmit function hence giving a unidirectional path. The keyboard interface 22 is also connected to two link enable devices 40 and 42 by connections 44 and 46 which are unidirectional or bi-directional as convenient: the link enable devices are hardware switches which are automatically disabled while the multiplexor 10 is powering up.
The mouse interface 20 is connected to the stores 32 and 34 by upwardly unidirectional optically coupled links 48 and 50: here "upwardly" indicates the upward direction in the drawing, and "downwardly" (see below) indicates the downward direction in the drawing It is also connected to the link enable devices 40 and 42 by connections 52 and 54 which are unidirectional or bi-directional as before.
A user-operated toggle switch 55 is connected to the link enable devices 40 and 42 by downwardly unidirectional optically coupled links 56 and 58. The link enable devices 40 and 42 are connected to the keyboard/mouse port interfaces 29 and 30 respectively by pairs of upwardly unidirectional optically coupled links 60k/60m and 62k/62m.
The keyboard/mouse port interfaces 29 and 30 and the toggle switch 55 are connected to a controller 68 of status lights 70 by respective upwardly unidirectional optically coupled links 72, 74 and 76. The controller is implemented as a microprocessor. Signals from computers 16 and 18 which would control on/off states of lights on a conventional keyboard are connected via the links 72 and 76 to the controller, which controls the state of the status lights 70 accordingly.
The multiplexor 10 operates as follows: in power-up mode the link enable devices 40 and 42 are disabled; links 36, 38, 48 and 50 are enabled and via them the stores 32 and 34 receive configuration information from the keyboard 12 and mouse 14. The keyboard and mouse interfaces 24 and 26 interrogate the keyboard 12 and mouse 14 respectively to identify their characteristics, as implemented by conventional computer operating systems. These characteristics are sent by the interfaces 24 and 26 to the stores 32 and 34 via links 36/48 and 38/50 respectively.
The interfaces 20 and 22 configure the mouse 14 and keyboard 12 for auto-repeat delay and typematic rate, which would in the absence of the multiplexor 10 be implemented by a computer connected to the keyboard 12 and mouse 14. The interface 22 sets the keyboard 12 to a fixed mode of operation with known scan codes indicating which keys are depressed. It is arranged to supply a user-selected computer 16 or 18 with scan codes appropriate for a keyboard mode selected by such computer. After the keyboard and mouse characteristics have been sent to the stores 32 and 34, the associated links 36, 38, 48 and 50 are disabled: when these links have been disabled, the keyboard 12 and mouse 14 are allowed to communicate with the link enable devices 40 and 42 respectively.
At the end of power up mode, links 36, 38, 48 and 50 are disabled. A user operates the toggle switch 55: when the toggle switch 55 is in an UP position, a binary Enable signal is sent to the link enable device 40 and a binary Disable signal is sent to the second link enable device 42; at the same time a signal indicating selection of the trusted computer 16 and non-selection of the untrusted computer 18 is sent to the status lights controller 68, which arranges for the status lights 70 to indicate this selection has been made. This allows the trusted computer 16 to receive data from the keyboard 12 and mouse 14 via respective interfaces 22 and 20 and the link enable device 40. It also allows keyboard status lights (Num Lock, Scroll Lock, Caps Lock) to be displayed on the status lights 70: in this connection in most circumstances a conventional computer operating system controls keyboard status lights in response to signals from keyboard keystrokes; in the multiplexor 10 control signals for keyboard status lights are routed from the computer 16 via link 27k to interface 28 and status lights controller 68.
When the toggle switch 55 is in a DOWN position, a binary Enable signal is sent to the second link enable device 42 and a binary Disable signal is sent to the first link enable device 40. At the same time a signal indicating selection of the untrusted computer 18 and non-selection of the computer 16 is sent to the status lights controller 68 for corresponding display by the status lights 70. The untrusted computer 18 can now receive data from the keyboard 12 and mouse 14 via interfaces 22 and 20 and the second link enable device 42. Keyboard status lights under the control of the untrusted computer 18 via link 28k are displayed on the status lights 70.
Since the links 27k, 27m, 28k and 28m are bi-directional, when these links are enabled the computers 16 and 18 can both receive from and send to respective keyboard/mouse port interfaces 28 and 30: by this means for example the computers 16 and 18 receive configuration information relating to the keyboard 12 and mouse 14 from the stores 32 and 34 respectively.
While trusted computer 16 is selected, because the other link enable device 42 is disabled, commands cannot pass from the keyboard 12 and mouse 14 to untrusted computer 18. Moreover, there are no connections of appropriate directionality between the computers 16 and 18: therefore unwanted information transfer between these computers cannot occur. Unidirectionality of connections is implemented by hardware, i.e. apparatus rather than software, so cannot be defeated by software faults. This is unlike the situation in other prior art mutiplexors where signal routing is done in software via which unwanted information transfer can take place between computers linked by such a multiplexor if there was a (possibly unknown) flaw in the software.
Similarly, if a user operates the toggle switch 55 to select untrusted computer 18, because the first link enable device 40 is disabled, commands cannot pass from the keyboard 12 and 14 to trusted computer 16. Moreover, because of the unidirectionality of the various links, unwanted information transfer between the computers 18 and 16 cannot occur.
The multiplexor 10 has separate data links 36/48, 38/50, 44/54 and 46/52 and from the keyboard 12 and mouse 14 to each of the following, stores 32 and 34 and link enable devices 40 and 42: the respective pair of connections to each of the said devices could be combined without loss of generality or security.
Optionally, when a user operates the toggle switch 55, the sequence may be firstly to send disable signals to both link enable devices 40 and 42 so that no computer 16 or 18 receives any information; secondly, both the keyboard 12 and mouse 14 are powered down, and then after a short time interval they are powered up once more and re- initialised. The objective of this is to make it more difficult to implement unauthorised modification of a keyboard; it is for example important to avoid keystrokes sent to one computer being . duplicated and sent subsequently to another computer for which they were not intended. A keyboard has a keyboard buffer in which the last few key strokes are held and from which they can be duplicated. Referring now to Figure 2, there is shown a multiplexor 100 of the invention for multiplexing a video monitor 102 to a plurality of computers 16 and 18 in addition to a keyboard 12 and mouse 14: parts equivalent to those described in connection with Figure 1 are like-referenced and function as indicated earlier, and will not be described further except where they interact with parts not already described.
The computers 16 and 18 have respective analogue video signal links 104 and 106 that are connected to a video signal-only analogue switch 108 in the multiplexor 100. The switch 108 is also connected to the monitor 102 by a video signal link 110. The links 104, 106 and 110 are unidirectional or bi-directional as convenient: they carry only red/green/blue analogue video signals and line/frame synch square wave signals. If preferred, line and frame synch signals could be put through optical isolators: this will normally be non-essential because these signals are square waves and do not normally convey unwanted information. The analogue video signal links 104 and 106 from the computers 16 and 18 are effectively unidirectional: standard switching arrangements in a computer for such links use analogue techniques and signals are restricted to "write to screen" only. Optionally, if extra protection in this regard is required, a respective analogue optical coupler or a relay can be inserted in each of the links 104 and 106.
The link 1 10 is configured to allow a user to select which of the computers 16 and 18 is to provide video signals to the monitor 102.
The computers 16 and' 18 have respective "Screen Id" terminals 112 and 114 which are left unconnected, i.e. open circuit (O/C) as indicated at 116 and 118. A conventional Super VGA connector for video monitor signals typically has two or four electrical pins to enable a computer to interrogate the monitor to discover its maker and other information; there may also be an electrical pin to enable a computer to supply power to a monitor screen:
the multiplexor 100 of the invention uses Super VGA connectors at 104/112 and 106/114 but leaves all such pins open-circuit to prevent unwanted information transfer. The computers 16 and 18 consequently treat the monitor 102 as being of unknown type.
A unidirectional link 120 connects the toggle switch 55 to the video-only analogue switch 110. If the analogue switch 1 10 is implemented using a break-before-make relay, this provides the required isolation and the optical coupler 120 can be replaced by a bidirectional link: a break-before-make relay has the property of breaking a connection to one circuit before making a connection to another.
If a video link equivalent to 104 or 106 from a computer 16 or 18 is digital instead of analogue, such a link will consist of data and clock lines in which digital optical couplers can be inserted to ensure that these too are unidirectional.
The multiplexor 100 operates as follows: a user operates the toggle switch 55 as before to select which of the computers is to receive data from the keyboard 12 and mouse 14. However, at the same time the toggle switch 55 activates the video-only analogue switch 110 to allow video and line/frame synch signals to pass to the monitor 102 from the selected computer only: i.e. one of the two links 104 and 106 (but not the other) is connected by the video-only analogue switch 110 to the link 1 10 to the monitor 102.
The invention may be extended to control more than two computers simply by increasing the number of toggle switch settings and providing appropriate connecting links. Moreover, unidirectional connecting links have been provided by optical couplers: the guarantee of unidirectionality may also be provided by conventional electronics, but with a reduced certainty of correct implementation.