Trusted-Server Trusted Application Infinite Loop for Non-blocking TEE Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Trusted Applications in a Trusted Execution Environment (TEE) are limited in functioning as a server, experiencing blocking states, inability to partially execute tasks, and lack of persistence between tasks, which restricts their ability to process requests and deliver data in a non-blocking manner.
Innovation Solution
Implementing a method where a Trusted Application runs in an infinite state-full loop within the TEE, utilizing a Trusted-Pipe as a mailbox for data exchange between the Trusted-Server and Customer Application, enabling asynchronous data exchange without blocking, and allowing the Trusted-Server to request additional data during task execution without stopping, through the use of two FIFO buffers for communication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a Trusted Application follows the standard execution model with sequential task scheduling, then security and memory isolation are maintained, but the application cannot function as a server with non-blocking operations
Solution Approach 1:
The patent segments the Trusted Application into two distinct components: a Trusted-Server TA that runs in an infinite loop and a Trusted-Pipe TA that handles communication. This segmentation allows the server component to maintain continuous execution while the pipe component manages blocking operations, thereby enabling server functionality without compromising the blocking state issue.
Solution Approach 2:
The Trusted-Pipe TA acts as an intermediary between the Customer Application and the Trusted-Server TA. It serves as a mailbox that buffers commands and data, allowing the server to operate in non-blocking mode while the pipe handles the blocking communication operations. This intermediary resolves the contradiction by decoupling the server's continuous execution from the blocking communication states.
2Stability of the object's composition
If a Trusted Application executes tasks sequentially as per specification, then memory isolation and security are ensured, but the application cannot partially execute tasks or maintain state between tasks
Solution Approach 1:
The patent implements a nested structure where the Trusted-Server TA contains an infinite execution loop that orchestrates multiple tasks, while the Trusted-Pipe TA is nested within the same TEE instance to handle communication. This nesting allows the outer server loop to maintain state and partially execute tasks while the inner pipe component ensures memory isolation and security boundaries are maintained.
Solution Approach 2:
The Trusted-Server TA executes continuously in an infinite loop, maintaining state between tasks and enabling partial task execution. The loop continuously polls the Trusted-Pipe for new commands and processes them without interruption, ensuring continuous useful action while the pipe component reclaims memory between operations to maintain isolation.
3Ease of operation
If a Trusted Application uses single instance/multi session or multi instance/single session model, then session management is simplified, but the application cannot implement client-server model with asynchronous data exchange
Solution Approach 1:
The Trusted-Pipe TA is designed as a universal component that can handle multiple sessions simultaneously while maintaining a single instance. It provides multi-functional capabilities including command buffering, data exchange, and session management, allowing the system to implement asynchronous client-server communication while keeping session management simple through the single-instance pipe.
Solution Approach 2:
The Trusted-Pipe TA serves as an intermediary mailbox that enables asynchronous data exchange between the customer application and trusted server. It decouples the communication timing, allowing the server to process data at its own pace while the pipe maintains the communication channel and buffers data, thereby enabling asynchronous operation without complex session management.
4Reliability
If the operating system reclaims volatile memory between tasks as specified, then security and resource management are improved, but the application cannot maintain execution context between tasks
Solution Approach 1:
The patent extracts the execution context and state information from the volatile memory that would be reclaimed between tasks. The Trusted-Server TA maintains its state in the infinite loop's memory space, separating persistent state from temporary task data. This extraction allows the system to reclaim volatile memory while preserving the essential execution context needed for continuous server operation.
Solution Approach 2:
The Trusted-Server TA performs preliminary actions by initializing its state and setting up the infinite execution loop before tasks are executed. It prepares the necessary data structures and context in advance, allowing it to resume execution seamlessly after memory reclamation. The pipe component also prepares command buffers in advance, ensuring context is preserved across task boundaries.
Data Source
AI summary
Upgrade to a Trusted Application in a Trusted Execution Environment compliant to a Trusted Execution Environment standard to an as-a-server functioning by running, inside the Trusted Execution Environment, each instance of a Multi Instance/Single Session Trusted-Server Trusted Application compliant to the TEE standard in an infinite state-full loop polling a session of a Single Instance/Multi Session Trusted-Pipe Trusted Application, the single session of each of the instance of the Trusted-Server Trusted Application being adapted to perform a task as a server, said Trusted-Pipe Trusted Application being further polled by the Customer Application and opening session depending on command coming from the Customer Application.

