Microprocessor Boot Code Cryptographic Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems cannot establish a chain of trust that encompasses every instruction executed, as software that runs early in the boot process, such as BIOS, is easily subverted, allowing unauthorized access to sensitive information and system resources.

Innovation Solution

The solution involves altering the reset sequence of a programmable microprocessor to perform cryptographic verification of memory blocks before executing any instructions, using a one-way cryptographically secure hash function to verify data integrity and authenticity, thereby extending the trust boundary to include all user code executed in the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cryptographic verification is performed on all instructions, then trust chain strength is improved, but system complexity increases

Engineering Contradiction:
Improvetrust chain strengthVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing cryptographic verification of boot code and system instructions before execution occurs. The verification process is initiated automatically during system boot-up, and verified instructions are stored in a trusted state ready for execution, eliminating the need for continuous verification during runtime and reducing operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the verification process into distinct phases: boot code verification, system instruction verification, and execution authorization. By dividing the verification task into separate stages rather than attempting to verify every instruction simultaneously, the system achieves comprehensive trust chain coverage while managing computational resources and system complexity.

Inventive Principle:
Principle #1Segmentation

2Speed

If BIOS instructions are trusted implicitly, then boot process speed is improved, but security vulnerability increases

Engineering Contradiction:
Improveboot process speedVSAvoidsecurity vulnerability
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary action by performing cryptographic verification of BIOS and boot code instructions before the system transitions to normal operation. This verification occurs during the boot process itself, ensuring that only authenticated instructions are executed while maintaining efficient boot-up timing through automated verification rather than manual intervention.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a cryptographic verification mechanism as an intermediary between the boot code and the execution process. This intermediary layer validates the authenticity and integrity of instructions before allowing them to execute, thereby preventing security vulnerabilities while maintaining the speed of the boot process through automated verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If verification is performed before instruction execution, then code security is improved, but execution time increases

Engineering Contradiction:
Improvecode securityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing all necessary cryptographic verification of boot code and system instructions before the execution phase begins. By completing verification during the boot process and storing verified instructions in a trusted state, the system eliminates verification time during instruction execution, thereby maintaining code security without increasing runtime execution time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the verification and execution processes into distinct temporal phases: verification occurs during boot-up before execution begins. This segmentation allows verification to be performed once during system initialization rather than repeatedly during each instruction execution, significantly reducing the time impact on overall system operation while maintaining comprehensive code security.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8250374B2Method and apparatus for verifying authenticity of initial boot code
Publication Date: 2012.08.21 INTEL CORP
  • US8250374B2 patent drawing
  • US8250374B2 patent drawing
  • US8250374B2 patent drawing

AI summary

Described herein is an alteration of the normal reset sequence of a programmable microprocessor to perform a cryptographic verification of a block of memory before executing any instructions from the memory. A programmable processor initializes its state, then computes and verifies a hash of a boot code region of memory before executing any user instructions in the memory. Systems using similar processors, and software to control such a processor's operation, are also described and claimed.