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

Method and apparatus for firmware authentication

Assignee: Oracle America Inc
•
Filing: 1996-07-01
•
Granted: 2000-10-24
•
Expires: 2016-07-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus for firmware authentication and methods of operating the same result in software upgradability to firmware without compromising the integrity of the firmware. The apparatus for firmware authentication of a boot PROM comprises a software programmable data section having a plurality of micro-code. An authentication section having a hash generator configured to generate a data hash in response to the plurality of micro-code programmed in the software programmable data section to authorize execution of the plurality of micro-code of the data section.

Inventors

  • 👤 Russell Norman Mirov
  • 👤 Gregory Charles Onufer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 20:46
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/22; G06F9/24; G06F21/00; G06F21/50; G06F21/57; G06F21/572; G06F21/575; G06F12/00; G06F12/14; G06F12/1408; G06F2211/00; G06F2211/007; G06F2211/008; G06F2211/009; G06F2211/1097

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 86 words
A boot PROM (programmable read only memory) having programming instructions for initializing a computer system containing the boot PROM, the boot PROM comprising: a software programmable data section having a plurality of micro-code configured to initialize the computer system; and an authentication section having a hash generator configured to generate a data hash of the plurality of micro-code programmed in the software programmable data section, wherein the authentication section authenticates the plurality of micro-code with the data hash to authorize execution of the plurality of micro-code.
Claim 2
Dependent Claim 86 words
A boot PROM (programmable read only memory) having programming instructions for initializing a computer system containing the boot PROM, the boot PROM comprising: a software programmable data section having a plurality of micro-code configured to initialize the computer system; and an authentication section having a hash generator configured to generate a data hash of the plurality of micro-code programmed in the software programmable data section, wherein the authentication section authenticates the plurality of micro-code with the data hash to authorize execution of the plurality of micro-code.
Claim 3
Dependent Claim 43 words
The boot PROM according to claim 1, wherein: the software programmable data section includes a predetermined signature; and the authentication section includes a predetermined public key and a decryptor configured to provide a verification hash from the predetermined signature and the public key.
Claim 4
Dependent Claim 36 words
The boot PROM according to claim 2, wherein the authentication section includes a comparator configured to compare the data hash with the verification hash to authenticate the plurality of micro-code of the software programmable data section.
Claim 5
Dependent Claim 35 words
The boot PROM according to claim 2, wherein the predetermined signature includes an encryption of a private key and an initial hash of a plurality of initial micro-code programmed to the software programmable data section.
Claim 6
Dependent Claim 42 words
The boot PROM according to claim 1, wherein the authentication section includes a plurality of trusted micro-code configured to initiate execution of the plurality of micro-code of the software programmable data section in response to proper authentication of the plurality of micro-code.
Claim 7
Dependent Claim 36 words
The boot PROM according to claim 5, wherein the proper authentication of the micro-code programmed in the software programmable data section by the authentication section raises the plurality of micro-code to a level of trusted code.
Claim 8
Dependent Claim 27 words
The boot PROM according to claim 1, wherein the software programmable data section includes a flash memory configured to enable software reprogramming of the plurality of micro-code.
Claim 9
Dependent Claim 17 words
The boot PROM according to claim 1, wherein the authentication section includes a ROM (read only memory).
Claim 10
Independent Claim 75 words
A method of operating a boot PROM (programmable read only memory) having programming instructions for initializing a computer system comprising the steps: generating a data hash from a plurality of micro-code programmed in a software programmable data section of the boot PROM; and authenticating the plurality of micro-code of the software programmable data section in an authentication section of the boot PROM to authorize execution of the plurality of micro-code to initialize the computer system.
Claim 11
Independent Claim 75 words
A method of operating a boot PROM (programmable read only memory) having programming instructions for initializing a computer system comprising the steps: generating a data hash from a plurality of micro-code programmed in a software programmable data section of the boot PROM; and authenticating the plurality of micro-code of the software programmable data section in an authentication section of the boot PROM to authorize execution of the plurality of micro-code to initialize the computer system.
Claim 12
Dependent Claim 48 words
The method of operating a boot PROM according to claim 9, wherein: the software programmable data section includes a predetermined signatures; and the step of authenticating includes generating a verification hash from the predetermined signature and a public key stored in the authentication section of the boot PROM.
Claim 13
Dependent Claim 37 words
The method of operating a boot PROM according to claim 10, wherein the step of authenticating includes comparing the data hash with the verification hash to authenticate the plurality of micro-code of the software programmable data section.
Claim 14
Dependent Claim 42 words
The method of operating a boot PROM according to claim 10 further comprising the step of encrypting with a private key an initial hash of a plurality of initial micro-code programmed to the software programmable data section to provide the predetermined signature.
Claim 15
Dependent Claim 52 words
The method of operating a boot PROM according to claim 9, wherein the authentication section includes a plurality of trusted micro-code, further comprising the step of: propagating a level of trust to the plurality of micro-code of the software programmable data section in response to proper authentication of the plurality of micro-code.
Claim 16
Dependent Claim 37 words
The method of operating a boot PROM according to claim 9, wherein the software programmable data section includes a flash memory, further comprising the step of: reprogramming the plurality of micro-code in the software programmable data section.
Claim 17
Dependent Claim 21 words
The method of operating a boot PROM according to claim 9 wherein the authentication section includes a ROM (read only memory).
Claim 18
Dependent Claim 171 words
A memory module for initializing a computer system, comprising: a programmable section configured to store: a set of initialization instructions which, when executed by a processor, initialize a computer system in which the memory module and processor are installed; and a digital signature of said set of initialization instructions, wherein said digital signature is generated by encrypting a verification hash of said set of initialization instructions with a private encryption/decryption key; and a read-only section configured to store: a public encryption/decryption key corresponding to the private encryption/decryption key; a decryptor configured to decrypt said digital signature with said public encryption/decryption key to reproduce said verification hash; a hash generator configured to generate a test hash from said set of initialization instructions; a comparator configured to compare said test hash and said verification hash; and a set of trusted micro-code configured to execute before the computer system is operable by a user; wherein, upon execution of said trusted micro-code, said initialization instructions are executed if said test hash matches said verification hash.
Claim 19
Dependent Claim 171 words
A memory module for initializing a computer system, comprising: a programmable section configured to store: a set of initialization instructions which, when executed by a processor, initialize a computer system in which the memory module and processor are installed; and a digital signature of said set of initialization instructions, wherein said digital signature is generated by encrypting a verification hash of said set of initialization instructions with a private encryption/decryption key; and a read-only section configured to store: a public encryption/decryption key corresponding to the private encryption/decryption key; a decryptor configured to decrypt said digital signature with said public encryption/decryption key to reproduce said verification hash; a hash generator configured to generate a test hash from said set of initialization instructions; a comparator configured to compare said test hash and said verification hash; and a set of trusted micro-code configured to execute before the computer system is operable by a user; wherein, upon execution of said trusted micro-code, said initialization instructions are executed if said test hash matches said verification hash.
Claim 20
Independent Claim 139 words
A method of initializing a computer system with authenticatable initialization instructions, comprising: executing a set of trusted micro-code stored in a read-only portion of a memory module installed in the computer system before the computer system is operable by a user; generating a test hash from a set of initialization instructions stored in a programmable portion of said memory module; retrieving a digital signature from said reprogrammable portion of said memory module; decrypting said digital signature with a public key stored in said read-only portion of said memory module to retrieve a verification hash of an initial set of initialization instructions stored in said programmable portion of said memory module; comparing said test hash and said verification hash; and if said test hash and said verification hash match, executing said set of initialization instructions to initialize the computer system.
Claim 21
Independent Claim 139 words
A method of initializing a computer system with authenticatable initialization instructions, comprising: executing a set of trusted micro-code stored in a read-only portion of a memory module installed in the computer system before the computer system is operable by a user; generating a test hash from a set of initialization instructions stored in a programmable portion of said memory module; retrieving a digital signature from said reprogrammable portion of said memory module; decrypting said digital signature with a public key stored in said read-only portion of said memory module to retrieve a verification hash of an initial set of initialization instructions stored in said programmable portion of said memory module; comparing said test hash and said verification hash; and if said test hash and said verification hash match, executing said set of initialization instructions to initialize the computer system.

References Cited (Backward Citations)

US5535409A Cited
US5448045A Cited
US5481612A Cited
US5586327A Cited
US5537540A Cited
US5621796A Cited
US5633930A Cited
US5643086A Cited
US5768382A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-10-24 2004-04-24 2004-10-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-10-24 2008-04-24 2008-10-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-10-24 2012-04-24 2012-10-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag