Secure firmware provisioning and device binding mechanism
AssigneeSTMicroelectronics S.r.l.
InventorsMaurizio Gentili, Massimo Panzica
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.