IP Library Granted Patent US 10,248,791
Granted Patent B2
US 10,248,791 · App. 14/974,960 · Granted Apr 2, 2019

Technologies for secure hardware and software attestation for trusted I/O

Inventors: Pradeep M. Pappachan (Hillsboro, OR); Reshma Lal (Hillsboro, OR); Bin Xing (Hillsboro, OR); Siddhartha Chhabra (Hillsboro, OR); Vincent R. Scarlata (Beaverton, OR); Steven B. McGowan (Portland, OR)
Assignee: Intel Corporation
G06F21/57G06F13/28G06F21/602
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,248,791
App. No.
14/974,960
Granted
Apr 2, 2019
Kind
B2
Abstract

Technologies for trusted I/O attestation and verification include a computing device with a cryptographic engine and one or more I/O controllers. The computing device collects hardware attestation information associated with statically attached hardware I/O components that are associated with a trusted I/O usage protected by the cryptographic engine. The computing device verifies the hardware attestation information and securely enumerates one or more dynamically attached hardware components in response to verification. The computing device collects software attestation information for trusted software components loaded during secure enumeration. The computing device verifies the software attestation information. The computing device may collect firmware attestation information for firmware loaded in the I/O controllers and verify the firmware attestation information. The computing device may collect application attestation information for a trusted application that uses the trusted I/O usage and verify the application attestation information. Other embodiments are described and claimed.

Claims (40)

1. A computing device for trusted I/O attestation and verification, the computing device comprising:

a hardware processor;

an in-field programmable fuse;

a hardware attestation module, executed by the hardware processor, to (i) collect hardware attestation information associated with one or more statically attached hardware I/O components of the computing device, wherein the hardware I/O components are associated with a trusted I/O usage protected with a cryptographic engine of the computing device, wherein to collect the hardware attestation information comprises to read a platform manifest of the computing device, wherein the platform manifest is indicative of the statically attached hardware I/O components, and (ii) verify the hardware attestation information, wherein to verify the hardware attestation information comprises to verify, by a trusted software component of the computing device, a cryptographic signature of the platform manifest;

a secure enumeration module, executed by the hardware processor, to (i) securely enumerate one or more dynamically attached hardware I/O components of the computing device in response to verification of the hardware attestation information, and (ii) load one or more trusted software components in response to secure enumeration of the one or more dynamically attached hardware I/O components; and

a software attestation module, executed by the hardware processor, to (i) collect software attestation information associated with the trusted software components in response to loading of the trusted software components, wherein the software attestation information is indicative of identity and topology of the trusted software components, and (ii) verify the software attestation information;

wherein to verify the hardware attestation information further comprises to: (i) read, by a trusted system computing agent of the computing device, a platform model identifier from the in-field programmable fuse; (ii) securely transmit, by the trusted system computing agent, the platform model identifier to the trusted software component; and compare, by the trusted software component, the platform model identifier to a second platform model identifier of the platform manifest in response to verification of the cryptographic signature of the platform manifest.

2. The computing device of claim 1 , wherein collecting the hardware attestation information associated with the one or more statically attached hardware I/O components comprises discovering, by the trusted system computing agent of the computing device, the statically attached hardware I/O components.

3. The computing device of claim 1 , wherein to collect the software attestation information comprises to generate one or more secure enclave reports, wherein each secure enclave report is indicative of a cryptographic measurement of a trusted software component.

4. The computing device of claim 1 , wherein to verify the software attestation information comprises to:

determine one or more hardware I/O devices required by the trusted I/O usage;

determine, based on the software attestation information, that each of the one or more hardware I/O devices required by the trusted I/O usage is reachable via a secure I/O path from a trusted application associated with the trusted I/O usage; and

verify an identity of each trusted software component associated with each secure I/O path.

5. The computing device of claim 1 , wherein to verify the software attestation information comprises to verify the software attestation information by a trusted application of the computing device.

