Control device

The control device verifies programs across multiple units to ensure safe startup by using tamper-resistant areas and OTP storage, addressing the challenge of program tampering without requiring HSMs in all units, enhancing safety and reducing costs.

JP7610428B2Active Publication Date: 2025-01-08ASTEMO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021032856
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-03-02
Publication Date
2025-01-08
Estimated Expiration
2041-03-02

AI Technical Summary

Technical Problem

Existing control devices with multiple arithmetic processing units face challenges in detecting tampering of programs, leading to difficulties in ensuring safe startup, especially when not all units are equipped with high-security functions like HSMs, which increases costs.

Method used

A control device with a first and second arithmetic processing unit, where the first unit verifies the integrity of both its own and the second unit's programs, granting startup permission only after verification, using a tamper-resistant secure area and OTP areas to prevent unauthorized execution.

Benefits of technology

Ensures safe and efficient startup of control devices with multiple processing units by detecting tampering and preventing unauthorized program execution, reducing the need for high-security functions in all units, thus maintaining safety and cost-effectiveness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007610428000001
    Figure 0007610428000001
  • Figure 0007610428000002
    Figure 0007610428000002
  • Figure 0007610428000003
    Figure 0007610428000003
Patent Text Reader

Abstract

To easily realize safe startup of a control device having a plurality of arithmetic processing units.SOLUTION: A control device 5 includes a first microcomputer 1 including a processor executing a first program, a second microcomputer 2 including a processor executing a second program, and a storage device 3 storing the second program. The first microcomputer 1 has a verification unit 1221 configured to verify whether each of the first program and the second program has been tampered with, and a first acquisition unit 1126 configured to acquire the second program from the storage device 3 when the verification unit 1221 verifies that the first program has not been tampered with. The first microcomputer 1 has a startup permission notification unit 1124 configured to notify the second microcomputer 2 of startup permission of the second program when the verification unit 1221 verifies that the second program has not been tampered with. The second microcomputer 2 has a second acquisition unit 222 configured to acquire the second program from the storage device 3, and a startup execution unit 221 configured to start the second program when the startup permission is notified.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a control device. [Background technology]

[0002] For example, an on-board control device that controls a vehicle is equipped with a secure boot function in which a processing unit such as a microcontroller (hereinafter, referred to as a microcomputer) verifies the safety of a program at startup. In order to improve the safety of the secure boot function, it is preferable to equip the processing unit with a security function of a dedicated module that ensures tamper resistance, such as a Hardware Security Module (HSM). On the other hand, since the control device includes multiple processing units, if a security function such as an HSM is equipped in all of the multiple processing units, the cost of the control device will increase significantly.

[0003] As a technology for realizing a secure boot of a control device without equipping all of a plurality of arithmetic processing devices with a security function such as an HSM, for example, the technology disclosed in Patent Document 1 is known. Patent Document 1 discloses a secure boot technology for a device having two arithmetic processing devices, and discloses a technology in which one arithmetic processing device verifies at the time of boot whether or not a program executed in the other arithmetic processing device has been tampered with. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2020-047064 A Summary of the Invention [Problem to be solved by the invention]

[0005] However, Patent Document 1 does not disclose a function for verifying the program itself executed in one of the arithmetic processing devices. With the technology disclosed in Patent Document 1, even if the program itself executed in one of the arithmetic processing devices is tampered with, it is difficult to detect this. Therefore, the technology disclosed in Patent Document 1 has room for improvement in terms of easily realizing safe startup of the devices.

[0006] The present invention has been made in view of the above, and has an object to easily realize safe startup of a control device including a plurality of arithmetic processing units. [Means for solving the problem]

[0007] In order to solve the above problem, the control device of the present invention is a control device comprising a first arithmetic processing device including a processor that executes a first program, a second arithmetic processing device including a processor that executes a second program, and a storage device in which the second program is stored, wherein the first arithmetic processing device has a verification unit that verifies whether the first program and the second program have been tampered with, a first acquisition unit that acquires the second program from the storage device when the verification unit verifies that the first program has not been tampered with, and a startup permission notification unit that notifies the second arithmetic processing device of startup permission to allow the second arithmetic processing device to start the second program when the verification unit verifies that the second program has not been tampered with, and the second arithmetic processing device has a second acquisition unit that acquires the second program from the storage device and a startup execution unit that launches the second program when the startup permission is notified. Effect of the Invention

[0008] According to the present invention, it is possible to easily realize safe startup of a control device having a plurality of arithmetic processing units. Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]

[0009] [Figure 1] FIG. 2 is a diagram showing the functional configuration of a control device according to the first embodiment. [Diagram 2] 2 is a sequence diagram showing a flow of a start-up process of the control device shown in FIG. 1; [Diagram 3] 2 is a flowchart showing the flow of an update process of the control device shown in FIG. 1; [Figure 4] FIG. 11 is a diagram showing the functional configuration of a control device according to a second embodiment. [Diagram 5] 5 is a sequence diagram showing a flow of a start-up process of the control device shown in FIG. 4. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that components with the same reference numerals in each embodiment have the same functions in each embodiment unless otherwise specified, and the description thereof will be omitted.

[0011] [Embodiment 1] In this embodiment, an example of a control device equipped with a secure boot function that verifies the security of a program at the time of startup of a processor such as a microcomputer will be described. However, the technical idea of ​​the present invention can be widely applied to information security technologies such as encryption processing and digital signature verification processing.

[0012] The control device 5 is a device that electrically controls a controlled object. The controlled object of the control device 5 is not particularly limited. The controlled object of the control device 5 may be a machine or device with a relatively long product life, such as an automobile. For example, the control device 5 may be configured by an on-board ECU.

[0013] FIG. 1 is a diagram showing a functional configuration of a control device 5 according to the first embodiment.

