IP Library Granted Patent US 10,592,434
Granted Patent B2
US 10,592,434 · App. 15/001,379 · Granted Mar 17, 2020

Hypervisor-enforced self encrypting memory in computing fabric

Inventors: Robert J Sliwa (Malvern, PA); Bryan E Thompson (Malvern, PA); James R Hunter (Malvern, PA); John A Landis (Malvern, PA); David A Kershner (Malvern, PA)
Assignee: Unisys Corporation
G06F12/1408G06F9/45558G06F12/1009G06F12/1441G06F2009/45583G06F2009/45595
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,592,434
App. No.
15/001,379
Granted
Mar 17, 2020
Kind
B2
Abstract

Methods and systems for securing memory within a computing fabric are disclosed. One method includes allocating memory of one or more host computing systems in the computing fabric to a partition, the partition included among a plurality of partitions, the computing fabric including a hypervisor installed on the one or more host computing platforms and managing interactions among the plurality of partitions. The method includes defining an address range associated with the memory allocated to the partition, receiving a memory operation including an address within the address range, and, based on the memory operation including an address within the address range, issuing, by the hypervisor, an indication that the memory operation is occurring at an encrypted memory location. The method also includes performing the memory operation, and performing an encryption operation on data associated with the memory operation.

Claims (43)

1. A method of securing memory within a computing fabric, the method comprising:

allocating memory of one or more host computing systems in the computing fabric to a virtual partition, the virtual partition included among a plurality of virtual partitions within a virtualization system, the computing fabric including a hypervisor installed on the one or more host computing platforms and managing interactions among the plurality of virtual partitions;

defining an address range associated with the memory allocated to the virtual partition, wherein the address range includes one or more memory pages included in an extended page table;

receiving a memory operation including an address within the address range from an application executing within a second virtual partition included among the plurality of virtual partitions within the virtualization system, the second virtual partition being different from the virtual partition;

based on the memory operation including an address within the address range, issuing, by the hypervisor, an indication that the memory operation is occurring at an encrypted memory location, wherein the indication that the memory operation is occurring at an encrypted memory location is triggered by an extended page fault violation;

performing the memory operation; and

performing, via the hypervisor, an encryption operation on data associated with the memory operation.

2. The method of claim 1 , wherein the memory operation comprises a memory write operation, and wherein the encryption operation comprises encrypting data written to the memory.

3. The method of claim 1 , wherein the memory operation comprises a memory read operation, and wherein the encryption operation comprises decrypting encrypted data retrieved from memory.

4. The method of claim 3 , wherein decrypting the encrypted data is performed by the hypervisor.

5. The method of claim 1 , wherein the memory comprises a non-volatile memory.

6. The method of claim 1 , further comprising receiving a definition of the virtual partition via a security API.

7. The method of claim 1 , wherein the memory operation comprises allocating the memory associated with the address range, and wherein the encryption operation comprises establishing encryption settings to be used for data stored in the memory.

8. A system comprising:

one or more host computing platforms;

a plurality of virtual partitions instantiated across the one or more host computing platforms, each of the plurality of virtual partitions allocated computing resources of the one or more host computing platforms, the plurality of virtual partitions including a virtual partition allocated memory from the one or more host computing platforms, the memory associated with an address range, wherein the address range includes one or more memory pages included in an extended page table;

a hypervisor installed on the one or more host computing platforms and managing interactions among the plurality of virtual partitions, the hypervisor configured to, based on receipt at a virtual partition of a memory operation including an address within the address range from an application executing within a second virtual partition included among the plurality of virtual partitions, the second virtual partition being different from the virtual partition:

issue an indication that the memory operation is occurring at an encrypted memory location, wherein the indication that the memory operation is occurring at an encrypted memory location is triggered by an extended page fault violation;

perform the memory operation; and

perform, via the hypervisor, an encryption operation on data associated with the memory operation.

9. The system of claim 8 , wherein the memory comprises a non-volatile dual in-line memory module.

10. The system of claim 8 , wherein the memory comprises a non-volatile memory.

11. The system of claim 8 , wherein the memory comprises an entire memory allocated to the virtual partition.

12. The system of claim 8 , wherein the memory operation is received at the hypervisor from a second virtual partition different from the virtual partition.

13. The system of claim 8 , wherein the memory operation is included within a plurality of operations defined in a security API.

14. The system of claim 13 , wherein the security API exposes a plurality of functions useable to define interaction with encrypted memory, the plurality of functions including:

an allocation function;

a memory write function configured to receive data, encrypt the data, and write the data at the address range; and

a memory read function configured to retrieve data from the memory, decrypt the data, and provide the data to a requesting application.

15. A system for managing secured memory in a computing fabric, the system comprising:

a programmable circuit of a host computing platform within the computing fabric;

a memory communicatively connected to the programmable circuit, the memory storing computer-executable instructions which, when executed, cause the computing platform to perform:

allocating memory of one or more host computing systems in the computing fabric to a virtual partition, the virtual partition included among a plurality of virtual partitions, the computing fabric including a hypervisor installed on the one or more host computing platforms and managing interactions among the plurality of virtual partitions;

defining an address range associated with the memory allocated to the virtual partition, wherein the address range includes one or more memory pages included in an extended page table;

receiving a memory operation including an address within the address range from an application executing within a second virtual partition included among the plurality of virtual partitions, the second virtual partition being different from the virtual partition;

based on the memory operation including an address within the address range, issuing, by the hypervisor, an indication that the memory operation is occurring at an encrypted memory location, wherein the indication that the memory operation is occurring at an encrypted memory location is triggered by an extended page fault violation;

performing the memory operation; and

performing, via the hypervisor, an encryption operation on data associated with the memory operation.

16. The system of claim 15 , wherein the instructions, when executed, cause the programmable circuit to further perform receiving a definition of the virtual partition via a security API.

17. The system of claim 15 , wherein the memory comprises a non-volatile memory.

18. The system of claim 15 , further comprising receiving a definition of the virtual partition via a security API.

19. The system of claim 15 , wherein the memory operation comprises a memory write operation, and wherein the encryption operation comprises encrypting data written to the memory.

20. The system of claim 15 , wherein the memory operation comprises a memory read operation, and wherein the encryption operation comprises decrypting encrypted data retrieved from memory.

Assignments (7)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 044416/0114 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY INTEREST Recorded Jun 3, 2016
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 038792/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: HUNTER, JAMES R; SLIWA, ROBERT J; THOMPSON, BRYAN E; LANDIS, JOHN A
To: UNISYS CORPORATION
Reel/Frame 038318/0846 →
Continuity (1)
Related Publication 20170206175A1 · Jul 20, 2017
Cited By (2)
US 12,430,159 US 12,436,790