Patent ID: 8646028

Claim:
A method for allocating at least one universal serial bus (USB) device to one of a trusted virtual machine and a non-trusted virtual machine, in a computer device executing a hypervisor hosting the trusted virtual machine and the non-trusted virtual machine, the method comprising: establishing, by a control program executed by a processor of the computing device, a trust level of a virtual machine responsive to a user providing authentication credentials; receiving by the control program, data indicating a USB port on the computing device received a first USB device via a connection between the USB port and the first USB device; identifying, by the control program, at least one attribute of the first USB device, the at least one attribute including at least one of a serial number, a device identifier, a device driver, a presence of encrypted data, and read only memory; identifying, by the control program, a first security policy based on the at least one attribute of the first USB device; applying, by the control program, the first security policy to the at least one attribute of the first USB device to determine a security level of the first USB device; selecting, by the control program based on (i) the at least one attribute of the first USB device and (ii) the security level of the first USB device, the trusted virtual machine among a plurality of virtual machines executing on the computing device; updating, by the control program, a virtualized view of physical resources available to the trusted virtual machine to include the first USB device; identifying, by the control program, a second security policy to the at least one attribute of the second USB device to determine a security level of the second USB device, wherein the security level of the second USB device is a different security level than the security level of the first USB device.