1. A method, comprising acts of: receiving first data associated with a hardware USB device, wherein the first data is generated as a result of program code associated with the USB device being executed outside of a trusted execution environment of a computer, and wherein the first data is received by a host controller driver executing outside of said trusted execution environment; determining by a host controller driver proxy executing outside of the trusted execution environment if the first data received by said host controller driver should be securely processed in the trusted execution environment of the computer; wherein when it is determined by the host controller driver proxy that the first data does not need to be securely processed, the host controller driver proxy allowing the host controller driver to proceed with non-secured processing of said first data; and wherein when it is determined by the host controller driver proxy that the first data should be securely processed, the host controller driver proxy: sending second data associated with the first data to the trusted execution environment for secured processing; and receiving from the trusted execution environment third data associated with the first data resulting from said secured processing by the trusted execution environment.