IP Library › Granted Patent US 11,562,073
Granted Patent B2
US 11,562,073 · App. 16/203,411 · Granted Jan 24, 2023

Systems and methods of software load verification

Inventor: Jake Daniel Hertenstein (University City, MO)
Assignee: THE BOEING COMPANY
G06F21/57G06F8/656G06F21/51H04L9/3247
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,562,073
App. No.
16/203,411
Granted
Jan 24, 2023
Kind
B2
Abstract

A system configured to perform software load verification. The system includes a memory, a network interface, and a processor. The memory is configured to store first data indicating expected load events. The network interface is configured to receive load verification data and a cryptographic signature from a software update target device. The load verification data is descriptive of particular load events related to loading software at the software update target device. The processor is configured to authenticate that the load verification data is received from the software update target device based on the cryptographic signature. The processor is also configured to, responsive to authenticating that the load verification data is received from the software update target device, performing a comparison of the particular load events and the expected load events. The processor is further configured to perform a response action based on results of the comparison.

Claims (53)

1. A system to perform software load verification, the system comprising:

a memory configured to store:

first data indicating expected load events that are expected to occur during loading software;

first configuration data indicating an expected configuration of a software update target device;

a network interface configured to receive load verification data and a cryptographic signature from the software update target device, wherein the load verification data is descriptive of particular load events occurring during loading software at the software update target device, wherein the first configuration data is distinct from the load verification data, wherein the load verification data includes second configuration data indicating configuration of the software update target device prior to loading of the software, and wherein the second configuration data is distinct from the first data; and

a processor configured to:

authenticate that the load verification data is received from the software update target device based on the cryptographic signature;

responsive to authenticating that the load verification data is received from the software update target device, perform a comparison of the particular load events and the expected load events;

perform a second comparison of the first configuration data and the second configuration data;

perform a response action based on results of the comparison and the second comparison; and

responsive to determining that the particular load events match the expected load events, update the first configuration data based on the load verification data.

2. The system of claim 1 , wherein the load verification data includes times data identifying a time difference corresponding to a first load event of the particular load events and a second load event of the particular load events.

3. The system of claim 2 , wherein the first data identifies an expected time difference corresponding to a first expected load event of the expected load events and a second expected load event of the expected load events, wherein the first load event corresponds to the first expected load event, wherein the second load event corresponds to the second expected load event, and wherein performing the comparison of the particular load events and the expected load events comprises comparing the time difference and the expected time difference.

4. The system of claim 1 , wherein, responsive to determining that the particular load events match the expected load events, the response action includes sending an approval message to the software update target device.

5. The system of claim 1 , wherein responsive to determining that the particular load events do not match the expected load events, the response action includes sending a disable message to the software update target device to prevent execution of the software at the software update target device.

6. The system of claim 1 , wherein the particular load events include the software update target device performing a data write operation to a particular type of device during the loading of the software, the software update target device initiating a boot process during the loading of the software, the software update target device generating a signature during the loading of the software, the software update target device detecting an error during the loading of the software, or a combination thereof.

7. The system of claim 1 , wherein the software update target device is integrated into an aircraft.

8. An aircraft comprising:

a network interface configured to receive, via a network from an off-board device, a software package that includes software; and

a processor configured to:

authenticate, based on a digital signature, that the software is received from the off-board device; and

responsive to authenticating the software:

perform particular load events to load the software at a software update target device;

cause the network interface to send load verification data and a cryptographic signature to the off-board device, the load verification data descriptive of the particular load events, wherein the load verification data includes first configuration data indicating configuration of the software update target device prior to loading of the software;

receive, via the network interface, a response message from the off-board device, the response message based on analysis of the load verification data and the cryptographic signature at the off-board device, wherein the off-board device performs a first comparison of the particular load events and expected load events that are expected to occur during loading software, wherein the off-board device performs a second comparison of the first configuration data to second configuration data indicating an expected configuration of the software update target device, wherein the first configuration data is distinct from the load verification data, and wherein the off-board device updates the first configuration data based on the load verification data; and

selectively execute the software based on the response message.

9. The aircraft of claim 8 , further comprising a trusted computing device configured to:

monitor operations performed by the processor during loading of the software; and

generate a list of the particular load events based on the monitored operations, wherein the load verification data is based on the list of the particular load events.

10. The aircraft of claim 8 , wherein the load verification data identifies an ordered list of the particular load events.

11. The aircraft of claim 8 , wherein the processor is configured to prevent execution of the software based on determining that the response message indicates that the particular load events do not match expected load events.

12. The aircraft of claim 8 , wherein the processor is further configured to, prior to loading the software, generate the first configuration data.

13. A method of performing software load verification, the method comprising:

accessing, at an off-board device, first data indicating expected load events that are expected to occur during loading software;

accessing, at the off-board device, first configuration data indicating an expected configuration of the software update target device;

receiving load verification data and a cryptographic signature at the off-board device from the software update target device, the load verification data is descriptive of particular load events occurring during loading the software at the software update target device, wherein the first configuration data is distinct from the load verification data, wherein the load verification data includes second configuration data indicating configuration of the software update target device prior to loading of the software, and wherein the second configuration data is distinct from the first data;

authenticating, at the off-board device, that the load verification data is received from the software update target device based on the cryptographic signature;

responsive to authenticating that the load verification data is received from the software update target device, performing a comparison of the particular load events and the expected load events;

performing a second comparison of the first configuration data and the second configuration data;

performing, at the off-board device, a response action based on results of the comparison and the second comparison; and

responsive to determining that the particular load events match the expected load events, updating the first configuration data based on the load verification data.

14. The method of claim 13 , wherein, responsive to determining that the particular load events match the expected load events, the response action includes sending an approval message to the software update target device.

15. The method of claim 13 , wherein responsive to determining that the particular load events do not match the expected load events, the response action includes sending a disable message to the software update target device to prevent execution of the software at the software update target device.

16. The method of claim 13 , wherein the particular load events include the software update target device performing a data write operation to a particular type of device during the loading of the software, the software update target device initiating a boot process during the loading of the software, the software update target device generating a signature during the loading of the software, the software update target device detecting an error during the loading of the software, or a combination thereof.

17. The method of claim 13 , wherein the software update target device is integrated into an aircraft.

18. The method of claim 13 , further comprising generating the load verification data at a trusted computing device of the software update target device.

19. The method of claim 13 , further comprising:

receiving a software package at the software update target device; and

authenticating the software package based on a digital signature,

wherein the particular load events are performed at the software update target device responsive to the authenticating the software package.

20. The method of claim 19 , further comprising:

receiving a response message at the software update target device from the off-board device, wherein performing the response action at the off-board device includes sending the response message from the off-board device to the software update target device; and

selectively executing the software at the software update target device based on the response message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2018
From: HERTENSTEIN, JAKE DANIEL
To: THE BOEING COMPANY
Reel/Frame 047612/0936 →
Continuity (1)
Related Publication 20200167472A1 · May 28, 2020