IP Library Granted Patent US 9,201,642
Granted Patent B2
US 9,201,642 · App. 13/843,726 · Granted Dec 1, 2015

Extending platform trust during program updates

Inventors: Nathan D. Fontenot (Georgetown, TX); Joel H. Schopp (Austin, TX); Michael T. Strosaker (Austin, TX); George C. Wilson (Austin, TX)
Assignee: International Business Machines Corporation
G06F8/65G06F21/51G06F21/57
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,201,642
App. No.
13/843,726
Granted
Dec 1, 2015
Kind
B2
Abstract

An approach is provided in which a computer system generates a current hash value of a computer program in response to receiving a request to execute the computer program. Next, the computer system determines that the current hash value fails to match a reference hash value that was previously generated subsequent to installing the computer program on the computer system. Since the two hash values do not match each other, the computer system matches the current hash value to an updated hash value that was previously generated in response to modifying the computer program on the computer system. In turn, the computer system executes the computer program when the current hash value matches the updated hash value.

Claims (59)

1. A method of verifying computer program integrity on a computer system, the method comprising:

modifying a computer program, by one or more processors, based upon one or more changes to the computer program resulting from dynamically linking the computer program to one or more libraries;

generating an updated hash value of the computer program subsequent to the modifying;

generating, a current hash value of the computer program in response to receiving a request to execute the computer program;

determining that the current hash value fails to match a reference hash value, wherein the reference hash value was generated from the computer program prior to the modification of the computer program;

matching the current hash value to the updated hash value; and

executing, by one or more of the processors, the computer program in response to matching the current hash value to the updated hash value.

2. The method of claim 1 wherein:

an integrity measurement module generates the current hash value and the reference hash value;

a program modification module modifies the computer program and generates the updated hash value; and

the computer program and the program modification module are included in a trusted computing environment that is managed by the integrity measurement module.

3. The method of claim 2 further comprising:

receiving a digital signature at the program modification module from a kernel key ring executing on the computer system; and

storing, by the program modification module, the updated hash value and the digital signature in a hash update table.

4. The method of claim 3 wherein, prior to matching the first current hash value to the updated hash value, the method further comprises:

validating, by the integrity measurement module, the digital signature stored in the hash update table; and

performing the matching of the current hash value to the updated hash value in response to the validation of the digital signature.

5. The method of claim 1 wherein the modification is a binary update to the computer program.

6. The method of claim 1 further comprising:

replacing the reference hash value located in a hash reference table with the updated hash value located in a hash update table in response to matching the current hash value to the updated hash value.

7. The information handling system of claim 1 wherein the information handling system further comprises:

an integrity measurement module that generates the current hash value and the reference hash value;

a program modification module that modifies the computer program and generates the updated hash value; and

wherein the computer program and the program modification module are included in a trusted computing environment that is managed by the integrity measurement module.

8. The information handling system of claim 7 wherein the set of computer program instructions, when executed by at least one of the processors, performs additional actions comprising:

receiving a digital signature at the program modification module from a kernel key ring executing on the information handling system; and

storing, by the program modification module, the updated hash value and the digital signature in a hash update table.

9. The information handling system of claim 8 wherein, prior to matching the current hash value to the updated hash value, the set of computer program instructions, when executed by at least one of the processors, performs additional actions comprising:

validating, by the integrity measurement module, the digital signature stored in the hash update table; and

performing the matching of the current hash value to the updated hash value in response to the validation of the digital signature.

10. An information handling system comprising:

one or more processors;

a memory coupled to at least one of the processors;

a display accessible to at least one of the processors;

a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions of:

modifying a computer program based upon one or more changes to the computer program resulting from dynamically linking the computer program to one or more libraries;

generating an updated hash value of the computer program subsequent to the modifying;

generating a current hash value of the computer program in response to receiving a request to execute the computer program;

determining that the current hash value fails to match a reference hash value, wherein the reference hash value was generated from the computer program prior to the modification of the computer program;

matching the current hash value to the updated hash value; and

executing, by one or more of the processors, the computer program in response to matching the current hash value to the updated hash value.

11. The information handling system of claim 10 wherein the modification is a binary update to the computer program.

12. The information handling system of claim 10 wherein the set of computer program instructions, when executed by at least one of the processors, performs additional actions comprising:

replacing the reference hash value located in a hash reference table with the updated hash value located in a hash update table in response to matching the current hash value to the updated hash value.

13. A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, causes the information handling system to perform actions comprising:

modifying a computer program based upon one or more changes to the computer program resulting from dynamically linking the computer program to one or more libraries;

generating an updated hash value of the computer program subsequent to the modifying;

generating a current hash value of the computer program in response to receiving a request to execute the computer program;

determining that the current hash value fails to match a reference hash value, wherein the reference hash value was generated from the computer program prior to the modification of the computer program;

matching the current hash value to the updated hash value; and

executing, by one or more of the processors, the computer program in response to matching the current hash value to the updated hash value.

14. The computer program product of claim 13 wherein the computer program code, when executed by the information handling system, causes the information handling system to perform additional actions comprising:

receiving a digital signature from a kernel key ring executing on the information handling system; and

storing the updated hash value and the digital signature in a hash update table.

15. The computer program product of claim 14 wherein, prior to matching the current hash value to the updated hash value, the computer program code, when executed by the information handling system, causes the information handling system to perform additional actions comprising:

performing the matching of the current hash value to the updated hash value in response to the validation of the digital signature.

16. The computer program product of claim 13 wherein the modification is a binary update to the installed computer program.

17. The computer program product of claim 13 wherein the computer program code, when executed by the information handling system, causes the information handling system to perform additional actions comprising:

replacing the reference hash value located in a hash reference table with the updated hash value located in a hash update table in response to matching the current hash value to the updated hash value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2013
From: FONTENOT, NATHAN D.; SCHOPP, JOEL H.; STROSAKER, MICHAEL T.; WILSON, GEORGE C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030512/0330 →
Continuity (1)
Related Publication 20140279985A1 · Sep 18, 2014