Key Versioning Hash Stick Secure Boot

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing secure computing systems face challenges in keeping encryption/decryption keys secret, as attackers can exploit vulnerabilities in older software versions to access keys, even after upgrading to new versions, due to the ability to recreate old key vulnerabilities.

Innovation Solution

The system loads a secret value during secure boot operations, using version information to compute keys, ensuring that only the current and earlier version keys are accessible, while preventing access to future keys, by employing a hash stick mechanism that derives per-version key blobs and uses one-way hashing to maintain key secrecy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the system uses a single encryption key for multiple software versions, then backwards compatibility is maintained, but security is compromised because attackers can exploit vulnerabilities in older versions to access the key

Engineering Contradiction:
Improvebackwards compatibilityVSAvoidsecurity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the encryption key system by creating version-specific keys (K0, K1, K2, etc.) for different software versions. Each version has its own dedicated key, preventing attackers from using vulnerabilities in one version to compromise keys in other versions. This segmentation maintains security while enabling controlled backwards compatibility through key derivation mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-computing key blobs for future software versions during the secure boot process. These key blobs are stored securely and will be used when those versions are deployed, ensuring that future keys are already prepared and cannot be retroactively compromised by fixing vulnerabilities in current versions.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the system fixes vulnerabilities in new software versions, then security is improved, but attackers can still access old keys by recreating vulnerabilities in previous versions

Engineering Contradiction:
ImprovesecurityVSAvoidkey secrecy
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

Each software version is assigned a unique encryption key (K0, K1, K2, etc.), creating isolated security zones. When a vulnerability is fixed in a new version, the new key is unrelated to previous keys, so attackers cannot exploit old vulnerabilities to access new keys. This segmentation ensures that key secrecy is maintained across version updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the key parameter for each software version, creating a sequence of distinct keys (K0, K1, K2, etc.). This parameter change ensures that security properties differ between versions, allowing vulnerabilities in one version to not affect the security of keys in other versions.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If the system derives keys from a single secret value, then key management is simplified, but all versions remain vulnerable if any version's key is compromised

Engineering Contradiction:
Improvekey management complexityVSAvoidsecurity
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments the key hierarchy by introducing version-specific key blobs that are derived from a master secret but remain cryptographically isolated. Each version's key blob (KBLOB0, KBLOB1, KBLOB2, etc.) can be independently compromised without affecting other versions, maintaining both simplified key management through the master secret and security through version isolation.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9454661B2Key versioning including hash stick technology
Publication Date: 2016.09.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9454661B2 patent drawing
  • US9454661B2 patent drawing
  • US9454661B2 patent drawing

AI summary

The subject disclosure is directed towards providing a computing device with access to key that depends on the current software version, e.g., the software version of a security processor. If the software is compromised, another key becomes available with release of each new (non-compromised) software version. Keys for future versions cannot be derived, while keys for earlier versions can be derived from the current key. A secure boot process uses a secret to generate a first key, after which access to the secret is turned off. The first key is used with key blob data to compute a second key used for data decryption (and encryption) as needed. The key blob data may be global for all devices, and/or device specific; a hash stick comprising a set of derivable keys may be used at manufacturing time to generate the device-specific key blob data.