Dual Boot Architecture for Flash Memory Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current boot protection systems are vulnerable to security breaches during subsequent phases of system boot, particularly when executing from flash memory, as they only perform hardware-based checks during primary boot code verification, leaving later phases unprotected.

Innovation Solution

Implementing a dual boot architecture where the primary boot code copies and executes a secondary boot code, which is verified after copying, and then blocks access to both primary and secondary boot codes, using DDR memory for enhanced security, ensuring that the secondary boot code and application code are executed in a secure environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a software chain of trust is used to verify boot codes, then boot protection is extended to subsequent phases, but the system becomes vulnerable to security breaches when executing from flash memory due to lack of hardware-based checks

Engineering Contradiction:
Improveboot protectionVSAvoidsecurity breaches
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The boot process is divided into distinct phases (primary boot code execution, secondary boot code loading, application code execution), with hardware-based verification applied to each phase. The system segments the boot process to enable targeted security measures at each stage, preventing vulnerabilities from propagating through the entire system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The primary boot code performs preliminary verification of the secondary boot code before executing it. This preliminary action includes copying the secondary boot code to a secure location and verifying its integrity before transfer to the execution environment, ensuring that only authenticated code is executed.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the primary boot loader is used to load application boot code, then the system can perform software modifications and upgrades, but the system integrity may be compromised during these operations

Engineering Contradiction:
Improvesoftware modificationsVSAvoidsystem integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

A dedicated secondary boot code serves as an intermediary between the primary boot loader and the application code. This intermediary component is specifically designed to handle application loading and execution, isolating the critical system integrity verification functions from the application-specific operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The primary boot code performs preliminary verification of the secondary boot code before executing it. This preliminary action includes copying the secondary boot code to a secure location and verifying its integrity before transfer to the execution environment, ensuring that only authenticated code is executed.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If hardware-based verification is performed only during primary boot code verification, then the verification process is simple and fast, but the window of vulnerability increases during subsequent boot phases

Engineering Contradiction:
Improveboot speedVSAvoidwindow of vulnerability
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The boot process is divided into distinct phases (primary boot code execution, secondary boot code loading, application code execution), with hardware-based verification applied to each phase. The system segments the boot process to enable targeted security measures at each stage, preventing vulnerabilities from propagating through the entire system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The primary boot code performs preliminary verification of the secondary boot code before executing it. This preliminary action includes copying the secondary boot code to a secure location and verifying its integrity before transfer to the execution environment, ensuring that only authenticated code is executed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7987351B2Method and system for enhanced boot protection
Publication Date: 2011.07.26 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7987351B2 patent drawing
  • US7987351B2 patent drawing
  • US7987351B2 patent drawing

AI summary

A secondary boot code may be copied to memory during execution of a primary boot code, and executing the copied secondary boot code after completion of execution of said primary boot code. Access to the primary and said secondary boot code may be restricted during execution of the primary boot code and the copied secondary boot code. The copied secondary boot code may be verified after the secondary boot code is copied to the memory. Access to the primary boot code may be blocked or barred during execution of the copied secondary boot code. Access to the secondary boot code may also be blocked or barred after completion of execution of the copied secondary boot code. The memory may comprise double-data-rate synchronous dynamic random access memory (DDR). The primary and/or the secondary boot code may reside or be stored in FLASH memory.