TEE Input Verification Engine for Secure Binary Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing trusted execution environments (TEEs) struggle to securely handle binary translation and input verification, particularly in mobile devices and IoT contexts, where just-in-time compilation and managed runtimes complicate software integrity verification.

Innovation Solution

Implementing a binary translation engine (BTE) and input verification engine (IVE) within a TEE to securely translate and verify inputs, ensuring that only signed and verified binaries execute within the TEE, with the BTE translating trusted binaries into native formats and the IVE validating user inputs without exposing them to external applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If binary translation is performed outside the TEE, then translation flexibility and performance are improved, but software integrity and security are compromised

Engineering Contradiction:
Improvetranslation performanceVSAvoidsoftware integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary approach where the binary translation engine operates outside the TEE to provide translation flexibility and performance, while an input verification engine inside the TEE acts as a mediator to verify the integrity of translated binaries and inputs before they are used in trusted operations. This separation allows the system to benefit from both external translation capabilities and internal security verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If input verification is performed within the TEE, then security and integrity are improved, but exposure of inputs to external applications is prevented

Engineering Contradiction:
Improveinput verification securityVSAvoidinput accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the input verification process from external application access by implementing the input verification engine entirely within the TEE boundary. This segmentation allows inputs to be verified for security and integrity without exposing them to external applications, as the verification occurs in an isolated trusted environment that external applications cannot access.

Inventive Principle:
Principle #1Segmentation

3Speed

If just-in-time compilation is used in mobile devices, then execution speed is improved, but verification of software integrity becomes more complex

Engineering Contradiction:
Improveexecution speedVSAvoidverification complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent uses the input verification engine as an intermediary that simplifies the verification process for just-in-time compiled code. Instead of requiring complex verification of the compilation process itself, the system verifies the inputs and parameters passed to the JIT compiler, and verifies the resulting compiled code through hashing and comparison, reducing verification complexity while maintaining execution speed benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3238129B1Input verification
Publication Date: 2025.07.16 MCAFEE LLC
  • EP3238129B1 patent drawingFigure 1
  • EP3238129B1 patent drawingFigure 2~3
  • EP3238129B1 patent drawingFigure 4A

AI summary

In an example, a computing device may have an input verification engine (IVE) that provides input verification services within a trusted execution environment (TEE), including a memory enclave. Taking a Java-based Android application as an example, the IVE securely verifies and validates user inputs for sensitive computing applications, without exposing the inputs to external applications. The IVE may be implemented in native C/C++ or similar, or may provide instructions to dynamically provision an enclave and import a minimal Java Virtual Machine (JVM) into the enclave so that the IVE can run in Java. The IVE may also contain binary analysis tools to analyze an input binary to identify and tag portions that receive user input, so that in a binary translation, those portions can be run within the enclave.