Secure Aircraft Engine Software Loading via Manifest Authentication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing engine control systems face challenges in quickly and securely initializing software during aircraft operations, as the initialization protocol can be time-consuming, potentially impacting engine operation if not completed within a certain period, especially when the aircraft is still flying.

Innovation Solution

The method involves authenticating a manifest using asymmetric authentication, which is faster due to its smaller size, and then using secure hashes from the manifest to quickly authenticate individual software components, establishing a chain of trust and ensuring the software has not been tampered with, allowing for rapid and secure loading and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cryptographic authentication methods are used to authenticate software programs before loading, then security is improved, but initialization time increases

Engineering Contradiction:
Improvesoftware authentication securityVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the authentication process into two distinct phases: (1) asymmetric authentication of a manifest containing hashes of software components, and (2) symmetric authentication of individual software components using those hashes. This segmentation allows the computationally intensive asymmetric authentication to be performed only once on a small manifest, rather than on each large software component individually, thereby resolving the contradiction between security and initialization time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The manifest containing hashes of all software components is authenticated in advance using asymmetric authentication methods. This preliminary action establishes a chain of trust that enables faster symmetric authentication of individual components during the actual initialization process, reducing the time penalty associated with secure authentication.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If asymmetric authentication is performed on each software component, then security is improved, but authentication speed decreases

Engineering Contradiction:
Improvesoftware component authenticationVSAvoidauthentication speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent extracts the authentication metadata (hashes) from the individual software components and consolidates them into a separate manifest file. By performing asymmetric authentication on this small manifest rather than on each large software component, the system achieves both security and speed - the manifest authentication provides the security guarantee while enabling rapid symmetric verification of components.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The manifest acts as an intermediary that contains pre-computed hashes of software components. Instead of performing asymmetric authentication directly on each software component, the system uses the manifest as a mediator that provides authentication references, enabling faster symmetric authentication of individual components while maintaining security through the chain of trust established by manifest authentication.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4345667A1Devices, systems, and methods for securely loading embedded software using a manifest
Publication Date: 2024.04.03 GENERAL ELECTRIC CO
  • EP4345667A1 patent drawingFigure 1
  • EP4345667A1 patent drawingFigure 2
  • EP4345667A1 patent drawingFigure 3

AI summary

A device (116) for initializing an engine control system of an aircraft includes a processor (118) and memory modules (120-1) that cause the processor to authenticate (410) a boot loader comprising one or more stages, authenticate (605) a manifest containing hashes of one or more software components, load (705) a first set of software components from among the one or more software components onto a non-transitory computer-readable medium, calculate (708) a hash of each software component of the first set of software components, authenticate (710) the first set of software components by comparing the calculated hash of each software component of the first set of software components to the hash of a corresponding software component in the manifest, and execute (735) the first set of software components in response to authentication of the one or more software components.