IP Library Granted Patent US 10,754,794
Granted Patent B2
US 10,754,794 · App. 15/839,331 · Granted Aug 25, 2020

Virtualization-based platform protection technology

Inventors: Rajesh P. Banginwar (Bangalore, IN); Sumanth Naropanth (Bangalore, IN); Sunil K. Notalapati Prabhakara (Bangalore, IN); Surendra K. Singh (Bangalore, IN); Arvind Mohan (Bangalore, IN); Ravi L. Sahita (Portland, OR); Rahil Malhotra (Bangalore, IN); Aman Bakshi (Bangalore, IN); Vasudevarao Kamma (Bangalore, IN); Jyothi Nayak (Bangalore, IN); Vivek Thakkar (Bangalore, IN); Royston A. Pinto (Bangalore, IN)
Assignee: Intel Corporation
G06F12/145G06F9/45545G06F9/45558G06F9/485G06F12/109G06F12/1491G06F21/53G06F21/57G06F12/023G06F2009/45583G06F2009/45587G06F2212/1052G06F2212/151G06F2212/651G06F2221/2149
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,754,794
App. No.
15/839,331
Granted
Aug 25, 2020
Kind
B2
Abstract

A data processing system (DPS) uses platform protection technology (PPT) to protect some or all of the code and data belonging to certain software modules. The PPT may include a virtual machine monitor (VMM) to enable an untrusted application and a trusted application to run on top of a single operating system (OS), while preventing the untrusted application from accessing memory used by the trusted application. The VMM may use a first extended page table (EPT) to translate a guest physical address (GPA) into a first host physical address (HPA) for the untrusted application. The VMM may use a second EPT to translate the GPA into a second HPA for the trusted application. The first and second EPTs may map the same GPA to different HPAs. Other embodiments are described and claimed.

Claims (50)

1. A method comprising:

loading, by a data processing system, a trusted application to execute on top of an operating system (OS) that uses a guest page table (GPT) to translate guest virtual addresses (GVAs) into guest physical addresses (GPAs);

creating, by the data processing system, an asserted page table (APT) for the trusted application, the APT to translate GVAs into GPAs for the trusted application;

preventing, by the data processing system, the OS from modifying the APT;

configuring, by the data processing system, a processor of the data processing system to use the APT instead of the GPT; and

executing, by the data processing system and after configuring the processor to use the APT instead of the GPT, the trusted application.

2. The method of claim 1 , wherein:

creating the APT comprises creating, by a virtual machine monitor (VMM) of the data processing system, the APT for the trusted application, and

configuring the processor comprises configuring, by an interrupt service routine (ISR), the processor to use the APT instead of the GPT.

3. The method of claim 2 , wherein loading the trusted application comprises loading, by a platform protection technology (PPT) loader, the trusted application into memory and registering, by the PPT loader, each page of the trusted application with the VMM,

wherein creating the APT comprises creating, by the VMM, the APT in response to the loading of the trusted application by the PPT loader.

4. The method of claim 3 , further comprising:

walking, by the VMM, an OS page table for each page of the trusted application in response to the PPT loader registering the corresponding page with the VMM; and

replicating, by the VMM, an OS page table entry for the corresponding page to the APT.

5. The method of claim 2 , further comprising locking, by the VMM, the APT,

wherein executing the trusted application comprises executing, only after the VMM has locked the APT, the trusted application.

6. A data processing system comprising:

one or more processors; and

one or more memory devices having stored therein a plurality of instructions that, when executed by the one or more processors, causes the data processing system to:

load a trusted application to execute on top of an operating system (OS) that uses a guest page table (GPT) to translate guest virtual addresses (GVAs) into guest physical addresses (GPAs);

create an asserted page table (APT) for the trusted application, the APT to translate GVAs into GPAs for the trusted application;

prevent the OS from modifying the APT;

configure at least one of the one or more processors to use the APT instead of the GPT; and

execute, after configuring the processor to use the APT instead of the GPT, the trusted application.

7. The data processing system of claim 6 , wherein:

to create the APT comprises to create, by a virtual machine monitor (VMM) of the data processing system, the APT for the trusted application, and

to configure the processor comprises to configure, by an interrupt service routine (ISR), the processor to use the APT instead of the GPT.

8. The data processing system of claim 7 , wherein to load the trusted application comprises to load, by a platform protection technology (PPT) loader, the trusted application into memory and registering, by the PPT loader, each page of the trusted application with the VMM,

wherein to create the APT comprises to create, by the VMM, the APT in response to the loading of the trusted application by the PPT loader.

9. The data processing system of claim 8 , wherein the plurality of instructions, when executed, further cause the data processing system to:

walk, by the VMM, an OS page table for each page of the trusted application in response to the PPT loader registering the corresponding page with the VMM; and

replicate, by the VMM, an OS page table entry for the corresponding page to the APT.

10. The data processing system of claim 7 , wherein the plurality of instructions, when executed, further cause the data processing system to lock, by the VMM, the APT,

wherein to execute the trusted application comprises to execute, only after the VMM has locked the APT, the trusted application.

11. One or more non-transitory, machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a data processing system to:

load a trusted application to execute on top of an operating system (OS) that uses a guest page table (GPT) to translate guest virtual addresses (GVAs) into guest physical addresses (GPAs);

create an asserted page table (APT) for the trusted application, the APT to translate GVAs into GPAs for the trusted application;

prevent the OS from modifying the APT;

configure at least one of the one or more processors to use the APT instead of the GPT; and

execute, after configuring the processor to use the APT instead of the GPT, the trusted application.

12. The one or more non-transitory, machine-readable storage media of claim 11 , wherein:

to create the APT comprises to create, by a virtual machine monitor (VMM) of the data processing system, the APT for the trusted application, and

to configure the processor comprises to configure, by an interrupt service routine (ISR), the processor to use the APT instead of the GPT.

13. The one or more non-transitory, machine-readable storage media of claim 12 , wherein to load the trusted application comprises to load, by a platform protection technology (PPT) loader, the trusted application into memory and registering, by the PPT loader, each page of the trusted application with the VMM,

wherein to create the APT comprises to create, by the VMM, the APT in response to the loading of the trusted application by the PPT loader.

14. The one or more non-transitory, machine-readable storage media of claim 13 , wherein the plurality of instructions, when executed, further cause the data processing system to:

walk, by the VMM, an OS page table for each page of the trusted application in response to the PPT loader registering the corresponding page with the VMM; and

replicate, by the VMM, an OS page table entry for the corresponding page to the APT.

15. The one or more non-transitory, machine-readable storage media of claim 12 , wherein the plurality of instructions, when executed, further cause the data processing system to lock, by the VMM, the APT,

wherein to execute the trusted application comprises to execute, only after the VMM has locked the APT, the trusted application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2020
From: BANGINWAR, RAJESH P.; NAROPANTH, SUMANTH; NOTALAPATI PRABHAKARA, SUNIL K.; SINGH, SURENDRA K.; MOHAN, ARVIND; SAHITA, RAVI L.; MALHOTRA, RAHIL; BAKSHI, AMAN; KAMMA, VASUDEVARAO; NAYAK, JYOTHI; THAKKAR, VIVEK; PINTO, ROYSTON A.
To: INTEL CORPORATION
Reel/Frame 052354/0337 →
Continuity (2)
Continuation 14739560 · Jun 15, 2015
Related Publication 20180113817A1 · Apr 26, 2018