IP Library › Granted Patent US 11,741,232
Granted Patent B2
US 11,741,232 · App. 17/163,599 · Granted Aug 29, 2023

Secure in-service firmware update

Inventors: Mor Hoyda Sfadia (Tel Aviv, IL); Yuval Itkin (Zoran, IL); Ahmad Atamli (Oxford, GB); Ariel Shahar (Jerusalem, IL); Yaniv Strassberg (Yokneam, IL); Itsik Levi (Shapir, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F21/572G06F8/65G06F9/445G06F2221/033
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,741,232
App. No.
17/163,599
Granted
Aug 29, 2023
Kind
B2
Abstract

A computer system includes a volatile memory and at least one processor. The volatile memory includes a protected storage segment (PSS) configured to store firmware-authentication program code for authenticating firmware of the computer system. The at least one processor is configured to receive a trigger to switch to a given version of the firmware, to obtain, in response to the trigger, a privilege to access the PSS, to authenticate the given version of the firmware by executing the firmware-authentication program code from the PSS, to switch to the given version of the firmware upon successfully authenticating the given version, and to take an alternative action upon failing to authenticate the given version.

Claims (39)

1. A computer system, comprising:

a volatile memory, comprising a protected storage segment (PSS), the PSS configured to store firmware-authentication program code for authenticating firmware of the computer system; and

at least one processor, configured to:

receive a trigger to switch to a given version of the firmware;

in response to the trigger, obtain a privilege to access the PSS, and authenticate the given version of the firmware by executing the firmware-authentication program code from the PSS; and

switch to the given version of the firmware upon successfully authenticating the given version, and take an alternative action upon failing to authenticate the given version,

wherein the at least one processor authenticates the given version of the firmware by applying the firmware-authentication program code to the given version of the firmware and to an attestation key not in the PSS.

2. The computer system according to claim 1 , further comprising a read-only-memory (ROM), which is configured to store one or both of (i) part of the firmware-authentication program code and (ii) data used by the firmware-authentication program code, wherein, in response to the trigger, the at least one processor is configured to obtain a privilege to access both the PSS and the ROM.

3. The computer system according to claim 1 , wherein the at least one processor is configured to obtain the privilege, authenticate the given version and switch to the given version, without a reset.

4. The computer system according to claim 1 , wherein, in response to a reset, the at least one processor is configured to boot an initial version of the firmware, to authenticate the initial version of the firmware, and to load the firmware-authentication program code to the PSS.

5. The computer system according to claim 1 , further comprising a privilege control circuit that is configured to grant the privilege to access the PSS to the at least one processor, in response to detecting that the at least one processor accesses a defined address.

6. The computer system according to claim 1 , further comprising input interfaces, wherein the at least one processor is configured to ignore inputs from the input interfaces while having the privilege to access the PSS.

7. The computer system according to claim 1 , wherein the volatile memory and the at least one processor are comprised in a network device.

8. The computer system according to claim 7 , wherein the network device comprises one of a network adapter, a network switch, a network router and a network-enabled Graphics Processing Unit (GPU).

9. A method, comprising:

storing firmware-authentication program code, for authenticating firmware of a computer system, in a protected storage segment (PSS) of a volatile memory;

receiving a trigger to switch to a given version of the firmware;

in response to the trigger, obtaining a privilege to access the PSS, and authenticating the given version of the firmware by executing the firmware-authentication program code from the PSS; and

switching to the given version of the firmware upon successfully authenticating the given version, and taking an alternative action upon failing to authenticate the given version,

wherein authenticating the given version of the firmware is performed by applying the firmware-authentication program code to the given version of the firmware and to an attestation key not in the PSS.

10. The method according to claim 9 , further comprising storing in a read-only-memory (ROM) one or both of (i) part of the firmware-authentication program code and (ii) data used by the firmware-authentication program code, wherein obtaining the privilege comprises, in response to the trigger, obtaining a privilege to access both the PSS and the ROM.

11. The method according to claim 9 , wherein obtaining the privilege, authenticating the given version and switching to the given version are performed without a reset.

12. The method according to claim 9 , and comprising, in response to a reset, booting an initial version of the firmware, authenticating the initial version of the firmware, and loading the firmware-authentication program code to the PSS.

13. The method according to claim 9 , further comprising granting the privilege to access the PSS to at least one processor of the computer system, in response to detecting that the at least one processor accesses a defined address.

14. The method according to claim 9 , further comprising ignoring inputs from input interfaces of the computer system while having the privilege to access the PSS.

15. The method according to claim 9 , wherein storing the firmware-authentication program code, receiving the trigger, obtaining the privilege, authenticating the given version and switching to the given version are performed in a network device.

16. The method according to claim 15 , wherein the network device comprises one of a network adapter, a network switch, a network router and a network-enabled Graphics Processing Unit (GPU).

17. A method for securely switching firmware versions in a computer system, the method comprising:

storing, in a protected storage portion of a volatile memory, software program code which authenticates firmware of the computer system;

receiving a trigger to switch to a given version of the firmware; and

in response to the trigger:

(i) obtaining a privilege to access the protected storage portion;

(ii) authenticating the given version of the firmware by executing the software program code stored in the protected storage portion;

(iii) if the given version is authenticated successfully, switching to the given version of the firmware; and

(iv) if the given version is not authenticated successfully, taking an alternative action,

wherein authenticating the given version of the firmware is performed by applying the firmware-authentication program code to the given version of the firmware and to an attestation key not in the PSS.

18. The method according to claim 17 , wherein the computer system includes, is, or is embedded in, a network device.

19. The method according to claim 18 , wherein the network device comprises one of a network adapter, a network switch, a network router and a network-enabled Graphics Processing Unit (GPU).

20. The method according to claim 17 , wherein securely switching the firmware versions is performed without a reset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2021
From: SFADIA, MOR HOYDA; ITKIN, YUVAL; ATAMLI, AHMAD; SHAHAR, ARIEL; STRASSBERG, YANIV; LEVI, ITSIK
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 055090/0241 →
Continuity (1)
Related Publication 20220245251A1 · Aug 4, 2022
Cited By (2)
US 12,223,051 US 12,289,311