Key Versioning Hash Stick Secure Boot
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


