Hierarchical Bootstrap Firmware Recovery via Non-Resettable Indicators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for secure firmware management in computer systems are inadequate in ensuring the reliability and security of boot code, particularly due to increased vulnerability with growing boot program sizes and potential for instability from power failures or glitches.

Innovation Solution

A computer system architecture that includes non-resettable memory elements and a processor to manage multiple versions of bootstrap programs, utilizing self-test programs and authentication mechanisms to ensure secure bootstrapping and recovery, with hierarchical authentication and validation processes to maintain firmware integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the bootstrap program size increases to provide more functionality, then the system capabilities are improved, but the vulnerability to attacks and instability increases

Engineering Contradiction:
Improvesystem capabilitiesVSAvoidfirmware security
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The bootstrap program is divided into multiple versions stored in different memory regions. A first version is stored in Flash memory for updates, while a second known-good version is stored in a separate memory device. This segmentation allows the system to maintain enhanced functionality while preserving a reliable fallback option, resolving the contradiction between system capabilities and firmware security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary authentication and self-testing of the first bootstrap program version before allowing it to execute. The processor retrieves and validates the first version against the second known-good version, and checks non-resettable indicators beforehand. This preliminary verification ensures that only authenticated and stable firmware is executed, preventing attacks while maintaining system capabilities.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If the system uses a single version of bootstrap program to simplify management, then the device complexity is reduced, but the ability to recover from failures is lost

Engineering Contradiction:
Improvefirmware managementVSAvoidrecovery capability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

Non-resettable indicators serve as intermediaries between the first and second bootstrap program versions. These indicators store authentication results and version comparison information, enabling the processor to automatically determine which version to execute without complex management logic. This intermediary mechanism simplifies firmware management while maintaining reliable recovery capability through the hierarchical authentication process.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the system performs comprehensive self-testing and authentication, then the firmware reliability is improved, but the boot time increases

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

Solution Approach 1:

Authentication and self-testing are performed as preliminary actions during the boot process before the main system operations begin. The processor retrieves the first version, compares it with the second known-good version, and checks non-resettable indicators in advance. By completing these verification steps beforehand, the system ensures firmware integrity while minimizing the time impact on overall system operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The bootstrap program includes embedded self-test programs that automatically test themselves without requiring external intervention. The first version contains a self-test program that tests the bootstrap program, and non-resettable indicators store self-test results. This self-service mechanism ensures comprehensive firmware verification while reducing the time burden on the boot process.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11385902B2Secure firmware management with hierarchical boot sequence using last known good firmware
Publication Date: 2022.07.12 NUVOTON
  • US11385902B2 patent drawing
  • US11385902B2 patent drawing
  • US11385902B2 patent drawing

AI summary

A computer system includes one or more memory devices, non-resettable memory elements and a processor. The first memory device is configured to store in the one or more memory devices (i) a first version of a multi-stage bootstrap program for bootstrapping the computer system, the bootstrap program including a self-test program that tests the bootstrap program, and (ii) a second version of the bootstrap program known to be trustworthy. The non-resettable memory elements are configured to store non-resettable indicators including at least a self-test-request indicator and a self-test-passed indicator. The processor is configured to retrieve the first version of the bootstrap program, and, if the first version is at least as recent as the trustworthy second version, to bootstrap the computer system securely using the first version and the non-resettable indicators.