US20020004905A1 - Method for bios authentication prior to bios execution - Google Patents
Method for bios authentication prior to bios execution Download PDFInfo
- Publication number
- US20020004905A1 US20020004905A1 US09/118,147 US11814798A US2002004905A1 US 20020004905 A1 US20020004905 A1 US 20020004905A1 US 11814798 A US11814798 A US 11814798A US 2002004905 A1 US2002004905 A1 US 2002004905A1
- Authority
- US
- United States
- Prior art keywords
- processor
- bios
- cryptographic
- cryptographic device
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract 10
- 238000004891 communication Methods 0.000 claims abstract 3
- 230000004044 response Effects 0.000 claims 1
- 239000000758 substrate Substances 0.000 claims 1
- 238000012795 verification Methods 0.000 claims 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/88—Detecting or preventing theft or loss
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Definitions
- the present invention relates to the field of data security. More particularly, this invention relates to a system and method for authenticating software code before execution by the host processor.
- computers have become products highly valued by consumers. The reason is that computers are highly versatile and enjoy a wide range of applications. Of major concern, however, is that computers, especially mobile computers such as laptops or hand-helds, are vulnerable to theft due to their commercial value and their exposure to insecure environments such as cars, hotel rooms and airport lobbies.
- a host processor of a conventional computer automatically jumps to a predetermined hardwired address.
- This address is a predetermined reset vector which is mapped to a ROM device containing the BIOS code.
- the host processor performs instruction fetches of BIOS code which usually prompts the computer to perform the following operations: (i) initialize its electronic hardware; (ii) initialize its peripheral devices; and (iii) boot its Operating System.
- the present invention relates to processor in communication with a cryptographic device.
- the cryptographic device authenticates software code, loaded into the cryptographic device during a boot procedure, before permitting the host processor to execute the software code.
- FIG. 1 is an illustrative embodiment of the electronic system practicing the present invention.
- FIG. 2 is a more-detailed illustrative embodiment of the electronic system of FIG. 1.
- FIG. 3 is an illustrative embodiment of the processing unit of FIG. 2.
- FIG. 4 is a more-detailed embodiment of the processing unit of FIG. 3.
- FIG. 5 is an illustrative block diagram of an embodiment of the cryptographic device placed by the processing unit of FIG. 4.
- FIGS. 6A and 6B are an illustrative embodiment of cryptographic operations, performed by the cryptographic device, host processor and nonvolatile memory containing the BIOS code, in authenticating the BIOS code before its execution during the boot procedure.
- the present invention relates to an electronic system and method for authenticating software code before execution by the host processor.
- certain examples of hardware and methods of operation are described in an illustrative sense, and should not be construed in a restrictive sense.
- an “electronic system” is defined as any hardware with processing and internal data storage capability.
- electronic systems include computers (e.g., laptops, desktops, hand-held, servers, etc.), imaging equipment (e.g., printers, facsimile machines, scanners, etc.), wireless communication equipment (e.g., cellular phones, pagers, etc.), automated teller machines and the like.
- Information is defined as one or more bits of data, address, control or any combination thereof.
- a “bus” is any medium used to transfer information.
- a “key” is commonly defined as an encoding and/or decoding parameter. Normally, this parameter is a sequence of binary data such as (i) one or more public/private key pairs used by any public key cryptographic function (e.g., Rivest, Shamir and Adleman “RSA” related functions, Digital Signature Standard, Elliptic Curve, etc.) or (ii) a secret key shared in confidence between the two electronic systems executing any type of secret key cryptographic function (e.g., Data Encryption Standard).
- a “digital signature” includes digital information encrypted with a private key of its signatory to ensure that the digital information has not been illicitly modified after being digitally signed.
- This digital information may be provided in its entirety or as a digest produced by a one-way hash function.
- the “one-way hash function” includes a function, mathematical or otherwise, that converts information of a variable-length into information of a fixed-length (referred to as a “digest”).
- the term “one-way” indicates that there does not readily exist an inverse function to recover any discernible portion of the original information from the fixed-length digest.
- a “digital certificate” includes digital information used to authenticate a sender of information.
- a digital certificate may include a public key of a person or entity being certified which is encrypted with the private key of a certification authority. Examples of a “certification authority” include an original equipment manufacturer (OEM), a software vendor, a trade association, a governmental entity, a bank or any other trusted entity.
- OEM original equipment manufacturer
- Electronic system 100 comprises a processing unit 110 and a system memory 120 coupled together by a chipset 130 .
- System memory 120 includes a volatile memory such as any type of random access memory.
- Chipset 130 operates as an interface between a plurality of buses, namely a host bus 140 , a memory bus 150 and a bus 160 .
- bus 160 provides a communication path between (i) chipset 130 and (ii) one or more peripheral devices 170 m (“m” being a positive whole number).
- Bus 160 may be a multiplexed bus such as a Peripheral Component Interconnect (PCI) bus, an Industry Standard Architecture (ISA) bus or any other type of bus architecture. It is contemplated that bus 160 includes a single bus (e.g., a PCI bus) as shown, or alternatively, multiple buses coupled together through bridge circuitry. In the later illustrative example, each peripheral device 170 m would be coupled to at least one of the multiple buses.
- PCI Peripheral Component Interconnect
- ISA Industry Standard Architecture
- the peripheral devices 170 m comprise a storage device 170 1 , a mass storage device 170 2 (e.g., a hard disk drive, a CD ROM player, CD recordable player, digital tape drive, a floppy disk drive, a digital video disk “DVD” player, etc.) and/or a transceiver device 170 3 (e.g., a network interface circuit card, a modem card, etc.).
- Storage device 170 1 contains actual Basic Input/Output System (BIOS) code 180 for execution by processing unit 110 as well as a digital (BIOS) certificate 181 and a digital (BIOS) signature 182 .
- BIOS Basic Input/Output System
- BIOS signature 182 includes a digest of BIOS code 180 signed by a private key of the BIOS vendor for example. This digest is the resultant data after running the BIOS code through a one-way hash function.
- BIOS certificate 181 includes a public key of the BIOS vendor signed by a private key of the certification authority.
- processing unit 110 placed with electronic system 100 is shown.
- Processing unit 110 is connected to a connector 200 mounted on a system substrate 210 which is outlined by dashed lines.
- system substrate 210 typically is formed with any type of material or combination of materials upon which integrated circuit devices can be attached.
- Connector 200 enables communications between logic placed on system substrate 210 and processing unit 110 . Any style for connector 200 may be used, provided a complementary connection is used by processing unit 110 . Examples of connector 200 include, for example, a standard female edge connector (shown), a pin field connector or a socket attached to system substrate 210 .
- processor substrate 300 formed from any type of material upon which integrated circuitry (not shown) can be attached through well-known techniques (e.g., solder connections, etc.).
- Processor substrate 300 is substantially covered by a package 310 in order to protect its integrated circuitry from damage or harmful contaminants.
- processor substrate 300 includes a connector 320 , which is adapted to establish a mechanical and an electrical connection with connector 200 of FIG. 2.
- Connector 320 includes a standard male edge connector.
- processor substrate 300 includes a host processor 400 and a cryptographic device 410 .
- cryptographic device 410 is connected to host processor 400 through a dedicated processor bus 420 .
- cryptographic device 410 is arranged to function as a co-processor. It is contemplated, however, that cryptographic device 410 may be connected to host bus 140 or bus 160 of FIG. 1 in lieu of dedicated processor bus 420 , in which case, cryptographic device 410 would not be placed in processing unit 110 . Instead, it may be mounted on system substrate 210 as an independent device or on a daughter card (not shown).
- processing unit 110 may simply include a microprocessor which is mounted onto system substrate 210 along with chipset 130 and cryptographic device 410 of FIG. 4.
- one embodiment of cryptographic device 410 comprises a first integrated circuit (IC) device 500 and a second IC device 520 connected by an internal bus 540 .
- the IC devices 500 and 520 are implemented within a single multi-chip package.
- IC devices 500 and 520 may be implemented as separate packaged IC devices.
- second IC device 520 includes internal memory 525 and a small amount of support logic 535 .
- Support logic 535 includes interface circuitry to handle information received from and routed to first IC device 500 .
- support logic 535 can include a cryptographic engine which is used by cryptographic device 410 to assist in performing various cryptographic operations in accordance with either symmetric key cryptography or asymmetric key cryptography.
- the cryptographic engine would operate as either a symmetric (e.g., DES-based) encryption/decryption unit or an asymmetric (e.g., RSA-based) encryption/decryption unit.
- internal memory 525 includes nonvolatile (NV) memory such as, for example, read only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or flash memory.
- NV nonvolatile
- Internal memory 525 contains firmware 526 which is a small computer program executed by first IC device 500 for initialization and authentication purposes in order to ensure that the firmware in storage element 1701 of FIG. 1 has not been tampered with or corrupted.
- Internal memory 525 further contains a public key 527 of a certification authority of the cryptographic device 410 of FIG. 4 (hereinafter referred to as a “root certification key”).
- root certification key 527 may be a public key of an OEM of the cryptographic device or a key assigned to another type of entity (e.g., trade association, governmental entity, bank, etc.) if that entity digitally signed BIOS certificate 181 of FIG. 1.
- entity e.g., trade association, governmental entity, bank, etc.
- the root certification key 527 is needed for certificate verification purposes.
- first IC device 500 is logic circuitry 510 including a small amount of non-volatile memory 515 .
- Logic circuitry 510 includes a processor 511 , an optional random number generator 512 (as denoted by dashed lines) and a bus control unit 513 . If implemented, random number generator 512 would generate the initial values used to produce key(s) contained within cryptographic device 410 .
- the bus control unit 513 provides an interface to control the transfer of information between cryptographic device 410 and host processor 400 of FIG. 4 through dedicated processor bus 420 .
- FIGS. 6A and 6B a flowchart is provided which illustrates the operations of an embodiment of the electronic system used for verification of BIOS code to determine whether the BIOS code has been illicitly modified. If so, execution by the host processor is prevented.
- firmware and the root certification key are initially pre-programmed into internal memory of the cryptographic device (FIG. 5) during manufacture.
- the firmware continues execution, including responses to instruction fetches by the host processor, after a power-on system reset in order to retrieve contents from a storage element (e.g., BIOS code) for authentication purposes.
- a storage element e.g., BIOS code
- both the host processor and the cryptographic device In response to a power-on system reset (block 615 ), both the host processor and the cryptographic device begin their respective internal initialization (block 620 ). Each hardware device begins execution of internally stored microcode. After completion of its internal initialization, the host processor initiates an instruction fetch to a predetermined address that is mapped to the address range of internal memory of the cryptographic device (block 625 ). If the cryptographic device has not completed its internal initialization, the instruction fetch by the host processor is delayed by the cryptographic device until its internal initialization has completed (blocks 630 and 635 ).
- a technique for delaying access by the host processor includes transmission of a JUMP-to-SELF instruction back to the host processor, or insertion of wait states as shown.
- the cryptographic device Upon completing a successful internal initialization, the cryptographic device responds to the instruction fetch with a first instruction, typically a MOV instruction, from the predetermined memory location in its internal memory 525 (block 640 ).
- the MOV instruction includes, as an operand, an address falling in an address range of a legacy platform BIOS device (storage device 170 1 of FIG. 1).
- the host processor Upon receiving the MOV instruction, the host processor initiates a data read cycle on a front side bus with the memory address of the BIOS device provided with the MOV instruction from the cryptographic device (block 645 ).
- this data cycle is configured to appear as an instruction fetch cycle. This is accomplished by placing the host processor into a CHECK mode by setting an opcode fetch emulation bit.
- the architecture of the host processor includes the opcode fetch emulation bit that defaults to a “SET” state after a power-on reset.
- the host processor Upon detecting that the opcode fetch emulation bit is set, the host processor deasserts a data/control (D/C#) control line so that the data fetch appears to the chipset as an instruction fetch.
- block 650 the bytes read from the BIOS device are then transferred to the cryptographic device.
- the acts performed in blocks 640 - 650 are part of an iterative process which continues until the BIOS code, BIOS certificate and BIOS signature are retrieved from the BIOS device (block 655 ) under control of further instructions provided to the host processor by the cryptographic device.
- the host processor temporarily operates effectively as a Direct Memory Access (DMA) device between the BIOS device and the cryptographic device.
- DMA Direct Memory Access
- the BIOS certificate is decrypted using the root certification key (block 660 ). This operation is performed to retrieve a public key of the signatory of the BIOS signature (e.g., BIOS vendor). Then, the preloaded digest signature is decrypted using the public key of the BIOS vendor, for example, to recover a pre-loaded digest (block 665 ). After recovering the pre-loaded digest, the BIOS code is read and undergoes the one-way hash function to produce a resultant digest (block 670 ). The resultant digest is compared to the pre-loaded digest (block 675 ). If no match occurs, the host processor is precluded from continuing its boot procedure (blocks 680 and 685 ). However, if there is a match, the BIOS code has been authenticated as valid.
- BIOS vendor e.g., BIOS vendor
- the pre-loaded digest may be a one-way hash of a portion of the BIOS code. Then, only a predetermined portion of the BIOS code needs to be read into the cryptographic device. However, this technique may be less secure than the technique discussed above.
- the cryptographic device generates a soft reset to the host processor (block 690 ).
- the soft reset may occur through activation of a predetermined signal line.
- This soft reset causes the opcode fetch emulation bit to be reset, which signals the host processor to begin execution at the standard legacy reset vector to fetch its first instruction from the BIOS device to perform a normal boot procedure.
- successive software instructions may be used to reset the opcode fetch emulation bit and to jump to a particular address for the legacy reset vector.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
A cryptographic device is implemented in communication with a host processor to prevent the host processor from performing a standard boot-up procedure until a basic input output system (BIOS) code is authenticated. This is accomplished by a cryptographic device which is addressed by the host processor during execution of a first instruction following a power-up reset. The cryptographic device includes a first integrated circuit (IC) device and a second IC device. The first IC device includes a memory to contain firmware and a root certification key. The second IC device includes logic circuitry to execute a software code to authenticate the BIOS code before permitting execution of the BIOS code by the host processor.
Description
- 1. Field
- The present invention relates to the field of data security. More particularly, this invention relates to a system and method for authenticating software code before execution by the host processor.
- 2. General Background
- Over the last few years, computers have become products highly valued by consumers. The reason is that computers are highly versatile and enjoy a wide range of applications. Of major concern, however, is that computers, especially mobile computers such as laptops or hand-helds, are vulnerable to theft due to their commercial value and their exposure to insecure environments such as cars, hotel rooms and airport lobbies.
- Currently, there exist a number of security mechanisms that are marginally effective. However, these mechanisms are still vulnerable to component or device replacement since no protected environment for execution of code and for manipulation of data is provided. For example, one type of conventional security mechanism involves the use of password software, which is normally executed after a host processor of the computer has been powered-up and has already fetched macro-instructions from Basic Input/Output System (BIOS) code residing in a Read Only Memory (ROM) device. The ROM device is physically separate from the host processor.
- More specifically, during a normal power-on reset, a host processor of a conventional computer automatically jumps to a predetermined hardwired address. This address is a predetermined reset vector which is mapped to a ROM device containing the BIOS code. As a result, the host processor performs instruction fetches of BIOS code which usually prompts the computer to perform the following operations: (i) initialize its electronic hardware; (ii) initialize its peripheral devices; and (iii) boot its Operating System.
- Unfortunately, the password-based security mechanism and other current security mechanisms can be easily circumvented. One way would be to replace the ROM device containing BIOS code with another memory device having a new, different BIOS code.
- Additionally, due to the growing usage of networking solutions such as the Internet, computers are becoming more susceptible to invasive software virus attacks. Software viruses may be obtained during transactions over the Internet such as, for example, downloading data from either a website or an electronic bulletin board. For example, the software virus may include a program, infiltrating the BIOS code and executing in the background, that sends contents of hard disk drive over the Internet. Likewise, some of the software viruses are intended to damage the BIOS code which renders the computer inoperable.
- These above-described scenarios further demonstrate the necessity in providing a protected environment for execution of code and for manipulation of data within a computer.
- The present invention relates to processor in communication with a cryptographic device. The cryptographic device authenticates software code, loaded into the cryptographic device during a boot procedure, before permitting the host processor to execute the software code.
- The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
- FIG. 1 is an illustrative embodiment of the electronic system practicing the present invention.
- FIG. 2 is a more-detailed illustrative embodiment of the electronic system of FIG. 1.
- FIG. 3 is an illustrative embodiment of the processing unit of FIG. 2.
- FIG. 4 is a more-detailed embodiment of the processing unit of FIG. 3.
- FIG. 5 is an illustrative block diagram of an embodiment of the cryptographic device placed by the processing unit of FIG. 4.
- FIGS. 6A and 6B are an illustrative embodiment of cryptographic operations, performed by the cryptographic device, host processor and nonvolatile memory containing the BIOS code, in authenticating the BIOS code before its execution during the boot procedure.
- The present invention relates to an electronic system and method for authenticating software code before execution by the host processor. Herein, certain examples of hardware and methods of operation are described in an illustrative sense, and should not be construed in a restrictive sense.
- To clarify various qualities of the present invention, certain terminology set forth below is used to describe hardware or cryptographic-related terms. In particular, an “electronic system” is defined as any hardware with processing and internal data storage capability. Examples of electronic systems include computers (e.g., laptops, desktops, hand-held, servers, etc.), imaging equipment (e.g., printers, facsimile machines, scanners, etc.), wireless communication equipment (e.g., cellular phones, pagers, etc.), automated teller machines and the like. “Information” is defined as one or more bits of data, address, control or any combination thereof. A “bus” is any medium used to transfer information.
- With respect to cryptography related terminology, a “key” is commonly defined as an encoding and/or decoding parameter. Normally, this parameter is a sequence of binary data such as (i) one or more public/private key pairs used by any public key cryptographic function (e.g., Rivest, Shamir and Adleman “RSA” related functions, Digital Signature Standard, Elliptic Curve, etc.) or (ii) a secret key shared in confidence between the two electronic systems executing any type of secret key cryptographic function (e.g., Data Encryption Standard). A “digital signature” includes digital information encrypted with a private key of its signatory to ensure that the digital information has not been illicitly modified after being digitally signed. This digital information may be provided in its entirety or as a digest produced by a one-way hash function. The “one-way hash function” includes a function, mathematical or otherwise, that converts information of a variable-length into information of a fixed-length (referred to as a “digest”). The term “one-way” indicates that there does not readily exist an inverse function to recover any discernible portion of the original information from the fixed-length digest. A “digital certificate” includes digital information used to authenticate a sender of information. For example, a digital certificate may include a public key of a person or entity being certified which is encrypted with the private key of a certification authority. Examples of a “certification authority” include an original equipment manufacturer (OEM), a software vendor, a trade association, a governmental entity, a bank or any other trusted entity.
- Referring to FIG. 1, an illustrative embodiment of an
electronic system 100 employing the present invention is shown.Electronic system 100 comprises aprocessing unit 110 and asystem memory 120 coupled together by achipset 130.System memory 120 includes a volatile memory such as any type of random access memory.Chipset 130 operates as an interface between a plurality of buses, namely ahost bus 140, amemory bus 150 and abus 160. - Referring still to FIG. 1,
bus 160 provides a communication path between (i)chipset 130 and (ii) one or moreperipheral devices 170 m (“m” being a positive whole number).Bus 160 may be a multiplexed bus such as a Peripheral Component Interconnect (PCI) bus, an Industry Standard Architecture (ISA) bus or any other type of bus architecture. It is contemplated thatbus 160 includes a single bus (e.g., a PCI bus) as shown, or alternatively, multiple buses coupled together through bridge circuitry. In the later illustrative example, each peripheral device 170 m would be coupled to at least one of the multiple buses. - As shown for illustrative purposes, the peripheral devices170 m comprise a storage device 170 1, a mass storage device 170 2 (e.g., a hard disk drive, a CD ROM player, CD recordable player, digital tape drive, a floppy disk drive, a digital video disk “DVD” player, etc.) and/or a transceiver device 170 3 (e.g., a network interface circuit card, a modem card, etc.). Storage device 170 1 contains actual Basic Input/Output System (BIOS)
code 180 for execution byprocessing unit 110 as well as a digital (BIOS)certificate 181 and a digital (BIOS)signature 182.BIOS signature 182 includes a digest ofBIOS code 180 signed by a private key of the BIOS vendor for example. This digest is the resultant data after running the BIOS code through a one-way hash function.BIOS certificate 181 includes a public key of the BIOS vendor signed by a private key of the certification authority. - Referring now to FIG. 2, one embodiment of
processing unit 110 placed withelectronic system 100 is shown.Processing unit 110 is connected to aconnector 200 mounted on asystem substrate 210 which is outlined by dashed lines. Controlling the overall functionality ofelectronic system 100,system substrate 210 typically is formed with any type of material or combination of materials upon which integrated circuit devices can be attached.Connector 200 enables communications between logic placed onsystem substrate 210 andprocessing unit 110. Any style forconnector 200 may be used, provided a complementary connection is used by processingunit 110. Examples ofconnector 200 include, for example, a standard female edge connector (shown), a pin field connector or a socket attached tosystem substrate 210. - Referring now to FIG. 3, one illustrative embodiment of
processing unit 110 features aprocessor substrate 300 formed from any type of material upon which integrated circuitry (not shown) can be attached through well-known techniques (e.g., solder connections, etc.).Processor substrate 300 is substantially covered by apackage 310 in order to protect its integrated circuitry from damage or harmful contaminants. In this embodiment,processor substrate 300 includes aconnector 320, which is adapted to establish a mechanical and an electrical connection withconnector 200 of FIG. 2.Connector 320 includes a standard male edge connector. - Referring to FIG. 4, an illustrative embodiment of
processor substrate 300 are shown. The integrated circuitry ofprocessor substrate 300 includes ahost processor 400 and acryptographic device 410. To enable communications withhost processor 400, in this embodiment,cryptographic device 410 is connected to hostprocessor 400 through adedicated processor bus 420. Herein,cryptographic device 410 is arranged to function as a co-processor. It is contemplated, however, thatcryptographic device 410 may be connected to hostbus 140 orbus 160 of FIG. 1 in lieu ofdedicated processor bus 420, in which case,cryptographic device 410 would not be placed inprocessing unit 110. Instead, it may be mounted onsystem substrate 210 as an independent device or on a daughter card (not shown). - Of course, there exist many other embodiments which, although slightly different in design, do not deviate from the spirit and scope of the invention. For example, processing
unit 110 may simply include a microprocessor which is mounted ontosystem substrate 210 along withchipset 130 andcryptographic device 410 of FIG. 4. - As further shown in FIG. 5, one embodiment of
cryptographic device 410 comprises a first integrated circuit (IC)device 500 and asecond IC device 520 connected by aninternal bus 540. In one embodiment, theIC devices IC devices - Herein,
second IC device 520 includesinternal memory 525 and a small amount ofsupport logic 535.Support logic 535 includes interface circuitry to handle information received from and routed tofirst IC device 500. Optionally,support logic 535 can include a cryptographic engine which is used bycryptographic device 410 to assist in performing various cryptographic operations in accordance with either symmetric key cryptography or asymmetric key cryptography. The cryptographic engine would operate as either a symmetric (e.g., DES-based) encryption/decryption unit or an asymmetric (e.g., RSA-based) encryption/decryption unit. - As shown, in this embodiment,
internal memory 525 includes nonvolatile (NV) memory such as, for example, read only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or flash memory.Internal memory 525 containsfirmware 526 which is a small computer program executed byfirst IC device 500 for initialization and authentication purposes in order to ensure that the firmware instorage element 1701 of FIG. 1 has not been tampered with or corrupted.Internal memory 525 further contains apublic key 527 of a certification authority of thecryptographic device 410 of FIG. 4 (hereinafter referred to as a “root certification key”). It is contemplated thatroot certification key 527 may be a public key of an OEM of the cryptographic device or a key assigned to another type of entity (e.g., trade association, governmental entity, bank, etc.) if that entity digitally signedBIOS certificate 181 of FIG. 1. Theroot certification key 527 is needed for certificate verification purposes. - Referring still to FIG. 5,
first IC device 500 islogic circuitry 510 including a small amount ofnon-volatile memory 515.Logic circuitry 510 includes aprocessor 511, an optional random number generator 512 (as denoted by dashed lines) and abus control unit 513. If implemented,random number generator 512 would generate the initial values used to produce key(s) contained withincryptographic device 410. Thebus control unit 513 provides an interface to control the transfer of information betweencryptographic device 410 andhost processor 400 of FIG. 4 through dedicatedprocessor bus 420. - Referring now to FIGS. 6A and 6B, a flowchart is provided which illustrates the operations of an embodiment of the electronic system used for verification of BIOS code to determine whether the BIOS code has been illicitly modified. If so, execution by the host processor is prevented.
- As shown in
blocks - In response to a power-on system reset (block615), both the host processor and the cryptographic device begin their respective internal initialization (block 620). Each hardware device begins execution of internally stored microcode. After completion of its internal initialization, the host processor initiates an instruction fetch to a predetermined address that is mapped to the address range of internal memory of the cryptographic device (block 625). If the cryptographic device has not completed its internal initialization, the instruction fetch by the host processor is delayed by the cryptographic device until its internal initialization has completed (
blocks 630 and 635). A technique for delaying access by the host processor includes transmission of a JUMP-to-SELF instruction back to the host processor, or insertion of wait states as shown. - Upon completing a successful internal initialization, the cryptographic device responds to the instruction fetch with a first instruction, typically a MOV instruction, from the predetermined memory location in its internal memory525 (block 640). The MOV instruction includes, as an operand, an address falling in an address range of a legacy platform BIOS device (storage device 170 1 of FIG. 1). Upon receiving the MOV instruction, the host processor initiates a data read cycle on a front side bus with the memory address of the BIOS device provided with the MOV instruction from the cryptographic device (block 645).
- In order to maintain compatibility with legacy memory controller hub and I/O controller hub devices, this data cycle is configured to appear as an instruction fetch cycle. This is accomplished by placing the host processor into a CHECK mode by setting an opcode fetch emulation bit. Herein, the architecture of the host processor includes the opcode fetch emulation bit that defaults to a “SET” state after a power-on reset. Upon detecting that the opcode fetch emulation bit is set, the host processor deasserts a data/control (D/C#) control line so that the data fetch appears to the chipset as an instruction fetch.
- In
block 650, the bytes read from the BIOS device are then transferred to the cryptographic device. The acts performed in blocks 640-650 are part of an iterative process which continues until the BIOS code, BIOS certificate and BIOS signature are retrieved from the BIOS device (block 655) under control of further instructions provided to the host processor by the cryptographic device. As a result, during this iterative process, the host processor temporarily operates effectively as a Direct Memory Access (DMA) device between the BIOS device and the cryptographic device. - Concurrent or subsequent to this data transfer, within the cryptographic device, the BIOS certificate is decrypted using the root certification key (block660). This operation is performed to retrieve a public key of the signatory of the BIOS signature (e.g., BIOS vendor). Then, the preloaded digest signature is decrypted using the public key of the BIOS vendor, for example, to recover a pre-loaded digest (block 665). After recovering the pre-loaded digest, the BIOS code is read and undergoes the one-way hash function to produce a resultant digest (block 670). The resultant digest is compared to the pre-loaded digest (block 675). If no match occurs, the host processor is precluded from continuing its boot procedure (
blocks 680 and 685). However, if there is a match, the BIOS code has been authenticated as valid. - As an alternative, it is contemplated that the pre-loaded digest may be a one-way hash of a portion of the BIOS code. Then, only a predetermined portion of the BIOS code needs to be read into the cryptographic device. However, this technique may be less secure than the technique discussed above.
- Once the BIOS code has been authenticated, the cryptographic device generates a soft reset to the host processor (block690). In this embodiment, the soft reset may occur through activation of a predetermined signal line. This soft reset causes the opcode fetch emulation bit to be reset, which signals the host processor to begin execution at the standard legacy reset vector to fetch its first instruction from the BIOS device to perform a normal boot procedure. In lieu of using signal line(s), as an alternative, successive software instructions may be used to reset the opcode fetch emulation bit and to jump to a particular address for the legacy reset vector.
- After the opcode fetch emulation bit has been reset and execution of the legacy reset vector begins, the electronic system continues its normal boot procedure (block695). An optional user authentication procedure may now be performed because the BIOS code has been authenticated.
- In summary, the above-described operations require only slight changes in the host processor architecture by inclusion of new initial instruction fetches to a predetermined address in the address range of internal memory within the cryptographic device, an optional implementation of an opcode fetch emulation bit to signal emulation of an instruction fetch when a data fetch is being performed by the host processor, and a soft reset. As a result, this architecture and procedure maintain backward compatibility with conventional electronic systems.
- While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.
Claims (22)
1. A system comprising:
a processor; and
a cryptographic device in communication with the processor, the cryptographic device to authenticate a software code, loaded into the cryptographic device during a boot procedure, before permitting the processor to execute the software code.
2. The system of claim 1 , wherein the software code includes a basic input output system (BIOS) code.
3. The system of claim 2 , wherein the cryptographic device includes
a first integrated circuit device including a memory to contain firmware and a public key of a certification authority; and
a second integrated circuit device including logic circuitry to execute the firmware to authenticate the BIOS code loaded therein.
4. The system of claim 3 , wherein the first integrated circuit device and the second integrated circuit device are packaged in a multi-chip package.
5. The system of claim 1 , wherein the processor and the cryptographic device are mounted on a processor substrate including an inline connector.
6. The system of claim 1 , wherein the cryptographic device is connected to the processor through a dedicated bus.
7. The system of claim 2 further comprising a storage device in communication with the processor, the storage device including the BIOS code.
8. The system of claim 7 , wherein the storage device further including a BIOS certificate and a BIOS signature.
9. The system of claim 8 , wherein the processor including an opcode fetch emulation bit defaulting to a set state during a power-on reset condition, the opcode fetch emulation bit in the set state causing the processor to disguise a data fetch to the storage device as an instruction fetch.
10. The system of claim 9 further comprising a chipset coupled between the processor and the storage device.
11. The system of claim 10 , wherein the opcode fetch emulation bit in the set state deactivates a data/control line routed between the chipset and the processor.
12. The system of claim 8 , wherein during a power-on reset condition, the processor initiates an instruction fetch to a predetermined address in the internal memory of the cryptographic device.
13. The system of claim 12 , wherein the cryptographic device responding to the instruction fetch by returning an instruction to the processor, the instruction preventing access to contents of the cryptographic device until the cryptographic device has been initialized.
14. The system of claim 12 , wherein the cryptographic device responding to the instruction fetch by returning an instruction to the processor, the instruction prompting the processor to initiate a data read cycle to the storage device.
15. The system of claim 14 , wherein the storage device provides the BIOS code to the processor for transfer to the cryptographic device in response to the data read cycle.
16. The system of claim 15 , wherein the cryptographic device generates and transmits a soft reset signal to the processor after the BIOS code has been authenticated through use of the BIOS certificate and the BIOS signature.
17. A system comprising:
processor means for execution of a plurality of macro-instructions fetched from a basic input output system (BIOS) code; and
cryptographic means for authenticating the BIOS code before execution by the processor means, the cryptographic means including
first integrated circuit means for storing information used for authentication of the BIOS code, the information including firmware and a root certification key, and
second integrated circuit means for executing the firmware to postpone the processor means from performing a boot procedure and to perform a self-initialization procedure and a self-verification procedure to authenticate the BIOS code.
18. A cryptographic device comprising:
a first integrated circuit device including a memory to contain firmware and a root certification key; and
a second integrated circuit device including logic circuitry to execute the firmware to authenticate BIOS code loaded into the first integrated circuit device before permitting execution of the BIOS code during a standard boot procedure.
19. The cryptographic device of claim 18 , wherein the first integrated circuit device and the second integrated circuit device are packaged in a multi-chip package.
20. The cryptographic device of claim 18 , wherein the second integrated circuit device responding to an instruction fetch by returning an instruction which prevents access to contents of the cryptographic device until internal initialization of the cryptographic device has completed.
21. The cryptographic device of claim 20 , wherein the cryptographic device responding to an instruction fetch by returning an instruction to a processor, the instruction causing the processor to initiate a data read cycle to a remote storage device.
22. A method comprising:
performing an instruction fetch to a predetermined address mapped to an internal memory of a cryptographic device during a power-on reset, the instruction fetch to occur before a boot procedure;
authenticating a basic input output system (BIOS) code during the power-on reset before permitting the BIOS code to be executed; and
generating a soft reset by the cryptographic device to enable the boot procedure to proceed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/118,147 US6401208B2 (en) | 1998-07-17 | 1998-07-17 | Method for BIOS authentication prior to BIOS execution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/118,147 US6401208B2 (en) | 1998-07-17 | 1998-07-17 | Method for BIOS authentication prior to BIOS execution |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020004905A1 true US20020004905A1 (en) | 2002-01-10 |
US6401208B2 US6401208B2 (en) | 2002-06-04 |
Family
ID=22376749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/118,147 Expired - Lifetime US6401208B2 (en) | 1998-07-17 | 1998-07-17 | Method for BIOS authentication prior to BIOS execution |
Country Status (1)
Country | Link |
---|---|
US (1) | US6401208B2 (en) |
Cited By (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126462A1 (en) * | 2002-01-02 | 2003-07-03 | Tom Howard | System and method for preventing use of a wireless device |
US20030208338A1 (en) * | 2002-05-03 | 2003-11-06 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
WO2004034238A2 (en) * | 2002-10-09 | 2004-04-22 | Intel Corporation | Encapsulation of a tcpa trusted platform module functionality within a server management coprocessor subsystem |
WO2005026951A1 (en) * | 2003-09-18 | 2005-03-24 | Aristocrat Technologies Australia Pty Ltd | Bios protection device |
US20050172206A1 (en) * | 2003-01-27 | 2005-08-04 | Andrew Hana | DDS logical data grouping |
GB2415521A (en) * | 2004-05-25 | 2005-12-28 | Hewlett Packard Development Co | Creating a trusted environment in a mobile computing platform |
US20060059345A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
US20060064582A1 (en) * | 2004-09-13 | 2006-03-23 | Coretrace Corporation | Method and system for license management |
EP1643405A1 (en) * | 2004-09-29 | 2006-04-05 | Robert Bosch Gmbh | tamper-proof microprocessor system and method of operation thereof |
EP1679632A2 (en) * | 2005-01-07 | 2006-07-12 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
US20060294513A1 (en) * | 2005-06-22 | 2006-12-28 | Hagai Bar-El | System, device, and method of selectively allowing a host processor to access host-executable code |
EP1523203A3 (en) * | 2003-10-10 | 2007-06-06 | Texas Instruments Incorporated | Device bound flashing/booting for cloning prevention |
EP1845470A1 (en) * | 2006-04-13 | 2007-10-17 | STMicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
US20070245142A1 (en) * | 2006-04-13 | 2007-10-18 | Rios Jennifer E | Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS |
US7309004B1 (en) * | 2002-12-26 | 2007-12-18 | Diebold Self-Service Systems, Division Of Diebold, Incorporated | Cash dispensing automated banking machine firmware authentication system and method |
CN100356351C (en) * | 2002-11-21 | 2007-12-19 | 国际商业机器公司 | System and method for code authentication |
US20080214309A1 (en) * | 2003-03-10 | 2008-09-04 | Cyberview Technology, Inc. | Dynamic configuration of a gaming system |
EP1975836A3 (en) * | 2007-03-30 | 2008-11-26 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US20080298581A1 (en) * | 2007-05-29 | 2008-12-04 | Masana Murase | Application-Specific Secret Generation |
US20080301440A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Updateable Secure Kernel Extensions |
US20080301469A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Cryptographically-enabled Privileged Mode Execution |
US20090064316A1 (en) * | 2007-08-27 | 2009-03-05 | Wen-Hsin Liao | Method and Apparatus for Enhancing Information Security in a Computer System |
US20090070885A1 (en) * | 2006-03-09 | 2009-03-12 | Mstar Semiconductor, Inc. | Integrity Protection |
US20090089579A1 (en) * | 2007-10-02 | 2009-04-02 | Masana Murase | Secure Policy Differentiation by Secure Kernel Design |
US20090113212A1 (en) * | 2007-10-30 | 2009-04-30 | International Business Machines Corporation | Multiprocessor electronic circuit including a plurality of processors and electronic data processing system |
US7565553B2 (en) | 2005-01-14 | 2009-07-21 | Microsoft Corporation | Systems and methods for controlling access to data on a computer with a secure boot process |
US20090285280A1 (en) * | 2005-11-29 | 2009-11-19 | Thomas Patrick Newberry | Method and Apparatus for Securing Digital Content |
US20100031402A1 (en) * | 2008-07-31 | 2010-02-04 | Shigeru Wakiyama | Probe aligning method for probe microscope and probe microscope operated by the same |
US20110270417A1 (en) * | 2010-04-28 | 2011-11-03 | Kabushiki Kaisha Toshiba | Control system and control method |
GB2508251A (en) * | 2012-01-19 | 2014-05-28 | Quixant Plc | Preventing tampering of device firmware by validation before boot |
US20140274068A1 (en) * | 2013-03-15 | 2014-09-18 | Herbert DAWID | Mobile terminal and method for determining a receive window |
CN104219049A (en) * | 2013-05-29 | 2014-12-17 | 通用汽车环球科技运作有限责任公司 | Methods to improve secure flash programming |
US20150134974A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Apparatus and method for securing bios in a trusted computing system |
US20150134977A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Partition-based apparatus and method for securing bios in a trusted computing system during execution |
US20150134975A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Secure bios mechanism in a trusted computing system |
US9053317B2 (en) | 2013-02-28 | 2015-06-09 | Winbond Electronics Corporation | Nonvolatile memory device having authentication, and methods of operation and manufacture thereof |
US9183394B2 (en) | 2013-11-13 | 2015-11-10 | Via Technologies, Inc. | Secure BIOS tamper protection mechanism |
CN105159808A (en) * | 2015-09-21 | 2015-12-16 | 无锡中太服务器有限公司 | Method for auditing basic input/output system (BIOS) |
CN105550586A (en) * | 2014-10-30 | 2016-05-04 | 北京京航计算通讯研究所 | Trusted boot design method applicable to DSP environment |
WO2016109580A1 (en) * | 2014-12-30 | 2016-07-07 | Data I/O Corporation | Automated manufacturing system with adapter security mechanism and method of manufacture thereof |
US9547767B2 (en) | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US20170046514A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US20170046515A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Jtag-based secure bios mechanism in a trusted computing system |
US20170046517A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US20170046516A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism in a trusted computing system |
US9600291B1 (en) * | 2013-03-14 | 2017-03-21 | Altera Corporation | Secure boot using a field programmable gate array (FPGA) |
WO2017058225A1 (en) * | 2015-09-30 | 2017-04-06 | Hewlett-Packard Development Company, L.P. | Runtime verification using external device |
US20170140152A1 (en) * | 2014-10-13 | 2017-05-18 | Microsoft Technology Licensing, Llc | Identifying Security Boundaries on Computing Devices |
US10049217B2 (en) | 2013-11-13 | 2018-08-14 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US10055588B2 (en) | 2013-11-13 | 2018-08-21 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US10095868B2 (en) | 2013-11-13 | 2018-10-09 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
CN111373404A (en) * | 2017-09-19 | 2020-07-03 | 惠普发展公司,有限责任合伙企业 | Cryptographic key security |
US10776131B2 (en) | 2018-08-30 | 2020-09-15 | Dell Products, L.P. | Method and apparatus for UEFI firmware boot journal recording |
CN112555029A (en) * | 2019-09-26 | 2021-03-26 | 通用电气公司 | Apparatus, system, and method for securely initializing an embedded system |
US11003780B2 (en) | 2018-08-03 | 2021-05-11 | Dell Products L.P. | Method and apparatus for validating BIOS firmware using a baseboard management controller |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775778B1 (en) * | 1998-05-29 | 2004-08-10 | Texas Instruments Incorporated | Secure computing device having boot read only memory verification of program code |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US7174457B1 (en) * | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
US20050060549A1 (en) * | 1998-10-26 | 2005-03-17 | Microsoft Corporation | Controlling access to content based on certificates and access predicates |
US6571335B1 (en) * | 1999-04-01 | 2003-05-27 | Intel Corporation | System and method for authentication of off-chip processor firmware code |
US7127605B1 (en) * | 1999-05-10 | 2006-10-24 | Axalto, Inc. | Secure sharing of application methods on a microcontroller |
EP1063589A1 (en) * | 1999-06-25 | 2000-12-27 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Device for processing data and corresponding method |
AUPQ321699A0 (en) * | 1999-09-30 | 1999-10-28 | Aristocrat Leisure Industries Pty Ltd | Gaming security system |
TW452733B (en) * | 1999-11-26 | 2001-09-01 | Inventec Corp | Method for preventing BIOS from viruses infection |
US6581159B1 (en) * | 1999-12-23 | 2003-06-17 | Intel Corporation | Secure method of updating bios by using a simply authenticated external module to further validate new firmware code |
US6732261B2 (en) | 1999-12-30 | 2004-05-04 | Intel Corporation | Method and apparatus for implementing a register scan process |
US6785806B1 (en) | 1999-12-30 | 2004-08-31 | Intel Corporation | Bios having macro/effector pairs for hardware initialization |
US6594663B2 (en) | 1999-12-30 | 2003-07-15 | Intel Corporation | Method and apparatus for implementing and maintaining a configuration database |
US6629192B1 (en) | 1999-12-30 | 2003-09-30 | Intel Corporation | Method and apparatus for use of a non-volatile storage management system for PC/AT compatible system firmware |
EP1118924B1 (en) * | 2000-01-19 | 2016-07-20 | Infineon Technologies AG | Microprocessor system and method of operation |
DE10002203B4 (en) * | 2000-01-19 | 2009-12-10 | Robert Bosch Gmbh | Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system |
US6584559B1 (en) * | 2000-01-28 | 2003-06-24 | Avaya Technology Corp. | Firmware download scheme for high-availability systems |
US7988559B2 (en) | 2001-03-08 | 2011-08-02 | Igt | Computerized gaming system, method and apparatus |
CA2402389A1 (en) * | 2000-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
US7043641B1 (en) | 2000-03-08 | 2006-05-09 | Igt | Encryption in a secure computerized gaming system |
US7073064B1 (en) * | 2000-03-31 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus to provide enhanced computer protection |
US6625730B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine |
US6669487B1 (en) * | 2000-04-28 | 2003-12-30 | Hitachi, Ltd. | IC card |
US6928548B1 (en) * | 2000-09-29 | 2005-08-09 | Intel Corporation | System and method for verifying the integrity of stored information within an electronic device |
US7036023B2 (en) * | 2001-01-19 | 2006-04-25 | Microsoft Corporation | Systems and methods for detecting tampering of a computer system by calculating a boot signature |
US20020124170A1 (en) * | 2001-03-02 | 2002-09-05 | Johnson William S. | Secure content system and method |
US7203841B2 (en) * | 2001-03-08 | 2007-04-10 | Igt | Encryption in a secure computerized gaming system |
US20020144104A1 (en) * | 2001-04-02 | 2002-10-03 | Springfield Randall Scott | Method and system for providing a trusted flash boot source |
DE10131575A1 (en) * | 2001-07-02 | 2003-01-16 | Bosch Gmbh Robert | Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system |
US20030009681A1 (en) * | 2001-07-09 | 2003-01-09 | Shunji Harada | Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus |
US7210134B1 (en) | 2001-09-06 | 2007-04-24 | Sonic Solutions | Deterring reverse-engineering of software systems by randomizing the siting of stack-based data |
US20070277037A1 (en) * | 2001-09-06 | 2007-11-29 | Randy Langer | Software component authentication via encrypted embedded self-signatures |
CA2460046C (en) | 2001-09-10 | 2014-06-10 | Igt | Method for developing gaming programs compatible with a computerized gaming operating system and apparatus |
US8708828B2 (en) | 2001-09-28 | 2014-04-29 | Igt | Pluggable modular gaming modifiers and configuration templates for gaming environments |
US7931533B2 (en) | 2001-09-28 | 2011-04-26 | Igt | Game development architecture that decouples the game logic from the graphics logics |
US6902481B2 (en) | 2001-09-28 | 2005-06-07 | Igt | Decoupling of the graphical presentation of a game from the presentation logic |
AU2002362027B2 (en) * | 2001-11-26 | 2007-08-16 | Igt | Pass-through live validation device and method |
US20030126454A1 (en) * | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US20030135744A1 (en) * | 2002-01-11 | 2003-07-17 | International Business Machines Corporation | Method and system for programming a non-volatile device in a data processing system |
JP3863447B2 (en) * | 2002-03-08 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Authentication system, firmware device, electrical device, and authentication method |
US7487365B2 (en) * | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
US7890771B2 (en) * | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US6907522B2 (en) * | 2002-06-07 | 2005-06-14 | Microsoft Corporation | Use of hashing in a secure boot loader |
US20040015709A1 (en) * | 2002-07-18 | 2004-01-22 | Bei-Chuan Chen | Software delivery device and method for providing software copy protection |
US7412053B1 (en) | 2002-10-10 | 2008-08-12 | Silicon Image, Inc. | Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test |
US8784195B1 (en) | 2003-03-05 | 2014-07-22 | Bally Gaming, Inc. | Authentication system for gaming machines |
US7240201B2 (en) * | 2003-08-01 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus to provide secure communication between systems |
US7228432B2 (en) * | 2003-09-11 | 2007-06-05 | Angelo Michael F | Method and apparatus for providing security for a computer system |
AU2012245181B2 (en) * | 2003-09-18 | 2016-02-11 | Aristocrat Technologies Australia Pty Limited | Bios protection device |
US7681046B1 (en) | 2003-09-26 | 2010-03-16 | Andrew Morgan | System with secure cryptographic capabilities using a hardware specific digital secret |
US7694151B1 (en) | 2003-11-20 | 2010-04-06 | Johnson Richard C | Architecture, system, and method for operating on encrypted and/or hidden information |
US7600132B1 (en) * | 2003-12-19 | 2009-10-06 | Adaptec, Inc. | System and method for authentication of embedded RAID on a motherboard |
US20050138409A1 (en) * | 2003-12-22 | 2005-06-23 | Tayib Sheriff | Securing an electronic device |
US20050177724A1 (en) * | 2004-01-16 | 2005-08-11 | Valiuddin Ali | Authentication system and method |
US7930503B2 (en) * | 2004-01-26 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for operating multiple security modules |
US7382880B2 (en) * | 2004-01-26 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for initializing multiple security modules |
US7836219B1 (en) * | 2004-02-10 | 2010-11-16 | Pmc-Sierra Us, Inc. | System and method for authentication of embedded RAID on a host RAID card |
US9589117B2 (en) * | 2004-02-17 | 2017-03-07 | Hewlett-Packard Development Company, L.P. | Computer security system and method |
US7581111B2 (en) * | 2004-02-17 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | System, method and apparatus for transparently granting access to a selected device using an automatically generated credential |
US20060020810A1 (en) * | 2004-07-24 | 2006-01-26 | International Business Machines Corporation | System and method for software load authentication |
US7757294B1 (en) | 2004-08-27 | 2010-07-13 | Xilinx, Inc. | Method and system for maintaining the security of design information |
US20060048222A1 (en) * | 2004-08-27 | 2006-03-02 | O'connor Clint H | Secure electronic delivery seal for information handling system |
US20060059363A1 (en) * | 2004-09-16 | 2006-03-16 | Mese John C | Method for controlling access to a computerized device |
US7730326B2 (en) * | 2004-11-12 | 2010-06-01 | Apple Inc. | Method and system for updating firmware stored in non-volatile memory |
US8281132B2 (en) * | 2004-11-29 | 2012-10-02 | Broadcom Corporation | Method and apparatus for security over multiple interfaces |
US7793347B2 (en) * | 2005-02-07 | 2010-09-07 | Rozas Guillermo J | Method and system for validating a computer system |
US20060179308A1 (en) * | 2005-02-07 | 2006-08-10 | Andrew Morgan | System and method for providing a secure boot architecture |
US7788502B1 (en) | 2005-03-10 | 2010-08-31 | Xilinx, Inc. | Method and system for secure exchange of IP cores |
US7971072B1 (en) | 2005-03-10 | 2011-06-28 | Xilinx, Inc. | Secure exchange of IP cores |
US8972743B2 (en) * | 2005-05-16 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Computer security system and method |
US8639946B2 (en) | 2005-06-24 | 2014-01-28 | Sigmatel, Inc. | System and method of using a protected non-volatile memory |
US7496727B1 (en) | 2005-12-06 | 2009-02-24 | Transmeta Corporation | Secure memory access system and method |
DE602006005220D1 (en) * | 2006-03-06 | 2009-04-02 | St Microelectronics Res & Dev | circuit safety |
US20070235517A1 (en) * | 2006-03-30 | 2007-10-11 | O'connor Clint H | Secure digital delivery seal for information handling system |
US7730293B2 (en) * | 2006-10-26 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Hard disk drive self-test system and method |
JP4227641B2 (en) * | 2006-11-20 | 2009-02-18 | キヤノン株式会社 | Information processing apparatus and information processing apparatus control method |
KR101427646B1 (en) * | 2007-05-14 | 2014-09-23 | 삼성전자주식회사 | Firmware integrity check method and device |
US20090089588A1 (en) * | 2007-09-28 | 2009-04-02 | Farid Adrangi | Method and apparatus for providing anti-theft solutions to a computing system |
KR20090037712A (en) * | 2007-10-12 | 2009-04-16 | 삼성전자주식회사 | Secure boot-up electronic device, its hash value calculation method and boot-up method |
US20090172639A1 (en) * | 2007-12-27 | 2009-07-02 | Mahesh Natu | Firmware integrity verification |
US20090172420A1 (en) * | 2007-12-31 | 2009-07-02 | Kabushiki Kaisha Toshiba | Tamper resistant method and apparatus for a storage device |
TWI360077B (en) * | 2008-02-19 | 2012-03-11 | Asustek Comp Inc | Update method of basic input output system and upd |
CN101650658A (en) * | 2008-08-14 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | Method for implementing system assistant activation technique |
US8281229B2 (en) * | 2008-12-30 | 2012-10-02 | Intel Corporation | Firmware verification using system memory error check logic |
US8694761B2 (en) * | 2008-12-31 | 2014-04-08 | Vincent Zimmer | System and method to secure boot both UEFI and legacy option ROM's with common policy engine |
US20110055534A1 (en) * | 2009-08-26 | 2011-03-03 | Chung Chieh-Fu | Management Method for Security of Computer Device |
US9015455B2 (en) * | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
EP2791849A4 (en) * | 2011-12-15 | 2015-08-19 | Intel Corp | Method, device, and system for protecting and securely delivering media content |
CN104094267B (en) | 2011-12-15 | 2020-04-07 | 英特尔公司 | Method, apparatus and system for secure sharing of media content from a source device |
PL2792100T3 (en) | 2011-12-15 | 2021-03-22 | Intel Corporation | Method and device for secure communications over a network using a hardware security engine |
US9548867B2 (en) * | 2013-11-26 | 2017-01-17 | Rockwell Automation Technologies, Inc. | Method and apparatus for secure distribution of embedded firmware |
US9749141B2 (en) | 2015-09-25 | 2017-08-29 | Qualcomm Incorporated | Secure boot devices, systems, and methods |
US10346343B2 (en) * | 2016-06-24 | 2019-07-09 | Intel Corporation | Hardware accelerator for platform firmware integrity check |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276853A (en) * | 1987-05-18 | 1994-01-04 | Fujitsu Limited | Cache system |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5444850A (en) * | 1993-08-04 | 1995-08-22 | Trend Micro Devices Incorporated | Method and apparatus for controlling network and workstation access prior to workstation boot |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5835594A (en) * | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5844986A (en) * | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5828753A (en) | 1996-10-25 | 1998-10-27 | Intel Corporation | Circuit and method for ensuring interconnect security within a multi-chip integrated circuit package |
US5919257A (en) * | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
US6009524A (en) * | 1997-08-29 | 1999-12-28 | Compact Computer Corp | Method for the secure remote flashing of a BIOS memory |
US6061794A (en) * | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
-
1998
- 1998-07-17 US US09/118,147 patent/US6401208B2/en not_active Expired - Lifetime
Cited By (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126462A1 (en) * | 2002-01-02 | 2003-07-03 | Tom Howard | System and method for preventing use of a wireless device |
US7496957B2 (en) * | 2002-01-02 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | System and method for preventing use of a wireless device |
US6782349B2 (en) * | 2002-05-03 | 2004-08-24 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
US20030208338A1 (en) * | 2002-05-03 | 2003-11-06 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
US7216369B2 (en) * | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
CN100339782C (en) * | 2002-10-09 | 2007-09-26 | 英特尔公司 | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
GB2410819A (en) * | 2002-10-09 | 2005-08-10 | Intel Corp | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
WO2004034238A2 (en) * | 2002-10-09 | 2004-04-22 | Intel Corporation | Encapsulation of a tcpa trusted platform module functionality within a server management coprocessor subsystem |
GB2410819B (en) * | 2002-10-09 | 2006-04-19 | Intel Corp | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
WO2004034238A3 (en) * | 2002-10-09 | 2004-12-29 | Intel Corp | Encapsulation of a tcpa trusted platform module functionality within a server management coprocessor subsystem |
US7200758B2 (en) | 2002-10-09 | 2007-04-03 | Intel Corporation | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
CN100356351C (en) * | 2002-11-21 | 2007-12-19 | 国际商业机器公司 | System and method for code authentication |
US7309004B1 (en) * | 2002-12-26 | 2007-12-18 | Diebold Self-Service Systems, Division Of Diebold, Incorporated | Cash dispensing automated banking machine firmware authentication system and method |
US7988039B1 (en) | 2002-12-26 | 2011-08-02 | Diebold Self-Service Systems Division Of Diebold, Incorporated | Card activated cash dispensing automated banking machine firmware authentication system |
US8342395B1 (en) * | 2002-12-26 | 2013-01-01 | Diebold Self-Service Systems | Card activated cash dispensing automated banking machine |
US20050172206A1 (en) * | 2003-01-27 | 2005-08-04 | Andrew Hana | DDS logical data grouping |
US7831869B2 (en) * | 2003-01-27 | 2010-11-09 | Hewlett-Packard Development Company, L.P. | DDS logical data grouping |
US20080214309A1 (en) * | 2003-03-10 | 2008-09-04 | Cyberview Technology, Inc. | Dynamic configuration of a gaming system |
US8924699B2 (en) * | 2003-09-18 | 2014-12-30 | Aristocrat Technologies Australia Pty Ltd | BIOS protection device |
US8533442B2 (en) | 2003-09-18 | 2013-09-10 | Aristocrat Technologies Australia Pty Ltd. | BIOS protection device |
US7464256B2 (en) | 2003-09-18 | 2008-12-09 | Aristocrat Technologies Australia Pty. Limited | Bios protection device preventing execution of a boot program stored in the bios memory until the boot program is authenticated |
US20090182995A1 (en) * | 2003-09-18 | 2009-07-16 | Aristocrat Technologies Australia Pty Limited | Bios protection device |
US20070130452A1 (en) * | 2003-09-18 | 2007-06-07 | Muir Robert L | Bios protection device |
WO2005026951A1 (en) * | 2003-09-18 | 2005-03-24 | Aristocrat Technologies Australia Pty Ltd | Bios protection device |
CN1606374B (en) * | 2003-10-10 | 2011-11-23 | 得州仪器公司 | Method and device bound flashing/booting for cloning prevention |
TWI416932B (en) * | 2003-10-10 | 2013-11-21 | Texas Instruments Inc | Device for preventing copying combined with flash/boot technology |
EP1523203A3 (en) * | 2003-10-10 | 2007-06-06 | Texas Instruments Incorporated | Device bound flashing/booting for cloning prevention |
CN102196433A (en) * | 2003-10-10 | 2011-09-21 | 得州仪器公司 | Method for cloning prevention of mobile communication device and mobile communication device |
GB2415521A (en) * | 2004-05-25 | 2005-12-28 | Hewlett Packard Development Co | Creating a trusted environment in a mobile computing platform |
US7818574B2 (en) * | 2004-09-10 | 2010-10-19 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
US20060059345A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
US7711952B2 (en) | 2004-09-13 | 2010-05-04 | Coretrace Corporation | Method and system for license management |
US20100318789A1 (en) * | 2004-09-13 | 2010-12-16 | Teal Richard S | Method and system for license management |
US20060064582A1 (en) * | 2004-09-13 | 2006-03-23 | Coretrace Corporation | Method and system for license management |
US20060107133A1 (en) * | 2004-09-29 | 2006-05-18 | Holger Ceskutti | Tampering-protected microprocessor system and operating procedure for same |
EP1643405A1 (en) * | 2004-09-29 | 2006-04-05 | Robert Bosch Gmbh | tamper-proof microprocessor system and method of operation thereof |
KR101219857B1 (en) | 2005-01-07 | 2013-01-10 | 마이크로소프트 코포레이션 | Systems and methods for securely booting a computer with a trusted processing module |
EP3125149A1 (en) * | 2005-01-07 | 2017-02-01 | Microsoft Technology Licensing, LLC | Systems and methods for securely booting a computer with a trusted processing module |
US20060155988A1 (en) * | 2005-01-07 | 2006-07-13 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
EP1679632A2 (en) * | 2005-01-07 | 2006-07-12 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
EP1679632A3 (en) * | 2005-01-07 | 2006-08-02 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
US7725703B2 (en) | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
US7565553B2 (en) | 2005-01-14 | 2009-07-21 | Microsoft Corporation | Systems and methods for controlling access to data on a computer with a secure boot process |
US7467304B2 (en) * | 2005-06-22 | 2008-12-16 | Discretix Technologies Ltd. | System, device, and method of selectively allowing a host processor to access host-executable code |
US20060294513A1 (en) * | 2005-06-22 | 2006-12-28 | Hagai Bar-El | System, device, and method of selectively allowing a host processor to access host-executable code |
WO2006137073A2 (en) * | 2005-06-22 | 2006-12-28 | Discretix Technologies Ltd. | System, device, and method of selectively allowing a host processor to access host-executable code |
WO2006137073A3 (en) * | 2005-06-22 | 2007-11-15 | Discretix Technologies Ltd | System, device, and method of selectively allowing a host processor to access host-executable code |
US20090285280A1 (en) * | 2005-11-29 | 2009-11-19 | Thomas Patrick Newberry | Method and Apparatus for Securing Digital Content |
US20090070885A1 (en) * | 2006-03-09 | 2009-03-12 | Mstar Semiconductor, Inc. | Integrity Protection |
US8060732B2 (en) * | 2006-04-13 | 2011-11-15 | Stmicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
EP1845470A1 (en) * | 2006-04-13 | 2007-10-17 | STMicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
US20070245142A1 (en) * | 2006-04-13 | 2007-10-18 | Rios Jennifer E | Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS |
US8019994B2 (en) | 2006-04-13 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS |
US20070283140A1 (en) * | 2006-04-13 | 2007-12-06 | Stmicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
EP1975836A3 (en) * | 2007-03-30 | 2008-11-26 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US8433927B2 (en) | 2007-05-29 | 2013-04-30 | International Business Machines Corporation | Cryptographically-enabled privileged mode execution |
US20080298581A1 (en) * | 2007-05-29 | 2008-12-04 | Masana Murase | Application-Specific Secret Generation |
US20080301469A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Cryptographically-enabled Privileged Mode Execution |
US8332635B2 (en) | 2007-05-29 | 2012-12-11 | International Business Machines Corporation | Updateable secure kernel extensions |
US8422674B2 (en) | 2007-05-29 | 2013-04-16 | International Business Machines Corporation | Application-specific secret generation |
US20080301440A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Updateable Secure Kernel Extensions |
US20090064316A1 (en) * | 2007-08-27 | 2009-03-05 | Wen-Hsin Liao | Method and Apparatus for Enhancing Information Security in a Computer System |
US20090089579A1 (en) * | 2007-10-02 | 2009-04-02 | Masana Murase | Secure Policy Differentiation by Secure Kernel Design |
WO2009043744A1 (en) * | 2007-10-02 | 2009-04-09 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
US8332636B2 (en) | 2007-10-02 | 2012-12-11 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
US8135960B2 (en) * | 2007-10-30 | 2012-03-13 | International Business Machines Corporation | Multiprocessor electronic circuit including a plurality of processors and electronic data processing system |
US20090113212A1 (en) * | 2007-10-30 | 2009-04-30 | International Business Machines Corporation | Multiprocessor electronic circuit including a plurality of processors and electronic data processing system |
US20100031402A1 (en) * | 2008-07-31 | 2010-02-04 | Shigeru Wakiyama | Probe aligning method for probe microscope and probe microscope operated by the same |
US8495759B2 (en) * | 2008-07-31 | 2013-07-23 | Sii Nanotechnology Inc. | Probe aligning method for probe microscope and probe microscope operated by the same |
US8483847B2 (en) * | 2010-04-28 | 2013-07-09 | Kabushiki Kaisha Toshiba | Control system and control method |
US20110270417A1 (en) * | 2010-04-28 | 2011-11-03 | Kabushiki Kaisha Toshiba | Control system and control method |
GB2508251B (en) * | 2012-01-19 | 2020-01-15 | Quixant Plc | Firmware protection and validation |
US8971144B2 (en) | 2012-01-19 | 2015-03-03 | Quixant Plc | Hardware write-protection |
US10762210B2 (en) | 2012-01-19 | 2020-09-01 | Quixant Plc | Firmware protection and validation |
US9666241B2 (en) | 2012-01-19 | 2017-05-30 | Quixant Plc | Firmware protection and validation |
GB2508251A (en) * | 2012-01-19 | 2014-05-28 | Quixant Plc | Preventing tampering of device firmware by validation before boot |
US9053317B2 (en) | 2013-02-28 | 2015-06-09 | Winbond Electronics Corporation | Nonvolatile memory device having authentication, and methods of operation and manufacture thereof |
US9348995B2 (en) | 2013-02-28 | 2016-05-24 | Winbond Electronics Corporation | Nonvolatile memory device having authentication, and methods of operation and manufacture thereof |
US9600291B1 (en) * | 2013-03-14 | 2017-03-21 | Altera Corporation | Secure boot using a field programmable gate array (FPGA) |
US20140274068A1 (en) * | 2013-03-15 | 2014-09-18 | Herbert DAWID | Mobile terminal and method for determining a receive window |
CN104219049A (en) * | 2013-05-29 | 2014-12-17 | 通用汽车环球科技运作有限责任公司 | Methods to improve secure flash programming |
US9507942B2 (en) * | 2013-11-13 | 2016-11-29 | Via Technologies, Inc. | Secure BIOS mechanism in a trusted computing system |
US9805198B2 (en) | 2013-11-13 | 2017-10-31 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9367689B2 (en) * | 2013-11-13 | 2016-06-14 | Via Technologies, Inc. | Apparatus and method for securing BIOS in a trusted computing system |
US20150134974A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Apparatus and method for securing bios in a trusted computing system |
US20150134977A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Partition-based apparatus and method for securing bios in a trusted computing system during execution |
US9547767B2 (en) | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9183394B2 (en) | 2013-11-13 | 2015-11-10 | Via Technologies, Inc. | Secure BIOS tamper protection mechanism |
US20170046514A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US20170046515A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Jtag-based secure bios mechanism in a trusted computing system |
US20170046517A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US20170046516A1 (en) * | 2013-11-13 | 2017-02-16 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism in a trusted computing system |
US9129113B2 (en) * | 2013-11-13 | 2015-09-08 | Via Technologies, Inc. | Partition-based apparatus and method for securing bios in a trusted computing system during execution |
US10095868B2 (en) | 2013-11-13 | 2018-10-09 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US10089470B2 (en) | 2013-11-13 | 2018-10-02 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US20150134975A1 (en) * | 2013-11-13 | 2015-05-14 | Via Technologies, Inc. | Secure bios mechanism in a trusted computing system |
US9767288B2 (en) * | 2013-11-13 | 2017-09-19 | Via Technologies, Inc. | JTAG-based secure BIOS mechanism in a trusted computing system |
US9779243B2 (en) * | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US9779242B2 (en) * | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US9798880B2 (en) * | 2013-11-13 | 2017-10-24 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US10055588B2 (en) | 2013-11-13 | 2018-08-21 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US10049217B2 (en) | 2013-11-13 | 2018-08-14 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9836609B2 (en) | 2013-11-13 | 2017-12-05 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9836610B2 (en) | 2013-11-13 | 2017-12-05 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US9910991B2 (en) | 2013-11-13 | 2018-03-06 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US20170140152A1 (en) * | 2014-10-13 | 2017-05-18 | Microsoft Technology Licensing, Llc | Identifying Security Boundaries on Computing Devices |
US10229272B2 (en) * | 2014-10-13 | 2019-03-12 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
CN105550586A (en) * | 2014-10-30 | 2016-05-04 | 北京京航计算通讯研究所 | Trusted boot design method applicable to DSP environment |
US9870487B2 (en) | 2014-12-30 | 2018-01-16 | Data I/O Corporation | Automated manufacturing system with adapter security mechanism and method of manufacture thereof |
CN107408191A (en) * | 2014-12-30 | 2017-11-28 | 数据输入输出公司 | Automated manufacturing system and its manufacture method with safety adapter mechanism |
WO2016109580A1 (en) * | 2014-12-30 | 2016-07-07 | Data I/O Corporation | Automated manufacturing system with adapter security mechanism and method of manufacture thereof |
CN105159808A (en) * | 2015-09-21 | 2015-12-16 | 无锡中太服务器有限公司 | Method for auditing basic input/output system (BIOS) |
WO2017058225A1 (en) * | 2015-09-30 | 2017-04-06 | Hewlett-Packard Development Company, L.P. | Runtime verification using external device |
US10867045B2 (en) * | 2015-09-30 | 2020-12-15 | Hewlett-Packard Development Company, L.P. | Runtime verification using external device |
CN111373404A (en) * | 2017-09-19 | 2020-07-03 | 惠普发展公司,有限责任合伙企业 | Cryptographic key security |
US11003780B2 (en) | 2018-08-03 | 2021-05-11 | Dell Products L.P. | Method and apparatus for validating BIOS firmware using a baseboard management controller |
US10776131B2 (en) | 2018-08-30 | 2020-09-15 | Dell Products, L.P. | Method and apparatus for UEFI firmware boot journal recording |
CN112555029A (en) * | 2019-09-26 | 2021-03-26 | 通用电气公司 | Apparatus, system, and method for securely initializing an embedded system |
Also Published As
Publication number | Publication date |
---|---|
US6401208B2 (en) | 2002-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6401208B2 (en) | Method for BIOS authentication prior to BIOS execution | |
US10931451B2 (en) | Securely recovering a computing device | |
US6633981B1 (en) | Electronic system and method for controlling access through user authentication | |
US10878101B2 (en) | Trusted booting by hardware root of trust (HRoT) device | |
US8560820B2 (en) | Single security model in booting a computing device | |
US7421588B2 (en) | Apparatus, system, and method for sealing a data repository to a trusted computing platform | |
US7313705B2 (en) | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory | |
US8826405B2 (en) | Trusting an unverified code image in a computing device | |
US11354417B2 (en) | Enhanced secure boot | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
US20080159541A1 (en) | Methods and apparatus for protecting data | |
US20090063108A1 (en) | Compatible trust in a computing device | |
US20110093693A1 (en) | Binding a cryptographic module to a platform | |
US9015454B2 (en) | Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys | |
EP1949288A1 (en) | Methods and systems for associating an embedded security chip with a computer | |
JP6735872B2 (en) | Computer system and method for initializing computer system | |
US7971048B2 (en) | System and method for establishing a trust domain on a computer platform | |
CN113656086A (en) | Method and electronic device for securely storing and loading firmware | |
US12105806B2 (en) | Securing communications with security processors using platform keys | |
TWI773146B (en) | Computing device and non-transitory tangible computer-readable medium comprising instructions for bios action request by an authorized application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DAVIS, DEREK L.;MEHTA, PRANAV;REEL/FRAME:009349/0597;SIGNING DATES FROM 19980630 TO 19980707 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |