UEFI Variable Restoration via Backup Copy and Detection Flag

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The transition from legacy BIOS to UEFI firmware has made it challenging to protect and restore critical configuration and global variables essential for booting a computer, as they can be inadvertently rewritten or erased due to errors or malware, and are vulnerable to power supply noise, leading to boot failures.

Innovation Solution

A method is introduced to save a set of variables at a normal boot state and detect alterations, replacing them with the saved set during boot to restore the original state, using a detection flag and cryptographic digests for verification, and storing the restoration code and variables in a non-volatile memory separate from the firmware ROM.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If configuration variables and global variables are stored in firmware ROM to enable immediate access during boot, then boot speed and system initialization efficiency are improved, but the variables become vulnerable to corruption from power supply noise and unauthorized modification

Engineering Contradiction:
Improveboot speedVSAvoidvariable integrity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent creates a backup copy of the variable set and stores it in a separate storage area before any corruption can occur. This preliminary action ensures that a valid copy is available for restoration if the primary variables become corrupted during boot or operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates and stores a backup copy of the variable set in a separate area of the firmware ROM or non-volatile memory. This copying mechanism allows the system to restore corrupted variables by retrieving the intact backup copy, thereby maintaining variable integrity while keeping the primary variables accessible for fast boot.

Inventive Principle:
Principle #26Copying

2Ease of operation

If the variable area in firmware ROM is made freely writable by OS and applications to allow customization and debugging, then system flexibility and ease of operation are improved, but the risk of erroneous rewriting and boot failure increases

Engineering Contradiction:
Improvevariable customizationVSAvoidboot reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent creates a backup of the variable set before allowing any write operations to occur. This preliminary backup ensures that even if subsequent write operations cause corruption, the original valid state can be restored, thus maintaining boot reliability while allowing flexible variable modification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a detection mechanism that monitors whether the current variable set matches the backup copy. When a mismatch is detected indicating corruption, the system automatically triggers restoration of the backup variables, providing feedback-based protection against boot failures caused by erroneous writes.

Inventive Principle:
Principle #23Feedback

3Reliability

If authentication service is implemented to protect configuration variables from overwriting, then variable security is improved, but the complexity of the system increases

Engineering Contradiction:
Improvevariable protectionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of implementing complex authentication mechanisms, the patent uses a simpler approach by creating and storing a backup copy of the variable set. This copying mechanism provides protection against corruption without requiring complex authentication services, thus improving variable reliability while minimizing system complexity.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent implements a recovery mechanism that automatically discards corrupted variables and recovers from the backup copy when corruption is detected. This approach provides robust protection against unauthorized or erroneous modifications without requiring complex authentication, thereby improving variable protection while keeping the system relatively simple.

Inventive Principle:
Principle #34Discarding and recovering

4Reliability

If a backup copy of the variable set is created and stored in a separate area, then the ability to restore corrupted variables is improved, but the storage space requirement increases

Engineering Contradiction:
Improverestoration capabilityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the firmware ROM storage into distinct areas: one for the active variable set and another for the backup copy. This segmentation allows the system to maintain both the primary variables for fast access and the backup for restoration purposes, optimizing the use of available storage space while ensuring restoration capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a backup copy of the variable set and stores it in a separate area of the firmware ROM or non-volatile memory. This copying approach ensures that a complete backup is available for restoration while utilizing the existing storage infrastructure efficiently, balancing restoration capability with storage space constraints.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9703635B2Method, computer program, and computer for restoring set of variables
Publication Date: 2017.07.11 LENOVO SWITZERLAND INTERNATIONAL GMBH
  • US9703635B2 patent drawing
  • US9703635B2 patent drawing
  • US9703635B2 patent drawing

AI summary

A set of variables referred to by unified extensible firmware interface (UEFI) firmware is restored. The UEFI firmware stored in a read-only memory (ROM) is firstly executed after power-up. The UEFI firmware writes a variable set related to boot, into a variable area. As an operating system (OS) also writes a set of variables into the variable area, the boot-related variable set may be altered. The variable set is saved into a prescribed area, such as a universal serial bus (USB) memory key, when the computer boots normally. If alteration of the variable set in the reference area is detected during a boot of the computer, the variable set in the reference area is replaced with the saved variable set. The variable set alteration may be detected using a detection flag which is set immediately after a boot is started and reset immediately before an OS is loaded.