IP Library Granted Patent US 10,176,344
Granted Patent B2
US 10,176,344 · App. 15/658,367 · Granted Jan 8, 2019

Data verification using enclave attestation

Inventors: Ned Smith (Beaverton, OR); Esteban Gutierrez (Portland, OR); Andrew Woodruff (Portland, OR); Aditya Kapoor (Portland, OR)
Assignee: McAfee, LLC
G06F21/64G06F21/51G06F21/52G06F21/566G06F21/6281G06F2221/032G06F2221/2115
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 10,176,344
App. No.
15/658,367
Granted
Jan 8, 2019
Kind
B2
Abstract

Particular embodiments described herein provide for an electronic device that can be configured to receive untrusted input data at an enclave in an electronic device, isolate the untrusted input data from at least a portion of the enclave, communicate at least a portion of the untrusted data to an integrity verification module using an attestation channel, and receive data integrity verification of the untrusted input data from the integrity verification module. The integrity verification module can perform data integrity attestation functions to verify the untrusted data and the data integrity attestation functions include a data attestation policy and a whitelist.

Claims (49)

1. At least one non-transitory computer-readable medium comprising one or more instructions that when executed by a processor cause the processor to:

receive untrusted data for input to an application residing in a protected region of memory of an electronic device;

isolate the untrusted data for input from the protected region of memory;

communicate at least a portion of the untrusted data for input over an attestation channel for data integrity verification by a data integrity attestation function that includes a data attestation policy specifying constraints on input values for the application;

receive data integrity verification of the untrusted data for input, based on a determination that the at least a portion of the untrusted data for input conforms to the data attestation policy, via the attestation channel; and

return the verified untrusted data for input to the application for processing.

2. The at least one non-transitory computer-readable medium of claim 1 , wherein the data integrity attestation function further includes a whitelist, and wherein the data integrity verification is based further on a determination that the at least a portion of the untrusted data for input is included in the whitelist.

3. The at least one non-transitory computer-readable medium of claim 1 , wherein the application further includes an indicator that indicates the application is to be used with data integrity verification.

4. The at least one non-transitory computer-readable medium of claim 1 , wherein the data integrity attestation function is located in the electronic device.

5. The at least one non-transitory computer-readable medium of claim 1 , wherein the data integrity attestation function is located in the protected region of memory.

6. The at least one non-transitory computer-readable medium of claim 1 , wherein the data integrity attestation function is located in a server that is remote from the electronic device.

7. The at least one non-transitory computer-readable medium of claim 1 , wherein the data integrity attestation function is located in a cloud that is remote from the electronic device.

8. An apparatus comprising:

memory, wherein the memory comprises a protected region; and

a processor, the processor configured to:

receive untrusted data for input to an application residing in a protected region of memory of an electronic device;

isolate the untrusted data for input from the protected region of memory;

communicate at least a portion of the untrusted data for input over an attestation channel for data integrity verification by a data integrity attestation function that includes a data attestation policy specifying constraints on input values for the application;

receive data integrity verification of the untrusted data for input, based on a determination that the at least a portion of the untrusted data for input conforms to the data attestation policy, via the attestation channel; and

return the verified untrusted data for input to the application for processing.

9. The apparatus of claim 8 , wherein the data integrity attestation function further includes a whitelist, and wherein the data integrity verification is based further on a determination that the at least a portion of the untrusted data for input is included in the whitelist.

10. The apparatus of claim 8 , wherein the application further includes an indicator that indicates the application is to be used with data integrity verification.

11. The apparatus of claim 8 , wherein the data integrity attestation function is located in the electronic device.

12. The apparatus of claim 8 , wherein the data integrity attestation function is located in the protected region of memory.

13. The apparatus of claim 8 , wherein the data integrity attestation function is located in a server that is remote from the electronic device.

14. The apparatus of claim 8 , wherein the data integrity attestation function is located in a cloud that is remote from the electronic device.

15. A method comprising:

receiving untrusted data for input to an application residing in a protected region of memory of an electronic device;

isolating the untrusted data for input from the protected region of memory;

communicating at least a portion of the untrusted data for input over an attestation channel for data integrity verification by a data integrity attestation function that includes a data attestation policy specifying constraints on input values for the application;

receiving data integrity verification of the untrusted data for input, based on a determination that the at least a portion of the untrusted data for input conforms to the data attestation policy, via the attestation channel; and

returning the verified untrusted data for input to the application for processing.

16. The method of claim 15 , wherein the data integrity attestation function further includes a whitelist, and wherein the data integrity verification is based further on a determination that the at least a portion of the untrusted data for input is included in the whitelist.

17. The method of claim 15 , wherein the application further includes an indicator that indicates the application is to be used with data integrity verification.

18. The method of claim 15 , wherein the data integrity attestation function is located in the electronic device.

19. The method of claim 15 , wherein the data integrity attestation function is located in the protected region of memory.

20. The method of claim 15 , wherein the data integrity attestation function is located in a server that is remote from the electronic device.

21. The method of claim 15 , wherein the data integrity attestation function is located in a cloud that is remote from the electronic device.

22. A system for data integrity verification, the system comprising:

memory, wherein the memory comprises a protected region; and

a processor, the processor configured for:

receiving untrusted data for input to an application residing in a protected region of memory of an electronic device;

isolating the untrusted data for input from the protected region of memory;

communicating at least a portion of the untrusted data for input over an attestation channel for data integrity verification by a data integrity attestation function that includes a data attestation policy specifying constraints on input values for the application;

receiving data integrity verification of the untrusted data for input, based on a determination that the at least a portion of the untrusted data for input conforms to the data attestation policy, via the attestation channel; and

returning the verified untrusted data for input to the application for processing.

23. The system of claim 22 , wherein the data integrity attestation function further includes a whitelist, and wherein the data integrity verification is based further on a determination that the at least a portion of the untrusted data for input is included in the whitelist.

24. The system of claim 22 , wherein the application further includes an indicator that indicates the application is to be used with data integrity verification.

25. The system of claim 22 , wherein the data integrity attestation function is located in a cloud that is remote from the electronic device.

Assignments (2)
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 →
Continuity (2)
Continuation 14496056 · Sep 25, 2014
Related Publication 20180018476A1 · Jan 18, 2018
Cited By (5)
US 12,267,304 US 12,348,494 US 12,381,890 US 12,445,300 US 12,519,754