6. The computing device of claim 1 , wherein to verify the software attestation information comprises to submit the software attestation information to a local verification service of the computing device.

7. The computing device of claim 1 , wherein to verify the software attestation information comprises to submit the software attestation information to a remote verification service.

8. The computing device of claim 1 , further comprising a firmware attestation module, executed by the hardware processor, to (i) collect firmware attestation information associated with one or more I/O controllers of the computing device, and (ii) verify the firmware attestation information.

9. The computing device of claim 8 , wherein:

to collect the firmware attestation information comprises to collect the firmware attestation information by the trusted system computing agent of the computing device; and

to verify the firmware attestation information comprises to verify the firmware attestation information by the trusted system computing agent.

10. The computing device of claim 1 , further comprising an application attestation module, executed by the hardware processor, to (i) collect application attestation information associated with a trusted application of the computing device, wherein the trusted application uses the trusted I/O usage, and (ii) verify the application attestation information.

11. One or more non-transitory, machine readable storage media comprising a plurality of instructions that in response to being executed cause a computing device to:

collect hardware attestation information associated with one or more statically attached hardware I/O components of the computing device, wherein the hardware I/O components are associated with a trusted I/O usage using a cryptographic engine of the computing device, and wherein to collect the hardware attestation information comprises to read a platform manifest of the computing device, wherein the platform manifest is indicative of the statically attached hardware I/O components;

verify the hardware attestation information, wherein to verify the hardware attestation information comprises to verify, by a trusted software component of the computing device, a cryptographic signature of the platform manifest;

securely enumerate one or more dynamically attached hardware I/O components of the computing device in response to verifying the hardware attestation information;

load one or more trusted software components in response to securely enumerating the one or more dynamically attached hardware I/O components;

collect software attestation information associated with the trusted software components in response to loading the trusted software components, wherein the software attestation information is indicative of identity and topology of the trusted software components; and

verify the software attestation information;

wherein to verify the hardware attestation information further comprises to: (i) read, by a trusted system computing agent of the computing device, a platform model identifier from an in-field programmable fuse of the computing device; (ii) securely transmit, by the trusted system computing agent, the platform model identifier to the trusted software component; and compare, by the trusted software component, the platform model identifier to a second platform model identifier of the platform manifest in response to verification of the cryptographic signature of the platform manifest.

12. The one or more non-transitory, machine readable storage media of claim 11 , wherein to collect the hardware attestation information associated with the one or more statically attached hardware I/O components comprises to discover, by the trusted system computing agent of the computing device, the statically attached hardware I/O components.

13. The one or more non-transitory, machine readable storage media of claim 11 , wherein to verify the software attestation information comprises to:

determine one or more hardware I/O devices required by the trusted I/O usage;

determine, based on the software attestation information, that each of the one or more hardware I/O devices required by the trusted I/O usage is reachable via a secure I/O path from a trusted application associated with the trusted I/O usage; and

verify an identity of each trusted software component associated with each secure I/O path.

14. The one or more non-transitory, machine readable storage media of claim 11 , further comprising a plurality of instructions that in response to being executed cause the computing device to:

collect firmware attestation information associated with one or more I/O controllers of the computing device; and

verify the firmware attestation information.

15. The one or more non-transitory, machine readable storage media of claim 11 , further comprising a plurality of instructions that in response to being executed cause the computing device to:

collect application attestation information associated with a trusted application of the computing device, wherein the trusted application uses the trusted I/O usage; and

verify the application attestation information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2016
From: PAPPACHAN, PRADEEP M.; LAL, RESHMA; XING, BIN; CHHABRA, SIDDHARTHA; SCARLATA, VINCENT R.; MCGOWAN, STEVEN B.
To: INTEL CORPORATION
Reel/Frame 040276/0399 →
Continuity (4)
Provisional Application 62194763 · Jul 20, 2015
Provisional Application 62195148 · Jul 21, 2015
Provisional Application 62198779 · Jul 30, 2015
Related Publication 20170024570A1 · Jan 26, 2017