IP Library Granted Patent US 10,140,457
Granted Patent B2
US 10,140,457 · App. 15/010,785 · Granted Nov 27, 2018

Secure input/output device management

Inventor: Steven B. McGowan (Portland, OR)
Assignee: Intel Corporation
G06F21/602G06F13/28G06F13/4068G06F13/4282G06F21/57
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,140,457
App. No.
15/010,785
Granted
Nov 27, 2018
Kind
B2
Abstract

Embodiments of apparatus and methods for secure I/O device management are disclosed. In an embodiment, an apparatus includes a processor and an I/O controller. The processor has secure execution environment support, wherein the processor is to establish a secure execution environment using the secure execution environment support. The I/O controller includes an integrated trusted I/O device, wherein the trusted I/O device is to receive an unencrypted request to configure the trusted I/O device via a default control endpoint of the trusted I/O device, configure a command endpoint and a response endpoint in response to receipt of the unencrypted request, receive an encrypted command from the secure execution environment via the command endpoint, perform a device management operation related to the I/O controller in response to receipt of the encrypted command, and transmit an encrypted response to the secure execution environment via the response endpoint in response to performance of the device management operation.

Claims (39)

1. An apparatus comprising:

a processor having secure enclave support, wherein the processor is to establish a secure enclave using the secure enclave support; and

an input/output (I/O) controller including an integrated trusted I/O device, wherein the trusted I/O device is to receive a unencrypted request to configure the trusted I/O device via a default control endpoint of the trusted I/O device, configure a command endpoint and a response endpoint to block topology change notifications to system software and direct the topology change notifications to the secure enclave instead in response to receipt of the unencrypted request, receive an encrypted command from the secure enclave via the command endpoint, perform a device management operation related to the I/O controller in response to receipt of the encrypted command; and transmit an encrypted response to the secure enclave via the response endpoint in response to performance of the device management operation.

2. The apparatus of claim 1 , wherein to perform the device management operation includes to retrieve state information from the I/O controller to generate the encrypted response.

3. The apparatus of claim 1 , wherein to perform the device management operation includes to issue a request to a default control endpoint of an I/O device coupled to the I/O controller.

4. The apparatus of claim 1 , wherein to perform the device management operation includes to:

block a topology change notification indicative of an I/O device connect or an I/O device disconnect, and

forward the topology change notification to the secure enclave in response to a blocking of the topology change notification.

5. The apparatus of claim 1 , wherein:

the I/O controller comprises a Universal Serial Bus (USB) host controller including a root hub, and

the trusted I/O device comprises a USB device permanently coupled to a port of the root hub of the USB host controller.

6. A method comprising:

receiving, by a trusted input output (I/O) device integrated in an I/O controller of a computing device, an unencrypted request to configure the trusted I/O device via a default control endpoint of the trusted I/O device;

configuring, by the trusted I/O device, a command endpoint and a response endpoint to block topology change notifications to system software and direct the topology change notifications to the secure enclave instead in response to receiving the unencrypted request to configure the trusted I/O device;

receiving, by the trusted I/O device, an encrypted command from a secure enclave of the computing device via the command endpoint, wherein the secure enclave is established using secure enclave support of a processor of the computing device;

performing, by the trusted I/O device, a device management operation related to the I/O controller in response to receiving the encrypted command; and

transmitting, by the trusted I/O device, an encrypted response to the secure enclave via the response endpoint in response to performing the device management operation.

7. The method of claim 6 , wherein performing the device management operation comprises retrieving state information from the I/O controller to generate the encrypted response.

8. The method of claim 6 , wherein performing the device management operation comprises issuing a request to a default control endpoint of an I/O device coupled to the I/O controller.

9. The method of claim 6 , wherein performing the device management operation includes:

blocking a topology change notification indicative of an I/O device connect or an I/O device disconnect; and

forwarding the topology change notification to the secure enclave in response to blocking the topology change notification.

10. The method of claim 6 , wherein:

the I/O controller includes a universal serial bus (USB) host controller including a root hub; and

the trusted I/O device comprises a USB device permanently coupled to a port of a root hub of the USB host controller.

11. A system comprising:

a memory;

a processor having secure enclave support, wherein the processor is to establish a secure enclave using the secure enclave support;

a first input/output (I/O) controller including an integrated trusted I/O device, wherein the trusted I/O device is to receive a unencrypted request to configure the trusted I/O device via a default control endpoint of the trusted I/O device, configure a command endpoint and a response endpoint to block topology change notifications to system software and direct the topology change notifications to the secure enclave instead in response to receipt of the unencrypted request, receive an encrypted command from the secure enclave via the command endpoint, perform a device management operation related to the I/O controller in response to receipt of the encrypted command; and transmit an encrypted response to the secure enclave via the response endpoint in response to performance of the device management operation; and

a second I/O controller to communicate with a first untrusted I/O device.

12. The system of claim 11 , further comprising a cryptographic engine to provide on-the-fly encryption and decryption of data transferred via direct memory access (DMA) operations from and to the first untrusted I/O device.

13. The system of claim 12 , wherein the cryptographic engine includes an internal channel identifier (CID) table to dynamically identify a DMA channel associated with the first untrusted I/O device.

14. The system of claim 13 , further comprising security hardware to prevent the data from being routed to a second untrusted I/O device.

15. The apparatus of claim 1 , wherein the I/O controller includes registers to which the trusted I/O device provides access.

16. The apparatus of claim 1 , wherein the trusted I/O device is to provide internal state of the I/O controller to the secure enclave.

17. The apparatus of claim 1 , wherein the trusted I/O device provides for topology change notifications to be blocked to an interface to an operating system.

18. The apparatus of claim 17 , wherein the trusted I/O device provides for topology change notifications to be forwarded to the secure enclave.

19. The apparatus of claim 18 , wherein the trusted I/O device provides for topology change notifications to propagate from the secure enclave to the operating system.

20. The apparatus of claim 1 , wherein the trusted I/O device provides for blocking control endpoint requests to an untrusted I/O device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2016
From: MCGOWAN, STEVEN B.
To: INTEL CORPORATION
Reel/Frame 037991/0571 →
Continuity (2)
Provisional Application 62199687 · Jul 31, 2015
Related Publication 20170032132A1 · Feb 2, 2017
Cited By (1)
US 12,339,977