WO2022102385A1 - 車載ecu、プログラム及び情報処理方法 - Google Patents

車載ecu、プログラム及び情報処理方法 Download PDF

Info

Publication number
WO2022102385A1
WO2022102385A1 PCT/JP2021/039220 JP2021039220W WO2022102385A1 WO 2022102385 A1 WO2022102385 A1 WO 2022102385A1 JP 2021039220 W JP2021039220 W JP 2021039220W WO 2022102385 A1 WO2022102385 A1 WO 2022102385A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
vehicle
storage area
verification
negative
Prior art date
Application number
PCT/JP2021/039220
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 株式会社オートネットワーク技術研究所
Priority to US18/252,434 priority Critical patent/US20230409316A1/en
Priority to CN202180072985.7A priority patent/CN116419871A/zh
Publication of WO2022102385A1 publication Critical patent/WO2022102385A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • 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/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
    • G06F21/575Secure boot
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Definitions

  • the present disclosure relates to an in-vehicle ECU, a program, and an information processing method.
  • This application claims priority based on Japanese Application No. 2020-188815 filed on November 12, 2020, and incorporates all the contents described in the Japanese application.
  • the vehicle is equipped with an ECU (Electronic Control Unit) for controlling in-vehicle devices such as power train systems such as engine control and body systems such as air conditioner control.
  • the ECU includes an arithmetic processing unit such as an MPU, a rewritable non-volatile storage unit such as RAM, and a communication unit for communicating with other ECUs, and by reading and executing a control program stored in the storage unit. , Controls in-vehicle devices.
  • a secure boot method is known in which the completeness of the control program is verified at the time of starting the ECU and the activation (boot) of the ECU is permitted when the verification is successful (for example, Patent Document). See 1).
  • Patent Document 1 performs fail-safe in verifying the integrity of a control program so that the problematic control program (software) is not started when the number of failures exceeds a specified value.
  • the in-vehicle ECU is an in-vehicle ECU mounted on a vehicle, and is a verification unit that executes a plurality of programs and verifies each of the plurality of programs when the own ECU is activated.
  • the control unit includes a unit, a first storage area in which each of the plurality of programs is stored, and a second storage area in which each of the plurality of save programs corresponding to the plurality of programs is stored.
  • the program whose verification by the verification unit is positive is executed, the program whose verification by the verification unit is negative is not executed, and the save program corresponding to the negative program is executed.
  • Patent Document 1 has a problem that the point of dealing with a program that could not be started due to the verification result of secure boot is not taken into consideration.
  • the purpose of the present disclosure is to provide an in-vehicle ECU or the like capable of responding to a program that could not be started.
  • the in-vehicle ECU is an in-vehicle ECU mounted on a vehicle, and is a control unit that executes a plurality of programs, and verification of each of the plurality of programs when the own ECU is activated.
  • the control unit includes a verification unit for storing the plurality of programs, a first storage area for storing each of the plurality of programs, and a second storage area for storing each of the plurality of save programs corresponding to the plurality of programs. , The program whose verification by the verification unit is positive is executed, the program whose verification by the verification unit is negative is not executed, and the save program corresponding to the negative program is executed.
  • the verification unit verifies a plurality of programs, that is, the in-vehicle ECU performs secure boot using the verification unit. Even if the verification by the verification unit for the program stored in the first storage area is negative in the secure boot, the second storage area different from the first storage area corresponds to the program.
  • the save program is stored, and the control unit executes the save program. Therefore, even if the verification result of any of the programs stored in the first storage area by the secure boot by the verification unit is negative, the response to the program that could not be started due to the verification result of the secure boot (alternative).
  • the save program stored in the second storage area can be executed to maintain the functions of the in-vehicle ECU.
  • the control unit determines whether or not to execute the save program according to the verification results for each of the plurality of programs. Therefore, if a negative verification result is obtained only in some programs in the plurality of programs, the relevant control unit is concerned.
  • Local measures can be taken to execute the save program only for negative programs. Therefore, even when the plurality of programs are classified into a plurality of functional categories according to the functions, local measures can be taken according to the functional categories.
  • the save program corresponding to the program is an old version program which is a previous version of the program, or a backup program which backs up the program.
  • the backup program executed by the control unit in place of the negative program is the old version program which is the previous version of the program, or the program. It is a backup program that backs up the above, and has a track record of operation. Therefore, by executing the evacuation program, the in-vehicle ECU can exhibit the same function as the program that could not be executed.
  • the save program stored in the second storage area is copied to the first storage area.
  • the negative program is overwritten, and the save program is executed with the first storage area as the main memory.
  • the control unit copies the save program stored in the second storage area to the first storage area, overwrites the negative program, and uses the first storage area as the main memory as the save program.
  • the main memory is a storage area including a memory space (memory area) allocated to a process generated when a program is executed by a control unit such as a CPU. Therefore, when the control unit generates a process or the like, the save program can be executed without changing the access mode (memory control) to the first storage area which is the main memory.
  • the save program is executed using the second storage area in which the save program is stored as the main memory. do.
  • the control unit copies the save program to the first storage area in order to execute the save program using the second storage area in which the save program is stored as the main memory. It is possible to eliminate the need for processing and reduce the time (required time) required for a series of processing when executing the save program.
  • the verification unit verifies the program and the evacuation program corresponding to the program, and the verification unit for the program and the evacuation program corresponding to the program.
  • the control unit acquires a normal program of the same type as the negative program from an external server outside the vehicle, and executes the acquired regular program.
  • the verification unit verifies the program stored in the first storage area and the save program stored in the second storage area and corresponding to the program, so that the certainty in secure boot is performed. Can be further improved. Even if both the program and the evacuation program corresponding to the program have negative verification results, the control unit executes the regular program acquired from the external server outside the vehicle, so that the function maintenance in the in-vehicle ECU can be achieved.
  • control unit copies the acquired normal program to the first storage area and the second storage area, and copies the negative program and the evacuation program. Is overwritten, and the regular program is executed with the first storage area as the main memory.
  • the control unit copies the regular program acquired from the external server outside the vehicle to the first storage area and the second storage area. And overwrite the negative program and the save program.
  • the negative program and the save program can be substantially erased (deleted), and both the program and the save program stored in the in-vehicle ECU can be normalized.
  • the in-vehicle ECU outputs notification information indicating that the control unit cannot perform the function corresponding to the negative program when the normal program cannot be acquired from the external server. do.
  • the notification information indicating that the function corresponding to the verification result program) cannot be exhibited is output to, for example, an external server or a notification unit using a hazard lamp or the like.
  • the notification information may correspond to information (rescue signal) indicating a malfunction in which at least a part of the functions cannot be exhibited in the vehicle.
  • an in-vehicle device such as a body ECU that controls a hazard lamp or a horn may drive the hazard lamp to blink, the horn to sound, or the like by acquiring the rescue signal.
  • these hazard lamps and horns may function as a notification unit for notifying the operator of another vehicle located in the vicinity of the vehicle. As a result, it is possible to notify the administrator of the external server or the operator of another vehicle located in the vicinity of the vehicle that the functional failure has occurred in the vehicle on which the vehicle-mounted ECU is mounted.
  • an operating system that generates an operating environment for executing the plurality of programs is stored in the first storage area, and the second storage area stores the operating system.
  • the verification unit verifies the operating system in addition to the verification of each of the plurality of programs, and the control unit is performed by the verification unit. If the verification of the operating system is affirmative, the operating system is started, and if the verification of the operating system by the verification unit is negative, the saved operating system is started.
  • the verification unit verifies the operating system in addition to the verification of each of the plurality of programs, and the control unit verifies the operating system (stored in the first storage area) by the verification unit. If affirmative, the operating system is started, and if verification of the operating system (stored in the second storage area) by the verification unit is negative, the saved operating system is started.
  • the operating system is, for example, an AUTOSAR-compliant OS (Operating System) or an in-vehicle operating system such as Linux (registered trademark).
  • the saved operating system stored in the second storage area may be an operating system of an older version of the operating system stored in the second storage area, or an operating system of the same version backed up, as in the case of the program. Therefore, in the secure boot process (secure boot sequence) at the time of starting the in-vehicle ECU, the operating system or the backup operating system can be started based on the verification result for the operating system, and a secure operating environment can be constructed.
  • the program according to one aspect of the present disclosure is mounted on a vehicle, and a computer that executes a plurality of programs is stored in a first storage area when the own computer is started. Verification is performed, a program whose verification result is positive is executed, and a program whose verification result is negative is not executed, and is stored in a second storage area different from the first storage area. Execute the process to execute the save program corresponding to the negative program.
  • the computer can function as an in-vehicle ECU that can handle programs that could not be started.
  • the information processing method is a computer mounted on a vehicle and executing a plurality of programs, and the plurality of programs stored in the first storage area when the own computer is started. Each verification is performed, a program whose verification result is positive is executed, and a program whose verification result is negative is not executed, and is stored in a second storage area different from the first storage area. , The process of executing the save program corresponding to the negative program is executed.
  • FIG. 1 is a schematic diagram illustrating a configuration of an in-vehicle system including an in-vehicle ECU 2 according to the first embodiment.
  • FIG. 2 is a block diagram illustrating the physical configuration of the vehicle-mounted ECU 2.
  • the in-vehicle system S includes a plurality of in-vehicle ECUs 2 mounted on the vehicle C and an in-vehicle device 3 connected to the in-vehicle ECU 2.
  • the plurality of vehicle-mounted ECUs 2 are individually connected to the integrated vehicle-mounted ECU 2 (integrated ECU) that controls the entire vehicle C and the integrated vehicle-mounted ECU 2 in a communicable manner and directly connected to the vehicle-mounted device 3. It may include ECU 2 (individual ECU).
  • the integrated in-vehicle ECU 2 may be communicably connected to an external server 100 connected to an external network such as the Internet via an external communication device 1.
  • the integrated in-vehicle ECU 2 and the plurality of individual in-vehicle ECUs 2 are communicably connected by an in-vehicle network 4 forming a star-shaped network topology, and the integrated in-vehicle ECU 2 is , Is located at the center of the star-shaped network topology. Further, adjacent individual vehicle-mounted ECUs 2 may be connected to each other to form a loop-shaped network topology, enabling bidirectional communication and achieving redundancy.
  • a plurality of individual vehicle-mounted ECUs 2 are arranged in each area of the vehicle C, and an actuator 30 such as a hazard lamp, an illumination lamp or a horn, or an vehicle-mounted device 3 such as a sensor is provided with a wire such as a serial cable (direct wire). It is directly connected with a harness.
  • the individual vehicle-mounted ECU 2 acquires (receives) a signal (input signal) output from the sensor, and transmits a request signal generated based on the acquired input signal to the integrated vehicle-mounted ECU 2.
  • the individual in-vehicle ECU 2 controls the drive of the actuator 30 such as the illumination lamp directly connected to the own ECU based on the control signal transmitted from the integrated in-vehicle ECU 2.
  • the individual in-vehicle ECU 2 is an in-vehicle relay device such as a gateway or an ether switch that relays communication between a plurality of in-vehicle devices 3 connected to the individual in-vehicle ECU 2 or communication between the in-vehicle device 3 and another in-vehicle ECU 2. It may be a relay control ECU that functions as. In addition to relaying communication, the individual in-vehicle ECU 2 also functions as a power distribution device that distributes and relays the power output from the power storage device 5 and supplies it to the in-vehicle device 3 connected to its own ECU (PowerLan). Box) may be used.
  • PowerLan PowerLan
  • the integrated in-vehicle ECU 2 generates and outputs a control signal to each in-vehicle device 3 based on data from the in-vehicle device 3 relayed via another in-vehicle ECU 2 such as an individual in-vehicle ECU 2.
  • a central control device such as a vehicle computer.
  • the integrated in-vehicle ECU 2 controls to control the actuator 30 that is the target of the request signal based on information or data such as a request signal output (transmitted) from another in-vehicle ECU 2 such as an individual in-vehicle ECU 2.
  • a signal is generated, and the generated control signal is output (transmitted) to another vehicle-mounted ECU 2.
  • the in-vehicle system is configured by the integrated in-vehicle ECU 2 (integrated ECU) and the individual in-vehicle ECU 2 (individual ECU), but the present invention is not limited thereto.
  • the in-vehicle system may be composed of a plurality of in-vehicle ECUs 2 connected peer-to-peer by a relay device such as a CAN (Controller Area Network) gateway or an ether switch.
  • a relay device such as a CAN (Controller Area Network) gateway or an ether switch.
  • the in-vehicle device 3 includes, for example, various sensors 31 such as LiDAR (Light Detection and Ringing), a light sensor, a CMOS camera, an infrared sensor, a switch such as a door SW (switch) and a lamp SW, a lamp, a door opening / closing device, a motor device, and the like. Includes the actuator 30 of.
  • sensors 31 such as LiDAR (Light Detection and Ringing), a light sensor, a CMOS camera, an infrared sensor, a switch such as a door SW (switch) and a lamp SW, a lamp, a door opening / closing device, a motor device, and the like.
  • sensors 31 such as LiDAR (Light Detection and Ringing), a light sensor, a CMOS camera, an infrared sensor, a switch such as a door SW (switch) and a lamp SW, a lamp, a door opening / closing device,
  • the external server 100 is a computer such as a server connected to an external network such as the Internet or a public line network, and includes a storage unit 21 such as a RAM (RandomAccessMemory), a ROM (ReadOnlyMemory), or a hard disk.
  • the external server 100 may be an OTA (Over The Air) server that provides (transmits) an update program or the like to the vehicle C.
  • the integrated in-vehicle ECU 2 integrated ECU
  • the integrated ECU 2 is communicably connected to the external communication device 1 and communicates with the external server 100 connected via the external network via the external communication device 1, and communicates with the external server 100 and the vehicle. Communication with another vehicle-mounted ECU 2 or vehicle-mounted device 3 mounted on C may be relayed.
  • the out-of-vehicle communication device 1 includes an out-of-vehicle communication unit (not shown) and an input / output I / O (not shown) for communicating with the integrated in-vehicle ECU 2 (integrated ECU).
  • the out-of-vehicle communication unit is a communication device for wireless communication using mobile communication protocols such as 4G, LTE (Long Term Evolution / registered trademark), 5G, and WiFi, and is an antenna 11 connected to the out-of-vehicle communication unit.
  • Data is sent and received to and from the external server 100 via the above. Communication between the external communication device 1 and the external server 100 is performed via, for example, a public line network or an external network N such as the Internet.
  • the input / output I / F 22 is a communication interface for, for example, serial communication with the vehicle-mounted ECU 2.
  • the vehicle-mounted communication device 1 and the vehicle-mounted ECU 2 communicate with each other via a wire harness such as an input / output I / F and a serial cable connected to the input / output I / F.
  • the vehicle-mounted communication device 1 is a separate device from the vehicle-mounted ECU 2, and these devices are communicably connected by input / output I / F or the like, but the present invention is not limited to this.
  • the vehicle-mounted communication device 1 may be built in the vehicle-mounted ECU 2 as a component of the vehicle-mounted ECU 2.
  • the in-vehicle ECU 2 (integrated EUC, individual ECU) includes a control unit 20, a storage unit 21 including a first storage area 211 and a second storage area 212, an input / output I / F 22, an in-vehicle communication unit 23, and a verification unit 24.
  • the control unit 20 is configured by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like, and various control processes and various control processes can be performed by reading and executing a control program and data stored in advance in the storage unit 21. It is designed to perform arithmetic processing and the like.
  • the control unit 20 is not limited to a software processing unit that performs software processing such as a CPU, and includes a hardware processing unit that performs various control processing and arithmetic processing in hardware processing such as FPGA, ASIC, or SOC. It may be.
  • the storage unit 21 is a volatile memory element such as a RAM (RandomAccessMemory), a non-volatile memory element such as a ROM (ReadOnlyMemory), an EEPROM (ElectricallyErasableProgrammableROM), or a flash memory, or a storage device thereof. It is configured by the combination of the above, and the control program and the data to be referred to at the time of processing are stored in advance.
  • the control program includes, for example, a plurality of programs (applications) for controlling various in-vehicle devices 3, or a program (application) for performing target recognition for performing automated operation based on output data from a LiDAR or CMOS camera. Includes programs (applications).
  • the storage unit 21 includes a first storage area 211 and a second storage area 212.
  • the first storage area 211 and the second storage area 212 are different from each other, and are configured by, for example, separate storage devices or memory devices.
  • the storage unit 21 is the same storage device, but the first storage area 211 and the second storage area 212 are set to, for example, partitions so that the physical address areas are different in the internal configuration of the storage device. It may be divided.
  • the first storage area 211 is a storage area used as a main memory when the control unit 20 executes a program, and the memory space (memory area) allocated to the process or thread generated when the program is executed is the first. It becomes any area in one storage area 211.
  • the first storage area 211 a plurality of programs (applications) mainly executed in order to exert the function of the in-vehicle ECU 2 are stored. Assuming that these plurality of programs are currently executed (applied) by the in-vehicle ECU 2 (current version), the program (old version) previously applied to the current version is stored in the second storage area 212. It is stored as a save program (save application). Alternatively, in the second storage area 212, the same program (same version) as the plurality of programs stored in the first storage area 211 may be stored as a backup (save program).
  • the correspondence between the program stored in the first storage area 211 and the save program stored in the second storage area 212 is related, for example, by making the file names of the program and the save program the same. It may be a thing.
  • the correspondence relationship is set by making the address numbers (starting addresses) of the first storage area 211 in which the program is stored and the second storage area 212 in which the save program is stored the same. You may.
  • the program correspondence table stored in the storage unit 21 may be used to associate the individual programs with the save programs corresponding to the respective programs to set the correspondence relationship.
  • the input / output I / F 22 is, for example, a communication interface for serial communication, like the input / output I / F 22 of the external communication device 1.
  • the vehicle-mounted ECU 2 is communicably connected to the external communication device 1 via a wire harness such as an input / output I / F 22 and a serial cable.
  • the in-vehicle communication unit 23 is an input / output interface using, for example, a CAN (Controller Area Network) or Ethernet (Ethernet / registered trademark) communication protocol, and the control unit 20 is connected to the in-vehicle network 4 via the in-vehicle communication unit 23. It communicates with another vehicle-mounted ECU 2 that has been installed.
  • CAN Controller Area Network
  • Ethernet Ethernet / registered trademark
  • the verification unit 24 is, for example, an HSM (Hardware Security Module) or an SHE (Secure Hardware Extension), and is configured as a device or a separate module from the control unit 20 configured by a CPU or the like.
  • the verification unit 24 composed of the HSM or the like plays a part in the secure boot process performed when the in-vehicle ECU 2 (own ECU) is started (booted), and is stored in the storage unit 21. It is a functional module that verifies the appropriateness (completeness) or soundness of software executed when the in-vehicle ECU 2 is started, such as a program.
  • the verification unit 24 verifies the appropriateness (completeness) of software such as a program to be verified by using, for example, a cryptographic algorithm including a processor for cryptographic processing and a cryptographic algorithm such as CMAC (Cipher-based Message Authentication Code). do.
  • the verification unit 24 verifies the appropriateness (integrity) of each of the plurality of programs to be verified in the secure boot process (secure boot sequence) performed when the in-vehicle ECU 2 is started, and outputs the verification result for each program.
  • the verification result includes a positive verification result indicating that the program is legitimate, or a negative verification result indicating that the program is, for example, falsified and fraudulent.
  • FIG. 3 is a flowchart illustrating the processing of the control unit 20 of the in-vehicle ECU 2.
  • the control unit 20 of the vehicle-mounted ECU 2 is, for example, when the vehicle-mounted ECU 2 (own ECU) is started (booted) when the vehicle C transitions from a stopped state (IG switch is off) to a started state (IG switch is on).
  • the following processing is performed based on the secure boot processing (secure boot sequence) performed in.
  • the first step in the secure boot process is verification of each of the plurality of programs by the verification unit 24.
  • the plurality of programs are stored in the first storage area 211.
  • the first storage area 211 is a memory space (memory area) allocated to a process or thread generated when the control unit 20 executes a program.
  • the verification unit 24 is, for example, an HSM (Hardware Security Module), and is configured as a device or a module different from the control unit 20 configured by a CPU or the like.
  • the series of processes by the control unit 20 of the in-vehicle ECU 2 is performed after the verification process for each program by the verification unit 24.
  • the control unit 20 of the in-vehicle ECU 2 acquires the verification result from the verification unit 24 (S101).
  • the verification result output from the verification unit 24 includes whether the verification result for each program stored in the first storage area 211 is a positive result or a negative result. .. If the result is positive, no unauthorized processing such as falsification is performed on the positive program, and the appropriateness (integrity) of the program is guaranteed. If the result is negative, there is a possibility that the negative program has been tampered with or otherwise fraudulently processed, and the appropriateness (integrity) of the program is denied.
  • the control unit 20 of the in-vehicle ECU 2 can grasp whether the verification result of each program stored in the first storage area 211 is positive or negative.
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) a program with a positive verification result based on the acquired verification result (S102). Based on the verification result, the control unit 20 of the in-vehicle ECU 2 identifies (determines) a program with a positive verification result as an executable program, and executes the program. By executing a program, a process or thread corresponding to the program is created.
  • the memory space (memory area) allocated to the processes of these positive programs is any area in the first storage area 211, that is, the main memory for executing the positive program is the first storage. It becomes the area 211.
  • the control unit 20 of the in-vehicle ECU 2 identifies a program with a negative verification result based on the acquired verification result (S103).
  • the verification result output from the verification unit 24 includes a positive verification result or a negative verification result for each of the plurality of programs.
  • the control unit 20 of the vehicle-mounted ECU 2 is stored in the first storage area 211 (storage unit 21) even when the verification result includes only information related to the program having a positive verification result.
  • By comparing (difference) with a plurality of programs it is possible to identify a program with a negative verification result. Negative programs are roughly classified into cases where there are no negative programs, one negative program, or multiple negative programs. In each of these cases, the control unit 20 of the vehicle-mounted ECU 2 identifies all programs that have a negative verification result.
  • the control unit 20 of the in-vehicle ECU 2 copies the save program corresponding to the program of the negative verification result to the first storage area 211 (S104).
  • the save program corresponding to the program (stored in the first storage area 211) is stored in the second storage area 212, and is a program of an old version (previous version) of the program or a backup of the program (of the same version). It may be a backup program).
  • the second storage area 212 is configured as an area different from the first storage area 211, for example, by a separate storage device or memory device.
  • the correspondence between the program stored in the first storage area 211 and the save program stored in the second storage area 212 is, for example, the relationship that the file names of the program and the save program are the same, the program, and the save.
  • the relationship that the address number (starting address) in which the program is stored is the same, or the program and the save program corresponding to the program are associated with each other by the program correspondence table stored in the storage unit 21. May be good.
  • the control unit 20 of the in-vehicle ECU 2 copies each of the corresponding evacuation programs from the second storage area 212 to the first storage area 211 for each of the specified programs with negative verification results.
  • the program stored in the first storage area 211 (the program with a negative verification result) is overwritten, and the negative verification result is obtained.
  • the program may be substantially deleted (erased).
  • the control unit 20 of the in-vehicle ECU 2 executes the save program copied to the first storage area 211 (S105).
  • the control unit 20 of the in-vehicle ECU 2 sequentially or simultaneously executes all the evacuation programs copied from the second storage area 212 to the first storage area 211. Even if the program stored in the first storage area 211 is tampered with, for example, by an attack from outside the vehicle, the evacuation program corresponding to the program is stored in the second storage area 212. Therefore, it has not been tampered with and maintains its appropriateness (completeness). Since the corresponding save program is an old version or the same version (backup) of the program stored in the first storage area 211, it already has an operation record. Therefore, by performing the rollback process using the evacuation program, the evacuation program can be executed instead of the program having a negative verification result, and the function of the in-vehicle ECU 2 can be maintained.
  • the control unit 20 of the vehicle-mounted ECU 2 executes the save program using the first storage area 211 as the main memory.
  • the save program can be executed without changing the access mode (memory control) to the first storage area 211, which is the main memory, in the process generation by the control unit 20 or the like.
  • control unit 20 of the vehicle-mounted ECU 2 performs a series of processes, but the present invention is not limited to this.
  • a part of the processing in the series of processing is carried out by a cloud server such as an external server 100 communicably connected to the in-vehicle ECU 2 or a verification unit 24 configured separately from the control unit 20. May be good.
  • the control unit 20 may perform a series of processes in cooperation with the external server 100 or the verification unit 24.
  • the negative program is not executed.
  • the save program stored in the second storage area can be executed to maintain the function of the in-vehicle ECU.
  • the control unit determines whether or not to execute the save program according to the verification results for each of the plurality of programs. As a result, if a negative verification result is obtained only in some programs in a plurality of programs, it is possible to take a local response to execute the save program only for the negative program. Therefore, even when the plurality of programs are classified into a plurality of functional categories according to the functions, local measures can be taken according to the functional categories.
  • FIG. 4 is a flowchart illustrating the processing of the control unit 20 of the vehicle-mounted ECU 2 according to the second embodiment (the second storage area 212 is the main memory).
  • the control unit 20 of the vehicle-mounted ECU 2 has the vehicle-mounted ECU 2 (own ECU), for example, when the vehicle C transitions from a stopped state (IG switch is off) to a started state (IG switch is on).
  • the following processing is performed based on the secure boot processing (secure boot sequence) performed when booting.
  • the first thing performed in the secure boot process is verification by the verification unit 24 for each of the plurality of programs stored in the first storage area 211.
  • the series of processes by the control unit 20 of the in-vehicle ECU 2 is performed after the verification process for each program by the verification unit 24.
  • the control unit 20 of the in-vehicle ECU 2 acquires the verification result from the verification unit 24 (S201).
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) a program with a positive verification result based on the acquired verification result (S202).
  • the control unit 20 of the in-vehicle ECU 2 identifies a program with a negative verification result based on the acquired verification result (S203).
  • the control unit 20 of the in-vehicle ECU 2 performs the processes S201 to S203 in the same manner as the processes S101 to S103 of the first embodiment.
  • the control unit 20 of the in-vehicle ECU 2 executes a save program corresponding to the program of the negative verification result with the second storage area 212 as the main memory (S204).
  • the control unit 20 of the in-vehicle ECU 2 executes each evacuation program corresponding to each of the specified programs with negative verification results, using the second storage area 212 in which the evacuation program is stored as the main memory.
  • the memory space (memory area) allocated to the process of the save program or the like is any area in the second storage area 212, that is, the main memory for executing the save program program is the second storage area. It becomes 212.
  • FIG. 5 is a flowchart illustrating the processing of the control unit 20 of the vehicle-mounted ECU 2 according to the third embodiment (acquiring a regular program from the external server 100). Similar to the first embodiment, the control unit 20 of the vehicle-mounted ECU 2 has the vehicle-mounted ECU 2 (own ECU), for example, when the vehicle C transitions from a stopped state (IG switch is off) to a started state (IG switch is on). The following processing is performed based on the secure boot processing (secure boot sequence) performed when booting.
  • IG switch stopped state
  • IG switch started state
  • the first thing performed in the secure boot process is verification by the verification unit 24 for each of the plurality of programs stored in the first storage area 211 and each of the plurality of save programs stored in the second storage area 212. ..
  • the control unit 20 of the in-vehicle ECU 2 acquires the verification result from the verification unit 24 (S401).
  • the verification result by the verification unit 24 indicates whether the verification result for each of the program of the first storage area 211 and the evacuation program of the second storage area 212 is a positive result or a negative result.
  • the control unit 20 of the in-vehicle ECU 2 can grasp the verification results for each of the program of the first storage area 211 and the evacuation program of the second storage area 212 based on the acquired verification result.
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) a program with a positive verification result based on the acquired verification result (S402).
  • the control unit 20 of the in-vehicle ECU 2 identifies a program with a negative verification result based on the acquired verification result (S403).
  • the control unit 20 of the in-vehicle ECU 2 executes the processes of S402 and S403 in the same manner as the processes S102 and S103 of the first embodiment.
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) the evacuation program of the positive verification result in the evacuation program corresponding to the program of the negative verification result (S404).
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) a save program corresponding to a program having a negative verification result and a save program having a positive verification result.
  • the control unit 20 copies the save program from the second storage area 212 to the first storage area 211, and uses the first storage area 211 as the main memory to execute the save program, as in the first embodiment. It may be something to do.
  • the control unit 20 executes the save program using the second storage area 212 as the main memory without copying the save program from the second storage area 212 to the first storage area 211, as in the second embodiment. There may be.
  • the control unit 20 of the in-vehicle ECU 2 specifies the evacuation program of the negative verification result in the evacuation program corresponding to the program of the negative verification result (S405).
  • the program with the negative verification result not only the own program but also the evacuation program corresponding to the own program is verified by the verification unit 24 as a negative verification result.
  • any of the programs stored in the first storage area 211 and the save program corresponding to the program and stored in the second storage area 212 are defined as a program set, both are negative verification results.
  • the program set by the save program corresponds to the program set of the negative verification result.
  • FIG. 6 is an explanatory diagram showing the classification of the program set based on the verification result.
  • the classification of the program set is as follows: the program set (completely positive program set) in which both the program and the save program are positive, and the verification result in which only the program in the first storage area 211 is positive.
  • Program set (partially positive program set A), program set with verification results positive only for the second storage area 212 save program (partially positive program set B), and both the program and the save program are negative. It is roughly divided into a program set of verification results (completely negative program set).
  • the save program of the negative verification result specified in this process is the save program included in the completely negative program set.
  • the program stored in the first storage area 211 is executed.
  • the save program stored in the second storage area 212 is executed.
  • the regular program acquired from the external server 100 is executed.
  • the information indicating the classification of the program set may be stored in the storage unit 21 as a program set classification table, for example.
  • the control unit 20 of the in-vehicle ECU 2 specifies the classification of each program set consisting of individual programs and evacuation programs, and refers to the program set classification table (used as a look-up table). As a result, it may be possible to deal with each program set.
  • the control unit 20 of the in-vehicle ECU 2 attempts to acquire a regular program from the external server 100 based on the specified negative verification result save program (S406).
  • the specified negative verification result save program is a save program included in the completely negative program set.
  • the control unit 20 of the in-vehicle ECU 2 transmits a normal program for substituting the program or the save program which is a negative verification result to the external server 100 based on the save program or the program included in the completely negative program set.
  • the regular program may be, for example, the original program of the program which is a negative verification result, that is, the program which has not been tampered with, or the latest version of the program (update program).
  • the control unit 20 of the in-vehicle ECU 2 attempts to communicate with the external server 100 (session establishment) using, for example, the external communication device 1, and outputs (transmits) a request signal requesting transmission of a regular program to the external server 100.
  • the control unit 20 of the in-vehicle ECU 2 determines whether or not the normal program from the external server 100 can be acquired (S407).
  • the control unit 20 of the in-vehicle ECU 2 determines whether or not the normal program can be acquired based on the communication result with the external server 100.
  • the control unit 20 outputs the normal program to the verification unit 24, and if the verification result of the verification unit 24 for the normal program is positive, the normal program is output. It may be determined that it has been acquired.
  • the control unit 20 of the vehicle-mounted ECU 2 executes the acquired regular program (S408).
  • the control unit 20 of the vehicle-mounted ECU 2 stores the acquired regular program in the first storage area 211, and the first storage area 211 is used as the main memory for normalization, as in the first embodiment. It may be the one that executes the program.
  • the control unit 20 of the vehicle-mounted ECU 2 stores the acquired regular program in the second storage area 212, and executes the regular program using the second storage area 212 as the main memory as in the second embodiment. good.
  • control unit 20 of the in-vehicle ECU 2 stores the acquired regular program in the first storage area 211 and the second storage area 212, the negative verification result stored in the first storage area 211 and the second storage area 212.
  • the program and the save program may be overwritten, and the program and the save program having the negative verification result may be substantially deleted (deleted).
  • the control unit 20 of the vehicle-mounted ECU 2 When the regular program could not be acquired (S407: NO), the control unit 20 of the vehicle-mounted ECU 2 outputs the notification information (S4081). If the regular program could not be acquired, or if the acquired regular program had a negative verification result by the verification unit 24, the control unit 20 of the in-vehicle ECU 2 could not execute the program to the external server 100, for example. It may output (transmit) notification information indicating that the function corresponding to (a program with a negative verification result) cannot be exhibited. Alternatively, the control unit 20 of the vehicle-mounted ECU 2 causes the vehicle-mounted device 3 such as the body ECU that controls the hazard lamp and the horn to drive the hazard lamp, the horn, and the like via the in-vehicle communication unit 23. The request signal of the above may be output (transmitted) as the notification information.
  • these hazard lamps and horns can function as a notification unit for notifying the operator of another vehicle C located in the vicinity of the vehicle C.
  • the notification information corresponds to information (rescue signal) indicating a functional failure in which at least a part of the functions cannot be exhibited in the vehicle C, and the functional failure has occurred in the vehicle C equipped with the in-vehicle ECU 2. This can be notified to the administrator of the external server 100 or the operator of another vehicle C located in the vicinity of the vehicle C to call for rescue support.
  • FIG. 7 is a flowchart illustrating the processing of the control unit 20 of the vehicle-mounted ECU 2 according to the fourth embodiment (verification of the operating system).
  • An operating system that generates an operating environment for executing a plurality of programs is stored in the first storage area 211 of the vehicle-mounted ECU 2 of the fourth embodiment, and the second storage area 212 corresponds to the operating system. It differs from the first embodiment in that the save operating system is stored.
  • the operating system stored in the first storage area 211 is, for example, an AUTOSAR-compliant OS (Operating System) or an in-vehicle operating system such as Linux (registered trademark).
  • the saved operating system stored in the second storage area 212 may be an operating system of an older version of the operating system stored in the second storage area 212, or an operating system of the same version backed up, as in the case of the program. ..
  • the control unit 20 of the vehicle-mounted ECU 2 has the vehicle-mounted ECU 2 (own ECU), for example, when the vehicle C transitions from a stopped state (IG switch is off) to a started state (IG switch is on).
  • the following processing is performed based on the secure boot processing (secure boot sequence) performed when booting.
  • the first thing that is performed in the secure boot process is a plurality of programs and operating systems stored in the first storage area 211 by the verification unit 24.
  • the control unit 20 of the in-vehicle ECU 2 acquires verification results of a plurality of programs and operating systems from the verification unit 24 (S501).
  • the verification unit 24 configured by the HSM verifies the operating system in addition to the plurality of programs stored in the first storage area 211 as in the first embodiment. Therefore, the verification result output from the verification unit 24 includes verification results relating to a plurality of programs and operating systems.
  • the control unit 20 of the in-vehicle ECU 2 determines whether or not the verification result of the operating system is positive (S502).
  • the control unit 20 of the in-vehicle ECU 2 extracts the verification result of the operating system included in the verification result output from the verification unit 24, obtains and refers to the verification result of the operating system, and thereby performs the verification. Determine if the result is positive or negative.
  • the control unit 20 of the vehicle-mounted ECU 2 activates the operating system stored in the first storage area 211 (S503). If the verification result of the operating system is a positive result, the operating system stored in the first storage area 211 has not been tampered with or otherwise tampered with, and the appropriateness (integrity) of the operating system is guaranteed. It will be.
  • the control unit 20 of the vehicle-mounted ECU 2 activates the saved operating system stored in the second storage area 212 (S5021). If the verification result of the operating system is a negative result, there is a possibility that the negative operating system has been tampered with, and the appropriateness (integrity) of the operating system is denied. Will be. Therefore, the control unit 20 of the vehicle-mounted ECU 2 does not activate the negative operating system, but activates the saved operating system stored in the second storage area 212.
  • the control unit 20 of the in-vehicle ECU 2 copies the evacuated operating system to the first storage area 211, and activates the evacuated operating system using the first storage area 211 as the main memory. There may be. Alternatively, the control unit 20 of the vehicle-mounted ECU 2 may activate the evacuation operating system using the second storage area 212 as the main memory.
  • the control unit 20 of the in-vehicle ECU 2 executes (starts) a program with a positive verification result based on the acquired verification result (S504).
  • the control unit 20 of the in-vehicle ECU 2 identifies a program with a negative verification result based on the acquired verification result (S505).
  • the control unit 20 of the in-vehicle ECU 2 copies the save program corresponding to the program of the negative verification result to the first storage area 211 (S506).
  • the control unit 20 of the in-vehicle ECU 2 executes the evacuation program copied to the first storage area 211 (S507).
  • the control unit 20 of the in-vehicle ECU 2 performs the processes of S504 to S507 in the same manner as in S102 to S105 of the first embodiment.
  • the operating system is verified in addition to the application, and the operating system or the saved operating system is started based on the verification result. .. Therefore, when the application is executed, a secure operating environment can be constructed in the in-vehicle ECU 2 that starts the operating system and generates the operating environment of the application.

