Information processing device, information processing method, and program
Patent Information
- Application Number
- JP2021035241
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-03-05
- Publication Date
- 2025-01-06
- Estimated Expiration
- 2041-03-05
AI Technical Summary
【0007】 本発明によれば、記憶媒体における特定領域の改ざんの検知時に改ざんされた領域を特定することができる。
Smart Images

Figure 0007608211000001 
Figure 0007608211000002 
Figure 0007608211000003
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, an information processing method, and a program for detecting software tampering. [Background technology]
[0002] Attacks in which a third party tampers with software that controls an information processing device in an illegal manner to steal information assets in the information processing device, or attacks using an information processing device with tamped software as a springboard, have become a problem. The non-volatile memory in which the BIOS (Basic Input Output System), the software that is started first, is stored has the BIOS code section, data section, and layout information, which is the arrangement information of the code section and data section on the non-volatile memory. Tampering may involve tampering with the code section or tampering with the layout information. In order to prevent attacks such as those described above, a method has been devised for verifying that the software in the information processing device has not been tampered with by a third party. Furthermore, a method has also been devised for restoring the software when tampering with the software is detected. In particular, the BIOS and UEFI (Unified Extensible Firmware Interface), which are the software that is started first on the device, have limited means of recovery because basic functions such as network functions cannot be used in the initial startup period. Note that the BIOS is sometimes called the boot code because it is software related to the startup of the device.
[0003] In Patent Document 1, the embedded controller verifies the boot code for startup stored in the first memory, and when it is determined that the boot code has been tampered with, it overwrites it with the recovery boot code previously stored in the second memory to recover the original code. The recovery process returns the boot code for startup stored in the first memory to an unaltered state, so that the device can be started normally. Although the first memory can be accessed from the CPU, the second memory is configured so that it can be accessed only by the embedded controller in order to prevent unauthorized rewriting of the recovery boot code. In Patent Document 1, the boot code in the first memory and the boot code in the second memory are controlled by a policy so that they are the same. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] U.S. Patent No. 9,880,908 Summary of the Invention [Problem to be solved by the invention]
[0005] However, in Patent Document 1, since the signature value of the entire boot code is verified, it is not possible to identify the tampered area of the layout information of the non-volatile memory, etc. An object of the present invention is to make it possible to identify the tampered area when tampering of a specific area in a storage medium is detected. [Means for solving the problem]
[0006] The information processing device according to the present invention includes a first storage medium storing a first boot code, a boot code signature value for the entire first boot code, and a specific area signature value for a specific area in the first storage medium; reading information indicating a verification range related to the first boot code from a setting area in the first storage medium, and if tampering with the setting area in the first storage medium is not detected, performing a verification process according to the read information indicating the verification range;The present invention is characterized in that it has a tampering detection means for detecting tampering of the first boot code using the boot code signature value stored in the first storage medium, and for detecting tampering of the specific area using the specific area signature value stored in the first storage medium. Effect of the Invention
[0007] According to the present invention, when tampering with a specific area in a storage medium is detected, the tampered area can be specified. [Brief description of the drawings]
[0008] [Figure 1] FIG. 2 is a diagram illustrating a connection configuration between an MFP and a client PC. [Diagram 2] FIG. 2 illustrates an example of the configuration of a controller unit of the MFP. [Diagram 3] FIG. 2 is a diagram illustrating an example of the functional configuration of a controller unit of the MFP. [Figure 4] FIG. 13 is a diagram illustrating an example of a format of a setting area. [Diagram 5] Flash ROM and FlashROM FIG. 13 is a diagram illustrating an example of data to be placed in the [Figure 6] 10 is a flowchart showing an example of a process performed when the MFP is started up. [Figure 7] 11A and 11B are diagrams illustrating the relationship between each verification result and subsequent processing. [Figure 8] 13 is a flowchart showing another example of processing performed at the time of start-up of the MFP. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In this embodiment, verification of a boot code by an information processing device, updating of the boot code for recovery, and recovery processing when verification of the boot code fails will be described. In the following, an MFP (Multi-Function Peripheral) which is an image forming device will be described as an example of an information processing device, but the present invention is a technology that can be applied to information processing devices other than MFPs. Also, as an example of software, boot code (BIOS) will be described as an example, but the present invention can also be applied to, for example, verification of firmware for a NIC (Network Interface Card), etc.
[0010] [Device configuration] 1 is a diagram for explaining a connection form between an MFP and a client PC as information processing devices. The MFP 100 and the client PC 110 are connected via a LAN (Local Area Network) 120. The MFP 100 has an operation unit 102 that inputs and outputs data to and from a user, a printer unit 103 that outputs electronic data to paper media, and a scanner unit 104 that reads paper media and converts it into electronic data. The operation unit 102, the printer unit 103, and the scanner unit 104 are connected to a controller unit 101, and function as a multifunction peripheral according to the control of the controller unit 101. The client PC 110 performs processes such as sending a print job to the MFP 100.
[0011] FIG. 2 is a block diagram showing an example of the internal configuration of the controller unit 101 of the MFP. A CPU (Central Processing Unit) 201 performs main arithmetic processing in the controller. The CPU 201 is an example of a second control means. The CPU 201 is connected to a RAM (Random Access Memory) 202 via a bus. The RAM 202 is used by the CPU 201 as a working memory for arranging program data representing arithmetic instructions in the process of arithmetic processing by the CPU 201 and data to be processed. The CPU 201 is connected to an I / O controller 203 via the bus. The I / O controller 203 performs input / output to various devices according to instructions from the CPU 201. A SATA (Serial Advanced Technology Attachment) I / F 205 is connected to the I / O controller 203, and a Flash ROM (Read Only Memory) 211 is connected to the SATA I / F 205. The CPU 201 uses the Flash ROM 211 to store programs and document files for implementing the functions of the MFP.
[0012] A network I / F 204 is connected to the I / O controller 203, and a wired LAN device 210 is connected to the network I / F 204. The CPU 201 realizes communication on the LAN 120 by controlling the wired LAN device 210 via the network I / F 204. A panel I / F 206 is connected to the I / O controller 203, and the CPU 201 realizes user input / output to the operation unit 102 via the panel I / F 206. A printer I / F 207 is connected to the I / O controller 203, and the CPU 201 realizes output processing of paper media using the printer unit 103 via the printer I / F 207. A scanner I / F 208 is connected to the I / O controller 203, and the CPU 201 realizes document reading processing using the scanner unit 104 via the scanner I / F 208. A USB (Universal Serial Bus) I / F 209 is connected to the I / O controller 203 , and controls any device connected to the USB I / F 209 .
[0013] FlashROM The flash ROM 213 is connected to the CPU 201 and the built-in controller 212 via a bus, and stores a control program for implementing a first BIOS 360, which will be described later. The flash ROM 214 is connected to the embedded controller 212 via a bus and stores a second BIOS 520 which is binary data for recovery corresponding to the first BIOS 360. The second BIOS 520 is binary data used for recovery of the first BIOS 360, such as BIOS Golden Copy (BIOS GC). 213 and FlashROM 214 is, for example, a SPI (Serial Peripheral Interface)-Flash, which is a type of flash memory. In this embodiment, a Flash ROM is used as the first storage medium. 213, FlashROM as a second storage medium However, it does not have to be a Flash ROM, and a non-volatile storage medium having a similar function may be used.
[0014] The embedded controller 212 is a hardware chip that is started up first after the power of the MFP is turned on. 213、FlashROM 214 and the CPU 201 via a bus. The embedded controller 212 is a microcontroller that can operate independently of the CPU 201, and is equipped with a CPU, a ROM, a RAM, and other memories inside, and can perform calculation processing independently. The embedded controller 212 is an example of a second control means. The embedded controller 212 performs, for example, detection of tampering of the first BIOS 360, recovery of the first BIOS 360 using the second BIOS 520, and update processing of the second BIOS 520. After completing detection of tampering of the first BIOS 360 and update processing of the second BIOS 520, the embedded controller 212 sends a reset signal to the CPU 201 to start the CPU 201 and transfer the control. After transferring the control to the CPU 201, the embedded controller 212 enters a sleep state.
[0015] When performing a copy function, the CPU 201 loads program data (module data) from the Flash ROM 211 into the RAM 202 via the SATA I / F 205. The CPU 201 detects a copy instruction from the user to the operation unit 102 via the panel I / F 206 in accordance with the program (module) loaded into the RAM 202. When the CPU 201 detects a copy instruction, it receives an original as electronic data from the scanner unit 104 via the scanner I / F 208 and stores it in the RAM 202. The CPU 201 performs color conversion processing suitable for output on the image data stored in the RAM 202. The CPU 201 transfers the image data stored in the RAM 202 to the printer unit 103 via the printer I / F 207, and performs output processing onto paper media.
[0016] When PDL printing is performed, the client PC 110 issues a print instruction via the LAN 120. The CPU 201 loads program data (module data) from the Flash ROM 211 into the RAM 202 via the SATA I / F 205. The CPU 201 detects a print instruction via the network I / F 204 according to the program (module) loaded into the RAM 202. When the CPU 201 detects a PDL transmission instruction, it receives print data via the network I / F 204 and stores the print data in the Flash ROM 211 via the SATA I / F 205. When the CPU 201 has completed storing the print data, it develops the print data stored in the Flash ROM 211 into the RAM 202 as image data. The CPU 201 performs color conversion processing suitable for output on the image data stored in the RAM 202. The CPU 201 transfers the image data stored in the RAM 202 to the printer unit 103 via the printer I / F 207, and performs output processing onto paper media.
[0017] The following describes the functional configuration of the information processing apparatus according to this embodiment, detection of software tampering, recovery of tampered software, and update processing of the recovery software. [Function configuration] 3 is a diagram for explaining an example of a functional configuration realized by software executed by controller unit 101 of the MFP. Of the software executed by controller unit 101, only embedded controller software 350 is executed by embedded controller 212, and all the other software is executed by CPU 201.
[0018] The embedded controller 212 executes the embedded controller software 350. The embedded controller software 350 may be stored in any location that can be read and executed by the embedded controller 212. For example, the embedded controller software 350 may be stored in a ROM included in the embedded controller 212, or in a Flash ROM. 213,FlashROM 214.
[0019] First, the function of the embedded controller software 350 will be described. The tamper detection unit 351 detects the Flash ROM The embedded controller 212 verifies the first BIOS 360 using a first BIOS signature value 512 (described later) stored in the embedded controller 213, and detects whether or not it has been tampered with. As a signature verification method, for example, a signature verification algorithm using the RSA public key cryptosystem, which is a well-known technique, or an ECDSA signature verification algorithm using the elliptic curve public key cryptosystem can be used. The public key used for signature verification may be held in a ROM possessed by the embedded controller 212, or may be stored in a Flash ROM. 213、FlashROM The tamper detection unit 351 may be stored in the Flash ROM 214. The second BIOS 520 is verified using a second BIOS signature value 522 (described later) stored in the authentication unit 214 to detect whether or not the second BIOS 520 has been tampered with.
[0020] In addition, the tamper detection unit 351 detects the Flash ROM The first setting area 514 is verified using a first setting area signature value 513 (described later) stored in the authentication unit 213, and the presence or absence of tampering is detected. 213, the version information of the first BIOS 360, information on the verification range, and the like are set in the area shown in FIG. 213 stores a first specific area signature value 515 (described later) in the Flash ROM. The tamper detection unit 351 verifies whether or not a specific area such as layout information on the Flash ROM 213 has been tampered with. The second setting area 524 is verified using a second setting area signature value 523 (described later) stored in the authentication unit 214, and the presence or absence of tampering is detected. 214, the version information of the second BIOS 520, an example of which is shown in FIG. 4, information on the verification range, and the like are set. 214 stores a second specific area signature value 525 (described later) in the Flash ROM. 214 is verified to see whether a specific area on the
[0021] When the tampering detection unit 351 detects tampering of the first BIOS 360, the recovery unit 352 restores the Flash ROM The first BIOS 360 is restored using the second BIOS 520 stored in the BIOS 214. Erase the first BIOS360 on page 213 and write FlashROM to the freed area. This can be realized by writing the second BIOS 520 read from the Flash ROM 214 to the first BIOS 360. Since the second BIOS 520 is copy data of the first BIOS 360, the first BIOS 360 can be restored to a normal state by overwriting the first BIOS 360 that has been tampered with in this manner with the second BIOS 520. At this time, the restoration unit 352 restores the first BIOS 360 to a normal state. 214 second BIOS signature value 522, FlashROM The recovery unit 352 also overwrites the first BIOS signature value 512 in the Flash ROM 213. 214, the second setting area 524 and the second setting area signature value 523, The recovery unit 352 also overwrites the first setting area 514 and the first setting area signature value 513 of the Flash ROM 213. 214 second specific area signature value 525, FlashROM It also overwrites the first specific area signature value 515 of 213.
[0022] The information reading unit 353 reads information such as that shown in FIG. 213 holds a first setting area 514 or a Flash ROM 214. The information reading unit 353 operates after the tampering detection unit 351 has confirmed that the first setting area 514 or the second setting area 524 has not been tampered with, as will be described later in the description of FIG. 6. FIG. 5 shows an example of the format of the first setting area 514 or the second setting area 524. Each of the setting areas 514 and 524 is composed of, for example, BIOS version information, a number of verification targets indicating the number of verification ranges of the BIOS, and a start address and size of a plurality of verification ranges according to the number of verification targets. Note that FIG. 4 shows one set of the start address and size of the verification range, but includes a set of the start address and size of the verification range so as to be repeated for the number of verification targets. When a hash value is calculated for a non-contiguous area excluding an area where a setting value or the like is rewritten in the BIOS and an electronic signature is generated, the verification range becomes multiple and the number of verification targets becomes two or more.
[0023] The falsification detection unit 351 uses the first specific area signature value 515 to When verifying a specific area on 213, the specific area is FlashROM Alternatively, the range on the Flash ROM 213 where the second specific area signature value 525 exists may be described at the end of the first setting area 514. When verifying a specific area on 214, the specific area is The range on 214 in which the specific region exists may be written at the end of the second setting region 524. Also, the range in which the specific region exists may be hard-coded in the embedded controller software 350. An example of a specific region is the Flash Descriptor Region of the non-volatile memory, but any other partial region in which it is particularly desired to detect whether it has been tampered with may be used.
[0024] The version comparison unit 354 compares the version information of the first BIOS 360 with the version information of the second BIOS 520. 213 holds version information in the first setting area 514 and the Flash ROM Compare with the version information of the second setting area 524 held by 214. As the version information, generally used version information can be applied, and for example, it can be expressed as an increasing value representing the software update / release history in chronological order. For example, when the current version information of the BIOS is "1.0", the version information of the BIOS updated / released due to bugs, function additions, vulnerability fixes, etc. can be realized as a numerical value incremented to "1.1". In this case, as a result of comparing the version information, since "1.1" > "1.0", it can be determined that the BIOS with the version information "1.1" is the newer BIOS. The version comparison unit 354 can determine which of the first BIOS 360 and the second BIOS 520 is newer by comparing the version information of the first BIOS 360 and the version information of the second BIOS 520. The above-mentioned version information is just an example, and numbers and alphabets can be mixed. For example, by setting the current version to "1.0a" and the new version to "1.0b", the order of alphabets (the magnitude relationship a < b < c < ··· < z) can also be used as an expression of the chronological update history.
[0025] When the version comparison unit 354 determines that the first BIOS 360 is a newer version than the second BIOS 520, the first update unit 355 uses the first BIOS 360 to update the second BIOS 520. As the update method, for example, FlashROM The second BIOS 520 in the 214 is erased, and the Flash ROM is written to the area vacated by the erasure. This can be realized by writing the first BIOS 360 read from the Flash ROM 213. 214 second BIOS signature value 522 to FlashROM 5, first BIOS 360 includes first embedded controller software 350, first BIOS signature value 512, first setting area signature value 513, first setting area 514, and first specific area signature value 515. In this embodiment, first BIOS 360 includes first embedded controller software 350, first BIOS signature value 512, first setting area signature value 513, first setting area 514, and first specific area signature value 515 as shown in FIG. 5. Second BIOS 520 includes second embedded controller software 521, second BIOS signature value 522, second setting area signature value 523, second setting area 524, and second specific area signature value 525. Therefore, when the second BIOS 520 is rewritten, other information is also rewritten all at once.
[0026] After completing the processing of the above-mentioned functions, the embedded controller software 350 transmits a reset signal to the CPU 201 to transfer control to the CPU 201, and transitions to a sleep state.
[0027] Next, the functions executed by the CPU 201 will be described. The CPU 201 is 213. The CPU 201 loads a loader 370, initrd 380, kernel 390, and controller software 300 stored in the Flash ROM 211 into the RAM 202 and then executes them. The BIOS 360 executes basic processing for the CPU 201 to control the I / O controller 203 and the RAM 202. The BIOS 360 further includes processing for reading the loader 370 from the Flash ROM 211 and starting it up. The loader 370 loads the kernel 390 and initrd 380 of the OS from the Flash ROM 211 and executes the starting up processing. The initrd 380 loads the controller software 300 from the Flash ROM 211 and executes the starting up processing.
[0028] The operation control unit 301 displays a screen image for the user on the operation unit 102, detects user operations, and executes processing associated with screen components such as buttons displayed on the screen. The data storage unit 302 stores and reads data in the Flash ROM 211 upon request from another control unit. For example, if the user wants to change some device settings, the operation control unit 301 detects the contents input by the user to the operation unit 102, and the data storage unit 302 stores the contents as setting values in the Flash ROM 211 upon request from the operation control unit 301. The job control unit 303 controls job execution according to instructions from other control units. The image processing unit 304 processes image data into a format suitable for each purpose according to instructions from the job control unit 303.
[0029] The print processing unit 305 prints and outputs an image on a paper medium via the printer I / F 207 in accordance with instructions from the job control unit 303. The read processing unit 306 reads a placed document via the scanner I / F 208 in accordance with instructions from the job control unit 303. The network control unit 307 performs network settings such as an IP address in the TCP / IP control unit 308 at system startup or when a setting change is detected, in accordance with setting values stored in the data storage unit 302. The TCP / IP control unit 308 performs transmission and reception processing of network packets via the network I / F 204 in accordance with instructions from other controls. The USB control unit 309 controls the USB I / F 209, and controls any device connected via USB.
[0030] The second update unit 310 is a Flash ROM The first BIOS 360 held by the BIOS 213 is updated. For example, the update method is to update the Flash ROM with an update BIOS acquired via a network or a USB memory. This can be realized by overwriting the first BIOS 360 in the FlashROM 213. Similarly, the version information and signature value of the update BIOS that accompanies the update BIOS can be written to the FlashROM 213. The first BIOS version information and the first BIOS signature value in 213 are also updated. After the BIOS update process is completed, the second update unit 310 requests a reboot in order to update the second BIOS 520 by the first update unit 355 described above.
[0031] FIG. 5 shows a Flash ROM as the first storage medium. 213 and FlashROM as a second storage medium The following is an example of data to be stored in the flash ROM 214 accessible from the CPU 201 and the built-in controller 212. 213 holds a first BIOS (first boot code) 360. Also, the Flash ROM 213 holds first embedded controller software 350, first BIOS signature value 512, first setting area signature value 513, first setting area 514, and first specific area signature value 515. In this embodiment, a configuration will be described in which the verification range setting area of first BIOS 360 is included in first BIOS 360 as first setting area 514, but this is merely an example. First setting area 514 and first setting area signature value 513 are stored in Flash ROM 512, 513, and 514 separately from first BIOS 360, rather than being included in first BIOS 360. 213. The first BIOS signature value 512 is a digital signature value related to the first BIOS 360, and is used by the tamper detection unit 351 to verify the first BIOS 360 and detect whether it has been tampered with, as described above. The first BIOS signature value 512 is an example of a boot code signature value for the entire first boot code.
[0032] On the other hand, the Flash ROM that can be accessed only from the embedded controller 212 214 holds a second BIOS (second boot code) 520. Also, the Flash ROM 214 holds the second embedded controller software 521, the second BIOS signature value 522, the second setting area signature value 523, the second setting area 524, and the second specific area signature value 525. In this embodiment, as in the above, the verification range setting area of the second BIOS 520 is included in the second BIOS 520 as the second setting area 524. Similarly, the second BIOS signature value 522 is a digital signature value for the second BIOS 520. The second BIOS signature value 522 is an example of a boot code signature value for the entire second boot code. Here, the second BIOS 520 is binary data used to restore the first BIOS 360 to a normal state by the recovery unit 352 as described above. Unless there is tampering, data loss, or booting immediately after updating the first BIOS 360, the second BIOS 520 is usually stored in the FlashROM The second embedded controller software 521 and the second BIOS signature value 522 are the same binary data (copy data) as the first BIOS 360 in the Flash ROM 213. The first embedded controller software 350 in the flash ROM 213 is the same binary data (copy data) as the first BIOS signature value 512. The second setting area signature value 523, the second setting area 524, and the second specific area signature value 525 are also stored in the flash ROM 213. The resulting binary data (copy data) is the same as the first set area signature value 513, the first set area 514, and the first specific area signature value 515 of 213.
[0033] [Processing flow] The process of detecting software tampering, restoring tampered software, and updating the recovery software in this embodiment will be described with reference to Fig. 6. Fig. 6 is a flow chart showing an example of the process at the time of start-up of the MFP in this embodiment.
[0034] In step S 601 , after the MFP 100 is powered on, the embedded controller 212 starts the embedded controller software 350 .
[0035] In step S602, the tampering detection unit 351 verifies whether or not the first setting area 514 related to the first BIOS 360 and the second setting area 524 related to the second BIOS 520 have been tampered with by signature verification. The tampering detection unit 351 verifies the first setting area 514 using the first setting area signature value 513, and verifies the second setting area 524 using the second setting area signature value 523. The embedded controller 212 then determines whether or not the signature verification has been successful in at least one of the first setting area 514 and the second setting area 524.
[0036] If it is determined that the signature verification of both the first setting area 514 and the second setting area 524 has failed (NO in step S602), then in step S618 the embedded controller 212 notifies the user of a failure to start up the MFP 100. The notification of the failure to start up may be made by recording a log, by issuing an error notification via the operation unit 102, or by notifying the user of the occurrence of an error by, for example, blinking an LED or a power lamp provided on the MFP 100 and the embedded controller 212.
[0037] If it is determined that the signature verification of at least one of the first setting area 514 and the second setting area 524 is successful (YES in step S602), the process proceeds to step S603. In step S603, the information reading unit 353 stores whether the verification was successful or not, and then reads the first setting area 514 and the second setting area 524 that were successfully verified.
[0038] In step S604, the embedded controller 212 determines whether or not the first setting area 514 has been successfully read. If the embedded controller 212 determines that the verification of the first setting area 514 and the reading of the information have been successful (YES in S604), the process proceeds to step S605. On the other hand, if the embedded controller 212 determines that the verification of the first setting area 514 has failed or the reading of the information in the first setting area 514 has failed (NO in S604), the process proceeds to step S607.
[0039] In step S605, the tampering detection unit 351 verifies whether the first BIOS 360 has been tampered with by using the first BIOS signature value 512. During the verification, the tampering detection unit 351 calculates a hash value by using the number of verification targets, the start address of the verification range, and the size of the verification range that are set in the first setting area 514 that was read in step S603. The embedded controller 212 reads data from the start address of the verification range of 213 to the range of the size of the verification range and executes an update process of the hash function, and repeats this process for the number of verification targets. Finally, the falsification detection unit 351 executes a finalize process of the hash function to calculate a hash value, and uses the calculated hash value in the verification process related to the first BIOS 360. The embedded controller 212 then determines whether or not the signature verification of the first BIOS 360 has been successful. If the embedded controller 212 determines that the verification of the first BIOS 360 has been successful (YES in S605), the process proceeds to step S606, and if the embedded controller 212 determines that the verification of the first BIOS 360 has failed (NO in S605), the process proceeds to step S607.
[0040] In step S606, the falsification detection unit 351 performs falsification on the Flash ROM using the first specific area signature value 515. Then, the embedded controller 212 verifies the specific area of the Flash ROM 213. The embedded controller 212 determines whether the signature verification of the specific area of the Flash ROM 213 has been successful. If it is determined that the verification of the specific area 213 has been successful (YES in S606), the process proceeds to step S607.
[0041] On the other hand, FlashROM If it is determined that the verification of the specific area of 213 has failed (NO in S606), then in step S608, the embedded controller 212 stops the startup of the MFP 100. By stopping the startup, the user can determine that the verification of the specific area has failed.
[0042] In step S607, the embedded controller 212 determines the subsequent process based on the results of each of the following processes. Comparison result between the version information of the first setting area 514 and the version information of the second setting area 524 The signature verification result of the first setting area 514 and the signature verification result of the second setting area 524 performed in step S602 The result of signature verification of the first BIOS 360 performed in step S605
[0043] (1) If the signature verification of the first setting area 514 fails, or if the signature verification of the first BIOS 360 fails (verification result A), the embedded controller 212 determines that the first BIOS 360 has been tampered with and proceeds to step S609. (2) If the signature verification of the second setting area 524 fails, or if the signature verification of the first BIOS 360 is successful and the version information is different (verification result B), the embedded controller 212 proceeds to step S613. (3) If the signature verification results of the first setting area 514, the second setting area 524, and the first BIOS 360 are all successful and the version information is the same (verification result C), the embedded controller 212 proceeds to step S615.
[0044] In step S609, which is reached when the above-mentioned verification result is A, the embedded controller 212 determines whether or not the signature verification of the second setting area 524 performed in step S602 was successful. If it is determined that the signature verification of the second setting area 524 failed (NO in step S609), then in step S618 the embedded controller 212 notifies the failure of startup of the MFP 100. On the other hand, if it is determined that the signature verification of the second setting area 524 was successful (YES in step S609), the process proceeds to step S610.
[0045] In step S610, in order to confirm the authenticity of the second BIOS 520, the falsification detection unit 351 verifies whether the second BIOS 520 has been falsified using the second BIOS signature value 522. In the verification, the falsification detection unit 351 calculates a hash value using the number of verification targets, the start address of the verification range, and the size of the verification range set in the second setting area 524 read in step S603, and performs signature verification of the second BIOS 520. Then, the embedded controller 212 determines whether the signature verification of the second BIOS 520 has been successful. If it is determined that the signature verification of the second BIOS 520 has failed (NO in step S610), in step S618, the embedded controller 212 notifies the MFP 100 of a failure in starting up. On the other hand, if it is determined that the signature verification of the second BIOS 520 has been successful (YES in S610), the process proceeds to step S612.
[0046] In step S611, the recovery unit 352 214, the second BIOS 520, FlashROM For example, the recovery unit 352 recovers the first BIOS 360 in the Flash ROM 213. Erase 213 1st BIOS360 and FlashROM The second BIOS 520 (including the information contained therein) read from the embedded controller 214 is written, and the first BIOS 360 is overwritten with the second BIOS 520. In this way, the embedded controller 212 restores the first BIOS 360 after verifying the authenticity of the copy source.
[0047] After the first BIOS 360 is restored, in order to confirm that the restoration has been performed correctly, in step S612, the alteration detection unit 351 performs signature verification of the restored first BIOS 360. At this time, the alteration detection unit 351 verifies and re-reads the first setting area 514 again, calculates a hash value using the read number of verification targets, the start address of the verification range, and the size of the verification range, and performs signature verification of the first BIOS 360. Then, the embedded controller 212 determines whether or not the signature verification of the first BIOS 360 has been successful. If it is determined that the signature verification of the first BIOS 360 has failed (NO in step S612), in step S618, the embedded controller 212 notifies the MFP 100 of a failure to start up. On the other hand, if it is determined that the signature verification of the first BIOS 360 has been successful (YES in S612), the process proceeds to step S615.
[0048] In step S613, which is reached when the verification result is B, the first update unit 354 213 1st BIOS360 FlashROM 214, the second BIOS 520 is updated.
[0049] After the second BIOS 520 is updated, in order to confirm that the update has been performed correctly, in step S614, the signature of the updated second BIOS 520 is verified. At this time, the falsification detection unit 351 verifies and re-reads the second setting area 524 again, calculates a hash value using the read number of verification objects, the start address of the verification range, and the size of the verification range, and performs signature verification of the second BIOS 520. Then, the embedded controller 212 determines whether or not the signature verification of the second BIOS 520 has been successful. If it is determined that the signature verification of the second BIOS 520 has failed (NO in step S614), in step S618, the embedded controller 212 notifies the MFP 100 of a failure to start up. On the other hand, if it is determined that the signature verification of the second BIOS 520 has been successful (YES in S614), the process proceeds to step S615.
[0050] In step S615, the embedded controller 212 transmits a reset signal to the CPU 201 to transfer control to the CPU 201. Then, in step S616, the embedded controller 212 transitions to a sleep state. Upon receiving the reset signal, in step S617, the CPU 201 starts up and reads the Flash ROM. The CPU 201 then reads out the first BIOS 360 in the flash ROM 213 and starts it up. After that, the CPU 201 loads a loader 370, an initrd 380, and a kernel 390 stored in the flash ROM 211 into the RAM 202 and executes them to start up the OS. After that, the CPU 201 loads the controller software 300 stored in the flash ROM 211 into the RAM 202 and executes them.
[0051] Figure 7 shows subsequent processing based on the results of comparing the version information between the first setting area 514 and the second setting area 524, the results of signature verification of the first setting area 514, the results of signature verification of the second setting area 524, and the results of signature verification of the first BIOS 360 in the processing shown in Figure 6.
[0052] As described above, according to this embodiment, a signature value for verifying a specific area is provided in addition to the signature value for the entire BIOS, and the tampered area can be identified by stopping the startup when tampering with the specific area is detected. Also, the BIOS can be appropriately restored or updated according to the signature verification results of the first setting area 514, the second setting area 524, and the first BIOS 360 and the comparison results of the BIOS version information.
[0053] (Variation 1) In the above-described embodiment, the embedded controller 212 verifies the specific area in step S606, and if the verification fails, the process proceeds to step S608 to stop the startup of the MFP 100. When the startup of the MFP 100 is stopped in step S608, the startup of the MFP 100 may be stopped as in the process of step S618. The startup stop may be notified to the user by recording a log, notifying an error via the operation unit 102, or by blinking an LED or a power lamp of the MFP 100 and the embedded controller 212. When the notification is made by blinking an LED or a power lamp, it is possible to notify that the verification of the specific area has failed by using a blinking pattern different from that in step S618. Note that, when there are multiple specific areas, it is possible to detect and notify tampering of multiple specific areas by making the corresponding specific area signature values multiple and changing the log output or the blinking method of the LED or the power lamp according to the detected specific area.
[0054] (Variation 2) In the embodiment described above, the specific area was not included in the verification target using the BIOS signature value. A case where the verification target using the BIOS signature value includes a specific area will be described with reference to FIG. 8. In FIG. 8, the processing of steps S801 to S805 is similar to the processing of steps S601 to S605 shown in FIG. 6, so the description will be omitted. In step S806, the tampering detection unit 351 checks whether the Flash ROM 213 is verified. In the next step S807, even if the specific area has been tampered with, if the signature verification of the first BIOS 360 performed in step S805 fails, the embedded controller 212 proceeds to step S808 to attempt recovery of the first BIOS 360. In step S808, the embedded controller 212 notifies the result of the signature verification of the first BIOS 360 performed in step S805 and the result of the signature verification of the specific area performed in step S806. Thereafter, the process of steps S809 to S812 is performed in the same manner as the process of steps S609 to S612 shown in FIG. 6, and in step S811, the recovery unit 352 recovers the first BIOS 360 using the second BIOS 520. In this way, even if the first BIOS 360 is recovered, it is possible to identify which area has been tampered with and to know the tendency of the attack.
[0055] (Variation 3) As in the above-described embodiment, even if the specific area is not included in the verification target using the BIOS signature value, processing can be performed according to the flowchart shown in Fig. 8. That is, when determining in step S807, if the signature verification result of the first BIOS 360 is successful and the signature verification result of the specific area is unsuccessful, the process proceeds to step S609 and recovery can be performed. With this modification, any part on the storage medium can be the target of recovery.
[0056] (Other embodiments) In the above-mentioned embodiment, tamper detection is performed using a signature value generated from one hash value generated by executing a hash function on discontinuous verification ranges. As another implementation method, it is also possible to generate a hash value and a signature value for each divided verification range and use them for verification.
[0057] In the above-mentioned embodiment and its modified example, the BIOS has been described as an example, but the present invention is also applicable to firmware and software (programs) other than the BIOS. For example, if the MFP 100 is equipped with a NIC, a bus is connected so that the embedded controller 212 can access the firmware of the NIC. Then, copy data of the NIC firmware is written to a Flash ROM that can be accessed only by the embedded controller 212. 214, it is possible to realize recovery of the NIC firmware and updating of the copy data of the NIC firmware.
[0058] In the above-described embodiment and its modified example, the embedded controller 212 directly starts the embedded controller software 350, but it may be started in multiple stages. For example, multiple stages can be achieved by storing startup software that detects tampering (signature verification) of the embedded controller software 350 and starts it up in the ROM of the embedded controller 212. In this way, the startup software stored in the ROM of the embedded controller 212 starts up first, and then the startup software stored in the Flash ROM 214 is verified for the presence or absence of tampering with the embedded controller software 350 stored therein. Then, only if there is no tampering, the embedded controller software 350 can be controlled to start up. In this case, the digital signature value of the embedded controller software 350 is separately written to the Flash ROM. The information will be kept within 214.
[0059] The present invention can also be realized by executing the following process: That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the programs.
[0060] It should be noted that the above-mentioned embodiments are merely examples of the implementation of the present invention, and the technical scope of the present invention should not be interpreted as being limited by these embodiments. In other words, the present invention can be implemented in various forms without departing from its technical concept or main features. [Explanation of symbols]
[0061] 101: Controller unit 201: CPU 202: RAM 212: Embedded controller 213, 214: FlashROM 300: Controller software 350: Embedded controller software 351: Tamper detection unit 352: Recovery unit 353: Information reading unit 354: Version comparison unit 355: First update unit 360: BIOS 370: Loader 380: initrd 390: Kernel
Claims
1. a first storage medium storing a first boot code, a boot code signature value for the entire first boot code, and a specific area signature value for a specific area in the first storage medium; an information processing device comprising: a tampering detection means for reading information indicating a verification range related to the first boot code from a setting area in the first storage medium, and if no tampering is detected in the setting area in the first storage medium, detecting tampering of the first boot code using the boot code signature value stored in the first storage medium in accordance with the read information indicating the verification range, and detecting tampering of the specific area using the specific area signature value stored in the first storage medium.
2. 2. The information processing apparatus according to claim 1, wherein when the tampering detection means detects tampering with the specific area in the first storage medium, startup of the information processing apparatus is stopped.
3. 3. The information processing apparatus according to claim 2, wherein when said tampering detection means detects tampering with said specific area in said first storage medium, a notification is given that startup of said information processing apparatus has been stopped.
4. a second storage medium for storing a second boot code which is copy data of the first boot code; An information processing device as described in any one of claims 1 to 3, characterized in that it has a recovery means for recovering the first boot code using the second boot code stored in the second storage medium when the tampering detection means detects tampering of the first boot code.
5. the second storage medium stores a boot code signature value for the entire second boot code; the tampering detection means detects tampering of the second boot code by using the boot code signature value stored in the second storage medium; 5. The information processing apparatus according to claim 4, wherein the recovery means recovers the first boot code when the tampering detection means does not detect any tampering of the second boot code.
6. a first control means having the tamper detection means and the recovery means; a second control means for reading and starting the first boot code after the first control means detects tampering of the first boot code, the first storage medium is connected to the first control means and the second control means; 6. The information processing apparatus according to claim 4, wherein the second storage medium is connected only to the second control means.
7. An information processing device as described in any one of claims 4 to 6, characterized in that when a specific area in the first storage medium is included in the area of the first boot code, when the tampering detection unit detects tampering of the specific area in the first storage medium, the information processing device records or notifies the detection of tampering of the specific area before restoring the first boot code.
8. The information processing device according to any one of claims 4 to 7, characterized in that the recovery means recovers the first boot code when the tampering detection unit detects tampering of the specific area in the first storage medium.
9. The information processing device described in any one of claims 1 to 8, characterized in that the tampering detection means reads version information and information indicating a verification range related to the first boot code from a setting area in the first storage medium, and if tampering of the setting area in the first storage medium is not detected, detects tampering of the first boot code according to the information indicating the verification range that has been read.
10. 10. The information processing apparatus according to claim 1, wherein the information processing apparatus is an image forming apparatus.
11. An information processing method performed by an information processing device, a first storage step of storing a first boot code, a boot code signature value for the entire first boot code, and a specific area signature value for a specific area in a first storage medium in the information processing device; a first tampering detection step of reading information indicating a verification range related to the first boot code from a setting area in the first storage medium, and detecting tampering of the first boot code using the boot code signature value stored in the first storage medium in accordance with the read information indicating the verification range if tampering of the setting area in the first storage medium is not detected; and a second tampering detection step of detecting tampering with the specific area by using the specific area signature value stored in the first storage medium.
12. The computer of the information processing device a first storage step of storing a first boot code, a boot code signature value for the entire first boot code, and a specific area signature value for a specific area in a first storage medium in the information processing device; a first tampering detection step of reading information indicating a verification range related to the first boot code from a setting area in the first storage medium, and detecting tampering of the first boot code using the boot code signature value stored in the first storage medium in accordance with the read information indicating the verification range if tampering of the setting area in the first storage medium is not detected; and a second tampering detection step of detecting tampering with the specific area by using the specific area signature value stored in the first storage medium.
Citation Information
Patent Citations
Information processor and program
JP2018081577A
Information processing device, and information processing method
JP2020140561A
Recovering from compromised system boot code
US9880908B2