Patent ID: 8656482

Claim:
A client computer system comprising at least a processor configured to operate: an untrusted virtual machine including a set of drivers for controlling a first set of hardware devices of the client computer system, the first set of hardware devices comprising a network interface, the set of drivers including a network interface driver for the network interface; and a hypervisor configured to control a second set of hardware devices of the client computer system, the second set comprising a shared device selected from a group consisting of an output device and an input device, wherein the hypervisor is further configured to: in response to the untrusted virtual machine receiving a user request to connect to a remote server system, launch a trusted virtual machine distinct from the untrusted virtual machine, wherein launching the trusted virtual machine comprises: employing the hypervisor to determine the authenticity of an image of the trusted virtual machine; and when the image of the trusted virtual machine is authentic, employing the hypervisor to load the image into a memory of the client computer system; in response to launching the trusted virtual machine, receive a data unit from the trusted virtual machine, wherein the data unit is encrypted by the trusted virtual machine; and send the data unit to the network interface driver of the untrusted virtual machine for transmission to the remote server system through the network interface; and wherein the hypervisor is further configured to employ time-division multiplexing to alternate granting exclusive use of the shared device to the trusted virtual machine with granting exclusive use of the shared device to the untrusted virtual machine.