[go: up one dir, main page]

JP2022090870A - Vehicle control device, vehicle control method and control program - Google Patents

Vehicle control device, vehicle control method and control program Download PDF

Info

Publication number
JP2022090870A
JP2022090870A JP2020203435A JP2020203435A JP2022090870A JP 2022090870 A JP2022090870 A JP 2022090870A JP 2020203435 A JP2020203435 A JP 2020203435A JP 2020203435 A JP2020203435 A JP 2020203435A JP 2022090870 A JP2022090870 A JP 2022090870A
Authority
JP
Japan
Prior art keywords
software
verification
vms
common
vehicle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020203435A
Other languages
Japanese (ja)
Other versions
JP7524750B2 (en
Inventor
祐輔 恩田
Yusuke Onda
剛 山本
Takeshi Yamamoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2020203435A priority Critical patent/JP7524750B2/en
Priority to US17/504,562 priority patent/US12147827B2/en
Priority to CN202111248519.8A priority patent/CN114662081A/en
Publication of JP2022090870A publication Critical patent/JP2022090870A/en
Application granted granted Critical
Publication of JP7524750B2 publication Critical patent/JP7524750B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45554Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

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

Abstract

Figure 2022090870000001

【課題】複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くする。
【解決手段】車両の制御装置10は、各VMのソフトウェアを検証する際に、VMに対して予め付与された指標に応じて、他のVMのソフトウェアの検証で得られた、共通ソフトウェアの検証結果を流用するか否かを決定する流用判断部310と、他のVMのソフトウェアの検証で得られた、共通ソフトウェアの検証結果を流用すると決定した場合には、他のVMのソフトウェアの検証で得られた、共通ソフトウェアの検証結果を流用して、VMのソフトウェアを検証する前記検証部330と、を備えている。
【選択図】図2

Figure 2022090870000001

PROBLEM TO BE SOLVED: To shorten the time required for verification of software of a plurality of VMs by diverting the result of verification of software shared by a plurality of VMs.
SOLUTION: When a vehicle control device 10 verifies the software of each VM, the verification of the common software obtained by the verification of the software of other VMs according to the index given in advance to the VM. If it is decided to divert the common software verification result obtained by the diversion judgment unit 310 that determines whether or not to divert the result and the verification of the software of other VMs, the verification of the software of the other VM is performed. The verification unit 330 for verifying the VM software by diverting the obtained verification result of the common software is provided.
[Selection diagram] Fig. 2

Description

本発明は、車両の制御装置、車両の制御方法及び制御プログラムに関する。 The present invention relates to a vehicle control device, a vehicle control method, and a control program.

車両のECUの機能をソフトウェアとして1つの制御装置に統合するような開発が行われている。例えば、特許文献1には、バーチャルマシン(VM)間でプログラムモジュールを共用し、VMの起動時間短縮やメモリ節約をする技術が開示されている。 Development is being made to integrate the functions of the vehicle's ECU as software into a single control device. For example, Patent Document 1 discloses a technique for sharing a program module between virtual machines (VMs) to shorten the startup time of the VM and save memory.

特許第5236367号公報Japanese Patent No. 5236637

ここで、車両のECUの機能を有する複数のソフトウェアを1つの制御装置で実行する場合、複数のVM(Virtual Machine)を構成することで実現される。この場合、ECUの起動時に、VMを構成するのに必要なソフトウェアの真正性を検証するため、VMの数が増加すると、真正性の検証にかかる時間がVMの数に比例して増加し、全てのVMを起動し終わるまでの時間が増加してしまう。 Here, when a plurality of software having an ECU function of a vehicle is executed by one control device, it is realized by configuring a plurality of VMs (Virtual Machines). In this case, in order to verify the authenticity of the software required to configure the VM at the time of starting the ECU, as the number of VMs increases, the time required for authenticity verification increases in proportion to the number of VMs. The time to finish starting all VMs will increase.

本発明は、複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くする車両の制御装置、車両の制御方法及び制御プログラムを提供することを目的とする。 The present invention provides a vehicle control device, a vehicle control method, and a control program that shortens the time required for verification of software of a plurality of VMs by diverting the verification results of software shared by a plurality of VMs. With the goal.

請求項1に記載の車両の制御装置は、車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部と、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証部と、を備えている。 The vehicle control device according to claim 1 stores VM software that is software of a plurality of VMs (Virtual Machines) that control devices mounted on the vehicle, and common software shared by two or more of the VMs. When verifying the software of each of the VM with the storage unit, the verification result of the common software obtained in the verification of the software of the other VM is diverted according to the index given in advance to the VM. It has a verification unit and a verification unit.

請求項1に記載の車両の制御装置では、車両に搭載された機器を制御する複数のVMのソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアが、記憶部に記憶されている。当該車両の制御装置では、検証部により、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する。これにより、共通ソフトウェアの検証を重複して行わない分だけ、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。すなわち、複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。 In the vehicle control device according to claim 1, VM software, which is software of a plurality of VMs that control devices mounted on the vehicle, and common software shared by two or more of the VMs are stored in a storage unit. ing. In the control device of the vehicle, when the verification unit verifies the software of each of the VMs, the said is obtained by the verification of the software of the other VMs according to the index given in advance to the VMs. Use the verification results of common software. As a result, the time required for the verification of the software of a plurality of VMs can be shortened by the amount that the verification of the common software is not performed twice. That is, by diverting the result of the verification of the software shared by the plurality of VMs, the time required for the verification of the software of the plurality of VMs can be shortened.

請求項2に記載の車両の制御装置は、請求項1に記載の車両の制御装置において、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用するか否かを決定する流用判断部を更に備え、前記検証部は、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用すると決定した場合には、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用して、前記VMのソフトウェアを検証し、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用しないと決定した場合には、前記VMのVMソフトウェア及び前記共通ソフトウェアを検証する。これにより、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用すると決定した場合には、共通ソフトウェアの検証を重複して行わないため、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。 The vehicle control device according to claim 2 is the vehicle control device according to claim 1, according to an index given in advance to the VM when verifying the software of each VM. Further provided with a diversion determination unit for determining whether or not to divert the verification result of the common software obtained in the verification of the software of the VM, the verification unit is obtained in the verification of the software of the other VM. If it is decided to divert the verification result of the common software, the verification result of the common software obtained in the verification of the software of the other VM is diverted to verify the software of the VM, and the other. When it is determined not to divert the verification result of the common software obtained in the verification of the VM software, the VM software of the VM and the common software are verified. As a result, when it is decided to divert the verification result of the common software obtained in the verification of the software of the other VM, the verification of the common software is not duplicated, so that the software of a plurality of VMs is verified. The time required for the software can be shortened.

請求項3に記載の車両の制御装置は、請求項1又は2に記載の車両の制御装置において、前記検証部は、前記VMのソフトウェアの真正性を検証する。これにより、複数のVMのソフトウェアの真正性の検証にかかる時間を短くすることができる。なお、真正性を検証する、とは、改ざんされていないことを検証することである。 The vehicle control device according to claim 3 is the vehicle control device according to claim 1, and the verification unit verifies the authenticity of the software of the VM. As a result, the time required for verifying the authenticity of the software of a plurality of VMs can be shortened. To verify the authenticity is to verify that it has not been tampered with.

請求項4に記載の車両の制御装置は、請求項1~請求項3の何れか1項記載の車両の制御装置において、前記検証部は、前記複数のVMのソフトウェアを起動するときに、各前記VMのソフトウェアを検証する。これにより、複数のVMのソフトウェアを起動するのにかかる時間を短くすることができる。なお、VMのソフトウェアを起動する、とは、VMのVMソフトウェア及び共通ソフトウェアを記憶部から読み出して展開することである。 The vehicle control device according to claim 4 is the vehicle control device according to any one of claims 1 to 3, wherein the verification unit activates the software of the plurality of VMs. Verify the VM software. As a result, the time required to start the software of a plurality of VMs can be shortened. In addition, starting the VM software means reading the VM software and the common software of the VM from the storage unit and expanding the software.

請求項5に記載の車両の制御装置は、請求項1~請求項4の何れか1項記載の車両の制御装置において、前記指標は、前記VMが制御する機器の機能安全に関する機能安全指標、又は前記VMのソフトウェアのセキュリティに関するセキュリティ指標である。これにより、VMが制御する機器の機能安全、又はVMのソフトウェアのセキュリティと、複数のVMのソフトウェアの検証にかかる時間の短縮とを両立することができる。 The vehicle control device according to claim 5 is the vehicle control device according to any one of claims 1 to 4, wherein the index is a functional safety index related to functional safety of the device controlled by the VM. Alternatively, it is a security index related to the security of the VM software. As a result, it is possible to achieve both functional safety of the device controlled by the VM or security of the software of the VM and reduction of the time required for verification of the software of a plurality of VMs.

請求項6に記載の車両の制御方法は、車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部を含むコンピュータが、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証ステップ、を備えている。 The vehicle control method according to claim 6 stores VM software, which is software of a plurality of VMs (Virtual Machines) that control devices mounted on the vehicle, and common software shared by two or more of the VMs. When the computer including the storage unit verifies the software of each of the VMs, the verification of the common software obtained by the verification of the software of the other VMs according to the index given in advance to the VMs. It has a verification step, which diverts the results.

請求項6に記載の車両の制御方法は、検証ステップにより、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する。これにより、共通ソフトウェアの検証を重複して行わない分だけ、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。すなわち、複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。 The vehicle control method according to claim 6 is the verification of the software of the other VM according to the index given in advance to the VM when the software of each VM is verified by the verification step. The obtained verification result of the common software is diverted. As a result, the time required for the verification of the software of a plurality of VMs can be shortened by the amount that the verification of the common software is not performed twice. That is, by diverting the result of the verification of the software shared by the plurality of VMs, the time required for the verification of the software of the plurality of VMs can be shortened.

請求項7に記載の制御プログラムは、車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部を含むコンピュータに、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証ステップを含む処理を実行させる。 The control program according to claim 7 is a storage unit that stores VM software that is software of a plurality of VMs (Virtual Machines) that control devices mounted on a vehicle, and common software shared by two or more VMs. When verifying the software of each of the VMs on a computer including the above, the verification result of the common software obtained by the verification of the software of the other VMs is obtained according to the index given in advance to the VM. Execute the process including the verification step to be diverted.

請求項7に記載の制御プログラムは、検証ステップにより、各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する。これにより、共通ソフトウェアの検証を重複して行わない分だけ、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。すなわち、複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。 The control program according to claim 7 is obtained by verifying the software of the other VM according to the index given in advance to the VM when the software of each VM is verified by the verification step. In addition, the verification result of the common software will be diverted. As a result, the time required for the verification of the software of a plurality of VMs can be shortened by the amount that the verification of the common software is not performed twice. That is, by diverting the result of the verification of the software shared by the plurality of VMs, the time required for the verification of the software of the plurality of VMs can be shortened.

本発明によれば、複数のVMで共用するソフトウェアの検証の結果を流用することにより、複数のVMのソフトウェアの検証にかかる時間を短くすることができる。 According to the present invention, the time required for verification of software of a plurality of VMs can be shortened by diverting the result of verification of software shared by a plurality of VMs.

第1の実施形態に係る車両のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware composition of the vehicle which concerns on 1st Embodiment. 第1の実施形態の車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle of 1st Embodiment. 第1の実施形態における起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the activation process in 1st Embodiment. 第1の実施形態における起動処理の流れを示すフローチャート(図3の具体例)である。It is a flowchart (specific example of FIG. 3) which shows the flow of the start processing in 1st Embodiment. 第2の実施形態の車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle of 2nd Embodiment. 第3の実施形態の車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle of 3rd Embodiment. 第4の実施形態の車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle of 4th Embodiment. 第5の実施形態の車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle of 5th Embodiment. 第5の実施形態における起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the activation process in 5th Embodiment. 第5の実施形態の他の例における起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the start processing in another example of 5th Embodiment. 実施形態の他の例における車両の機能構成の例を示すブロック図である。It is a block diagram which shows the example of the functional structure of the vehicle in another example of an embodiment. 実施形態の他の例における起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the start processing in another example of an embodiment.

[第1の実施形態]
図1は、第1の実施形態に係る車両12の制御系を示すブロック図である。
[First Embodiment]
FIG. 1 is a block diagram showing a control system of the vehicle 12 according to the first embodiment.

(構成)
図1に示されるように、第1の実施形態に係る車両12は、車両の制御装置(以下、単に「制御装置」とする)10としてのECU(Electronic Control Unit)20と、ECU20に接続される車載機器群16とを含んで構成されている。車載機器群16は、車両12に設けられたセンサ類であって、ボデー各部、エンジン各部に装着されたセンサを含む。また、車載機器群16は、車両12に設けられた駆動用の装置類であって、ボデー各部、エンジン各部に装着されたモータ、バルブ、アクチュエータを含む。
(Constitution)
As shown in FIG. 1, the vehicle 12 according to the first embodiment is connected to an ECU (Electronic Control Unit) 20 as a vehicle control device (hereinafter, simply referred to as a “control device”) 10 and an ECU 20. It is configured to include the vehicle-mounted device group 16. The in-vehicle device group 16 is sensors provided on the vehicle 12, and includes sensors mounted on each part of the body and each part of the engine. Further, the in-vehicle device group 16 is drive devices provided in the vehicle 12, and includes motors, valves, and actuators mounted on each body part and each engine part.

ECU20は、CPU(Central Processing Unit)20A、ROM(Read Only Memory)20B、RAM(Random Access Memory)20C、通信I/F(Inter Face)20D及び入出力I/F(Inter Face)20E、ストレージ20F及びセキュリティモジュール20Gを含んで構成されている。CPU20A、ROM20B、RAM20C、通信I/F20D、入出力I/F20E、ストレージ20F及びセキュリティモジュール20Gは、バス20Hを介して相互に通信可能に接続されている。 The ECU 20 includes a CPU (Central Processing Unit) 20A, a ROM (Read Only Memory) 20B, a RAM (Random Access Memory) 20C, a communication I / F (Inter Face) 20D, an input / output I / F (Inter Face) 20E, and a storage 20F. And the security module 20G are included. The CPU 20A, ROM 20B, RAM 20C, communication I / F20D, input / output I / F20E, storage 20F, and security module 20G are connected to each other so as to be communicable with each other via the bus 20H.

CPU20Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU20Aは、ROM20Bからプログラムを読み出し、RAM20Cを作業領域としてプログラムを実行する。本実施形態では、CPU20A自体を複数備えてもよいし(いわゆる、マルチプロセッサ)、CPU20Aにおいてコアを複数有していてもよい(いわゆる、マルチコア)。 The CPU 20A is a central arithmetic processing unit that executes various programs and controls each unit. That is, the CPU 20A reads the program from the ROM 20B and executes the program using the RAM 20C as a work area. In the present embodiment, a plurality of CPU 20A itself may be provided (so-called multiprocessor), or the CPU 20A may have a plurality of cores (so-called multicore).

ROM20Bは、各種プログラム及び各種データを記憶している。本実施形態のROM20Bには、制御プログラム200が記憶されている。制御プログラム200は、後述する起動処理を行うためのプログラムである。また、ROM20Bには、複数のVMで共用される共通ソフトウェア群210が記憶されている。 The ROM 20B stores various programs and various data. The control program 200 is stored in the ROM 20B of the present embodiment. The control program 200 is a program for performing the activation process described later. Further, the ROM 20B stores a common software group 210 shared by a plurality of VMs.

RAM20Cは、作業領域として一時的にプログラム又はデータを記憶する。 The RAM 20C temporarily stores a program or data as a work area.

通信I/F20Dは、車両12に設けられた他の装置と接続するためのインタフェースである。当該インタフェースは、CAN(Controller Area Network)、イーサネット(登録商標)等による通信規格が用いられる。 The communication I / F 20D is an interface for connecting to another device provided in the vehicle 12. For the interface, a communication standard such as CAN (Control Area Network) or Ethernet (registered trademark) is used.

入出力I/F20Eは、車両12に搭載される車載機器群16と通信するためのインタフェースである。 The input / output I / F 20E is an interface for communicating with the in-vehicle device group 16 mounted on the vehicle 12.

ストレージ20Fには、VM起動順序リスト220が記憶されている。VM起動順序リスト220は、各VMを起動する場合における各VMの起動順序を規定したリストである。VM起動順序リスト220には、更に、各VMに対して予め定められた指標が付与されている。指標としては、例えば、VMに対して求められるシステム安全性要求レベルが用いられる。ここで、システム安全性要求レベルは、ECUの誤動作、故障などにより引き起こされる問題の種類と発生確率の組み合わせから、当該VMに求められる安全性のレベルである。車両の場合は、ISO26262で車両の電子制御システムに対し、安全性のレベルは、ASIL(Automotive Safety Intergrity Level)として定義されている。具体的には、システム異常が生じることにより人体へ危害を及ぼしたり物的損害を与えるなどの可能性があるVMには、システム安全性要求レベル「高」が付与されている。一方、システム安全性が要求されないVM、つまり、システム異常が生じることにより人体へ危害を及ぼしたり物的損害を与えるなどの可能性がないVMには、システム安全性要求レベル「低」が付与されている。それ以外のVMには、システム安全性要求レベル「中」が付与されている。 The VM activation order list 220 is stored in the storage 20F. The VM activation order list 220 is a list that defines the activation order of each VM when each VM is activated. Further, a predetermined index is given to each VM in the VM activation order list 220. As an index, for example, the system safety requirement level required for VM is used. Here, the system safety requirement level is the safety level required for the VM from the combination of the type of problem caused by the malfunction or failure of the ECU and the probability of occurrence. In the case of vehicles, the level of safety is defined in ISO 26262 as ASIL (Automotive Safety Industry Level) for the vehicle's electronic control system. Specifically, a system safety requirement level "high" is given to a VM that may cause harm to the human body or cause physical damage due to a system abnormality. On the other hand, a VM that does not require system safety, that is, a VM that does not have the possibility of causing harm to the human body or causing property damage due to a system abnormality, is given a system safety requirement level of "low". ing. The other VMs are given the system safety requirement level "medium".

また、ストレージ20Fには、2つ以上のVMの各々を構成するためのVMソフトウェア群230が記憶されている。2つ以上のVMソフトウェア群230は、例えば、後述するマルチメディアVMを構成するためのマルチメディアVMソフトウェア群230A、後述するボデー制御VMを構成するためのボデー制御VMソフトウェア群230B、及び後述する自動運転制御VMを構成するための自動運転制御VMソフトウェア群230Cを含んでいる。なお、VMソフトウェア群230は、用途に応じたVMソフトウェア群230をさらに含んでいる。 Further, the storage 20F stores a VM software group 230 for constituting each of two or more VMs. The two or more VM software group 230 includes, for example, a multimedia VM software group 230A for configuring a multimedia VM described later, a body control VM software group 230B for configuring a body control VM described later, and an automatic body control VM software group 230B described later. It includes the automatic operation control VM software group 230C for configuring the operation control VM. The VM software group 230 further includes the VM software group 230 according to the application.

ストレージ20Fは、ROMやハードディスク、又は各種Flashデバイス(SSD(Solid State Drive)、eMMC(embedded MultiMediaCard)、SD(Secure Digital)など)で実現される。 The storage 20F is realized by a ROM, a hard disk, or various Flash devices (SSD (Solid State Drive), eMMC (embedded MultiMediaCard), SD (Secure Digital), and the like).

セキュリティモジュール20Gは、ハードウェアでソフトウェアの真正性を検証するものであり、例えば、TPM(Trusted Platform Module)、又はHSM(Hardware Security Module)である。セキュリティモジュール20Gは、例えば、保管している鍵と、暗号又は復号アクセラレータとを用いた暗号又は復号を行ったり、ハッシュ値等の演算を行ったりして、ソフトウェアの真正性を検証する。 The security module 20G verifies the authenticity of software by hardware, and is, for example, TPM (Trusted Platform Module) or HSM (Hardware Security Module). The security module 20G verifies the authenticity of the software by, for example, performing encryption or decryption using a stored key and an encryption or decryption accelerator, or performing an operation such as a hash value.

図2は、ECU20の機能構成の例を示すブロック図である。各機能構成は、CPU20AがROM20Bに記憶された制御プログラム200を読み出し、これを実行することによって実現される。 FIG. 2 is a block diagram showing an example of the functional configuration of the ECU 20. Each functional configuration is realized by the CPU 20A reading the control program 200 stored in the ROM 20B and executing the control program 200.

図2に示されるように、ECU20は、2つ以上のVM110と、VM構成部300とを有している。VM110は、例えば、マルチメディアVM110A、ボデー制御VM110B及び自動運転制御VM110Cを含んでいる。 As shown in FIG. 2, the ECU 20 has two or more VM 110s and a VM component 300. The VM110 includes, for example, a multimedia VM110A, a body control VM110B and an automated operation control VM110C.

なお、ECU20において実現されるVM110はこの限りでなく、用途に応じたVM110をさらに含んでいてもよい。 The VM110 realized in the ECU 20 is not limited to this, and may further include the VM110 according to the application.

VM構成部300は、各VM110を仮想的に構成する機能を有している。このVM構成部300は、いわゆるハイパーバイザーの機能により実現され、起動時に、ストレージ20Fから、VM起動順序リスト220を読み出し、VM起動順序リスト220に規定されている起動順序に従って、VMソフトウェア群230及び共通ソフトウェア群210を読み出し、VM110を起動する。具体的には、VM構成部300は、VMのソフトウェア群230及び共通ソフトウェア群210をRAM20Cに展開し、VM110を起動させる。 The VM component 300 has a function of virtually configuring each VM 110. This VM configuration unit 300 is realized by the function of a so-called hypervisor, reads out the VM start-up order list 220 from the storage 20F at the time of start-up, and according to the start-up order defined in the VM start-up order list 220, the VM software group 230 and The common software group 210 is read out, and the VM 110 is started. Specifically, the VM component 300 deploys the VM software group 230 and the common software group 210 in the RAM 20C, and activates the VM 110.

VM構成部300は、起動VM判断部310と、流用判断部320と、検証部330と、起動部340とをさらに含んでいる。 The VM component unit 300 further includes an activation VM determination unit 310, a diversion determination unit 320, a verification unit 330, and an activation unit 340.

起動VM判断部310は、VM起動順序リスト220に規定されている起動順序に従って、起動するVM110を判断すると共に、当該VM110のシステム安全性要求レベルを取得する。 The start-up VM determination unit 310 determines the start-up VM 110 according to the start-up order specified in the VM start-up order list 220, and acquires the system safety requirement level of the VM 110.

流用判断部320は、各VM110のVMソフトウェア群230を検証する際に、当該VM110に対して予め付与されたシステム安全性要求レベルに応じて、他のVM110のVMソフトウェア群230の検証で得られた、共通ソフトウェア群210の検証結果を流用するか否かを決定する。具体的には、流用判断部320は、当該VM110のシステム安全性要求レベルが「高」である場合には、共通ソフトウェア群210の検証結果を流用しないと決定する。例えば、ボデー制御VM110Bには、システム安全性要求レベル「高」が付与されているため、ボデー制御VM110Bについて、共通ソフトウェア群210の検証結果を流用しないと決定する。 The diversion determination unit 320 is obtained by verifying the VM software group 230 of another VM 110 according to the system safety requirement level given in advance to the VM 110 when verifying the VM software group 230 of each VM 110. In addition, it is determined whether or not to divert the verification result of the common software group 210. Specifically, the diversion determination unit 320 determines that the verification result of the common software group 210 is not diverted when the system safety requirement level of the VM110 is "high". For example, since the body control VM110B is given the system safety requirement level "high", it is determined not to divert the verification result of the common software group 210 for the body control VM110B.

流用判断部320は、当該VM110のシステム安全性要求レベルが「中」である場合には、他のVM110のVMソフトウェア群230の検証で得られた、共通ソフトウェア群210の検証結果を流用すると決定する。例えば、自動運転制御VM110Cには、システム安全性要求レベル「中」が付与されているため、自動運転制御VM110Cについて、共通ソフトウェア群210の検証結果を流用すると決定する。 When the system safety requirement level of the VM 110 is "medium", the diversion determination unit 320 determines to divert the verification result of the common software group 210 obtained in the verification of the VM software group 230 of another VM 110. do. For example, since the automatic operation control VM110C is given the system safety requirement level "medium", it is determined that the verification result of the common software group 210 is diverted to the automatic operation control VM110C.

流用判断部320は、当該VMのシステム安全性要求レベルが「低」である場合には、当該VM110のVMソフトウェア群230の検証を行わないと決定する。例えば、マルチメディアVM110Aには、システム安全性要求レベル「低」が付与されているため、マルチメディアVMソフトウェア群230Aの検証を行わないと決定する。 The diversion determination unit 320 determines that the VM software group 230 of the VM 110 is not verified when the system safety requirement level of the VM is “low”. For example, since the multimedia VM 110A is given the system safety requirement level "low", it is decided not to verify the multimedia VM software group 230A.

検証部330は、複数のVM110を起動するときに、各VM110のVMソフトウェア群230の真正性を検証する。このとき、検証部330は、他のVM110のVMソフトウェア群230の検証で得られた、共通ソフトウェア群210の検証結果を流用しないと決定した場合には、他のVM110のVMソフトウェア群230の検証で得られた、共通ソフトウェア群210の検証結果を流用しないで、当該VM110のVMソフトウェア群230の真正性を検証する。例えば、検証部330は、共通ソフトウェア群210の検証結果を流用しないと決定された場合には、セキュリティモジュール20Gを用いて、当該VM110のVMソフトウェア群230及び共通ソフトウェア群210の真正性を検証する。 The verification unit 330 verifies the authenticity of the VM software group 230 of each VM 110 when a plurality of VM 110s are activated. At this time, if the verification unit 330 determines not to divert the verification result of the common software group 210 obtained in the verification of the VM software group 230 of the other VM 110, the verification unit 330 verifies the VM software group 230 of the other VM 110. The authenticity of the VM software group 230 of the VM 110 is verified without diverting the verification result of the common software group 210 obtained in. For example, when it is determined that the verification result of the common software group 210 is not diverted, the verification unit 330 verifies the authenticity of the VM software group 230 and the common software group 210 of the VM 110 by using the security module 20G. ..

検証部330は、共通ソフトウェア群210の検証結果を流用すると決定された場合には、セキュリティモジュール20Gを用いて、当該VM110のVMソフトウェア群230の真正性を検証し、共通ソフトウェア群210の検証を省略する。 When the verification unit 330 determines that the verification result of the common software group 210 is diverted, the verification unit 330 verifies the authenticity of the VM software group 230 of the VM 110 by using the security module 20G, and verifies the common software group 210. Omit.

検証部330は、VMソフトウェア群230の検証を行わないと決定された場合には、当該VM110のVMソフトウェア群230及び共通ソフトウェア群210の検証を省略する。 When the verification unit 330 determines that the VM software group 230 is not verified, the verification unit 330 omits the verification of the VM software group 230 and the common software group 210 of the VM 110.

起動部340は、各VM110について、当該VM110のVMソフトウェア群230及び共通ソフトウェア群210の真正性の検証が成功した場合に、当該VM110のVMソフトウェア群230及び共通ソフトウェア群210をRAM20Cに展開して、当該VM110を起動する。 When the authenticity of the VM software group 230 and the common software group 210 of the VM 110 is successfully verified for each VM 110, the activation unit 340 expands the VM software group 230 and the common software group 210 of the VM 110 into the RAM 20C. , Activate the VM110.

(制御の流れ)
本実施形態において、ECU10が実行する起動処理の流れの例を図3のフローチャートで説明する。
(Control flow)
In the present embodiment, an example of the flow of the activation process executed by the ECU 10 will be described with reference to the flowchart of FIG.

図3のステップS100において、CPU20Aは、ソフトウェアとしてのハイパーバイザーを起動する。 In step S100 of FIG. 3, the CPU 20A activates the hypervisor as software.

ステップS101において、起動VM判断部310は、VM起動順序リスト220に規定されている起動順序に従って、起動するVM110を判断すると共に、当該VM110のシステム安全性要求レベルを取得する。 In step S101, the start-up VM determination unit 310 determines the start-up VM 110 according to the start-up order specified in the VM start-up order list 220, and acquires the system safety requirement level of the VM 110.

ステップS102において、起動VM判断部310は、起動していないVM110があるか否かを判定する。上記ステップS101で起動するVM110が判断された場合には、ステップS103へ進む。一方、上記ステップS101で起動するVM110が判断されなかった場合には、起動処理を終了する。 In step S102, the activation VM determination unit 310 determines whether or not there is a VM 110 that has not been activated. If the VM110 to be activated in step S101 is determined, the process proceeds to step S103. On the other hand, if the VM110 to be activated in step S101 is not determined, the activation process is terminated.

ステップS103においては、流用判断部320は、起動するVM110のシステム安全性要求レベルが「高」、「中」、及び「低」の何れかであるかを判定する。起動するVM110のシステム安全性要求レベルが「高」である場合には、ステップS105へ進む。起動するVM110のシステム安全性要求レベルが「中」である場合には、ステップS104へ進む。起動するVM110のシステム安全性要求レベルが「低」である場合には、ステップS109へ進む。 In step S103, the diversion determination unit 320 determines whether the system safety requirement level of the VM 110 to be activated is "high", "medium", or "low". If the system safety requirement level of the VM110 to be activated is "high", the process proceeds to step S105. If the system safety requirement level of the VM110 to be activated is "medium", the process proceeds to step S104. If the system safety requirement level of the VM110 to be activated is "low", the process proceeds to step S109.

ステップS104において、流用判断部320は、共通ソフトウェア群210について、他のVM110の検証において検証済みであるか否かを判定する。共通ソフトウェア群210について、他のVM110の検証において検証済みである場合には、流用判断部320は、共通ソフトウェア群210についての検証結果を流用すると判断し、ステップS107へ進む。共通ソフトウェア群210について、他のVM110の検証において検証されていない場合には、ステップS105へ進む。 In step S104, the diversion determination unit 320 determines whether or not the common software group 210 has been verified in the verification of the other VM 110. If the common software group 210 has been verified in the verification of the other VM 110, the diversion determination unit 320 determines that the verification result of the common software group 210 will be diverted, and proceeds to step S107. If the common software group 210 has not been verified in the verification of another VM110, the process proceeds to step S105.

ステップS105において、検証部330は、セキュリティモジュール20Gを用いて、共通ソフトウェア群210の真正性を検証する。 In step S105, the verification unit 330 verifies the authenticity of the common software group 210 by using the security module 20G.

ステップS106において、検証部330は、上記ステップS105の検証結果が、真正であるとの検証結果であるか否かを判定する。上記ステップS105の検証結果が、真正でないとの検証結果である場合には、ステップS110へ進み、CPU20Aが、起動エラーを出力し、起動処理を終了する。一方、上記ステップS105の検証結果が、真正であるとの検証結果である場合には、ステップS107へ進む。 In step S106, the verification unit 330 determines whether or not the verification result of step S105 is a verification result of authenticity. If the verification result in step S105 is not genuine, the process proceeds to step S110, the CPU 20A outputs a start error, and ends the start process. On the other hand, if the verification result in step S105 is the verification result that it is genuine, the process proceeds to step S107.

ステップS107において、検証部330は、セキュリティモジュール20Gを用いて、当該VM110のVMソフトウェア群230の真正性を検証する。 In step S107, the verification unit 330 verifies the authenticity of the VM software group 230 of the VM 110 by using the security module 20G.

ステップS108において、検証部330は、上記ステップS107の検証結果が、真正であるとの検証結果であるか否かを判定する。上記ステップS107の検証結果が、真正でないとの検証結果である場合には、ステップS110へ進む。一方、上記ステップS107の検証結果が、真正であるとの検証結果である場合には、ステップS109へ進む。 In step S108, the verification unit 330 determines whether or not the verification result of step S107 is a verification result of authenticity. If the verification result in step S107 is not genuine, the process proceeds to step S110. On the other hand, if the verification result in step S107 is a verification result indicating that it is genuine, the process proceeds to step S109.

ステップS109において、起動部340は、起動するVM110のVMソフトウェア群230及び共通ソフトウェア群210をRAM20Cに展開して、当該VM110を起動し、上記ステップS101へ戻る。 In step S109, the activation unit 340 expands the VM software group 230 and the common software group 210 of the VM 110 to be activated into the RAM 20C, activates the VM 110, and returns to the above step S101.

ECU10が実行する起動処理の流れの具体例を図4のフローチャートで説明する。ここでは、VM起動順序リスト220に、マルチメディアVM110A、ボデー制御VM110B、自動運転制御VM110Cの順に起動することが規定されている場合を例に説明する。 A specific example of the flow of the activation process executed by the ECU 10 will be described with reference to the flowchart of FIG. Here, a case where it is specified in the VM activation order list 220 that the multimedia VM110A, the body control VM110B, and the automatic operation control VM110C are activated in this order will be described as an example.

ステップS101A~ステップS109Aにおいて、マルチメディアVM110Aを、起動するVM110として、上記図3のステップS101~ステップS109と同様に処理を行う。このとき、マルチメディアVM110Aのシステム安全性要求レベルが「低」であるため、ステップS103Aにおいて、起動するマルチメディアVM110Aのシステム安全性要求レベルが「低」であると判定され、マルチメディアVMソフトウェア群230A及び共通ソフトウェア群210の何れについても真正性の検証を行わずに、ステップS109Aへ進む。 In steps S101A to S109A, the multimedia VM110A is set as the VM110 to be activated, and the same processing as in steps S101 to S109 of FIG. 3 is performed. At this time, since the system safety requirement level of the multimedia VM110A is "low", it is determined in step S103A that the system safety requirement level of the multimedia VM110A to be activated is "low", and the multimedia VM software group. The process proceeds to step S109A without verifying the authenticity of either the 230A or the common software group 210.

そして、ステップS101B~ステップS109Bにおいて、ボデー制御VM110Bを、起動するVM110として、上記図3のステップS101~ステップS109と同様に処理を行う。このとき、ボデー制御VM110Bのシステム安全性要求レベルが「高」であるため、ステップS103Bにおいて、起動するボデー制御VM110Bのシステム安全性要求レベルが「高」であると判定され、ステップS105B、ステップS107Bにおいて、ボデー制御VMソフトウェア群230B及び共通ソフトウェア群210の双方について真正性の検証を行う。 Then, in steps S101B to S109B, the body control VM110B is set as the VM110 to be activated, and the same processing as in steps S101 to S109 of FIG. 3 is performed. At this time, since the system safety requirement level of the body control VM110B is "high", it is determined in step S103B that the system safety requirement level of the body control VM110B to be activated is "high", and steps S105B and S107B are determined. In, the authenticity of both the body control VM software group 230B and the common software group 210 is verified.

そして、ステップS101C~ステップS109Cにおいて、自動運転制御VM110Cを、起動するVM110として、上記図3のステップS101~ステップS109と同様に処理を行う。このとき、自動運転制御VM110Cのシステム安全性要求レベルが「中」であるため、ステップS103Cにおいて、起動する自動運転制御VM110Cのシステム安全性要求レベルが「中」であると判定される。また、ステップS104Cにおいて、共通ソフトウェア群210について、ボデー制御VM110Bの検証において検証済みであると判定され、ステップS107へ進む。そして、ステップS107Cにおいて、自動運転制御VMソフトウェア群230Cについて真正性の検証を行う。 Then, in steps S101C to S109C, the automatic operation control VM110C is set as the VM110 to be activated, and the same processing as in steps S101 to S109 of FIG. 3 is performed. At this time, since the system safety requirement level of the automated driving control VM110C is "medium", it is determined in step S103C that the system safety requirement level of the automated driving control VM110C to be activated is "medium". Further, in step S104C, it is determined that the common software group 210 has been verified in the verification of the body control VM110B, and the process proceeds to step S107. Then, in step S107C, the authenticity of the automated operation control VM software group 230C is verified.

(第1の実施形態のまとめ)
本実施形態の制御装置10では、複数のVMで共用する共通ソフトウェア群の検証の結果を流用することにより、複数のVMのソフトウェア群の検証にかかる時間を短くすることができる。
(Summary of the first embodiment)
In the control device 10 of the present embodiment, the time required for the verification of the software group of a plurality of VMs can be shortened by diverting the verification result of the common software group shared by the plurality of VMs.

また、本実施形態の制御装置10では、VMが制御する機器の機能安全と、複数のVMのソフトウェアの検証にかかる時間の短縮とを両立することができる。 Further, in the control device 10 of the present embodiment, it is possible to achieve both functional safety of the device controlled by the VM and shortening of the time required for verification of software of a plurality of VMs.

また、本実施形態の制御装置10では、ECUの故障時安全性担保のために、ECU起動時に、VMのソフトウェア群に改ざんがないことを検証する。ECU起動時に行う共通ソフトウェア群の検証を、特定条件下では検証済みであると認め、起動時間の短縮を図りつつ、共通ソフトウェア群の検証は、VMに求められる安全性のレベルに応じて、再検証するかどうかを決定し、自システムの安全性担保を図る。 Further, in the control device 10 of the present embodiment, it is verified that the software group of the VM is not tampered with at the time of starting the ECU in order to ensure the safety at the time of the failure of the ECU. It is recognized that the verification of the common software group performed at the time of starting the ECU has been verified under specific conditions, and while shortening the startup time, the verification of the common software group is repeated according to the level of safety required for the VM. Decide whether to verify and ensure the safety of your system.

また、システム安全性要求レベルが高いVMに関しては、システム異常が生じることにより人体へ危害を及ぼしたり、物的損害を与えるなどの可能性があり、VM起動前にそのVMを構成するVMソフトウェア群230、及び共通ソフトウェア群210が何らかの要因によって改ざんされてしまっていないかを、ECU20は、セキュリティモジュールを用いて検証する。一方で、システム安全性が要求されないVM、つまり、システム異常により人体へ危害を及ぼしたり、物的損害を与えるなどの可能性がないVMについては、そのソフトウェアの真正性検証は必須ではないため、VM起動時間の短縮のためにソフトウェア群の真正性検証を行わないこととする。 In addition, for VMs with a high system safety requirement level, there is a possibility that a system abnormality may cause harm to the human body or cause physical damage, and the VM software group that composes the VM before starting the VM. The ECU 20 verifies whether the 230 and the common software group 210 have been tampered with by some factor by using the security module. On the other hand, for VMs that do not require system safety, that is, VMs that are unlikely to cause harm to the human body or cause property damage due to system abnormalities, the authenticity verification of the software is not essential. In order to shorten the VM startup time, the authenticity of the software group will not be verified.

[第2の実施形態]
第1の実施形態では、ECU20にROM20Bを設けていた。これに対して、第2の実施形態では、ECU20にROM20Bを設けていない点で第1の実施形態と異なる。以下、第1の実施形態との相違点について説明する。なお、同一の構成には同一の符号を付しており、説明については省略する。
[Second Embodiment]
In the first embodiment, the ECU 20 is provided with the ROM 20B. On the other hand, the second embodiment is different from the first embodiment in that the ROM 20B is not provided in the ECU 20. Hereinafter, the differences from the first embodiment will be described. The same components are designated by the same reference numerals, and the description thereof will be omitted.

図5に示されるように、本実施形態のECU20は、CPU20A、RAM20C、通信I/F20D及び入出力I/F20E、ストレージ20F及びセキュリティモジュール20Gを含んで構成されている。 As shown in FIG. 5, the ECU 20 of the present embodiment includes a CPU 20A, a RAM 20C, a communication I / F 20D and an input / output I / F 20E, a storage 20F, and a security module 20G.

ストレージ20Fには、制御プログラム200及び共通ソフトウェア群210が記憶されている。 The control program 200 and the common software group 210 are stored in the storage 20F.

本実施形態においても、第1の実施形態と同様の作用効果を得ることができる。 Also in this embodiment, the same effect as that of the first embodiment can be obtained.

[第3の実施形態]
第1の実施形態では、ECU20にストレージ20Fを設けていた。これに対して、第3の実施形態では、ECU20にストレージ20Fを設けていない点で第1の実施形態と異なる。以下、第1の実施形態との相違点について説明する。なお、同一の構成には同一の符号を付しており、説明については省略する。
[Third Embodiment]
In the first embodiment, the storage 20F is provided in the ECU 20. On the other hand, the third embodiment is different from the first embodiment in that the storage 20F is not provided in the ECU 20. Hereinafter, the differences from the first embodiment will be described. The same components are designated by the same reference numerals, and the description thereof will be omitted.

図6に示されるように、本実施形態のECU20は、CPU20A、ROM20B、RAM20C、通信I/F20D、入出力I/F20E及びセキュリティモジュール20Gを含んで構成されている。 As shown in FIG. 6, the ECU 20 of the present embodiment includes a CPU 20A, a ROM 20B, a RAM 20C, a communication I / F 20D, an input / output I / F 20E, and a security module 20G.

ROM20Bには、VM起動順序リスト220及び2つ以上のVMソフトウェア群230が記憶されている。 The VM boot order list 220 and two or more VM software groups 230 are stored in the ROM 20B.

本実施形態においても、第1の実施形態と同様の作用効果を得ることができる。 Also in this embodiment, the same effect as that of the first embodiment can be obtained.

[第4の実施形態]
第1の実施形態に対して、第4の実施形態では、ROM20Bの代わりにEEPROM(Electrically Erasable Programmable Read-Only Memory)420Bを設けた点で第1の実施形態と異なる。以下、第1の実施形態との相違点について説明する。なお、同一の構成には同一の符号を付しており、説明については省略する。
[Fourth Embodiment]
The fourth embodiment differs from the first embodiment in that an EEPROM (Electrically Erasable Project Read-Only Memory) 420B is provided instead of the ROM 20B. Hereinafter, the differences from the first embodiment will be described. The same components are designated by the same reference numerals, and the description thereof will be omitted.

図7に示されるように、本実施形態のECU20は、CPU20A、EEPROM420B、RAM20C、通信I/F20D、入出力I/F20E、ストレージ20F及びセキュリティモジュール20Gを含んで構成されている。 As shown in FIG. 7, the ECU 20 of the present embodiment includes a CPU 20A, an EEPROM 420B, a RAM 20C, a communication I / F 20D, an input / output I / F 20E, a storage 20F, and a security module 20G.

EEPROM20Bには、制御プログラム200及び共通ソフトウェア群210が記憶されている。 The control program 200 and the common software group 210 are stored in the EEPROM 20B.

本実施形態においても、第1の実施形態と同様の作用効果を得ることができる。 Also in this embodiment, the same effect as that of the first embodiment can be obtained.

[第5の実施形態]
第1の実施形態に対して、第5の実施形態では、セキュリティモジュール20Gの他に、セキュリティモジュール20IをECU20に設けた点で異なる。以下、第1の実施形態との相違点について説明する。なお、同一の構成には同一の符号を付しており、説明については省略する。
[Fifth Embodiment]
The fifth embodiment is different from the first embodiment in that the security module 20I is provided in the ECU 20 in addition to the security module 20G. Hereinafter, the differences from the first embodiment will be described. The same components are designated by the same reference numerals, and the description thereof will be omitted.

(構成)
図8に示されるように、本実施形態のECU20は、CPU20A、ROM20B、RAM20C、通信I/F20D、入出力I/F20E、ストレージ20F、セキュリティモジュール20G及びセキュリティモジュール20Iを含んで構成されている。
(Constitution)
As shown in FIG. 8, the ECU 20 of the present embodiment includes a CPU 20A, a ROM 20B, a RAM 20C, a communication I / F 20D, an input / output I / F 20E, a storage 20F, a security module 20G, and a security module 20I.

検証部330は、複数のVMのソフトウェアを起動するときに、各VMのソフトウェアの真正性の検証を、セキュリティモジュール20G及びセキュリティモジュール20Iを用いて並列に行う。 When starting the software of a plurality of VMs, the verification unit 330 verifies the authenticity of the software of each VM in parallel by using the security module 20G and the security module 20I.

(制御の流れ)
本実施形態において、ECU10が実行する起動処理の流れの例を図9のフローチャートで説明する。なお、上記実施形態と同一の処理には同一の符号を付しており、説明については省略する。
(Control flow)
In the present embodiment, an example of the flow of the activation process executed by the ECU 10 will be described with reference to the flowchart of FIG. The same processes as those in the above embodiment are designated by the same reference numerals, and the description thereof will be omitted.

図9のステップS100において、CPU20Aは、ソフトウェアとしてのハイパーバイザーを起動する。 In step S100 of FIG. 9, the CPU 20A activates the hypervisor as software.

ステップS101において、起動VM判断部310は、VM起動順序リスト220に規定されている起動順序に従って、起動するVM110を判断すると共に、当該VM110のシステム安全性要求レベルを取得する。ここでは、起動するVM110を2つ判断する。 In step S101, the start-up VM determination unit 310 determines the start-up VM 110 according to the start-up order specified in the VM start-up order list 220, and acquires the system safety requirement level of the VM 110. Here, two VM110s to be activated are determined.

ステップS102において、起動VM判断部310は、起動していないVM110があるか否かを判定する。上記ステップS101で起動するVM110が判断された場合には、ステップS500へ進む。一方、上記ステップS101で起動するVM110が判断されなかった場合には、起動処理を終了する。 In step S102, the activation VM determination unit 310 determines whether or not there is a VM 110 that has not been activated. If the VM110 to be activated in step S101 is determined, the process proceeds to step S500. On the other hand, if the VM110 to be activated in step S101 is not determined, the activation process is terminated.

ステップS500において、CPU20Aは、起動する2つのVM110の起動処理を並列に実行する。このステップS500は、起動する2つのVM110に対して、セキュリティモジュール20G及びセキュリティモジュール20Iを用いて、上記図3のステップS103~ステップS110と同様の処理を並列に行う。そして、ステップS101へ戻る。 In step S500, the CPU 20A executes the boot processing of the two VM 110s to be booted in parallel. In this step S500, the security module 20G and the security module 20I are used for the two VMs 110 to be activated, and the same processing as in steps S103 to S110 of FIG. 3 is performed in parallel. Then, the process returns to step S101.

本実施形態においても、第1の実施形態と同様の作用効果を得ることができる。 Also in this embodiment, the same effect as that of the first embodiment can be obtained.

また、VM110の起動を並列化することが可能となり、安全性の担保はそのままにVMの起動時間の短縮を図ることができる。 In addition, it is possible to parallelize the activation of the VM 110, and it is possible to shorten the activation time of the VM while maintaining the security.

[備考]
なお、上記第5実施形態では、VM110の起動を並列化する場合を例に説明したが、これに限定されない。ソフトウェア群の真正性の検証を並列化するようにしてもよい。この場合における、ECU10が実行する起動処理の流れの例を図10のフローチャートで説明する。なお、上記実施形態と同一の処理には同一の符号を付しており、説明については省略する。
[remarks]
In the fifth embodiment, the case where the activation of the VM 110 is parallelized has been described as an example, but the present invention is not limited to this. The verification of the authenticity of the software group may be parallelized. An example of the flow of the activation process executed by the ECU 10 in this case will be described with reference to the flowchart of FIG. The same processes as those in the above embodiment are designated by the same reference numerals, and the description thereof will be omitted.

図10のステップS104において、流用判断部320は、共通ソフトウェア群210について、他のVM110の検証において検証済みであるか否かを判定する。共通ソフトウェア群210について、他のVM110の検証において検証済みである場合には、流用判断部320は、共通ソフトウェア群210についての検証結果を流用すると判断し、ステップS107へ進む。共通ソフトウェア群210について、他のVM110の検証において検証されていない場合には、ステップS600へ進む。 In step S104 of FIG. 10, the diversion determination unit 320 determines whether or not the common software group 210 has been verified in the verification of another VM 110. If the common software group 210 has been verified in the verification of the other VM 110, the diversion determination unit 320 determines that the verification result of the common software group 210 will be diverted, and proceeds to step S107. If the common software group 210 has not been verified in the verification of another VM110, the process proceeds to step S600.

ステップS600において、検証部330は、セキュリティモジュール20Gを用いた、VMソフトウェア群230の真正性の検証と、セキュリティモジュール20Iを用いた、共通ソフトウェア群210の真正性の検証と、を並列に行う。 In step S600, the verification unit 330 performs verification of the authenticity of the VM software group 230 using the security module 20G and verification of the authenticity of the common software group 210 using the security module 20I in parallel.

ステップS601において、検証部330は、上記ステップS107又はS600の検証結果が、真正であるとの検証結果であるか否かを判定する。上記ステップS107又はS600の検証結果が、真正でないとの検証結果である場合には、ステップS110へ進む。一方、上記ステップS107又はS600の検証結果が、真正であるとの検証結果である場合には、ステップS109へ進む。 In step S601, the verification unit 330 determines whether or not the verification result of step S107 or S600 is a verification result of authenticity. If the verification result in step S107 or S600 is not genuine, the process proceeds to step S110. On the other hand, if the verification result in step S107 or S600 is a verification result that is genuine, the process proceeds to step S109.

また、上記実施形態では、システム安全性要求レベルを「高」、「中」、「低」の3段階としたが、ECUの特性や安全性要件などに合わせて、システム安全性要求レベルが更に細分化されてもよい。ISO26262では、ASILはA~Dの4段階と対象外とからなる5段階である。この5段階の何れであるかに応じて、共通ソフトウェア群210の検証結果を流用するか否かを決定してもよい。 Further, in the above embodiment, the system safety requirement level is set to three levels of "high", "medium", and "low", but the system safety requirement level is further increased according to the characteristics and safety requirements of the ECU. It may be subdivided. In ISO26262, ASIL has 4 stages from A to D and 5 stages consisting of non-target. Depending on which of these five stages, it may be determined whether or not to divert the verification result of the common software group 210.

また、上記実施形態では、安全性要求レベルが最上位のVMを起動するときにはVMソフトウェア群230と共通ソフトウェア群210との双方の真正性の検証を行う場合を例に説明したが、これに限定されない。安全性要求レベルが細分化されたとき、上位2レベルまでは、VMソフトウェア群230と共通ソフトウェア群210との双方の真正性の検証を行うようにしてもよい。 Further, in the above embodiment, the case where the authenticity of both the VM software group 230 and the common software group 210 is verified when the VM having the highest safety requirement level is activated has been described as an example, but the present invention is limited to this. Not done. When the safety requirement level is subdivided, the authenticity of both the VM software group 230 and the common software group 210 may be verified up to the upper two levels.

また、上記実施形態では、共通ソフトウェア群210を1つとしてあげたが、起動するVMの内容によっては、共通ソフトウェア群210が複数存在することも考えられる。この場合、図11に示すように、ROM20Bは、共通ソフトウェア群210AB及び共通ソフトウェア群210CDを記憶している。例えば、共通ソフトウェア群210ABは、マルチメディアVM110Aとボデー制御VM110Bとで共用され、共通ソフトウェア群210CDは、自動運転制御VM110Cと他のVM110とで共用される。この場合、VM起動順序リスト220には、各VM110について、当該VM110と関係する共通ソフトウェア群210の情報を更に規定しておく必要がある。また、VM構成部300は、どの共通ソフトウェア群210を、どのシステム安全性要求レベルのVM起動時に真正性検証を行ったかを記憶しておく必要がある。 Further, in the above embodiment, the common software group 210 is set as one, but it is possible that a plurality of common software groups 210 exist depending on the content of the VM to be activated. In this case, as shown in FIG. 11, the ROM 20B stores the common software group 210AB and the common software group 210CD. For example, the common software group 210AB is shared by the multimedia VM110A and the body control VM110B, and the common software group 210CD is shared by the automatic operation control VM110C and another VM110. In this case, it is necessary to further specify the information of the common software group 210 related to the VM 110 for each VM 110 in the VM activation order list 220. Further, the VM component 300 needs to store which common software group 210 has been subjected to authenticity verification at which system safety requirement level VM is started.

また、上記実施形態では、共通ソフトウェア群210の真正性の検証を行い、その後、VMソフトウェア群230の真正性の検証を行う場合を例に説明したが、これに限定されない。共通ソフトウェア群210の真正性の検証と、VMソフトウェア群230の真正性の検証との順序を入れ替えてもよい。この場合には、図12に示すように、ステップS103において、流用判断部320は、起動するVM110のシステム安全性要求レベルが「高」、「中」、及び「低」の何れかであるかを判定する。起動するVM110のシステム安全性要求レベルが「中」又は「高」である場合には、ステップS107へ進む。起動するVM110のシステム安全性要求レベルが「低」である場合には、ステップS109へ進む。 Further, in the above embodiment, the case where the authenticity of the common software group 210 is verified and then the authenticity of the VM software group 230 is verified has been described as an example, but the present invention is not limited to this. The order of the verification of the authenticity of the common software group 210 and the verification of the authenticity of the VM software group 230 may be changed. In this case, as shown in FIG. 12, in step S103, whether the system safety requirement level of the VM 110 to be activated by the diversion determination unit 320 is "high", "medium", or "low". Is determined. If the system safety requirement level of the VM110 to be activated is "medium" or "high", the process proceeds to step S107. If the system safety requirement level of the VM110 to be activated is "low", the process proceeds to step S109.

ステップS107において、検証部330は、セキュリティモジュール20Gを用いて、当該VM110のVMソフトウェア群230の真正性を検証する。 In step S107, the verification unit 330 verifies the authenticity of the VM software group 230 of the VM 110 by using the security module 20G.

ステップS108において、検証部330は、上記ステップS107の検証結果が、真正であるとの検証結果であるか否かを判定する。上記ステップS107の検証結果が、真正でないとの検証結果である場合には、ステップS110へ進む。一方、上記ステップS107の検証結果が、真正であるとの検証結果である場合には、ステップS104へ進む。 In step S108, the verification unit 330 determines whether or not the verification result of step S107 is a verification result of authenticity. If the verification result in step S107 is not genuine, the process proceeds to step S110. On the other hand, if the verification result in step S107 is a verification result indicating that it is genuine, the process proceeds to step S104.

ステップS104において、流用判断部320は、共通ソフトウェア群210について、他のVM110の検証において検証済みであるか否かを判定する。共通ソフトウェア群210について、他のVM110の検証において検証済みである場合には、流用判断部320は、共通ソフトウェア群210についての検証結果を流用すると判断し、ステップS109へ進む。共通ソフトウェア群210について、他のVM110の検証において検証されていない場合には、ステップS105へ進む。 In step S104, the diversion determination unit 320 determines whether or not the common software group 210 has been verified in the verification of the other VM 110. If the common software group 210 has been verified in the verification of another VM 110, the diversion determination unit 320 determines that the verification result of the common software group 210 will be diverted, and proceeds to step S109. If the common software group 210 has not been verified in the verification of another VM110, the process proceeds to step S105.

ステップS105において、検証部330は、セキュリティモジュール20Gを用いて、共通ソフトウェア群210の真正性を検証する。 In step S105, the verification unit 330 verifies the authenticity of the common software group 210 by using the security module 20G.

ステップS106において、検証部330は、上記ステップS105の検証結果が、真正であるとの検証結果であるか否かを判定する。上記ステップS105の検証結果が、真正でないとの検証結果である場合には、ステップS110へ進み、CPU20Aが、起動エラーを出力し、起動処理を終了する。一方、上記ステップS105の検証結果が、真正であるとの検証結果である場合には、ステップS109へ進む。 In step S106, the verification unit 330 determines whether or not the verification result of step S105 is a verification result of authenticity. If the verification result in step S105 is not genuine, the process proceeds to step S110, the CPU 20A outputs a start error, and ends the start process. On the other hand, if the verification result in step S105 is the verification result that it is genuine, the process proceeds to step S109.

また、上記実施形態では、各VM110に対して付与される指標として、安全性要求レベルを用いる場合を例に説明したが、これに限定されない。各VM110に対して付与される指標として、例えば、当該VM110のソフトウェアのセキュリティレベルを付与してもよい。この場合、ソフトウェアのセキュリティレベルが高い場合には、他のVM110の検証で得られた共通ソフトウェア群210の真正性の検証結果を流用すると判断し、一方、ソフトウェアのセキュリティレベルが低い場合には、他のVM110の検証で得られた共通ソフトウェア群210の真正性の検証結果を流用せずに、当該VM110のVMソフトウェア群230及び共通ソフトウェア群210の真正性を検証する。 Further, in the above embodiment, the case where the safety requirement level is used as an index given to each VM 110 has been described as an example, but the present invention is not limited to this. As an index given to each VM 110, for example, the security level of the software of the VM 110 may be given. In this case, if the software security level is high, it is determined that the authenticity verification result of the common software group 210 obtained in the verification of other VM110s is diverted, while if the software security level is low, it is determined to be diverted. The authenticity of the VM software group 230 and the common software group 210 of the VM 110 is verified without diverting the verification result of the authenticity of the common software group 210 obtained in the verification of the other VM 110.

また、上記実施形態では、各VM110のVMソフトウェア群230及び共通ソフトウェア群210の真正性を検証する場合を例に説明したが、これに限定されない。例えば、各VM110のVMソフトウェア群230及び共通ソフトウェア群210の発行者の妥当性を検証するようにしてもよい。 Further, in the above embodiment, the case of verifying the authenticity of the VM software group 230 and the common software group 210 of each VM 110 has been described as an example, but the present invention is not limited thereto. For example, the validity of the issuers of the VM software group 230 and the common software group 210 of each VM 110 may be verified.

また、上記実施形態では、VM起動順序リスト220を基にVM110を起動していく場合を例に説明したが、これに限定されない。制御プログラム200内でVM110の起動順序を固定的にしてもよい。この場合、起動処理内における、起動するVM110の判定が不要となる。あるいは、起動VM判断部310が、VM起動順序リスト220を用いずに、ストレージ20F又はROM20B内のVMソフトウェア群230を走査し、VM110の起動順序を決めるようにしてもよい。 Further, in the above embodiment, the case where the VM 110 is started based on the VM start order list 220 has been described as an example, but the present invention is not limited to this. The activation order of the VM 110 may be fixed in the control program 200. In this case, it is not necessary to determine the VM 110 to be activated in the activation process. Alternatively, the startup VM determination unit 310 may scan the VM software group 230 in the storage 20F or the ROM 20B without using the VM startup order list 220 to determine the startup order of the VM 110.

また、上記実施形態でCPU20Aがソフトウェア(プログラム)を読み込んで実行した処理は、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、各処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。 Further, the processing in which the CPU 20A reads and executes the software (program) in the above embodiment may be executed by various processors other than the CPU. In this case, the processor includes a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing an FPGA (Field-Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), and the like. An example is a dedicated electric circuit or the like, which is a processor having a circuit configuration designed exclusively for it. Further, each process may be executed by one of these various processors, or a combination of two or more processors of the same type or different types (for example, a plurality of FPGAs, and a combination of a CPU and an FPGA, etc.). ) May be executed. Further, the hardware-like structure of these various processors is, more specifically, an electric circuit in which circuit elements such as semiconductor elements are combined.

