Preboot Data Verification for BIOS Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing BIOS systems lack the capability to verify the content of operating systems or flight programs before execution, leading to potential system failures and unnecessary maintenance actions due to undetected corruption.

Innovation Solution

Incorporating a method to calculate and compare verification numbers, such as checksums, for data stored in primary and secondary memory areas to ensure data integrity, allowing execution from a valid source and potentially copying a valid image to overwrite a corrupted one.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the BIOS executes the operating system or flight program without verification, then the system can start up quickly and simply, but the system reliability deteriorates because corrupted data cannot be detected

Engineering Contradiction:
Improvesystem reliabilityVSAvoidBIOS complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by calculating and storing verification numbers (checksums) for the operating system and flight program data before execution. The BIOS calculates a verification number for the primary data storage area and compares it with a stored verification number before executing the program. This preliminary verification step ensures that corrupted data is detected before it can cause system failures, thereby improving reliability without significantly increasing operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary verification mechanism by calculating verification numbers and comparing them against stored values. This intermediary step acts as a mediator between data storage and program execution, allowing the system to detect corruption without requiring complex error handling during execution. The verification number comparison serves as an intermediate check that protects the system from executing corrupted code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the BIOS includes verification instructions for the operating system or flight program, then data integrity is improved, but the processing time and system complexity worsen

Engineering Contradiction:
Improvedata integrityVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The verification numbers are calculated and stored in advance during system setup or data loading, not during boot-up. This preliminary calculation eliminates the need for time-consuming verification computations during the boot process. The BIOS only needs to perform a simple comparison of pre-calculated verification numbers, which minimizes the time added to the boot process while ensuring data integrity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces complex verification mechanisms with a simpler mathematical substitution approach. Instead of performing complex integrity checks or multiple validation passes, the system uses verification numbers (checksums) that can be quickly calculated and compared. This substitution of complex verification mechanics with simple numerical comparison significantly reduces the time penalty associated with verification while maintaining data integrity.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of repair

If the system has multiple data storage areas with redundant data, then the ability to recover from corruption is improved, but the memory requirements and device complexity worsen

Engineering Contradiction:
Improveself-repair capabilityVSAvoidmemory capacity
Core Design Contradiction:
Ease of repairVSQuantity of substance

Solution Approach 1:

The patent implements copying by storing redundant copies of critical data (operating system and flight program) in multiple data storage areas. The system maintains a primary copy and backup copies in secondary storage areas. When corruption is detected in the primary area, the system can copy the valid data from the secondary storage area to replace the corrupted data, enabling self-repair without requiring external intervention or significantly increasing total memory capacity.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent applies parameter changes by dynamically switching between primary and secondary data storage areas based on verification results. The system changes the operational parameter of which storage area is active, allowing it to recover from corruption by switching to a backup area. This parameter change approach enables self-repair capability while efficiently utilizing existing memory capacity without requiring permanent allocation of large redundant storage spaces.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8826080B2Methods and systems for preboot data verification
Publication Date: 2014.09.02 THE BOEING CO
  • US8826080B2 patent drawing
  • US8826080B2 patent drawing
  • US8826080B2 patent drawing

AI summary

A method for validating the data defining an executable program prior to loading of the data for program execution is described. The method includes calculating a verification number for the data within a primary data storage area, the data defining an executable program, comparing the calculated verification number with a stored number, executing the program within the primary data storage area if the verification number matches the stored number, calculating a verification number for the data within a secondary data storage area, the data within the secondary data storage area defining the same executable program as that within the primary data storage area, if the verification number and the stored number do not match, comparing the calculated verification number for the data within the secondary data storage area with the stored number, causing the program to be executed if the verification number for the data within the secondary data storage area and the stored number match, and indicating a failure if the verification number for the data within the secondary data storage area and stored number do not match.