IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

2025-99997車載装置、情報処理方法及び、車載システム
<>
  • -車載装置、情報処理方法及び、車載システム 図1
  • -車載装置、情報処理方法及び、車載システム 図2
  • -車載装置、情報処理方法及び、車載システム 図3
  • -車載装置、情報処理方法及び、車載システム 図4
  • -車載装置、情報処理方法及び、車載システム 図5
  • -車載装置、情報処理方法及び、車載システム 図6
  • -車載装置、情報処理方法及び、車載システム 図7
  • -車載装置、情報処理方法及び、車載システム 図8
  • -車載装置、情報処理方法及び、車載システム 図9
  • -車載装置、情報処理方法及び、車載システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025099997
(43)【公開日】2025-07-03
(54)【発明の名称】車載装置、情報処理方法及び、車載システム
(51)【国際特許分類】
   H04L 43/08 20220101AFI20250626BHJP
   H04L 43/02 20220101ALI20250626BHJP
   H04L 12/28 20060101ALI20250626BHJP
【FI】
H04L43/08
H04L43/02
H04L12/28 100A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023217058
(22)【出願日】2023-12-22
(71)【出願人】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】倉地 亮
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】上田 浩史
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA08
5K033BA06
5K033DA13
5K033EA03
5K033EA05
(57)【要約】      (修正有)
【課題】複数の車載ECUから受信した信頼度データに基づき、異常な車載ECUを特定する車載装置、情報処理方法及び車載システムを提供する。
【解決手段】車載装置2は、車両に搭載される複数の車載ECU6と通信可能に接続されるマスターノードであって、スレーブノードである複数の車載ECUそれぞれから送信される信頼度データに関する処理を行う制御部3を備え、車載ECUから受信した信頼度データに基づき、異常な車載ECUを特定する。車載ECUから送信される信頼度データは、送信元である車載ECU以外の車載ECUに対する正否の評価結果を含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
車両に搭載される複数の車載ECUと通信可能に接続される車載装置であって、
複数の前記車載ECUそれぞれから送信される信頼度データに関する処理を行う制御部を備え、
前記車載ECUから送信される信頼度データは、送信元である車載ECU以外となる他の車載ECUに対する正否の評価結果を含み、
前記制御部は、
複数の前記車載ECUそれぞれから送信される前記信頼度データを受信し、
受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する
車載装置。
【請求項2】
前記制御部は、
複数の前記車載ECUそれぞれから受信した前記信頼度データそれぞれを集約し、
集約した複数の前記信頼度データに基づき、複数の前記車載ECUそれぞれの公平性値を導出し、
導出した前記公平性値それぞれと、前記信頼度データそれぞれとに基づき、前記車載ECUそれぞれの善良性値を導出し、
導出した前記善良性値に基づき、複数の前記車載ECUにおける異常な車載ECUを特定し、
前記公平性値は、いずれかの車載ECUが、他の車載ECUに対し正常であると評価する度合を示し、
前記善良性値は、いずれかの車載ECUに対し、他の車載ECUが正常であると評価する度合を示す
請求項1に記載の車載装置。
【請求項3】
前記制御部は、
複数の車載ECUそれぞれにおいて、いずれかの車載ECUによる評価結果と、他の車載ECUそれぞれによる評価結果を用いて算出した平均偏差との差分を導出し、
導出した前記差分に基づき、いずれかの車載ECUの前記公平性値を導出し、
前記公平性値を導出するにあたり、前記差分の絶対値が大きくなるほど、前記公平性値を小さくする
請求項2に記載の車載装置。
【請求項4】
前記制御部は、複数の前記車載ECUそれぞれにおいて、現時点までに導出した公平性値に対し、該導出の以降に受信した信頼度データを適用することにより、複数の前記車載ECUそれぞれの前記善良性値を導出する
請求項3に記載の車載装置。
【請求項5】
前記制御部は、
複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を、アクセス可能な記憶領域に記憶し、
前記車載ECUからの前記信頼度データを受信する都度、前記記憶領域に記憶されている前記公平性値及び前記善良性値を更新する
請求項2に記載の車載装置。
【請求項6】
前記制御部は、前記記憶領域に記憶されている複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を、予め定められた所定の周期にて出力する
請求項5に記載の車載装置。
【請求項7】
前記制御部は、複数の前記車載ECUのうち、いずれかの車載ECUの前記善良性値が異常である旨を示す範囲内となった場合、前記記憶領域に記憶されている複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を出力する
請求項5に記載の車載装置。
【請求項8】
前記制御部は、
複数の前記車載ECUのうち、前記善良性値が異常である旨を示す範囲内となった車載ECUを、異常ECUとして特定し、
特定した前記異常ECUから送信される通信データを無効化するための処理を行う
請求項5に記載の車載装置。
【請求項9】
車両に搭載される複数の車載ECUと通信可能に接続されるコンピュータに、
複数の前記車載ECUそれぞれから送信される信頼度データを受信し、
前記車載ECUから送信される前記信頼度データは、送信元である車載ECU以外となる他の車載ECUに対する正否の評価結果を含むものであり、
受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する
処理を実行させる情報処理方法。
【請求項10】
車両に搭載される複数の車載ECUと、複数の前記車載ECUと通信可能に接続される車載装置とを含む車載システムであって、
前記車載ECUは、
自身である該車載ECU以外となる他の車載ECUに対する正否の評価結果を含む信頼度データを生成し、
生成した前記信頼度データを前記車載装置へ送信し、
前記車載装置は、
複数の前記車載ECUそれぞれから送信される前記信頼度データを受信し、
受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する
車載システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載装置、情報処理方法及び、車載システムに関する。
【背景技術】
【0002】
従来、車両に搭載されたECU(Electronic Control Unit)等の複数の装置間で行われる通信に用いられる通信プロトコルには、CAN(Controller Area Network)の通信プロトコルが広く採用されていた。
【0003】
特許文献1においては、車両のCANに接続され、装置診断コマンドにより車載機器に動作を実行させて、この車載機器が送信する状態応答データを取り込み、車載機器の動作状態を判断する検知・制御統合装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009-220800号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の検知・制御統合装置は、複数の車載ECUそれぞれから受信した信頼度データに基づき、複数の車載ECUにおける異常な車載ECUを特定する点が、考慮されていない。
【0006】
本開示の目的は、複数の車載ECUそれぞれから受信した信頼度データに基づき、複数の車載ECUにおける異常な車載ECUを特定することができる車載装置等を提供する。
【課題を解決するための手段】
【0007】
本開示の一態様に係る車載装置は、車両に搭載される複数の車載ECUと通信可能に接続される車載装置であって、複数の前記車載ECUそれぞれから送信される信頼度データに関する処理を行う制御部を備え、前記車載ECUから送信される信頼度データは、送信元である車載ECU以外となる他の車載ECUに対する正否の評価結果を含み、前記制御部は、複数の前記車載ECUそれぞれから送信される前記信頼度データを受信し、受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する。
【発明の効果】
【0008】
本開示の一態様によれば、複数の車載ECUそれぞれから受信した信頼度データに基づき、複数の車載ECUにおける異常な車載ECUを特定する車載装置等を提供することができる。
【図面の簡単な説明】
【0009】
図1】実施形態1に係る車載装置を含む車載システムの構成を例示する模式図である。
図2】車載装置(マスターノード)及び車載ECU(スレーブノード)の物理構成を例示するブロック図である。
図3】車載ECUの制御部の処理を例示するフローチャートである。
図4】車載ECUにおけるECU-IDテーブルを例示した説明図である。
図5】車載ECUにおける評価テーブルを例示した説明図である。
図6】車載装置の制御部の処理を例示するフローチャートである。
図7】車載装置における信頼度通知CAN-IDテーブルを例示した説明図である。
図8】車載装置における善良性値及び公平性値の更新処理を例示した説明図である。
図9】車載装置における信頼度データのストア状態(中間データテーブル)を例示した説明図である。
図10】車載装置における信頼度テーブル(善良性・公平性テーブル)を例示した説明図である。
【発明を実施するための形態】
【0010】
[本開示の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0011】
(1)本開示の一態様に係る車載装置は、車両に搭載される複数の車載ECUと通信可能に接続される車載装置であって、複数の前記車載ECUそれぞれから送信される信頼度データに関する処理を行う制御部を備え、前記車載ECUから送信される信頼度データは、送信元である車載ECU以外となる他の車載ECUに対する正否の評価結果を含み、前記制御部は、複数の前記車載ECUそれぞれから送信される前記信頼度データを受信し、受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する。
【0012】
本態様にあたっては、車両に設けられた車載ネットワークには、複数の車載ECUと車載装置とが通信可能に接続されている。複数の車載ECUそれぞれは、他の車載ECUから送信されたCANメッセージ等の通信データを受信し、例えば、受信したCANメッセージのペイロードに格納される情報と、自身である車載ECUにおける処理内容又は動作状態等と比較し、当該通信データの送信元である他の車載ECUに対する正否(正常又は異常)の評価を行う。複数の車載ECUそれぞれは、自分自身である車載ECU以外となる、他の車載ECUに対する評価結果を、信頼度データとして出力(車載ネットワークを介して車載装置に送信)する。車載ECUからの信頼度データは、他の車載ECUと評価結果とが関連付けられたデータであり、評価結果は、例えば、正常を示す値(1)又は異常を示す値(-1)にて定義されるものであってもよい。この際、車載ECUからの信頼度データにおいて、当該車載ECU自身を示す評価結果については、0にて定義されるものであってもよい。車載装置の制御部は、複数の車載ECUそれぞれから送信される信頼度データそれぞれを受信し、受信した信頼度データに基づき、複数の車載ECUそれぞれについて、正常又は異常であるかを判定することにより、異常な車載ECU(異常ECU)を特定する。このように、車載装置の制御部は、自分自身以外の他の車載ECUに関する評価を行う車載ECU(スレーブノード)それぞれから送信される信頼度データそれぞれを用いて集合演算的に導出した総和に基づき、複数の車載ECUにおける異常な車載ECUを導出するマスターノードとして機能する。従って、例えば、単に車載ネットワークに流れている通信データに基づき異常な車載ECUを導出する場合と比較して、異常な車載ECUの特定を効率的又は精度良く行うことができる。
【0013】
(2)本開示の一態様に係る車載装置においては、前記制御部は、複数の前記車載ECUそれぞれから受信した前記信頼度データそれぞれを集約し、集約した複数の前記信頼度データに基づき、複数の前記車載ECUそれぞれの公平性値を導出し、導出した前記公平性値それぞれと、前記信頼度データそれぞれとに基づき、前記車載ECUそれぞれの善良性値を導出し、導出した前記善良性値に基づき、複数の前記車載ECUにおける異常な車載ECUを特定し、前記公平性値は、いずれかの車載ECUが、他の車載ECUに対し正常であると評価する度合を示し、前記善良性値は、いずれかの車載ECUに対し、他の車載ECUが正常であると評価する度合を示す。
【0014】
本態様にあたっては、車載ECUは、他の車載ECUの正否を評価、すなわち正常又は異常であるかを判定している。この際、例えば、不正なプログラム等が実行されることにより異常となった車載ECU(乗っ取られた車載ECU)は、他の車載ECUが正常であるにもかかわらず、自身(乗っ取られた車載ECU)が異常状態であることを隠蔽するため、これら正常な他の車載ECUを、異常と評価することが想定される。これに対し、車載装置の制御部は、複数の車載ECUそれぞれから受信した信頼度データそれぞれを集約することにより、いずれかの車載ECUが、他の車載ECUに対し正常であると評価(実施的に正常である車載ECUに対し、正常であるとする適切な評価)する度合を示す公平性値(第1演算値)を導出する。公平性値は、他の大多数の車載ECUによる評価の平均偏差との乖離が大きくなるほど、低い値(公平でない旨を示す値)となる。公平性値は、他の大多数の車載ECUによる評価の平均偏差との乖離が小さくなるほど、高い値(公平である旨を示す値)となる。すなわち、他の車載ECUに対し、適正な評価を与えている場合、公平性値が向上する。公平性値(f(u))を導出するにあたり、例えば(1)式を用いて、車載ECU自身に対する評価と当該車載ECUの善良性値との乖離(差分)の絶対値を、車載ECUの個数に応じて総和(u∈out(u))して算出した平均偏差を用いて算出(1から当該平均偏差を減算)するものであってよい。
【0015】
【数1】
【0016】
但し、W(u,v):車載ECU自身に対する評価(ECUuからECUvへの信頼度評価)、g(v):善良性値、out(u):車載ECUの個数、R:2(車載ECU間の辺と善良性の最大許容誤差)を示す。
【0017】
このように算出される公平性値(f(u))は、例えば0(最も公平性が低い)から1(最も公平性が高い)の範囲にて値を取る(値が設定される)ものであってもよい。これにより、他の車載ECUに対し不適切な評価を行う車載ECUを、導出した公平性値に基づき、特定することができる。その上で、車載装置の制御部は、複数の車載ECUそれぞれに対し導出した公平性値それぞれと、車載ECU自身に対する評価とに基づき、複数の車載ECUそれぞれの善良性値(第2演算値)を導出する。善良性値は、いずれかの車載ECUに対し、他の車載ECUが正常であると評価する度合を示すものであり、他の車載ECUから、高い評価(正常[1])が与えられるほど善良性値が向上し、低い評価(異常[-1])が与えられるほど善良性値が減少する。善良性値(g(v))を導出するにあたり、例えば(2)式を用いて、公平性値(f(u))に、車載ECU自身に対する評価(W(u,v))を乗算した値を、車載ECUの個数に応じて総和(u∈in(v))し平均化することにより算出するものであってよい。
【0018】
【数2】
【0019】
但し、W(u,v):車載ECU自身に対する評価(ECUuからECUvへの信頼度評価)、f(u):公平性値、in(v):車載ECUの個数を示す。
【0020】
このように算出される善良性値は、例えば-1(最も善良性が低い)から1(最も善良性が高い)の範囲にて値を取る(値が設定される)ものであってもよい。すなわち、善良性値が-1に近接するほど異常度が高くなり、善良性値が1(+1)に近接するほど正常度が高くなる。車載ECU自身に対する評価は、他の車載ECUからの信頼度データ(異常(-1)又は正常(1)の2値)によるものとなるが、当該値に車載ECUの公平性値が乗算することにより、車載ECUにおける公平性を加味して、当該車載ECUの善良性値を算出することができる。なお、このように公平性値(公平性スコア)と善良性値(善良性スコア)とは、それぞれの値を算出する算式に、他方の値が含まれる形態を取るものとなり、この際、公平性値(公平性スコア)及び善良性値(善良性スコア)の初期値は、全て1に設定されるものであってもよい。このように車載ECUそれぞれに対し公平性値及び善良性値を導出(算出)することにより、車載ネットワークに接続される複数の車載ECUのうち、多数の車載ECUにて一致する評価に対し、極端にずれた評価を行う車載ECUを効率的に抽出し、当該抽出した車載ECUを、異常な車載ECU(異常ECU)として精度良く特定することができる。特に外部からの攻撃により乗っ取られた車載ECU(異常ECU)は、自身が異常状態であることを隠蔽するため、他のECUに対し不適切な評価を行う傾向が高くなることが想定されるため、公平性値及び善良性値を用いた異常判定を行うことより、当該乗っ取られた車載ECU(異常ECU)を効率的に特定することが期待される。
【0021】
(3)本開示の一態様に係る車載装置においては、前記制御部は、複数の車載ECUそれぞれにおいて、いずれかの車載ECUによる評価結果と、他の車載ECUそれぞれによる評価結果を用いて算出した平均偏差との差分を導出し、導出した前記差分に基づき、いずれかの車載ECUの前記公平性値を導出し、前記公平性値を導出するにあたり、前記差分の絶対値が大きくなるほど、前記公平性値を小さくする。
【0022】
本態様にあたっては、車載装置の制御部は、公平性値を導出するにあたり、複数の車載ECUそれぞれにおいて、いずれかの車載ECUによる評価結果と、他の車載ECUそれぞれによる評価結果を用いて算出した平均偏差との差分(乖離:評価差分)を、算出(導出)する。この際、車載装置の制御部は、評価差分の絶対値が大きくなるほど公平性値を小さくなるように、すなわち公平性が低い車載ECUであるとして、当該公平性値を導出するため、各車載ECUに対する評価が、大多数の車載ECUによる評価の傾向と異なる(極端にずれている)車載ECUを効率的に抽出することができる。
【0023】
(4)本開示の一態様に係る車載装置においては、前記制御部は、複数の前記車載ECUそれぞれにおいて、現時点までに導出した公平性値に対し、該導出の以降に受信した信頼度データを適用することにより、複数の前記車載ECUそれぞれの前記善良性値を導出する。
【0024】
本態様にあたっては、車載装置の制御部は、複数の車載ECUそれぞれから周期的又は定常的に送信される信頼度データに基づき、車載ECUそれぞれにおける現時点の公平性値それぞれを導出し、車載装置の記憶部等、アクセス可能な記憶領域に記憶する処理を継続的に実行している。これにより、車載装置の記憶部には、現時点における車載ECUの公平性値それぞれが記憶されるものとなり、当該公平性値の情報鮮度が担保される。その上で、車載装置の制御部は、現時点における車載ECUの公平性値それぞれを用いて、以降(公平性値の導出以降)に受信した信頼度データに基づき、複数の車載ECUそれぞれの善良性値を導出する。これにより、過去から現時点までに取得した複数の信頼度データの積み重ねを加味して、善良性値を導出することができ、当該善良性値の精度を担保することができる。
【0025】
(5)本開示の一態様に係る車載装置においては、前記制御部は、複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を、アクセス可能な記憶領域に記憶し、前記車載ECUからの前記信頼度データを受信する都度、前記記憶領域に記憶されている前記公平性値及び前記善良性値を更新する。
【0026】
本態様にあたっては、車載装置の制御部は、複数の車載ECUそれぞれの公平性値及び善良性値を、例えばテーブル形式(信頼度テーブル)にて、車載装置の記憶部等、アクセス可能な記憶領域(記憶部)に記憶している。車載装置の制御部は、いずれかの車載ECUからの信頼度データを受信する都度、当該信頼度データを、現時点における信頼度テーブルに格納されている公平性値を用いて、善良性値を算出し、算出した善良性値を信頼度テーブルに格納することにより、当該善良性値を更新する。更に、車載装置の制御部は、更新された善良性値と、今回の処理で受信した信頼度データとにより、公平性値を算出し、算出した公平性値を信頼度テーブルに格納することにより、当該公平性値を更新する。このように車載装置の制御部は、いずれかの車載ECUからの信頼度データの受信をトリガーに、公平性値及び善良性値の再計算を繰り返し、再計算した公平性値と善良性値とを信頼度テーブルに格納して更新することにより、当該信頼度テーブルの情報鮮度を担保することができる。
【0027】
(6)本開示の一態様に係る車載装置においては、前記制御部は、前記記憶領域に記憶されている複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を、予め定められた所定の周期にて出力する。
【0028】
本態様にあたっては、車載装置の制御部は、車載装置の記憶部等、アクセス可能な記憶領域に記憶されている車載ECUそれぞれの公平性値及び善良性値を、予め定められた所定の周期にて、車載ネットワークを介して、車載ECUそれぞれに対し出力する。車両に無線機能を有する車外通信装置が搭載されている場合、車載装置の制御部は、当該車外通信装置を介して、車外に配置されるSOC(Security Operation Center)サーバ等の外部サーバに対し、車載ECUそれぞれの公平性値及び善良性値を出力するものであってもよい。このように定期的に、車両に搭載される複数の車載ECUの公平性値及び善良性値を出力することにより、これら複数の車載ECUそれぞれに対し、公平性値及び善良性値を報知することができる。車載装置から送信された公平性値及び善良性値に関するデータを取得した車載ECUは、当該データに基づき、善良性値が異常範囲内となる車載ECU(異常ECU)の存在を認識でき、当該車載ECU(異常ECU)に対する対抗処置を図ることができる。
【0029】
(7)本開示の一態様に係る車載装置においては、前記制御部は、複数の前記車載ECUのうち、いずれかの車載ECUの前記善良性値が異常である旨を示す範囲内となった場合、前記記憶領域に記憶されている複数の前記車載ECUそれぞれの前記公平性値及び前記善良性値を出力する。
【0030】
本態様にあたっては、車載装置の制御部は、車載ECUそれぞれの公平性値及び善良性値を、例えば記憶部に記憶されている信頼度テーブルに格納することにより、現時点における車載ECUそれぞれの公平性値及び善良性値の保存及び管理を実施している。車載装置の制御部は、複数の車載ECUのうち、いずれかの車載ECUの善良性値が異常である旨を示す範囲内(異常範囲内)となった場合、車載ECUそれぞれの公平性値及び善良性値を、車載ネットワークを介して車載ECUそれぞれに送信する、又は車外通信装置を介してSOC(Security Operation Center)サーバ等の外部サーバに送信する。これにより、車載装置から送信された公平性値及び善良性値に関するデータを取得した車載ECUは、当該データに基づき、善良性値が異常範囲内となる車載ECU(異常ECU)の存在を認識でき、当該車載ECU(異常ECU)に対する対抗処置を図ることができる。
【0031】
(8)本開示の一態様に係る車載装置においては、前記制御部は、複数の前記車載ECUのうち、前記善良性値が異常である旨を示す範囲内となった車載ECUを、異常ECUとして特定し、特定した前記異常ECUから送信される通信データを無効化するための処理を行う。
【0032】
本態様にあたっては、車載装置の制御部は、複数の車載ECUのうち、いずれかの車載ECUの善良性値が異常である旨を示す範囲内(異常範囲内)となった場合、善良性値が異常範囲内(例えば、-1から0未満となる負の値[-1≦善良性値<0])の車載ECUを異常ECU(制御が乗っ取られた車載ECU)として特定する。その上で、車載装置の制御部は、特定した異常ECUから送信される通信データを、実質的に無効化するための処理(無効化処理)を行う。当該無効化処理を行うにあたり、車載装置の制御部は、異常ECUから送信される通信データを一意に特定するための情報を、車載ネットワークに接続される全ての車載ECUに送信(ブロードキャスト)するものであってもよい。通信データを一意に特定するための情報は、車載ネットワークに用いられるプロトコルがCAN(Controller Area Network)又はCAN-FDである場合、メッセージID(CAN-ID)、プロトコルがイーサネット(登録商標)の場合は、異常ECUのMACアドレス又はIPアドレスであってもよい。このように異常ECUから送信される通信データのメッセージID等を全ての車載ECUに報知することにより、車載ECUそれぞれに対し、当該異常ECUから通信データを無視又は破棄する処理を実行させることができる。又は、車載装置の制御部は、無効化処理を行うにあたり、異常ECUから送信される通信データ(CANメッセージ)に対し、当該通信データ(CANメッセージ)の送信が完了する前に、エラーフレーム等をビットフリップ(重畳又は上書き送信)させることにより、車載ECUが受信できないようにするものであってもよい。
【0033】
(9)本開示の一態様に係る情報処理方法は、車両に搭載される複数の車載ECUと通信可能に接続されるコンピュータに、複数の前記車載ECUそれぞれから送信される信頼度データを受信し、前記車載ECUから送信される前記信頼度データは、送信元である車載ECU以外となる他の車載ECUに対する正否の評価結果を含むものであり、受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する処理を実行させる。
【0034】
本態様にあたっては、コンピュータを、複数の車載ECUそれぞれから受信した信頼度データに基づき、複数の車載ECUにおける異常な車載ECUを特定する車載装置として機能させる情報処理方法を提供することができる。
【0035】
(10)本開示の一態様に係る車載システムは、車両に搭載される複数の車載ECUと、複数の前記車載ECUと通信可能に接続される車載装置とを含む車載システムであって、前記車載ECUは、自身である該車載ECU以外となる他の車載ECUに対する正否の評価結果を含む信頼度データを生成し、生成した前記信頼度データを前記車載装置へ送信し、前記車載装置は、複数の前記車載ECUそれぞれから送信される前記信頼度データを受信し、受信した前記信頼度データに基づき、複数の前記車載ECUにおける異常な車載ECUを特定する。
【0036】
本態様にあたっては、複数の車載ECUそれぞれから受信した信頼度データに基づき、複数の車載ECUにおける異常な車載ECUを特定する車載装置を含む車載システム提供することができる。
【0037】
[本開示の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載装置2を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0038】
(実施形態1)
以下、実施の形態について図面に基づいて説明する図1は、実施形態1に係る車載装置2を含む車載システムSの構成を例示する模式図である。図2は、車載装置2(マスターノード)及び車載ECU6(スレーブノード)の物理構成を例示するブロック図である。車載システムSは、車両Cに搭載された車載装置2を主たる装置として構成され、当該車載装置2は、車外通信装置1を介して、インターネット等の車外ネットワークに接続されるSOCサーバ(Security Operation Center)又はSIRTサーバ(Security Incident Response Team)等の外部サーバSV1と通信可能に接続される。
【0039】
車載装置2は、車両Cに搭載される全ての車載ECU6から送信される送信データ(信頼度データ)を受信(取得)し、当該信頼度データに基づき、車両Cが攻撃者によって攻撃されている否かを検知する侵入検知装置(乗っ取り等が行われた異常ECUの検出装置)として機能する。車載装置2は、当該侵入検知装置として機能するにあたり、複数の車載ECU6それぞれから送信される信頼度データに基づき、これら車載ECU6に対する善良性値及び公平性値を導出し、導出した善良性値又は公平性値に基づき、例えば、制御が乗っ取られた異常な車載ECU6(異常ECU)を特定する。その上で、車載装置2は、特定した異常ECUから送信される送信データ(通信データ)を無効化するための処理を行い、車載ネットワーク7における健全性を担保するものであってもよい。
【0040】
外部サーバSV1は、例えばインターネット又は公衆回線網等の車外ネットワークに接続されているサーバ等のコンピュータであり、SOCサーバ及びSIRTサーバを含む。SOCサーバは、SOC(Security Operation Center)によって運用管理されるサーバであり、車両Cにおけるセキュリティ問題に対する分析等を行う組織が所管するサーバである。車載装置2は、善良性値及び公平性値に基づき制御が乗っ取られた異常な車載ECU6(異常ECU)を検出した場合、又は定期的に当該異常ECUに関する情報を生成し、外部サーバSV1(SOCサーバ等)に送信するものであってよい。
【0041】
車両Cには、車外通信装置1、車載装置2、及び種々の車載機器(アクチュエータ、センサ)を制御するための複数の車載ECU6が、搭載されている。車外通信装置1と車載装置2とは、例えばシリアルケーブル等のハーネスにより通信可能に接続されている。車載装置2及び車載ECU6は、CAN(Control Area Network)、CAN-FD又はEthernet(登録商標)等の通信プロトコルに対応した車載ネットワーク7によって通信可能に接続されている。
【0042】
車外通信装置1は、車外通信部(図示せず)及び、車載装置2と通信するための入出力I/F(図示せず)(インターフェイス)を含む。車外通信部は、LTE、4G、5G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナを介して外部サーバSV1とデータの送受信を行う。車外通信装置1と外部サーバSV1との通信は、例えば公衆回線網又はインターネット等の外部ネットワークを介して行われる。
【0043】
車載装置2は、CANゲートウェイ又はイーサネットスイッチ(レイヤー2スイッチ又はレイヤー3スイッチ)等の中継装置(GW)として機能するものであってもよい。本実施形態にて図示する車載装置2(GW:中継装置)に、マスターノードの機能を実装することにより、車載ネットワーク7に接続される全ての車載ECU6(スレーブノード)から送信される送信データを確実に取得することができる。
【0044】
車載装置2は、通信に関する中継に加え、二次電池等の電源装置から出力された電力を分配及び中継し、自装置(車載装置2)に接続されるアクチュエータ等の車載機器に電力を供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。又は、車載装置2は、車両C全体をコントロールするボディECUの一機能部として構成されるものであってもよい。又は、車載装置2は、例えばヴィークルコンピュータ等の中央制御装置にて構成され、車両Cの全体的な制御を行う統合ECUであってもよい。すなわち、当該統合ECUは、自身が行う機能の一部として、本実施形態にて説明される異常ECUの検出に関する処理を行うものであってもよい。
【0045】
車載装置2は、制御部3、記憶部4及び車内通信部5を含む。制御部3は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部4に予め記憶された制御プログラムP(プログラム製品)及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。
【0046】
記憶部4は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラムP及び処理時に参照するデータが予め記憶してある。記憶部4に記憶された制御プログラムP(プログラム製品)は、車載装置2が読み取り可能な記録媒体Mから読み出された制御プログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムPをダウンロードし、記憶部4に記憶させたものであってもよい。詳細は後述するが、車載装置2の記憶部4には、例えば、ECU-IDテーブル、信頼度通知CAN-IDテーブル、中間データテーブル、及び善良性・公平性テーブル等、車載装置2の制御部3が演算処理で用いる各種テーブルが記憶されている。
【0047】
車内通信部5は、例えばCAN(Control Area Network)、CAN-FD(CAN with Flexible Data Rate)又はイーサネット(TCP/IP)等の通信プロトコルを用いた入出力インターフェイスである。車内通信部5は、CANトランシーバにて構成されるCAN通信部、又はイーサネットPHY部にて構成されるイーサネット通信部を含み、車載装置2と車載ECU6とが通信するための物理層に対応した通信部として機能する。
【0048】
車内通信部5は、複数個設けられており、車内通信部5夫々に、車載ネットワーク7を構成する通信線71夫々、すなわちバス夫々が接続されている。このように車内通信部5を複数個設けることにより、車載ネットワーク7を複数個のバス又はセグメントに分け、各バス等に車載ECU6を、当該車載ECU6の機能に応じて接続するものであってもよい。車載装置2の制御部3は、車内通信部5を介して車載ネットワーク7に接続されている車載ECU6と相互に通信する。
【0049】
車載ECU6は、車載装置2と同様に、制御部61、記憶部62及び車内通信部63を含む。車載ECU6は、他の車載ECU6から送信される通信データに基づき、当該他の車載ECU6の正否判定を行い、当該判定結果を、マスターノードである車載装置2に周期的に送信するスレーブノードとして機能する。車載ECU6の記憶部62には、ECU-IDテーブル及び評価テーブル等、制御部61が当該判定等の演算処理を行うにあたり用いる各種テーブルが記憶されている。
【0050】
車載ECU6は、他の各車載ECU6からのメッセージを受信し、当該メッセージ内のシグナルの異常を判定するものであってもよい。スレーブノードとして機能する車載ECU6は、受信メッセージの異常の有無を判定した上、どの車載ECU6に異常がありそうかを判定できる。すなわち、車載ECU6は、メッセージを受信する都度、他の車載ECU6からの送受信回数と異常受信回数を記録し保持する処理(アルゴリズム1)を行う。
【0051】
更に、車載ECU6は、予め定められた周期に従い、定期的に他の車載ECU6の信頼度情報通知(信頼度データ)を転送する。この際、車載ECU6にて取りためた他の各車載ECU6の総受信回数と異常受信回数から、各車載ECU6の信頼度評価結果(W(u,v))を-1から1の範囲で与えるように計算し通信する。その後、異常の有無を、例えば信頼度評価結果フォーマットに変換し、そのメッセージを転送する処理(アルゴリズム2)を行う。車載ECU6は、信頼度評価結果(W(u,v))を-1から1の範囲で与えるように計算するにあたり、異常受信回数が0なら信頼度評価結果を1(最も信頼度が高い)とし、総受信回数と異常受信回数とが等しい場合は信頼度評価結果を-1(最も信頼度が低い)とし、これ以外の場合は、異常受信回数を総受信回数にて除算した値にて信頼度評価結果を浮動小数点又は固定小数点にて導出する(アルゴリズム3)ものであってもよい。更に、車載ECU6は、導出した固定小数点等による信頼度評価結果をバイト値に変換する処理(アルゴリズム4)を行うものであってもよい。
【0052】
図3は、車載ECU6の制御部61の処理を例示するフローチャートである。車載ECU6の制御部61は、例えば車両Cが起動状態又は停止状態(IGスイッチ又はパワースイッチが、オン又はオフ)において、定常的に以下の処理を行う。
【0053】
車載ECU6の制御部61は、他の車載ECU6からの通信データを受信したか否かを判定する(E101)。通信データを受信しなかった場合(E101:NO)、車載ECU6の制御部61は、再度E101を実行することにより、ループ処理を行う。これにより、車載ECU6の制御部61は、他の車載ECU6から送信される通信データを待ち受ける処理を継続する。
【0054】
通信データを受信した場合(E101:YES)、車載ECU6の制御部61は、車載ECU6それぞれの異常/受信の判定処理(受信及び正否判定処理)を実行する(E102)。車載ネットワーク7を介して、いずれかの車載ECU6(他の車載ECU6)から通信データを受信した場合、車載ECU6の制御部61は、当該通信データの送信元である他の車載ECU6を特定し、特定した他の車載ECU6に対する判定処理、すなわち当該他の車載ECU6が正常又は異常であるかの評価を行う。車載ECU6の制御部61は、通信データの送信元である他の車載ECU6を特定するにあたり、通信データのヘッダー部に含まれるメッセージID等に基づき、車載ECU6の記憶部62に記憶されているECU-IDテーブルを参照するものであってもよい。
【0055】
図4は、車載ECU6におけるECU-IDテーブルを例示した説明図である。車載ECU6の記憶部62には、通信データのヘッダー部に含まれるメッセージIDと、当該メッセージIDを含めた通信データを送信する送信元の車載ECU6との対応関係が、例えばテーブル形式(ECU-IDテーブル)にて記憶されている。ECU-IDテーブルは、管理項目(フィールド)として、例えば、メッセージID(通信データ用)と、ECUーIDとを含む。
【0056】
メッセージID(通信データ用)の管理項目には、通信データのヘッダー部に含まれるメッセージID等、当該通信データを識別するための識別子が格納される。通信データが、CAN又はCAN-FDの場合、メッセージIDには、CAN-IDが格納されるものであってもよい。通信データが、TCP/IPの場合、メッセージIDには、送信元の車載ECU6のIPアドレス、MACアドレス、又はTCPポート番号であってもよい。
【0057】
ECUーIDの管理項目には、同じレコードに格納されるメッセージIDに対応する車載ECU6のID等、当該車載ECU6を一意に特定する識別子が格納される。これにより、メッセージIDに基づき、通信データの送信元の車載ECU6を一意に特定することができる。すなわち、車載ECU6それぞれは、通信データを送信するにあたり、当該通信データのヘッダー部等に含まれるIDと紐づけされており、当該紐づけに応じた内容が、ECU-IDテーブルに定義されるものとなる。
【0058】
車載ECU6の制御部61は、通信データの送信元として特定した他の車載ECU6からの通信データに対し、正常又は異常であるかの判定を行う。車載ECU6の制御部61は、例えば、受信した通信データ(CANメッセージ)のペイロードに格納される情報と、自身である車載ECU6における処理内容又は動作状態等と比較して、当該通信データが正常又は異常であるかの判定を行うものであってもよい。例えば、車載ECU6の制御部61が、車速に関する処理を行っており、現時点における車速が時速100kmであると認識している場合、受信した通信データ(CANメッセージ)のペイロードに格納される情報が、走行中にシフトレバーがパーキングであることを示す場合、当該通信データは異常であると判定するものであってもよい。又は、車載ECU6の制御部61が、エンジン回転数に関する処理を行っており、現時点におけるエンジン回転数がアイドリング状態の回転数である場合、受信した通信データ(CANメッセージ)のペイロードに格納される情報が、車速が時速0kmであることを示す場合、当該通信データは異常であると判定するものであってもよい。
【0059】
車載ECU6の制御部61は、通信データを受信都度、当該通信データに対する判定を行い、判定結果(正常又は異常)を車載ECU6の記憶部62に記憶する。車載ECU6の制御部61は、当該判定結果(正常又は異常)を記憶するにあたり、特定した送信元の他の車載ECU6からの通信データの受信回数において、異常と判定した異常通信データの受信回数(異常回数)、及び正常と判定した正常通信データの受信回数(正常回数)を評価テーブルに格納するものであってもよい。
【0060】
車載ECU6の制御部61は、他の車載ECU6それぞれに対し、所定期間において当該他の車載ECU6から受信した通信データにおける異常回数と正常回数との大小関係又は比率等に基づき、当該通信データの送信元である車載ECU6(他の車載ECU6)の評価、すなわち信頼度を導出する。車載ECU6の制御部61は、例えば、受信した通信データにおける異常回数が正常回数よりも多い場合(異常回数>正常回数)、当該通信データの送信元である車載ECU6(他の車載ECU6)は、異常(信頼度=-1)と判定する。車載ECU6の制御部61は、例えば、受信した通信データにおける異常回数が正常回数よりも少ない場合(異常回数<正常回数)、当該通信データの送信元である車載ECU6(他の車載ECU6)は、正常(信頼度=1)と判定する。又は、車載ECU6の制御部61は、例えば、異常回数が0(エラー:0)の場合、正常(信頼度=1)と判定するものであってもよい。又は、車載ECU6の制御部61は、異常回数(エラー)が、総受信回数(トータルの回数)と同等又は正常回数よりも多い場合は異常(信頼度=-1)と判定するものであってもよい。又は、車載ECU6の制御部61は、例えば、受信した通信データにおける異常回数が正常回数と同じ場合(異常回数=正常回数)、当該通信データの送信元である車載ECU6(他の車載ECU6)は、保留(信頼度=0)と判定するものであってもよい。車載ECU6の制御部61は、導出した信頼度を評価テーブルに格納(上書き更新)するものであってもよい。
【0061】
図5は、車載ECU6における評価テーブルを例示した説明図である。車載ECU6の記憶部62には、通信データの送信元となる車載ECU6(他の車載ECU6)それぞれにおいて、受信した通信データが異常又は正常であるかを示す回数、及び当該回数に基づき導出した信頼度が、例えばテーブル形式(評価テーブル)にて記憶されている。評価テーブルは、管理項目(フィールド)として、例えば、ECUーID、異常回数、正常回数、及び信頼度を含む。
【0062】
ECUーIDの管理項目には、車載ECU6のID等、当該車載ECU6を一意に特定する識別子が格納され、当該ECUーIDによって、ECU-IDテーブルとの関連付け(リレーション設定)が行われる。異常回数の管理項目には、同じレコードに格納されるECUーIDに対応する車載ECU6(通信データの送信元の車載ECU6)からの通信データにおいて、当該通信データが異常であった回数(異常と判定された通信データの個数)が、格納される。正常回数の管理項目には、同じレコードに格納されるECUーIDに対応する車載ECU6(通信データの送信元の車載ECU6)からの通信データにおいて、当該通信データが正常であった回数(正常と判定された通信データの個数)が、格納される。すなわち、車載ECU6の制御部61は、通信データの受信都度、当該通信データが異常又は正常であるかを判定し、判定結果に応じて、異常回数又は正常回数の値を増加(カウントアップ)する。
【0063】
信頼度の管理項目には、同じレコードに格納されるECUーIDに対応する車載ECU6において、異常回数と正常回数との大小関係等に基づき導出された信頼度(正常[1]又は異常[-1])が格納される。車載ECU6の制御部61は、通信データの受信都度、通信データが異常又は正常であるかを判定し、当該判定時点における異常回数と正常回数とに基づき、信頼度を導出するものであってもよい。このように車載ECU6の制御部61は、いずれかの他の車載ECU6からの通信データの受信都度、通信データの正否判定に応じて回数(異常回数、正常回数)のカウントアップ、及び当該回数に基づく信頼度の導出を行うことにより、評価テーブルを更新(最新状態に維持)するものであってもよい。なお、評価テーブルの初期値に関し、異常回数及び正常回数は0であり、信頼度は正常[1]を示すものであってもよい。詳細は後述するが、車載ECU6の制御部61は、評価テーブルに格納されている信頼度等を定期的に車載装置2の送信し、当該送信の後処理として、評価テーブルを初期化するものであってもよい。
【0064】
車載ECU6の制御部61は、判定結果を評価テーブルに格納する(E103)。車載ECU6の制御部61は、判定結果、すなわち受信した通信データの正否判定に応じて更新(カウントアップ)した回数(異常回数、正常回数)に基づき導出した評価結果を、評価テーブルに格納することにより、当該通信データの送信元である他の車載ECU6に対する信頼度を更新する。
【0065】
車載ECU6の制御部61は、前回の信頼度データの送信時点から、所定期間が経過したか否かを判定する(E111)。当該所定期間、すなわち車載ECU6から車載装置2へ、信頼度データ(車載ECU6それぞれの信頼度の値)を送信する際の送信周期は、車載ECU6の記憶部62に記憶されており、当該送信周期と、前回の送信時点からの経過時間との対比に応じて、車載ECU6の制御部61は、所定期間が経過したか否かを判定する。所定期間が経過していない場合(E111:NO)、車載ECU6の制御部61は、再度E111を実行することにより、ループ処理を行う。これにより、車載ECU6の制御部61は、信頼度データを周期的に車載装置2に送信するものとなる。
【0066】
所定期間が経過した場合(E111:YES)、車載ECU6の制御部61は、車載装置2へ、信頼度データを送信する(E112)。前回の信頼度データの送信時点から、所定期間が経過した場合、車載ECU6の制御部61は、現時点にて評価テーブルに格納されている内容を用いて、信頼度データを生成し、当該信頼度データを車載装置2に送信する。
【0067】
車載ECU6の制御部61は、信頼度データを生成するにあたり、例えば、CAN又はCAN-FDのペイロードに車載ECU6それぞれの信頼度それぞれを、各バイト単位で挿入(ECU-IDの番号に沿って順次に挿入)するものであってもよい。信頼度が挿入される各バイト(1byte)は、正常[1]又は異常[-1]が示せるように固定小数点表現(符号:1ビット、小数部:7ビット)にて構成されるものであってもよい。又は、車載ECU6の制御部61は、信頼度それぞれをECU-IDと関連付けて、ペイロードに挿入するものであってもよい。信頼度データにおいて、評価主体である車載ECU6自身の評価は、0(自ECUの評価は0に設定)とするものであってもよい。
【0068】
車載ECU6の制御部61は、信頼度データを車載装置2に送信する際、当該信頼度データを含むメッセージのヘッダー部に、予め定められたメッセージID(信頼度データ用メッセージID)を含ませるものであってもよい。詳細は後述するが、信頼度データ用メッセージIDは車載ECU6それぞれに対し一意に決定されており、すなわち車載ECU6それぞれに対し、異なる信頼度データ用メッセージIDが定義されている。これにより、車載ネットワーク7の通信プロトコルがCAN等の場合、車載装置2は、車載ECU6から信頼度データを受信した場合、当該信頼度データを含むCANメッセージのヘッダー部に格納されたメッセージID(CAN-ID)により、送信元の車載ECU6(車載ECU6のECU-ID)を特定することができる。
【0069】
車載ECU6の制御部61は、評価テーブルを初期化する(E113)。車載ECU6の制御部61は、信頼度データを送信した後、評価テーブルに格納されている値(各車載ECU6に対する信頼度等)を初期化するものであってもよい。評価テーブルの初期化処理を行うことにより、全ての車載ECU6(ECU-ID)の異常回数及び正常回数が0に設定(0クリア)され、信頼度は正常[1]に設定されるものであってもよい。これにより、信頼度データの送信周期を処理単位時間として、他の車載ECU6に対する評価、すなわち信頼度(正常[1]又は異常[-1])の導出を行うことができ、現時点における他の車載ECU6それぞれに対する評価を精度良く行うことができる。
【0070】
又は、車載ECU6の制御部61は、信頼度データを送信した場合であっても、評価テーブルに格納されている値を初期化しないものであってもよい。この際、車載ECU6の制御部61は、他の車載ECU6それぞれか取得した通信データの受信回数、すなわち通信データにおいて、異常と判定した異常通信データの受信回数(異常回数)、及び正常と判定した正常通信データの受信回数(正常回数)を累積(カウントアップ)し、当該累積された回数(異常回数、正常回数)に基づき、信頼度(正常[1]又は異常[-1])を導出(評価)するものであってもよい。車載ECU6の制御部61は、他の車載ECU6に対する評価を行う処理(E101からE103)と、当該評価結果に応じた信頼度データを車載装置2に送信する処理(E111からE113)とを、例えば、サブプロセスを生成することによる並行処理にて継続的に実行するものであってもよい。
【0071】
図6は、車載装置2の制御部3の処理を例示するフローチャートである。車載装置2の制御部3は、例えば車両Cが起動状態又は停止状態(IGスイッチ又はパワースイッチが、オン又はオフ)において、定常的に以下の処理を行う。
【0072】
車載装置2の制御部3は、車載ECU6からの信頼度データを受信したか否かを判定する(S101)。車載ネットワーク7に接続される複数の車載ECU6それぞれは、周期的に信頼度データ(信頼度データを含むCANメッセージ等)を車載装置2に送信する。車載装置2の制御部3は、常時、車載ECU6それぞれからの信頼度データ(信頼度データを含むCANメッセージ等)を待ち受けており、いずれかの車載ECU6から信頼度データが送信された場合、当該信頼度データを受信し、車載装置2の記憶部4に記憶する。
【0073】
信頼度データを受信しなかった場合(S101:NO)、車載装置2の制御部3は、再度S101を実行することにより、ループ処理を行う。これにより、車載装置2の制御部3は、複数の車載ECU6それぞれから送信される信頼度データを待ち受ける処理を継続する。
【0074】
信頼度データを受信した場合(S101:YES)、車載装置2の制御部3は、車載ECU6それぞれの善良性値及び公平性値を導出する(S102)。車載装置2の制御部3は、いずれかの車載ECU6から信頼度データを受信した場合、当該信頼度データの受信をトリガーとして、車載ネットワーク7に接続される複数の車載ECU6それぞれの善良性値及び公平性値を導出する。
【0075】
車載装置2の制御部3は、受信した信頼度データに付与されたメッセージIDに基づき、当該信頼度データの送信元の車載ECU6(ECU-ID)を特定する。車載装置2の制御部3は、車載装置2の記憶部4に記憶されている信頼度通知CAN-IDテーブルを参照することにより、信頼度データの送信元の車載ECU6(ECU-ID)を特定するものであってもよい。
【0076】
図7は、車載装置2における信頼度通知CAN-IDテーブルを例示した説明図である。車載装置2の記憶部4には、信頼度データのヘッダー部に含まれるメッセージIDと、当該メッセージIDを含めた信頼度データを送信する送信元の車載ECU6との対応関係が、例えばテーブル形式(信頼度通知CAN-IDテーブル)にて記憶されている。信頼度通知CAN-IDテーブルは、管理項目(フィールド)として、例えば、メッセージID(信頼度データ用)と、ECUーIDとを含む。
【0077】
メッセージID(信頼度データ用)の管理項目には、信頼度データのヘッダー部に含まれるメッセージID等、当該信頼度データを識別するための識別子が格納される。信頼度データが、CAN又はCAN-FDの場合、メッセージIDには、CAN-IDが格納されるものであってもよい。ECUーIDの管理項目には、同じレコードに格納されるメッセージIDに対応する車載ECU6のID等、当該車載ECU6を一意に特定する識別子が格納される。これにより、メッセージIDに基づき、信頼度データの送信元の車載ECU6を一意に特定することができる。
【0078】
図8は、車載装置2における善良性値及び公平性値の更新処理を例示した説明図である。車載装置2の制御部3は、車載ECU6それぞれ(各ノード)の善良性及び公平性を導出するにあたり、これら善良性及び公平性の初期値を1(正常)に設定(1にて初期化)するものであってもよい。
【0079】
本実施形態における図示において、評価する車載ECU6(左側配置)から、評価される車載ECU6(右側配置)に延びる各辺は、{1(正常)、-1(異常)}の2値の値を取るものであり、信頼度データの送信元である評価する車載ECU6(左側配置)による、他の車載ECU6(右側配置)に対する評価結果を示す。本実施形態において、正常(1)を示す辺は実線にて示され、異常(-1)を示す辺は破線にて示される。車載装置2の制御部3は、車載ECU6それぞれ(各ノード)からの評価(他の車載ECU6に対する評価)を集約し、車載ECU6それぞれに対する善良性値(g(v):善良性スコア)を更新(導出)し、更新(導出)した善良性値を用いて、公平性値(f(v):公平性スコア)を更新(導出)する。車載装置2の制御部3は、更新(導出)した善良性値(g(v):善良性スコア)に基づき、車載ECU6の正否(正常又は異常)を判断(判定)する。すなわち、車載装置2の制御部3は、更新(導出)した善良性値(g(v):善良性スコア)が負である場合、異常を検出(善良性値が負の車載ECU6は異常と判定)する。
【0080】
本実施形態における図示において、車載装置2の制御部3は、善良性値及び公平性値の導出を3ステップにて行うものであってもよい。車載装置2の制御部3は、第1ステップ(Step1)として、所定の処理単位時間において取得した複数の車載ECU6(本実施形態では4つの車載ECU6(ECU1からECU4))から送信された信頼度データそれぞれを受信し、車載装置2の記憶部4に記憶する。この際、車載装置2の記憶部4には、これら4つの車載ECU6(ECU1からECU4)の善良性値及び公平性値(f(v)=1,g(v)=1)が初期化時の状態にて記憶されているものであってもよい。なお、車載装置2の制御部3は、善良性値及び公平性値の導出を継続的に繰り返すものであり、その際、当該導出した善良性値及び公平性値を用いて、車載ECU6から受信した信頼度データに基づき、最新の善良性値及び公平性値の導出(更新)を再帰的に実行する。
【0081】
図9は、車載装置2における信頼度データのストア状態(中間データテーブル)を例示した説明図である。各車載ECU6それぞれには、ユニークなID(一意に示す識別子)が設定されており、車載ECU6は各行単位の情報を信頼度データとして車載装置2に通知するものであってもよい。これにより、車載装置2は、各車載ECU6から到着する信頼度データの1バイト目はIDが1の車載ECU6(ECU1)、2バイト目はIDが2の車載ECU6(ECU2)として、信頼度データにおけるペイロードの先頭からの格納順番にて参照することができる。車載装置2の制御部3は、複数の車載ECU6から受信した信頼度データを、車載装置2の記憶部4に記憶するにあたり、例えばテーブル形式(中間データテーブル)にてストアするものであってもよい。中間データテーブルは、横項目を評価する車載ECU6のIDとし、縦項目を評価される車載ECU6のIDとして、管理項目が定義されるマトリックス状に構成されるものであってもよい。この際、自身に対する評価は0となる。本実施形態においては例示として、図8の第1ステップ(Step1)及び図9にて示すとおり、ECU-IDが1の車載ECU6(ECU1)は、他の車載ECU6に対し異常(-1)であるとの評価を示し、他の車載ECU6(ECU2,ECU3,ECU4)から、異常(-1)であるとの評価がされている。すなわち、車載ECU6(ECU1)は、例えば外部からの攻撃等により制御が乗っ取られたECUであることが想定される。
【0082】
車載装置2の制御部3は、第2ステップ(Step2)として、車載ECU6それぞれの公平性値(本実施形態では初期値)と、車載ECU6それぞれ(ECU1,ECU2,ECU3,ECU4)から受信した信頼度データそれぞれとを用いて、車載ECU6それぞれの善良性値(善良性スコア)を算出する。本実施形態における図示においては、ECU-IDが1の車載ECU6(ECU1)の善良性値は、-1(g(v)=-1)となり、他の車載ECU6(ECU2,ECU3,ECU4)の善良性値は、1(g(v)=0.33)となる。善良性値は、いずれかの車載ECU6(評価される車載ECU6)に対して、他の車載ECU6(評価する車載ECU6)が、正常であると評価する度合(受動的評価度合)を示す。
【0083】
車載装置2の制御部3は、善良性値(g(v))を導出するにあたり、上述した(2)式を用いて、公平性値(f(u))に、車載ECU6自身に対する評価(W(u,v))を乗算した値を、車両Cに搭載される車載ECU6の個数に応じて総和(u∈in(v))し平均化することにより算出するものであってよい。善良性値は、例えば-1(最も善良性が低い)から1(最も善良性が高い)の範囲にて値を取る(値が設定される)ように算出される。従って、善良性値が-1に近接するほど異常度が高くなり、善良性値が1(+1)に近接するほど正常度が高くなる。
【0084】
車載装置2の制御部3は、第3ステップ(Step3)として、車載ECU6それぞれの善良性値(第2ステップで算出した善良性値)と、車載ECU6それぞれ(ECU1,ECU2,ECU3,ECU4)から受信した信頼度データそれぞれとを用いて、車載ECU6それぞれの公平性値(公平性スコア)を算出する。本実施形態における図示においては、ECU-IDが1の車載ECU6(ECU1)の公平性値は、0(f(v)=0)となり、他の車載ECU6(ECU2,ECU3,ECU4)の善良性値は、1(f(v)=0.997)となる。公平性値は、いずれかの車載ECU6(評価する車載ECU6)が、自身(自ECU)以外である他の車載ECU6(評価される車載ECU6)に対し、正常であると評価する度合(能動的評価度合)を示す。
【0085】
車載装置2の制御部3は、公平性値(f(u))を導出するにあたり、上述した(1)式を用いて、車載ECU6自身に対する評価と当該車載ECU6の善良性値との乖離(差分)の絶対値を、車両Cに搭載される車載ECU6の個数に応じて総和(u∈out(u))して算出した平均偏差を用いて算出するものであってよい。公平性値(f(u))は、例えば0(最も公平性が低い)から1(最も公平性が高い)の範囲にて値を取る(値が設定される)ように算出される。
【0086】
車載装置2の制御部3は、公平性値を導出するにあたり、複数の車載ECU6それぞれにおいて、いずれかの車載ECU6による評価結果と、他の車載ECU6それぞれによる評価結果を用いて算出した平均偏差との差分(乖離:評価差分)を、算出(導出)するため、評価差分の絶対値が大きくなるほど公平性値を小さくなる(公平性が低い車載ECU6)ものとなる。従って、公平性値を判断因子として用いることにより、各車載ECU6に対する評価が、大多数の車載ECU6による評価の傾向と異なる(極端にずれている)車載ECU6を効率的に抽出することができる。
【0087】
このように複数の車載ECU6それぞれから受信した信頼度データを用いて、当該信頼度データの受信の都度、善良性値及び公平性値の導出(再計算)を継続することにより、現時点における最新の善良性値及び公平性値に更新し、情報鮮度を担保することができる。
これら善良性値及び公平性値の導出を再帰的に行うことにより、例えば制御が乗っ取られた異常な車載ECU6については、善良性値及び公平性値が収束(g(v)=1、f(v)=0)する傾向にあり、当該乗っ取られた車載ECU6を効率的に検出(特定)することができる。
【0088】
車載装置2の制御部3は、導出した善良性値及び公平性値を信頼度テーブルに格納する(S103)。車載装置2の制御部3は、車載ECU6それぞれにおいて導出した善良性値及び公平性値それぞれを、例えば車載装置2の記憶部4に記憶されている信頼度テーブルに格納することにより、最新の善良性値及び公平性値に更新する。
【0089】
図10は、車載装置2における信頼度テーブル(善良性・公平性テーブル)を例示した説明図である。車載装置2の記憶部4には、車載ネットワーク7に接続される複数の車載ECU6それぞれに対する善良性値及び公平性値が、例えばテーブル形式(善良性・公平性テーブル)にて記憶されている。善良性・公平性テーブルは、管理項目(フィールド)として、例えばECUーID、善良性値、及び公平性値を含む。
【0090】
ECUーIDの管理項目には、車載ECU6のID等、当該車載ECU6を一意に特定する識別子が格納される。善良性値の管理項目には、同じレコードに格納されるECUーIDに対応する善良性値が格納される。公平性値の管理項目には、同じレコードに格納されるECUーIDに対応する公平性値が格納される。
【0091】
車載装置2の制御部3は、いずれかの車載ECU6からの信頼度データの受信をトリガーに、当該受信時点での善良性値及び公平性値(善良性・公平性テーブルに格納された値)を用いて、受信した信頼度データに基づき、善良性値及び公平性値を再計算する。車載装置2の制御部3は、再計算結果である最新の善良性値及び公平性値を善良性・公平性テーブルに格納(上書き)することにより、当該善良性・公平性テーブルを更新し、最新の状態を維持する。車載装置2の制御部3は、本処理を実行後、再度S101からの処理を実行すべくループ処理を行うことにより、善良性値及び公平性値の導出(再計算)を継続する。
【0092】
車載装置2の制御部3は、前回の善良性値等の送信時点から、所定期間が経過したか否かを判定する(S111)。当該所定期間、すなわち車載装置2から外部サーバSV1(SOCサーバ)へ、善良性値等のデータを送信する際の送信周期は、車載装置2の記憶部に記憶されており、当該送信周期と、前回の送信時点からの経過時間との対比に応じて、車載装置2の制御部3は、所定期間が経過したか否かを判定する。
【0093】
所定期間が経過していない場合(S111:NO)、車載装置2の制御部3は、再度S111を実行することにより、ループ処理を行う。これにより、車載装置2の制御部3は、善良性値等に関するデータ(信頼度テーブル内のデータ群)を周期的に外部サーバSV1(SOCサーバ)、又は車載ネットワーク7に接続される全ての車載ECU6に送信するものとなる。
【0094】
所定期間が経過した場合(S111:YES)、車載装置2の制御部3は、車載ECU6それぞれの善良性値及び公平性を送信する(S112)。前回の善良性値等の送信時点から、所定期間が経過した場合、車載装置2の制御部3は、善良性・公平性テーブルを参照し、抽出した車載ECU6それぞれの善良性値、又は善良性値及び公平性を外部サーバSV1(SOCサーバ)に送信する。又は、車載装置2の制御部3は、善良性・公平性テーブルを例えばXML形式のXMLデータに変換し、当該XMLデータを送信することにより、善良性・公平性テーブルに含まれる全ての情報を外部サーバSV1(SOCサーバ)に送信するものであってもよい。車載装置2の制御部3は、本処理を実行後、再度S111からの処理を実行すべくループ処理を行うことにより、外部サーバSV1(SOCサーバ)への周期的な送信処理を継続する。
【0095】
車載装置2の制御部3は、いずれかの車載ECU6の善良性値が異常であるか否かを判定する(S121)。車載装置2の制御部3は、善良性・公平性テーブルを常時、監視することにより、いずれかの車載ECU6の善良性値又は公平性値が異常であるか否かを判定する。車載装置2の制御部3は、善良性値が負の値である場合、当該善良性値は異常であり、当該善良性値の車載ECU6は異常(例えば、乗っ取られた車載ECU6)であると判定する。車載装置2の制御部3は、善良性値が正の値である場合、当該善良性値は正常であり、当該善良性値の車載ECU6は正常であると判定する。又は、車載装置2の制御部3は、例えば、公平性値が0.5未満の車載ECU6は異常であり、公平性値が0.5以上の車載ECU6は正常であると判定するものであってもよい。
【0096】
いずれの車載ECU6の善良性値は異常でない場合(S121:NO)、車載装置2の制御部3は、再度S121を実行することにより、ループ処理を行う。これにより、
車載装置2の制御部3は、複数の車載ECU6それぞれから送信される信頼度データを待ち受ける処理を継続する。
【0097】
いずれかの車載ECU6の善良性値が異常である場合(S121:YES)、車載装置2の制御部3は、善良性値が異常の車載ECU6からの通信データを無効化するための処理を実行する(S122)。いずれかの車載ECU6の善良性値又は公平性値が異常である場合、車載装置2の制御部3は、善良性・公平性テーブルを参照し、善良性値又は公平性値が異常である車載ECU6(ECU-ID)を特定する。その上で、車載装置2の制御部3は、異常と特定した車載ECU6(異常ECU)から送信される通信データを無効化するための処理(無効化処理)を実行する。
【0098】
車載装置2の制御部3は、当該無効化処理を行うあたり、例えば、異常ECUのECU-ID、又は異常ECUから送信される通信データのメッセージIDを、車載ネットワーク7に接続される全ての車載ECU6に送信(警告データのブロードキャスト)し、これら車載ECU6に対し、異常ECUから送信された通信データを無視又は破棄されるものであってもよい。これにより、車載ECU6それぞれは、車載装置2からの警告データを受信することにより、異常ECUからの通信データを無視又は破棄することができる。
【0099】
又は、車載装置2の制御部3は、当該無効化処理を行うあたり、例えば、異常ECUから送信される通信データ(CANメッセージ)に対し、当該通信データ(CANメッセージ)の送信が完了する前に、エラーフレーム等をビットフリップ(重畳又は上書き送信)するものであってもよい。このようにエラーフレーム等をビットフリップされた通信データは、車載ECU6が受信できないため、異常ECUから送信された通信データを効率的に無効化することができる。更に、車載装置2の制御部3は、いずれかの車載ECU6の善良性値が異常である場合、善良性・公平性テーブルに含まれる善良性値及び公平性値に関する情報を、全ての車載ECU6、又は外部サーバSV1(SOCサーバ)に送信するものであってもよい。
【0100】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0101】
特許請求の範囲に記載されている複数の請求項に関して、引用形式に関わらず、相互に組み合わせることが可能である。特許請求の範囲では、複数の請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項が記載されていない場合であっても、これは、多項従属請求項に従属する多項従属請求項の記載を制限するものではない。
【符号の説明】
【0102】
C 車両
S 車載システム
SV1 外部サーバ(SOCサーバ)
1 車外通信装置
2 車載装置(マスターノード)
3 制御部
4 記憶部
5 車内通信部
M 記録媒体
P 制御プログラム(プログラム製品)
6 車載ECU(スレーブノード)
61 制御部
62 記憶部
63 車内通信部
7 車載ネットワーク
71 通信線
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10