×

Portion-level in-memory module authentication

  • US 7,831,838 B2
  • Filed: 03/05/2004
  • Issued: 11/09/2010
  • Est. Priority Date: 03/05/2004
  • Status: Active Grant
First Claim
Patent Images

1. A method implemented in a computing system of verifying integrity of a software module partially or fully loaded into memory of a computing environment for execution, comprising:

  • a computing system verifying that said software module to be loaded has not been tampered with by using module-level verification; and

    upon verifying that the software module has not been tampered with, the computing systemcreating at least two portion-level verifications, each of said portion-level verifications allowing verification of a portion of said software module as loaded into memory, andusing each of said portion-level verifications to verify a portion of said software module as loaded into memory,wherein said verifying that said software module to be loaded has not been tampered with by using module-level verification comprises taking a hash of the software module not incorporating changes made by an operating system loader and comparing the hash to a previously stored hash of the software module,wherein said creating at least two portion-level verifications comprises identifying two portions of the software module not incorporating changes made by an operating system loader and for each of at least two portions of the software module, modifying the portion to comprise loading changes implemented by an operating system loader in loading the portion, hashing the modified portion, and preserving the hash of the modified portion,wherein a first of the identified two portions of the software module contains secure functionality and a second of the identified two portions of the software module does not contain secure functionality, and wherein said using each of said portion-level verifications to verify a portion of said software module comprises;

    for the first of the identified two portions of the software module, prior to beginning executing the software module, the operating system loader loading the portion of said software module, hashing the loaded portion of said software module, comparing a result of hashing the loaded portion of said software module with the preserved hash of the modified portion, andfor the second of the identified two portions of the software module, after beginning execution of the software module, the operating system loader loading the portion of said software module, hashing the loaded portion of said software module, comparing a result of hashing the loaded portion of said software module with the preserved hash of the modified portion; and

    for one of the first of the identified two portions and the second of the identified two portions that is identified in a hot list, continually re-verifying.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×