Cryptographic Engine DMA Channel Authorization for TEE I/O Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing devices face challenges in protecting Input/Output (I/O) data from malware attacks, as Trusted Execution Environments (TEEs) do not adequately secure I/O data communicated within and outside the secure environment, requiring enhanced cryptographic protection and secure programming of DMA channels.
Innovation Solution
A computing device with a cryptographic engine that provides on-the-fly encryption and decryption of I/O data using channel IDs, allowing multiple TEEs to program the engine while preventing untrusted software from subverting it, and employing a system manifest for authorization and ownership verification of DMA channels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If TEEs are used to protect security sensitive software, then security of software is improved, but I/O data communicated into and out of the secure container is not protected
Solution Approach 1:
The patent segments the I/O data protection by introducing a separate cryptographic engine that operates independently from the TEE. This engine specifically protects I/O data through dedicated DMA channel encryption, while the TEE continues to protect software execution. The segmentation allows each component to address its specific security concern without compromising the other.
Solution Approach 2:
The cryptographic engine acts as an intermediary between the TEE and external I/O devices. It mediates all data communication by encrypting data before it leaves the TEE and decrypting data before it enters the TEE. This intermediary layer ensures that even if the TEE boundary is crossed, the data remains protected throughout the transmission path.
2Adaptability or versatility
If multiple TEEs are allowed to co-exist, then system versatility is improved, but security management complexity increases
Solution Approach 1:
The cryptographic engine is designed with universal functionality to handle multiple TEEs simultaneously. It provides a unified interface and consistent encryption/decryption services for all TEEs, regardless of their specific implementations. This multi-functional design allows the system to support diverse TEEs without requiring separate security management mechanisms for each one.
Solution Approach 2:
Each TEE is assigned dedicated DMA channels and encryption keys that it manages independently. The cryptographic engine automatically routes data through the appropriate encryption context based on the DMA channel identifier. This self-service approach allows each TEE to manage its own security parameters without interfering with other TEEs, reducing overall system complexity.
3Ease of operation
If DMA channels are made programmable for flexible I/O, then ease of operation is improved, but vulnerability to subversion by untrusted software increases
Solution Approach 1:
The patent applies local quality by associating specific security attributes with each DMA channel. Each channel is configured with its own encryption context and access permissions. This allows trusted software to freely program and use DMA channels for legitimate I/O operations, while untrusted software is blocked at the specific channel level from accessing or subverting the cryptographic engine through unauthorized programming attempts.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
Technologies for secure programming of a cryptographic engine include a computing device with a cryptographic engine and one or more I/O controllers. The computing device establishes one or more trusted execution environments (TEEs). A TEE generates a request to program the cryptographic engine with respect to a DMA channel. The computing device may verify a signed manifest that indicates the TEEs permitted to program DMA channels and, if verified, determine whether the TEE is permitted to program the requested DMA channel. The computing device may record the TEE for a request to protect the DMA channel and may determine whether the programming TEE matches the recorded TEE for a request to unprotect a DMA channel. The computing device may allow the request to unprotect the DMA channel if the programming TEE matches the recorded TEE. Other embodiments are described and claimed.