IP Library Granted Patent US 10,949,537
Granted Patent B2
US 10,949,537 · App. 16/175,699 · Granted Mar 16, 2021

Secure firmware provisioning and device binding mechanism

Inventors: Maurizio Gentili (Santa Clara, CA); Massimo Panzica (Biancavilla, IT)
Assignee: STMICROELECTRONICS, INC.
G06F21/572G06F12/1408G06F21/575
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 10,949,537
App. No.
16/175,699
Granted
Mar 16, 2021
Kind
B2
Abstract

Electronic computing devices provide a method to update firmware. The method includes receiving a firmware image at an electronic device, the electronic device having a processor and a memory arranged to store instructions executed by the processor. In the electronic device, a unique device identifier is retrieved and a random number is generated. The generated random number is securely stored. The random number and a representation of the unique device identifier are computationally combined to create a device-binding value, and an address-offset is generated from the device-binding value. The firmware image is stored in the memory at the address-offset.

Claims (66)

1. A firmware update method, comprising:

receiving a firmware image at an electronic device, the electronic device having a processor and a memory arranged to store instructions executed by the processor;

retrieving a unique device identifier;

generating a random number;

securely storing the generated random number in a secure element, the secure element being separate from the memory used to store instructions executed by the processor;

computationally combining the random number and a representation of the unique device identifier using a hash function to create a device-binding value, the device-binding value being specific to the device;

generating a firmware address-offset from the device-binding value;

storing the firmware image at a physical address in a non-volatile portion of the memory, wherein the physical address is based on the firmware address-offset;

after updating the firmware, generating a data address-offset, the data address-offset being specific to the device.

2. The method according to claim 1 , comprising:

during the firmware update, mapping a plurality of firmware functions in a vector table based on the firmware address-offset;

after updating the firmware, responding to a processor interrupt by:

retrieving an interrupt vector from the vector table;

retrieving instructions from the non-volatile portion of the memory based on the interrupt vector;

executing the retrieved instructions.

3. The method according to claim 1 wherein the firmware image is received at the electronic device wirelessly.

4. The method according to claim 1 , comprising:

encrypting the unique device identifier to generate the representation of the unique device identifier.

5. The method according to claim 4 wherein encrypting the unique device identifier includes executing an encryption function from a secure element, the secure element separate from the memory arranged to store instructions executed by the processor.

6. The method according to claim 1 wherein generating the random number includes executing a random number generation function from a secure element, the secure element separate from the memory arranged to store instructions executed by the processor.

7. The method according to claim 1 wherein computationally combining the random number and the representation of the unique device identifier to create the device-binding value includes:

accepting the random number and the representation of the unique device identifier as inputs to a logic function, the device-binding value produced as an output of the logic function.

8. The method according to claim 1 , wherein the hash function includes an exclusive-OR logic function.

9. The method according to claim 1 wherein generating the firmware address-offset from the device-binding value includes:

selecting a determined number of bits of the device-binding value.

10. The method according to claim 1 ,

identifying a first address in the memory; and

storing obfuscation data in the memory between the first address and the firmware address-offset.

11. The method according to claim 1 , further comprising:

booting the electronic device;

retrieving the unique device identifier;

retrieving the generated random number;

computationally combining the random number and the representation of the unique device identifier using the hash function to create the device-binding value;

generating the firmware address-offset from the device-binding value; and

executing with the processor instructions retrieved from the memory at address locations based on the firmware address-offset.

12. The method of claim 11 wherein the executing the retrieved instructions includes storing data at physical addresses in the memory based on the generated data address-offset.

13. A portable computing device, comprising:

a processor;

a memory arranged to store instructions executed by the processor;

a secure element, separate from the memory; and

boot-loader logic, the boot-loader logic including boot-loader instructions executable by the processor to:

retrieve a unique device identifier;

generate a random number;

securely store the generated random number in the secure element;

computationally combine the random number and a representation of the unique device identifier using a hash function to create a device-binding value, the device-binding value being specific to the device;

generate a firmware address-offset from the device-binding value; and

generate a data address-offset, the data address-offset being specific to the device.

14. The portable computing device according to claim 13 wherein the boot-loader logic includes a hardware-based encryption module and a hardware-based true random number generator.

15. The portable computing device according to claim 13 , comprising:

encryption logic, the encryption logic arranged to generate the representation of the unique device identifier.

16. The portable computing device according to claim 13 wherein the portable computing device is a mobile phone device, an Internet-of-Things (IoT) device, or a wearable computing device.

17. The device of claim 13 , wherein the memory stores a vector table mapping a plurality of firmware functions based on the firmware address-offset and the processor is configured to respond to a processor interrupt by:

retrieving an interrupt vector from the vector table;

retrieving instructions from a non-volatile portion of the memory based on the interrupt vector; and

executing the retrieved instructions.

18. A non-transitory computer-readable storage medium whose stored contents configure a computing system to perform a boot-loader method, the boot-loader method comprising:

generating a random number;

securely storing the generated random number in a secure element;

creating a device-binding value by computationally combining, using a hash function, the generated random number with a value that uniquely represents a portable device;

generating a firmware address-offset from the device-binding value;

storing instructions in a non-volatile memory based on the address-offset; and

generating a data address-offset specific to the portable device.

19. The non-transitory computer-readable storage medium according to claim 18 whose stored contents configure the computing system to perform the boot-loader method, wherein the instructions are stored as firmware arranged to direct operations of the portable device.

20. The non-transitory computer-readable storage medium according to claim 18 whose stored contents configure the computing system to perform the boot-loader method, the boot-loader method comprising:

retrieving a unique device identifier; and

encrypting the unique device identifier to generate the value that uniquely represents the portable device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2024
From: STMICROELECTRONICS, INC.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 068433/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2019
From: GENTILI, MAURIZIO; PANZICA, MASSIMO
To: STMICROELECTRONICS, INC.
Reel/Frame 049565/0354 →
Continuity (2)
Provisional Application 62593749 · Dec 1, 2017
Related Publication 20190171819A1 · Jun 6, 2019