IP Library Granted Patent US 10,956,321
Granted Patent B2
US 10,956,321 · App. 16/240,763 · Granted Mar 23, 2021

Secure management of operations on protected virtual machines

Inventors: Niels T. Ferguson (Redmond, WA); Yevgeniy Anatolievich Samsonov (Redmond, WA); Kinshumann (Redmond, WA); Samartha Chandrashekar (Redmond, WA); John Anthony Messec (Bellevue, WA); Mark Fishel Novak (Newcastle, WA); Christopher McCarron (Hartford, CT); Amitabh Prakash Tamhane (Redmond, WA); Qiang Wang (Bellevue, WA); David Matthew Kruse (Kirkland, WA); Nir Ben-Zvi (Bellevue, WA); Anders Bertil Vinberg (Kirkland, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F12/08G06F9/45558G06F21/57G06F21/6209G06F21/6281H04L9/0822H04L9/0894H04L9/3247H04L63/0428H04L63/062H04L63/0823H04L63/12H04W12/10G06F2009/4557G06F2009/45583G06F2009/45587G06F2009/45595G06F2212/652H04L2209/127H04L2209/24H04L2209/72H04L2463/062
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,956,321
App. No.
16/240,763
Granted
Mar 23, 2021
Kind
B2
Abstract

A virtual secure mode is enabled for a virtual machine operating in a computing environment that is associated with a plurality of different trust levels. First, a virtual secure mode image is loaded into one or more memory pages of a virtual memory space of the virtual machine. Then, the one or more memory pages of the virtual memory space are made inaccessible to one or more trust levels having a relatively lower trust level than a launching trust level that is used by a virtual secure mode loader to load the virtual secure mode image. A target virtual trust level is also enabled on a launching virtual processor for the virtual machine that is higher than the launching trust level.

Claims (27)

1. A method for operating a computing system to transition a virtual machine from one security trust level to a different security trust level, the method comprising:

the computing system causing the virtual machine which is executing on the computer system at a launching trust level to load a virtual secure mode image into one or more memory pages of a virtual memory space of the virtual machine, the virtual secure mode image corresponding to a target trust level that is higher than the launching trust level and prior to the virtual machine being enabled to execute at the target trust level;

the computing system restricting access to the one or more memory pages in response to the virtual secure mode image being loaded into the one or more memory pages; and

the computing system verifying the virtual secure mode image and enabling the virtual machine to transition from executing at the launching trust level to execute at the target virtual trust level.

2. The method of claim 1 , wherein the enabling the virtual machine to execute at the target virtual trust level includes enabling a first virtual processor of the virtual machine to execute at the target virtual trust level without enabling all virtual processors of the virtual machine to execute at the target virtual trust level.

3. The method of claim 2 , wherein the method further includes:

enabling one or more separate virtual processors in the virtual machine to execute on the target virtual trust level.

4. The method of claim 1 , wherein the method further includes providing a virtual register to track the virtual machine executing at the target virtual trust level.

5. The method of claim 4 , wherein the launching trust level and the target virtual trust level are included in a plurality of different trust levels, the plurality of different trust levels including at least three different trust levels that are tracked by the virtual register.

6. The method of claim 1 , wherein verifying the virtual secure mode image includes generating at least one hash of the virtual secure mode image.

7. The method of claim 6 , wherein the method further includes sending the at least one hash to a trusted platform module for attestation of software configuration for the virtual machine.

8. The method of claim 1 , wherein the restricting access comprises preventing the one or more memory pages from being accessed from a virtual component that is executing at a trust level that is lower than the target trust level.

9. A computing system comprising:

one or more processors; and

one or more storage media having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to implement a method for transitioning a virtual machine from one security trust level to a different security trust level, the method comprising:

a computing system causing the virtual machine which is executing on the computer system at a launching trust level to load a virtual secure mode image into one or more memory pages of a virtual memory space of the virtual machine, the virtual secure mode image corresponding to a target trust level that is higher than the launching trust level and prior to the virtual machine being enabled to execute at the target trust level;

the computing system restricting access to the one or more memory pages in response to the virtual secure mode image being loaded into the one or more memory pages; and

the computing system verifying the virtual secure mode image and enabling the virtual machine to execute at the target virtual trust level.

10. The computing system of claim 9 , wherein the enabling the virtual machine to execute at the target virtual trust level includes enabling a first virtual processor of the virtual machine to execute at the target virtual trust level without enabling all virtual processors of the virtual machine to execute at the target virtual trust level.

11. The computing system of claim 10 , wherein the method further includes:

enabling one or more separate virtual processors in the virtual machine to execute on the target virtual trust level.

12. The computing system of claim 9 , wherein the method further includes providing a virtual register to track the virtual machine executing at the target virtual trust level.

13. The computing system of claim 12 , wherein the launching trust level and the target virtual trust level are included in a plurality of different trust levels, the plurality of different trust levels including at least three different trust levels that are tracked by the virtual register.

14. The computing system of claim 9 , wherein verifying the virtual secure mode image includes generating at least one hash of the virtual secure mode image.

15. The computing system of claim 9 , wherein the restricting access comprises preventing the one or more memory pages from being accessed from a virtual component that is executing at a trust level that is lower than the target trust level.

16. The computing system of claim 9 , wherein the method further includes subsequently causing the virtual machine to execute at a different trust level than the target virtual trust level.

17. The computing system of claim 16 , wherein the method further includes disenabling the virtual machine to execute at the target virtual trust level.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 047910/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2019
From: FERGUSON, NIELS T.; SAMSONOV, YEVGENIY ANATOLIEVICH; KINSHUMANN, .; CHANDRASHEKAR, SAMARTHA; MESSEC, JOHN ANTHONY; NOVAK, MARK FISHEL; MCCARRON, CHRISTOPHER; TAMHANE, AMITABH PRAKASH; WANG, QIANG; KRUSE, DAVID MATTHEW; BEN-ZVI, NIR; VINBERG, ANDERS BERTIL
To: MICROSOFT CORPORATION
Reel/Frame 048018/0721 →