[0014] The control device 5 includes a first microcomputer 1, a second microcomputer 2, and a storage device 3. The storage device 3 is connected to each of the first microcomputer 1 and the second microcomputer 2 via a communication bus 4. However, the communication bus 4 is physically composed of a plurality of communication buses. The standards of the plurality of communication buses that compose the communication bus 4 may all be the same or may be different. The standard is, for example, SPI (Serial Peripheral Interface) or MII (Media Independent Interface), etc.

[0015] The first microcomputer 1 is an example of a "first arithmetic processing device" in the claims. The second microcomputer 2 is an example of a "second arithmetic processing device" in the claims.

[0016] The first microcomputer 1 includes a main control unit 111, a main program storage unit 112, a main data storage unit 113, and a communication unit 114, which are interconnected by a bus 115. In this embodiment, the area of ​​the first microcomputer 1 to which these components belong and the bus 115 are also referred to as the "main area 11."

[0017] Furthermore, the first microcomputer 1 includes a secure control unit 123, a secure program storage unit 122, and a secure data storage unit 121, which are interconnected by a bus line 125. In this embodiment, the area of ​​the first microcomputer 1 to which these components belong and the bus line 125 are also referred to as the "secure area 12."

[0018] The main area 11 is an area in the first microcomputer 1 other than the secure area 12. The secure area 12 is an area that is tamper-resistant. In other words, the first microcomputer 1 has the secure area 12 that is tamper-resistant, and the main area 11 that is an area other than the secure area 12. Furthermore, the secure area 12 is an area in which programs and data can be rewritten.

[0019] In order to ensure safety, the bus line 115 of the main area 11 and the bus line 125 of the secure area 12 are not directly connected, but are indirectly connected via a secure control unit 123. Sending and receiving of commands and data between the main area 11 and the secure area 12 is performed via the secure control unit 123.

[0020] The main control unit 111 has a processor (CPU, MPU or DSP) and executes a program stored in the main program storage unit 112. The main control unit 111 is an example of a "processor" included in the "first arithmetic processing unit" described in the claims.

[0021] The main program storage unit 112 stores a program executed by the main control unit 111. The main data storage unit 113 stores data used when the main control unit 111 executes a program. Each of the main program storage unit 112 and the main data storage unit 113 is configured with a non-volatile storage device such as a flash memory, an EEPROM, an SSD, an FRAM (registered trademark, the same applies below) or a magnetic disk. Each of the main program storage unit 112 and the main data storage unit 113 may be configured with a plurality of storage devices. The main program storage unit 112 may store a program in a distributed manner across a plurality of storage devices. The main data storage unit 113 may store data in a distributed manner across a plurality of storage devices.

[0022] Each of the main program storage unit 112 and the main data storage unit 113 may be a memory having a ROM, which is a non-volatile storage device, and a RAM, which is a volatile storage device. The ROM stores an unchanging program. The RAM may be a high-speed and volatile storage device such as a DRAM, and can temporarily store the program executed by the main control unit 111 and data used when executing the program. The main program storage unit 112 and the main data storage unit 113 may have a part or the whole of each other as components. Even if there is no clear distinction between them as devices, it is sufficient that the main program storage unit 112 is a part that stores a program, and the main data storage unit 113 is a part that stores data.

[0023] The main program storage unit 112 stores a main control program 1121, a first verification expected value 1122, a main update unit 1123, a start permission notification unit 1124, an acquisition permission notification unit 1125, and a first acquisition unit 1126. The main control program 1121, the main update unit 1123, the start permission notification unit 1124, the acquisition permission notification unit 1125, and the first acquisition unit 1126 are programs executed by the main control unit 111, and are programs for realizing the function of the first microcomputer 1 in the control device 5.

[0024] In this embodiment, a program stored in the main program storage unit 112 and executed by the main control unit 111 is also referred to as a "first program." The first program is, for example, a main control program 1121, a main update unit 1123, a start permission notification unit 1124, an acquisition permission notification unit 1125, and a first acquisition unit 1126. In addition, in this embodiment, a program stored in the second microcomputer storage area 31 of the storage device 3 and executed by the control unit 21 is also referred to as a "second program." The second program is, for example, a control program 311.

[0025] The main control program 1121 is a program for the control device 5 to control the control target, and is a program executed by the main control unit 111 of the first microcomputer 1. There may be multiple main control programs 1121 to realize multiple control functions of the control device 5. The first verification expected value 1122 is a value expected to be calculated in a process of verifying whether the first program has been tampered with. The first verification expected value 1122 may be stored in a location from which the first microcomputer 1 can read out. The first verification expected value 1122 may be stored, for example, in any of the main data storage unit 113, the secure data storage unit 121, or the secure program storage unit 122.

[0026] The first acquisition unit 1126 acquires the second program stored in the second microcomputer storage area 31 and the second verification expected value 312 from the storage device 3 when the verification unit 1221 verifies that the first program has not been tampered with. The acquisition permission notification unit 1125 notifies the second microcomputer 2 of an acquisition permission that permits the second microcomputer 2 to acquire the second program from the storage device 3 when the verification unit 1221 verifies that the first program has not been tampered with. The acquisition permission notification unit 1125 notifies the second microcomputer 2 of the acquisition permission before the start permission notification unit 1124 notifies the second microcomputer 2 of the start permission. The start permission notification unit 1124 notifies the second microcomputer 2 of the start permission that permits the second microcomputer 2 to start the second program when the verification unit 1221 verifies that the second program has not been tampered with.

[0027] When the verification unit 1221 verifies that the update package has not been tampered with, the main update unit 1123 updates, with the update package, the program or data to be updated that is stored in the main program storage unit 112 or the main data storage unit 113, or the second microcomputer storage area 31 of the storage device 3. Furthermore, when the verification unit 1221 verifies that the update package has not been tampered with, the main update unit 1123 cooperates with the secure update unit 1223 to update, with the update package, the program or data to be updated that is stored in the secure program storage unit 122 or the secure data storage unit 121.

[0028] An update target is a program or data that is predetermined as a target for update. An update package is a program or data for updating an update target. An update package includes a verification expected value that is expected to be calculated in a process for verifying whether or not the update package has been tampered with. The update package is transmitted to the control device 5 from an external device of the control device 5, such as a center server or a terminal.

[0029] Although not shown, the main data storage unit 113 stores control data. This control data is data used for processing by the main control program 1121, the main update unit 1123, the start permission notification unit 1124, the acquisition permission notification unit 1125, and the first acquisition unit 1126 executed by the main control unit 111, and is data for realizing the function of the first microcomputer 1 in the control device 5. There may be multiple pieces of this control data depending on the purpose.

[0030] The communication unit 114 has a function for the first microcomputer 1 to communicate with other components of the control device 5 including the second microcomputer 2, and a function for communicating with devices external to the control device 5. The communication unit 114 may be configured with a communication module conforming to standards such as SPI, MII, CAN, CAN FD, Ethernet, or FlexRay. The communication unit 114 may be configured with a plurality of communication units depending on the application and communication method. The communication unit 114 may be shared with a communication module that performs other communication. Note that, when performing wireless communication, the communication unit 114 is configured to include an antenna and a modulation / demodulation circuit. When performing wired communication, the communication unit 114 is configured to include a connector and a modulation / demodulation circuit.

[0031] The secure control unit 123 is configured by a secure microcomputer such as an HSM, SHE, or TPM, or a processor called a secure core (CPU, MPU, or DSP). The secure control unit 123 executes a program stored in the secure program storage unit 122. The secure control unit 123 is tamper-resistant. The HSM, SHE, or TPM constituting the secure control unit 123 may be configured to include the secure program storage unit 122 and the secure data storage unit 121.

[0032] The secure program storage unit 122 stores a program executed by the secure control unit 123. The secure data storage unit 121 stores data used when the secure control unit 123 executes a program. Each of the secure program storage unit 122 and the secure data storage unit 121 is tamper-resistant. Each of the secure program storage unit 122 and the secure data storage unit 121 is configured by a non-volatile storage device such as a flash memory, an EEPROM, an SSD, an FRAM, or a magnetic disk. Each of the secure program storage unit 122 and the secure data storage unit 121 may be configured by a plurality of storage devices. The secure program storage unit 122 may store a program in a distributed manner across a plurality of storage devices. The secure data storage unit 121 may store a program in a distributed manner across a plurality of storage devices.

[0033] Each of the secure program storage unit 122 and the secure data storage unit 121 may be a memory having a ROM, which is a non-volatile storage device, and a RAM, which is a volatile storage device. The ROM stores an unchanging program. The RAM may be a high-speed and volatile storage device such as a DRAM, and can temporarily store the program executed by the secure control unit 123 and data used when executing the program. The secure program storage unit 122 and the secure data storage unit 121 may have a part or the whole of each other as components. Even if there is no clear distinction between them as devices, it is sufficient that the secure program storage unit 122 is a part that stores programs, and the secure data storage unit 121 is a part that stores data.

[0034] The secure program storage unit 122 stores a verification unit 1221, a cryptographic processing unit 1222, and a secure update unit 1223. The verification unit 1221, the cryptographic processing unit 1222, and the secure update unit 1223 are programs executed by the secure control unit 123, and are programs for realizing the security function of the control device 5 mounted on the first microcomputer 1.

[0035] The verification unit 1221 verifies whether or not the program stored in the main area 11 has been tampered with. That is, the verification unit 1221 verifies whether or not the first program has been tampered with. Specifically, the verification unit 1221 acquires a program that corresponds to the verification range information 1212 from the first program. The verification unit 1221 calculates a verification value from the program that corresponds to the verification range information 1212 based on a predetermined algorithm for calculating a verification value for verifying whether or not the program that corresponds to the verification range information 1212 has been tampered with and the encryption key 1211. Then, the verification unit 1221 compares the calculated verification value with the first verification expected value 1122. If the calculated verification value matches the first verification expected value 1122, the verification unit 1221 determines that the first program has not been tampered with, and if they do not match, determines that it cannot be determined that the first program has not been tampered with.

[0036] Furthermore, the verification unit 1221 verifies whether or not the program stored in the second microcomputer storage area 31 of the storage device 3 has been tampered with. That is, the verification unit 1221 verifies whether or not the second program has been tampered with. Specifically, the verification unit 1221 acquires a program that corresponds to the verification range information 1212 from the second program. The verification unit 1221 calculates a verification value from the program that corresponds to the verification range information 1212 based on a predetermined algorithm for calculating a verification value for verifying whether or not the program that corresponds to the verification range information 1212 has been tampered with and the encryption key 1211. Then, the verification unit 1221 compares the calculated verification value with the second verification expected value 312. If the calculated verification value matches the second verification expected value 312, the verification unit 1221 determines that the second program has not been tampered with, and if they do not match, determines that it cannot be determined that the second program has not been tampered with.

[0037] Furthermore, the verification unit 1221 verifies whether the update package has been tampered with. Specifically, the verification unit 1221 acquires a verification expected value included in the update package, and acquires a program or data corresponding to the verification range information 1212 from the update package. The verification unit 1221 calculates a verification value from the program or data corresponding to the verification range information 1212 based on a predetermined algorithm for calculating a verification value for verifying whether the program or data corresponding to the verification range information 1212 has been tampered with and the encryption key 1211. Then, the verification unit 1221 compares the calculated verification value with the verification expected value included in the update package. If the calculated verification value matches the verification expected value included in the update package, the verification unit 1221 determines that the update package has not been tampered with, and if they do not match, determines that it cannot be determined that the update package has not been tampered with.

[0038] Each of the above-mentioned verification processes performed by the verification unit 1221 may be a verification process using a Message Authentication Code (MAC) with a common key, a verification process using the Rivest-Shamir-Adleman cryptosystem (RSA) with a public key, or a verification process using Elliptic Curve Digital Signature Algorithm (ECDSA) with a digital signature.

[0039] The encryption processing unit 1222 performs encryption processing to encrypt predetermined data, or decryption processing to decrypt encrypted data. The secure update unit 1223 cooperates with the main update unit 1123 to update the program or data to be updated that is stored in the secure program storage unit 122 or the secure data storage unit 121, by using an update package. Note that the main update unit 1123 and the secure update unit 1223 that update the update target stored in the secure area 12 are examples of the "update unit" described in the claims.

[0040] The secure data storage unit 121 stores an encryption key 1211 and verification range information 1212. The encryption key 1211 is data of an encryption key used in a verification process performed by the verification unit 1221. There may be a plurality of encryption keys 1211 depending on the purpose. The verification range information 1212 is information indicating a program or data to be verified by the verification unit 1221. The verification range information 1212 may be address information. For example, the verification range information 1212 used to verify whether or not the first program has been tampered with is address information that specifies a storage destination of a part or all of a part or all of a program corresponding to the first program. For example, the verification range information 1212 used to verify whether or not the second program has been tampered with is address information that specifies a storage destination of a part or all of a part or all of a program corresponding to the second program. For example, the verification range information 1212 used to verify whether or not an update package has been tampered with is address information that specifies a storage destination of a part or all of a part or all of a program or data of the update package.

[0041] Although not specifically shown, the secure data storage unit 121 stores secure control data. This secure control data is data used for processing by the verification unit 1221, encryption processing unit 1222, and secure update unit 1223 executed by the secure control unit 123, and is data for realizing the security function of the control device 5 mounted on the first microcomputer 1. There may be multiple pieces of this secure control data depending on the application.

[0042] The second microcomputer 2 includes a control unit 21, a program storage unit 22, a data storage unit 23, and a communication unit 24, which are interconnected by a bus line 25.

[0043] The control unit 21 has a processor (CPU, MPU or DSP) and executes a program stored in the program storage unit 22 and a control program 311 stored in the second microcomputer storage area 31 of the storage device 3. The control unit 21 is an example of a "processor" included in the "second arithmetic processing device" described in the claims.

[0044] The program storage unit 22 stores the program executed by the control unit 21. The data storage unit 23 stores data used when the control unit 21 executes the program. Each of the program storage unit 22 and the data storage unit 23 is configured with a non-volatile storage device such as a flash memory, an EEPROM, an SSD, an FRAM, or a magnetic disk. Each of the program storage unit 22 and the data storage unit 23 may be configured with a plurality of storage devices. The program storage unit 22 may store the program in a distributed manner across a plurality of storage devices. The data storage unit 23 may store the data in a distributed manner across a plurality of storage devices.

[0045] Each of the program storage unit 22 and the data storage unit 23 may be a memory having a ROM, which is a non-volatile storage device, and a RAM, which is a volatile storage device. The ROM stores an unchanging program. The RAM may be a high-speed and volatile storage device such as a DRAM, and can temporarily store the program executed by the control unit 21 and data used when executing the program. The program storage unit 22 and the data storage unit 23 may have a part or all of them as components of each other. Even if there is no clear distinction between them as devices, it is sufficient that the program storage unit 22 is a part that stores the program, and the data storage unit 23 is a part that stores the data.

[0046] The program storage unit 22 stores a startup execution unit 221 and a second acquisition unit 222. The startup execution unit 221 and the second acquisition unit 222 are programs executed by the control unit 21, and are programs for realizing the function of the second microcomputer 2 in the control device 5.

[0047] The startup execution unit 221 and the second acquisition unit 222 are stored in an OTP (One Time Programmable) area to prevent unauthorized rewriting. The OTP area is a storage area in which a program can be written only once, and once a program is written, it cannot be rewritten with a different program. That is, the second microcomputer 2 has an OTP area in the program storage unit 22 in which the program cannot be rewritten. The startup execution unit 221 and the second acquisition unit 222 are stored in the OTP area.

[0048] The second acquisition unit 222 acquires the program stored in the second microcomputer memory area 31 of the storage device 3 at a predetermined timing. Specifically, when the second acquisition unit 222 is notified of the above-mentioned acquisition permission from the first microcomputer 1, the second acquisition unit 222 acquires the second program from the second microcomputer memory area 31 of the storage device 3. The second acquisition unit 222 expands and stores the acquired second program in a predetermined memory area of ​​the second microcomputer 2. When acquiring the second program from the second microcomputer memory area 31 of the storage device 3, the second acquisition unit 222 may acquire data stored in the second microcomputer memory area 31.

[0049] The boot execution unit 221 starts the program stored in the second microcomputer storage area 31 of the storage device 3 at a predetermined timing. Specifically, when the boot execution unit 221 is notified of the above-mentioned boot permission from the first microcomputer 1, the boot execution unit 221 starts the second program acquired from the second microcomputer storage area 31 of the storage device 3. Furthermore, after the power supply of the control device 5 is turned on, the boot execution unit 221 puts the second microcomputer 2 into a standby state until the above-mentioned acquisition permission is notified from the first microcomputer 1. After the second acquisition unit 222 acquires the second program, the boot execution unit 221 puts the second microcomputer 2 into a standby state until the above-mentioned boot permission is notified from the first microcomputer 1.

[0050] Although not shown, the data storage unit 23 stores control data. This control data is data used for processing by the control program 311 executed by the control unit 21, the startup execution unit 221, and the second acquisition unit 222, and is data for realizing the function of the second microcomputer 2 in the control device 5. There may be multiple pieces of this control data depending on the application.

[0051] The communication unit 24 has a function for the second microcomputer 2 to communicate with other components of the control device 5 including the first microcomputer 1, and a function for communicating with devices external to the control device 5. The communication unit 24 may be configured with a communication module conforming to standards such as SPI, MII, CAN, CAN FD, Ethernet, or FlexRay. The communication unit 24 may be configured with a plurality of communication units depending on the application and communication method. The communication unit 24 may be shared with a communication module that performs other communication. Note that, when performing wireless communication, the communication unit 24 is configured to include an antenna and a modulation / demodulation circuit. When performing wired communication, the communication unit 24 is configured to include a connector and a modulation / demodulation circuit.

[0052] The storage device 3 is configured by a non-volatile storage device such as a flash memory, an EEPROM, an SSD, an FRAM, or a magnetic disk. The storage device 3 has a second microcomputer storage area 31. The second microcomputer storage area 31 stores a control program 311, which is a second program, and a second verification expected value 312.

[0053] The control program 311 is a program for the control device 5 to control the controlled object, and is executed by the control unit 21 of the second microcomputer 2. The control program 311 is deployed in a predetermined storage area of ​​the second microcomputer 2, and is executed by the control unit 21 in accordance with the startup execution unit 221. The control program 311 may be stored in a location where both the first microcomputer 1 and the second microcomputer 2 can read it. The second verification expected value 312 is a value that is expected to be calculated in a process of verifying whether the second program has been tampered with. The second verification expected value 312 may be stored in a location where the first microcomputer 1 can read it. The second verification expected value 312 may be stored in, for example, any of the main data storage unit 113, the secure data storage unit 121, and the secure program storage unit 122.

[0054] The control device 5 may include a plurality of microcomputers having the same configuration as the second microcomputer 2. In this case, the storage device 3 stores a plurality of control programs 311 and a plurality of second verification expected values ​​312.

[0055] FIG. 2 is a sequence diagram showing the flow of the start-up process of the control device 5 shown in FIG.

[0056] 2, it is assumed that the program stored in the main program storage unit 112 is executed by the main control unit 111, and the program stored in the secure program storage unit 122 is executed by the secure control unit 123. It is assumed that the program stored in the program storage unit 22 and the second microcomputer storage area 31 is executed by the control unit 21.

[0057] The arrows in Fig. 2 show conceptual flows of commands and data, and do not limit the communication direction or instruction direction. The startup process shown in Fig. 2 may include flows of commands and data other than those shown by the arrows in Fig. 2.

[0058] 2 is started after power is applied to the control device 5. The power to the control device 5 is applied, for example, when an ignition switch of a vehicle or the like that is the object of control by the control device 5 is turned on.

[0059] In step S101, the first microcomputer 1 uses the verification unit 1221 to verify whether the program stored in the main area 11 has been tampered with. For example, the first microcomputer 1 acquires a program corresponding to an address indicated by the verification range information 1212, calculates a verification value, and compares it with the first verification expected value 1122. If the calculated verification value matches the first verification expected value 1122, the first microcomputer 1 determines that the first program has not been tampered with and determines the verification as OK (verification successful). On the other hand, if the calculated verification value does not match the first verification expected value 1122, the first microcomputer 1 cannot determine that the first program has not been tampered with and determines the verification as NG (verification unsuccessful).

[0060] In step S102, if the first microcomputer 1 determines that the verification is OK in step S101, the process proceeds to step S104. On the other hand, if the first microcomputer 1 determines that the verification is NG in step S101, the process proceeds to step S103.

[0061] In step S103, the first microcomputer 1 executes a predetermined error process using the verification unit 1221. For example, as the error process, the first microcomputer 1 may re-execute the verification process in step S101, set the first microcomputer 1 to execute a degenerate operation that limits a specific function of the first microcomputer 1, or completely stop the startup of the control device 5. Furthermore, the first microcomputer 1 may notify that the verification is NG or that these error processes will be executed.

[0062] In step S104, the first microcomputer 1 uses the first acquisition unit 1126 to acquire the second program and the second verification expected value 312 stored in the second microcomputer memory area 31 from the memory device 3.

[0063] In step S105, the first microcomputer 1 uses the acquisition permission notification unit 1125 to notify the second microcomputer 2 of the acquisition permission for the second program.

[0064] In step S106, the first microcomputer 1 uses the verification unit 1221 to verify whether the second program acquired in step S104 has been tampered with. For example, the first microcomputer 1 acquires a program corresponding to an address indicated by the verification range information 1212, calculates a verification value, and compares it with the second verification expected value 312. If the calculated verification value matches the second verification expected value 312, the first microcomputer 1 determines that the second program has not been tampered with and determines the verification as OK (verification successful). On the other hand, if the calculated verification value does not match the second verification expected value 312, the first microcomputer 1 cannot determine that the second program has not been tampered with and determines the verification as NG (verification unsuccessful).

[0065] In step S107, if the first microcomputer 1 determines in step S106 that the verification is OK, the process proceeds to step S109. On the other hand, if the first microcomputer 1 determines in step S106 that the verification is NG, the process proceeds to step S108.

[0066] In step S108, the first microcomputer 1 executes a predetermined error process using the verification unit 1221. For example, as the error process, the first microcomputer 1 may re-execute the verification process in step S106, set the second microcomputer 2 to execute a degenerate operation that limits a specific function, or completely stop the startup of the control device 5. Furthermore, the first microcomputer 1 may notify that the verification is NG or that these error processes will be executed.

[0067] In step S109, the first microcomputer 1 notifies the second microcomputer 2 of the permission to start up the second microcomputer 2 using the start-up permission notification unit 1124.

[0068] In step S201, the second microcomputer 2 uses the boot execution unit 221 to transition to a standby state until the second microcomputer 2 receives a notification from the first microcomputer 1 of permission to acquire the second program.

[0069] In step S202, when the second microcomputer 2 is notified of permission to acquire the second program by the first microcomputer 1, the second microcomputer 2 acquires the second program stored in the second microcomputer memory area 31 from the storage device 3 using the second acquisition unit 222. Thereafter, the second microcomputer 2 uses the startup execution unit 221 to transition to a standby state until permission to start the second program is notified by the first microcomputer 1.

[0070] In step S203, when the second microcomputer 2 is notified by the first microcomputer 1 of the permission to start the second program, the second microcomputer 2 uses the start execution unit 221 to start the second program acquired in step S202.

[0071] In step S204, when the start-up of the second program is completed, the second microcomputer 2 notifies the first microcomputer 1 of the start-up completion of the second microcomputer 2 using the start-up execution unit 221. By the process shown in FIG. 2, the control device 5 can be started up safely.

[0072] 2 only needs to be executed after step S102 and before step S109, and does not need to be executed between step S104 and step S106. Step S105 may be executed, for example, between step S102 and step S104, or between step S107 and step S109.

[0073] FIG. 3 is a flowchart showing a flow of the update process of the control device 5 shown in FIG.

[0074] The update process shown in FIG. 3 starts when a request to update the program or data of the control device 5 is transmitted from a device external to the control device 5.

[0075] In step S301, the control device 5 receives an update request from an external device via the communication unit 114 or the communication unit 24. The control device 5 transitions to a standby state in which it waits until it receives an update package, using the main update unit 1123. Before transitioning to this standby state, the control device 5 may execute a predetermined device authentication to verify that the external device that has sent the update request is a legitimate device.

[0076] In step S302, the control device 5 receives the update package from the external device and stores it in a predetermined storage area using the main update unit 1123. The predetermined storage area for storing the update package may be provided in, for example, either the main data storage unit 113 or the storage device 3, or both. The predetermined storage area for storing the update package may be provided in a volatile storage device, or may be provided in a non-volatile storage device.

[0077] In step S303, the first microcomputer 1 uses the verification unit 1221 to verify whether the update package received in step S302 has been tampered with. For example, the first microcomputer 1 acquires a program corresponding to the address indicated by the verification range information 1212, calculates a verification value, and compares it with the verification expected value for the update package. If the calculated verification value matches the verification expected value, the first microcomputer 1 determines that the update package has not been tampered with and determines the verification OK (verification successful). On the other hand, if the calculated verification value does not match the verification expected value, the first microcomputer 1 cannot determine that the update package has not been tampered with and determines the verification NG (verification unsuccessful).

[0078] In step S304, if the first microcomputer 1 determines that the verification is OK in step S303, the process proceeds to step S306. On the other hand, if the first microcomputer 1 determines that the verification is NG in step S303, the process proceeds to step S305.

[0079] In step S305, the first microcomputer 1 executes a predetermined error process using the verification unit 1221. For example, as the error process, the first microcomputer 1 may execute the verification process in step S303 again, set to restrict updating of a specific function of the first microcomputer 1 or the second microcomputer 2, or completely stop updating of the control device 5. Furthermore, the first microcomputer 1 may notify that the verification is NG or that these error processes will be executed.

[0080] In step S306, the first microcomputer 1 decrypts the update package based on the encryption key 1211 used for confidentiality and a predetermined algorithm using the encryption processing unit 1222. For example, the first microcomputer 1 may perform encryption and decryption using AES-CBC. The first microcomputer 1 may also perform decryption based on the encryption key 1211 for the update package stored in the secure data storage unit 121 that can only be accessed by the secure control unit 123.

[0081] In step S307, the first microcomputer 1 uses the main update unit 1123 (and the secure update unit 1223) to store the update package decrypted in step S306 in the storage destination of the program or data to be updated, thereby updating the update target. The update package may include address information specifying the storage destination of the update target. The update package may be composed of a plurality of update programs or update data. Each of these plurality of update programs or update data may be assigned an ID of the storage destination. For example, when the update package is composed of an update program for updating the verification unit 1221 and update data for updating the encryption key 1211, an ID corresponding to the address information of the verification unit 1221 may be assigned to the update program, and an ID corresponding to the address information of the encryption key 1211 may be assigned to the update program. By the process shown in FIG. 3, the control device 5 can safely update the update target.

[0082] As described above, the control device 5 of the first embodiment is a control device including the first microcomputer 1 including a processor that executes the first program, the second microcomputer 2 including a processor that executes the second program, and the storage device 3 in which the second program is stored. The first microcomputer 1 has a verification unit 1221 that verifies whether the first program and the second program have been tampered with, and a first acquisition unit 1126 that acquires the second program from the storage device 3 when the verification unit 1221 verifies that the first program has not been tampered with. Furthermore, the first microcomputer 1 has a startup permission notification unit 1124 that notifies the second microcomputer 2 of startup permission that allows the second microcomputer 2 to start the second program when the verification unit 1221 verifies that the second program has not been tampered with. The second microcomputer 2 has a second acquisition unit 222 that acquires the second program from the storage device 3, and a startup execution unit 221 that starts the second program when startup permission is notified.

[0083] With this configuration, the control device 5 of the first embodiment can verify not only the second program executed by the second microcomputer 2 not having the program verification function, but also the first program executed by the first microcomputer 1 at the time of startup. The first microcomputer 1 can verify the second program based on the function of the first program confirmed to be free of tampering, and permit the startup of the second program confirmed to be free of tampering. Therefore, the control device 5 of the first embodiment can appropriately detect and deal with tampering of either the first program or the second program, even if the program verification function is not installed in both the first microcomputer 1 and the second microcomputer 2. Therefore, the control device 5 of the first embodiment can easily realize a safe startup of a control device equipped with multiple arithmetic processing devices.

[0084] Furthermore, in the control device 5 of the first embodiment, the first microcomputer 1 has a secure area 12 having tamper resistance, and the second microcomputer 2 has an OTP area in which programs cannot be rewritten. The verification unit 1221 is stored in the secure area 12, and the second acquisition unit 222 and the startup execution unit 221 are stored in the OTP area.

[0085] With this configuration, the first microcomputer 1 of the first embodiment can verify the first program based on the verification unit 1221 stored in the secure area 12 with guaranteed tamper resistance such as HSM at the time of startup. Then, the first microcomputer 1 can verify the second program based on the function of the first program confirmed to be free of tampering, and permit the startup of the second program confirmed to be free of tampering. Meanwhile, the second microcomputer 2 of the first embodiment can acquire the second program using the second acquisition unit 222 stored in the tamper-proof OTP area. Then, when the startup of the second program is permitted, the second microcomputer 2 can start the second program using the startup execution unit 221 stored in the tamper-proof OTP area. Therefore, the control device 5 of the first embodiment can reliably prevent the verification unit 1221 that can realize the security function of the control device 5, and the second acquisition unit 222 and startup execution unit 221 related to the startup of the second program from being tampered. Therefore, the control device 5 of embodiment 1 can further improve security at the time of startup of a control device equipped with multiple arithmetic processing devices, even if high-security security functions such as HSM are not installed in all of the first microcomputer 1 and the second microcomputer 2.

[0086] Furthermore, in the control device 5 of the first embodiment, after the second acquisition unit 222 acquires the second program, the startup execution unit 221 puts the second microcomputer 2 into a standby state until it is notified that startup of the second program is permitted.

[0087] With this configuration, the control device 5 of the first embodiment can reliably prevent the second microcomputer 2 from starting an unauthorized program during the period from when the second program is acquired until when permission to start the program is notified. Therefore, the control device 5 of the first embodiment can further improve the safety at the time of start-up of a control device having multiple arithmetic processing devices.

[0088] Furthermore, in the control device 5 of the first embodiment, the first microcomputer 1 has an acquisition permission notification unit 1125 that notifies the second microcomputer 2 of acquisition permission permitting the second microcomputer 2 to acquire the second program from the storage device 3 when the verification unit 1221 verifies that the first program has not been tampered with. The acquisition permission notification unit 1125 notifies the second microcomputer 2 of the acquisition permission before the start permission notification unit 1124 notifies the second microcomputer 2 of the start permission. The second acquisition unit 222 acquires the second program from the storage device 3 when the acquisition permission is notified.

[0089] With this configuration, if it is confirmed that the first program has not been tampered with, the second microcomputer 2 of the first embodiment can acquire the second program before being notified of permission to start the second program, and can start the second program immediately after being notified of permission to start. Therefore, the control device 5 of the first embodiment can easily realize safe and high-speed start-up of a control device having multiple arithmetic processing devices.

[0090] Furthermore, in the control device 5 of the first embodiment, after the power supply of the control device 5 is turned on, the boot execution unit 221 puts the second microcomputer 2 into a standby state until a notification of permission to acquire the second program is received.

[0091] With this configuration, the control device 5 of the first embodiment can reliably prevent the second microcomputer 2 from starting a tampered program during the period from when the control device 5 is powered on until the acquisition permission is notified. Therefore, the control device 5 of the first embodiment can further improve the safety at the time of start-up of a control device having multiple arithmetic processing devices.

[0092] Furthermore, in the control device 5 of the first embodiment, the secure area 12 is an area where programs can be rewritten, and the first microcomputer 1 has a main update unit 1123 and a secure update unit 1223 that update the update target stored in the secure area 12 with an update package. A verification unit 1221 verifies whether the update package has been tampered with. When the verification unit 1221 verifies that the update package has not been tampered with, the main update unit 1123 and the secure update unit 1223 update the update target with the update package.

[0093] With this configuration, the control device 5 of the first embodiment can update the algorithm of the verification unit 1221 and the data of the encryption key 1211 stored in the secure area 12.

[0094] Here, the control device 5 may be a control device for a machine or device with a relatively long product life, such as an automobile. For example, when the control device 5 is configured by an ECU for an automobile, the driving control of the automobile is related to human life, so the control device 5 must continue to ensure the safety of the driving control for a long period of time exceeding 10 years. On the other hand, during the long-term operation period of the control device 5, there is a risk that the algorithms and data constituting the verification function of the program related to the driving control may be compromised. In the unlikely event that these algorithms and data are compromised, they should be updated to safe algorithms and data. However, if the program verification function is stored in the OTP area as in Patent Document 1, these compromised algorithms and data cannot be updated to safe algorithms and data. As a result, in a control device in which the program verification function is stored in the OTP area as in Patent Document 1, when a machine or the like with a relatively long product life is the control target, it is difficult to realize a safe startup over the long term over the product life.

[0095] In contrast, the control device 5 of the first embodiment is capable of updating the algorithm of the verification unit 1221 and the data of the encryption key 1211 stored in the secure area 12 with guaranteed tamper resistance such as an HSM. This allows the control device 5 of the first embodiment to update the algorithm of the verification unit 1221 and the data of the encryption key 1211 to safe algorithms and data before they are compromised. Therefore, even if the controlled object is a machine or the like with a comparatively long product life, the control device 5 of the first embodiment can realize a long-term safe start-up over the product life period.

[0096] [Embodiment 2] The control device 5 of the second embodiment will be described with reference to Figures 4 and 5. In the control device 5 of the second embodiment, the description of the same configuration and operation as in the first embodiment will be omitted.

[0097] Fig. 4 is a diagram showing a functional configuration of the control device 5 of embodiment 2. Fig. 5 is a sequence showing a flow of a startup process of the control device 5 shown in Fig. 4. The startup process shown in Fig. 5 corresponds to the startup process shown in Fig. 2, and is started after the control device 5 is powered on.

[0098] In the control device 5 of the second embodiment, the verification unit 1221 is stored in the secure area 12, and the second acquisition unit 222 and the boot execution unit 221 are stored in the OTP area of ​​the second microcomputer 2, similarly to the first embodiment.

[0099] In the control device 5 of the second embodiment, unlike the first embodiment, the storage device 3 may store not only the second program but also the first program. Specifically, as shown in Fig. 4, the main control program 1121, the main update unit 1123, the start permission notification unit 1124, and the acquisition permission notification unit 1125 of the second embodiment may be stored as the first program in the first microcomputer storage area 32 of the storage device 3. The first verification expected value 1122 of the second embodiment may also be stored in the first microcomputer storage area 32 of the storage device 3.

[0100] Furthermore, in the control device 5 of the second embodiment, unlike the first embodiment, the main program storage unit 112 may have an OTP area where the program cannot be rewritten, and the first acquisition unit 1126 may be stored in the OTP area. The first acquisition unit 1126 of the second embodiment may not only acquire the second program and the second verification expected value 312 from the storage device 3, but also acquire the first program and the first verification expected value 1122 from the storage device 3.

[0101] 5, the first microcomputer 1 of the second embodiment acquires the first program from the first microcomputer storage area 32 of the storage device 3 using the first acquisition unit 1126 after the control device 5 is powered on and before step S101. Thereafter, the first microcomputer 1 of the second embodiment may execute steps S101 to S109 similar to those of the first embodiment. The second microcomputer 2 of the second embodiment may execute steps S201 to S204 similar to those of the first embodiment.

[0102] 5, the first microcomputer 1 of the second embodiment can also acquire both the first program and the second program using the first acquisition unit 1126. In this case, the first microcomputer 1 of the second embodiment can omit step S104. Also, in this case, the first microcomputer 1 of the second embodiment can execute step S105 to notify the second microcomputer 2 of permission to acquire the second program immediately after verifying that the first program has not been tampered with (immediately after step S102: YES).

[0103] In this way, in the control device 5 of the second embodiment, the verification unit 1221 is stored in the secure area 12, and the first acquisition unit 1126, the second acquisition unit 222, and the startup execution unit 221 are stored in the OTP area. As in the first embodiment, the control device 5 of the second embodiment can reliably prevent the verification unit 1221 that can realize the security function of the control device 5, and the first acquisition unit 1126, the second acquisition unit 222, and the startup execution unit 221 that are involved in the startup of the first program and the second program from being tampered with. Furthermore, in the control device 5 of the second embodiment, even if the capacity of the first program increases in the future, it can be easily handled by simply replacing the storage device 3, which has higher expandability than the first microcomputer 1, with a storage device with a larger capacity. Therefore, the control device 5 of the second embodiment can easily and sustainably realize the safe startup of a control device having multiple arithmetic processing devices.

[0104] [others] The present invention is not limited to the above-described embodiments, and includes various modified examples. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the configurations described. In addition, it is possible to replace a part of the configuration of a certain embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of a certain embodiment. In addition, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.

[0105] In addition, the above-mentioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole by hardware, for example by designing them in an integrated circuit. In addition, the above-mentioned configurations, functions, etc. may be realized by software, in which a processor interprets and executes a program that realizes each function. Information such as the program, tape, file, etc. that realizes each function can be stored in a memory, a recording device such as a hard disk or SSD, or a recording medium such as an IC card, SD card, or DVD.

[0106] In addition, the control lines and information lines shown are those that are considered necessary for the explanation, and not all control lines and information lines in the product are necessarily shown. In reality, it can be considered that almost all components are connected to each other. [Explanation of symbols]

[0107] 1...first microcomputer (first arithmetic processing device), 111...main control unit (processor), 1123...main update unit, 1124...start permission notification unit, 1125...acquisition permission notification unit, 1126...first acquisition unit, 12...secure area, 1221...verification unit, 1223...secure update unit, 2...second microcomputer (second arithmetic processing device), 21...control unit (processor), 221...start execution unit, 222...second acquisition unit, 3...storage device, 5...control device

Claims

1. A control device comprising: a first arithmetic processing device including a processor that executes a first program; a second arithmetic processing device including a processor that executes a second program; and a storage device in which the second program is stored, The first arithmetic processing device is a verification unit that verifies whether or not each of the first program and the second program has been tampered with; a first acquisition unit that acquires the second program from the storage device when the verification unit verifies that the first program has not been tampered with; a start permission notification unit that notifies the second processing device of a start permission that permits the second processing device to start the second program when the verification unit verifies that the second program has not been tampered with, The second processing unit is a second acquisition unit that acquires the second program from the storage device; a start-up execution unit that starts the second program when the start-up permission is notified, the first arithmetic processing device has a tamper-resistant secure area, the second arithmetic processing device has an OTP area in which programs cannot be rewritten, the verification unit is stored in the secure area, The second acquisition unit and the startup execution unit are stored in the OTP area. A control device comprising:

2. The boot execution unit causes the second processor to transition to a standby state after the second acquisition unit acquires the second program and until the boot permission is notified. The control device according to claim 1 .

3. the secure area is an area in which programs can be rewritten, the first processing unit has an update unit that updates an update target stored in the secure area by an update package; The verification unit verifies whether the update package has been tampered with, The update unit updates the update target with the update package when the verification unit verifies that the update package has not been tampered with. The control device according to claim 1 .

4. the first arithmetic processing device has an acquisition permission notification unit that notifies the second arithmetic processing device of an acquisition permission that permits the second arithmetic processing device to acquire the second program from the storage device when the verification unit verifies that the first program has not been tampered with, the acquisition permission notification unit notifies the second processing unit of the acquisition permission before the start-up permission notification unit notifies the second processing unit of the start-up permission, The second acquisition unit acquires the second program from the storage device when the acquisition permission is notified. The control device according to claim 1 .

5. The startup execution unit causes the second arithmetic processing unit to transition to a standby state after the control device is powered on and until the acquisition permission is notified.

5. The control device according to claim 4.

6. the first arithmetic processing device has a tamper-resistant secure area and an OTP area in which programs cannot be rewritten; the second arithmetic processing device has an OTP area in which programs cannot be rewritten, the storage device stores the first program and the second program; the verification unit is stored in the secure area, The first acquisition unit is stored in the OTP area of ​​the first arithmetic processing device, and acquires the first program from the storage device; The second acquisition unit and the startup execution unit are stored in the OTP area of ​​the second arithmetic processing device. The control device according to claim 1 .

Citation Information

Patent Citations

  • Information processing device, control method thereof, and program

    JP2019212114A

  • Information processing apparatus, control method thereof, and program

    JP2020047064A

  • Information processing device, and information processing method

    JP2020140561A

  • Information processing device and its control method, and program

    JP2020154601A