Landscapes

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

Abstract

車載ECUは、車両に搭載される車載ECUであって、複数のプログラムを実行する制御部と、自ECUを起動する際に、前記複数のプログラムそれぞれの検証を行う検証部と、前記複数のプログラムそれぞれが記憶される第1記憶領域と、前記複数のプログラムそれぞれに対応する複数の退避プログラムそれぞれが記憶される第2記憶領域とを備え、前記制御部は、前記検証部による検証が肯定的なプログラムを実行し、前記検証部による検証が否定的なプログラムは実行せず、前記否定的なプログラムに対応する退避プログラムを実行する。

Description

車載ECU、プログラム及び情報処理方法
 本開示は、車載ECU、プログラム及び情報処理方法に関する。
 本出願は、2020年11月12日出願の日本出願第2020-188815号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
 車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するためのECU(Electronic Control Unit)が搭載されている。ECUは、MPU等の演算処理部、RAM等の書換可能な不揮発性の記憶部、及び他のECUと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。当該制御プログラムを実行するにあたり、ECUの起動時に制御プログラムの完全性を検証し、当該検証に成功した場合にECUの起動(ブート)を許可するセキュアブート方法が、知られている(例えば特許文献1参照)。
 特許文献1は、制御プログラムの完全性の検証において、失敗回数が規定値を超えた場合は問題のある制御プログラム(ソフトウェア)を起動しないフェールセーフを行う。
特開2020-144531号公報
 本開示の一態様に係る車載ECUは、車両に搭載される車載ECUであって、複数のプログラムを実行する制御部と、自ECUを起動する際に、前記複数のプログラムそれぞれの検証を行う検証部と、前記複数のプログラムそれぞれが記憶される第1記憶領域と、前記複数のプログラムそれぞれに対応する複数の退避プログラムそれぞれが記憶される第2記憶領域とを備え、前記制御部は、前記検証部による検証が肯定的なプログラムを実行し、前記検証部による検証が否定的なプログラムは実行せず前記否定的なプログラムに対応する退避プログラムを実行する。
実施形態1に係る車載ECUを含む車載システムの構成を例示する模式図である。 車載ECUの物理構成を例示するブロック図である。 車載ECUの制御部の処理を例示するフローチャートである。 実施形態2(第2記憶領域をメインメモリ)に係る車載ECUの制御部の処理を例示するフローチャートである。 実施形態3(外部サーバから正規プログラムを取得)に係る車載ECUの制御部の処理を例示するフローチャートである。 検証結果に基づくプログラムセットの分類を示す説明図である。 実施形態4(オペレーティングシステムの検証)に係る車載ECUの制御部の処理を例示するフローチャートである。
[本開示が解決しようとする課題]
 特許文献1のECUは、セキュアブートの検証結果により起動できなかったプログラムに対する対応を行う点が考慮されていないという問題点がある。
 本開示の目的は、起動できなかったプログラムに対する対応を行うことができる車載ECU等を提供する。
[本開示の効果]
 本開示の一態様によれば、起動できなかったプログラムに対する対応を行う車載ECU等を提供することができる。
[本開示の実施形態の説明]
 最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本開示の一態様に係る車載ECUは、車両に搭載される車載ECUであって、複数のプログラムを実行する制御部と、自ECUを起動する際に、前記複数のプログラムそれぞれの検証を行う検証部と、前記複数のプログラムそれぞれが記憶される第1記憶領域と、前記複数のプログラムそれぞれに対応する複数の退避プログラムそれぞれが記憶される第2記憶領域とを備え、前記制御部は、前記検証部による検証が肯定的なプログラムを実行し、前記検証部による検証が否定的なプログラムは実行せず、前記否定的なプログラムに対応する退避プログラムを実行する。
 本態様にあたっては、車載ECU(Electronic Control Unit)が起動する際、検証部により複数のプログラムに対する検証が行われるものであり、すなわち、車載ECUは、当該検証部を用いたセキュアブートを行う。当該セキュアブートにて、第1記憶領域に記憶されているプログラムに対する検証部による検証が否定的な場合であっても、第1記憶領域とは異なる第2記憶領域には、当該プログラムに対応する退避プログラムが記憶されており、制御部は、当該退避プログラムを実行する。従って、検証部によるセキュアブートによって第1記憶領域に記憶されているいずれかのプログラムの検証結果が否定的な場合であっても、当該セキュアブートの検証結果により起動できなかったプログラムに対する対応(代替処置)として、第2記憶領域に記憶されている退避プログラムを実行し、車載ECUにおける機能保全を図ることができる。制御部は、複数のプログラムそれぞれに対する検証結果に応じて、退避プログラムを実行するか否かを判定するため、複数のプログラムにおける一部のプログラムにおいてのみ、否定的な検証結果となった場合、当該否定的なプログラムに対してのみ退避プログラムを実行する局所的な対応を行うことができる。従って、当該複数のプログラムが機能に応じた複数の機能区分に分類されている場合であっても、当該機能区分に応じた局所的な対応を行うことができる。
(2)本開示の一態様に係る車載ECUは、前記プログラムに対応する前記退避プログラムは、前記プログラムの以前のバージョンである旧バージョンプログラム、又は前記プログラムをバックアップしたバックアッププログラムである。
 本態様にあたっては、プログラムに対する検証部による検証が否定的な場合、当該否定的なプログラムに替えて制御部により実行される退避プログラムは、当該プログラムの以前のバージョンである旧バージョンプログラム、又は当該プログラムをバックアップしたバックアッププログラムであり、動作実績を有するものである。従って、車載ECUは、当該退避プログラムを実行することにより、実行できなかったプログラムと同等の機能を発揮することができる。
(3)本開示の一態様に係る車載ECUは、前記制御部は、前記退避プログラムを実行する場合、前記第2記憶領域に記憶されている前記退避プログラムを前記第1記憶領域にコピーして、前記否定的なプログラムを上書きし、前記第1記憶領域をメインメモリとして、前記退避プログラムを実行する。
 本態様にあたっては、制御部は、第2記憶領域に記憶されている退避プログラムを第1記憶領域にコピーして、否定的なプログラムを上書きし、当該第1記憶領域をメインメモリとして、退避プログラムを実行する。メインメモリは、プログラムがCPU等の制御部で実行される際、生成されるプロセスに割り当てられるメモリ空間(メモリ領域)を含む記憶領域である。従って、制御部によるプロセスの生成等において、メインメモリである第1記憶領域へのアクセス態様(メモリ制御)を変更することなく、退避プログラムを実行することができる。
(4)本開示の一態様に係る車載ECUは、前記制御部は、前記退避プログラムを実行する場合、前記退避プログラムが記憶されている前記第2記憶領域をメインメモリとして、前記退避プログラムを実行する。
 本態様にあたっては、制御部は、退避プログラムを実行する場合、退避プログラムが記憶されている第2記憶領域をメインメモリとして、退避プログラムを実行するため、当該退避プログラムを第1記憶領域にコピーする処理を不要とし、退避プログラムを実行する際における一連の処理に要する時間(所要時間)を、削減することができる。
(5)本開示の一態様に係る車載ECUは、前記検証部は、前記プログラム及び該プログラムに対応する前記退避プログラムの検証を行い、前記プログラム及び該プログラムに対応する前記退避プログラムに対する前記検証部による検証が共に否定的な場合、前記制御部は、前記車両外の外部サーバから、前記否定的なプログラムと同種の正規プログラムを取得し、取得した前記正規プログラムを実行する。
 本態様にあたっては、検証部は、第1記憶領域に記憶されているプログラム及び、第2記憶領域に記憶されており、当該プログラムに対応する退避プログラムについても、検証するため、セキュアブートにおける確実性を更に向上させることができる。プログラム及び当該プログラムに対応する退避プログラムが共に否定的な検証結果であっても、制御部は車両外の外部サーバから取得した正規プログラムを実行するため、車載ECUにおける機能保全を図ることができる。
(6)本開示の一態様に係る車載ECUは、前記制御部は、取得した前記正規プログラムを前記第1記憶領域及び前記第2記憶領域にコピーして、前記否定的なプログラム及び前記退避プログラムを上書きし、前記第1記憶領域をメインメモリとして前記正規プログラムを実行する。
 本態様にあたっては、プログラム及び当該プログラムに対応する退避プログラムが共に否定的な検証結果の場合、制御部は車両外の外部サーバから取得した正規プログラムを、第1記憶領域及び第2記憶領域にコピーして、否定的なプログラム及び退避プログラムを上書きする。当該プログラム及び退避プログラムに対する上書きを行うことにより、否定的なプログラム及び退避プログラムを実質的に消去(削除)し、車載ECUにて記憶されるプログラム及び退避プログラムの双方を正常化することができる。
(7)本開示の一態様に係る車載ECUは、前記制御部は、前記外部サーバから前記正規プログラムを取得できない場合、前記否定的なプログラムに応じた機能を発揮できないことを示す報知情報を出力する。
 本態様にあたっては、プログラム及び当該プログラムに対応する退避プログラムが共に否定的な検証結果の場合であって、更に外部サーバから正規プログラムを取得できない場合、制御部は、実行できなかったプログラム(否定的検証結果のプログラム)に応じた機能を発揮できないことを示す報知情報を、例えば外部サーバ又は、ハザードランプ等を用いた報知部に出力する。当該報知情報は、車両において少なくとも一部の機能を発揮することができない機能失陥を示す情報(レスキュー信号)に相当するものであってもよい。例えば、ハザードランプやクラクションを制御するボディECU等の車載装置は、当該レスキュー信号を取得することにより、ハザードランプの点滅、クラクションの鳴らす等の駆動を行うものであってもよい。すなわち、これらハザードランプやクラクションを、当該車両の周辺に位置する他の車両の操作者に対し報知する報知部として機能させるものであってもよい。これにより、当該車載ECUが搭載された車両において機能失陥が発生したことを、外部サーバの管理者、又は、当該車両の周辺に位置する他の車両の操作者に対し報知することができる。
(8)本開示の一態様に係る車載ECUは、前記第1記憶領域には、前記複数のプログラムを実行するための動作環境を生成するオペレーティングシステムが記憶されており、前記第2記憶領域には、前記オペレーティングシステムに対応する退避オペレーティングシステムが記憶されており、前記検証部は、前記複数のプログラムそれぞれの検証に併せて、前記オペレーティングシステムの検証を行い、前記制御部は、前記検証部による前記オペレーティングシステムの検証が肯定的な場合、前記オペレーティングシステムを起動し、前記検証部による前記オペレーティングシステムの検証が否定的な場合、前記退避オペレーティングシステムを起動する
 本態様にあたっては、検証部は、前記複数のプログラムそれぞれの検証に併せて、前記オペレーティングシステムの検証を行い、制御部は、前記検証部による前記オペレーティングシステム(第1記憶領域に記憶)の検証が肯定的な場合、前記オペレーティングシステムを起動し、前記検証部による前記オペレーティングシステム(第2記憶領域に記憶)の検証が否定的な場合、前記退避オペレーティングシステムを起動する。当該オペレーティングシステムは、例えば、AUTOSARに準拠したOS(Operating System)、又はLinux(登録商標)等の車載用オペレーティングシステムである。第2記憶領域に記憶される退避オペレーティングシステムは、プログラムと同様に、第2記憶領域に記憶されるオペレーティングシステムの旧バージョンのオペレーティングシステム、又はバックアップした同バージョンのオペレーティングシステムであってもよい。従って、車載ECUの起動時におけるセキュアブート処理(セキュアブートシーケンス)において、オペレーティングシステムに対する検証結果に基づき、当該オペレーティングシステム又は退避オペレーティングシステムを起動し、セキュアな動作環境を構築することができる。
(9)本開示の一態様に係るプログラムは、車両に搭載され、複数のプログラムを実行するコンピュータに、自コンピュータを起動する際に、第1記憶領域に記憶されている前記複数のプログラムそれぞれの検証を行い、前記検証の結果が肯定的なプログラムを実行し、前記検証の結果が否定的なプログラムは実行せず、前記第1記憶領域とは異なる第2記憶領域に記憶されており、前記否定的なプログラムに対応する退避プログラムを実行する処理を実行させる。
 本態様にあたっては、コンピュータを、起動できなかったプログラムの対応を行うことができる車載ECUとして機能させることができる。
(10)本開示の一態様に係る情報処理方法は、車両に搭載され、複数のプログラムを実行するコンピュータに、自コンピュータを起動する際に、第1記憶領域に記憶されている前記複数のプログラムそれぞれの検証を行い、前記検証の結果が肯定的なプログラムを実行し、前記検証の結果が否定的なプログラムは実行せず、前記第1記憶領域とは異なる第2記憶領域に記憶されており、前記否定的なプログラムに対応する退避プログラムを実行する処理を実行させる。
 本態様にあたっては、コンピュータを、起動できなかったプログラムの対応を行うことができる車載ECUとして機能させる情報処理方法を提供することができる。
[本開示の実施形態の詳細]
 本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載ECU2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
(実施形態1)
 以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載ECU2を含む車載システムの構成を例示する模式図である。図2は、車載ECU2の物理構成を例示するブロック図である。車載システムSは、車両Cに搭載される複数の車載ECU2及び、当該車載ECU2に接続される車載装置3を含む。
 複数の車載ECU2は、車両Cの全体を制御する統合的な車載ECU2(統合ECU)、及び当該統合的な車載ECU2と通信可能に接続され、車載装置3と直接、接続される個別的な車載ECU2(個別ECU)を含むものであってもよい。統合的な車載ECU2は、車外通信装置1を介して、インターネット等の外部ネットワークに接続される外部サーバ100と、通信可能に接続されるものであってもよい。本実施形態において図示においては、統合的な車載ECU2と、複数の個別的な車載ECU2とは、スター状のネットワークトポロジーを形成する車載ネットワーク4によって通信可能に接続され、当該統合的な車載ECU2は、スター状のネットワークトポロジーの中心(センター)に位置して設けられている。更に、隣接する個々の個別的な車載ECU2同士が接続され、ループ状のネットワークトポロジーを構成し、双方向通信を可能として冗長化を図るものであってもよい。
 複数の個別的な車載ECU2は、車両Cにおける各エリアに配置され、ハザードランプ、イルミネーションランプ又はクラクション又は等のアクチュエータ30、及びセンサ等の車載装置3が、シリアルケーブル(じか線)等のワイヤーハーネスにて、直接接続されている。個別的な車載ECU2は、例えば、センサから出力された信号(入力信号)を取得(受信)し、取得した入力信号に基づき生成した要求信号を統合的な車載ECU2に送信する。個別的な車載ECU2は、統合的な車載ECU2から送信された制御信号に基づき、自ECUに直接、接続されたイルミネーションランプ等のアクチュエータ30の駆動制御を行う。個別的な車載ECU2は、当該個別的な車載ECU2に接続される複数の車載装置3間の通信、又は車載装置3と他の車載ECU2との通信を中継するゲートウェイ又はイーサスイッチ等の車載中継装置として機能する中継制御ECUであってもよい。個別的な車載ECU2は、通信に関する中継に加え、蓄電装置5から出力された電力を分配及び中継し、自ECUに接続される車載装置3に供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。
 統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2を介して中継された車載装置3からのデータに基づき、個々の車載装置3への制御信号を生成及び出力するものであり、例えばヴィークルコンピュータ等の中央制御装置である。統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2から出力(送信)される要求信号等の情報又はデータに基づき、当該要求信号の対象となるアクチュエータ30を制御するための制御信号を生成し、生成した制御信号を他の車載ECU2に出力(送信)する。本実施形態においては、統合的な車載ECU2(統合ECU)及び個別的な車載ECU2(個別ECU)により車載システムは構成されるとしたがこれに限定されない。車載システムは、例えばCAN(Controller Area Network)ゲートウェイ又はイーサスイッチ等の中継装置によってピアツーピアに接続された複数の車載ECU2によって構成されるものであってもよい。
 車載装置3は、例えばLiDAR(Light Detection and Ranging)、ライトセンサ、CMOSカメラ、赤外線センサ等の各種センサ31及び、ドアSW(スイッチ)、ランプSW等のスイッチ、ランプ、ドア開閉装置、モータ装置等のアクチュエータ30を含む。
 外部サーバ100は、例えばインターネット又は公衆回線網等の車外ネットワークに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部21を備える。外部サーバ100は、車両Cに対し更新プログラム等を提供(送信)するOTA(Over The Air)サーバであってもよい。統合的な車載ECU2(統合ECU)は、車外通信装置1と通信可能に接続され、車外通信装置1を介して車外ネットワークを介して接続された外部サーバ100と通信し、外部サーバ100と、車両Cに搭載される他の車載ECU2又は車載装置3との間の通信を中継するものであってもよい。
 車外通信装置1は、車外通信部(図示せず)及び、統合的な車載ECU2(統合ECU)と通信するための入出力I/F(図示せず)を含む。車外通信部は、4G、LTE(Long Term Evolution/登録商標)、5G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介して外部サーバ100とデータの送受信を行う。車外通信装置1と外部サーバ100との通信は、例えば公衆回線網又はインターネット等の外部ネットワークNを介して行われる。入出力I/F22は、車載ECU2と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と車載ECU2とは、入出力I/F及び入出力I/Fに接続されたシリアルケーブル等のワイヤーハーネスを介して相互に通信する。本実施形態では、車外通信装置1は、車載ECU2と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、車載ECU2の一構成部位として、車載ECU2に内蔵されるものであってもよい。
 車載ECU2(統合EUC、個別ECU)は、制御部20、第1記憶領域211と第2記憶領域212とを含む記憶部21、入出力I/F22、車内通信部23及び検証部24を含む。制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部21に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部20は、CPU等のソフトウェア処理を行うソフトウェア処理部のみに限定されず、FPGA、ASIC又はSOC等のハードウェア処理にて種々の制御処理及び演算処理等を行うハードウェア処理部を含むものであってもよい。
 記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子、又は、これら記憶デバイスの組み合わせにより構成してあり、制御プログラム及び処理時に参照するデータが予め記憶してある。当該制御プログラムは、例えば、各種の車載装置3を制御するためのプログラム(アプリケーション)、又はLiDAR又はCMOSカメラからの出力データ基づき自動化運転を行うための物標認識を行うプログラム(アプリケーション)等の複数のプログラム(アプリケーション)を含む。
 記憶部21は、第1記憶領域211と、第2記憶領域212とを含む。第1記憶領域211と、第2記憶領域212とは異なる領域として、例えば別個の記憶装置又はメモリデバイスにより、構成されている。又は、記憶部21としては同一の記憶装置であって、当該記憶装置における内部構成において異なる物理アドレス領域となるように、例えばパーテーションを設定して第1記憶領域211と第2記憶領域212とに分割するものであってもよい。第1記憶領域211は、制御部20がプログラムを実行する際にメインメモリとして用いる記憶領域であり、当該プログラムを実行するにあたり生成されるプロセス又はスレッドに割り当てられるメモリ空間(メモリ領域)は、第1記憶領域211におけるいずれかの領域となる。
 第1記憶領域211には、車載ECU2の機能を発揮するために主として実行される複数のプログラム(アプリケーション)が、記憶されている。これら複数のプログラムを現状において車載ECU2が実行(適用)しているプログラム(現バージョン)とした場合、第2記憶領域212には、現バージョンの以前に適用されていたプログラム(旧バージョン)が、退避プログラム(退避アプリケーション)として記憶されている。又は、第2記憶領域212には、第1記憶領域211に記憶されている複数のプログラムと同じプログラム(同じバージョン)が、バックアップ(退避プログラム)として記憶されているものであってもよい。
 第1記憶領域211に記憶されているプログラムと、第2記憶領域212に記憶されている退避プログラムとの対応関係は、例えばプログラム及び退避プログラムのファイル名を同じにすることにより、関係付けられたものであってもよい。又は、プログラムが記憶されている第1記憶領域211と、退避プログラムが記憶されている第2記憶領域212とのアドレス番号(先頭番地)を同じにすることにより、対応関係を設定するものであってもよい。又は、記憶部21に記憶されているプログラム対応テーブルにより、個々のプログラムと、当該プログラムそれぞれに対応する退避プログラムそれぞれとを関連付けて、対応関係を設定するものであってもよい。
 入出力I/F22は、車外通信装置1の入出力I/F22と同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F22及びシリアルケーブル等のワイヤーハーネスを介して、車載ECU2は、車外通信装置1と通信可能に接続される。
 車内通信部23は、例えばCAN(Controller Area Network)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイスであり、制御部20は、車内通信部23を介して車載ネットワーク4に接続されている他の車載ECU2と相互に通信する。
 検証部24は、例えばHSM(Hardware Security Module)又はSHE(Secure Hardware Extension)であり、CPU等で構成される制御部20とは別デバイス又は別モジュールとして構成されている。HSM等にて構成される検証部24は、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理の一端を担うものであり、記憶部21に記憶されている複数のプログラム等、車載ECU2の起動において実行されるソフトウェアの適正性(完全性)又は健全性を検証する機能モジュールである。検証部24は、例えば、暗号処理用のプロセッサを含み、例えばCMAC(Cipher-based Message Authentication Code)等の暗号アルゴリズムを用いて、検証対象となるプログラム等のソフトウェアの適正性(完全性)を検証する。検証部24は、車載ECU2の起動時に行われるセキュアブート処理(セキュアブートシーケンス)において、検証対象となる複数のプログラムそれぞれの適正性(完全性)を検証し、プログラムそれぞれに対する検証結果を出力する。当該検証結果は、プログラムが正当である旨を示す肯定的検証結果、又はプログラムが例えば改竄等され不正である旨を示す否定的検証結果を含む。
 図3は、車載ECU2の制御部20の処理を例示するフローチャートである。車載ECU2の制御部20は、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。
 セキュアブート処理において最初の段階に行われるのは、検証部24による複数のプログラムそれぞれに対する検証である。当該複数のプログラムは、第1記憶領域211に記憶されている。第1記憶領域211は、制御部20がプログラムを実行する際に生成されるプロセス又はスレッドに割り当てられるメモリ空間(メモリ領域)である。当該検証部24は、例えばHSM(Hardware Security Module)であり、CPU等で構成される制御部20とは別デバイス又は別モジュールとして構成されている。車載ECU2の制御部20による一連の処理は、検証部24によるプログラムそれぞれに対する検証の処理後に行われる。
 車載ECU2の制御部20は、検証部24から検証結果を取得する(S101)。検証部24から出力される検証結果には、第1記憶領域211に記憶されているプログラムそれぞれに対する検証結果が肯定的な結果であるか、又は否定的な結果であるかが、含まれている。肯定的な結果である場合、肯定的なプログラムに対する改竄等の不正処理は行われおらず、当該プログラムの適正性(完全性)が保証されるものとなる。否定的な結果である場合、否定的なプログラムに対し改竄等の不正処理が行われた蓋然性があり、当該プログラムの適正性(完全性)が否定されるものとなる。車載ECU2の制御部20は、検証結果を参照することにより、第1記憶領域211に記憶されている各プログラムの検証結果が肯定的であるか否定的であるかを把握することができる。
 車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のプログラムを実行(起動)する(S102)。車載ECU2の制御部20は、検証結果に基づき、肯定的な検証結果のプログラムを実行可能なプログラムとして特定(判定)し、当該プログラムを実行する。プログラムを実行することにより、当該プログラムに対応したプロセス又はスレッドが生成される。これら肯定的なプログラムのプロセス等に割り当てられるメモリ空間(メモリ領域)は、第1記憶領域211におけるいずれかの領域であり、すなわち当該肯定的なプログラムを実行するにあたってのメインメモリは、第1記憶領域211となる。
 車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のプログラムを特定する(S103)。検証部24から出力される検証結果には、複数のプログラムそれぞれに対する肯定的検証結果又は否定的検証結果が含まれている。又は、当該検証結果には、肯定的な検証結果のプログラムに関する情報のみが含まれる場合であっても、車載ECU2の制御部20は、第1記憶領域211(記憶部21)に記憶されている複数のプログラムとの対比(差分)を行うことにより、否定的な検証結果のプログラムを特定することができる。否定的なプログラムの特定においては、否定的なプログラムが皆無な場合、否定的なプログラムが一つである場合、又は否定的なプログラムが複数である場合に大別される。これら各場合において、車載ECU2の制御部20は、否定的な検証結果となった全てのプログラムを特定する。
 車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムを、第1記憶領域211にコピーする(S104)。当該プログラム(第1記憶領域211に記憶)に対応する退避プログラムは、第2記憶領域212に記憶されており、当該プログラムの旧バージョン(前バージョン)のプログラム、又は当該プログラムのバックアップ(同バージョンのバックアッププログラム)であってもよい。第2記憶領域212は、第1記憶領域211とは異なる領域として、例えば別個の記憶装置又はメモリデバイスにより、構成されている。第1記憶領域211に記憶されているプログラムと、第2記憶領域212に記憶されている退避プログラムとの対応関係は、例えば、プログラム及び退避プログラムのファイル名が共に同じである関係、プログラム及び退避プログラムが記憶されているアドレス番号(先頭番地)が同じである関係、又は、記憶部21に記憶されているプログラム対応テーブルによりプログラム及び当該プログラムに対応する退避プログラムが関連付けられているものであってもよい。
 車載ECU2の制御部20は、特定した全ての否定的な検証結果のプログラムそれぞれに対し、対応する退避プログラムそれぞれを、第2記憶領域212から、第1記憶領域211にコピーする。退避プログラムを第2記憶領域212から第1記憶領域211にコピーするにあたり、第1記憶領域211に記憶されているプログラム(否定的な検証結果のプログラム)を上書きし、当該否定的な検証結果のプログラムを実質的に削除(消去)するものであってもよい。
 車載ECU2の制御部20は、第1記憶領域211にコピーした退避プログラムを実行する(S105)。車載ECU2の制御部20は、第2記憶領域212から第1記憶領域211にコピーした全ての退避プログラムを、順次又は一斉に実行する。第1記憶領域211に記憶されているプログラムが、例えば車外からの攻撃により改竄等の不正処理がされた場合であっても、当該プログラムに対応する退避プログラムは第2記憶領域212に記憶されているため、改竄等がされておらず適正性(完全性)を維持している。当該対応する退避プログラムは、第1記憶領域211に記憶されているプログラムの旧バージョン又は同バージョン(バックアップ)のプログラムであるため既に動作実績を有する。従って、退避プログラムを用いたロールバック処理を行うことにより、否定的な検証結果のプログラムに替えて、当該退避プログラムを実行し、車載ECU2の機能保全を行うことができる。
 第1記憶領域211にコピーされた退避プログラムを実行するにあたり、車載ECU2の制御部20は、当該第1記憶領域211をメインメモリとして退避プログラムを実行する。これにより、制御部20によるプロセスの生成等において、メインメモリである第1記憶領域211へのアクセス態様(メモリ制御)を変更することなく、退避プログラムを実行することができる。
 本実施形態及び後述する他の実施形態において、車載ECU2の制御部20が一連の処理を行うとして説明したが、これに限定されない。当該一連の処理における一部の処理は、車載ECU2と通信可能に接続される外部サーバ100等のクラウドサーバ、又は、制御部20とは別体で構成される検証部24が担うものであってもよい。制御部20は、これら外部サーバ100又は検証部24と協働して、一連の処理を行うものであってもよい。
 本実施形態によれば、検証部によるセキュアブートによって第1記憶領域に記憶されているいずれかのプログラムの検証結果が否定的な場合、当該否定的なプログラムは、実行されない。当該セキュアブートの検証結果により起動できなかったプログラムに対する対応(代替処置)として、第2記憶領域に記憶されている退避プログラムを実行し、車載ECUにおける機能保全を図ることができる。
 制御部は、複数のプログラムそれぞれに対する検証結果に応じて、退避プログラムを実行するか否かを判定する。これにより、複数のプログラムにおける一部のプログラムにおいてのみ、否定的な検証結果となった場合、当該否定的なプログラムに対してのみ退避プログラムを実行する局所的な対応を行うことができる。従って、当該複数のプログラムが機能に応じた複数の機能区分に分類されている場合であっても、当該機能区分に応じた局所的な対応を行うことができる。
(実施形態2)
 図4は、実施形態2(第2記憶領域212をメインメモリ)に係る車載ECU2の制御部20の処理を例示するフローチャートである。車載ECU2の制御部20は、実施形態1と同様に、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。実施形態1と同様に、セキュアブート処理において最初に行われるのは、検証部24による、第1記憶領域211に記憶されている複数のプログラムそれぞれに対する検証である。車載ECU2の制御部20による一連の処理は、検証部24によるプログラムそれぞれに対する検証の処理後に行われる。
 車載ECU2の制御部20は、検証部24から検証結果を取得する(S201)。車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のプログラムを実行(起動)する(S202)。車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のプログラムを特定する(S203)。車載ECU2の制御部20は、実施形態1の処理S101からS103と同様に、S201からS203の処理を行う。
 車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムを、第2記憶領域212をメインメモリとして実行する(S204)。車載ECU2の制御部20は、特定した否定的な検証結果のプログラムそれぞれに対応する退避プログラムそれぞれを、当該退避プログラムが記憶されている第2記憶領域212をメインメモリとして実行する。これにより、退避プログラムのプロセス等に割り当てられるメモリ空間(メモリ領域)は、第2記憶領域212におけるいずれかの領域であり、すなわち当該退避プログラムプログラムを実行するにあたってのメインメモリは、第2記憶領域212となる。
 退避プログラムを実行するにあたってのメインメモリを第2記憶領域212とすることにより、当該退避プログラムを第2記憶領域212から第1記憶領域211にコピーすることを不要とし、否定的な検証結果のプログラムに替えて、退避プログラムを実行する際における一連の処理に要する時間(所要時間)を、削減することができる。
(実施形態3)
 図5は、実施形態3(外部サーバ100から正規プログラムを取得)に係る車載ECU2の制御部20の処理を例示するフローチャートである。車載ECU2の制御部20は、実施形態1と同様に、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。
 セキュアブート処理において最初に行われるのは、検証部24による第1記憶領域211に記憶されている複数のプログラムそれぞれ、及び第2記憶領域212に記憶されている複数の退避プログラムそれぞれに対する検証である。
 車載ECU2の制御部20は、検証部24から検証結果を取得する(S401)。検証部24による検証結果には、第1記憶領域211のプログラム、及び第2記憶領域212の退避プログラムのそれぞれに対する検証結果が肯定的な結果であるか、又は否定的な結果であるかが、含まれている。車載ECU2の制御部20は、取得した検証結果に基づき、第1記憶領域211のプログラム、及び第2記憶領域212の退避プログラムのそれぞれに対する検証結果を把握することができる。
 車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のプログラムを実行(起動)する(S402)。車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のプログラムを特定する(S403)。車載ECU2の制御部20は、実施形態1の処理S102及びS103と同様にS402及びS403の処理を実行する。
 車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムにおいて、肯定的な検証結果の退避プログラムを実行(起動)する(S404)。車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムであって、かつ肯定的な検証結果の退避プログラムを実行(起動)する。当該退避プログラムを実行するにあたり、制御部20は、実施形態1と同様に、退避プログラムを第2記憶領域212から第1記憶領域211にコピーし、第1記憶領域211をメインメモリとして退避プログラムを実行するものであってもよい。又は、制御部20は、実施形態2と同様に、退避プログラムを第2記憶領域212から第1記憶領域211にコピーすることなく、第2記憶領域212をメインメモリとして退避プログラムを実行するものであってもよい。
 車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムにおいて、否定的な検証結果の退避プログラムを特定する(S405)。当該否定的な検証結果のプログラムにおいては、自プログラムのみならず、自プログラムに対応する退避プログラムについても、否定的な検証結果であるとして検証部24により検証されたものである。第1記憶領域211に記憶されるいずれかのプログラムと、当該プログラムに対応し第2記憶領域212に記憶される退避プログラムとを、プログラムセットとして定義した場合、共に否定的な検証結果であるプログラム及び退避プログラムによるプログラムセットは、否定的な検証結果のプログラムセットに相当する。
 図6は、検証結果に基づくプログラムセットの分類を示す説明図である。本実施形態の図示のとおり、プログラムセットの分類は、プログラム及び退避プログラムが共に肯定的な検証結果のプログラムセット(完全肯定的プログラムセット)、第1記憶領域211のプログラムのみが肯定的な検証結果のプログラムセット(一部肯定的プログラムセットA)、第2記憶領域212退避プログラムのみが肯定的な検証結果のプログラムセット(一部肯定的プログラムセットB)、及びプログラム及び退避プログラムが共に否定的な検証結果のプログラムセット(完全否定的プログラムセット)に大別される。本処理において特定される否定的な検証結果の退避プログラムは、完全否定的プログラムセットに含まれる退避プログラムとなる。
 完全肯定的プログラムセット及び一部肯定的プログラムセットAにおいては、第1記憶領域211に記憶されているプログラムが、実行される。一部肯定的プログラムセットBにおいては、第2記憶領域212に記憶されている退避プログラムが、実行される。完全否定的プログラムセットにおいては、後述のとおり、外部サーバ100から取得した正規プログラムを実行するものとなる。
 プログラムセットの分類を示す情報は、例えば、プログラムセット分類テーブルとして記憶部21に記憶されているものであってもよい。車載ECU2の制御部20は、検証部24からの検証結果に基づき、個々のプログラム及び退避プログラムからなるプログラムセットそれぞれの分類を特定し、当該プログラムセット分類テーブルを参照(ルックアップテーブルとして使用)することにより、各プログラムセットにおける対応を行うものであってもよい。
 車載ECU2の制御部20は、特定した否定的な検証結果の退避プログラムに基づき、外部サーバ100からの正規プログラムの取得を試みる(S406)。特定した否定的な検証結果の退避プログラムは、完全否定的プログラムセットに含まれる退避プログラムである。車載ECU2の制御部20は、当該完全否定的プログラムセットに含まれる退避プログラム又はプログラムに基づき、外部サーバ100に対し、否定的な検証結果であるプログラム又は退避プログラムを代替するための正規プログラムの送信を要求する。当該正規プログラムは、例えば、否定的な検証結果であるプログラムの本来のプログラム、すなわち改竄等がされていないプログラム、又は、最新バージョンのプログラム(更新プログラム)であってもよい。車載ECU2の制御部20は、例えば車外通信装置1を用いて外部サーバ100との通信(セッション確立)を試み、正規プログラムの送信を要求する要求信号を外部サーバ100に出力(送信)する。
 車載ECU2の制御部20は、外部サーバ100からの正規プログラムを取得できたか否かを判定する(S407)。車載ECU2の制御部20は、外部サーバ100との通信結果に基づき、正規プログラムを取得できたか否かを判定する。車載ECU2の制御部20は、外部サーバ100から正規プログラムを取得した際、当該正規プログラムを検証部24に出力し、当該正規プログラムに対する検証部24の検証結果が肯定的である場合、正規プログラムを取得できたと判定するものであってもよい。
 正規プログラムを取得できた場合(S407:YES)、車載ECU2の制御部20は、取得した正規プログラムを実行する(S408)。正規プログラムを正常に取得できた場合、車載ECU2の制御部20は、実施形態1と同様に、取得した正規プログラムを第1記憶領域211に記憶し、当該第1記憶領域211をメインメモリとして正規プログラムを実行するものであってもよい。又は、車載ECU2の制御部20は、取得した正規プログラムを第2記憶領域212に記憶し、実施形態2と同様に当該第2記憶領域212をメインメモリとして正規プログラムを実行するものであってもよい。車載ECU2の制御部20は、取得した正規プログラムを第1記憶領域211及び第2記憶領域212に記憶するにあたり、第1記憶領域211及び第2記憶領域212に記憶されている否定的な検証結果のプログラム及び退避プログラムを上書きし、当該否定的な検証結果のプログラム及び退避プログラムを実質的に消去(削除)するものであってもよい。
 正規プログラムを取得できなかった場合(S407:NO)、車載ECU2の制御部20は、報知情報を出力する(S4081)。正規プログラムを取得できなかった場合、又は取得した正規プログラムが検証部24により否定的な検証結果となった場合、車載ECU2の制御部20は、例えば、外部サーバ100に対し、実行できなかったプログラム(否定的検証結果のプログラム)に応じた機能を発揮できないことを示す報知情報を出力(送信)するものであってもよい。又は、車載ECU2の制御部20は、車内通信部23を介して、ハザードランプやクラクションを制御するボディECU等の車載装置3に対し、ハザードランプの点滅、クラクションの鳴らす等の駆動を行わせるための要求信号を、当該報知情報として出力(送信)するものであってもよい。
 これにより、これらハザードランプやクラクションを、当該車両Cの周辺に位置する他の車両Cの操作者に対し報知する報知部として機能させることができる。当該報知情報は、車両Cにおいて少なくとも一部の機能を発揮することができない機能失陥を示す情報(レスキュー信号)に相当するものとなり、車載ECU2が搭載された車両Cにおいて機能失陥が発生したことを、外部サーバ100の管理者、又は、当該車両Cの周辺に位置する他の車両Cの操作者に対し報知し、救助支援を喚起することができる。
(実施形態4)
 図7は、実施形態4(オペレーティングシステムの検証)に係る車載ECU2の制御部20の処理を例示するフローチャートである。実施形態4の車載ECU2の第1記憶領域211には、複数のプログラムを実行するための動作環境を生成するオペレーティングシステムが記憶されており、第2記憶領域212には、前記オペレーティングシステムに対応する退避オペレーティングシステムが記憶されている点で、実施形態1とは異なる。
 第1記憶領域211に記憶されるオペレーティングシステムは、例えば、AUTOSARに準拠したOS(Operating System)、又はLinux(登録商標)等の車載用オペレーティングシステムである。第2記憶領域212に記憶される退避オペレーティングシステムは、プログラムと同様に、第2記憶領域212に記憶されるオペレーティングシステムの旧バージョンのオペレーティングシステム、又はバックアップした同バージョンのオペレーティングシステムであってもよい。
 車載ECU2の制御部20は、実施形態1と同様に、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。セキュアブート処理において最初に行われるのは、検証部24による第1記憶領域211に記憶されている複数のプログラム及びオペレーティングシステムである。
 車載ECU2の制御部20は、検証部24から、複数のプログラム及びオペレーティングシステムの検証結果を取得する(S501)。例えばHSMにて構成される検証部24は、実施形態1と同様に第1記憶領域211に記憶されている複数のプログラムに加え、オペレーティングシステムについても検証を行う。従って、検証部24から出力される検証結果には、複数のプログラム及びオペレーティングシステムに関する検証結果が含まれている。
 車載ECU2の制御部20は、オペレーティングシステムの検証結果が肯定的であるか否かを判定する(S502)。車載ECU2の制御部20は、検証部24から出力される検証結果に含まれている、オペレーティングシステムの検証結果を抽出することにより、当該オペレーティングシステムの検証結果を取得及び参照することにより、当該検証結果が肯定的であるか否定的であるかを判定する。
 オペレーティングシステムの検証結果が肯定的な場合(S502:YES)、車載ECU2の制御部20は、第1記憶領域211に記憶されるオペレーティングシステムを起動する(S503)。オペレーティングシステムの検証結果が肯定的な結果である場合、第1記憶領域211に記憶されるオペレーティングシステムに対する改竄等の不正処理は行われおらず、当該オペレーティングシステムの適正性(完全性)が保証されるものとなる。
 オペレーティングシステムの検証結果が否定的な場合(S502:NO)、車載ECU2の制御部20は、第2記憶領域212に記憶される退避オペレーティングシステムを起動する(S5021)。オペレーティングシステムの検証結果が否定的な結果である場合、否定的なオペレーティングシステムに対し改竄等の不正処理が行われた蓋然性があり、当該プオペレーティングシステムの適正性(完全性)が否定されるものとなる。そこで、車載ECU2の制御部20は、当該否定的なオペレーティングシステムを起動せず、第2記憶領域212に記憶される退避オペレーティングシステムを起動する。退避オペレーティングシステムを起動するにあたり、車載ECU2の制御部20は、当該退避オペレーティングシステムを、第1記憶領域211にコピーし、当該第1記憶領域211をメインメモリとして、退避オペレーティングシステムを起動するものであってもよい。又は、車載ECU2の制御部20は、第2記憶領域212をメインメモリとして、退避オペレーティングシステムを起動するものであってもよい。
 車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のプログラムを実行(起動)する(S504)。車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のプログラムを特定する(S505)。車載ECU2の制御部20は、否定的な検証結果のプログラムに対応する退避プログラムを、第1記憶領域211にコピーする(S506)。車載ECU2の制御部20は、第1記憶領域211にコピーした退避プログラムを実行する(S507)。車載ECU2の制御部20は、実施形態1のS102からS105と同様に、S504からS507の処理を行う。
 本実施形態によれば、車載ECU2の起動時におけるセキュアブート処理(セキュアブートシーケンス)において、アプリケーションに加え、オペレーティングシステムに対する検証も行い、当該検証結果に基づき、当該オペレーティングシステム又は退避オペレーティングシステムを起動する。従って、アプリケーションを実行するにあたり、オペレーティングシステムを起動して当該アプリケーションの動作環境を生成する車載ECU2において、セキュアな動作環境を構築することができる。
 今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 C 車両
 S 車載システム
 100 外部サーバ
 1 車外通信装置
 11 アンテナ
 2 車載ECU
 20 制御部
 21 記憶部
 211 第1記憶領域
 212 第2記憶領域
 22 入出力I/F
 23 車内通信部
 24 検証部
 3 車載装置
 30 アクチュエータ(ACT)
 31 センサ
 4 車載ネットワーク
 

Claims (10)

  1.  車両に搭載される車載ECUであって、
     複数のプログラムを実行する制御部と、
     自ECUを起動する際に、前記複数のプログラムそれぞれの検証を行う検証部と、
     前記複数のプログラムそれぞれが記憶される第1記憶領域と、
     前記複数のプログラムそれぞれに対応する複数の退避プログラムそれぞれが記憶される第2記憶領域とを備え、
     前記制御部は、
     前記検証部による検証が肯定的なプログラムを実行し、
     前記検証部による検証が否定的なプログラムは実行せず、前記否定的なプログラムに対応する退避プログラムを実行する
     車載ECU。
  2.  前記プログラムに対応する前記退避プログラムは、前記プログラムの以前のバージョンである旧バージョンプログラム、又は前記プログラムをバックアップしたバックアッププログラムである
     請求項1に記載の車載ECU。
  3.  前記制御部は、前記退避プログラムを実行する場合、
     前記第2記憶領域に記憶されている前記退避プログラムを前記第1記憶領域にコピーして、前記否定的なプログラムを上書きし、
     前記第1記憶領域をメインメモリとして、前記退避プログラムを実行する
     請求項1又は請求項2に記載の車載ECU。
  4.  前記制御部は、前記退避プログラムを実行する場合、
     前記退避プログラムが記憶されている前記第2記憶領域をメインメモリとして、前記退避プログラムを実行する
     請求項1又は請求項2に記載の車載ECU。
  5.  前記検証部は、前記プログラム及び該プログラムに対応する前記退避プログラムの検証を行い、
     前記プログラム及び該プログラムに対応する前記退避プログラムに対する前記検証部による検証が共に否定的な場合、前記制御部は、
     前記車両外の外部サーバから、前記否定的なプログラムと同種の正規プログラムを取得し、
     取得した前記正規プログラムを実行する
     請求項1から請求項4のいずれか1項に記載の車載ECU。
  6.  前記制御部は、
     取得した前記正規プログラムを前記第1記憶領域及び前記第2記憶領域にコピーして、前記否定的なプログラム及び前記退避プログラムを上書きし、
     前記第1記憶領域をメインメモリとして前記正規プログラムを実行する
     請求項5に記載の車載ECU。
  7.  前記制御部は、前記外部サーバから前記正規プログラムを取得できない場合、前記否定的なプログラムに応じた機能を発揮できないことを示す報知情報を出力する
     請求項5又は請求項6に記載の車載ECU。
  8.  前記第1記憶領域には、前記複数のプログラムを実行するための動作環境を生成するオペレーティングシステムが記憶されており、
     前記第2記憶領域には、前記オペレーティングシステムに対応する退避オペレーティングシステムが記憶されており、
     前記検証部は、前記複数のプログラムそれぞれの検証に併せて、前記オペレーティングシステムの検証を行い、
     前記制御部は、
     前記検証部による前記オペレーティングシステムの検証が肯定的な場合、前記オペレーティングシステムを起動し、
     前記検証部による前記オペレーティングシステムの検証が否定的な場合、前記退避オペレーティングシステムを起動する
     請求項1から請求項7のいずれか1項に記載の車載ECU。
  9.  車両に搭載され、複数のプログラムを実行するコンピュータに、
     自コンピュータを起動する際に、第1記憶領域に記憶されている前記複数のプログラムそれぞれの検証を行い、
     前記検証の結果が肯定的なプログラムを実行し、
     前記検証の結果が否定的なプログラムは実行せず、前記第1記憶領域とは異なる第2記憶領域に記憶されており、前記否定的なプログラムに対応する退避プログラムを実行する
     処理を実行させるプログラム。
  10.  車両に搭載され、複数のプログラムを実行するコンピュータに、
     自コンピュータを起動する際に、第1記憶領域に記憶されている前記複数のプログラムそれぞれの検証を行い、
     前記検証の結果が肯定的なプログラムを実行し、
     前記検証の結果が否定的なプログラムは実行せず、前記第1記憶領域とは異なる第2記憶領域に記憶されており、前記否定的なプログラムに対応する退避プログラムを実行する
     処理を実行させる情報処理方法。
     
PCT/JP2021/039220 2020-11-12 2021-10-25 車載ecu、プログラム及び情報処理方法 WO2022102385A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/252,434 US20230409316A1 (en) 2020-11-12 2021-10-25 In-vehicle ecu, program, and information processing method
CN202180072985.7A CN116419871A (zh) 2020-11-12 2021-10-25 车载ecu、程序及信息处理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020188815A JP2022077803A (ja) 2020-11-12 2020-11-12 車載ecu、プログラム及び情報処理方法
JP2020-188815 2020-11-12

Publications (1)

Publication Number Publication Date
WO2022102385A1 true WO2022102385A1 (ja) 2022-05-19

Family

ID=81601104

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/039220 WO2022102385A1 (ja) 2020-11-12 2021-10-25 車載ecu、プログラム及び情報処理方法

Country Status (4)

Country Link
US (1) US20230409316A1 (ja)
JP (1) JP2022077803A (ja)
CN (1) CN116419871A (ja)
WO (1) WO2022102385A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7392544B2 (ja) * 2020-03-26 2023-12-06 住友電装株式会社 車載ecu、プログラム及び情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340048A (ja) * 1989-03-09 1991-02-20 Fujitsu Ltd メモリエラー処理方式
JP2013084078A (ja) * 2011-10-07 2013-05-09 Ricoh Co Ltd 情報処理装置、正当性検証方法、正当性検証プログラム
JP2014522070A (ja) * 2011-08-16 2014-08-28 グーグル インコーポレイテッド セキュア・リカバリ装置及び方法
JP2017130198A (ja) * 2016-01-12 2017-07-27 トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド 拡張された前方衝突警告を提供する装置及び方法
JP2018045392A (ja) * 2016-09-13 2018-03-22 株式会社東芝 ネットワーク監視装置、ネットワークシステムおよびプログラム
JP2019212114A (ja) * 2018-06-06 2019-12-12 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340048A (ja) * 1989-03-09 1991-02-20 Fujitsu Ltd メモリエラー処理方式
JP2014522070A (ja) * 2011-08-16 2014-08-28 グーグル インコーポレイテッド セキュア・リカバリ装置及び方法
JP2013084078A (ja) * 2011-10-07 2013-05-09 Ricoh Co Ltd 情報処理装置、正当性検証方法、正当性検証プログラム
JP2017130198A (ja) * 2016-01-12 2017-07-27 トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド 拡張された前方衝突警告を提供する装置及び方法
JP2018045392A (ja) * 2016-09-13 2018-03-22 株式会社東芝 ネットワーク監視装置、ネットワークシステムおよびプログラム
JP2019212114A (ja) * 2018-06-06 2019-12-12 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Also Published As

Publication number Publication date
CN116419871A (zh) 2023-07-11
US20230409316A1 (en) 2023-12-21
JP2022077803A (ja) 2022-05-24

Similar Documents

Publication Publication Date Title
JP6889296B2 (ja) ゲートウェイ装置、システム及びファームウェア更新方法
US20170245151A1 (en) Vehicle module update, protection and diagnostics
JP6585113B2 (ja) データ格納装置
WO2020179592A1 (ja) 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP7280412B2 (ja) ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
JP6465258B1 (ja) 制御装置、制御方法、およびコンピュータプログラム
WO2020111090A1 (ja) 監視装置、監視プログラム及び監視方法
JP7074004B2 (ja) 中継装置システム及び中継装置
WO2020183897A1 (ja) 代替装置、代替制御プログラム及び代替方法
US11914871B2 (en) Electronic control device and program-update method
US11941384B2 (en) Vehicle master device, rewrite target group administration method, computer program product and data structure of specification data
WO2022102385A1 (ja) 車載ecu、プログラム及び情報処理方法
US11926270B2 (en) Display control device, rewrite progress display control method and computer program product
JP2022041194A (ja) 車載機器、情報生成方法、情報生成プログラム、および、車両
JP7354180B2 (ja) 車載中継装置
WO2021192961A1 (ja) 車載中継装置、情報処理方法及びプログラム
JP2006023850A (ja) 車両用診断システム及びこれに用いる統合制御装置
JP2013112120A (ja) 車載通信システム
JP7420018B2 (ja) ソフトウェア更新装置、方法、プログラム、および、車両
JP7415756B2 (ja) 車載装置、情報処理方法及びコンピュータプログラム
WO2020105657A1 (ja) 車載中継装置及び中継方法
WO2022097448A1 (ja) 車載ecu、プログラム及びフェールセーフ方法
JP7425016B2 (ja) 車載中継装置
JP2020096320A (ja) 不正信号処理装置
WO2023171307A1 (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: 21891632

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: 21891632

Country of ref document: EP

Kind code of ref document: A1