Trusted Binary Translation in TEE
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current trusted execution environments (TEEs) face challenges in securely translating and verifying binaries, especially when code needs to be modified or executed on different architectures, as they typically only ensure integrity up to software installation time and do not effectively handle use cases like binary translation or just-in-time compilation.
Innovation Solution
Incorporating a binary translation engine (BTE) and input verification engine (IVE) within the TEE to translate and verify signed binaries, allowing the BTE to operate within the TEE and sign the translated output, ensuring the integrity and security of the translated binaries across different architectures and platforms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a TEE executes only signed and verified binaries, then security against malware is improved, but the ability to execute translated or dynamically compiled code is restricted
Solution Approach 1:
The system performs preliminary signing of the binary translation engine itself, allowing it to execute within the TEE. This pre-established trust enables the engine to translate other binaries while maintaining security constraints, resolving the contradiction between security restrictions and translation capability.
Solution Approach 2:
The binary translation engine acts as an intermediary component within the TEE that bridges the gap between security requirements and translation needs. It receives untrusted input binaries, translates them, and outputs signed results that maintain the security model while enabling code format conversion.
2Adaptability or versatility
If binary translation is performed outside the TEE, then translation flexibility is improved, but the integrity of translated binaries cannot be verified
Solution Approach 1:
The TEE serves as a trusted intermediary that receives the translated binary output, verifies its integrity through signing operations, and either executes it directly or exports it with cryptographic proof of authenticity. This maintains both translation flexibility and integrity verification.
Solution Approach 2:
The system implements a feedback loop where translated binaries are automatically verified and signed by the TEE before execution or export. This closed-loop verification process ensures that any translation performed outside the TEE still undergoes integrity checking, maintaining reliability while allowing external translation tools.
3Productivity
If the TEE verifies code integrity at installation time only, then verification speed is improved, but security gaps exist during code modification and execution
Solution Approach 1:
The binary translation engine operates continuously within the TEE, performing verification and signing operations on binaries at multiple stages: during translation, after translation, and before execution. This continuous verification process maintains security assurance throughout the entire code lifecycle rather than only at installation time.
Solution Approach 2:
The system performs preliminary verification and signing of the binary translation engine itself, establishing trust before it processes other binaries. This pre-established trust enables subsequent rapid verification of translated code while maintaining continuous security, as the engine's authenticity is already confirmed.
Data Source
AI summary
In an example, a computing device may include a trusted execution environment (TEE) for executing signed and verified code. The device may receive a trusted binary object in a first form, but the object may need to be converted to a second format, either on-the-fly, or in advance. This may include, for example, a bytecode interpreter, script interpreter, runtime engine, compiler, just-in-time compiler, or other species of binary translator. The binary translator may be run from the TEE, and the output may then be signed by the TEE and treated as a new trusted binary.


