# US 12,120,222 B2 · Deploying a system-specific secret in a highly resilient computer system

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

- Number: US 12,120,222 B2
- Document ID: US12120222B2
- Status: Granted
- Kind: B2
- Application number: 17/393,449
- Filed: 2021-08-04
- Published: 2023-02-09
- Granted: 2024-10-15
- Earliest claimed: 2021-08-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Reinhard Theodor Buendgen; Brian Walter Stocker; Nicolas Maeding; Jonathan D. Bradbury
- Web page: https://patentgrep.com/patent/US12120222B2

## CPC

- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- 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 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/72: in cryptographic circuits
- G06F 2221/2149: Restricted operating environment
- H04L 9/0822: {using key encryption key}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/3247: {involving digital signatures}
- 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 computer-implemented method for providing a system-specific secret to a computing system having a plurality of computing components is disclosed. The method includes storing permanently a component-specific import key as part of a computing component and storing the component-specific import key in a manufacturing-side storage system. Upon a request for the system-specific secret for a computing system, the method includes identifying the computing component comprised in the computing system, retrieving a record relating to the identified computing component, determining the system-specific secret protected by a hardware security module and determining a system-specific auxiliary key. Furthermore, the method includes encrypting the system-specific auxiliary key with the retrieved component-specific import key, thereby creating a auxiliary key bundle, encrypting the system-specific secret and storing the auxiliary key bundle and a system record in a storage medium of the computing system.

## Claims

### Claim 1

A computer-implemented method for providing a system-specific secret to a computing system having a plurality of computing components for confidential computing, the method comprising:
storing permanently a component-specific import key as part of a computing component during manufacturing of said computing component, and
storing said component-specific import key in a manufacturing-side storage system operated by a manufacture of the computing component, wherein the component-specific import key is protected by a manufacturing-side hardware security module,
upon a request for said system-specific secret for a computing system:
identifying, in said manufacturing-side storage system, said computing component comprised in said computing system;
retrieving, from said manufacturing-side storage system, a record relating to said identified computing component from said manufacturing-side storage system, said record comprising said component-specific import key;
identifying, from the record, said system-specific secret protected by a manufacturing-side hardware security module;
identifying, from the record, a system-specific auxiliary key protected by the manufacturing-side hardware security module;
encrypting, on said manufacturing-side, said system-specific auxiliary key with said retrieved component-specific import key, thereby creating an auxiliary key bundle, wherein said auxiliary key bundle comprises at least one bundle record comprising a reference to said computing component to which said component-specific import key relates and said system-specific auxiliary key encrypted by said component-specific import key;
encrypting said system-specific secret with said system-specific auxiliary key;
storing said auxiliary key bundle and a systems record comprising the encrypted system-specific secret in a storage medium of said computing system;
changing said plurality of computing components of said computing system; and
based on detecting said changing, replacing an existing auxiliary key bundle on a storage medium being part of said specific computing system by a new auxiliary key bundle relating to an updated version of said computing system.

### Claim 2 (depends on 1)

The method of claim 1, wherein said auxiliary key bundle comprises at least one bundle record, and wherein the method further comprises:
searching, by said computing system, in said auxiliary key bundle a bundle record with said reference to said computing component that matches one of said computing components of said computing system;
sending said system record comprising said encrypted system-specific record and said found bundle record comprising said system-specific auxiliary key encrypted by said component-specific import key to that computing component;
decrypting, by said computing component, said encrypted computing system-specific auxiliary key from said bundle record with said computing component-specific import key stored in said computing component;
decrypting the encrypted system-specific secret from said system-specific record using the system-specific auxiliary key; and
returning, by said computing component, said system-specific secret to a firmware of said computing system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
maintaining, by said manufacturing-side, a manufacturing-side signing key; and
storing a verification key associated with a manufacturing-side signing key permanently in said computing system, wherein said creation of a bundle record comprises:
determining a signature of said system-specific auxiliary key encrypted by said component-specific import key and said reference to said computing component with a manufacturing-side signing key;
determining a signature for said system record; and
adding said signature for said system record to said system record.

### Claim 4 (depends on 3)

The method of claim 3, further comprising verifying, by said computing system, said bundle record and system record using said verification key stored in said computing system before accessing said system-specific secret.

### Claim 5 (depends on 3)

The method of claim 3, wherein said firmware to which said system-specific secret is returned to is a trusted firmware, and wherein said system-specific secret is stored in memory of said computing system that is only accessible by that trusted firmware.

### Claim 6 (depends on 5)

The method according to claim 5, wherein said trusted firmware is protected against access through at least one of a systems management system, an operator command of said computing system, and software not loaded as trusted firmware into said computing system.

### Claim 7 (depends on 3)

The method of claim 3, wherein said manufacturing-side signing key is protected by the manufacturing-side hardware security module.

### Claim 8 (depends on 2)

The method of claim 2, wherein said system-specific secret is a key generated and protected by the manufacturing-side hardware security module.

### Claim 9 (depends on 2)

The method of claim 2, further comprising:
generating said component-specific import key by a true random number generator;
storing securely said component-specific import key in said computing component;
sending said component-specific import key to a manufacturing-side hardware security module via a secure channel;
importing said component-specific import key to said manufacturing-side hardware security module; and
storing said component-specific import key in said manufacturing-side storage system as an object protected by said manufacturing-side hardware security module.

### Claim 10 (depends on 3)

