IP Library Granted Patent US 11,206,128
Granted Patent B2
US 11,206,128 · App. 16/296,303 · Granted Dec 21, 2021

Secure paging with page change detection

Inventors: Jonathan D. Bradbury (Poughkeepsie, NY); Christian Borntraeger (Stuttgart, DE); Heiko Carstens (Boeblingen, DE); Martin Schwidefsky (Boeblingen, DE); Reinhard Theodor Buendgen (Tuebingen, DE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L9/0643G06F9/45558G06F12/1408H04L9/3236G06F2009/45587G06F2212/1052
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 11,206,128
App. No.
16/296,303
Granted
Dec 21, 2021
Kind
B2
Abstract

According to one or more embodiments of the present invention, a computer implemented method includes computing a hash value of a page of memory of a computer system and comparing the hash value with a previously computed hash value of the page. A per-encryption value per page can be used in encrypting the page based on determining that the hash value matches the previously computed hash value. A modified value of the per-encryption value per page can be used in encrypting the page based on determining that the hash value mismatches the previously computed hash value.

Claims (61)

1. A method comprising:

computing a hash value of a page of memory in a secure domain of a computer system, wherein the page resides unencrypted in the secure domain;

comparing the hash value with a previously computed hash value of the page;

using a per-encryption value per page in encrypting the page based on determining that the hash value matches the previously computed hash value;

using a modified value of the per-encryption value per page in encrypting the page based on determining that the hash value mismatches the previously computed hash value; and

providing the page as encrypted to a non-secure domain of the computer system.

2. The method of claim 1 , wherein the encrypting is performed by a secure control interface responsive to a request of a host to convert the page from a secure page in the secure domain to a non-secure page in the non-secure domain.

3. The method of claim 2 , further comprising:

providing the non-secure page as encrypted to the host for storage.

4. The method of claim 3 , further comprising:

storing the hash value in a secure table of the secure control interface.

5. The method of claim 4 , further comprising:

converting the non-secure page to the secure page;

decrypting, by the secure interface control, the secure page based on the per-encryption value associated with the page to produce a decrypted page;

computing a hash value of the decrypted page;

comparing the hash value of the decrypted page with the hash value of the page as stored in the secure table; and

validating the decrypted page based on determining that the hash value of the decrypted page matches the hash value stored in the secure table.

6. The method of claim 2 , wherein the secure interface control comprises firmware, hardware, or a combination of firmware and hardware; the secure page is assigned to a secure container or a secure virtual machine managed by the host; and the host is a hypervisor or an operating system.

7. The method of claim 1 , wherein encrypting the page incorporates a combination of an address value associated with the page, one or more random values, and the per-encryption value with a cryptographically-secure hash function.

8. The method of claim 1 , wherein an initial value of the per-encryption value is established before the per-encryption value is used, and the per-encryption value is generated based on a per-encryption counter managed on a per page basis.

9. A system comprising:

a memory;

a processing unit; and

a secure interface control interfaced with the processing unit and the memory, the secure interface control configured to perform operations comprising:

computing a hash value of a page of the memory in a secure domain of the system, wherein the page resides unencrypted in the secure domain;

comparing the hash value with a previously computed hash value of the page;

using a per-encryption value per page in encrypting the page based on determining that the hash value matches the previously computed hash value;

using a modified value of the per-encryption value per page in encrypting the page based on determining that the hash value mismatches the previously computed hash value; and

providing the page as encrypted to a non-secure domain of the system.

10. The system of claim 9 , wherein the encrypting is performed by the secure control interface responsive to a request of a host to convert the page from a secure page in a secure domain to a non-secure page in the non-secure domain.

11. The system of claim 10 , wherein the operations further comprise providing the non-secure page as encrypted to the host for storage.

12. The system of claim 11 , wherein the operations further comprise storing the hash value in a secure table of the secure control interface.

13. The system of claim 12 , wherein the operations further comprise:

converting the non-secure page to the secure page;

decrypting, by the secure interface control, the secure page based on the per-encryption value associated with the page to produce a decrypted page;

computing a hash value of the decrypted page;

comparing the hash value of the decrypted page with the hash value of the page as stored in the secure table; and

validating the decrypted page based on determining that the hash value of the decrypted page matches the hash value stored in the secure table.

14. The system of claim 10 , wherein the secure interface control comprises firmware, hardware, or a combination of firmware and hardware; the secure page is assigned to a secure container or a secure virtual machine managed by the host; and the host is a hypervisor or an operating system.

15. The system of claim 9 , wherein encrypting the page incorporates a combination of an address value associated with the page, one or more random values, and the per-encryption value with a cryptographically-secure hash function.

16. The system of claim 9 , wherein an initial value of the per-encryption value is established before the per-encryption value is used, and the per-encryption value is generated based on a per-encryption counter managed on a per page basis.

17. A computer program product comprising a computer readable storage medium, the computer readable storage medium comprising computer executable instructions, which when executed perform a method comprising:

computing a hash value of a page of memory in a secure domain of a computer system, wherein the page resides unencrypted in the secure domain;

comparing the hash value with a previously computed hash value of the page;

using a per-encryption value per page in encrypting the page based on determining that the hash value matches the previously computed hash value;

using a modified value of the per-encryption value per page in encrypting the page based on determining that the hash value mismatches the previously computed hash value; and

providing the page as encrypted to a non-secure domain of the computer system.

18. The computer program product of claim 17 , wherein the encrypting is performed by a secure control interface responsive to a request of a host to convert the page from a secure page in the secure domain to a non-secure page in the non-secure domain.

19. The computer program product of claim 18 , wherein the executable instructions when executed further perform the method comprising:

providing the non-secure page as encrypted to the host for storage.

20. The computer program product of claim 19 , wherein the executable instructions when executed further perform the method comprising:

storing the hash value in a secure table of the secure control interface.

21. The computer program product of claim 20 , wherein the executable instructions when executed further perform the method comprising:

converting the non-secure page to the secure page;

decrypting, by the secure interface control, the secure page based on the per-encryption value associated with the page to produce a decrypted page;

computing a hash value of the decrypted page;

comparing the hash value of the decrypted page with the hash value of the page as stored in the secure table; and

validating the decrypted page based on determining that the hash value of the decrypted page matches the hash value stored in the secure table.

22. The computer program product of claim 18 , wherein the secure page is assigned to a secure container or a secure virtual machine managed by the host, and the host is a hypervisor or an operating system.

23. The computer program product of claim 17 , wherein encrypting the page incorporates a combination of an address value associated with the page, one or more random values, and the per-encryption value with a cryptographically-secure hash function.

24. The computer program product of claim 17 , wherein an initial value of the per-encryption value is established before the per-encryption value is used, and the per-encryption value is generated based on a per-encryption counter managed on a per page basis.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2019
From: BRADBURY, JONATHAN D.; BORNTRAEGER, CHRISTIAN; CARSTENS, HEIKO; SCHWIDEFSKY, MARTIN; BUENDGEN, REINHARD THEODOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048537/0992 →
Continuity (1)
Related Publication 20200287709A1 · Sep 10, 2020
Cited By (1)
US 12,487,759