IP Library Granted Patent US 11,487,906
Granted Patent B2
US 11,487,906 · App. 16/296,308 · Granted Nov 1, 2022

Storage sharing between a secure domain and a non-secure entity

Inventors: Lisa Cranton Heller (Rhinebeck, NY); Fadi Y. Busaba (Poughkeepsie, NY); Jonathan D. Bradbury (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G06F21/74G06F9/45558G06F12/1483G06F2009/45583G06F2009/45587
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,487,906
App. No.
16/296,308
Granted
Nov 1, 2022
Kind
B2
Abstract

According to one or more embodiments of the present invention, a computer implemented method includes enabling, by a secure interface control of a computer system, a non-secure entity of the computer system to access a page of memory shared between the non-secure entity and a secure domain of the computer system based on the page being marked as non-secure with a secure storage protection indicator of the page being clear. The secure interface control can verify that the secure storage protection indicator of the page is clear prior to allowing the non-secure entity to access the page. The secure interface control can provide a secure entity of the secure domain with access to the page absent a check of the secure storage protection indicator of the page.

Claims (59)

1. A method comprising:

receiving, by a secure interface control of a computer system, a request from a secure entity to establish shared access to a page of memory;

determining, by the secure interface control, whether the page is currently identified as secure with a secure storage protection indicator being set and the page registered to a secure domain of the secure entity;

registering, by the secure interface control, the page to the secure domain as shared based on determining that the page was identified as secure and registered to the secure domain of the secure entity;

enabling, by the secure interface control, a non-secure entity of the computer system to access the page shared between the non-secure entity and the secure domain of the computer system based on the page being marked as non-secure with the secure storage protection indicator of the page being clear;

verifying, by the secure interface control, that the secure storage protection indicator of the page is clear prior to allowing the non-secure entity to access the page; and

providing, by the secure interface control, the secure entity of the secure domain with access to the page absent a check of the secure storage protection indicator of the page.

2. The method of claim 1 , further comprising:

verifying, by the secure interface control, that a dynamic address translation mapping established by the non-secure entity, and used by the secure entity, is unchanged prior to providing the secure entity with access to the page.

3. The method of claim 1 , further comprising:

locking the page, by the secure interface control, based on determining that the page is currently identified as secure, registered to the secure domain of the secure entity, and the page is not currently locked; and

preventing, by the secure interface control, the secure entity or the secure interface control in a different context from accessing the page when locked.

4. The method of claim 3 , further comprising:

performing, by the secure interface control, one or more authorization checks or state updates of the page when locked; and

unlocking, by the secure interface control, the page based on completing the one or more authorization checks or state updates of the page.

5. The method of claim 3 , further comprising:

sending a busy indicator to the secure entity based on determining the page was already locked prior to receiving the request to establish shared access to the page.

6. The method of claim 1 , wherein the secure domain is checked and updated through a zone-security table comprising a secure domain identifier associated with the page and virtual address mapping data associated with the page.

7. The method of claim 1 , wherein the secure storage protection indicator comprises a bit in hardware of the computer system for each page of a plurality pages of the memory.

8. The method of claim 1 , wherein the secure interface control comprises firmware, hardware, or a combination of firmware and hardware; the non-secure entity comprises a hypervisor; and the secure entity comprises a virtual machine that is a secure guest hosted by the hypervisor in the secure domain.

9. A system comprising: a memory; and

a secure interface control of a processing unit configured to perform a plurality of operations comprising:

receiving a request from a secure entity to establish shared access to a page of the memory;

determining whether the page is currently identified as secure with a secure storage protection indicator being set and the page registered to a secure domain of the secure entity;

registering the page to the secure domain as shared based on determining that the page was identified as secure and registered to the secure domain of the secure entity;

enabling a non-secure entity to access the page shared between the non-secure entity and the secure domain of the system based on the page being marked as non-secure with the secure storage protection indicator of the page being clear;

verifying that the secure storage protection indicator of the page is clear prior to allowing the non-secure entity to access the page; and

providing the secure entity of the secure domain with access to the page absent a check of the secure storage protection indicator of the page.

10. The system of claim 9 , wherein the secure interface control is configured to perform operations comprising:

verifying that a dynamic address translation mapping established by the non-secure entity, and used by the secure entity, is unchanged prior to providing the secure entity with access to the page.

11. The system of claim 9 , wherein the secure interface control is configured to perform operations comprising:

locking the page based on determining that the page is currently identified as secure, registered to the secure domain of the secure entity, and the page is not currently locked; and

preventing, by the secure interface control, the secure entity or the secure interface control in a different context from accessing the page when locked.

12. The system of claim 11 , wherein the secure interface control is configured to perform operations comprising:

performing one or more authorization checks or state updates of the page when locked; and

unlocking the page based on completing the one or more authorization checks or state updates of the page.

13. The system of claim 11 , wherein the secure interface control is configured to perform operations comprising:

sending a busy indicator to the secure entity based on determining the page was already locked prior to receiving the request to establish shared access to the page.

14. The system of claim 9 , wherein the secure domain is checked and updated through a zone-security table comprising a secure domain identifier associated with the page and virtual address mapping data associated with the page.

15. The system of claim 9 , wherein the secure storage protection indicator comprises a bit in hardware of the computer system for each page of a plurality pages of the memory.

16. The system of claim 9 , wherein the secure interface control comprises firmware, hardware, or a combination of firmware and hardware; the non-secure entity comprises a hypervisor; and the secure entity comprises a virtual machine that is a secure guest hosted by the hypervisor in the secure domain.

17. A computer program product comprising a computer readable storage medium, the computer readable storage medium comprising computer executable instructions, which when executed by a secure interface control of a processing unit causes the processing unit to perform a method comprising:

receiving a request from a secure entity of a computer system to establish shared access to a page of memory;

determining whether the page is currently identified as secure with a secure storage protection indicator being set and the page registered to a secure domain of the secure entity;

registering the page to the secure domain as shared based on determining that the page was identified as secure and registered to the secure domain of the secure entity;

enabling a non-secure entity of the computer system to access the page shared between the non-secure entity and the secure domain of the computer system based on the page being marked as non-secure with the secure storage protection indicator of the page being clear;

verifying that the secure storage protection indicator of the page is clear prior to allowing the non-secure entity to access the page; and

providing the secure entity of the secure domain with access to the page absent a check of the secure storage protection indicator of the page.

18. The computer program product of claim 17 , wherein the executable instructions further cause the processing unit to perform:

verifying that a dynamic address translation mapping established by the non-secure entity, and used by the secure entity, is unchanged prior to providing the secure entity with access to the page.

19. The computer program product of claim 17 , wherein the executable instructions further cause the processing unit to perform:

locking the page based on determining that the page is currently identified as secure, registered to the secure domain of the secure entity, and the page is not currently locked; and

preventing the secure entity or the secure interface control in a different context from accessing the page when locked.

20. The computer program product of claim 19 , wherein the executable instructions further cause the processing unit to perform:

performing one or more authorization checks or state updates of the page when locked; and

unlocking the page based on completing the one or more authorization checks or state updates of the page.

21. The computer program product of claim 19 , wherein the executable instructions further cause the processing unit to perform:

sending a busy indicator to the secure entity based on determining the page was already locked prior to receiving the request to establish shared access to the page.

22. The computer program product of claim 17 , wherein the secure domain is checked and updated through a zone-security table comprising a secure domain identifier associated with the page and virtual address mapping data associated with the page.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2019
From: HELLER, LISA CRANTON; BUSABA, FADI Y.; BRADBURY, JONATHAN D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048538/0250 →
Continuity (1)
Related Publication 20200285777A1 · Sep 10, 2020