Secure OS Cache for TEE Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing ARM TrustZone technology is vulnerable to the Double Fetch attack, where a malicious client application can tamper with data in shared memory between the time it is validated and used by a trusted application, compromising the security of the Trusted Execution Environment.
Innovation Solution
A secure operating system allocates a cache area in the Trusted Execution Environment for data passed between client and trusted applications, copying data from shared memory to the cache area and updating addresses to ensure that the trusted application accesses the cached data, thereby preventing tampering and ensuring data integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is passed through shared memory between CA and TA, then data transmission efficiency is improved, but security is compromised due to Double Fetch attack vulnerability
Solution Approach 1:
The patent segments the data transmission path into two distinct parts: a shared memory region accessible by both CA and TA, and a private cache region accessible only by TA within the TEE. This segmentation isolates the critical validation and usage operations in the secure TEE environment while allowing efficient data transfer through shared memory, thus resolving the contradiction between transmission efficiency and security.
Solution Approach 2:
The patent introduces the TEE environment as an intermediary layer between CA and TA. The secure OS within TEE acts as a mediator that validates data in the shared memory, copies it to the private cache, and manages the address translation. This intermediary ensures that even though shared memory is accessible to malicious CA, the TA can only access validated data through the secure TEE interface, preventing Double Fetch attacks while maintaining efficient data transmission.
2Measurement precision
If TA validates data in shared memory before use, then data integrity is improved, but security is compromised because malicious CA can tamper with data between validation and use
Solution Approach 1:
The patent implements preliminary action by having the secure OS validate and copy data from shared memory to the private cache area before the TA accesses it. The validation occurs in advance within the secure TEE environment, and the validated data is stored in a protected cache. This preliminary validation and copying prevents any tampering between validation and usage, as the TA only accesses data that has already been validated and secured in the private cache.
Solution Approach 2:
The patent extracts the critical validation and usage operations from the untrusted shared memory environment and places them in the secure TEE environment. By taking out the data validation and TA execution into the protected TEE, the system ensures that even if shared memory contains malicious data, the validation and usage occur in an isolated secure environment where tampering is prevented, thus resolving the security vulnerability.
3Reliability
If a cache area is allocated in TEE to copy data, then security against Double Fetch attack is improved, but system complexity increases
Solution Approach 1:
The patent implements self-service by having the secure OS automatically manage the cache area allocation, data copying, and address translation within the TEE environment. The system self-manages the security-critical operations without requiring complex external security mechanisms. The secure OS handles validation, copying, and address updates autonomously, which simplifies the overall system architecture compared to implementing complex external security layers, thus resolving the contradiction between security improvement and system complexity.
Data Source
AI summary
A method for passing data includes: a secure operating system allocating a cache area in trusted execution environment (TEE) to data in response to a client application (CA) calling a trusted application (TA) entry to pass the data to a TA; the secure operating system copying the data from a pre-allocated shared memory to the cache area; and the secure operating system running the TA entry so that the TA obtains the data from the cache area.


