# US 11,308,215 B2 · Secure interface control high-level instruction interception for interruption enablement

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,215 B2
- Document ID: US11308215B2
- Status: Granted
- Kind: B2
- Application number: 16/296,452
- Filed: 2019-03-08
- Published: 2020-09-10
- Granted: 2022-04-19
- Earliest claimed: 2019-03-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Christian Borntraeger; Claudio Imbrenda; Fadi Y. Busaba; Jonathan D. Bradbury; Lisa Cranton Heller
- Web page: https://patentgrep.com/patent/US11308215B2

## CPC

- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 21/12: Protecting executable software
- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- G06F 21/6281: {at program execution time, where the protection is within the operating system}
- G06F 21/74: operating in dual or compartmented mode, i.e. at least one secure mode
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2221/034: Test or assess a computer or a system
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method is provided by a secure interface control of a computer that provides a partial instruction interpretation for an instruction which enables an interruption. The secure interface control fetches a program status word or a control register value from a secure guest storage. The secure interface control notifies an untrusted entity of guest interruption mask updates. The untrusted entity is executed on and in communication with hardware of the computer through the secure interface control to support operations of a secure entity executing on the untrusted entity. The secure interface control receives, from the untrusted entity, a request to present a highest priority, enabled guest interruption in response to the notifying of the guest interruption mask updates. The secure interface control moves interruption information into a guest prefix page and injecting the interruption in the secure entity when an injection of the interruption is determined to be valid.

## Claims

### Claim 1

A method comprising:
fetching, by a secure interface control of a computer that provides a partial instruction interpretation for an instruction which enables an interruption, a program status word or a control register value from a secure guest storage;
notifying, by the secure interface control, an untrusted entity of guest interruption mask updates, the untrusted entity being executed on and in communication with hardware of the computer through the secure interface control to support operations of a secure entity executing on the untrusted entity;
receiving, by the secure interface control from the untrusted entity, a request to present a highest priority, enabled guest interruption in response to the notifying of the guest interruption mask updates; and
moving, by the secure interface control, interruption information into a guest prefix page and injecting the interruption in the secure entity when an injection of the interruption is determined to be valid,
wherein the secure interface control includes a secure interface between the untrusted entity and the secure entity, the secure interface including a hardware mechanism that prevents the untrusted entity from accessing contents of the secure guest storage.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
issuing, by the secure entity, load program status word or load control that is being monitored by the untrusted entity.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
loading, by the secure interface control, the program status word or control register in response to the fetching.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
prioritizing, by the untrusted entity, pending and enabled interruptions to determine the highest priority, enabled guest interruption.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
storing, by the untrusted entity, interruption information for the highest priority, enabled guest interruption in non-secure storage.

### Claim 6 (depends on 5)

The method of claim 5, wherein the untrusted entity provides the interruption information in a state description.

### Claim 7 (depends on 5)

The method of claim 5, wherein the untrusted entity issues an instruction to provide the interruption information to the secure interface control and the interruption information is passed as a parameter for the instruction.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
issuing, by the secure interface control, an exception to the untrusted entity when the injection of the interruption is determined to be invalid.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
executing, by the secure entity, an interruption handler in response to receiving the injected interruption.

### Claim 10 (depends on 9)

The method of claim 9, wherein the secure entity comprises a secure guest and the untrusted entity comprises a hypervisor.

### Claim 11

A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause operation of:
fetching, by a secure interface control of a computer that provides a partial instruction interpretation for an instruction which enables an interruption, a program status word or a control register value from a secure guest storage;
notifying, by the secure interface control, an untrusted entity of guest interruption mask updates, the untrusted entity being executed on and in communication with hardware of the computer through the secure interface control to support operations of a secure entity executing on the untrusted entity;
receiving, by the secure interface control from the untrusted entity, a request to present a highest priority, enabled guest interruption in response to the notifying of the guest interruption mask updates; and
moving, by the secure interface control, interruption information into a guest prefix page and injecting the interruption in the secure entity when an injection of the interruption is determined to be valid,
wherein the secure interface control includes a secure interface between the untrusted entity and the secure entity, the secure interface including a hardware mechanism that prevents the untrusted entity from accessing contents of the secure guest storage.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
issuing, by the secure entity, load program status word or load control that is being monitored by the untrusted entity.

### Claim 13 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
loading, by the secure interface control, the program status word or control register in response to the fetching.

### Claim 14 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
prioritizing, by the untrusted entity, pending and enabled interruptions to determine the highest priority, enabled guest interruption.

### Claim 15 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
storing, by the untrusted entity, interruption information for the highest priority, enabled guest interruption in non-secure storage.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the untrusted entity provides the interruption information in a state description.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the untrusted entity issues an instruction to provide the interruption information to the secure interface control and the interruption information is passed as a parameter for the instruction.

### Claim 18 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
issuing, by the secure interface control, an exception to the untrusted entity when the injection of the interruption is determined to be invalid.

### Claim 19 (depends on 11)

The computer program product of claim 11, wherein the program instructions are further executable to cause:
executing, by the secure entity, an interruption handler in response to receiving the injected interruption.

### Claim 20 (depends on 19)

The computer program product of claim 19, wherein the secure entity comprises a secure guest and the untrusted entity comprises a hypervisor.

### Claim 21

A system comprising:
a secure interface control of a computer that provides a partial instruction interpretation for an instruction which enables an interruption;
fetching, by the secure interface control, a program status word or a control register value from a secure guest storage;
notifying, by the secure interface control, an untrusted entity of guest interruption mask updates, the untrusted entity being executed on and in communication with hardware of the computer through the secure interface control to support operations of a secure entity executing on the untrusted entity;
receiving, by the secure interface control from the untrusted entity, a request to present a highest priority, enabled guest interruption in response to the notifying of the guest interruption mask updates; and
moving, by the secure interface control, interruption information into a guest prefix page and injecting the interruption in the secure entity when an injection of the interruption is determined to be valid,
wherein the secure interface control includes a secure interface between the untrusted entity and the secure entity, the secure interface including a hardware mechanism that prevents the untrusted entity from accessing contents of the secure guest storage.

### Claim 22 (depends on 21)

The system of claim 21, wherein the system is executable to provide the operations of:
issuing, by the secure entity, load program status word or load control that is being monitored by the untrusted entity.

### Claim 23 (depends on 21)

The system of claim 21, wherein the system is executable to provide the operations of:
loading, by the secure interface control, the program status word or control register in response to the fetching.

### Claim 24 (depends on 21)

The system of claim 21, wherein the system is executable to provide the operations of:
prioritizing, by the untrusted entity, pending and enabled interruptions to determine the highest priority, enabled guest interruption.

### Claim 25 (depends on 21)

The system of claim 21, wherein the system is executable to provide the operations of:
storing, by the untrusted entity, interruption information for the highest priority, enabled guest interruption in non-secure storage.
