Boot Code Integrity via Hardware Write Locking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Electronic devices are vulnerable to attacks through malicious code and physical modifications, which can compromise their security and integrity, particularly affecting boot code and operating systems.

Innovation Solution

Implementing trusted boot code, hardware write locking of non-volatile memory regions, and redundant code versions to ensure self-recovery and protect against unauthorized modifications, using a memory controller to manage access and validate code integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware write locking is implemented to protect code regions, then security against unauthorized modifications is improved, but device complexity increases due to additional memory management mechanisms

Engineering Contradiction:
ImprovesecurityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The non-volatile memory is divided into multiple regions with different access permissions: a first region for boot code with write-lock protection, a second region for operating system code, and a third region for application code. This segmentation allows selective protection of critical code while maintaining manageability of the overall system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The boot code is executed first before the operating system and applications, and it performs the write-lock protection setup for critical memory regions. This preliminary action ensures that security measures are in place before higher-level code can potentially compromise them.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If redundant code versions are stored in memory, then self-recovery capability from corruption is improved, but memory usage increases

Engineering Contradiction:
Improveself-recovery capabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Redundant copies of critical code (such as boot code) are stored in protected memory regions. If the primary code becomes corrupted, the system can detect the corruption and switch to executing from the redundant copy, enabling self-recovery without external intervention.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system changes the operational state by switching between different code versions stored in memory. When corruption is detected, the execution source changes from the primary code region to the redundant code region, maintaining system functionality despite the corruption event.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If boot code validates operating system code before execution, then security against malicious code is improved, but boot time increases

Engineering Contradiction:
ImprovesecurityVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The boot code performs validation of the operating system code during the boot process before transferring execution control. This preliminary validation ensures that only authenticated, uncorrupted code is executed, preventing malicious code from compromising the system.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces physical security measures (such as secure hardware enclaves or tamper-proof sealing) with cryptographic validation mechanisms. The boot code uses digital signatures and hash functions to verify code integrity, substituting mechanical security with software-based cryptographic verification.

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

4Reliability

If memory regions are protected from writing, then code integrity is improved, but ease of code updates deteriorates

Engineering Contradiction:
Improvecode integrityVSAvoidease of code updates
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The memory system is segmented into protected regions for critical code (boot code, OS) and updateable regions for applications and configuration data. This segmentation allows the critical portions to maintain integrity through write-lock protection while permitting updates to non-critical portions through controlled mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The write-protection status of memory regions is made dynamic rather than static. The boot code can selectively enable or disable write protection for different regions based on their current state and update requirements, allowing flexible management of code integrity and updatability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10885196B2Executing protected code
Publication Date: 2021.01.05 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10885196B2 patent drawing
  • US10885196B2 patent drawing
  • US10885196B2 patent drawing

AI summary

In some examples, in response to a reset of an electronic device, a method disables hardware write locking of a first region in a non-volatile memory, and executes a first boot code portion from the first region to begin a boot procedure. The executed first boot code portion checks whether an update code for the first boot code portion exists. In response to determining that no update code for the first boot code portion exists, the executed first boot code portion causes hardware write locking of the first region. After causing the hardware write locking of the first region, the boot procedure continues, the boot procedure comprising verifying an integrity of a second boot code portion.