Secure Boot Code Update via Hardware Memory Locking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face vulnerabilities in their system firmware, particularly BIOS code, which can be compromised by malware during updates, as existing methods lack secure mechanisms to lock and unlock memory regions effectively, making them susceptible to tampering.

Innovation Solution

A multi-phase update procedure is implemented using a hardware locking mechanism to securely update system firmware by locking one memory region while unlocking another, ensuring that only the intended region is updated, and employing digital signatures for authenticity, along with system management mode locking for enhanced security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the memory region storing system firmware is unlocked to allow updates, then the firmware can be updated to address bugs or add features, but the memory region becomes vulnerable to tampering by malware

Engineering Contradiction:
Improvefirmware update capabilityVSAvoidvulnerability to tampering
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The memory space is divided into multiple regions: a first memory region for storing the current system firmware, a second memory region for storing updated firmware, and a third memory region for storing boot code. This segmentation allows selective locking and unlocking of specific regions during updates, enabling firmware updates while maintaining security by keeping the boot code region locked.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The updated system firmware is prepared and stored in the second memory region before the actual update execution. The boot code in the third region is executed first to initiate the update process, ensuring that the update is performed by trusted code while the target region is properly prepared and locked appropriately.

Inventive Principle:
Principle #10Preliminary action

2Object-affected harmful factors

If hardware locking mechanism is used to protect memory regions during firmware updates, then security against tampering is improved, but the complexity of the update procedure increases

Engineering Contradiction:
Improveprotection against tamperingVSAvoidupdate procedure complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The system firmware itself contains the update execution code that automatically manages the locking and unlocking of memory regions during the update process. The firmware performs self-update by executing the multi-phase procedure, eliminating the need for external complex control mechanisms while maintaining security.

Inventive Principle:
Principle #25Self-service

3Reliability

If digital signatures are verified for firmware authenticity, then the security and integrity of firmware updates are ensured, but the update process time increases

Engineering Contradiction:
Improvefirmware authenticity verificationVSAvoidupdate process time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The digital signature verification is performed in advance during the multi-phase update procedure, before the actual firmware execution. By verifying the signature of the updated firmware in the second memory region before switching to it, the system ensures authenticity while minimizing the time impact on the main update process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3028147B1Updating boot code
Publication Date: 2021.04.14 HEWLETT PACKARD DEVELOPMENT COMPANY LP
  • EP3028147B1 patent drawingFigure 1
  • EP3028147B1 patent drawingFigure 2
  • EP3028147B1 patent drawingFigure 3

AI summary

It is determined whether an updated first boot phase code is present. The updated first boot phase code is validated. In response to the validating, a current version of the first boot phase code is updated using the updated first boot phase code.