また、上記実施形態において、プログラムはコンピュータが読み取り可能な非一時的記録媒体に予め記憶(インストール)されている態様で説明した。例えば、ECU20において制御プログラム200は、ROM20Bに予め記憶されている。しかしこれに限らず、各プログラムは、HDD(Hard Disk Drive)、及びSSD等のストレージに記憶されていてもよい。また、各プログラムは、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的記録媒体に記録された形態で提供されてもよい。また、各プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。 Further, in the above embodiment, the program has been described in a manner in which the program is pre-stored (installed) in a non-temporary recording medium that can be read by a computer. For example, in the ECU 20, the control program 200 is stored in the ROM 20B in advance. However, the present invention is not limited to this, and each program may be stored in a storage such as an HDD (Hard Disk Drive) and an SSD. In addition, each program is recorded on a non-temporary recording medium such as a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versaille Disc Read Only Memory), and a USB (Universal Serial Bus) memory. May be provided. Further, each program may be downloaded from an external device via a network.

上記実施形態で説明した処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。 The processing flow described in the above embodiment is also an example, and unnecessary steps may be deleted, new steps may be added, or the processing order may be changed within a range that does not deviate from the gist.

10 車両の制御装置
12 車両
20 ECU
20B ROM(記憶部)
20F ストレージ(記憶部)
110 VM(Virtual Machine)
110A マルチメディアVM
110B ボデー制御VM
110C 自動運転制御VM
200 制御プログラム
210、210AB、210CD 共通ソフトウェア群(共通ソフトウェア)
220 起動順序リスト
230 VMソフトウェア群(VMソフトウェア)
230A マルチメディアVMソフトウェア群
230B ボデー制御VMソフトウェア群
230C 自動運転制御VMソフトウェア群
300 VM構成部
320 流用判断部
330 検証部
340 起動部
10 Vehicle control device 12 Vehicle 20 ECU
20B ROM (storage unit)
20F storage (storage unit)
110 VM (Virtual Machine)
110A multimedia VM
110B body control VM
110C automatic operation control VM
200 Control program 210, 210AB, 210CD Common software group (common software)
220 Boot order list 230 VM software group (VM software)
230A Multimedia VM software group 230B Body control VM software group 230C Automatic operation control VM software group 300 VM component unit 320 Diversion judgment unit 330 Verification unit 340 Startup unit

