TEE Input Verification Engine for Secure Binary Translation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If input verification is performed within the TEE, then security and integrity are improved, but exposure of inputs to external applications is prevented
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.
3Speed
If just-in-time compilation is used in mobile devices, then execution speed is improved, but verification of software integrity becomes more complex
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.
Data Source
Figure 1
Figure 2~3
Figure 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.