Input verification
First Claim
1. A computing apparatus comprising:
- a trusted execution environment (TEE); and
one or more logic elements comprising an input verification engine (IVE) for operating within the TEE, the IVE including a secure network stack configured to provide encrypted communication and validate packets, the IVE operable for;
provisioning a binary translation engine within the TEE, the binary translation engine comprising an interpreter or virtual machine configured to receive a binary object in a first format not suitable for execution on the computing apparatus, and translate the binary object into a second format suitable for execution on the computing apparatus;
receiving an input for the binary translation engine;
validating the input via the secure network stack without exposing the input outside of the TEE; and
exporting the input to an application outside of the TEE.
10 Assignments
0 Petitions
Accused Products
Abstract
In an example, a computing device may 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.
30 Citations
25 Claims
-
1. A computing apparatus comprising:
-
a trusted execution environment (TEE); and one or more logic elements comprising an input verification engine (IVE) for operating within the TEE, the IVE including a secure network stack configured to provide encrypted communication and validate packets, the IVE operable for; provisioning a binary translation engine within the TEE, the binary translation engine comprising an interpreter or virtual machine configured to receive a binary object in a first format not suitable for execution on the computing apparatus, and translate the binary object into a second format suitable for execution on the computing apparatus; receiving an input for the binary translation engine; validating the input via the secure network stack without exposing the input outside of the TEE; and exporting the input to an application outside of the TEE. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. One or more tangible, non-transitory computer-readable storage mediums having stored thereon instructions that, when executed, instruct a processor to provide an input verification engine (IVE) within a trusted execution environment (TEE), the IVE including a secure network stack configured to provide encrypted communication and validate packets, the IVE operable for:
-
provisioning a binary translation engine within the TEE, the binary translation engine comprising an interpreter or virtual machine configured to receive a binary object in a first format not suitable for execution on a computing system, and translate the binary object into a second format suitable for execution on the computing system; receiving an input for the binary translation engine; validating the input via the secure network stack without exposing the input outside of the TEE; and exporting the input to an application outside of the TEE. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of providing an input verification engine (IVE) within a trusted execution environment (TEE), the IVE including a secure network stack configured to provide encrypted communication and validate packets, comprising at least one hardware element, comprising:
-
provisioning a binary translation engine within the TEE, the binary translation engine comprising an interpreter or virtual machine configured to receive a binary object in a first format not suitable for execution on the hardware element, and translate the binary object into a second format suitable for execution on the hardware element; receiving an input for the binary translation engine; validating the input via the secure network stack without exposing the input outside of the TEE; and exporting the input to an application outside of the TEE. - View Dependent Claims (25)
-
Specification