JP2022074461A - 車載ecu、プログラム及びフェールセーフ方法 - Google Patents
車載ecu、プログラム及びフェールセーフ方法 Download PDFInfo
- Publication number
- JP2022074461A JP2022074461A JP2020184519A JP2020184519A JP2022074461A JP 2022074461 A JP2022074461 A JP 2022074461A JP 2020184519 A JP2020184519 A JP 2020184519A JP 2020184519 A JP2020184519 A JP 2020184519A JP 2022074461 A JP2022074461 A JP 2022074461A
- Authority
- JP
- Japan
- Prior art keywords
- application
- vehicle
- fail
- negative
- ecu
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012795 verification Methods 0.000 claims abstract description 189
- 230000008569 process Effects 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 description 40
- 230000006854 communication Effects 0.000 description 40
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000004913 activation Effects 0.000 description 6
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 238000005286 illumination Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric 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/02—Electric 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
Abstract
【課題】起動できなかったアプリケーションの代替を行うことができる車載ECU等を提供する。【解決手段】車載ECUは、車両に搭載される車載ECUであって、複数のアプリケーションを実行する制御部と、前記制御部が複数のアプリケーションを実行するにあたり、前記複数のアプリケーションそれぞれの検証を行う検証部とを備え、前記制御部は、前記検証部による検証が肯定的なアプリケーションを実行し、前記検証部による検証が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、前記フェールセーフ処理は、前記否定的なアプリケーションを特定し、特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む。【選択図】図1
Description
本発明は、車載ECU、プログラム及びフェールセーフ方法に関する。
車両には、エンジン制御等のパワー・トレーン系、エアコン制御等のボディ系等の車載機器を制御するためのECU(Electronic Control Unit)が搭載されている。ECUは、MPU等の演算処理部、RAM等の書換可能な不揮発性の記憶部、及び他のECUと通信するための通信部を含み、記憶部に記憶した制御プログラムを読み込んで実行することにより、車載機器の制御を行う。当該制御プログラムを実行するにあたり、ECUの起動時に制御プログラムの完全性を検証し、当該検証に成功した場合にECUの起動(ブート)を許可するセキュアブート方法が、知られている(例えば特許文献1参照)。
特許文献1は、制御プログラムの完全性の検証において、失敗回数が規定値を超えた場合は問題のある制御プログラム(ソフトウェア)を起動しないフェールセーフを行う。
しかしながら、特許文献1のECUは、セキュアブートの検証結果により起動できなかったアプリケーションの代替を行う点が考慮されていないという問題点がある。
本発明の目的は、起動できなかったアプリケーションの代替を行うことができる車載ECU等を提供する。
本開示の一態様に係る車載ECUは、車両に搭載される車載ECUであって、複数のアプリケーションを実行する制御部と、前記制御部が複数のアプリケーションを実行するにあたり、前記複数のアプリケーションそれぞれの検証を行う検証部とを備え、前記制御部は、前記検証部による検証が肯定的なアプリケーションを実行し、前記検証部による検証が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、前記フェールセーフ処理は、前記否定的なアプリケーションを特定し、特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む。
本開示の一態様によれば、起動できなかったアプリケーションの代替を行う車載ECU等を提供することができる。
[本発明の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
(1)本開示の一態様に係る車載ECUは、車両に搭載される車載ECUであって、複数のアプリケーションを実行する制御部と、前記制御部が複数のアプリケーションを実行するにあたり、前記複数のアプリケーションそれぞれの検証を行う検証部とを備え、前記制御部は、前記検証部による検証が肯定的なアプリケーションを実行し、前記検証部による検証が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、前記フェールセーフ処理は、前記否定的なアプリケーションを特定し、特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む。
本態様にあたっては、車載ECU(Electronic Control Unit)の制御部は、複数のアプリケーションに対する検証部の検証結果に基づき、複数のアプリケーションそれぞれの実行可否(起動判定)を行うものであり、当該車載ECUにおいては、セキュアブートが行われるものとなる。当該セキュアブートの一端を担う検証部により否定的な検証結果となったアプリケーションを、制御部は実行しないため、車載ECUにおいて実行されるアプリケーションの適正性(完全性)を担保することができる。更に、車載ECUの制御部は、否定的なアプリケーションに応じた代替信号を出力する処理を含むフェールセーフ処理を実行することにより、セキュアブートの検証結果により起動できなかったアプリケーションの代替を効率的に行うことができる。
(2)本開示の一態様に係る車載ECUは、前記フェールセーフ処理を実行するためのフェールセーフプログラムは、書換不可の記憶領域に記憶されている。
本態様にあたっては、車載ECUが備える記憶部において、フェールセーフ処理を実行するためのフェールセーフプログラムは、書換不可の記憶領域に記憶されているため、例えば、車両内外から当該フェールセーフプログラムへの改竄等の攻撃(アタック)に対する堅牢性を向上させることができる。
(3)本開示の一態様に係る車載ECUは、前記書換不可の記憶領域には、前記アプリケーションの組み合わせと、前記代替信号に関する情報とが関連付けられたパターン情報が記憶されており、前記制御部による前記フェールセーフ処理は、前記パターン情報を参照して、特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む。
本態様にあたっては、車載ECUの制御部は複数のアプリケーションを実行するところ、検証部の検証結果によって、単一のアプリケーションのみが否定的な検証結果となる場合もあり、又は複数のアプリケーションが否定的な検証結果となる場合もある。これに対し、車載ECUの記憶領域に記憶されているパターン情報は、当該複数のアプリケーションにおける各アプリケーションの組み合わせと、当該組み合わせに関連付けられた代替信号に関する情報とを含む。当該アプリケーションの組み合わせは、2つ以上のアプリケーションの組み合わせに限定されず、単一のアプリケーションについても含む。従って、車載ECUの制御部は、特定したアプリケーションが単一の場合のみならず、複数である場合であっても、パターン情報を参照することにより、当該特定した単数又は複数のアプリケーションの組み合わせに応じた代替信号に関する情報を効率的に取得し、当該情報に基づき代替信号を出力することができる。
(4)本開示の一態様に係る車載ECUは、前記制御部による代替信号を出力する処理は、実行された肯定的なアプリケーションに対し代替信号を出力する処理を含む。
本態様にあたっては、車載ECUの制御部は実行される複数のアプリケーションは、これらアプリケーション間にて、例えばプロセス間通信を行い協調動作又は依存動作を行う。これに対し、制御部による代替信号を出力する処理は、当該代替信号を自ECU以外の他の車載ECUに出力する処理のみならず、自ECU(制御部)にて実行されるアプリケーション(検証結果が肯定的なアプリケーション)に対しても代替信号を出力する処理を含む。従って、自ECU(車載ECU)において実行されるべき複数のアプリケーションにおいて、これらアプリケーション間にて動作処理の依存性がある場合であっても、制御部は、実行された肯定的なアプリケーションに対し代替信号を出力する。従って、当該車載ECUにおける複数のアプリケーションに対する全体的又は包括的なフェールセーフ処理を行うことができる。
(5)本開示の一態様に係る車載ECUは、前記制御部は、仮想化オペレーティングシステムによって複数の仮想環境を生成し、前記複数のアプリケーションそれぞれは、前記複数の仮想環境のうちのいずれかの仮想環境を動作環境とするものであり、前記検証部は、複数の仮想環境それぞれの検証を行い、前記制御部は、前記検証部による検証が肯定的な仮想環境を生成し、前記検証部による検証が否定的な仮想環境は生成せず、該否定的な仮想環境を動作環境とするアプリケーションを代替する前記フェールセーフ処理を実行する。
本態様にあたっては、車載ECUの制御部は、仮想化オペレーティングシステムによって複数の仮想環境を生成し、複数のアプリケーションそれぞれは、いずれかの仮想環境の上にて実行される。すなわち、複数のアプリケーションそれぞれは、CPU等の物理的なハードウェア環境にて動作するものでなく、仮想化オペレーティングシステムによって生成された仮想環境を動作環境として、実行される。これにより、単一の車載ECU(自ECU)において、生成した仮想環境と同数の仮想ECUを構成することができる。当該仮想環境は、アプリケーションを実行するためのプラットフォームとなるゲストOSを含むところ、検証部は当該仮想環境(ゲストOS)の検証を行い、制御部は、当該検証結果に基づき、肯定的な仮想環境は生成し、否定的な仮想環境は生成しない。従って、これら仮想環境(ゲストOS)それぞれに対する適正性(完全性)を担保することができる。否定的な仮想環境は生成されないため、当該否定的な仮想環境を動作環境とするアプリケーションも実行されないものとなるが、これに対し、制御部は、否定的な仮想環境を動作環境とするアプリケーションを代替するフェールセーフ処理を実行する。従って、仮想化オペレーティングシステムによって生成された仮想環境(仮想ECU)を、動作環境としてアプリケーションを実行するように構成された車載ECUにおいても、セキュアブートの検証結果により起動できなかったアプリケーション(生成されなかった仮想環境を動作環境とするアプリケーション)の代替を、効率的に行うことができる。
(6)本開示の一態様に係る車載ECUは、前記フェールセーフ処理を実行するためのフェールセーフプログラムが記憶される書換不可の記憶領域には、前記仮想環境と、前記仮想環境を動作環境とする一つ以上のアプリケーションとが関連付けられた動作環境情報が記憶されており、前記制御部による前記フェールセーフ処理は、前記動作環境情報を参照して、前記否定的な仮想環境を動作環境とするアプリケーションを特定する処理を含む。
本態様にあたっては、車載ECUの制御部は複数の仮想環境を生成し、生成されたそれぞれの仮想環境においては、単一又は複数のアプリケーションが実行されるところ、書換不可の記憶領域には、仮想環境と、仮想環境を動作環境とする一つ以上のアプリケーションとが関連付けられた動作環境情報が記憶されている。従って、車載ECUの制御部は、当該動作環境情報を参照することにより、否定的な検証結果のため生成しなかった仮想環境を動作環境とするアプリケーションを特定し、例えばパターン情報を参照することにより、特定したアプリケーションに応じた代替信号を出力する処理を効率的に行うことができる。
(7)本開示の一態様に係るプログラムは、車両に搭載され、複数のアプリケーションを実行するコンピュータに、前記複数のアプリケーションそれぞれの検証を行い、前記検証の結果が肯定的なアプリケーションを実行し、前記検証の結果が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、前記フェールセーフ処理は、前記否定的なアプリケーションを特定し、特定した前記否定的なアプリケーションに応じた代替信号の出力を含む処理を実行させる。
本態様にあたっては、コンピュータを、起動できなかったアプリケーションの代替を行うことができる車載ECUとして機能させることができる。
(8)本開示の一態様に係るフェールセーフ方法は、車両に搭載され、複数のアプリケーションを実行するコンピュータに、前記複数のアプリケーションそれぞれの検証を行い、前記検証の結果が肯定的なアプリケーションを実行し、前記検証の結果が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、前記フェールセーフ処理は、前記否定的なアプリケーションを特定し、特定した前記否定的なアプリケーションに応じた代替信号の出力を含む処理を実行させる。
本態様にあたっては、コンピュータを、起動できなかったアプリケーションの代替を行うことができる車載ECUとして機能させるフェールセーフ方法を提供することができる。
[本開示の実施形態の詳細]
本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載ECU2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載ECU2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
(実施形態1)
以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載ECU2を含む車載システムの構成を例示する模式図である。図2は、車載ECU2の物理構成を例示するブロック図である。車載システムSは、車両Cに搭載される複数の車載ECU2及び、当該車載ECU2に接続される車載装置3を含む。
以下、実施の形態について図面に基づいて説明する。図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)又はハードディスク等による記憶部を備える。統合的な車載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、記憶部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に含まれ、RAM等により構成される書込み可能な記憶領域に記憶されているものであってもよい。記憶部21は、ROM等により構成される書込み不可な記憶領域を含み、当該書込み不可な記憶領域には、後述するフェールセーフプログラム、代替信号テーブル211等のフェールセーフ処理に必要なプログラム及びデータが記憶されている。
入出力I/F22は、車外通信装置1の入出力I/F22と同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F22及びシリアルケーブル等のワイヤーハーネスを介して、車載ECU2は、車外通信装置1と通信可能に接続される。
車内通信部23は、例えばCAN(Controller Area Network)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイスであり、制御部20は、車内通信部23を介して車載ネットワーク4に接続されている他の車載ECU2と相互に通信する。
検証部24は、例えばHSM(Hardware Security Module)であり、CPU等で構成される制御部20とは別デバイス又は別モジュールとして構成されている。HSMにて構成される検証部24は、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理の一端を担うものであり、記憶部21に記憶されている複数のアプリケーション等、車載ECU2の起動において実行されるソフトウェアの適正性(完全性)又は健全性を検証する機能モジュールである。検証部24は、例えば、暗号処理用のプロセッサを含み、例えばCMAC(Cipher-based Message Authentication Code)等の暗号アルゴリズムを用いて、検証対象となるアプリケーション等のソフトウェアの適正性(完全性)を検証する。検証部24は、車載ECU2の起動時に行われるセキュアブート処理(セキュアブートシーケンス)において、検証対象となる複数のアプリケーションそれぞれの適正性(完全性)を検証し、アプリケーションそれぞれに対する検証結果を出力する。当該検証結果は、アプリケーションが正当である旨を示す肯定的検証結果、又はアプリケーションが例えば改竄等され不正である旨を示す否定的検証結果を含む。
図3は、車載ECU2の制御部20に含まれる機能部を例示する機能ブロック図である。車載ECU2の制御部20は、記憶部21に記憶されている制御プログラムを実行することにより、取得部201、アプリ起動判定部202、フェールセーフ部203、及び出力部204として機能し、これら機能部が連関することにより、フェールセーフ処理が行われる。すなわち、制御部20は、セキュアブート処理(セキュアブートシーケンス)にてアプリケーションの検証を行う検証部24と協働することにより、当該フェールセーフ処理を行うものとなる。
フェールセーフ処理を制御部20に実行させるためのフェールセーフプログラムは、記憶部21における(含まれる)書換不可の記憶領域に記憶されているものであってもよい。書換不可の記憶領域にフェールセーフプログラムを記憶することにより、例えば、車両C内外から当該フェールセーフプログラムへの改竄等の攻撃(アタック)に対する堅牢性を向上させることができる。
フェールセーフ処理を行う車載ECU2の制御部20(各機能部)は、検証部24から取得した検証結果に基づき、適正性(完全性)が検証されたアプリケーションを実行する。制御部20(は、検適正性(完全性)が検証されなかったアプリケーションについては実行することなく、当該実行しなかったアプリケーションを代替するための代替信号(フェールセーフ値)を出力する。
取得部201は、セキュアブート処理の一環として行われた検証部24による検証の結果(検証結果)を、当該検証部24から取得する。検証部24から出力される検証結果には、アプリケーションそれぞれに対する検証結果が肯定的な結果であるか、又は否定的な結果であるかが、含まれている。肯定的な結果である場合、当該肯定的なアプリケーションに対する改竄等の不正処理は行われおらず、当該アプリケーションの適正性(完全性)が保証されるものとなる。否定的な結果である場合、当該否定的なアプリケーションに対し改竄等の不正処理が行われた蓋然性があり、当該アプリケーションの適正性(完全性)が否定されるものとなる。取得部201は、取得した検証結果を、アプリ起動判定部202及びフェールセーフ部203に出力する。
アプリ起動判定部202は、検証結果に基づき、個々のアプリケーションの実行(起動)の可否を判定し、実行が可能(肯定的な検証結果)であるアプリケーションを実行する。当該アプリケーションを実行することにより、アプリケーションに対応したプロセス又はスレッドが生成される。アプリ起動判定部202は、肯定的なアプリケーションは実行(起動)し、否定的なアプリケーションは実行(起動)しない。実行されるアプリケーションの適正性(完全性)は保証されているため、複数のアプリケーションが実行される車載ECU2において、当該車載ECU2の健全性を担保することができる。
フェールセーフ部203は、検証結果に基づき、検証結果が否定的なアプリケーションを特定する。検証部24から出力される検証結果には、複数のアプリケーションそれぞれに対する肯定的検証結果又は否定的検証結果が含まれている。又は、当該検証結果には、肯定的な検証結果のアプリケーションに関する情報のみが含まれる場合であっても、フェールセーフ部203は、記憶部21に記憶されている複数のアプリケーションとの対比(差分)を行うことにより、否定的な検証結果のアプリケーションを特定することができる。否定的なアプリケーションの特定においては、否定的なアプリケーションが皆無な場合、否定的なアプリケーションが一つである場合、又は否定的なアプリケーションが複数である場合に大別される。これら各場合において、当該否定的なアプリケーションの組み合わせが、特定されるものとなる。すなわち、当該否定的なアプリケーションの組み合わせは、2つ以上のアプリケーションの組み合わせに限定されず、単一のアプリケーション、又は否定的なアプリケーションが無い旨についても、含まれる。
フェールセーフ部203は、特定した否定的なアプリケーションの組み合わせに基づき、例えば、記憶部21に記憶されているパターン情報を参照し、実行しなかった当該否定的なアプリケーションを代替するための代替信号(フェールセーフ値)を生成する。パターン情報は、例えばテーブル形式のデータ(代替信号テーブル211)として、フェールセーフプログラムと同様に記憶部21に含まれる書換不可の記憶領域に記憶されているものであってもよい。
図4は、代替信号テーブル211(パターン情報)を例示する説明図である。代替信号テーブル211は、管理項目として、車載ECU2の制御部20が実行するアプリケーションそれぞれの名称の項目、及び代替信号のバターンの項目を含む。車載ECU2の制御部20が実行するアプリケーションそれぞれの名称の項目に対し、個々のアプリケーションが、肯定的な検証結果(〇にて図示)であるか、否定的な検証結果(×にて図示)であるかを示す値が格納される。代替信号テーブル211には、全アプリケーションが肯定的(〇)又は否定的(×)である場合における、全ての組み合わせパターン(全網羅パターン)が含まれている。当該個々の組み合わせが、検証結果が否定的なアプリケーションの組み合わせそれぞれに相当する。当該組み合わせは、2つ以上のアプリケーションの組み合わせに限定されず、単一のアプリケーションについても含む。
代替信号のバターンの項目には、当該組み合わせ(否定的なアプリケーションの組み合わせ)に対応する代替信号パターンが、格納されている。代替信号パターンは、例えば、予め定義されている値(フェールセーフ値)によって、示されるものであってもよい。
フェールセーフ部203は、検証結果に基づき特定した否定的なアプリケーションに基づき当該否定的なアプリケーションを特定し、パターン情報(代替信号テーブル211)を参照することにより、特定したアプリケーションの組み合わせに応じた代替信号パターン(フェールセーフ値)を導出(抽出)する。
フェールセーフ部203は、導出した代替信号パターン(フェールセーフ値)に基づき、代替信号を生成し、出力部204に出力する。フェールセーフ部203は、代替信号パターン(フェールセーフ値)に基づき代替信号を生成するにあたり、代替対象となるアプリケーションが正常動作していた際に出力したデータに基づき、当該代替信号を生成するものであってもよい。又は、代替対象となるアプリケーションの機能仕様等に基づき予め定められた信号を、代替信号として生成するものであってもよい。又は、フェールセーフ部203は、導出した代替信号パターン(フェールセーフ値)を、車外通信装置1を介して外部サーバ100に送信し、当該代替信号パターン(フェールセーフ値)に基づき外部サーバ100が生成した代替信号を取得することにより、当該代替信号として生成するものであってもよい。
出力部204は、フェールセーフ部203が生成した代替信号を、車内通信部23を介して他の車載ECU2に出力する。又は、出力部204は、フェールセーフ部203が生成した代替信号を、自ECUにて実行されたアプリケーション(実行中のアプリケーション)に対し、例えばプロセス間通信を行うことにより、当該アプリケーションのプロセスに出力(送信)するものであってもよい。
出力部204から出力(送信)された代替信号を取得(受信)した他の車載ECU2、又は自ECUにて実行中のアプリケーションは、当該代替信号に基づき、所定の処理を行う。これにより、セキュアブートの検証結果により起動できなかったアプリケーションの代替を効率的に行うことができる。当該所定の処理は、例えば、機能を一部限定した縮退運転を行う処理、又は車両Cを適切に停止状態に遷移させる処理を含むものであってもよい。
本実施形態において、取得部201、アプリ起動判定部202フェールセーフ部203、及び出力部204は、車載ECU2の制御部20における機能部として説明したが、これに限定されない。これら機能部における一部の機能部、又は単一の機能部における処理の一部は、車載ECU2と通信可能に接続される外部サーバ100等のクラウドサーバ、又は、制御部20とは別体で構成される検証部24が担うものであってもよい。制御部20は、これら外部サーバ100又は検証部24と協働して、当該機能部による一連の処理を行うものであってもよい。
図5は、車載ECU2の制御部20の処理を例示するフローチャートである。車載ECU2の制御部20は、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。
セキュアブート処理において最初に行われるのは、検証部24によるアプリケーションそれぞれに対する検証である。当該検証部24は、例えばHSM(Hardware Security Module)であり、CPU等で構成される制御部20とは別デバイス又は別モジュールとして構成されている。車載ECU2の制御部20による一連の処理は、検証部24によるアプリケーションそれぞれに対する検証の処理後に行われる。
車載ECU2の制御部20は、検証部24から検証結果を取得する(S101)。検証部24から出力される検証結果には、アプリケーションそれぞれに対する検証結果が肯定的な結果であるか、又は否定的な結果であるかが、含まれている。肯定的な結果である場合、肯定的なアプリケーションに対する改竄等の不正処理は行われおらず、当該アプリケーションの適正性(完全性)が保証されるものとなる。否定的な結果である場合、否定的なアプリケーションに対し改竄等の不正処理が行われた蓋然性があり、当該アプリケーションの適正性(完全性)が否定されるものとなる。車載ECU2の制御部20は、検証結果を参照することにより、各アプリケーションの検証結果が肯定的であるか否定的であるかを把握することができる。
車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のアプリケーションを実行(起動)する(S102)。車載ECU2の制御部20は、検証結果に基づき、肯定的な検証結果のアプリケーションを実行可能なアプリケーションとして特定(判定)し、当該アプリケーションを実行する。アプリケーションを実行することにより、当該アプリケーションに対応したプロセス又はスレッドが生成される。
車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のアプリケーションを特定する(S103)。車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のアプリケーションを実行不可なアプリケーションとして特定(判定)し、当該アプリケーションは実行しない。
車載ECU2の制御部20は、否定的な検証結果のアプリケーションに対応する代替信号を生成する(S104)。車載ECU2の制御部20は、例えば、記憶部21に記憶されている代替信号テーブル211を参照して、特定したアプリケーションの組み合わせに対応する代替信号パターン(フェールセーフ値)を導出する。車載ECU2の制御部20は、導出した代替信号パターン(フェールセーフ値)に基づき、代替信号を生成する。
車載ECU2の制御部20は、生成した代替信号を出力する(S105)。車載ECU2の制御部20は、生成した代替信号を、他の車載ECU2、又は自ECUにて実行中のアプリケーションに出力(送信)する。代替信号を取得(受信)した他の車載ECU2、又は自ECUにて実行中のアプリケーションは、当該代替信号に基づき、縮退運転を行う処理、又は車両Cを適切に停止状態に遷移させる処理等、所定の処理を行うものであってもよい。
本実施形態によれば、セキュアブートの一端を担う検証部24により否定的な検証結果となったアプリケーションは、車載ECU2の制御部20によって実行(起動)されないため、車載ECU2としての健全性を担保することができる。更に、車載ECU2の制御部20は、否定的なアプリケーションに応じた代替信号を出力する処理を含むフェールセーフ処理を実行することにより、セキュアブートの検証結果により実行(起動)できなかったアプリケーションがある場合であっても、当該実行されなかったアプリケーションの代替を効率的に行うことができる。
(実施形態2)
図6は、実施形態2(仮想環境)に係る車載ECU2の論理構成を例示するブロック図である。実施形態2の車載ECU2は、アプリケーションを仮想環境上で実行する点で、実施形態1と異なる。実施形態2の車載ECU2は、実施形態1の車載ECU2と同様に、制御部20、記憶部21、入出力I/F22、車内通信部23及び検証部24を含む。すなわち、実施形態1の車載ECU2と実施形態2の車載ECU2のハードウェア構成は、同様の構成である。本実施形態における図示にて、実施形態2の車載ECU2の論理構成を例示するものであり、制御部20等によるハードウェア層(物理基盤)を最下層とし、仮想環境にて実行されるアプリケーション、フェールセーフプログラム、及び仮想環境管理プログラム等によるソフトウェア層を最上層とした階層構造を例示するブロック図である。
図6は、実施形態2(仮想環境)に係る車載ECU2の論理構成を例示するブロック図である。実施形態2の車載ECU2は、アプリケーションを仮想環境上で実行する点で、実施形態1と異なる。実施形態2の車載ECU2は、実施形態1の車載ECU2と同様に、制御部20、記憶部21、入出力I/F22、車内通信部23及び検証部24を含む。すなわち、実施形態1の車載ECU2と実施形態2の車載ECU2のハードウェア構成は、同様の構成である。本実施形態における図示にて、実施形態2の車載ECU2の論理構成を例示するものであり、制御部20等によるハードウェア層(物理基盤)を最下層とし、仮想環境にて実行されるアプリケーション、フェールセーフプログラム、及び仮想環境管理プログラム等によるソフトウェア層を最上層とした階層構造を例示するブロック図である。
車載ECU2の記憶部21には、例えば、Hypervisor又はVMware等の仮想オペレーティングシステムが記憶されており、車載ECU2の制御部20は、仮想オペレーティングシステムを用いて起動することにより、仮想オペレーティングシステム上にて複数の仮想環境を構築することができる。仮想化の方式は、本実施形態の図示のように仮想オペレーティングシステムによって直接的に制御部20等のハードウェアリソースにアクセスするハイパーバイザー方式、又は仮想オペレーティングシステムとハードウェアリソースとの間にLinux(登録商標)等のオペレーティングシステムが介在するホストOS方式であってもよい。
仮想オペレーティングシステムを用いて起動した車載ECU2は、仮想オペレーティングシステムの機能により、複数の仮想環境を構築することができ、複数の仮想環境には、車載ECU2が備える制御部20等のハードウェアリソースが割り当てられる。これらハードウェアリソースが割り当てられた仮想環境夫々は、仮想的な制御部20(仮想制御部)、記憶部21(仮想記憶部)及び車内通信部23(仮想車内通信部)を備えるものとなり、仮想ECU2051として機能する。制御部20とは別個のデバイである検証部24は、仮想オペレーティングシステムによる仮想化の対象外となり、当該検証部24は、いずれかの仮想ECU2051、又は個々の仮想ECU2051と通信するものとなる。
仮想ECU2051夫々の仮想記憶部夫々には、例えばUbuntu(登録商標)等のゲストOS(Operation System)が記憶され、仮想ECU2051夫々はゲストOSを起動し、当該ゲストOSの上でアプリケーションを実行する。当該ゲストOSは、個々の仮想ECU2051に応じて、異なる種類のOSであってもよい。上述のごとく仮想記憶部の実体は、仮想ECU2051夫々割り当てられた記憶部21の記憶領域であるため、ゲストOSも仮想オペレーティングシステムと同様に記憶部21に記憶されていることは、言うまでもない。
仮想オペレーティングシステムを用いて起動した車載ECU2の制御部20は、構築したいずれかの仮想環境(仮想ECU2051)のうちの一つの仮想ECU2051にて、全ての仮想環境を管理するプログラム(仮想環境管理プログラム)を実行する。すなわち、仮想環境管理プログラムを実行する仮想ECU2051は、仮想オペレーティングシステムのコントロールパネルとして機能する。フェールセーフ処理を実行させるためのフェールセーフプログラムは、当該コントロールパネルとして機能する仮想ECU2051(仮想環境)にて実行されるものであってもよい。当該フェールセーフプログラムを実行する仮想ECU2051は、検証部24と通信し、セキュアブート処理にて検証部24が行った検証結果を、当該検証部24より取得する。
図7は、車載ECU2の制御部20に含まれる機能部を例示する機能ブロック図である。車載ECU2の制御部20は、記憶部21に記憶されている制御プログラムを実行することにより、実施形態1と同様に取得部201、アプリ起動判定部202、フェールセーフ部203、及び出力部204として機能し、更に仮想環境生成判定部205として機能し、フェールセーフ処理を行う。本実施形態における図示において、フェールセーフ処理を行うためのフェールセーフプログラムは、例えば、仮想オペレーティングシステムのコントロールパネルとして機能する仮想ECU2051(仮想環境)の制御部20(仮想制御部)、記憶部21(仮想記憶部)及び車内通信部23(仮想車内通信部)を用いて、実行されるものとなる。すなわち、本実施形態において図示される取得部201等の各機能部は、仮想ECU2051(仮想環境)の制御部20(仮想制御部)がフェールセーフプログラムを実行することにより、構成されるものとなる。
実施形態2の検証部24は、実施形態1の検証部24と同様にアプリケーションそれぞれに対する検証を行うと共に、仮想環境それぞれを生成するにあたり起動されるゲストOSそれぞれに対する検証を行い、当該検証の結果(検証結果)を取得部201に出力する。従って、当該検証結果には、アプリケーションそれぞれの検証結果(肯定的又は否定的)、及びゲストOSそれぞれの検証結果(肯定的又は否定的)が、含まれる。
取得部201は、検証部24から取得した検証結果を、仮想環境生成判定部205、アプリ起動判定部202、及びフェールセーフ部203に出力する。
仮想環境生成判定部205は、検証結果に基づき、肯定的な検証結果のゲストOSは起動して当該肯定的なゲストOSによる仮想環境を生成し、否定的な検証結果のゲストOSは起動せず当該否定的なゲストOSによる仮想環境を生成しない。従って、これら仮想環境(ゲストOS)それぞれに対する適正性(完全性)を担保することができる。
アプリ起動判定部202は、検証結果に基づき、肯定的な検証結果のゲストOSによる仮想環境を動作環境とし、かつ肯定的な検証結果のアプリケーションを実行(起動)する。否定的な仮想環境は生成されないため、当該否定的な仮想環境を動作環境とするアプリケーションも実行されないものとなる。すなわち、アプリケーション自体の検証結果は肯定的であっても、当該アプリケーションの動作環境となる仮想環境のゲストOSが否定的な検証結果である場合は、当該肯定的アプリケーションは、実行されないものとなる。
アプリ起動判定部202は、当該否定的な仮想環境を動作環境とするアプリケーションを特定するにあたり、仮想環境(ゲストOS)と、仮想環境を動作環境とする一つ以上のアプリケーションとが関連付けられた動作環境情報を参照して、当該アプリケーションを特定するものであってもよい。当該動作環境情報は、例えばテーブル形式のデータ(動作環境テーブル212)として、代替信号テーブル211と同様に記憶部21に含まれる書換不可の記憶領域に記憶されているものであってもよい。
図8は、動作環境テーブル212(動作環境情報)を例示する説明図である。動作環境テーブル212は、管理項目として、アプリケーション名称の項目、及び仮想環境(ゲストOS)を含む。アプリケーション名称の項目には、車載ECU2にて実行される複数のアプリケーションの名称が格納される。仮想環境(ゲストOS)の項目には、対応するアプリケーション(同じレコードに格納されるアプリケーション)の動作環境となる仮想環境(ゲストOS)の名称が格納される。
アプリ起動判定部202は、動作環境テーブル212を参照することにより、仮想環境(ゲストOS)と、当該仮想環境を動作環境とするアプリケーションとの関連性を取得することができる。アプリ起動判定部202は、検証結果に基づき、肯定的な検証結果のゲストOSを特定し、動作環境テーブル212を参照することにより、当該特定したゲストOSの仮想環境を動作環境とするアプリケーションを特定する。特定されたアプリケーションにおいて、更に肯定的な検証結果のアプリケーションを、実行可能なアプリケーションとして特定する。アプリ起動判定部202は、特定した実行可能なアプリケーションを、これらアプリケーションの動作環境となる仮想環境(ゲストOS)にて実行する。
フェールセーフ部203は、実行不可なアプリケーションを特定し、当該特定した実行不可なアプリケーションに対応する代替信号を生成する。フェールセーフ部203は、検証結果に基づき否定的な検証結果のゲストOSを特定し、動作環境テーブル212を参照することにより、当該否定的な検証結果のゲストOSの仮想環境を動作環境とするアプリケーションを特定する。フェールセーフ部203は、特定したアプリケーション(否定的なゲストOSの仮想環境を動作環境とするアプリケーション)と、検証結果に含まれる否定的な検証結果のアプリケーションに基づき、実施形態1と同様に実行不可なアプリケーションの組み合わせを特定する。
フェールセーフ部203は、実施形態1と同様に代替信号テーブル211を参照して、実行不可なアプリケーションの組み合わせに対応する代替信号パターン(フェールセーフ値)を導出する。フェールセーフ部203は、実施形態1と同様に導出した代替信号パターン(フェールセーフ値)に基づき、代替信号を生成し、出力部204に出力する。
出力部204は、実施形態1と同様にフェールセーフ部203が生成した代替信号を、他の車載ECU2、又は自ECUにて実行中のアプリケーションに出力(送信)する。
図9は、車載ECU2の制御部20の処理を例示するフローチャートである。車載ECU2の制御部20は、例えば、車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり、車載ECU2(自ECU)が起動(ブート)される際に行われるセキュアブート処理(セキュアブートシーケンス)に基づき、以下の処理を行う。当該処理(フェールセーフ処理)を実行させるためのフェールセーフプログラムが、仮想オペレーティングシステムのコントロールパネルとして機能する仮想ECU2051(仮想環境)にて実行される場合、制御部20は、当該仮想ECU2051の制御部20(仮想制御部)に相当する。
実施形態2の検証部24は、アプリケーションのみならず、仮想環境を生成するにあたり起動されるゲストOSについても検証する。車載ECU2の制御部20による一連の処理は、検証部24によるゲストOS及びアプリケーションそれぞれに対する検証の処理後に行われる。
車載ECU2の制御部20は、検証部24から検証結果を取得する(S201)。車載ECU2の制御部20は、実施形態1のS101と同様にS201の処理を行う。検証部24から出力される検証結果は、アプリケーションそれぞれの検証結果(肯定的又は否定的)、及びゲストOSそれぞれの検証結果(肯定的又は否定的)が含まれており、車載ECU2の制御部20は、アプリケーション及びゲストOSの検証結果を取得することができる。
車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のゲストOSを起動して仮想環境を生成する(S202)。車載ECU2の制御部20は、検証結果に基づき、肯定的な検証結果のゲストOSは起動し、当該肯定的なゲストOSによる仮想環境を生成する。車載ECU2の制御部20は、否定的な検証結果のゲストOSは起動せず、当該否定的なゲストOSによる仮想環境を生成しない。
車載ECU2の制御部20は、取得した検証結果に基づき、肯定的な検証結果のゲストOSによる仮想環境を動作環境とし、肯定的な検証結果のアプリケーションを実行(起動)する(S203)。車載ECU2の制御部20は、検証結果に基づき肯定的な検証結果のゲストOSを特定し、動作環境テーブル212を参照することにより、当該特定したゲストOSの仮想環境を動作環境とするアプリケーションを特定する。制御部20は、更に、特定されたアプリケーションにおいて肯定的な検証結果のアプリケーションを、実行可能なアプリケーションとして特定する。すなわち、肯定的な検証結果のゲストOSによる仮想環境を動作環境するアプリケーションであって、更に肯定的な検証結果のアプリケーションが、実行可能なアプリケーションとして特定される。車載ECU2の制御部20は、当該特定したアプリケーションを、対応するそれぞれの仮想環境にて実行させる。
車載ECU2の制御部20は、取得した検証結果に基づき、否定的な検証結果のゲストOSを特定する(S204)。検証結果には、ゲストOSそれぞれの検証結果が含まれており、車載ECU2の制御部20は、取得した検証結果に基づき否定的な検証結果のゲストOSを特定する。
車載ECU2の制御部20は、取得した検証結果及び特定した否定的な検証結果のゲストOSに基づき、実行不可なアプリケーションを特定する(S205)。実行不可なアプリケーションは、否定的な検証結果のゲストOSによる仮想環境を動作環境とするアプリケーション、及び否定的な検証結果のアプリケーションである。車載ECU2の制御部20は、例えば、記憶部21に記憶されている動作環境テーブル212を参照し、否定的な検証結果のゲストOSによる仮想環境を動作環境とする単一又は複数のアプリケーションを特定する。車載ECU2の制御部20は、動作環境テーブル212を参照して特定したアプリケーション(否定的な検証結果のゲストOSによる仮想環境を動作環境とするアプリケーション)、及び検証結果に含まれる否定的な検証結果のアプリケーションに基づき、実施形態1と同様に実行不可なアプリケーションの組み合わせを特定する。
車載ECU2の制御部20は、実行不可なアプリケーションに対応する代替信号を生成する(S206)。車載ECU2の制御部20は、実施形態1の処理S104と同様に代替信号テーブル211を参照して、実行不可なアプリケーションの組み合わせに対応する代替信号パターン(フェールセーフ値)を導出する。
車載ECU2の制御部20は、生成した代替信号を出力する(S207)。車載ECU2の制御部20は、実施形態1の処理S105と同様に生成した代替信号を、他の車載ECU2、又は自ECUにて実行中のアプリケーションに出力(送信)する。
本実施形態においては、否定的な検証結果となった仮想OSによる仮想環境は生成されないため、当該否定的な仮想環境を動作環境とするアプリケーションも実行されないものとなる。これに対し、制御部20は、否定的な仮想環境を動作環境とするアプリケーションを代替する代替信号を生成及び出力するフェールセーフ処理を実行する。従って、仮想化オペレーティングシステムによって生成された仮想環境(仮想ECU2051)を、動作環境としてアプリケーションを実行するように構成された車載ECU2においても、セキュアブートの検証結果により起動できなかったアプリケーション(生成されなかった仮想環境を動作環境とするアプリケーション)の代替を、効率的に行うことができる。
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
C 車両
S 車載システム
100 外部サーバ
1 車外通信装置
11 アンテナ
2 車載ECU
20 制御部
201 取得部
202 アプリ起動判定部
203 フェールセーフ部
204 出力部
205 仮想環境生成判定部
2051 仮想ECU
21 記憶部
211 代替信号テーブル
212 動作環境テーブル
22 入出力I/F
23 車内通信部
24 検証部
3 車載装置
30 アクチュエータ(ACT)
31 センサ
4 車載ネットワーク
S 車載システム
100 外部サーバ
1 車外通信装置
11 アンテナ
2 車載ECU
20 制御部
201 取得部
202 アプリ起動判定部
203 フェールセーフ部
204 出力部
205 仮想環境生成判定部
2051 仮想ECU
21 記憶部
211 代替信号テーブル
212 動作環境テーブル
22 入出力I/F
23 車内通信部
24 検証部
3 車載装置
30 アクチュエータ(ACT)
31 センサ
4 車載ネットワーク
Claims (8)
- 車両に搭載される車載ECUであって、
複数のアプリケーションを実行する制御部と、
前記制御部が複数のアプリケーションを実行するにあたり、前記複数のアプリケーションそれぞれの検証を行う検証部とを備え、
前記制御部は、
前記検証部による検証が肯定的なアプリケーションを実行し、
前記検証部による検証が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、
前記フェールセーフ処理は、
前記否定的なアプリケーションを特定し、
特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む
車載ECU。 - 前記フェールセーフ処理を実行するためのフェールセーフプログラムは、書換不可の記憶領域に記憶されている
請求項1に記載の車載ECU。 - 前記書換不可の記憶領域には、前記アプリケーションの組み合わせと、前記代替信号に関する情報とが関連付けられたパターン情報が記憶されており、
前記制御部による前記フェールセーフ処理は、前記パターン情報を参照して、特定した前記否定的なアプリケーションに応じた代替信号を出力する処理を含む
請求項2に記載の車載ECU。 - 前記制御部による代替信号を出力する処理は、実行された肯定的なアプリケーションに対し代替信号を出力する処理を含む
請求項1から請求項3のいずれか1項に記載の車載ECU。 - 前記制御部は、仮想化オペレーティングシステムによって複数の仮想環境を生成し、
前記複数のアプリケーションそれぞれは、前記複数の仮想環境のうちのいずれかの仮想環境を動作環境とするものであり、
前記検証部は、複数の仮想環境それぞれの検証を行い、
前記制御部は、
前記検証部による検証が肯定的な仮想環境を生成し、
前記検証部による検証が否定的な仮想環境は生成せず、該否定的な仮想環境を動作環境とするアプリケーションを代替する前記フェールセーフ処理を実行する
請求項1から請求項4のいずれか1項に記載の車載ECU。 - 前記フェールセーフ処理を実行するためのフェールセーフプログラムが記憶される書換不可の記憶領域には、前記仮想環境と、前記仮想環境を動作環境とする一つ以上のアプリケーションとが関連付けられた動作環境情報が記憶されており、
前記制御部による前記フェールセーフ処理は、前記動作環境情報を参照して、前記否定的な仮想環境を動作環境とするアプリケーションを特定する処理を含む
請求項5に記載の車載ECU。 - 車両に搭載され、複数のアプリケーションを実行するコンピュータに、
前記複数のアプリケーションそれぞれの検証を行い、
前記検証の結果が肯定的なアプリケーションを実行し、
前記検証の結果が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、
前記フェールセーフ処理は、
前記否定的なアプリケーションを特定し、
特定した前記否定的なアプリケーションに応じた代替信号の出力を含む
処理を実行させるプログラム。 - 車両に搭載され、複数のアプリケーションを実行するコンピュータに、
前記複数のアプリケーションそれぞれの検証を行い、
前記検証の結果が肯定的なアプリケーションを実行し、
前記検証の結果が否定的なアプリケーションは実行せず、前記否定的なアプリケーションを代替するフェールセーフ処理を実行し、
前記フェールセーフ処理は、
前記否定的なアプリケーションを特定し、
特定した前記否定的なアプリケーションに応じた代替信号の出力を含む
処理を実行させるフェールセーフ方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020184519A JP2022074461A (ja) | 2020-11-04 | 2020-11-04 | 車載ecu、プログラム及びフェールセーフ方法 |
PCT/JP2021/038162 WO2022097448A1 (ja) | 2020-11-04 | 2021-10-15 | 車載ecu、プログラム及びフェールセーフ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020184519A JP2022074461A (ja) | 2020-11-04 | 2020-11-04 | 車載ecu、プログラム及びフェールセーフ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022074461A true JP2022074461A (ja) | 2022-05-18 |
Family
ID=81457088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020184519A Pending JP2022074461A (ja) | 2020-11-04 | 2020-11-04 | 車載ecu、プログラム及びフェールセーフ方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022074461A (ja) |
WO (1) | WO2022097448A1 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0633828A (ja) * | 1992-07-17 | 1994-02-08 | Nippondenso Co Ltd | 車載用電子制御装置 |
WO2010097936A1 (ja) * | 2009-02-27 | 2010-09-02 | トヨタ自動車株式会社 | 車両の制御装置 |
JP7092071B2 (ja) * | 2019-03-05 | 2022-06-28 | トヨタ自動車株式会社 | 車両用制御装置、車両用制御装置の起動方法及び車両用制御プログラム |
JP7226047B2 (ja) * | 2019-04-09 | 2023-02-21 | 株式会社オートネットワーク技術研究所 | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム |
-
2020
- 2020-11-04 JP JP2020184519A patent/JP2022074461A/ja active Pending
-
2021
- 2021-10-15 WO PCT/JP2021/038162 patent/WO2022097448A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022097448A1 (ja) | 2022-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6889296B2 (ja) | ゲートウェイ装置、システム及びファームウェア更新方法 | |
US10353692B2 (en) | Method for updating a control unit for an automotive vehicle, control unit for an automotive vehicle, and computer program product | |
JP7280412B2 (ja) | ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法 | |
US11630746B2 (en) | Substitution apparatus, substitution control program, and substitution method | |
CN107797822A (zh) | 用于认证固件的设备和相关联的方法 | |
US9767264B2 (en) | Apparatus, method for controlling apparatus, and program | |
US20120269341A1 (en) | Method For Operating A Tachograph And Tachograph | |
CN106462711A (zh) | 经验证启动 | |
US20230095760A1 (en) | On-vehicle relay device, information processing method and program | |
JP2019071053A (ja) | 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成 | |
CN113810446A (zh) | 一种车载网络的ecu的安全升级管理方法 | |
WO2022097448A1 (ja) | 車載ecu、プログラム及びフェールセーフ方法 | |
JP7226047B2 (ja) | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム | |
CN110785757B (zh) | 边缘设备和用于运行边缘设备的方法 | |
US20230073884A1 (en) | Method and system to perform a secure boot procedure using a multi-stage security verification in a microcontroller of a vehicle | |
US20230409316A1 (en) | In-vehicle ecu, program, and information processing method | |
US20220300612A1 (en) | Security processing device | |
US20230391345A1 (en) | Performing security functions using devices having embedded hardware security modules | |
JP7463947B2 (ja) | 車載ecu、プログラム、及び情報処理方法 | |
JP7610428B2 (ja) | 制御装置 | |
EP4361798A1 (en) | Method for updating electronic control unit (ecu), ecu, and terminal | |
JP6698778B2 (ja) | 制御システム | |
JP2023510122A (ja) | インタフェースを備える装置およびインタフェースを備える装置の動作方法 | |
US20230300139A1 (en) | Performing security functions for an in-vehicle internet of things (iot) network | |
JP7613152B2 (ja) | 車載装置、情報処理方法、及びコンピュータプログラム |