# US 10,313,121 B2 · Maintaining operating system secrets across resets

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

- Number: US 10,313,121 B2
- Document ID: US10313121B2
- Status: Granted
- Kind: B2
- Application number: 15/199,650
- Filed: 2016-06-30
- Published: 2018-01-04
- Granted: 2019-06-04
- Earliest claimed: 2016-06-30
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Robert D. Young; Jonathan Bret Barkelew; Ronald Aigner; Alain L. Michaud; Jeremiah J. Cox
- Web page: https://patentgrep.com/patent/US10313121B2

## CPC

- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 21/575: {Secure boot}
- H04L 9/0819: {Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) (network architectures or network communication protocols for key distribution in a packet data network H04L63/062)}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- G06F 9/4406: {Loading of operating system}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- 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/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/78: to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A device includes a reset resistant store and a trusted key service. The reset resistant store maintains data across various different device reset or data invalidation operations. The trusted key service maintains, for each of one or more operating systems that run on the device from a boot configuration, an encrypted key associated with the boot configuration. The device also has a master key that is specific to the device. Each of the keys associated with a boot configuration is encrypted using the master key. When booting the device, the boot configuration being run on the device is identified, and the key associated with that boot configuration is obtained (e.g., from the reset resistant store or the encrypted key vault). The master key is used to decrypt the obtained key, and the obtained key is used to decrypt secrets associated with the operating system run from the boot configuration.

## Claims

### Claim 1

A method implemented in a computing device, the method comprising:
obtaining a master key associated with the computing device;
identifying a current boot configuration of the computing device;
obtaining an encrypted boot configuration specific key associated with the current boot configuration;
using the master key to decrypt the encrypted boot configuration specific key; and
using the decrypted boot configuration specific key to decrypt encrypted data associated with a current operating system of the computing device running from the current boot configuration, the master key and the encrypted data being stored in a reset resistant store of the computing device that persists across operating system re-installs and operating system resets.

### Claim 2 (depends on 1)

The method as recited in claim 1, further comprising allowing changes to the data associated with the current operating system only if a policy associated with the boot configuration specific key is satisfied.

### Claim 3 (depends on 1)

The method as recited in claim 1, further comprising maintaining the decrypted boot configuration specific key in a Trusted Platform Module, and maintaining the data associated with the current operating system despite invalidating of data in the Trusted Platform Module.

### Claim 4 (depends on 1)

The method as recited in claim 1, the reset resistant store comprising a Unified Extensible Firmware Interface variable.

### Claim 5 (depends on 1)

The method as recited in claim 1, further comprising:
maintaining the encrypted boot configuration specific key in a hardware-implemented trusted key service; and
backing up the encrypted boot configuration specific key from the hardware-implemented trusted key service to the reset resistant store.

### Claim 6 (depends on 1)

The method as recited in claim 1, operating systems from different vendors having different boot configuration specific keys, and each of the different ones of the operating systems from different vendors having different data associated with the operating system.

### Claim 7 (depends on 1)

The method as recited in claim 1, different versions of an operating system having different boot configuration specific keys, and each of the different versions of the operating system having different data associated with the operating system.

### Claim 8 (depends on 1)

The method as recited in claim 1, wherein the master key is encrypted when obtained.

### Claim 9 (depends on 8)

The method as recited in claim 8, further comprising unsealing the encrypted master key and storing the unencrypted master key; and
using the unencrypted master key to decrypt the boot configuration specific key.

### Claim 10

A computing device comprising:
a reset resistant store configured to maintain a master key and encrypted data associated with a particular operating system across re-installs of the particular operating system and resets of the particular operating system;
hardware that implements a trusted key service including an encrypted key vault;
the encrypted key vault configured to maintain an encrypted boot configuration specific key specific to a boot configuration used to run the particular operating system; and
the trusted key service configured to decrypt the encrypted boot configuration specific key and use the boot configuration specific key to decrypt data associated with the particular operating system only if the particular operating system is being booted or is running on the computing device.

### Claim 11 (depends on 10)

The computing device as recited in claim 10, the reset resistant store further maintains the data associated with the particular operating system across invalidation of data in the trusted key service.

### Claim 12 (depends on 10)

The computing device as recited in claim 10, the reset resistant store comprising one or more Unified Extensible Firmware Interface variables.

### Claim 13 (depends on 10)

The computing device as recited in claim 10, the trusted key service comprising a Trusted Platform Module.

### Claim 14 (depends on 10)

The computing device as recited in claim 10, the trusted key service being further configured to back up the encrypted key vault to the reset resistant store.

### Claim 15 (depends on 10)

The computing device as recited in claim 10, the particular operating system comprising a particular version of an operating system, and the trusted key service being configured to decrypt the encrypted boot configuration specific key and use the boot configuration specific key to decrypt data associated with the particular version of the operating system only if the particular version of the operating system is being booted on the computing device.

### Claim 16

A computing device comprising:
one or more processors; and
a computer-readable storage medium having stored thereon multiple instructions that, responsive to execution by the one or more processors, cause the one or more processors to perform operations comprising:
obtaining a master key associated with the computing device;
identifying a current boot configuration of the computing device;
obtaining an encrypted boot configuration specific key associated with the current boot configuration;
using the master key to decrypt the encrypted boot configuration specific key; and
using the decrypted boot configuration specific key to decrypt encrypted data associated with a current operating system of the computing device running from the current boot configuration, the master key and the encrypted data being stored in a reset resistant store of the computing device that persists across operating system re-installs and operating system resets.

### Claim 17 (depends on 16)

The computing device as recited in claim 16, the operations further comprising:
maintaining the decrypted boot configuration specific key in a Trusted Platform Module; and
maintaining the data associated with the current operating system despite invalidation of data in the Trusted Platform Module.

### Claim 18 (depends on 16)

The computing device as recited in claim 16, the operations further comprising:
maintaining the encrypted boot configuration specific key in a hardware-implemented trusted key service; and
backing up the encrypted boot configuration specific key from the hardware-implemented trusted key service to the reset resistant store.

### Claim 19 (depends on 16)

The computing device as recited in claim 16, operating systems from different vendors having different boot configuration specific keys, and each of the different ones of the operating systems from different vendors having different data associated with the operating system.

### Claim 20 (depends on 16)

The computing device as recited in claim 16, further comprising allowing changes to the data associated with the current operating system only if a policy associated with the boot configuration specific key is satisfied.
