Secure support for I/O in software cryptoprocessor
US-9734092-B2 · Aug 15, 2017 · US
US10140457B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10140457-B2 |
| Application number | US-201615010785-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 29, 2016 |
| Priority date | Jul 31, 2015 |
| Publication date | Nov 27, 2018 |
| Grant date | Nov 27, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 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.
Providing cryptographic facilities or services · CPC title
Electrical coupling · CPC title
on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title
Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities · CPC title
using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.