Shared Memory Clock Reading for TEE Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In trusted execution environments (TEEs), malicious actors can perpetrate fraud by providing inaccurate clock readings or intercepting and replaying messages, leading to potential financial and operational disruptions, as existing systems lack direct access to a secure system clock and are vulnerable to side-channel attacks.
Innovation Solution
A shared memory clock reading (SMCR) system is introduced, where the host and TEE share memory access, allowing the TEE to validate clock readings without direct requests to untrusted code, reducing performance overhead and mitigating side-channel attacks by using shared memory to store and retrieve clock readings.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the TEE requests clock readings directly from the host under control of untrusted code, then the host can provide clock readings to the TEE, but the system becomes vulnerable to fraudulent clock readings and side-channel attacks
Solution Approach 1:
The patent introduces shared memory as an intermediary between the host and TEE for clock readings. The host writes clock readings to shared memory, and the TEE reads them directly without requesting from untrusted code, eliminating the vulnerability while maintaining functionality.
Solution Approach 2:
The patent extracts the clock reading data from the untrusted code path and places it directly into shared memory accessible by the TEE. This separates the clock generation function from the trusted execution path, preventing fraudulent readings.
2Measurement precision
If the TEE frequently requests clock readings to validate accuracy, then the system can detect fraudulent readings, but performance overhead increases significantly
Solution Approach 1:
The host performs the clock reading generation and writes it to shared memory in advance, before the TEE needs to validate it. This preliminary action eliminates the need for frequent TEE requests, reducing performance overhead while maintaining validation capability.
Solution Approach 2:
Shared memory serves as an intermediary that enables the TEE to passively receive and validate clock readings without active requesting, significantly reducing the frequency of interactions and associated performance overhead.
3Object-affected harmful factors
If the TEE uses shared memory to store and retrieve clock readings, then side-channel attacks are mitigated and performance overhead is reduced, but the system requires direct shared memory access capability
Solution Approach 1:
The shared memory infrastructure serves multiple functions: storing clock readings, enabling TEE validation, and preventing side-channel attacks. This multi-functionality justifies the infrastructure complexity by providing comprehensive security and performance benefits.
Data Source
AI summary
A computing system provides clock readings from an untrusted code to trusted code, where the trusted code is executed in a secure enclave and the untrusted code is executed outside the secure enclave. The computing system allocates a pointer to shared memory that is shared between the untrusted code and the trusted code. Under control of the untrusted code, the computing system periodically writes a clock reading to the shared memory. Under control of the trusted code, the computing system reads the clock reading stored in shared memory. The untrusted code cannot determine when the trusted code reads a clock reading.


