# US 10,482,259 B2 · Securing operating system configuration using hardware

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

- Number: US 10,482,259 B2
- Document ID: US10482259B2
- Status: Granted
- Kind: B2
- Application number: 15/801,543
- Filed: 2017-11-02
- Published: 2018-12-20
- Granted: 2019-11-19
- Earliest claimed: 2017-06-16
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Patrick J. Callaghan
- Web page: https://patentgrep.com/patent/US10482259B2

## CPC

- G06F 21/575: {Secure boot}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 9/4406: {Loading of operating system}
- G06F 21/44: Program or device authentication
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/3247: {involving digital signatures}
- G06F 9/441: {Multiboot arrangements, i.e. selecting an operating system to be loaded}
- G06F 2221/034: Test or assess a computer or a system
- H04L 9/14: using a plurality of keys or algorithms
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, system, and computer program product includes receiving, in a booted state of a computing system, a request to load an operating system configuration. The method further includes storing, automatically in response to receiving the request, a digital key to authenticate the operating system configuration. The method further includes restarting the computing system. In response to restarting the computing system and while the computing system is in a pre-boot state, the method includes: validating that the digital key stored is one for a valid operating system configuration; receiving, from a user interface physically coupled to the computing system, a signal confirming the received request; authenticating, in response to receiving the signal, the operating system configuration using the digital key; and booting, in response to the authenticating, the operating system configuration.

## Claims

### Claim 1

A method comprising:
receiving, from a user application executing under a first operating system configuration on a computing device, a request to execute a second operating system configuration of a set of operating system configurations, wherein the second operating system configuration is:
signed by a private key of a public-private key pair, and
comprises at least an operating system kernel compiled with a set of parameters, the set of parameters associated with an access control policy of the second operating system configuration;
storing, in response to receiving the request, a public key corresponding to the private key in a nonvolatile memory of the computing device; and
executing a trusted application during a pre-boot state of the computing device to:
validate that the public key stored is one for a valid operating system configuration,
receive, from a local interface to the computing device, a signal confirming the received request, move the public key to a protected memory when the signal confirms the request, and
execute a boot loader having access to the protected memory to authenticate the second operating system using the public key stored in the protected memory, and to boot the second operating system configuration in response to the authenticating.

### Claim 2 (depends on 1)

The method of claim 1, wherein the set of parameters determines software modules loadable under the second operating system configuration.

### Claim 3 (depends on 1)

The method of claim 1, wherein the set of parameters determines enforcement of the access control policy.

### Claim 4 (depends on 1)

The method of claim 1, wherein the protected memory is only writable by a set of applications, including the trusted application, having an executable code integrity authenticated by a hardware component of the computing system.

### Claim 5

A system, comprising:
a user interface terminal;
a computing system physically coupled to the user interface terminal and having a memory and a processor; and
a computer readable storage medium of the one or more computing nodes having program instructions embodied therewith, the program instructions executable by the processor to cause the system to:
receive, from a user application executing under a first operating system configuration on a computing device, a request to execute a second operating system configuration of a set of operating system configurations, wherein the second operating system configuration is:
signed by a private key of a public-private key pair, and
comprises at least an operating system kernel compiled with a set of parameters, the set of parameters associated with an access control policy of the second operating system configuration;
store, in response to receiving the request, a public key corresponding to the private key in a nonvolatile memory of the computing device; and execute a trusted application during a pre-boot state of the computing device to:
validate that the public key stored is one for a valid operating system configuration,
receive, from the user interface terminal, a signal confirming the received request,
move the public key to a protected memory when the signal confirms the request, and
execute a boot loader having access to the protected memory to authenticate the second operating system using the public key stored in the protected memory, and to boot the second operating system configuration in response to the authenticating.

### Claim 6 (depends on 5)

The system of claim 5, wherein the set of parameters determines software modules loadable under the second operating system configuration.

### Claim 7 (depends on 5)

The system of claim 5, wherein the set of parameters determines enforcement of the access control policy.

### Claim 8 (depends on 5)

The system of claim 5, wherein the protected memory is only writable by a set of applications, including the trusted application, having an executable code integrity authenticated by a hardware component of the computing system.

### Claim 9

A computer program product for securely booting a computing system, the computer program product including a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the computing system to execute a method comprising:
receiving, from a user application executing under a first operating system configuration on a computing device, a request to execute a second operating system configuration of a set of operating system configurations, wherein the second operating system configuration is:
signed by a private key of a public-private key pair, and
comprises at least an operating system kernel compiled with a set of parameters, the set of parameters associated with an access control policy of the second operating system configuration;
storing, in response to receiving the request, a public key corresponding to the private key in a nonvolatile memory of the computing device; and
executing a trusted application during a pre-boot state of the computing device to:
validate that the public key stored is one for a valid operating system configuration,
receive, from a local interface to the computing device, a signal confirming the received request, move the public key to a protected memory when the signal confirms the request, and
execute a boot loader having access to the protected memory to authenticate the second operating system using the public key stored in the protected memory, and to boot the second operating system configuration in response to the authenticating.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein the set of parameters determines software modules loadable under the second operating system configuration.

### Claim 11 (depends on 9)

The computer program product of claim 9, wherein the set of parameters determines enforcement of the access control policy.

### Claim 12 (depends on 9)

The computer program product of claim 9, wherein the protected memory is only writable by a set of applications, including the trusted application, having an executable code integrity authenticated by a hardware component of the computing system.
