IP Library Granted Patent US 9,135,029
Granted Patent B2
US 9,135,029 · App. 14/146,068 · Granted Sep 15, 2015

Securely reconfiguring a multi-node system to prevent firmware rollback

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 9,135,029
App. No.
14/146,068
Granted
Sep 15, 2015
Kind
B2
Abstract

A computer program product includes computer readable program code for initiating boot of a multi-node system including a first compute node scaled together with a second compute node, wherein the multi-node system boots from a basic input output system of the first compute node that is identified as a primary node by a trusted platform module of the first compute node. The computer program product further comprises computer readable program code for receiving a request to reconfigure the multi-node system so that the second compute node would become the primary node, and computer readable program code for reconfiguring the multi-node system so that the second node is the primary mode only in response to a user manually asserting physical presence to a trusted platform module of the first compute node.

Claims (32)

1. A computer program product including computer readable program code embodied on a computer readable storage medium, the computer program product comprising:

computer readable program code for initiating boot of a multi-node system including a first compute node scaled together with a second compute node, wherein the multi-node system boots from a basic input output system of the first compute node that is identified as a primary node by a trusted platform module of the first compute node;

computer readable program code for receiving a request to reconfigure the multi-node system so that the second compute node would become the primary node; and

computer readable program code for reconfiguring the multi-node system so that the second node is the primary mode only in response to a user manually asserting physical presence to a trusted platform module of the first compute node.

2. The computer program product of claim 1 , further comprising:

computer readable program code for identifying one of the first and second compute nodes as a default primary node for the multi-node system.

3. The computer program product of claim 1 , wherein an unauthorized attempt to reconfigure the multi-node system to boot from a second node is prevented, and wherein an authorized reconfiguration of the multi-node system to boot from the second node is allowed.

4. The computer program product of claim 1 , further comprising:

computer readable program code for determining whether the basic input output system of the second compute node is the same version as, or a more recent version than, the basic input output system of the first compute node.

5. The computer program product of claim 4 , wherein computer readable program code for determining whether the basic input output system of the second compute node is the same version as, or a more recent version than, the basic input output system of the first compute node, includes computer readable program code for causing a core root of trust for measurement (CRTM) code in the BIOS of the primary compute node to compare the version of the BIOS of the first compute node and the version of the BIOS of the second compute node.

6. The computer program product of claim 1 , further comprising:

computer readable program code for setting a first non-volatile index in the trusted platform module of the primary node to logical “1” if the secondary node has a BIOS version that is the same as or newer than the BIOS version of the primary node, or logical “0” if the secondary node has a BIOS version that is older than the BIOS version of the primary node.

7. The computer program product of claim 6 , further comprising:

computer readable program code for setting, for each compute node, a second non-volatile index in the trusted platform module of the compute node to logical “0” if the compute node is the primary node of the multi-node system, or logical “1” if the compute node is not the primary node of the multi-node system.

8. The computer program product of claim 7 , further comprising:

computer readable program code for setting the second non-volatile index in the trusted platform module of the primary node to logical “0” in response to powering off and power on the primary compute node.

9. The computer program product of claim 1 , further comprising:

computer readable program code for identifying one of the first and second compute nodes as a default primary node for the multi-node system, wherein the first and second non-volatile index of the default primary node are both initially set to “0”, and wherein the value of the first or second non-volatile index cannot be updated without asserting physical presence to the trusted platform module.

10. The computer program product of claim 1 , further comprising:

computer readable program code for prompting a user to manually assert physical presence to the trusted platform module of the compute node serving as the primary node in response to receiving the request to reconfigure the multi-node system so that the other compute node would become the primary node.

11. The computer program product of claim 10 , further comprising:

computer readable program code for setting the second non-volatile index in the trusted platform module of the primary node to logical “1” in response to receiving a manual assertion of physical presence to the trusted platform module of the primary node after prompting the user to manually assert physical presence to the trusted platform module of the primary node.

12. The computer program product of claim 10 , wherein the request to reconfigure the multi-node system is received from the integrated management module of the primary node.

13. The computer program product of claim 12 , wherein the integrated management module requests to change which of the compute nodes is the primary node according to a user changing a node selection setting.

14. The computer program product of claim 10 , further comprising:

computer readable program code for preventing the requested reconfiguration of the multi-node system and maintaining the logical value of the second non-volatile index in the trusted platform module of the compute if physical presence has not been asserted to the trusted platform module of the compute node after prompting the user to manually assert physical presence to the trusted platform module of the primary node.

15. The computer program product of claim 1 , further comprising:

computer readable program code for setting a field-programmable gate array in each compute node to point to the basic input output system of the compute node identified as the primary node.

16. The computer program product of claim 1 , further comprising:

computer readable program code for latching the assertion of physical presence until the multi-node system has been reset.

17. The computer program product of claim 1 , further comprising:

computer readable program code for resetting the multi-node system in response to receiving a manual assertion of physical presence to the trusted platform module of the primary node after prompting the user to manually assert physical presence to the trusted platform module of the primary node.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0878 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENT CONTAINING TYPO ERRORS PREVIOUSLY RECORDED AT REEL: 037101 FRAME: 0969. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037689/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037101/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2014
From: DASARI, SHIVA R.; GUNDAM, RAGHUSWAMYREDDY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031875/0661 →