IP Library Granted Patent US 12682081
Granted Patent B2
US 12682081 · App. 18/409,878 · Granted Jul 14, 2026

Key deprecation without certificate revocation

Inventor: Michael Pyle (Hermitage, TN)
Assignee: Schneider Electric USA, Inc.
G06F21/602G06F21/575G06F21/64
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 12682081
App. No.
18/409,878
Granted
Jul 14, 2026
Kind
B2
Abstract

Embodiments described herein provide techniques for securely validating firmware on a device using keys and providing a mechanism for deprecating such keys when a traditional certificate authority is unavailable or otherwise cannot be used. When a first firmware package is installed on the device, a first public key in a first secure memory key location is associated with an active status. Responsive to installation of a second firmware package on the device, a second public key in a second secure memory key location on the device is associated with an active status. During a boot-up operation on the device, embodiments determine to use the second public key to validate the second firmware package by starting at a predefined secure memory key location and scanning backwards until a status of active is identified. The second firmware package on the device is then validated using the second public key.

Claims (50)

1 . A system, comprising:

one or more computer processors;

a secure memory; and

a memory comprising computer program code that, when executed by the one or more computer processors, performs a method comprising:

when a first firmware package is installed on a first device, associating a first public key stored in a first secure memory key location in the secure memory with an active status, the first secure memory key location comprising one or more first memory addresses, the active status indicates that the first public key is to be used during boot operations to validate a signature of the first firmware package on the first device;

responsive to installation of a second firmware package on the first device, associating a second public key stored in a second secure memory key location in the secure memory with the active status, the second secure memory key location comprising one or more second memory addresses of the secure memory that sequentially follow the one or more first memory addresses of the first secure memory key location;

during a boot-up operation on the first device, determining to use the second public key to validate the second firmware package by scanning backwards in the secure memory starting from a predefined memory address until the active status is identified, the predefined memory address being one of the one or more second memory addresses or a third memory address subsequent to the one or more second memory addresses; and

validating the second firmware package on the first device using the second public key.

2 . The system of claim 1 , wherein the second firmware package is signed using a first private key corresponding to the first public key.

3 . The system of claim 2 , wherein the second firmware package is further signed using a second private key corresponding to the second public key.

4 . The system of claim 1 , wherein the method further comprises:

responsive to installation of the second firmware package on the first device, associating the first public key in the first secure memory key location on the first device with a deprecated status, such that the second public key will be used to validate a signature of firmware packages during boot operations on the first device rather than the first public key.

5 . The system of claim 1 , wherein the method further comprises:

upon successful validation of the second firmware package on the first device, continuing the boot-up operation of the first device.

6 . The system of claim 1 , wherein the method further comprises:

upon unsuccessful validation of the second firmware package on the first device, halting the boot-up operation of the first device and generating a notification.

7 . The system of claim 1 , wherein the method further comprises, responsive to installation of the second firmware package on the first device, writing the second public key to the second secure memory key location on the first device, wherein the one or more second memory addresses of the second secure memory key location are immediately after the one or more first memory addresses of the first secure memory key location in the secure memory of the first device.

8 . The system of claim 7 , wherein each secure memory key location within the secure memory of the first device contains at least a public key data field and a key status data field, and wherein associating the second public key in the second secure memory key location on the first device with the active status further comprises writing a data value corresponding to the active status to the key status data field of the second secure memory key location.

9 . The system of claim 8 , wherein the second secure memory key location is unlocked and wherein the key status data field of the second secure memory key location is set to inactive, prior to:

(a) associating the second public key in the second secure memory key location on the first device with the active status, and

(b) writing the data value corresponding to the active status to the key status data field of the second secure memory key location, and

wherein the method further comprises upon associating the second public key with the active status and writing the data value to the key status data field of the second secure memory key location, locking the second secure memory key location against further write operations.

10 . The system of claim 1 , wherein the first and second secure memory key locations are included in a plurality of secure memory key locations within the secure memory of the first device, wherein each of the plurality of secure memory key locations contains a respective public key data field, and wherein each of the public key data fields are locked against write operations after an initial setup of the first device.

11 . A method, comprising:

when a first firmware package is installed on a first device, associating a first public key stored in a first secure memory key location in a secure memory of the first device with an active status, the first secure memory key location comprising one or more first memory addresses of the secure memory;

responsive to installation of a second firmware package on the first device, associating a second public key stored in a second secure memory key location in the secure memory on the first device with the active status, the second secure memory key location comprising one or more second memory addresses of the secure memory that sequentially follow the one or more first memory addresses of the first secure memory key location;

during a boot-up operation on the first device, determining to use the second public key to validate the second firmware package by scanning backwards in the secure memory starting from a predefined memory address until the active status is identified, the predefined memory address being one of the one or more second memory addresses or a third memory address subsequent to the one or more second memory addresses; and

validating the second firmware package on the first device using the second public key.

12 . The method of claim 11 , wherein the second firmware package is signed using a first private key corresponding to the first public key.

13 . The method of claim 12 , wherein the second firmware package is further signed using a second private key corresponding to the second public key.

14 . The method of claim 11 , further comprising:

responsive to installation of the second firmware package on the first device, associating the first public key in the first secure memory key location on the first device with a deprecated status, such that the second public key will be used to validate a signature of firmware packages during boot operations on the first device rather than the first public key.

15 . The method of claim 11 , wherein the active status indicates that the first public key will be used during boot operations to validate a signature of the first firmware package on the first device.

16 . The method of claim 11 , wherein the one or more second memory addresses of the second secure memory key location are immediately adjacent to the one or more first memory addresses of the first secure memory key location.

17 . The method of claim 11 , further comprising:

upon successful validation of the second firmware package on the first device, continuing the boot-up operation of the first device.

18 . The method of claim 11 , further comprising:

upon unsuccessful validation of the second firmware package on the first device, halting the boot-up operation of the first device and generating a notification.

19 . The method of claim 11 , further comprising, responsive to installation of the second firmware package on the first device, writing the second public key to the second secure memory key location on the first device, wherein the one or more second memory addresses of the second secure memory key location are immediately after the one or more first memory addresses of the first secure memory key location in the secure memory of the first device.

20 . The method of claim 19 , wherein each secure memory key location within the secure memory of the first device contains at least a public key data field and a key status data field, and wherein associating the second public key in the second secure memory key location on the first device with the active status further comprises writing a data value corresponding to the active status to the key status data field of the second secure memory key location.

21 . The method of claim 20 , wherein the second secure memory key location is unlocked and wherein the key status data field of the second secure memory key location is set to inactive, prior to:

(a) associating the second public key in the second secure memory key location on the first device with the active status, and

(b) writing the data value corresponding to the active status to the key status data field of the second secure memory key location, and

the method further comprising upon associating the second public key with the active status and writing the data value to the key status data field of the second secure memory key location, locking the second secure memory key location against further write operations.

22 . The method of claim 11 , wherein the first and second secure memory key locations are included in a plurality of secure memory key locations within the secure memory of the first device, wherein each of the plurality of secure memory key locations contains a respective public key data field, and wherein each of the public key data fields are locked against write operations after an initial setup of the first device.

23 . A non-transitory computer-readable medium comprising computer program code that, when executed by one or more computer processors, performs a method comprising:

when a first firmware package is installed on a first device, associating a first public key stored in a first secure memory key location in a secure memory on the first device with an active status, the first secure memory key location comprising one or more first memory addresses of the secure memory;

responsive to installation of a second firmware package on the first device, associating a second public key stored in a second secure memory key location in the secure memory on the first device with the active status, the second secure memory key location comprising one or more second memory addresses of the secure memory that sequentially follow the one or more first memory addresses of the first secure memory key location;

during a boot-up operation on the first device, determining to use the second public key to validate the second firmware package by scanning backwards in the secure memory starting from a predefined memory address until the active status is identified, the predefined memory address being one of the one or more second memory addresses or a third memory address subsequent to the one or more second memory addresses; and

upon unsuccessfully validating the second firmware package on the first device using the second public key, halting the boot-up operation of the first device and generating a notification.