Trusted Binary Translation in TEE

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

VSEngineering 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

Engineering Contradiction:
ImprovesecurityVSAvoidbinary translation capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvetranslation flexibilityVSAvoidbinary integrity verification
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveverification speedVSAvoidcontinuous security assurance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #20Continuity of useful action

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9798559B2Trusted binary translation
Publication Date: 2017.10.24 MAGENTA SECURITY HOLDINGS LLC
  • US9798559B2 patent drawing
  • US9798559B2 patent drawing
  • US9798559B2 patent drawing

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.