US20080313453A1 - Boot Validation in Imaging Devices - Google Patents
Boot Validation in Imaging Devices Download PDFInfo
- Publication number
- US20080313453A1 US20080313453A1 US12/184,714 US18471408A US2008313453A1 US 20080313453 A1 US20080313453 A1 US 20080313453A1 US 18471408 A US18471408 A US 18471408A US 2008313453 A1 US2008313453 A1 US 2008313453A1
- Authority
- US
- United States
- Prior art keywords
- hash value
- boot code
- boot
- preprogrammed
- 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.)
- Abandoned
Links
- 238000010200 validation analysis Methods 0.000 title claims abstract description 54
- 238000003384 imaging method Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000007639 printing Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 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/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
Definitions
- the present invention relates to securely booting computer systems, and more particularly, to a boot validation system and method for use in an image forming device such as, for example, an electrophotographic printer, an inkjet printer, a fax device, a copier, an all-in-one device or a multipurpose device.
- an image forming device such as, for example, an electrophotographic printer, an inkjet printer, a fax device, a copier, an all-in-one device or a multipurpose device.
- Imaging devices such as printers, may include various security systems, for example, to protect billing information and/or to protect confidential customer data.
- mechanisms for achieving printer security may include both hardware and software.
- the weakest link may limit the overall security of the system.
- one of the weakest links may be the vulnerability of the embedded firmware to tampering. Sophisticated hackers may reprogram portions of the firmware that effectively bypasses security measures.
- One way to protect against these attacks is for a security system to detect that the firmware has been modified and to prevent normal operation of the system. If the firmware itself is used to detect modifications, then the piece of firmware that performs tamper detection should be trustworthy.
- One embodiment of the present invention provides a system for boot validation in an image forming device including at least one central processing unit (CPU).
- the system includes a firmware storage device including firmware, the firmware including at least boot code.
- the system further includes a secure non-volatile storage device storing a preprogrammed hash value corresponding to the boot code.
- the system further includes logic configured to hold at least the CPU in reset in response to a power on signal to prevent the CPU from executing the boot code upon powering on the image forming device, to retrieve the boot code, to compute a hash value of the boot code, to retrieve the preprogrammed hash value, to compare the computed hash value to the preprogrammed hash value, and to allow the image forming device to execute the boot code if the computed hash value matches the preprogrammed hash value.
- the boot code includes tamper detection code configured to validate other firmware.
- the system may include, for example, an application specific integrated circuit (ASIC) including the logic, or a boot validation device including the logic, or an ASIC and a boot validation device operatively coupled to one another, wherein the boot validation device includes the logic.
- ASIC application specific integrated circuit
- the firmware storage device is for storing the boot code together with other executable code including firmware other than boot code.
- the logic is configured to inhibit operation of at least one component of the image forming device if the computed hash value does not match the preprogrammed hash value.
- the image forming device may be, for example, one of a printer, a fax device, a copier, or a combination thereof.
- the system may be contained in a cartridge configured for use in the image forming device.
- the firmware storage device may include, for example, programmable non-volatile memory.
- an imaging device e.g., printer, a fax device, a copier, or a combination thereof
- the device includes a print engine, and a controller configured to operate the print engine and to control image forming operations.
- the controller includes a firmware storage device including firmware, the firmware including at least boot code.
- the controller further includes a secure non-volatile storage device storing a preprogrammed hash value corresponding to the boot code.
- the controller further includes logic configured to hold at least the CPU in reset in response to a power on signal to prevent the CPU from executing the boot code upon powering on the imaging device, to retrieve the boot code, to compute a hash value of the boot code, to retrieve the preprogrammed hash value, to compare the computed hash value to the preprogrammed hash value, and to allow the imaging device to execute the boot code if the computed hash value matches the preprogrammed hash value.
- the controller comprises an application specific integrated circuit (ASIC), the ASIC including the logic.
- the controller may comprise a system ASIC and a boot validation device coupled to the system ASIC, the boot validation device including the logic.
- the controller comprises the CPU, and the CPU is coupled to the logic, wherein the logic is configured to prevent the CPU from executing instructions.
- the firmware storage device is for storing the boot code together with other executable code including firmware other than boot code.
- the logic is configured to inhibit operation of at least one component of the imaging device if the computed hash value does not match the preprogrammed hash value.
- Another embodiment of the present invention provides an computer program product residing on a computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform a boot validation method in an image forming device including at least one central processing unit (CPU).
- the method includes holding at least the CPU in reset in response to a power on signal to prevent the CPU from executing at least boot code upon powering on the image forming device.
- the method further includes retrieving the boot code from a firmware storage device, computing a hash value of the boot code, retrieving a preprogrammed hash value from a secure non-volatile device, and comparing the computed hash value with the preprogrammed hash value.
- the method further includes allowing the image forming device to execute the boot code if said computed hash value matches said preprogrammed hash value.
- the method may further include executing the boot code to validate other executable code.
- the product is contained in an image forming apparatus.
- the product is contained in an image forming device cartridge.
- the firmware storage device may, for example, further be configured for storing said boot code together with other executable code including firmware other than boot code. Other functionality associated with the computer program product will be apparent in light of this disclosure.
- FIG. 1 is a diagrammatic view of an imaging device, consistent with one embodiment of the present invention
- FIG. 2 is a diagrammatic view of an imaging device controller architecture, consistent with one embodiment of the present invention.
- FIG. 3 is a diagrammatic view of one embodiment of a boot validation system using a system Application Specific Integrated Circuit (ASIC);
- ASIC Application Specific Integrated Circuit
- FIG. 4 is a diagrammatic view of another embodiment of a boot validation system using a separate boot validation device.
- FIG. 5 is a flow chart illustrating a boot validation method, consistent with one embodiment of the present invention.
- a boot validation system and method may be used in a computer system to validate boot code before allowing the computer system to execute the boot code. Once the boot code is validated, the boot code may be executed to validate other executable code (e.g., firmware) in the computer system.
- the boot validation system and method may be used in an imaging device, such as an electrophotographic printer, an inkjet printer, a fax device, a copier, an all-in-one device or a multipurpose device. Those skilled in the art will recognize that the boot validation system and method may be used in other computer systems.
- a boot validation system and method may be used in an imaging system 100 .
- the imaging system 100 may include an imaging apparatus or device 102 and a host 104 that communicates via a communication link 106 .
- the communication link 106 may include any structure that facilitates electronic communication between two components (e.g., a direct cable connection, wireless connection or a network connection) and may be established using wired or wireless technology.
- the imaging device 102 may be a standalone unit that is not linked to a host.
- the imaging device 102 may take the form of a multifunction machine that includes standalone copying and facsimile capabilities, in addition to optionally serving as a printer when attached to the host 104 .
- the imaging device 102 may include a controller 110 and a print engine 112 .
- a printing cartridge 114 may be coupled to the print engine 112 to facilitate printing.
- the imaging device 102 may also include a user interface 116 .
- the controller 110 may include one or more processor units and memory units (not shown) and may be formed as one or more Application Specific Integrated Circuits (ASICs).
- the controller 110 may process print data (e.g., received from host 104 ) and may communicate with the print engine 112 via a communications link 118 to operate the print engine 112 during printing.
- the print engine 112 may be, for example, an ink jet print engine, a color electrophotographic print engine or thermal transfer print engine, configured to form an image on a sheet of print media 120 , such as a sheet of paper.
- the host 104 may be, for example, a personal computer including an input/output (I/O) device 130 , such as a keyboard, mouse and/or display monitor.
- the host 104 may also include a processor, I/O interfaces, memory, such as random access memory (RAM), read only memory (ROM), and/or non-volatile RAM (NVRAM) (not shown).
- the host 104 may also include one or more I/O ports, such as a universal serial bus (USB) port or other serial or parallel ports (not shown).
- the host 104 may further include a mass data storage device, such as a hard drive, CD-ROM and/or DVD units (not shown).
- the host 104 may include in its memory a software program including program instructions that function as an imaging driver 132 (e.g., printer driver software) for the imaging device 102 .
- Imaging driver 132 may be in communication with the controller 110 of the imaging device 102 via the communications link 106 .
- the imaging driver 132 facilitates communication between the imaging device 102 and the host 104 and may provide formatted print data to the imaging device 102 to print an image.
- all or a portion of imaging driver 132 may be located in the controller 110 of the imaging device 102 .
- FIG. 2 is a diagrammatic illustration of components of the controller architecture that may be used to implement a boot validation system and method, for example, in an imaging device.
- the controller 110 may include a system Application Specific Integrated Circuit (ASIC) 210 , a central processing unit (CPU) 220 , a firmware storage device 230 , a secure non-volatile (NV) storage device 240 , and an optional boot validation device 250 coupled to each other via system bus 260 .
- ASIC Application Specific Integrated Circuit
- CPU central processing unit
- firmware storage device 230 a firmware storage device 230
- NV secure non-volatile
- the controller 110 may also include other components and other embodiments of the controller architecture may also be used to perform the boot validation method.
- one or more of the components 210 , 220 , 230 , 240 , 250 may also be located on a printer cartridge 114 (see FIG. 1 ) or some other removable component in an imaging device.
- the system ASIC 210 may include logic responsible for servicing the data needs of the CPU 220 and for communicating with peripheral devices in the system.
- the system ASIC 210 may also include logic to perform the boot validation functions, for example, using a secure hash algorithm as described greater detail below.
- the separate boot validation device 250 may include logic to perform the boot validation functions.
- the boot validation device 250 may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), another special purpose ASIC, or other type of special purpose chip or hardware.
- the firmware storage device 230 may be any type of non-volatile memory such as NAND flash, NOR flash, or an Electrically-Erasable Programmable Read-Only Memory (EEPROM).
- the firmware storage device 230 may store firmware 232 including boot code 234 in a known location in the firmware storage device 230 .
- boot code 234 refers to the code that is executed first after the system is powered on, i.e., when the system is booted.
- the boot code 234 may be responsible for validating and loading the remainder of the firmware 232 .
- the boot code 234 may also be responsible for initializing and testing the hardware.
- the firmware 232 may also include other executable code 236 responsible for performing other functions, for example, in the printer or imaging device.
- the secure NV device 240 may store secure data used to perform the boot validation, such as a preprogrammed hash value that was programmed when the boot code 234 was programmed and that represents the expected value of the boot code hash as described below.
- the secure NV device 240 may include any device capable of storing data and protecting that data from attackers (e.g., protecting the data from being changed).
- One example of a secure NV device 240 is a memory or storage device that is destroyed or rendered unreadable if there is an attempt to modify the data stored therein.
- Another example of a secure NV device 240 includes a secure EEPROM.
- the secure NV device 240 may also be a custom chip or a relatively small ROM.
- the controller 110 may validate the boot code 234 before allowing the CPU 220 to execute the boot code 234 . If the boot code 234 can be protected against tampering, then the boot code 234 may be used to validate the remainder of the firmware 232 .
- the boot code 234 may be validated by computing a hash value of the boot code 234 and comparing the computed hash value to the preprogrammed hash value 242 stored in the secure NV device 240 .
- the hash value may be computed using a secure hash algorithm known to those skilled in the art. The secure hash algorithm may therefore make it computationally infeasible to develop boot code that has the same hash value as the original boot code.
- secure hash algorithms examples include the secure hash algorithm (SHA) family of cryptographic hash functions (e.g., the SHA-1 algorithm) or a keyed-hash message authentication code (HMAC) calculated using a cryptographic hash function (e.g., SHA-1) in combination with a secret key.
- SHA secure hash algorithm
- HMAC keyed-hash message authentication code
- the CPU 220 is allowed to operate normally and the boot code 234 may be executed. By executing the validated boot code 234 , other firmware code 236 may then be safely validated. If any of the firmware 232 is not validated, the system may be halted and execution of the firmware 232 may be prevented until the firmware can be returned to an authentic state.
- the system ASIC 210 validates the boot code 234 before allowing the CPU 220 to execute the boot code 234 .
- the system ASIC 210 may include system control logic 310 to control the reset signal 322 to the CPU 220 and hold the CPU 220 in reset in response to a “power on” signal 320 , thereby preventing the CPU 220 from executing instructions.
- the system control logic 310 in the system ASIC 210 may prevent the CPU 220 from executing instructions by refusing to fetch instructions for the CPU 220 or by other techniques known to those skilled in the art.
- the system ASIC 210 may read the boot code 234 from the firmware storage device 230 and the preprogrammed hash value 242 from the secure non-volatile storage device 240 .
- the system ASIC 210 may include hash computation logic 312 to compute a hash value 314 according to the secure hash algorithm. Where a keyed hash algorithm is used, a key 318 is provided to the hash computation logic to seed the hash algorithm. The key 318 may be stored in the system ASIC 210 or in some other location where it is difficult to access and retrieve.
- the system ASIC 210 may also include hash comparison logic 316 to compare the computed hash value 314 to the preprogrammed hash value 242 .
- the system control logic 310 in the system ASIC 210 may continue to hold the CPU 220 in reset if the computed hash value 314 does not match the preprogrammed hash value 242 . If the computed hash value 314 matches the preprogrammed hash value 242 , the system control logic 310 in the system ASIC 210 may release the reset signal 322 to the CPU 220 allowing the CPU 220 to execute instructions.
- the boot validation device 250 validates the boot code 234 before allowing the CPU 220 to execute the boot code 234 .
- the boot validation device 250 may include system control logic 410 to control the reset signal 422 to the system ASIC 210 and hold the system ASIC 210 in a reset condition in response to a “power on” signal 420 , thereby preventing the system ASIC 210 and the CPU 220 from operating.
- the system control logic 410 in the boot validation device 250 may directly hold the CPU 220 in a reset condition.
- the system control logic 410 may also inhibit operation of other critical portion(s) or component(s) 430 , for example, by controlling a signal 428 to the component 430 to hold the component in a reset condition or to otherwise inhibit operation of that component.
- the critical portion(s) or component(s) 430 may be motors, voltage regulators, communications chips, or other critical portion of the controller logic.
- the boot validation device 250 may read the boot code 234 from the firmware storage device 230 and the preprogrammed hash value 242 from the secure NV device 240 .
- the boot validation device 250 may include hash computation logic 412 to compute the hash value 414 according to the secure hash algorithm. Where a keyed hash algorithm is used, a key 418 is provided to the hash computation logic to seed the hash algorithm. The key 418 may be stored in the boot validation device 250 or in some other location where it is relatively difficult to access and retrieve.
- the boot validation device 250 may also include hash comparison logic 416 to compare the computed hash value 414 to the preprogrammed hash value 242 .
- the system control logic 410 in the boot validation device 250 may continue to hold the system ASIC 210 (and/or the CPU 220 ) in a reset condition if the computed hash value 414 does not match the preprogrammed hash value 242 . If the computed hash value 414 matches the preprogrammed hash value 242 , the control logic 410 may release the reset signal 422 to the system ASIC 210 (or the CPU 220 ) allowing the CPU 220 to execute instructions.
- FIG. 5 illustrates a method for boot validation in a computer system.
- the boot validation method may be performed by the controller 110 (e.g., using the system ASIC 210 or the boot validation device 250 described above) or by a removable component such as the printing cartridge 114 (see FIG. 1 ).
- the system is initially prevented 512 from executing code, particularly the boot code.
- the system ASIC 210 or the boot validation device 220 may prevent the system from executing code, for example, by holding the CPU 220 and/or the system ASIC 210 in reset, thereby preventing the CPU 220 from executing instructions.
- the system may inhibit operation of some other portion or component in the system, such as motors, voltage regulators, and/or communication chips.
- the boot code may be retrieved 514 and a boot code hash value may be computed 516 using the secure hash algorithm.
- the computed hash value may be compared 520 to the preprogrammed hash value, which has been retrieved 518 from a secure NV device.
- the preprogrammed hash value represents the expected value of the boot code hash. Thus, if the boot code remains unchanged after the initial programming, the computed hash value should be the same as the preprogrammed hash value. If the boot code has been tampered with and changed after the boot code has been programmed, the hash computation should produce a computed hash value that is different from the preprogrammed hash value.
- the boot code is not validated and the controller may continue to prevent execution 526 .
- the system ASIC 210 and/or the boot validation device 250 may continue to prevent the CPU 220 from executing instructions.
- the system e.g., the system ASIC 210 and/or the boot validation device 250
- the system may also provide an error message indicating that the boot code is invalid. Operation may be prevented until the boot code is returned to an authentic state.
- the controller may allow 524 the CPU to execute code.
- the boot code may be executed by the CPU to perform various boot code functions including validation of other firmware 528 .
- the boot code may validate the remainder of the firmware, for example, using signature verification mechanisms or other standard validation algorithms known to those skilled in the art.
- signature verification mechanism may use the RSA algorithm for public-key encryption. If the other firmware is not validated, the system may provide an appropriate error message or error code and may be “defunctioned” or prevented from operating until the firmware is returned to an authentic state.
- the “defunctioning” may be enforced by the boot code.
- the boot code may cause the system ASIC or CPU to disable the printing function by disabling a component such as a laser driver, fuser or motor driver. Operation may be prevented until the invalid code is returned to an authentic state.
- the exemplary embodiments illustrate the validation of the boot code before the system is allowed to execute code
- other code may also be validated with the boot code before the system is allowed to execute code. If the boot code and/or any other code that is validated using the secure hash algorithm is changed after the initial programming, the preprogrammed hash value will also need to be updated accordingly.
- the boot validation system and method may prevent execution of any boot code that may have been modified (i.e., tampered with) after the printer or other computer system has been manufactured.
- the boot code may be stored with the other firmware (e.g., in the flash) instead of storing the boot code in a separate ROM (Read-Only Memory) to prevent modification.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
Abstract
A boot validation system and method may be used in a computer system to validate boot code before allowing the computer system to execute the boot code. In particular, a secure hash algorithm may be used to compute a hash value of the boot code and the computed hash value may be compared to a preprogrammed hash value stored in a secure non-volatile device. If the hash values match the boot code may be validated and the system may then be allowed to execute the boot code. Once the boot code is validated, the boot code may be executed to validate other code (e.g., firmware) in the computer system. In an exemplary embodiment, the boot validation system and method may be used in an imaging device, such as a printer.
Description
- The present application is a divisional of U.S. patent application Ser. No. 11/425,893, filed Jun. 22, 2006, which is incorporated herein by reference in its entirety.
- None.
- None.
- 1. Field of Invention
- The present invention relates to securely booting computer systems, and more particularly, to a boot validation system and method for use in an image forming device such as, for example, an electrophotographic printer, an inkjet printer, a fax device, a copier, an all-in-one device or a multipurpose device.
- 2. Description of Related Art
- Imaging devices, such as printers, may include various security systems, for example, to protect billing information and/or to protect confidential customer data. In general, mechanisms for achieving printer security may include both hardware and software. In any security system, the weakest link may limit the overall security of the system. In the printer architecture, for example, one of the weakest links may be the vulnerability of the embedded firmware to tampering. Sophisticated hackers may reprogram portions of the firmware that effectively bypasses security measures. One way to protect against these attacks is for a security system to detect that the firmware has been modified and to prevent normal operation of the system. If the firmware itself is used to detect modifications, then the piece of firmware that performs tamper detection should be trustworthy.
- One embodiment of the present invention provides a system for boot validation in an image forming device including at least one central processing unit (CPU). The system includes a firmware storage device including firmware, the firmware including at least boot code. The system further includes a secure non-volatile storage device storing a preprogrammed hash value corresponding to the boot code. The system further includes logic configured to hold at least the CPU in reset in response to a power on signal to prevent the CPU from executing the boot code upon powering on the image forming device, to retrieve the boot code, to compute a hash value of the boot code, to retrieve the preprogrammed hash value, to compare the computed hash value to the preprogrammed hash value, and to allow the image forming device to execute the boot code if the computed hash value matches the preprogrammed hash value. In one such embodiment, the boot code includes tamper detection code configured to validate other firmware. The system may include, for example, an application specific integrated circuit (ASIC) including the logic, or a boot validation device including the logic, or an ASIC and a boot validation device operatively coupled to one another, wherein the boot validation device includes the logic. In another particular case, the firmware storage device is for storing the boot code together with other executable code including firmware other than boot code. In another particular case, the logic is configured to inhibit operation of at least one component of the image forming device if the computed hash value does not match the preprogrammed hash value. The image forming device may be, for example, one of a printer, a fax device, a copier, or a combination thereof. The system may be contained in a cartridge configured for use in the image forming device. The firmware storage device may include, for example, programmable non-volatile memory.
- Another embodiment of the present invention provides an imaging device (e.g., printer, a fax device, a copier, or a combination thereof) including at least one central processing unit (CPU). The device includes a print engine, and a controller configured to operate the print engine and to control image forming operations. The controller includes a firmware storage device including firmware, the firmware including at least boot code. The controller further includes a secure non-volatile storage device storing a preprogrammed hash value corresponding to the boot code. The controller further includes logic configured to hold at least the CPU in reset in response to a power on signal to prevent the CPU from executing the boot code upon powering on the imaging device, to retrieve the boot code, to compute a hash value of the boot code, to retrieve the preprogrammed hash value, to compare the computed hash value to the preprogrammed hash value, and to allow the imaging device to execute the boot code if the computed hash value matches the preprogrammed hash value. In one particular case, the controller comprises an application specific integrated circuit (ASIC), the ASIC including the logic. Alternatively, the controller may comprise a system ASIC and a boot validation device coupled to the system ASIC, the boot validation device including the logic. In another particular case, the controller comprises the CPU, and the CPU is coupled to the logic, wherein the logic is configured to prevent the CPU from executing instructions. In another particular case, the firmware storage device is for storing the boot code together with other executable code including firmware other than boot code. In another particular case, the logic is configured to inhibit operation of at least one component of the imaging device if the computed hash value does not match the preprogrammed hash value.
- Another embodiment of the present invention provides an computer program product residing on a computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform a boot validation method in an image forming device including at least one central processing unit (CPU). The method includes holding at least the CPU in reset in response to a power on signal to prevent the CPU from executing at least boot code upon powering on the image forming device. The method further includes retrieving the boot code from a firmware storage device, computing a hash value of the boot code, retrieving a preprogrammed hash value from a secure non-volatile device, and comparing the computed hash value with the preprogrammed hash value. The method further includes allowing the image forming device to execute the boot code if said computed hash value matches said preprogrammed hash value. The method may further include executing the boot code to validate other executable code. In one particular case, the product is contained in an image forming apparatus. In another particular case, the product is contained in an image forming device cartridge. The firmware storage device may, for example, further be configured for storing said boot code together with other executable code including firmware other than boot code. Other functionality associated with the computer program product will be apparent in light of this disclosure.
- The features and advantages described herein are not all-inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and not to limit the scope of the inventive subject matter.
- The detailed description below may be better understood with reference to the accompanying figures which are provided for illustrative purposes and are not to be considered as limiting any aspect of the invention wherein:
-
FIG. 1 is a diagrammatic view of an imaging device, consistent with one embodiment of the present invention; -
FIG. 2 is a diagrammatic view of an imaging device controller architecture, consistent with one embodiment of the present invention; -
FIG. 3 is a diagrammatic view of one embodiment of a boot validation system using a system Application Specific Integrated Circuit (ASIC); -
FIG. 4 is a diagrammatic view of another embodiment of a boot validation system using a separate boot validation device; and -
FIG. 5 is a flow chart illustrating a boot validation method, consistent with one embodiment of the present invention. - A boot validation system and method may be used in a computer system to validate boot code before allowing the computer system to execute the boot code. Once the boot code is validated, the boot code may be executed to validate other executable code (e.g., firmware) in the computer system. In an exemplary embodiment, the boot validation system and method may be used in an imaging device, such as an electrophotographic printer, an inkjet printer, a fax device, a copier, an all-in-one device or a multipurpose device. Those skilled in the art will recognize that the boot validation system and method may be used in other computer systems.
- Referring to
FIG. 1 , a boot validation system and method, consistent with one embodiment, may be used in animaging system 100. Theimaging system 100 may include an imaging apparatus ordevice 102 and ahost 104 that communicates via acommunication link 106. Thecommunication link 106 may include any structure that facilitates electronic communication between two components (e.g., a direct cable connection, wireless connection or a network connection) and may be established using wired or wireless technology. Alternatively, theimaging device 102 may be a standalone unit that is not linked to a host. For example, theimaging device 102 may take the form of a multifunction machine that includes standalone copying and facsimile capabilities, in addition to optionally serving as a printer when attached to thehost 104. - The
imaging device 102 may include acontroller 110 and aprint engine 112. Aprinting cartridge 114 may be coupled to theprint engine 112 to facilitate printing. Theimaging device 102 may also include auser interface 116. Thecontroller 110 may include one or more processor units and memory units (not shown) and may be formed as one or more Application Specific Integrated Circuits (ASICs). Thecontroller 110 may process print data (e.g., received from host 104) and may communicate with theprint engine 112 via acommunications link 118 to operate theprint engine 112 during printing. In the context of the examples of theimaging device 102 given above, theprint engine 112 may be, for example, an ink jet print engine, a color electrophotographic print engine or thermal transfer print engine, configured to form an image on a sheet ofprint media 120, such as a sheet of paper. - The
host 104 may be, for example, a personal computer including an input/output (I/O)device 130, such as a keyboard, mouse and/or display monitor. Thehost 104 may also include a processor, I/O interfaces, memory, such as random access memory (RAM), read only memory (ROM), and/or non-volatile RAM (NVRAM) (not shown). Thehost 104 may also include one or more I/O ports, such as a universal serial bus (USB) port or other serial or parallel ports (not shown). Thehost 104 may further include a mass data storage device, such as a hard drive, CD-ROM and/or DVD units (not shown). - During operation involving print data supplied by the
host 104, thehost 104 may include in its memory a software program including program instructions that function as an imaging driver 132 (e.g., printer driver software) for theimaging device 102.Imaging driver 132 may be in communication with thecontroller 110 of theimaging device 102 via the communications link 106. Theimaging driver 132 facilitates communication between theimaging device 102 and thehost 104 and may provide formatted print data to theimaging device 102 to print an image. Alternatively, all or a portion ofimaging driver 132 may be located in thecontroller 110 of theimaging device 102. -
FIG. 2 is a diagrammatic illustration of components of the controller architecture that may be used to implement a boot validation system and method, for example, in an imaging device. In one embodiment, thecontroller 110 may include a system Application Specific Integrated Circuit (ASIC) 210, a central processing unit (CPU) 220, afirmware storage device 230, a secure non-volatile (NV)storage device 240, and an optionalboot validation device 250 coupled to each other viasystem bus 260. Those skilled in the art will recognize that thecontroller 110 may also include other components and other embodiments of the controller architecture may also be used to perform the boot validation method. Alternatively, one or more of thecomponents FIG. 1 ) or some other removable component in an imaging device. - The
system ASIC 210 may include logic responsible for servicing the data needs of theCPU 220 and for communicating with peripheral devices in the system. In one embodiment, thesystem ASIC 210 may also include logic to perform the boot validation functions, for example, using a secure hash algorithm as described greater detail below. In another embodiment, the separateboot validation device 250 may include logic to perform the boot validation functions. Theboot validation device 250 may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), another special purpose ASIC, or other type of special purpose chip or hardware. - The
firmware storage device 230 may be any type of non-volatile memory such as NAND flash, NOR flash, or an Electrically-Erasable Programmable Read-Only Memory (EEPROM). Thefirmware storage device 230 may storefirmware 232 includingboot code 234 in a known location in thefirmware storage device 230. As used herein,boot code 234 refers to the code that is executed first after the system is powered on, i.e., when the system is booted. Theboot code 234 may be responsible for validating and loading the remainder of thefirmware 232. Theboot code 234 may also be responsible for initializing and testing the hardware. Thefirmware 232 may also include otherexecutable code 236 responsible for performing other functions, for example, in the printer or imaging device. - The
secure NV device 240 may store secure data used to perform the boot validation, such as a preprogrammed hash value that was programmed when theboot code 234 was programmed and that represents the expected value of the boot code hash as described below. Thesecure NV device 240 may include any device capable of storing data and protecting that data from attackers (e.g., protecting the data from being changed). One example of asecure NV device 240 is a memory or storage device that is destroyed or rendered unreadable if there is an attempt to modify the data stored therein. Another example of asecure NV device 240 includes a secure EEPROM. Thesecure NV device 240 may also be a custom chip or a relatively small ROM. - According to one embodiment of the boot validation system and method, the
controller 110 may validate theboot code 234 before allowing theCPU 220 to execute theboot code 234. If theboot code 234 can be protected against tampering, then theboot code 234 may be used to validate the remainder of thefirmware 232. Theboot code 234 may be validated by computing a hash value of theboot code 234 and comparing the computed hash value to thepreprogrammed hash value 242 stored in thesecure NV device 240. The hash value may be computed using a secure hash algorithm known to those skilled in the art. The secure hash algorithm may therefore make it computationally infeasible to develop boot code that has the same hash value as the original boot code. Examples of secure hash algorithms that may be used include the secure hash algorithm (SHA) family of cryptographic hash functions (e.g., the SHA-1 algorithm) or a keyed-hash message authentication code (HMAC) calculated using a cryptographic hash function (e.g., SHA-1) in combination with a secret key. - If the boot code validation operation succeeds, then the
CPU 220 is allowed to operate normally and theboot code 234 may be executed. By executing the validatedboot code 234,other firmware code 236 may then be safely validated. If any of thefirmware 232 is not validated, the system may be halted and execution of thefirmware 232 may be prevented until the firmware can be returned to an authentic state. - According to one embodiment of the controller architecture, as shown in
FIG. 3 , thesystem ASIC 210 validates theboot code 234 before allowing theCPU 220 to execute theboot code 234. Thesystem ASIC 210 may includesystem control logic 310 to control thereset signal 322 to theCPU 220 and hold theCPU 220 in reset in response to a “power on”signal 320, thereby preventing theCPU 220 from executing instructions. Alternatively, thesystem control logic 310 in thesystem ASIC 210 may prevent theCPU 220 from executing instructions by refusing to fetch instructions for theCPU 220 or by other techniques known to those skilled in the art. - While holding the
CPU 220 in reset, thesystem ASIC 210 may read theboot code 234 from thefirmware storage device 230 and thepreprogrammed hash value 242 from the securenon-volatile storage device 240. Thesystem ASIC 210 may includehash computation logic 312 to compute ahash value 314 according to the secure hash algorithm. Where a keyed hash algorithm is used, a key 318 is provided to the hash computation logic to seed the hash algorithm. The key 318 may be stored in thesystem ASIC 210 or in some other location where it is difficult to access and retrieve. Thesystem ASIC 210 may also includehash comparison logic 316 to compare the computedhash value 314 to thepreprogrammed hash value 242. - The
system control logic 310 in thesystem ASIC 210 may continue to hold theCPU 220 in reset if the computedhash value 314 does not match thepreprogrammed hash value 242. If the computedhash value 314 matches thepreprogrammed hash value 242, thesystem control logic 310 in thesystem ASIC 210 may release thereset signal 322 to theCPU 220 allowing theCPU 220 to execute instructions. - According to another embodiment of the controller architecture, as shown in
FIG. 4 , theboot validation device 250 validates theboot code 234 before allowing theCPU 220 to execute theboot code 234. Theboot validation device 250 may includesystem control logic 410 to control thereset signal 422 to thesystem ASIC 210 and hold thesystem ASIC 210 in a reset condition in response to a “power on”signal 420, thereby preventing thesystem ASIC 210 and theCPU 220 from operating. Alternatively, thesystem control logic 410 in theboot validation device 250 may directly hold theCPU 220 in a reset condition. Thesystem control logic 410 may also inhibit operation of other critical portion(s) or component(s) 430, for example, by controlling asignal 428 to thecomponent 430 to hold the component in a reset condition or to otherwise inhibit operation of that component. In an imaging device, for example, the critical portion(s) or component(s) 430 may be motors, voltage regulators, communications chips, or other critical portion of the controller logic. - In this embodiment, the
boot validation device 250 may read theboot code 234 from thefirmware storage device 230 and thepreprogrammed hash value 242 from thesecure NV device 240. Theboot validation device 250 may includehash computation logic 412 to compute the hash value 414 according to the secure hash algorithm. Where a keyed hash algorithm is used, a key 418 is provided to the hash computation logic to seed the hash algorithm. The key 418 may be stored in theboot validation device 250 or in some other location where it is relatively difficult to access and retrieve. Theboot validation device 250 may also includehash comparison logic 416 to compare the computed hash value 414 to thepreprogrammed hash value 242. - The
system control logic 410 in theboot validation device 250 may continue to hold the system ASIC 210 (and/or the CPU 220) in a reset condition if the computed hash value 414 does not match thepreprogrammed hash value 242. If the computed hash value 414 matches thepreprogrammed hash value 242, thecontrol logic 410 may release thereset signal 422 to the system ASIC 210 (or the CPU 220) allowing theCPU 220 to execute instructions. -
FIG. 5 illustrates a method for boot validation in a computer system. In an imaging device, for example, the boot validation method may be performed by the controller 110 (e.g., using thesystem ASIC 210 or theboot validation device 250 described above) or by a removable component such as the printing cartridge 114 (seeFIG. 1 ). When the computer system is powered on 510, the system is initially prevented 512 from executing code, particularly the boot code. As described in the embodiments above, thesystem ASIC 210 or theboot validation device 220 may prevent the system from executing code, for example, by holding theCPU 220 and/or thesystem ASIC 210 in reset, thereby preventing theCPU 220 from executing instructions. Alternatively, the system may inhibit operation of some other portion or component in the system, such as motors, voltage regulators, and/or communication chips. - After the system is powered on and execution is initially prevented, the boot code may be retrieved 514 and a boot code hash value may be computed 516 using the secure hash algorithm. The computed hash value may be compared 520 to the preprogrammed hash value, which has been retrieved 518 from a secure NV device. The preprogrammed hash value represents the expected value of the boot code hash. Thus, if the boot code remains unchanged after the initial programming, the computed hash value should be the same as the preprogrammed hash value. If the boot code has been tampered with and changed after the boot code has been programmed, the hash computation should produce a computed hash value that is different from the preprogrammed hash value.
- If the computed hash value and the preprogrammed hash value do not match 522 (e.g., indicating tampering with the boot code), the boot code is not validated and the controller may continue to prevent
execution 526. In the embodiments described above, for example, thesystem ASIC 210 and/or theboot validation device 250 may continue to prevent theCPU 220 from executing instructions. The system (e.g., thesystem ASIC 210 and/or the boot validation device 250) may also prevent operation by “defunctioning” the system or inhibiting operation of some other critical component of the system. The system may also provide an error message indicating that the boot code is invalid. Operation may be prevented until the boot code is returned to an authentic state. - If the computed hash value and the preprogrammed
hash value match 522, the controller may allow 524 the CPU to execute code. When operation is allowed 524 after the boot code has been validated, the boot code may be executed by the CPU to perform various boot code functions including validation ofother firmware 528. The boot code may validate the remainder of the firmware, for example, using signature verification mechanisms or other standard validation algorithms known to those skilled in the art. One example of such a signature verification mechanism may use the RSA algorithm for public-key encryption. If the other firmware is not validated, the system may provide an appropriate error message or error code and may be “defunctioned” or prevented from operating until the firmware is returned to an authentic state. If the boot code has been validated and is executed, the “defunctioning” may be enforced by the boot code. In a printer, for example, the boot code may cause the system ASIC or CPU to disable the printing function by disabling a component such as a laser driver, fuser or motor driver. Operation may be prevented until the invalid code is returned to an authentic state. - Although the exemplary embodiments illustrate the validation of the boot code before the system is allowed to execute code, other code may also be validated with the boot code before the system is allowed to execute code. If the boot code and/or any other code that is validated using the secure hash algorithm is changed after the initial programming, the preprogrammed hash value will also need to be updated accordingly.
- Accordingly, the boot validation system and method may prevent execution of any boot code that may have been modified (i.e., tampered with) after the printer or other computer system has been manufactured. Thus, the boot code may be stored with the other firmware (e.g., in the flash) instead of storing the boot code in a separate ROM (Read-Only Memory) to prevent modification.
- The foregoing description is provided to illustrate and explain the present invention. However, the description hereinabove should not be considered to limit the scope of the invention set forth in the claims appended here to.
Claims (22)
1. A system for boot validation in an image forming device including at least one central processing unit (CPU), comprising:
a firmware storage device including firmware, said firmware including at least boot code;
a secure non-volatile storage device storing a preprogrammed hash value corresponding to said boot code; and
logic configured to hold at least said CPU in reset in response to a power on signal to prevent said CPU from executing said boot code upon powering on said image forming device, to retrieve said boot code, to compute a hash value of said boot code, to retrieve said preprogrammed hash value, to compare said computed hash value to said preprogrammed hash value, and to allow said image forming device to execute said boot code if said computed hash value matches said preprogrammed hash value.
2. The system of claim 1 wherein said boot code includes tamper detection code configured to validate other firmware.
3. The system of claim 1 further comprising an application specific integrated circuit (ASIC) including said logic.
4. The system of claim 1 further comprising a system application specific integrated circuit (ASIC) and a boot validation device coupled to said system ASIC, wherein said boot validation device includes said logic.
5. The system of claim 1 wherein said firmware storage device is for storing said boot code together with other executable code including firmware other than boot code.
6. The system of claim 1 wherein said logic is configured to inhibit operation of at least one component of said image forming device if said computed hash value does not match said preprogrammed hash value.
7. The system of claim 1 wherein said image forming device is one of a printer, a fax device, a copier, or a combination thereof.
8. The system of claim 1 wherein said system is contained in a cartridge configured for use in the image forming device.
9. The system of claim 1 further comprising a boot validation device including said logic.
10. The system of claim 1 wherein said firmware storage device includes programmable non-volatile memory.
11. An imaging device including at least one central processing unit (CPU), comprising:
a print engine; and
a controller configured to operate said print engine and to control image forming operations, said controller comprising:
a firmware storage device including firmware, said firmware including at least boot code;
a secure non-volatile storage device storing a preprogrammed hash value corresponding to said boot code; and
logic configured to hold at least said CPU in reset in response to a power on signal to prevent said CPU from executing said boot code upon powering on said imaging device, to retrieve said boot code, to compute a hash value of said boot code, to retrieve said preprogrammed hash value, to compare said computed hash value to said preprogrammed hash value, and to allow said imaging device to execute said boot code if said computed hash value matches said preprogrammed hash value.
12. The imaging device of claim 11 wherein said controller comprises an application specific integrated circuit (ASIC), said ASIC including said logic.
13. The imaging device of claim 11 wherein said controller comprises a system application specific integrated circuit (ASIC) and a boot validation device coupled to said ASIC, said boot validation device including said logic.
14. The imaging device of claim 11 wherein said controller comprises said CPU, and said CPU is coupled to said logic, wherein said logic is configured to prevent said CPU from executing instructions.
15. The imaging device of claim 11 wherein said firmware storage device is for storing said boot code together with other executable code including firmware other than boot code.
16. The imaging device of claim 11 wherein said logic is configured to inhibit operation of at least one component of said imaging device if said computed hash value does not match said preprogrammed hash value.
17. The imaging device of claim 11 wherein said imaging device is one of a printer, a fax device, a copier, or a combination thereof.
18. A computer program product residing on a computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform a boot validation method in an image forming device including at least one central processing unit (CPU), the method comprising:
holding at least said CPU in reset in response to a power on signal to prevent said CPU from executing at least boot code upon powering on said image forming device;
retrieving said boot code from a firmware storage device;
computing a hash value of said boot code;
retrieving a preprogrammed hash value from a secure non-volatile device;
comparing said computed hash value with said preprogrammed hash value; and
allowing said image forming device to execute the boot code if said computed hash value matches said preprogrammed hash value.
19. The computer program product of claim 18 wherein the method further comprises executing said boot code to validate other executable code.
20. The computer program product of claim 18 wherein said product is contained in an image forming apparatus.
21. The computer program product of claim 18 wherein said product is contained in an image forming device cartridge.
22. The computer program product of claim 18 wherein said firmware storage device is for storing said boot code together with other executable code including firmware other than boot code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/184,714 US20080313453A1 (en) | 2006-06-22 | 2008-08-01 | Boot Validation in Imaging Devices |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/425,893 US7424398B2 (en) | 2006-06-22 | 2006-06-22 | Boot validation system and method |
US12/184,714 US20080313453A1 (en) | 2006-06-22 | 2008-08-01 | Boot Validation in Imaging Devices |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/425,893 Division US7424398B2 (en) | 2006-06-22 | 2006-06-22 | Boot validation system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080313453A1 true US20080313453A1 (en) | 2008-12-18 |
Family
ID=38874895
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/425,893 Active 2026-08-06 US7424398B2 (en) | 2006-06-22 | 2006-06-22 | Boot validation system and method |
US12/184,714 Abandoned US20080313453A1 (en) | 2006-06-22 | 2008-08-01 | Boot Validation in Imaging Devices |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/425,893 Active 2026-08-06 US7424398B2 (en) | 2006-06-22 | 2006-06-22 | Boot validation system and method |
Country Status (1)
Country | Link |
---|---|
US (2) | US7424398B2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100169750A1 (en) * | 2008-12-30 | 2010-07-01 | Yen Hsiang Chew | Firmware verification using system memory error check logic |
US20110154060A1 (en) * | 2009-12-17 | 2011-06-23 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US8028155B1 (en) * | 2007-06-06 | 2011-09-27 | American Megatrends, Inc. | Initiating an operating system boot from firmware |
US20120102576A1 (en) * | 2010-10-22 | 2012-04-26 | Yen Hsiang Chew | Scalable Memory Protection Mechanism |
US20150067314A1 (en) * | 2013-08-30 | 2015-03-05 | Timothy J. Strauss | Secure firmware flash controller |
US20150378883A1 (en) * | 2014-06-30 | 2015-12-31 | Samsung Electronics Co., Ltd. | Image processing apparatus and control method thereof |
WO2016167801A1 (en) * | 2015-04-17 | 2016-10-20 | Hewlett Packard Enterprise Development Lp | Firmware map data |
US9483416B1 (en) * | 2010-10-21 | 2016-11-01 | Xilinx, Inc. | Secure processor operation using integrated circuit configuration circuitry |
CN110536042A (en) * | 2019-09-04 | 2019-12-03 | 珠海奔图电子有限公司 | Image forming apparatus and its control method, storage medium |
WO2020027815A1 (en) * | 2018-07-31 | 2020-02-06 | Hewlett-Packard Development Company, L.P. | Executing instructions |
CN111614859A (en) * | 2020-05-18 | 2020-09-01 | 珠海奔图电子有限公司 | Image forming apparatus, security control method thereof, and storage medium |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1826697A1 (en) * | 2006-02-24 | 2007-08-29 | Giga Games System, SL | Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines |
US7424398B2 (en) * | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
US20080271145A1 (en) * | 2007-04-30 | 2008-10-30 | Schiller Mark R | Tamper indication system and method for a computing system |
US8422674B2 (en) * | 2007-05-29 | 2013-04-16 | International Business Machines Corporation | Application-specific secret generation |
US8433927B2 (en) * | 2007-05-29 | 2013-04-30 | International Business Machines Corporation | Cryptographically-enabled privileged mode execution |
US8332635B2 (en) * | 2007-05-29 | 2012-12-11 | International Business Machines Corporation | Updateable secure kernel extensions |
US8161199B1 (en) | 2007-06-25 | 2012-04-17 | Marvell International Ltd. | Smart printer cartridge |
US8332636B2 (en) * | 2007-10-02 | 2012-12-11 | International Business Machines Corporation | Secure policy differentiation by secure kernel design |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US20090172378A1 (en) * | 2007-12-28 | 2009-07-02 | Kazmierczak Gregory J | Method and system for using a trusted disk drive and alternate master boot record for integrity services during the boot of a computing platform |
US8983862B2 (en) * | 2008-01-30 | 2015-03-17 | Toshiba Global Commerce Solutions Holdings Corporation | Initiating a service call for a hardware malfunction in a point of sale system |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US9158896B2 (en) * | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
JP4932034B2 (en) | 2008-03-28 | 2012-05-16 | パナソニック株式会社 | Software update device, software update system, invalidation method, and invalidation program |
EP2259205B1 (en) * | 2008-03-28 | 2018-04-25 | Panasonic Corporation | Software updating apparatus, software updating system, alteration verification method and alteration verification program |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8402536B2 (en) * | 2008-04-15 | 2013-03-19 | Nokia Corporation | Signature based authentication of the configuration of a configurable logic component |
WO2009157142A1 (en) * | 2008-06-23 | 2009-12-30 | パナソニック株式会社 | Information processing device, encryption key management method, computer program and integrated circuit |
US7853780B2 (en) * | 2008-07-31 | 2010-12-14 | Oracle America, Inc. | Core initialization code validation |
US8443181B2 (en) * | 2008-09-30 | 2013-05-14 | Qualcomm Incorporated | Processor boot security device and methods thereof |
US20100124329A1 (en) * | 2008-11-18 | 2010-05-20 | Lyman Dan C | Encrypted communication between printing system components |
GB2471464A (en) * | 2009-06-29 | 2011-01-05 | Nokia Corp | Procedure for generating a merged command list form the static lists to be used to start up or boot up the host device. |
KR101714108B1 (en) * | 2009-12-04 | 2017-03-08 | 크라이프토그라피 리서치, 인코포레이티드 | Verifiable, leak-resistant encryption and decryption |
US9118666B2 (en) * | 2010-06-30 | 2015-08-25 | Google Inc. | Computing device integrity verification |
US8700895B1 (en) | 2010-06-30 | 2014-04-15 | Google Inc. | System and method for operating a computing device in a secure mode |
US8479292B1 (en) * | 2010-11-19 | 2013-07-02 | Symantec Corporation | Disabling malware that infects boot drivers |
US8572742B1 (en) * | 2011-03-16 | 2013-10-29 | Symantec Corporation | Detecting and repairing master boot record infections |
US9147074B2 (en) * | 2011-05-24 | 2015-09-29 | Cisco Technology, Inc. | Method and apparatus for securing CPUS booted using attached flash memory devices |
KR20140068867A (en) * | 2011-07-08 | 2014-06-09 | 오픈픽 아이엔씨. | System and method for validating components during a booting process |
WO2013012435A1 (en) | 2011-07-18 | 2013-01-24 | Hewlett-Packard Development Company, L.P. | Security parameter zeroization |
US10817043B2 (en) * | 2011-07-26 | 2020-10-27 | Nvidia Corporation | System and method for entering and exiting sleep mode in a graphics subsystem |
US8776040B2 (en) | 2011-08-19 | 2014-07-08 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US8856771B2 (en) * | 2011-08-19 | 2014-10-07 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US8949586B2 (en) | 2011-10-06 | 2015-02-03 | Cisco Technology, Inc. | System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device |
US8971144B2 (en) | 2012-01-19 | 2015-03-03 | Quixant Plc | Hardware write-protection |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
GB2513826A (en) * | 2012-06-29 | 2014-11-12 | Ibm | Trusted boot of a virtual machine |
US9715591B2 (en) | 2012-07-30 | 2017-07-25 | Hewlett-Packard Development Company, L.P. | Code validation |
US9600291B1 (en) * | 2013-03-14 | 2017-03-21 | Altera Corporation | Secure boot using a field programmable gate array (FPGA) |
CN105144185B (en) * | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | Access control device code and system start code |
US9613214B2 (en) * | 2013-07-09 | 2017-04-04 | Micron Technology, Inc. | Self-measuring nonvolatile memory devices with remediation capabilities and associated systems and methods |
TWI617946B (en) * | 2015-05-25 | 2018-03-11 | Insyde Software Corp | Device and method for safely starting embedded controller |
US9953167B2 (en) * | 2015-10-12 | 2018-04-24 | Microsoft Technology Licensing, Llc | Trusted platforms using minimal hardware resources |
DE102017004620A1 (en) * | 2016-07-04 | 2018-01-04 | Sew-Eurodrive Gmbh & Co Kg | Safety device and method for operating a system |
US10599848B1 (en) * | 2017-05-09 | 2020-03-24 | American Megatrends International, Llc | Use of security key to enable firmware features |
US10467439B2 (en) * | 2017-07-05 | 2019-11-05 | Dell Products, L.P. | Detecting tampering of memory contents in an information handling system |
US10715321B2 (en) | 2017-12-22 | 2020-07-14 | Micron Technology, Inc. | Physical unclonable function using message authentication code |
US10906506B2 (en) | 2017-12-28 | 2021-02-02 | Micron Technology, Inc. | Security of user data stored in shared vehicles |
US10924277B2 (en) * | 2018-01-25 | 2021-02-16 | Micron Technology, Inc. | Certifying authenticity of stored code and code updates |
US10489142B1 (en) * | 2018-02-09 | 2019-11-26 | American Megatrends International, Llc | Secure firmware integrity monitoring using rest over IPMI interface |
US10984107B2 (en) * | 2018-04-24 | 2021-04-20 | Mellanox Technologies, Ltd. | Secure boot |
US10778661B2 (en) | 2018-04-27 | 2020-09-15 | Micron Technology, Inc. | Secure distribution of secret key using a monotonic counter |
US11409878B2 (en) * | 2018-05-31 | 2022-08-09 | Hewlett-Packard Development Company, L.P. | Trusted sequence for computing devices via hashes |
JP7170482B2 (en) * | 2018-09-20 | 2022-11-14 | キヤノン株式会社 | Information processing device, its control method, and program |
JP2020177539A (en) * | 2019-04-19 | 2020-10-29 | キヤノン株式会社 | Information processing device and control method thereof |
DE112019007584T5 (en) * | 2019-07-29 | 2022-04-21 | Hewlett Packard Enterprise Development Lp | INTERFACE CONTROLLER FOR COMMERCIAL DEVICES |
US11068035B2 (en) * | 2019-09-12 | 2021-07-20 | Dell Products L.P. | Dynamic secure ACPI power resource enumeration objects for embedded devices |
US11681536B2 (en) * | 2019-12-06 | 2023-06-20 | Lattice Semiconductor Corporation | Fast boot systems and methods for programmable logic devices |
US11314867B2 (en) | 2020-03-26 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Determinations of compromise of controller code images |
US12086257B2 (en) * | 2020-04-24 | 2024-09-10 | Omnissa, Llc | Trusted firmware verification |
US11829773B2 (en) * | 2020-06-11 | 2023-11-28 | Verizon Patent And Licensing Inc. | Systems and methods for securely booting a network device with a service provider trust anchor |
JP7625391B2 (en) * | 2020-10-16 | 2025-02-03 | キヤノン株式会社 | Information processing device |
US11741232B2 (en) | 2021-02-01 | 2023-08-29 | Mellanox Technologies, Ltd. | Secure in-service firmware update |
US12289311B2 (en) | 2023-09-26 | 2025-04-29 | Mellanox Technologies, Ltd | In-service software update managed by network controller |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020024559A1 (en) * | 1994-08-09 | 2002-02-28 | Murray Richard A. | Printer ink cartridge |
US20020194389A1 (en) * | 2001-06-08 | 2002-12-19 | Worley William S. | Secure machine platform that interfaces to operating systems and customized control programs |
US20040213615A1 (en) * | 2003-04-25 | 2004-10-28 | Konica Minolta Business Technologies, Inc. | Printing control device and image forming device |
US20060179302A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US20070192611A1 (en) * | 2006-02-15 | 2007-08-16 | Datta Shamanna M | Technique for providing secure firmware |
US7424398B2 (en) * | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3652723B2 (en) | 1994-10-06 | 2005-05-25 | 株式会社東芝 | Network printing system and network printing method |
US6362893B1 (en) | 1998-03-06 | 2002-03-26 | Fargo Electronics, Inc. | Security printing and unlocking mechanism for high security printers |
US6775778B1 (en) | 1998-05-29 | 2004-08-10 | Texas Instruments Incorporated | Secure computing device having boot read only memory verification of program code |
US6735696B1 (en) | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
US6711675B1 (en) | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
US6892305B1 (en) * | 2000-10-12 | 2005-05-10 | International Business Machines Corporation | Method and system for booting up a computer system in a secure fashion |
-
2006
- 2006-06-22 US US11/425,893 patent/US7424398B2/en active Active
-
2008
- 2008-08-01 US US12/184,714 patent/US20080313453A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020024559A1 (en) * | 1994-08-09 | 2002-02-28 | Murray Richard A. | Printer ink cartridge |
US20020194389A1 (en) * | 2001-06-08 | 2002-12-19 | Worley William S. | Secure machine platform that interfaces to operating systems and customized control programs |
US20040213615A1 (en) * | 2003-04-25 | 2004-10-28 | Konica Minolta Business Technologies, Inc. | Printing control device and image forming device |
US20060179302A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US20070192611A1 (en) * | 2006-02-15 | 2007-08-16 | Datta Shamanna M | Technique for providing secure firmware |
US7424398B2 (en) * | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352721B1 (en) | 2007-06-06 | 2013-01-08 | American Megatrends, Inc. | Initiating an operating system boot from firmware |
US8028155B1 (en) * | 2007-06-06 | 2011-09-27 | American Megatrends, Inc. | Initiating an operating system boot from firmware |
US20100169750A1 (en) * | 2008-12-30 | 2010-07-01 | Yen Hsiang Chew | Firmware verification using system memory error check logic |
US8281229B2 (en) * | 2008-12-30 | 2012-10-02 | Intel Corporation | Firmware verification using system memory error check logic |
US20110154060A1 (en) * | 2009-12-17 | 2011-06-23 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US8250380B2 (en) * | 2009-12-17 | 2012-08-21 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US9483416B1 (en) * | 2010-10-21 | 2016-11-01 | Xilinx, Inc. | Secure processor operation using integrated circuit configuration circuitry |
US9612979B2 (en) * | 2010-10-22 | 2017-04-04 | Intel Corporation | Scalable memory protection mechanism |
US20170262386A1 (en) * | 2010-10-22 | 2017-09-14 | Yen Hsing CHEW | Scalable memory protection mechanism |
US20120102576A1 (en) * | 2010-10-22 | 2012-04-26 | Yen Hsiang Chew | Scalable Memory Protection Mechanism |
US20150067314A1 (en) * | 2013-08-30 | 2015-03-05 | Timothy J. Strauss | Secure firmware flash controller |
US9922195B2 (en) * | 2014-06-30 | 2018-03-20 | Samsung Electronics Co., Ltd. | Image processing apparatus and control method thereof |
US20150378883A1 (en) * | 2014-06-30 | 2015-12-31 | Samsung Electronics Co., Ltd. | Image processing apparatus and control method thereof |
WO2016167801A1 (en) * | 2015-04-17 | 2016-10-20 | Hewlett Packard Enterprise Development Lp | Firmware map data |
US10387652B2 (en) | 2015-04-17 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Firmware map data |
US11017091B2 (en) | 2015-04-17 | 2021-05-25 | Hewlett Packard Enterprise Development Lp | Firmware map data |
WO2020027815A1 (en) * | 2018-07-31 | 2020-02-06 | Hewlett-Packard Development Company, L.P. | Executing instructions |
CN112055846A (en) * | 2018-07-31 | 2020-12-08 | 惠普发展公司,有限责任合伙企业 | execute instruction |
EP3830690A4 (en) * | 2018-07-31 | 2022-03-09 | Hewlett-Packard Development Company, L.P. | Executing instructions |
CN110536042A (en) * | 2019-09-04 | 2019-12-03 | 珠海奔图电子有限公司 | Image forming apparatus and its control method, storage medium |
CN111614859A (en) * | 2020-05-18 | 2020-09-01 | 珠海奔图电子有限公司 | Image forming apparatus, security control method thereof, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20070300207A1 (en) | 2007-12-27 |
US7424398B2 (en) | 2008-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424398B2 (en) | Boot validation system and method | |
EP2741228B1 (en) | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof | |
US10878098B2 (en) | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof | |
US8645711B2 (en) | Information processor, method for verifying authenticity of computer program, and computer program product | |
CN101351807B (en) | Methods and systems for associating an embedded security chip with a computer | |
JP5116325B2 (en) | Information processing apparatus, software update method, and image processing apparatus | |
US8522045B2 (en) | Multi-functional system, security method, security program, and storage medium | |
US20140164753A1 (en) | System on chip for performing secure boot, image forming apparatus using the same, and method thereof | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
US8886955B2 (en) | Systems and methods for BIOS processing | |
US10346179B2 (en) | Information processing apparatus, server apparatus, information processing system, control method, and computer program | |
JP7574367B2 (en) | Information processing device, information processing method, and program | |
JP2016192159A (en) | Information processing apparatus, control method of information processing apparatus, and computer program | |
JP2008234217A (en) | Information processor, method of protecting information, and image processor | |
CN109711164B (en) | Information processing device and tampering detection method | |
JP7286381B2 (en) | Information processing device and its control method | |
JP2023101738A (en) | Information processing device, information processing method and program | |
JP2020187650A (en) | Controller system and method | |
JP7215116B2 (en) | Information processing device, information processing method and program | |
US12277037B2 (en) | Information processing apparatus | |
US20230126541A1 (en) | Information processing apparatus, control method for controlling the same and storage medium | |
JP5278520B2 (en) | Information processing apparatus and information protection method | |
JP2025067131A (en) | Image processing device and firmware verification method | |
CN115859294A (en) | Image forming control method and device, image forming device and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LEXMARK INTERNATIONAL, INC., KENTUCKY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BOOTH, JAMES RONALD;CORBETT, WILLIAM POHL, JR.;GOSTOMSKI, JOHN FRANCIS;AND OTHERS;REEL/FRAME:021331/0209 Effective date: 20060615 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |