Secure key storage for multi-core processor
AssigneeMicrosoft Technology Licensing, LLC
InventorFelix Stefan Domke
Life of this patent
Estimating the term…
Abstract
The disclosed technology is generally directed to secure key storage. A secret device key may be mutated based on a hash of a first boot loader to derive a first mutated key. The first mutated key may be mutated based on a random seed to derive a second mutated key. The second mutated key may be used to encrypt the hash of the runtime for a first core. The second mutated key may be mutated based on a hash of the runtime of the first execution environment for the second core to derive a third mutated key. The second mutated key may be used to encrypt the hash of the runtime of the first execution environment. The encrypted keys and hashes may be stored in a secure key store.
Claims20
An apparatus, comprising:
- a multi-core processor, including a first core, a second core, and at least one memory adapted to store run-time data, wherein the first core is adapted to execute processor-executable code that, in response to execution, enables the multi-core processor to perform actions, including:
- loading read-only-memory (ROM) code from a secure ROM;
- employing the first core to execute the ROM code to load a first boot loader, wherein the first boot loader is non-ROM code;
- deriving a first mutated key according to a mutation of a secret device key based on a hash of the first boot loader;
- employing first core to execute the first boot loader to load a runtime for the first core, wherein the runtime for the first core is a secure runtime environment that is configured to monitor an environment of the second core;
- calculating a hash of the runtime for the first core;
- deriving a second mutated key according to a mutation of the first mutated key based on a random seed;
- encrypting the hash of the runtime of the first core using the second mutated key;
- and
- storing the encrypted hash of the runtime of the first core in a secure key store.
A method, comprising:
- derive a first mutated key from a device key based on a hash of a first boot loader for the device;
- generating a hash of a runtime for a first core, wherein the runtime for the first core is a secure runtime environment that is configured to monitor an environment of a second core;
- derive a second mutated key from the first mutated key based on the hash of the runtime for the first core;
- encrypting, using the first mutated key, the second mutated key and the hash of the runtime for the first core;
- and
- in a secure key store, storing the encrypted hash of the runtime for the first core and the encrypted second mutated key.
A processor-readable storage medium, having stored thereon processor-executable code that, upon execution, enables operations, the operations comprising:
- generating a first mutated key from a secret device key and a hash of a first boot loader;
- generating a second mutated key from the first mutated key and a hash of the runtime for a first core, wherein the runtime for the first core is a secure runtime environment that is configured to monitor an environment of a second core;
- encrypting the second mutated key using the first mutated key;
- and
- storing the encrypted second mutated key secure storage.
Dependencies are inferred from the claim text.