IP Library Granted Patent US 12683809
Granted Patent B2
US 12683809 · App. 18/483,951 · Granted Jul 14, 2026

Method and apparatus for verifying firmware

Inventors: Sewon Kim (Suwon-si, KR); Kyung-Woo Noh (Suwon-si, KR); Yeongae Yu (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
H04L9/3268H04L9/0825H04L9/3236H04L9/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 12683809
App. No.
18/483,951
Granted
Jul 14, 2026
Kind
B2
Abstract

A method for verifying firmware includes verifying a firmware certificate of the firmware using a first public key, verifying validity of a second public key included in the firmware certificate in response to successful verification of the firmware certificate, verifying the firmware using the second public key in response to successful verification of validity of the second public key, and in response to successful verification of validity of the firmware, installing the firmware in memory of an electronic device to operate hardware of the electronic device according to the firmware.

Claims (56)

1 . A method for verifying firmware, the method comprising:

verifying a firmware certificate of the firmware using a first public key;

verifying validity of a second public key included in the firmware certificate in response to successful verification of the firmware certificate;

verifying the firmware using the second public key in response to successful verification of the validity of the second public key; and

in response to successful verification of validity of the firmware, installing the firmware in memory of an electronic device to operate hardware of the electronic device according to the firmware,

wherein the verifying the firmware certificate of the firmware, the verifying the validity of the second public key, and the verifying the firmware using the second public key are performed sequentially.

2 . The method of claim 1 , further comprising:

obtaining the first public key from the memory of the electronic device.

3 . The method of claim 2 , wherein the obtaining of the first public key from the memory of the electronic device comprises:

checking an index of a first signing key pair currently used in a key index region of the electronic device; and

obtaining the first public key with the index from a read only memory (ROM) of the electronic device.

4 . The method of claim 1 , wherein the verifying of the firmware certificate of the firmware using the first public key comprises:

obtaining a first hash value of the firmware certificate by decrypting a signature of the firmware certificate using the first public key;

calculating a second hash value of the firmware certificate using a hash algorithm; and

verifying the firmware certificate by comparing the first hash value and the second hash value.

5 . The method of claim 4 , wherein the verifying of the firmware certificate by comparing the first hash value and the second hash value comprises:

discarding a firmware image of the firmware when the first hash value and the second hash value are different; or

determining that the firmware certificate is valid when the first hash value and the second hash value are same.

6 . The method of claim 1 , wherein the verifying of the second public key included in the firmware certificate in response to successful verification of the firmware comprises:

determining that the second public key is valid when a hash value of the second public key is not same as a blacklist fingerprint in a fingerprint region in the electronic device.

7 . The method of claim 6 , wherein the determining that the second public key is valid when the hash value of the second public key is not the same as the blacklist fingerprint in the fingerprint region in the electronic device comprises:

determining that the second public key is valid when the hash value of the second public key is same as a whitelist fingerprint in the fingerprint region.

8 . The method of claim 6 , wherein the determining that the second public key is valid when the hash value of the second public key is not the same as the blacklist fingerprint in the fingerprint region in the electronic device comprises:

recording the hash value of the second public key in the fingerprint region; and

determining that the second public key is valid when a same hash value as the hash value of the second public key does not exist in the fingerprint region.

9 . The method of claim 1 , wherein the verifying of the firmware using the second public key obtained from the firmware certificate comprises:

calculating a first hash value of the firmware using a hash algorithm;

obtaining a second hash value by decoding a firmware signature using the second public key; and

verifying the validity of the firmware by comparing the first hash value and the second hash value.

10 . The method of claim 9 , wherein the verifying of the validity of the firmware by comparing the first hash value and the second hash value comprises:

discarding a firmware image of the firmware when the first hash value and the second hash value are different; or

determining that the firmware is valid when the first hash value and the second hash value are same.

11 . An apparatus for verifying firmware for updating an electronic device, the apparatus comprising:

a processor; and

a memory, wherein the processor is configured to execute a program included in the memory to perform,

verifying a firmware certificate of the firmware using a root public key;

verifying a firmware public key obtained from the firmware certificate;

verifying the firmware using the firmware public key in response to a successful verification of validity of the firmware public key; and

installing the firmware in the memory to operate hardware of the electronic device according to the firmware,

wherein the verifying the firmware certificate, the verifying the firmware public key, and the verifying the firmware using the firmware public key are performed sequentially.

12 . The apparatus of claim 11 , wherein when verifying of the firmware certificate of the firmware by using the root public key, the processor is configured to perform:

obtaining a first hash value of the firmware certificate from a signature of the firmware certificate decrypted using the root public key;

calculating a second hash value of the firmware certificate by using a hash algorithm; and

determining that the firmware certificate is valid when the second hash value and the first hash value are same.

13 . The apparatus of claim 11 , wherein when verifying of the firmware public key obtained from the firmware certificate, the processor is configured to perform:

determining that the firmware certificate is valid when a hash value of the firmware public key is same as a whitelist fingerprint in a fingerprint region in the electronic device.

14 . The apparatus of claim 11 , wherein when verifying of the firmware public key obtained from the firmware certificate, the processor is configured to perform:

registering a hash value of the firmware public key to a fingerprint region; and

determining that the firmware public key is valid when the hash value is not same as a blacklist fingerprint or a whitelist fingerprint in the fingerprint region in the electronic device.

15 . The apparatus of claim 11 , wherein the processor is configured to execute the program to further perform:

checking an index of a first signing key pair currently used in a key index region of the electronic device; and

obtaining a first public key with the index from a read only memory (ROM) of the electronic device.

16 . The apparatus of claim 11 , wherein when verifying the firmware using the firmware public key in response to the successful verification of validity of the firmware public key, the processor is configured to perform:

calculating a first hash value of the firmware using a hash algorithm;

obtaining a second hash value of the firmware by decrypting a firmware signature using the firmware public key; and

determining that the firmware is valid when the first hash value and the second hash value are same.