Non-Volatile Memory Provisioning for Firmware Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Malware attacks on system code used in computing systems, such as BIOS code, can compromise the integrity of the system, leading to unauthorized access and operations, and existing protection mechanisms may become compromised, posing a risk to system firmware and embedded controller firmware.
Innovation Solution
A provisioning procedure is implemented where a secondary non-volatile memory is initialized and programmed only upon first power-up, copying system firmware and controller code from a primary non-volatile memory, and storing a redundant copy to protect against malware attacks, with the secondary memory being isolated from the processor and other components to prevent unauthorized access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a protection mechanism is provided to protect system code, then system security is improved, but the protection mechanism may become compromised under certain conditions, subjecting system code to malware attacks
Solution Approach 1:
The patent creates a boot block copy stored in non-volatile memory that serves as a trusted reference for verifying the integrity of the system code. This copy is established during manufacturing and remains immutable, providing a baseline against which any modifications or malware injections can be detected through cryptographic verification.
Solution Approach 2:
The patent introduces a boot block verification mechanism that acts as an intermediary between the trusted boot block copy and the system code execution. This verification layer checks the integrity of system code before allowing execution, preventing compromised code from running even if protection mechanisms are bypassed.
2Reliability
If system code is made immutable to prevent compromise, then system integrity is improved, but the system cannot be updated or repaired when code becomes compromised
Solution Approach 1:
The patent divides the system code into two distinct segments: an immutable boot block stored in non-volatile memory that cannot be modified, and a mutable system code portion that can be updated. The immutable boot block serves as a permanent anchor of trust, while the mutable portion can be refreshed or replaced when compromised, allowing both integrity and adaptability.
3Reliability
If a redundant copy of system firmware is stored in secondary non-volatile memory, then protection against malware attacks is improved, but device complexity and manufacturing overhead are increased
Solution Approach 1:
The patent stores a boot block copy in secondary non-volatile memory that is physically isolated from the main processor and system code. This isolated copy serves as a secure reference that cannot be tampered with during system operation, providing verification capability without requiring complex real-time monitoring or multiple redundant systems.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In response to starting a system including a first non-volatile memory containing system boot code, and a second non-volatile memory, provisioning of the second non-volatile memory is performed. The provisioning includes checking that the second non-volatile memory is uninitialized, and in response to determining that the second non-volatile memory is uninitialized, the system boot code is copied from the first non-volatile memory to the second non-volatile memory.