Secure USB Device Enumeration via Trusted Execution Environment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing devices lack secure enumeration and protection mechanisms for USB devices, particularly when the operating system is untrusted, as they do not effectively safeguard I/O data across the on-chip boundary and rely on unverified device descriptors.
Innovation Solution
A computing device with a trusted execution environment, utilizing a secure enclave and cryptographic engine, securely enumerates USB devices by redirecting device descriptors to a protected memory buffer, verifying them without involving the operating system, and enabling devices only after successful verification, ensuring secure hot-plugging and incremental enumeration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the operating system enumerates USB devices using traditional methods, then device compatibility and ease of operation are improved, but security is worsened because the OS cannot verify device descriptors and I/O data is unprotected
Solution Approach 1:
A trusted execution environment (TEE) acts as an intermediary between the USB controller and the operating system. The TEE receives device descriptors from the USB controller, verifies their authenticity using cryptographic signatures, and only passes verified descriptors to the OS. This mediator approach allows the OS to maintain its traditional enumeration functionality while the TEE provides security verification, resolving the contradiction between ease of operation and security.
Solution Approach 2:
The device enumeration process is segmented into two independent paths: a secure verification path handled by the TEE and a traditional OS path for driver loading and device management. The TEE handles descriptor verification and security checks, while the OS handles device configuration and operation. This segmentation allows each component to specialize in its strength without compromising the other, enabling both security and ease of operation.
2Reliability
If device descriptors are protected using cryptographic verification in the trusted execution environment, then security is improved, but device complexity and processing time are worsened
Solution Approach 1:
Device descriptors are pre-signed with cryptographic signatures by the device manufacturers before the devices are even connected to the system. When devices are enumerated, the TEE only needs to verify these pre-existing signatures rather than performing complex cryptographic operations from scratch. This preliminary action significantly reduces the complexity and processing time of the enumeration process while maintaining strong security.
3Reliability
If all USB devices are enumerated and verified securely before use, then security is improved, but enumeration speed and productivity are worsened due to comprehensive verification requirements
Solution Approach 1:
The TEE performs cryptographic verification only on the essential device descriptors that are critical for security (such as device identity and capability descriptors), while allowing non-critical descriptors to be processed more quickly or deferred. This partial verification approach ensures that security-critical information is thoroughly verified while maintaining overall enumeration speed, resolving the contradiction between security and productivity.
4Reliability
If device descriptors are stored in unprotected memory accessible to the operating system, then ease of operation is improved through full OS access, but security is worsened allowing unauthorized access and modification
Solution Approach 1:
The TEE serves as an intermediary that manages access to verified device descriptors. The TEE stores descriptors in protected memory and provides controlled access to the OS through secure interfaces. The OS can access device information through the TEE's approved channels, maintaining ease of operation for legitimate operations while preventing unauthorized access and modification. This intermediary approach allows the OS to function normally while the TEE enforces security boundaries.
Data Source
AI summary
Technologies for secure enumeration of USB devices include a computing device having a USB controller and a trusted execution environment (TEE). The TEE may be a secure enclave protected secure enclave support of the processor. In response to a USB device connecting to the USB controller, the TEE sends a secure command to the USB controller to protect a device descriptor for the USB device. The secure command may be sent over a secure channel to a static USB device. A driver sends a get device descriptor request to the USB device, and the USB device responds with the device descriptor. The USB controller redirects the device descriptor to a secure memory buffer, which may be located in a trusted I/O processor reserved memory region. The TEE retrieves and validates the device descriptor. If validated, the TEE may enable the USB device for use. Other embodiments are described and claimed.