The method of claim 3, further comprising:
storing said verification key associated with said manufacturing-side signing key in said computing component, and
using said verification key by said computing component to verify said signature of each encrypted system-specific secret before decrypting said system-specific secret.

### Claim 11 (depends on 2)

The method of claim 2, further comprising using said system-specific secret as a base secret of a trusted execution environment for confidential computing.

### Claim 12 (depends on 2)

The method of claim 2, wherein upon generating a new system-specific auxiliary key for said computing system also a new system-specific secret is determined, and a new auxiliary key bundle and a new system record comprising the encrypted system-specific secret are stored in said storage medium of said computing system.

### Claim 13 (depends on 2)

The method of claim 2, further comprising deleting the system-specific secret after the storing of the system record containing the system specific secret wrapped by the auxiliary key in a storage medium of said computing system.

### Claim 14

A hardware secret deployment system for providing a system-specific secret to a computing system comprising a plurality of computing components for confidential computing, said system comprising:
one or more processors and a memory communicatively coupled to said one or more processors, wherein in said memory one or more program code portions are stored that when executed by said one or more processors, enable said one or more processors to:
store permanently a component-specific import key as part of a computing component during manufacturing of said computing component;
store said component-specific import key in a manufacturing-side storage system operated by a manufacture of the computing component, wherein the component-specific import key is protected by a manufacturing-side hardware security module; and
upon a request for said system-specific secret for a computing system:
identify, in said manufacturing-side storage system, said computing component comprised in said computing system;
retrieve, from said manufacturing-side storage system, a record relating to said identified computing component from said manufacturing-side storage system, said record comprising a unique component-specific import key;
identify, from the record, said system-specific secret protected by a manufacturing-side hardware security module;
identify, from the record, a system-specific auxiliary key protected by the manufacturing-side hardware security module;
encrypt, on said manufacturing-side, said system-specific auxiliary key with said retrieved component-specific import key, thereby creating an auxiliary key bundle, wherein said auxiliary key bundle comprises a bundle record comprising a reference to said computing component to which said component-specific import key relates and said system-specific auxiliary key encrypted by said component-specific import key;
encrypt said system-specific secret with said system-specific auxiliary key; and
store said auxiliary key bundle and a system record comprising said encrypted system-specific secret in a storage medium of said computing system;
change said plurality of computing components of said computing system; and
based on detecting said change, replace an existing auxiliary key bundle on a storage medium being part of said specific computing system by a new auxiliary key bundle relating to an updated version of said computing system.

### Claim 15 (depends on 14)

The system of claim 14, wherein said secret auxiliary key comprises at least one of bundle record, and wherein said one or more program code portions, when executed by said one or more processors, enable said one or more processor also to:
search, by said computing system, in said auxiliary key bundle a record with said reference to said computing component that matches one of said computing components of said computing system;
send the system record comprising said encrypted system-specific system record and said found bundle record comprising said system-specific auxiliary key encrypted by said component-specific import key to that computing component;
decrypt, by said computing component, said encrypted computing system-specific auxiliary key from said bundle record with said computing component-specific import key stored in of said computing component;
decrypting the encrypted system-specific secret from said system-specific record using the system-specific auxiliary key; and
return, by said computing component, said system-specific secret to a firmware of said computing system.

### Claim 16 (depends on 15)

The system of claim 15, wherein said one or more program code portions, when executed by said one or more processors, enable said one or more processor also to:
maintain, by said manufacturing-side, a manufacturing-side signing key; and
store a verification key associated with a manufacturing-side signing key permanently in said computing system, wherein said creation of a bundle record also comprises:
determining a signature of said system-specific auxiliary key encrypted by said component-specific import key and said reference to said computing component with a manufacturing-side signing key;
adding said signature to said bundle record;
determining a signature for said system record; and
adding said signature for said system record to said system record.

### Claim 17 (depends on 16)

The system of claim 16, wherein said one or more program code portions, when execute by said one or more processors, enable said one or more processor also to verify, by said computing system, said bundle record using said verification key stored in said computing system before accessing said system-specific secret.

### Claim 18

A computer program product for providing a system-specific secret to a computing system comprising a plurality of computing components for confidential computing, said computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, said program instructions being executable by one or more computing systems or controllers to cause said one or more computing systems to:
store said component-specific import key in a manufacturing-side storage system operated by a manufacture of the computing component, wherein the component-specific import key is protected by a manufacturing-side hardware security module; and
upon a request for said system-specific secret for a computing system:
identify, in said manufacturing-side storage system, said computing component comprised in said computing system;
retrieve, from said manufacturing-side storage system, a record relating to said identified computing component from said manufacturing-side storage system, said record comprising a unique component-specific import key;
identify, from the record, said system-specific secret protected by a manufacturing-side hardware security module;
identify, from the record, a system-specific auxiliary key protected by the manufacturing-side hardware security module;
encrypt, on said manufacturing-side, said system-specific auxiliary key with said retrieved component-specific import key, thereby creating an auxiliary key bundle, wherein said auxiliary key bundle comprises a bundle record comprising a reference to said computing component to which said component-specific import key relates and said system-specific auxiliary key encrypted by said component-specific import key;
encrypt said system-specific secret with said system-specific auxiliary key; and
store said auxiliary key bundle and a system record comprising said encrypted system-specific secret in a storage medium of said computing system;
change said plurality of computing components of said computing system; and
based on detecting said change, replace an existing auxiliary key bundle on a storage medium being part of said specific computing system by a new auxiliary key bundle relating to an updated version of said computing system.
