Bootloader Key Table for Secure Public Key Replacement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing bootloader systems in vehicle electronic control units (ECUs) require rewriting the entire bootloader to replace a compromised public key, leading to potential operational interruptions and inability to program the ECU.

Innovation Solution

A key table is defined within the bootloader memory segment with vacant memory slots to store replacement public keys, allowing for secure and incremental key replacement without erasing the existing bootloader, using a validity flag to manage the last valid key.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire bootloader is rewritten to replace a compromised public key, then security is maintained, but operational interruptions and inability to program the ECU occur

Engineering Contradiction:
ImprovesecurityVSAvoidprogramming capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The bootloader memory segment is divided into two distinct parts: the bootloader code that remains intact and the key table that can be independently updated. This segmentation allows the public key to be replaced without affecting the bootloader's programming capability, resolving the contradiction between maintaining security and preserving productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The key table is pre-configured with multiple memory slots and validity flags during bootloader initialization. This preliminary setup enables future key replacements to be performed without interrupting operations, as the structure is already in place to accommodate new keys without requiring complete bootloader rewrites.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the public key is stored in the bootloader memory flash segment, then the bootloader can authenticate digital signatures, but the public key cannot be separately programmed as a calibration

Engineering Contradiction:
Improveauthentication capabilityVSAvoidkey replaceability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory flash segment is segmented into the bootloader code portion and the key table portion. This allows the public key to be stored within the same flash segment for authentication purposes while being separably programmable through the key table, enabling both authentication capability and key replaceability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The key table creates a copyable storage structure within the flash segment that can be independently updated. Instead of modifying the entire bootloader, the key table provides a separate, replaceable copy of the public key storage mechanism, enabling key replacement without affecting the authentication functionality.

Inventive Principle:
Principle #26Copying

3Device complexity

If the bootloader uses a single flash segment for storage, then the structure is simple, but the public key cannot be made separately programmable

Engineering Contradiction:
Improvememory structureVSAvoidseparate programming capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The single flash segment is logically segmented into the bootloader code and the key table. This segmentation adds separate programming capability while maintaining the physical simplicity of using a single flash segment, as the key table is simply another region within the same physical memory space.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9021246B2Method to replace bootloader public key
Publication Date: 2015.04.28 GM GLOBAL TECHNOLOGY OPERATIONS LLC
  • US9021246B2 patent drawing
  • US9021246B2 patent drawing
  • US9021246B2 patent drawing

AI summary

A system and method for writing a new or replacement public key to a bootloader stored in a memory segment in the memory of a vehicle ECU without having to rewrite the entire bootloader. The method includes defining a key table in the bootloader memory segment includes a number of vacant memory slots that are available to store replacement public keys if they are needed. The key table is a separate section of the bootloader memory segment so that the key table memory slots are not used by the bootloader code.