Claims (7)

車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部と、
各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証部と、
を備える車両の制御装置。
A storage unit that stores VM software, which is software of a plurality of VMs (Virtual Machines) that control devices mounted on a vehicle, and common software shared by two or more VMs.
When verifying the software of each of the VMs, a verification unit that diverts the verification results of the common software obtained in the verification of the software of the other VMs according to the index given in advance to the VM. ,
Vehicle control device.
各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用するか否かを決定する流用判断部を更に備え、
前記検証部は、
他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用すると決定した場合には、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用して、前記VMのソフトウェアを検証し、
他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用しないと決定した場合には、前記VMのVMソフトウェア及び前記共通ソフトウェアを検証
する請求項1記載の車両の制御装置。
When verifying the software of each VM, whether or not to divert the verification result of the common software obtained in the verification of other VM software according to the index given in advance to the VM. Further equipped with a diversion judgment unit to determine
The verification unit
If it is decided to divert the verification result of the common software obtained in the verification of the software of the other VM, the verification result of the common software obtained in the verification of the software of the other VM is diverted. Then, verify the VM software and
The vehicle control device according to claim 1, wherein when it is determined not to divert the verification result of the common software obtained in the verification of the other VM software, the VM software of the VM and the common software are verified. ..
前記検証部は、前記VMのソフトウェアの真正性を検証する請求項1又は2記載の車両の制御装置。 The vehicle control device according to claim 1 or 2, wherein the verification unit verifies the authenticity of the VM software. 前記検証部は、前記複数のVMのソフトウェアを起動するときに、各前記VMのソフトウェアを検証する請求項1~請求項3の何れか1項記載の車両の制御装置。 The vehicle control device according to any one of claims 1 to 3, wherein the verification unit verifies the software of each of the VMs when the software of the plurality of VMs is activated. 前記指標は、前記VMが制御する機器の機能安全に関する機能安全指標、又は前記VMのソフトウェアのセキュリティに関するセキュリティ指標である請求項1~請求項4の何れか1項記載の車両の制御装置。 The vehicle control device according to any one of claims 1 to 4, wherein the index is a functional safety index related to the functional safety of the device controlled by the VM, or a security index related to the security of the software of the VM. 車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部を含むコンピュータが、
各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証ステップ
を備える車両の制御方法。
A computer including a VM software that is software of a plurality of VMs (Virtual Machines) that control devices mounted on a vehicle, and a storage unit that stores common software shared by two or more VMs.
When verifying the software of each of the VMs, a verification step of diverting the verification result of the common software obtained in the verification of the software of the other VMs according to the index given in advance to the VM is performed. How to control the vehicle to be equipped.
車両に搭載された機器を制御する複数のVM(Virtual Machine)のソフトウェアであるVMソフトウェア、及び2以上の前記VMで共用される共通ソフトウェアを記憶する記憶部を含むコンピュータに、
各前記VMのソフトウェアを検証する際に、前記VMに対して予め付与された指標に応じて、他の前記VMのソフトウェアの検証で得られた、前記共通ソフトウェアの検証結果を流用する検証ステップ
を含む処理を実行させるための制御プログラム。
A computer including a VM software that is software of a plurality of VMs (Virtual Machines) that control devices mounted on a vehicle, and a storage unit that stores common software shared by two or more VMs.
When verifying the software of each of the VMs, a verification step of diverting the verification result of the common software obtained in the verification of the software of the other VMs according to the index given in advance to the VM is performed. A control program for executing the including processing.
JP2020203435A 2020-12-08 2020-12-08 Vehicle control device, vehicle control method, and control program Active JP7524750B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020203435A JP7524750B2 (en) 2020-12-08 2020-12-08 Vehicle control device, vehicle control method, and control program
US17/504,562 US12147827B2 (en) 2020-12-08 2021-10-19 Vehicle control device, vehicle control method, and recording medium recording control program
CN202111248519.8A CN114662081A (en) 2020-12-08 2021-10-26 Vehicle control device, control method, and recording medium on which control program is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020203435A JP7524750B2 (en) 2020-12-08 2020-12-08 Vehicle control device, vehicle control method, and control program

Publications (2)

Publication Number Publication Date
JP2022090870A true JP2022090870A (en) 2022-06-20
JP7524750B2 JP7524750B2 (en) 2024-07-30

Family

ID=81849037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020203435A Active JP7524750B2 (en) 2020-12-08 2020-12-08 Vehicle control device, vehicle control method, and control program

Country Status (3)

Country Link
US (1) US12147827B2 (en)
JP (1) JP7524750B2 (en)
CN (1) CN114662081A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031203A (en) * 2004-07-14 2006-02-02 Xanavi Informatics Corp In-vehicle information terminal
JP2006350489A (en) * 2005-06-14 2006-12-28 Renesas Technology Corp Program control method
US7263700B1 (en) * 2000-11-06 2007-08-28 International Business Machines Corporation Serially, reusable virtual machine
WO2010100769A1 (en) * 2009-03-06 2010-09-10 株式会社日立製作所 Security management device and method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040063935A (en) * 2001-11-22 2004-07-14 지멘스 악티엔게젤샤프트 Method for controlling a safety-critical railway operating process and device for carrying out said method
US7882198B2 (en) 2007-07-02 2011-02-01 Oracle America, Inc. Shared JAVA JAR files
US9130912B2 (en) * 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US9396000B2 (en) * 2010-06-25 2016-07-19 Intel Corporation Methods and systems to permit multiple virtual machines to separately configure and access a physical device
WO2016081867A1 (en) * 2014-11-20 2016-05-26 Interdigital Patent Holdings, Inc. Providing security to computing systems
US11177961B2 (en) * 2017-12-07 2021-11-16 Nec Corporation Method and system for securely sharing validation information using blockchain technology
CN109951424A (en) * 2017-12-20 2019-06-28 北京三星通信技术研究有限公司 Sharing method and corresponding equipment
US10776482B2 (en) * 2018-05-18 2020-09-15 International Business Machines Corporation Automated virtual machine integrity checks
KR102131982B1 (en) * 2018-05-31 2020-07-08 현대오트론 주식회사 Multi core system and software diagnostic system for vehicle and operating method thereof
US11481482B2 (en) * 2019-09-09 2022-10-25 Mcafee, Llc Securing an application framework from shared library sideload vulnerabilities
DE102020116714A1 (en) * 2020-06-25 2021-12-30 Audi Aktiengesellschaft Control unit for a vehicle, system, method and motor vehicle with such a control unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263700B1 (en) * 2000-11-06 2007-08-28 International Business Machines Corporation Serially, reusable virtual machine
JP2006031203A (en) * 2004-07-14 2006-02-02 Xanavi Informatics Corp In-vehicle information terminal
JP2006350489A (en) * 2005-06-14 2006-12-28 Renesas Technology Corp Program control method
WO2010100769A1 (en) * 2009-03-06 2010-09-10 株式会社日立製作所 Security management device and method

Also Published As

Publication number Publication date
JP7524750B2 (en) 2024-07-30
US20220179676A1 (en) 2022-06-09
US12147827B2 (en) 2024-11-19
CN114662081A (en) 2022-06-24

Similar Documents

Publication Publication Date Title
US10009350B2 (en) Hardware components configured for secure physical separation of communication networks in a vehicle and methods of use thereof
US9411688B1 (en) System and method for searching multiple boot devices for boot images
CN112528345B (en) Communication method, device, computer readable storage medium and chip
CN114817105B (en) Device enumeration method, device, computer device and storage medium
CN107949847B (en) Electronic control unit for vehicle
CN104247361A (en) Secure message filtering to vehicle electronic control units with secure provisioning of message filtering rules
JP7091486B2 (en) Electronic control device, security verification method for electronic control device
CN112236771B (en) Computing device and operating method for computing device
CN118228265A (en) Virtualization-oriented chip security starting method, system, equipment and medium
KR20230082388A (en) Apparatus for verifying bootloader of ecu and method thereof
CN114872716B (en) Vehicle-mounted information processing device, information processing method, and storage medium
CN116842516A (en) Active defense methods, devices, electronic equipment and storage media for vehicle-mounted systems
JP2022090870A (en) Vehicle control device, vehicle control method and control program
CN113935011A (en) Method for executing a secure boot sequence of a control device
CN116233092B (en) On-vehicle device, vehicle, control method, and non-transitory recording medium
CN119895420A (en) Method for verifying data in a computing unit
CN114489713A (en) Program processing method of domain controller
CN108804144B (en) Control method/system for starting operating system, storage medium and electronic equipment
JP7632319B2 (en) Vehicle, information processing method, and information processing program
CN117917641A (en) Information processing device, vehicle, information processing method, and recording medium having program recorded thereon
CN119227077A (en) Safe startup method, device, equipment and vehicle of cockpit domain controller system
CN120086832A (en) A startup firmware signature verification method, related equipment and computer-readable storage medium
CN117850917A (en) A method and device for secure factory startup deployment
WO2022168453A1 (en) Vehicle control system, method for controlling vehicle control system, and program
CN119953292A (en) Electronic device mounted on vehicle, method of operating the electronic device, and storage device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240701

R150 Certificate of patent or registration of utility model

Ref document number: 7524750

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150