WO2019116922A1 - 車載更新装置、プログラム及びプログラム又はデータの更新方法 - Google Patents

車載更新装置、プログラム及びプログラム又はデータの更新方法 Download PDF

Info

Publication number
WO2019116922A1
WO2019116922A1 PCT/JP2018/044112 JP2018044112W WO2019116922A1 WO 2019116922 A1 WO2019116922 A1 WO 2019116922A1 JP 2018044112 W JP2018044112 W JP 2018044112W WO 2019116922 A1 WO2019116922 A1 WO 2019116922A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
data
storage unit
vehicle
unit
Prior art date
Application number
PCT/JP2018/044112
Other languages
English (en)
French (fr)
Inventor
井上 雅之
Original Assignee
株式会社オートネットワーク技術研究所
住友電装株式会社
住友電気工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社オートネットワーク技術研究所, 住友電装株式会社, 住友電気工業株式会社 filed Critical 株式会社オートネットワーク技術研究所
Publication of WO2019116922A1 publication Critical patent/WO2019116922A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the present disclosure relates to an onboard update device, a program, and a method of updating a program or data.
  • This application claims the priority based on Japanese Patent Application No. 2017-237192 filed on Dec. 11, 2017, and incorporates all the contents described in the Japanese application.
  • the relay device performs the program update by communicating with the server that transmits the program, receiving the program, and transmitting the received program to the in-vehicle ECU.
  • the received encrypted program is decrypted by the device on the receiving side, and the decrypted program is in the state of plaintext, and the content of the program can be referred to.
  • the information processing apparatus of Patent Document 1 applies an access restriction to a storage device in which a decoded program is stored, and a retrieval control unit for restricting the extraction of the decrypted program from the apparatus. Have.
  • An on-vehicle update device is an on-vehicle update device that performs processing for updating a program or data of an on-vehicle ECU, and includes an acquisition unit that acquires a concealed program or data; A first storage unit for storing the program or data acquired by the unit; a decryption unit for decrypting the program or data read from the first storage unit; and a volatile second program for storing the decrypted program or data A storage unit, and a transmission unit that transmits the decoded program or data stored in the second storage unit to the on-vehicle ECU.
  • a program according to an aspect of the present disclosure is a program that acquires a program or data subjected to concealment processing in a computer, stores the acquired program or data in a first storage unit, and stores the acquired program or data in the first storage unit.
  • the data is decoded, the decoded program or data is stored in the volatile second storage unit, and the processing of transmitting the decoded program or data stored in the second storage unit to the on-vehicle ECU is executed.
  • a program or data update method acquires a program or data subjected to a concealment process, stores the acquired program or data in a first storage unit, and stores the acquired program or data in the first storage unit.
  • the program or data is decoded, the decoded program or data is stored in a volatile second storage unit, and the decoded program or data stored in the second storage unit is transmitted to the on-vehicle ECU.
  • FIG. 1 is a schematic view showing a configuration of an on-vehicle update system according to a first embodiment.
  • FIG. 1 is a block diagram showing a configuration of an on-vehicle update device and the like according to a first embodiment.
  • 5 is a flowchart showing processing of a control unit according to the first embodiment.
  • 7 is a flowchart showing processing of a control unit according to the second embodiment. It is a flowchart which shows the process of the control part which concerns on Embodiment 3.
  • FIG. 1 is a schematic view showing a configuration of an on-vehicle update system according to a first embodiment.
  • FIG. 1 is a block diagram showing a configuration of an on-vehicle update device and the like according to a first embodiment.
  • 5 is a flowchart showing processing of a control unit according to the first embodiment.
  • 7 is a flowchart showing processing of a control unit according to the second embodiment. It is a flowchart which shows the process of the control part
  • the decrypted program is stored in a non-volatile storage medium. Therefore, by optically observing the storage medium or directly probing the internal bus of the storage medium, the decoded program may be illegally obtained. In particular, during the process of updating a program, the update is interrupted by, for example, shutting off the power, and the decrypted program is illegally acquired if it is intentionally caused to remain in the storage medium. The risk is even greater.
  • An object of the present disclosure is to provide an on-vehicle update device and the like capable of updating a program of an on-vehicle ECU by preventing leakage of a decrypted program.
  • the on-vehicle update device is a vehicle-mounted update device that performs a process for updating a program or data of an on-vehicle ECU, and an acquisition unit that acquires a concealed program or data A first storage unit for storing the program or data acquired by the acquisition unit; a decryption unit for decrypting the program or data read from the first storage unit; and volatileity for storing the decrypted program or data A second storage unit, and a transmission unit for transmitting the decoded program or data stored in the second storage unit to the in-vehicle ECU.
  • the decoded program or data is stored in the second storage unit by the volatile storage medium, the program or data is stored in the volatile storage medium, for example, when the power of the on-board updating device is shut off.
  • the program or data being stored is erased. Therefore, even if the power is shut off and the updating process is interrupted, leakage of the decrypted program can be prevented by surely erasing the decrypted program or data.
  • the configuration preferably includes an erasing unit that erases the decoded program or data from the second storage unit after the decoded program or data is transmitted to the on-vehicle ECU.
  • the decryption unit is provided with an erasure unit that erases the decrypted program or data stored in the second storage unit. It is possible to prevent the program from leaking.
  • the first storage unit is preferably configured to be non-volatile.
  • the decryption processing is performed while the decrypted program or data is erased.
  • the stored program or data can be held. Therefore, when restarting the update processing after the interruption, it is not necessary to acquire the concealed program or data again, and communication cost and processing time for acquiring can be reduced.
  • the program or data subjected to the concealment processing includes confirmation data for confirming the legitimacy of the program or data, and the decryption unit decrypts the program or data when the decryption unit decrypts the program or data. It is preferable that the program or data be verified based on the data.
  • the in-vehicle update device decrypts the concealed program or data
  • the in-vehicle update device decrypts the program or data in order to confirm the legitimacy of the program or data based on the confirmation data.
  • the legitimacy of can be compensated.
  • the process of confirming the correctness of the program or data based on the confirmation data is performed in the storage area of the second storage unit by the volatile storage medium, so that the decrypted program is prevented from leaking be able to.
  • the concealment process is performed by an encryption process using an encryption key, and the decryption unit preferably decrypts the concealed program or data with a decryption key corresponding to the encryption key.
  • the concealment process is performed by the encryption process using the encryption key, the robustness of the concealed program or data can be improved.
  • the configuration preferably includes an erasing unit that erases the concealed program or data from the first storage unit after the decrypted program or data is transmitted to the in-vehicle ECU.
  • the storage capacity of the first storage unit is provided because the deletion unit is configured to delete the concealed program or data from the first storage unit after transmitting the decrypted program or data to the on-vehicle ECU. Can be restrained. In addition, it is possible to prevent leakage of the concealed program or data after transmitting the decrypted program or data to the in-vehicle ECU.
  • the concealed program or data is generated based on difference data between the current program or data already applied to the in-vehicle ECU and the new program or data to be applied this time, and the acquisition unit Further acquires a current program or data from the in-vehicle ECU, and the decoding unit decodes the concealed program or data to generate difference data, and generates the difference data generated;
  • the new program or data is generated based on the data, and the current program or data and the generated new program or data are stored in the second storage unit, and the transmission unit is configured to 2) Replace the new program or data stored in the storage unit with the decoded program or data, and Configuration in which trust is preferable.
  • the concealed program or data is generated based on the difference data between the current program or data already applied to the in-vehicle ECU and the new program or data to be applied this time. Or, data leakage can be prevented. Since the concealed program or data is generated based on the difference data, the communication cost and communication traffic for acquiring the concealed program or data can be reduced. Since the current program or data is stored in the volatile second storage unit, it is possible to prevent the current program or data from being erased when the power is shut off or the like and the current program or the like to leak. The new program or data generated by the decoded differential data and the current program or data is stored in the volatile second storage unit, so that the new program or data is prevented from leaking when the power is shut off, etc. be able to.
  • the program according to an aspect of the present disclosure acquires the program or data subjected to the concealment processing, stores the acquired program or data in the first storage unit, and stores the acquired program or data in the first storage unit Alternatively, the data is decoded, the decoded program or data is stored in the volatile second storage unit, and the processing of transmitting the decoded program or data stored in the second storage unit to the on-vehicle ECU is executed.
  • the computer can function as the on-vehicle update device according to one aspect of the present disclosure.
  • a program or data updating method acquires a program or data that has been concealed, stores the acquired program or data in a first storage unit, and stores the first storage unit. Decoding the program or data stored in the memory, storing the decoded program or data in the volatile second storage unit, and transmitting the decoded program or data stored in the second storage unit to the on-vehicle ECU .
  • storing the decrypted program or data in the volatile second storage unit ensures the decrypted program or data even when the power is shut off and the update process is interrupted. Erasure can prevent the decrypted program from leaking.
  • FIG. 1 is a schematic view showing the configuration of the in-vehicle update system S according to the first embodiment.
  • the on-vehicle update system S includes the external communication device 1 and the on-vehicle update device 2 mounted on the vehicle C, and the program or data acquired from the program providing device S1 connected via the external network N is mounted on the vehicle C Send to the on-board ECU 3 (Electronic Control Unit).
  • ECU 3 Electronic Control Unit
  • the program providing device S1 is, for example, a computer such as a server connected to an outside network N such as the Internet or a public network.
  • the program providing device S1 stores a program or data for controlling the on-vehicle ECU 3 created by a manufacturer or the like of the on-vehicle ECU 3.
  • the program or data is transmitted to the vehicle C as described later, and is used to update the program or data of the in-vehicle ECU 3 mounted on the vehicle C.
  • the program or data for update is subjected to concealment processing.
  • the concealing process is, for example, encryption.
  • for updating by using the difference data between the program or data (current program etc.) already applied to the in-vehicle ECU 3 already mounted on the vehicle C and the program or data to be updated this time (new program)
  • the program or data of may be concealed.
  • the difference data itself may be encrypted.
  • the vehicle C is equipped with the outside communication apparatus 1, the in-vehicle updating device 2, and a plurality of in-vehicle ECUs 3 for controlling various in-vehicle devices.
  • the out-of-vehicle communication device 1, the in-vehicle update device 2, and the in-vehicle ECU 3 are communicably connected by the in-vehicle LAN 4.
  • FIG. 2 is a block diagram showing the configuration of the on-vehicle update device 2 and the like according to the first embodiment.
  • the on-vehicle update device 2 includes a control unit 20, a first storage unit 21, a second storage unit 22, and an in-vehicle communication unit 23.
  • the in-vehicle updating device 2 is configured to acquire a program or data received from the program providing device S1 by wireless communication from the in-vehicle communication device 1 via the in-vehicle LAN 4 and transmit the program or data to a predetermined in-vehicle ECU 3 ing.
  • the in-vehicle updating device 2 is, for example, a central gateway (CGW) that controls segments of a system of a plurality of in-vehicle ECUs 3 such as a control system, a safety system, and a body system.
  • CGW central gateway
  • the on-vehicle update device 2 may be a body ECU that controls the entire vehicle C.
  • the control unit 20 is configured by a CPU (Central Processing Unit) or an MPU (Micro Processing Unit) or the like, and reads and executes control programs and data stored in advance in the first storage unit 21 to perform various controls. Processing and arithmetic processing and the like are performed.
  • the control unit 20 functions as a decoding unit and an erasing unit by executing a control program.
  • the control unit 20 functions as an acquisition unit via the outside-vehicle communication device 1 or the in-vehicle communication unit 23.
  • the control unit 20 functions as a transmission unit through the in-vehicle communication unit 23.
  • the first storage unit 21 is composed of a non-volatile memory element such as a ROM (Read Only Memory), an EEPROM (Electrically Erasable Programmable ROM) or a flash memory, and stores in advance a control program and data to be referred to during processing. is there.
  • the control program stored in the first storage unit 21 may store the control program read from the recording medium readable by the on-vehicle updating device 2. Alternatively, the control program may be downloaded from an external computer (not shown) connected to a communication network (not shown) and stored in the first storage unit 21.
  • the first storage unit 21 stores a decryption key for decrypting the program or data concealed by encryption or the like. For example, a predetermined hash function or the like may be stored in the first storage unit 21 in order to confirm the legitimacy of the acquired program or data. Although the details will be described later, the first storage unit 21 stores the acquired concealed program or data.
  • the second storage unit 22 is configured by a volatile memory element such as a random access memory (RAM), and is used as a work area when the control unit 20 performs control processing, arithmetic processing, and the like. Although the details will be described later, the decrypted program or data is temporarily stored in the second storage unit 22.
  • RAM random access memory
  • the in-vehicle communication unit 23 is an input / output interface using a communication protocol such as CAN (Control Area Network), LIN (Local Interconnect Network) or Ethernet (registered trademark), and the outside-vehicle communication device 1 connected to the in-vehicle LAN 4 It communicates with on-vehicle devices such as on-vehicle ECU 3 mutually.
  • CAN Controller Area Network
  • LIN Local Interconnect Network
  • Ethernet registered trademark
  • the control unit 20, the first storage unit 21 and the second storage unit 22 are distributed to a plurality of in-vehicle devices such as a CGW and a body ECU, and function by communicating with each other and cooperating or cooperating. It may be
  • the outside-of-vehicle communication device 1 includes an outside-of-vehicle communication unit 11 and an in-vehicle communication unit 12.
  • the external communication unit 11 is an input / output interface for wireless communication using a mobile communication protocol such as 3G, LTE, 4G or WiFi, and provides a program via an external network such as a public network or the Internet. It communicates with the device S1.
  • the in-vehicle communication unit 12 has the same function as the in-vehicle communication unit 23 of the in-vehicle update device 2, and mutually communicates with the in-vehicle update device 2 and the like via the in-vehicle LAN 4.
  • the out-vehicle communication device 1 is a separate device from the in-vehicle update device 2 and these devices are communicably connected by the in-vehicle LAN 4, but the present invention is not limited thereto.
  • the out-of-vehicle communication device 1 may be built in the in-vehicle update device 2 as a component of the in-vehicle update device 2.
  • the in-vehicle ECU 3 includes a storage unit 31, a control unit 30, and an in-vehicle communication unit 32.
  • the storage unit 31 is configured by a non-volatile memory element such as a ROM (Read Only Memory), an EEPROM (Electrically Erasable Programmable ROM), or a flash memory, and stores the program or data of the on-vehicle ECU 3. This program or data is an object to be updated by the on-vehicle update device 2.
  • the control unit 30 is configured by a CPU (Central Processing Unit) or MPU (Micro Processing Unit) or the like, reads out and executes programs and data stored in advance in the storage unit 31 and performs control processing etc.
  • An on-vehicle device including the ECU 3 or an actuator is controlled.
  • the control unit 30 acquires the program or data transmitted from the on-vehicle updating device 2 and updates the program or data from the current program or data stored in the storage unit 31 to the acquired program or data. I do.
  • the in-vehicle communication unit 32 has the same function as the in-vehicle communication unit 23 of the in-vehicle update device 2, and mutually communicates with the in-vehicle update device 2 and the like via the in-vehicle LAN 4.
  • FIG. 3 is a flowchart showing processing of the control unit 20 according to the first embodiment.
  • the control unit 20 of the in-vehicle updating device 2 periodically or non-periodically communicates with the program providing device S1 via the external communication device 1, and the program or data (program etc.) to be updated is prepared in the program providing device S1. If it is, start the following process. Alternatively, the control unit 20 may start the following processing based on the update notification from the program providing device S1 acquired via the external communication device 1.
  • the control unit 20 acquires the concealed program and the like (the concealment program and the like) transmitted from the program providing device S1 via the outside-vehicle communication device 1 (S11).
  • the control unit 20 stores the obtained concealment program and the like in the non-volatile first storage unit 21 (S12). Since the concealment program and the like are encrypted, they are stored in the first storage unit 21 in a state in which the content itself of the program and the like can not be referred to.
  • the control unit 20 reads the concealment program and the like stored in the first storage unit 21, and decodes the concealment program and the like (S13).
  • the encryption of the concealment program or the like is performed by, for example, a common key method, a public key method, or the like.
  • the control unit 20 performs a process of decoding a concealment program or the like using a secret key corresponding to the common key or the public key stored in the first storage unit 21.
  • the arithmetic processing of decoding by the control unit 20 is performed in the storage area of the volatile second storage unit 22. That is, the control unit 20 uses the storage area of the second storage unit 22 as a work area for performing the arithmetic processing of decoding.
  • the control unit 20 completes the decryption of the concealment program and the like, and stores the decrypted program and the like, that is, the program in the plaintext, and the like in the second storage unit 22 (S14).
  • the control unit 20 reads the decrypted program and the like stored in the second storage unit 22 and transmits the read program and the like to the predetermined on-vehicle ECU 3 to be updated via the in-vehicle LAN 4 (S15).
  • the control unit 20 deletes the decrypted program and the like from the second storage unit 22 (S16), and further deletes the concealment program and the like from the first storage unit 21 (S17).
  • the order of deletion of the decrypted program and the like and the concealment program and the like is not limited to this, and the concealment program and the like may be deleted first. Alternatively, a sub process may be generated to simultaneously delete the decrypted program and the like and the concealment program and the like.
  • the concealment program and the like are received from the program providing device S1 by wireless communication and acquired, but the present invention is not limited to this.
  • the in-vehicle update device 2 and an external device in which an update program is stored May be obtained by wired connection.
  • the decrypted program and the like are stored in the volatile second storage unit 22. Therefore, when interruption such as interruption of the power occurs during the program update processing by the on-vehicle updating device 2, the second storage unit The decrypted program stored in 22 is erased. Therefore, even if such an interruption occurs, it is possible to prevent leakage of the decrypted program or the like.
  • the arithmetic processing of decoding by the control unit 20 is performed with the storage area on the volatile second storage unit 22 as a work area. Accordingly, temporary data for performing decoding arithmetic processing, for example, a part of a program that has been partially decoded, is stored only in the second storage unit 22 to interrupt power interruption or the like. If it occurs, it will be deleted. Therefore, even a part of the decrypted program can be prevented from leaking.
  • the concealment program and the like transmitted from the program providing device S1 are stored in the non-volatile first storage unit 21, the concealment program is again concealed from the program providing device S1 even when the program update process is interrupted. It is possible to eliminate the need to receive a communication program and the like, and to reduce the communication cost and the processing time for updating.
  • FIG. 4 is a flowchart showing processing of the control unit 20 according to the second embodiment.
  • the control unit 20 of the in-vehicle updating device 2 according to the second embodiment is different from that of the first embodiment in that, when decoding the concealment program or the like, the control unit 20 performs processing to confirm the legitimacy of the program.
  • the following mainly describes the differences. Since the processes of S21 to S22 are the same as the processes of S11 to S12 of the first embodiment, the description will be omitted.
  • the control unit 20 reads the concealment program and the like stored in the first storage unit 21 and decodes them in block units (S23).
  • a block is, for example, data divided into predetermined data sizes.
  • the control unit 20 may extract a separator included in a data string in a concealment program or the like, and divide the concealment program or the like into blocks by the unit of the separator.
  • the control unit 20 extracts confirmation data included in the decoded block (S24).
  • the confirmation data is, for example, a parity bit or the like indicating the legitimacy of the data with respect to part of the data of the program included in the block.
  • the confirmation data may be a hash value included in the block.
  • the control unit 20 confirms the legitimacy of the program included in the decoded block based on the extracted confirmation data (S25).
  • the control unit 20 may confirm the correctness of the program based on, for example, parity bits.
  • the control unit 20 may confirm the legitimacy by comparing the hash value extracted from the block with the hash value derived using the hash function stored in the first storage unit 21.
  • control unit 20 determines whether the block processed this time is the last block (S27), and if it is not the last block (S27: NO), S23 again. Perform loop processing to execute the processing of
  • control unit 20 stores the decrypted program and the like in the second storage (S28). Since the processes of S29 to S292 are the same as the processes of S15 to S17 of the first embodiment, the description will be omitted.
  • control unit 20 If it is determined that there is a problem with the legitimacy (S26: YES), the control unit 20 notifies the program providing device S1 via the external communication device 1 (S261). Further, the control unit 20 may notify the driver or the like of the vehicle C via a notification unit (not shown) provided in the vehicle C. After performing the notification, the control unit 20 deletes the concealment program and the like from the first storage unit 21 (S292).
  • the concealment program and the like are decoded in block units to check the legitimacy, but the present invention is not limited to this.
  • the control unit 20 may decrypt the concealment program and the like, and confirm the legitimacy of the program or the like for the entire decrypted program or the like.
  • the update processing is immediately interrupted to notify the program providing device S1, but the present invention is not limited to this.
  • the control unit 20 repeats the process of acquiring the concealment program etc. again or decrypting the concealment program etc. again a predetermined number of times, If the problem in the confirmation continues, the updating process may be interrupted to notify the program providing device S1.
  • control unit 20 Since the control unit 20 confirms the legitimacy when decoding the obtained concealed program and the like, the control unit 20 can perform integrity verification of the decoded program and the like.
  • the program on the second storage unit 22 and the like is performed when an interruption such as a power interruption occurs. Can be eliminated to prevent it from leaking.
  • FIG. 5 is a flowchart showing processing of the control unit 20 according to the third embodiment.
  • the control unit 20 of the in-vehicle updating device 2 according to the third embodiment generates a program (such as a new program) to be transmitted to the in-vehicle ECU 3 based on the acquired differential data and the current program of the in-vehicle ECU 3
  • the second embodiment differs from the first embodiment in that The following mainly describes the differences.
  • the control unit 20 acquires the concealed program and the like (the concealment program and the like) transmitted from the program providing device S1 via the outside-vehicle communication device 1 (S31).
  • the concealment program and the like in the present embodiment are the current program or data (current program or the like) already applied to the in-vehicle ECU 3 and the new program or data (new program or the like) to be applied to the in-vehicle ECU 3 by this update.
  • the difference data is encrypted.
  • the control unit 20 stores the obtained concealment program and the like in the first storage unit 21 (S32).
  • the control unit 20 reads the concealment program and the like stored in the first storage unit 21, and decodes the concealment program and the like (S33).
  • the control unit 20 stores, in the second storage unit 22, the difference data that has become plaintext by decrypting the concealment program or the like (S34).
  • the control unit 20 is stored in the storage unit 31 of the on-vehicle ECU 3 from the on-vehicle ECU 3 to be updated, acquires a currently applied program or data (current program etc.), and stores it in the second storage unit 22. (S35).
  • the control unit 20 generates a program or data (such as a new program) to be applied to the on-vehicle ECU 3 from the difference data stored in the second storage unit 22 and the current program and the like by the current update. Are stored in the second storage unit 22 (S36).
  • the control unit 20 reads the new program and the like stored in the second storage unit 22 and transmits the read new program and the like to the predetermined on-vehicle ECU 3 via the in-vehicle LAN 4 (S37).
  • control unit 20 After completing the transmission to the on-vehicle ECU 3, the control unit 20 deletes the difference data, the current program, etc. and the new program, etc. from the second storage unit 22 (S38), and further deletes the concealment program etc. from the first storage unit 21. (S39).
  • the concealment program and the like further encrypt differential data, but the present invention is not limited to this.
  • the concealment program or the like may be plaintext differential data. In this case, it goes without saying that the process of decoding the concealment program or the like is unnecessary.
  • the concealment program etc. is difference data between the current program etc. and the new program etc.
  • the program itself to be applied to the in-vehicle ECU 3 can not be generated even if the difference data leaks by any chance. It is possible to improve the security of program update processing using wireless communication.
  • the decoded differential data, the current program, etc., and the new program are stored in the volatile second storage unit 22. Therefore, when interruption such as power interruption occurs during the updating process, the second memory is stored. The difference data, the current program and the new program stored in the unit 22 are erased. Therefore, even if such an interruption occurs, it is possible to prevent the leakage of these programs and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

車載ECUのプログラム又はデータを更新するための処理を行う車載更新装置であって、秘匿化処理されたプログラム又はデータを取得する取得部と、前記取得部が取得した前記プログラム又はデータを記憶する第1記憶部と、該第1記憶部から読み出した前記プログラム又はデータを復号する復号部と、復号されたプログラム又はデータを記憶する揮発性の第2記憶部と、該第2記憶部に記憶した前記復号されたプログラム又はデータを前記車載ECUに送信する送信部とを備える。

Description

車載更新装置、プログラム及びプログラム又はデータの更新方法
 本開示は、車載更新装置、プログラム及びプログラム又はデータの更新方法に関する。
 本出願は、2017年12月11日出願の日本出願第2017-237192号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
 車載器を制御する車載ECUのプログラムを更新するにあたり、当該プログラムを送信するサーバと通信して当該プログラムを受信し、受信したプログラムを車載ECUに送信することによって、プログラムの更新を行う中継装置が知られている。
 車載ECUのプログラムの受信時には、当該プログラムに関する情報漏洩を防止する観点から、受信するプログラムを暗号化することが望まれている。受信された暗号プログラムは、受信側の装置によって復号され、復号されたプログラムは、平文の状態となりプログラムの内容を参照することが可能な状態となる。
 これに対応するため、特許文献1の情報処理装置は、復号されたプログラムが記憶されている記憶装置に対するアクセス制限をかけ、当該装置から復号されたプログラムが取り出されることを制限する取り出し制御手段を備えている。
特開2003-173215号公報
 本開示の一態様に係る車載更新装置は、車載ECUのプログラム又はデータを更新するための処理を行う車載更新装置であって、秘匿化処理されたプログラム又はデータを取得する取得部と、前記取得部が取得した前記プログラム又はデータを記憶する第1記憶部と、該第1記憶部から読み出した前記プログラム又はデータを復号する復号部と、復号されたプログラム又はデータを記憶する揮発性の第2記憶部と、該第2記憶部に記憶した前記復号されたプログラム又はデータを前記車載ECUに送信する送信部とを備える。
 本開示の一態様に係るプログラムは、コンピュータに、秘匿化処理されたプログラム又はデータを取得し、取得した前記プログラム又はデータを第1記憶部に記憶し、該第1記憶部に記憶した前記プログラム又はデータを復号し、復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する処理を実行させる。
 本開示の一態様に係るプログラム又はデータの更新方法は、秘匿化処理されたプログラム又はデータを取得し、取得した前記プログラム又はデータを第1記憶部に記憶し、該第1記憶部に記憶した前記プログラム又はデータを復号し、復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する。
実施形態1に係る車載更新システムの構成を示す模式図である。 実施形態1に係る車載更新装置等の構成を示すブロック図である。 実施形態1に係る制御部の処理を示すフローチャートである。 実施形態2に係る制御部の処理を示すフローチャートである。 実施形態3に係る制御部の処理を示すフローチャートである。
[本開示が解決しようとする課題]
 特許文献1の情報処理装置は取り出し制御手段が施されているが、復号されたプログラムは、不揮発性の記憶媒体に記憶されている。従って、当該記憶媒体を光学観察する又は記憶媒体の内部バスを直接プロービングすることで、当該復号されたプログラムを不正に取得される虞がある。特に、プログラムを更新する処理中に、例えば、電源を遮断すること等により更新を中断させ、復号されたプログラムが記憶媒体に残存する状態を意図的に発生させられた場合、不正に取得される虞は更に大きくなる。
 本開示の目的は、復号されたプログラムが漏洩することを防止して車載ECUのプログラムの更新を行うことができる車載更新装置等を提供する。
[本開示の効果]
 本開示によれば、復号されたプログラムが漏洩することを防止して車載ECUのプログラムの更新を行うことができる車載更新装置等を提供することができる。
[本開示の実施形態の説明]
 最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本開示の一態様に係る車載更新装置は、車載ECUのプログラム又はデータを更新するための処理を行う車載更新装置であって、秘匿化処理されたプログラム又はデータを取得する取得部と、前記取得部が取得した前記プログラム又はデータを記憶する第1記憶部と、該第1記憶部から読み出した前記プログラム又はデータを復号する復号部と、復号されたプログラム又はデータを記憶する揮発性の第2記憶部と、該第2記憶部に記憶した前記復号されたプログラム又はデータを前記車載ECUに送信する送信部とを備える。
 本態様にあたっては、復号されたプログラム又はデータは、揮発性の記憶媒体による第2記憶部に記憶されているため、車載更新装置の電源が遮断された場合等、当該揮発性の記憶媒体に記憶されているプログラム又はデータは、消去される。従って、電源が遮断され更新処理が中断された場合であっても、復号されたプログラム又はデータを確実に消去することによって、復号されたプログラムが漏洩することを防止することができる。
(2)前記復号されたプログラム又はデータが前記車載ECUに送信された後、該復号されたプログラム又はデータを前記第2記憶部から消去する消去部を備える構成が好ましい。
 本態様にあたっては、前記復号されたプログラム又はデータを前記車載ECUに送信した後、前記第2記憶部に記憶されている該復号されたプログラム又はデータを消去する消去部を備えるので、復号されたプログラムが漏洩することを防止することができる。
(3)前記第1記憶部は、不揮発性である構成が好ましい。
 本態様にあたっては、第1記憶部を不揮発性の記憶媒体とすることによって、電源が遮断され更新処理が中断された場合であっても、復号されたプログラム又はデータは消去しつつ、秘匿化処理されたプログラム又はデータは保持することができる。従って、中断後、更新処理を再開するにあたり、秘匿化処理されたプログラム又はデータを再度取得することを不要とし、取得するための通信コスト及び処理時間を削減することができる。
(4)前記秘匿化処理されたプログラム又はデータは、該プログラム又はデータの正当性を確認するための確認用データを含み、前記復号部は、該プログラム又はデータを復号する際に、前記確認用データに基づいて該プログラム又はデータの正当性を確認する構成が好ましい。
 本態様にあたっては、車載更新装置は、秘匿化処理された該プログラム又はデータを復号する際に、前記確認用データに基づいて該プログラム又はデータの正当性を確認するため、復号されたプログラム又はデータの正当性を補償することができる。また、確認用データに基づいて該プログラム又はデータの正当性を確認する処理は、揮発性の記憶媒体による第2記憶部の記憶領域で行われるため、復号されたプログラムが漏洩することを防止することができる。
(5)前記秘匿化処理は、暗号鍵による暗号化処理によるものであり、前記復号部は、暗号鍵に対応する復号鍵により、前記秘匿化処理されたプログラム又はデータを復号する構成が好ましい。
 本態様にあたっては、秘匿化処理は、暗号鍵による暗号化処理によるものであるため、秘匿化処理されたプログラム又はデータの堅牢性を向上させることができる。
(6)前記復号されたプログラム又はデータが前記車載ECUに送信された後、前記秘匿化処理されたプログラム又はデータを前記第1記憶部から消去する消去部を備える構成が好ましい。
 本態様にあたっては、復号されたプログラム又はデータを前記車載ECUに送信した後、前記秘匿化処理されたプログラム又はデータを第1記憶部から消去する消去部を備えるため、第1記憶部の記憶容量が逼迫することを抑制することができる。また、復号されたプログラム又はデータを前記車載ECUに送信した後、前記秘匿化処理されたプログラム又はデータが漏洩することを防止することができる。
(7)前記秘匿化処理されたプログラム又はデータは、前記車載ECUに既に適用されている現プログラム又はデータと、今回適用する新プログラム又はデータとの差分データに基づき生成されており、前記取得部は、更に前記車載ECUから現プログラム又はデータを取得し、前記復号部は、前記秘匿化処理されたプログラム又はデータを復号して差分データを生成し、生成した該差分データと、前記現プログラム又はデータとに基づいて、前記新プログラム又はデータを生成し、前記現プログラム又はデータ、及び生成された前記新プログラム又はデータは、前記第2記憶部に記憶されており、前記送信部は、前記第2記憶部に記憶された前記新プログラム又はデータを、前記復号されたプログラム又はデータに換えて前記車載ECUに送信する構成が好ましい。
 本態様にあたっては、秘匿化処理されたプログラム又はデータは、車載ECUに既に適用されている現プログラム又はデータと、今回適用する新プログラム又はデータとの差分データに基づき生成されているため、新プログラム又はデータの漏洩を防止することができる。秘匿化処理されたプログラム又はデータは、差分データに基づき生成されているため、当該秘匿化処理されたプログラム又はデータを取得するための通信コスト及び通信トラフィックを低減させることができる。現プログラム又はデータは、揮発性の第2記憶部に記憶されるため、電源遮断時等に現プログラム又はデータが消去され、現プログラム等が漏洩することを防止することができる。復号された差分データと、現プログラム又はデータとにより生成した新プログラム又はデータは、揮発性の第2記憶部に記憶されるため、電源遮断時等に新プログラム又はデータが漏洩することを防止することができる。
(8)本開示の一態様に係るプログラムは、秘匿化処理されたプログラム又はデータを取得し、取得した前記プログラム又はデータを第1記憶部に記憶し、該第1記憶部に記憶した前記プログラム又はデータを復号し、復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する処理を実行させる。
 本態様にあたっては、コンピュータを、本開示の一態様の車載更新装置として機能させることができる。
(9)本開示の一態様に係るプログラム又はデータの更新方法は、秘匿化処理されたプログラム又はデータを取得し、取得した前記プログラム又はデータを第1記憶部に記憶し、該第1記憶部に記憶した前記プログラム又はデータを復号し、復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する。
 本態様にあたっては、復号されたプログラム又はデータを揮発性の第2記憶部に記憶することによって、電源が遮断され更新処理が中断された場合であっても、復号されたプログラム又はデータを確実に消去することによって、復号されたプログラムが漏洩することを防止することができる。
[本開示の実施形態の詳細]
 本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載更新装置2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
(実施形態1)
 以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載更新システムSの構成を示す模式図である。車載更新システムSは、車両Cに搭載された車外通信装置1及び車載更新装置2を含み、車外ネットワークNを介して接続されたプログラム提供装置S1から取得したプログラム又はデータを、車両Cに搭載されている車載ECU3(Electronic Control Unit)に送信する。
 プログラム提供装置S1は、例えばインターネット又は公衆回線網等の車外ネットワークNに接続されているサーバ等のコンピュータである。プログラム提供装置S1には、車載ECU3の製造メーカ等によって作成された当該車載ECU3を制御するためのプログラム又はデータが保存されている。当該プログラム又はデータは、後述のごとく車両Cに送信され、車両Cに搭載されている車載ECU3のプログラム又はデータを更新するために用いられる。
 これら更新用のプログラム又はデータは、秘匿化処理が施されている。秘匿化処理とは、例えば、暗号化によるものである。又は、既に車両Cに搭載された車載ECU3に適用されているプログラム又はデータ(現プログラム等)と、今回更新するためのプログラム又はデータ(新プログラム)との差分データによって構成することにより、更新用のプログラム又はデータを秘匿化処理するものであってもよい。なお、当該差分データ自体を暗号化したものであってもよい。
 車両Cには、車外通信装置1、車載更新装置2、及び種々の車載機器を制御するための複数の車載ECU3が搭載されている。車外通信装置1、車載更新装置2及び車載ECU3は、車内LAN4によって通信可能に接続されている。
 図2は、実施形態1に係る車載更新装置2等の構成を示すブロック図である。車載更新装置2は、制御部20、第1記憶部21、第2記憶部22及び車内通信部23を含む。車載更新装置2は、車外通信装置1が無線通信によってプログラム提供装置S1から受信したプログラム又はデータを、車内LAN4を介して取得し、当該プログラム又はデータを所定の車載ECU3に送信できるように構成されている。車載更新装置2は、例えば、制御系、安全系及びボディ系等の複数の車載ECU3の系統のセグメントを統括するセントラルゲートウェイ(CGW)である。又は、車載更新装置2は、車両C全体をコントロールするボディECUであってもよい。
 制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、第1記憶部21に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部20は、制御プログラムを実行することによって、復号部、消去部として機能する。制御部20は、車外通信装置1又は車内通信部23を介することによって、取得部として機能する。制御部20は、車内通信部23を介することによって、送信部として機能する。
 第1記憶部21は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)又はフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。第1記憶部21に記憶された制御プログラムは、車載更新装置2が読み取り可能な記録媒体から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、第1記憶部21に記憶させたものであってもよい。第1記憶部21には、暗号化等により秘匿化処理されたプログラム又はデータを復号するための復号鍵が記憶されている。第1記憶部21には、取得したプログラム又はデータの正当性を確認するため、例えば、所定のハッシュ関数等が記憶されてあってもよい。詳細は後述するが、第1記憶部21には、取得した秘匿化処理されたプログラム又はデータが記憶される。
 第2記憶部22は、RAM(Random access memory)等の揮発性のメモリ素子により構成してあり、制御部20が制御処理及び演算処理等を行う際のワーク領域として用いられる。詳細は後述するが、第2記憶部22には、復号したプログラム又はデータが一時的に記憶される。
 車内通信部23は、CAN(Control Area Network)、LIN(Local Interconnect Network)又はEthernet(登録商標)等の通信プロトコルを用いた入出力インタフェースであり、車内LAN4に接続されている車外通信装置1、車載ECU3等の車載機器と相互に通信する。
 なお、制御部20、第1記憶部21及び第2記憶部22は、CGW及びボディECU等の複数の車載機器に分散して構成され、相互に通信して連携又は協働することによって、機能するものであってもよい。
 車外通信装置1は、車外通信部11及び車内通信部12を含む。車外通信部11は、3G、LTE、4G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための入出力インタフェースであり、公衆回線網又はインターネット等の外部ネットワークを介して、プログラム提供装置S1との通信を行う。
 車内通信部12は、車載更新装置2の車内通信部23と同様の機能を有し、車内LAN4を介して車載更新装置2等と相互に通信する。
 本実施形態では、車外通信装置1は、車載更新装置2と別装置とし、車内LAN4によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、車載更新装置2の一構成部位として、車載更新装置2に内蔵されるものであってもよい。
 車載ECU3は、記憶部31、制御部30及び車内通信部32を含む。記憶部31は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)又はフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、当該車載ECU3のプログラム又はデータが記憶されている。このプログラム又はデータが、車載更新装置2によって更新される対象である。
 制御部30は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部31に予め記憶されたプログラム及びデータを読み出して実行して制御処理等を行い、当該車載ECU3を含む車載機器又はアクチュエータ等が制御される。詳細は後述するが、制御部30は、車載更新装置2から送信されたプログラム又はデータを取得し、記憶部31に記憶されている現プログラム又はデータから、当該取得したプログラム又はデータに更新する処理を行う。
 車内通信部32は、車載更新装置2の車内通信部23と同様の機能を有し、車内LAN4を介して車載更新装置2等と相互に通信する。
 図3は、実施形態1に係る制御部20の処理を示すフローチャートである。車載更新装置2の制御部20は、車外通信装置1を介してプログラム提供装置S1と定期的又は非定期的に通信し、更新すべきプログラム又はデータ(プログラム等)がプログラム提供装置S1に用意されている場合、以下の処理を開始する。又は、制御部20は、車外通信装置1を介して取得したプログラム提供装置S1からの更新通知に基づいて、以下の処理を開始してもよい。
 制御部20は、プログラム提供装置S1から送信された秘匿化されたプログラム等(秘匿化プログラム等)を、車外通信装置1を介して取得する(S11)。制御部20は、取得した秘匿化プログラム等を不揮発性の第1記憶部21に記憶する(S12)。秘匿化プログラム等は、暗号化されているので、プログラム等の内容自体を参照することが不可な状態で第1記憶部21に記憶されている。
 制御部20は、第1記憶部21に記憶した秘匿化プログラム等を読取り、当該秘匿化プログラム等を復号する(S13)。秘匿化プログラム等の暗号化は、例えば共通鍵方式、公開鍵方式等によって行われている。制御部20は、第1記憶部21に記憶されている共通鍵又は公開鍵に対応する秘密鍵を用いて、秘匿化プログラム等を復号する処理を行う。制御部20による復号の演算処理は、揮発性の第2記憶部22の記憶領域において、行われる。すなわち、制御部20は、復号の演算処理を行うためのワーク領域として、第2記憶部22の記憶領域を用いる。
 制御部20は、秘匿化プログラム等の復号を完了させ、復号したプログラム等、すなわち平文となったプログラム等を第2記憶部22に記憶する(S14)。制御部20は、第2記憶部22に記憶されている復号したプログラム等を読み出し、車内LAN4を介して、更新対象である所定の車載ECU3に送信する(S15)。
 制御部20は、車載ECU3への送信の完了後、復号したプログラム等を第2記憶部22から消去し(S16)、更に秘匿化プログラム等を第1記憶部21から消去する(S17)。なお、復号したプログラム等及び秘匿化プログラム等の消去の順番は、これに限定されず、先に秘匿化プログラム等を消去するものであってもよい。又は、サブプロセスを発生させ、復号したプログラム等及び秘匿化プログラム等を同時に消去するようにしてあってもよい。
 本実施形態において秘匿化プログラム等は、無線通信によってプログラム提供装置S1から受信し、取得するとしたがこれに限定されず、例えば、車載更新装置2と、更新用のプログラムが保存された外部装置とを有線接続して取得するものであってもよい。
 復号したプログラム等は、揮発性の第2記憶部22に記憶してあるため、車載更新装置2によるプログラムの更新処理の途中に電源が遮断される等の中断が発生した場合、第2記憶部22に記憶されている復号したプログラム等は消去される。従って、このような中断が発生した場合であっても、復号したプログラム等が漏洩することを防止することができる。
 制御部20による復号の演算処理は、揮発性の第2記憶部22上の記憶領域をワーク領域として行われる。従って、復号の演算処理を行うための一時的なデータ、例えば一部が復号化されたプログラムの部位についても、第2記憶部22のみに記憶することにより、電源が遮断される等の中断が発生した場合は消去される。よって、復号したプログラムの一部であっても、これが漏洩することを防止することができる。
 プログラム提供装置S1から送信された秘匿化プログラム等は、不揮発性の第1記憶部21に記憶してあるので、プログラムの更新処理が中断された場合であっても、再度プログラム提供装置S1から秘匿化プログラム等を受信することを不要とし、通信コスト及び更新するための処理時間を削減することができる。
 図4は、実施形態2に係る制御部20の処理を示すフローチャートである。実施形態2に係る車載更新装置2の制御部20は、秘匿化プログラム等を復号する際に、当該プログラムの正当性を確認する処理を行う点で、実施形態1と異なる。以下では、主にかかる相違点を説明する。S21からS22の処理は、実施形態1のS11からS12の処理と同様であるため説明を省略する。
 制御部20は、第1記憶部21に記憶した秘匿化プログラム等を読取り、ブロック単位で復号する(S23)。ブロックとは、例えば、所定のデータサイズ毎に分割されたデータである。又は、制御部20は、復号化するにあたり、秘匿化プログラム等におけるデータ列に含まれるセパレータを抽出し、当該セパレータ単位で、秘匿化プログラム等を分割してブロックとしてもよい。
 制御部20は、復号したブロックに含まれる確認用データを抽出する(S24)。確認用データとは、例えば、当該ブロックに含まれるプログラムの一部のデータに対し、当該データの正当性を示すパリティビット等である。又は、確認用データは、当該ブロックに含まれるハッシュ値であってもよい。
制御部20は、抽出した確認用データに基づき、復号したブロックに含まれるプログラムの正当性を確認する(S25)。制御部20は、例えばパリティビットに基づいて、プログラムの正当性を確認してもよい。または、制御部20は、ブロックから抽出したハッシュ値と、第1記憶部21に記憶してあるハッシュ関数を用いて導出したハッシュ値とを比較することによって、正当性を確認してもよい。
 正当性に問題がないと判定した場合(S26:YES)、制御部20は、今回処理したブロックが最後のブロックかを判定し(S27)、最後のブロックでない場合(S27:NO)、再度S23の処理を実行すべくループ処理を行う。
 最後のブロックである場合(S27:YES)、制御部20は、復号したプログラム等を第2記憶に記憶する(S28)。以降、S29からS292の処理は、実施形態1のS15からS17の処理と同様であるため説明を省略する。
 正当性に問題があると判定した場合(S26:YES)、制御部20は、車外通信装置1を介して、プログラム提供装置S1に通知する(S261)。また制御部20は、車両Cに設けられた報知部(図示せず)を介して、車両Cの運転者等に報知してもよい。制御部20は、当該通知を行った後、秘匿化プログラム等を第1記憶部21から消去する(S292)。
 本実施形態において、秘匿化プログラム等をブロック単位で復号し、正当性を確認するものとしたがこれに限定されない。制御部20は、秘匿化プログラム等を復号し、復号したプログラム等の全体に対し、当該プログラム等の正当性を確認するものであってもよい。
 本実施形態において、正当性の確認に問題があった場合は、更新処理を即座に中断してプログラム提供装置S1に通知するとしたが、これに限定されない。制御部20は、正当性の確認に問題があった場合、再度、秘匿化プログラム等を取得する、又は再度、秘匿化プログラム等を復号する等の処理を所定回数繰り返し、その上で正当性の確認における問題が継続した場合、更新処理を中断してプログラム提供装置S1に通知するものであってもよい。
 制御部20は、取得した秘匿化プログラム等を復号する際に正当性を確認するので、復号したプログラム等の完全性検証を行うことができる。
 正当性の確認において問題があった場合、取得した秘匿化プログラム等が改ざんされている等が懸念されるところ、更新処理を中断し、その旨をプログラム提供装置S1等に通知することによって、更新処理の安全性を向上することができる。
 復号及びプログラム等の正当性を確認する演算処理は、揮発性の第2記憶部22上で行われるため、電源が遮断される等の中断が発生した場合、第2記憶部22上のプログラム等は消去され、これが漏洩することを防止することができる。
 図5は、実施形態3に係る制御部20の処理を示すフローチャートである。実施形態3に係る車載更新装置2の制御部20は、車載ECU3に送信するプログラム等(新プログラム等)を、取得し復号した差分データ、及び当該車載ECU3の現プログラム等に基づいて生成する処理を行う点で、実施形態1と異なる。以下では、主にかかる相違点を説明する。
 制御部20は、プログラム提供装置S1から送信された秘匿化されたプログラム等(秘匿化プログラム等)を、車外通信装置1を介して取得する(S31)。本実施形態における秘匿化プログラム等は、既に車載ECU3に適用されている現状のプログラム又はデータ(現プログラム等)と、今回の更新によって車載ECU3に適用する新プログラム又はデータ(新プログラム等)との差分データを暗号化したものである。
 制御部20は、取得した秘匿化プログラム等を第1記憶部21に記憶する(S32)。制御部20は、第1記憶部21に記憶した秘匿化プログラム等を読取り、当該秘匿化プログラム等を復号する(S33)。制御部20は、当該秘匿化プログラム等を復号することによって、平文となった差分データを、第2記憶部22に記憶する(S34)。
 制御部20は、更新対象の車載ECU3から、当該車載ECU3の記憶部31に記憶されており、現状適用されているプログラム又はデータ(現プログラム等)を取得し、第2記憶部22に記憶する(S35)。
 制御部20は、第2記憶部22に記憶されている差分データ及び現プログラム等から、今回の更新によって車載ECU3に適用するためのプログラム又はデータ(新プログラム等)を生成し、当該新プログラム等を第2記憶部22に記憶する(S36)。制御部20は、第2記憶部22に記憶されている新プログラム等を読み出し、車内LAN4を介して、所定の車載ECU3に送信する(S37)。
 制御部20は、車載ECU3への送信の完了後、差分データ、現プログラム等及び新プログラム等を第2記憶部22から消去し(S38)、更に秘匿化プログラム等を第1記憶部21から消去する(S39)。
 本実施形態において、秘匿化プログラム等は差分データをさらに暗号化したものとしているが、これに限定されない。秘匿化プログラム等は、平文の差分データであってもよい。この場合、秘匿化プログラム等を復号する処理が不要となることは、言うまでもない。
 秘匿化プログラム等は、現プログラム等と新プログラム等との差分データであるため、万が一、当該差分データが漏洩した場合であっても、車載ECU3に適用するプログラムそのものを生成することができないため、無線通信を用いたプログラムの更新処理における安全性を向上させることができる。
 復号された差分データ、現プログラム等及び新プログラム等は、揮発性の第2記憶部22に記憶されるため、更新処理の途中に電源が遮断される等の中断が発生した場合、第2記憶部22に記憶されている差分データ、現プログラム及び新プログラムは消去される。従って、このような中断が発生した場合であっても、これらプログラム等が漏洩することを防止することができる。
 今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 C 車両
 S 車載更新システム
 S1 プログラム提供装置(サーバ)
 1 車外通信装置
 11 車外通信部
 12 車内通信部
 2 車載更新装置(CGW)
 20 制御部(復号部、取得部、送信部、消去部)
 21 第1記憶部
 22 第2記憶部
 23 車内通信部
 24 記録媒体
 3 車載ECU
 30 制御部
 31 記憶部
 32 車内通信部
 4 車内LAN
 N 車外ネットワーク
 

Claims (9)

  1.  車載ECUのプログラム又はデータを更新するための処理を行う車載更新装置であって、
     秘匿化処理されたプログラム又はデータを取得する取得部と、
     前記取得部が取得した前記プログラム又はデータを記憶する第1記憶部と、
     該第1記憶部から読み出した前記プログラム又はデータを復号する復号部と、
     復号されたプログラム又はデータを記憶する揮発性の第2記憶部と、
     該第2記憶部に記憶した前記復号されたプログラム又はデータを前記車載ECUに送信する送信部と
     を備える車載更新装置。
  2.  前記復号されたプログラム又はデータが前記車載ECUに送信された後、該復号されたプログラム又はデータを前記第2記憶部から消去する消去部
     を備える請求項1に記載の車載更新装置。
  3.  前記第1記憶部は、不揮発性である
     請求項1又は請求項2に記載の車載更新装置。
  4.  前記秘匿化処理されたプログラム又はデータは、該プログラム又はデータの正当性を確認するための確認用データを含み、
     前記復号部は、該プログラム又はデータを復号する際に、前記確認用データに基づいて該プログラム又はデータの正当性を確認する
     請求項1から請求項3のいずれか一つに記載の車載更新装置。
  5.  前記秘匿化処理は、暗号鍵による暗号化処理によるものであり、
     前記復号部は、暗号鍵に対応する復号鍵により、前記秘匿化処理されたプログラム又はデータを復号する
     請求項1から請求項4のいずれか一つに記載の車載更新装置。
  6.  前記復号されたプログラム又はデータが前記車載ECUに送信された後、前記秘匿化処理されたプログラム又はデータを前記第1記憶部から消去する消去部
     を備える
     請求項1から請求項5のいずれか一つに記載の車載更新装置。
  7.  前記秘匿化処理されたプログラム又はデータは、前記車載ECUに既に適用されている現プログラム又はデータと、今回適用する新プログラム又はデータとの差分データに基づき生成されており、
     前記取得部は、更に前記車載ECUから現プログラム又はデータを取得し、
     前記復号部は、前記秘匿化処理されたプログラム又はデータを復号して差分データを生成し、生成した該差分データと、前記現プログラム又はデータとに基づいて、前記新プログラム又はデータを生成し、
     前記現プログラム又はデータ、及び生成された前記新プログラム又はデータは、前記第2記憶部に記憶されており、
     前記送信部は、前記第2記憶部に記憶された前記新プログラム又はデータを、前記復号されたプログラム又はデータに換えて前記車載ECUに送信する
     請求項1から請求項6のいずれか一つに記載の車載更新装置。
  8.  コンピュータに、
     秘匿化処理されたプログラム又はデータを取得し、
     取得した前記プログラム又はデータを第1記憶部に記憶し、
     該第1記憶部に記憶した前記プログラム又はデータを復号し、
     復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、
     該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する
     処理を実行させるプログラム。
  9.  秘匿化処理されたプログラム又はデータを取得し、
     取得した前記プログラム又はデータを第1記憶部に記憶し、
     該第1記憶部に記憶した前記プログラム又はデータを復号し、
     復号されたプログラム又はデータを揮発性の第2記憶部に記憶し、
     該第2記憶部に記憶した前記復号されたプログラム又はデータを車載ECUに送信する
     プログラム又はデータの更新方法。
     
PCT/JP2018/044112 2017-12-11 2018-11-30 車載更新装置、プログラム及びプログラム又はデータの更新方法 WO2019116922A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017237192A JP2019105946A (ja) 2017-12-11 2017-12-11 車載更新装置、プログラム及びプログラム又はデータの更新方法
JP2017-237192 2017-12-11

Publications (1)

Publication Number Publication Date
WO2019116922A1 true WO2019116922A1 (ja) 2019-06-20

Family

ID=66819212

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/044112 WO2019116922A1 (ja) 2017-12-11 2018-11-30 車載更新装置、プログラム及びプログラム又はデータの更新方法

Country Status (2)

Country Link
JP (1) JP2019105946A (ja)
WO (1) WO2019116922A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7423959B2 (ja) * 2019-09-27 2024-01-30 株式会社アドヴィックス 車両リプログラミングシステム
JP7427176B2 (ja) 2019-12-27 2024-02-05 国立研究開発法人情報通信研究機構 無線通信情報更新システム及び無線通信情報更新方法
KR102491866B1 (ko) * 2020-10-23 2023-01-26 고려대학교 산학협력단 화이트박스 암호를 이용한 차량 소프트웨어 업데이트 기법
JP7447864B2 (ja) 2021-04-26 2024-03-12 トヨタ自動車株式会社 Otaマスタ、方法およびプログラム
JP7464013B2 (ja) 2021-07-05 2024-04-09 トヨタ自動車株式会社 センタ、otaマスタ、方法、プログラム、及び車両

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056962A (ja) * 1998-08-13 2000-02-25 Mitsubishi Electric Corp プログラム書換え装置
JP2004341745A (ja) * 2003-05-14 2004-12-02 Sony Corp 暗号化データ復号方法、データ処理装置及びプログラム
JP2006004125A (ja) * 2004-06-17 2006-01-05 Mitsubishi Electric Corp 差分適用組込み機器、差分適用組込み機器システム及び格納データ変更方法
JP2017017616A (ja) * 2015-07-03 2017-01-19 Kddi株式会社 ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056962A (ja) * 1998-08-13 2000-02-25 Mitsubishi Electric Corp プログラム書換え装置
JP2004341745A (ja) * 2003-05-14 2004-12-02 Sony Corp 暗号化データ復号方法、データ処理装置及びプログラム
JP2006004125A (ja) * 2004-06-17 2006-01-05 Mitsubishi Electric Corp 差分適用組込み機器、差分適用組込み機器システム及び格納データ変更方法
JP2017017616A (ja) * 2015-07-03 2017-01-19 Kddi株式会社 ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2019105946A (ja) 2019-06-27

Similar Documents

Publication Publication Date Title
WO2019116922A1 (ja) 車載更新装置、プログラム及びプログラム又はデータの更新方法
US10229547B2 (en) In-vehicle gateway device, storage control method, and computer program product
JP5310761B2 (ja) 車両ネットワークシステム
JP6741559B2 (ja) 評価装置、評価システム及び評価方法
US10013365B2 (en) Method for programming a control unit of a motor vehicle
JP5949732B2 (ja) プログラム更新システム及びプログラム更新方法
JP5783103B2 (ja) 車両用データ通信システム及び車両用データ通信装置
JP5900007B2 (ja) 車両用データ通信認証システム及び車両用ゲートウェイ装置
CN106471767B (zh) 通信系统及密钥信息共享方法
KR102450811B1 (ko) 차량 내부 네트워크의 키 관리 시스템
CN106850311B (zh) 用于固件升级的数据安全传输系统及方法
US20150012750A1 (en) Information distribution system, and server, on-board terminal and communication terminal used therefor
WO2020179592A1 (ja) 車載更新装置、更新処理プログラム及び、プログラムの更新方法
US7802069B2 (en) Method and apparatus for protecting flash memory
US20190294826A1 (en) Information processing apparatus, information processing system, and information processing method
US10681016B2 (en) Method and apparatus for operating a connected device using a secure element device
JP6192673B2 (ja) 鍵管理システム、鍵管理方法およびコンピュータプログラム
CN107124279B (zh) 擦除终端数据的方法及装置
CN113239363A (zh) 固件更新方法、装置、设备、可读存储介质及存储器系统
JP2009253783A (ja) 携帯端末、データ保護方法およびデータ保護用プログラム
JP2013026964A (ja) 車両用情報更新装置および車両用情報更新方法
CN111294795A (zh) 用于实现车内通信的系统
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
KR20190058302A (ko) 반도체 장치, 인증 시스템 및 인증 방법
JP2016152438A (ja) ソフトウェア更新装置、携帯端末及びソフトウェア更新システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18887607

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18887607

Country of ref document: EP

Kind code of ref document: A1