IP Library Granted Patent US 9,832,207
Granted Patent B2
US 9,832,207 · App. 14/582,173 · Granted Nov 28, 2017

Input verification

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,832,207
App. No.
14/582,173
Granted
Nov 28, 2017
Kind
B2
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.

Claims (41)

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.

2. The computing apparatus of claim 1 , wherein exporting the input further comprises encrypting the input.

3. The computing apparatus of claim 1 , wherein exporting the input further comprises signing the input with a key of the TEE.

4. The computing apparatus of claim 1 , wherein the IVE is further operable for provisioning an enclave within the TEE.

5. The computing apparatus of claim 1 , wherein the IVE is further operable for analyzing a binary input object.

6. The computing apparatus of claim 1 , wherein the IVE comprises a module selected from the group consisting of a secure network stack, a secure graphics engine, a secure human input device interface engine, a secure audio engine, a secure image processing engine, a secure telemetry engine, a secure global positioning system receiver, and a binary input analyzer.

7. The computing apparatus of claim 4 , wherein the IVE is further operable for provisioning the binary translation engine within the enclave.

8. The computing apparatus of claim 5 , wherein the binary input object is an executable object.

9. The computing apparatus of claim 5 , wherein analyzing the binary input object comprises identifying portions of the object configured to perform input/output operations.

10. The computing apparatus of claim 7 , wherein the binary translation engine is a Java Virtual Machine, and wherein the IVE is implemented at least partly in Java.

11. The computing apparatus of claim 9 , wherein analyzing the binary input object further comprises tagging the portions.

12. The computing apparatus of claim 9 , wherein analyzing the binary input object further comprises identifying within the portions instructions to perform operations not legal within an enclave.

13. The computing apparatus of claim 10 , wherein exporting the input comprises exporting the input to a java native interface wrapper.

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.

15. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein exporting the input further comprises encrypting the input.

16. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein exporting the input further comprises signing the input with a key of the TEE.

17. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the IVE is further operable for provisioning an enclave within the TEE.

18. The one or more tangible, non-transitory computer-readable mediums of claim 17 , wherein the IVE is further operable for provisioning the binary translation engine within the enclave.

19. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the IVE is further operable for analyzing a binary input object.

20. The one or more tangible, non-transitory computer-readable mediums of claim 19 , wherein the binary input object is an executable object.

21. The one or more tangible, non-transitory computer-readable mediums of claim 19 , wherein analyzing the binary input object comprises identifying portions of the object configured to perform input/output operations.

22. The one or more tangible, non-transitory computer-readable mediums of claim 21 , wherein analyzing the binary input object further comprises tagging the portions.

23. The one or more tangible, non-transitory computer-readable mediums of claim 21 , wherein analyzing the binary input object further comprises identifying within the portions instructions to perform operations not legal within an enclave.

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.

25. The method of claim 24 , further comprising analyzing a binary input object, comprising:

identifying portions of the binary input object configured to perform input/output operations; and

tagging the portions.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2015
From: RUBAKHA, DMITRI; BRINKLEY, MATTHEW D.
To: MCAFEE, INC.
Reel/Frame 035852/0216 →