Version-Specific Encryption Key Generation for Rollback Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face challenges in preventing unauthorized access to user data when rolling back software versions, as earlier versions can potentially decrypt and re-encrypt data using the same encryption keys, compromising security even if data is encrypted.

Innovation Solution

The system generates distinct encryption keys for each software version, with the bootloader verifying digital signatures and generating keys during the boot process, ensuring that prior versions cannot access data encrypted by later versions, and preventing access to the secret key until the device is rebooted.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the same encryption key is used across software versions, then backward compatibility is maintained and data can be accessed by older versions, but security is compromised as attackers can roll back to earlier versions to access encrypted data

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

Solution Approach 1:

The encryption key is segmented into version-specific components. Each software version generates its own unique encryption key derived from a secret key and version identifier. This segmentation allows the system to maintain security by ensuring that data encrypted with one version's key cannot be decrypted by another version, while still providing controlled access through key derivation mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary key generation and version verification during the boot process before data access is permitted. The bootloader verifies the software version and generates appropriate encryption keys in advance, preventing attackers from rolling back to earlier versions to access data. This preliminary action ensures that only authorized version-specific keys are available when data access is attempted.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If distinct encryption keys are generated for each software version, then security is improved as attackers cannot access data by rolling back versions, but system complexity increases due to multiple key management requirements

Engineering Contradiction:
ImprovesecurityVSAvoidkey management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A single secret key serves multiple functions across different software versions. The secret key is used to derive version-specific encryption keys through a deterministic process combining the secret key with the version identifier. This universal approach simplifies key management by eliminating the need to store multiple independent secret keys, while still providing distinct encryption keys for each version to maintain security.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The encryption key is dynamically changed based on the software version parameter. Instead of using fixed keys, the system generates different encryption keys by combining the secret key with version-specific parameters. This parameter-driven key generation allows the system to adapt keys to different software versions without increasing the fundamental key management complexity, as the derivation process remains consistent.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the bootloader generates encryption keys during boot, then security is enhanced by preventing access to secret keys after boot, but the boot process complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidboot process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The secret key is extracted from the boot image and processed separately by the bootloader during the boot process. Instead of embedding the secret key directly in the operating system, the bootloader extracts it, combines it with version information to generate encryption keys, and then discards the secret key before transferring control to the OS. This extraction approach enhances security by ensuring the secret key never resides in the running system, while the boot process complexity is justified by the security benefits.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The secret key is rapidly processed and discarded during the boot process before any potential attack vectors can be exploited. The bootloader quickly generates the necessary encryption keys from the secret key and version information, then immediately eliminates the secret key from the system. This rushing through the key generation and disposal process minimizes the time window for potential attacks while completing the necessary security setup.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentUS20240330470A1Rollback Resistant Security
Publication Date: 2024.10.03 GOOGLE LLC
  • US20240330470A1 patent drawing
  • US20240330470A1 patent drawing
  • US20240330470A1 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for rollback resistant security are disclosed. In one aspect, a method, during a boot process of a computing device, includes the actions of obtaining a secret key derived from device-specific information for the computing device. The method further includes verifying that a signature for a software module is valid. The method further includes obtaining information indicating a current version of the software module. The method further includes using the secret key to generate a first encryption key corresponding to the current version of the software module and a second encryption key corresponding to a prior version of the software module. The method further includes preventing future access to the secret key until the computing device is rebooted. The method further includes providing the software module access to the first encryption key and the second encryption key.