← Back to Patent Explorer
US5379342A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for providing enhanced data verification in a computer system

Assignee: International Business Machines Corp
•
Filing: 1993-01-07
•
Granted: 1995-01-03
•
Expires: 2013-01-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A personal computer system compatible with application programs and operating system software. The personal computer system includes a microprocessor electrically coupled to a data bus, non-volatile memory electrically coupled to the data bus, volatile memory electrically responsive to the data bus and a direct access storage device electrically responsive to the data bus, the direct access storage device storing a second portion of operating system microcode. The non-volatile memory stores a first portion of operating system microcode and the direct access storage device stores a second portion of operating system microcode. The second portion of operating system microcode includes a boot program. The first portion of operating system microcode verifies the integrity of the boot program prior to loading the boot program into the volatile memory.

Inventors

  • 👤 William C. Arnold
  • 👤 Richard Bealkowski

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 12:42
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/50; G06F21/57; G06F21/575; G06F11/00; G06F11/22; G06F21/55; G06F21/56; G06F21/562; G06F21/565; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4403

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 187 words
A personal computer system compatible with application programs and operating system software, the personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of system microcode that is retrieved and executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor; a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing a second portion of operating system microcode that is retrieved and executed by said microprocessor after said microprocessor has executed said first portion of microcode, said second portion of operating system microcode including a boot program which, during power on initialization of said system, receives control of said system from said first portion of system microcode, and means contained at least in part in said first portion of system microcode for enabling said microprocessor to verify that said boot program has not undergone unauthorized modification since said computer system was previously powered off, said last-mentioned means operating before control of said system is transferred from said first portion to said boot program.
Claim 2
Dependent Claim 187 words
A personal computer system compatible with application programs and operating system software, the personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of system microcode that is retrieved and executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor; a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing a second portion of operating system microcode that is retrieved and executed by said microprocessor after said microprocessor has executed said first portion of microcode, said second portion of operating system microcode including a boot program which, during power on initialization of said system, receives control of said system from said first portion of system microcode, and means contained at least in part in said first portion of system microcode for enabling said microprocessor to verify that said boot program has not undergone unauthorized modification since said computer system was previously powered off, said last-mentioned means operating before control of said system is transferred from said first portion to said boot program.
Claim 3
Dependent Claim 235 words
A personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of system microcode that is executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor, a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing a second portion of system microcode associated with an operating system currently installed in said computer system, said second portion of microcode including a boot program which, during power on initialization of said system, is executed by said microprocessor after said microprocessor has finished executing said first portion of microcode, and means contained at least in part in said first portion of microcode for enabling said microprocessor to verify, prior to execution of said boot program, that said boot program has not undergone an unauthorized change since the system was previously powered on, wherein said means for enabling said microprocessor to verify includes means for generating an initial modification detection code, based upon information contained in said boot program, during an initial setup of said computer system, and means operative during subsequent power on executions of said first microcode portion for enabling said microprocessor to use said initial modification detection code as a reference in verifying that said boot program has not undergone a said unauthorized change since said system was previously powered on.
Claim 4
Dependent Claim 235 words
A personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of system microcode that is executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor, a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing a second portion of system microcode associated with an operating system currently installed in said computer system, said second portion of microcode including a boot program which, during power on initialization of said system, is executed by said microprocessor after said microprocessor has finished executing said first portion of microcode, and means contained at least in part in said first portion of microcode for enabling said microprocessor to verify, prior to execution of said boot program, that said boot program has not undergone an unauthorized change since the system was previously powered on, wherein said means for enabling said microprocessor to verify includes means for generating an initial modification detection code, based upon information contained in said boot program, during an initial setup of said computer system, and means operative during subsequent power on executions of said first microcode portion for enabling said microprocessor to use said initial modification detection code as a reference in verifying that said boot program has not undergone a said unauthorized change since said system was previously powered on.
Claim 5
Dependent Claim 31 words
The apparatus of claim 2 wherein said means for generating includes a cryptographic one-way function which calculates a multi-byte value from a given input series of bytes of said boot program.
Claim 6
Dependent Claim 30 words
The apparatus of claim 2 wherein said non-volatile memory includes a check code portion, and said means for verifying stores said initial modification detection code in said check code portion.
Claim 7
Dependent Claim 37 words
The apparatus of claim 4 wherein said check code portion of said non-volatile memory is disabled to prevent writing to said check code portion after said initial modification detection code is stored in said check code portion.
Claim 8
Dependent Claim 75 words
The apparatus of claim 4 wherein said means for verifying compares a present modification detection code upon power-up of the computer system with said initial modification detection code, said means for verifying including means for taking corrective action if said present modification detection code does not correspond to said initial modification code, said means for verifying transferring control to said boot record if said present modification detection code corresponds to said initial modification detection code.
Claim 9
Dependent Claim 34 words
The apparatus of claim 4 wherein said non-volatile memory includes a flag portion, and said means for verifying stores in said flag portion a flag to indicate the presence of said modification detection code.
Claim 10
Dependent Claim 247 words
A personal computer system compatible with application programs and operating system software, the personal computer system comprising: a microprocessor, non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of operating system microcode to be executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor, a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing, in separate pads thereof, a second portion of operating system microcode and operating system software for an operating system installed in said computer system, said second portion of operating system microcode including a boot program to be executed by said microprocessor after said first portion of microcode has been executed, first verifying means for verifying, prior to execution of said boot program by said microprocessor, that said boot program has not been changed in an unauthorized manner since a previous execution of said boot program by said microprocessor, and second verifying means for verifying that the part of said direct access storage device containing said operating system software has not been changed in an unauthorized manner since the previous power on initialization of said system, said second verifying means operating while said microprocessor is under control of said boot program, and prior to loading of said operating system software from said direct access storage device into said volatile memory, to prepare said computer system for operating under control of said operating system software.
Claim 11
Dependent Claim 247 words
A personal computer system compatible with application programs and operating system software, the personal computer system comprising: a microprocessor, non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of operating system microcode to be executed by said microprocessor when said computer system is initially powered on, volatile memory electrically coupled to said microprocessor, a direct access storage device electrically coupled to said microprocessor, said direct access storage device storing, in separate pads thereof, a second portion of operating system microcode and operating system software for an operating system installed in said computer system, said second portion of operating system microcode including a boot program to be executed by said microprocessor after said first portion of microcode has been executed, first verifying means for verifying, prior to execution of said boot program by said microprocessor, that said boot program has not been changed in an unauthorized manner since a previous execution of said boot program by said microprocessor, and second verifying means for verifying that the part of said direct access storage device containing said operating system software has not been changed in an unauthorized manner since the previous power on initialization of said system, said second verifying means operating while said microprocessor is under control of said boot program, and prior to loading of said operating system software from said direct access storage device into said volatile memory, to prepare said computer system for operating under control of said operating system software.
Claim 12
Dependent Claim 14 words
The apparatus of claim 8 wherein said boot program includes said second verifying means.
Claim 13
Dependent Claim 199 words
A personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of microcode to be executed by said microprocessor for controlling said computer system when said computer system is initially powered on; volatile memory electrically coupled to said microprocessor; direct access storage means electrically coupled to said microprocessor, said direct access storage means storing, in separate parts thereof, a second portion of microcode, for controlling said computer system after execution of said first portion of microcode, and software of an operating system installed in said computer system; said second portion of microcode including a boot program; first verifying means for verifying during execution of said first portion of microcode that said boot program has not been changed in an unauthorized manner since said system was previously powered on; and second verifying means for verifying during execution of said boot program that said operating system software has not been changed in an unauthorized manner since said computer system was previously powered on; and wherein said first verifying means includes means for generating an initial modification detection code based upon said boot program during an initial setup of said computer system.
Claim 14
Dependent Claim 199 words
A personal computer system comprising: a microprocessor; non-volatile memory electrically coupled to said microprocessor, said non-volatile memory storing a first portion of microcode to be executed by said microprocessor for controlling said computer system when said computer system is initially powered on; volatile memory electrically coupled to said microprocessor; direct access storage means electrically coupled to said microprocessor, said direct access storage means storing, in separate parts thereof, a second portion of microcode, for controlling said computer system after execution of said first portion of microcode, and software of an operating system installed in said computer system; said second portion of microcode including a boot program; first verifying means for verifying during execution of said first portion of microcode that said boot program has not been changed in an unauthorized manner since said system was previously powered on; and second verifying means for verifying during execution of said boot program that said operating system software has not been changed in an unauthorized manner since said computer system was previously powered on; and wherein said first verifying means includes means for generating an initial modification detection code based upon said boot program during an initial setup of said computer system.
Claim 15
Dependent Claim 31 words
The apparatus of claim 10 wherein said means for generating includes a cryptographic one-way function which calculates a multi-byte value from a given input series of bytes of said boot program.
Claim 16
Dependent Claim 30 words
The apparatus of claim 10 wherein said non-volatile memory includes a check code portion, and said first verifying means stores said initial modification detection code in said check code portion.
Claim 17
Dependent Claim 37 words
The apparatus of claim 12 wherein said check code portion of said non-volatile memory is disabled to prevent writing to said check code portion after said initial modification detection code is stored in said check code portion.
Claim 18
Dependent Claim 75 words
The apparatus of claim 12 wherein said first verifying means compares a present modification detection code upon power-up of the computer system with said initial modification detection code, said first verifying means including means for taking corrective action if said present modification detection code does not correspond to said initial modification code, said first verifying means transferring control to said boot record if said present modification detection code corresponds to said initial modification detection code.
Claim 19
Dependent Claim 34 words
The apparatus of claim 12 wherein said non-volatile memory includes a flag portion, and said first verifying means stores in said flag portion a flag to indicate the presence of said modification detection code.

References Cited (Backward Citations)

US4908861A Cited
US4937861A Cited
US5007082A Cited
US5144660A Cited
US5019899A Cited
US4975950A Cited
US5121345A Cited
US5022077A Cited
US5128995A Cited
US5214695A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-01-02 1998-07-04 1999-01-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-01-02 2002-07-04 2003-01-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-01-02 2006-07-04 2007-01-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag