IP Library Granted Patent US 10,489,145
Granted Patent B2
US 10,489,145 · App. 15/526,937 · Granted Nov 26, 2019

Secure update of firmware and software

Inventors: Suhas Shivanna (Bangalore, IN); Sandeep B H (Bangalore, IN); Neena M S (Bangalore, IN); Tom L Vaden (Neshanic Station, NJ)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
G06F8/654G06F21/57H04L63/0823H04L67/34
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,489,145
App. No.
15/526,937
Granted
Nov 26, 2019
Kind
B2
Abstract

Example implementations relate to secure update of firmware and software. For example, a method for providing secure firmware and software updates to a computing system includes receiving, by a management processor, an update request from a management station for the computing system, where the update request comprises update parameters indicative of components to be updated within the computing system. Further, the method includes storing details of the update request including the update parameters at a pre-defined memory location, where the update parameters include at least one certificate associated with the update request. The method also includes accessing, at least one of a firmware image and a software patch corresponding to the update request based on identification of the update parameters stored at the pre-defined memory location by an update manager, where the update manager has predefined access rights and privileges within an Operating System (OS) of the computing system.

Claims (50)

1. A method comprising:

receiving, by a management processor of a computing system, an update request for the computing system, from a management station over a network, wherein

the update request includes update parameters indicative of components to be updated within the computing system, and

the update parameters include at least one certificate associated with the update request;

storing, by the management processor, details of the update request and the update parameters at a pre-defined memory location;

signaling, by the management processor, presence of the update request to an update manager within an operating system (OS) executed by a first processor that is separate from the management processor;

accessing, by the update manager executed by the first processor that is separate from the management processor and responsive to the signaling, a program code update corresponding to the update request based on identification of the update parameters stored at the pre-defined memory location by the update manager, wherein the update manager has predefined access rights and privileges within the OS; and

verifying, by the update manager, the program code update based on the at least one certificate associated with the update request.

2. The method of claim 1 , wherein the signaling comprises generating an interrupt to indicate a pending program code update corresponding to the update request.

3. The method of claim 2 , wherein the accessing comprises:

identifying, by the update manager, the interrupt corresponding to the update request;

determining, by the update manager, a location of the program code update based on the update parameters stored at the pre-defined memory location; and

downloading, by the update manager, the program code update from the determined location based on the at least one certificate associated with the update request.

4. The method of claim 1 , wherein the pre-defined memory location is a shared memory region (SMR) of the computing system, and wherein the SMR is accessible to the management processor and the update manager.

5. The method of claim 4 , wherein the SMR is accessed using at least one of shared memory semantics and industry standard commands, sent over a sideband interface connecting the update manager and the management processor.

6. The method of claim 1 , wherein the update manager is a service of the OS of the computing system with the predefined access rights and privileges.

7. The method of claim 6 , wherein the update manager is part of an installation of the OS in the computing system.

8. The method of claim 1 , further comprising installing the program code update onto the computing system.

9. The method of claim 8 , wherein the update manager utilizes a secure OS container to perform the installing of the program code update onto the computing system.

10. The method of claim 1 , wherein the program code update comprises at least one of a firmware image or a software patch.

11. The method of claim 1 , wherein the management processor enables an out-of-band update of the computing system over the network using the program code update.

12. A computing system comprising:

a first processor;

a management processor separate from the first processor and to:

receive an update request for the computing system from a management station over a network, wherein

the update request comprises update parameters indicative of components to be updated within the computing system, and

the update parameters include at least one certificate associated with the update request;

store the update request along with the update parameters at a pre-defined memory location; and

generate an interrupt corresponding to the update request to indicate a pending update for the components of the computing system;

an update manager that is part of an operating system (OS) executable on the first processor, the update manager comprising predefined access rights and privileges within the OS, the update manager executable on the first processor to:

identify the interrupt corresponding to the update request;

access the pre-defined memory location to determine a location of a program code update based on the update parameters; and

download the program code update from the determined location based on the at least one certificate included in the update parameters associated with the update request.

13. The computing system of claim 12 , wherein the pre-defined memory location is at least one of a primary memory or a secondary memory of the computing system, wherein the pre-defined memory location is accessible to the management processor and the update manager.

14. The computing system of claim 12 , wherein the update manager is executable on the first processor to verify the program code update based on the certificate associated with the update request.

15. The computing system of claim 12 , wherein the update manager comprises an installation module to install the program code update onto the computing system.

16. The computing system of claim 12 , wherein the pre-defined memory location is a shared memory region (SMR) of the computing system, and wherein the SMR is accessible to the management processor and the update manager.

17. The computing system of claim 12 , wherein the update manager is a service of the OS of the computing system and is a part of OS installation with the predefined access rights and privileges, and wherein the service is run in secured OS application containers.

18. A non-transitory computer-readable medium comprising instructions that upon execution cause a computing system to:

cause a management processor to receive an update request for the computing system from a management station over a network, wherein

the update request includes update parameters indicative of components to be updated within the computing system and

the update parameters include at least one certificate associated with the update request;

cause the management processor to store the update request along with the update parameters at a pre-defined memory location;

cause the management processor to signal presence of the update request to an update manager within an operating system (OS) executed by a first processor that is separate from the management processor;

cause the update manager executed on the first processor to access, in response to the signaling, the pre-defined memory location to determine a location of a program code update based on the update parameters; and

cause the update manager to download the program code update from the determined location based on the certificate included in the update parameters associated with the update request.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are to further:

cause the update manager to verify the program code update based on the certificate associated with the update request; and

cause the update manager to install the program code update onto the computing system.

20. The non-transitory computer-readable medium of claim 19 , wherein the update manager utilizes a secure OS container to perform the installing of the program code update onto the computing system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: SHIVANNA, SUHAS; B H, SANDEEP; M S, NEENA; VADEN, TOM L
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 043297/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043555/0081 →
Continuity (1)
Related Publication 20170315798A1 · Nov 2, 2017