Bootloader Security Stack for Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microcontroller (MCU) architectures lack robust security measures to verify the authenticity of firmware and data, making them vulnerable to malicious code and hostile attacks, especially as they become part of interconnected systems.

Innovation Solution

A security stack that includes a bootloader with a verification function to compare security data in a configuration area with a signature accompanying data in programmable memory, ensuring only authorized firmware and data are executed, and allowing for secure communication interfaces to verify the origin of received and sent data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a bootloader with verification function is implemented to compare security data with signatures, then security against malicious code is improved, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary security verification by comparing signatures of firmware and data before execution. The bootloader performs verification functions on configurability data and executable code during the boot process, preventing malicious code execution before it can affect the system. This preliminary action ensures security is established upfront rather than requiring complex runtime security mechanisms.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If security verification is performed on all firmware and data, then vulnerability reduction is improved, but processing time increases

Engineering Contradiction:
Improvevulnerability reductionVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The verification of signatures is performed during the bootloader execution phase, which occurs during system initialization. By completing security verification beforehand, the patent ensures that only verified firmware and data are loaded into memory for execution, eliminating the need for repeated verification during runtime and minimizing impact on operational processing time.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If cryptographic verification is implemented in the bootloader, then data authenticity is improved, but manufacturing complexity increases

Engineering Contradiction:
Improvedata authenticityVSAvoidmanufacturing complexity
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent implements a configuration phase during manufacturing where cryptographic security data is generated and stored in protected memory regions. The bootloader is pre-configured with verification capabilities that use this security data to authenticate firmware and data. This preliminary configuration establishes authentic data verification mechanisms without requiring complex cryptographic operations during normal manufacturing processes.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10754956B2Security stack for embedded systems
Publication Date: 2020.08.25 ANDIUM INC
  • US10754956B2 patent drawing
  • US10754956B2 patent drawing
  • US10754956B2 patent drawing

AI summary

A method for executing a security stack can include executing a bootloader included in a memory resource of an electronic device in response to the bootloader receiving a prompt. The method can include performing a verification function, with the bootloader, on data stored in a programmable memory included in the memory resource of the electronic device, wherein the verification function includes comparing security data stored in a configuration area of the memory resource with a signature that accompanies the data stored in the programmable memory. The method can include determining whether the security data stored in the configuration area matches the signature that accompanies the data stored in the programmable memory.