Cryptographic Engine DMA Channel Authorization for TEE I/O Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware securityVSAvoidI/O data exposure to malware
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple TEEs are allowed to co-exist, then system versatility is improved, but security management complexity increases

Engineering Contradiction:
Improvemultiple TEE supportVSAvoidsecurity management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
ImproveDMA channel programmingVSAvoidcryptographic engine security
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3326103B1Technologies for trusted I/O for multiple co-existing trusted execution environments under isa control
Publication Date: 2019.10.16 INTEL CORP
  • EP3326103B1 patent drawingFigure 1
  • EP3326103B1 patent drawingFigure 2~3
  • EP3326103B1 patent drawingFigure 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.