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

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

▶ パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカの特許一覧

特許7269922通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム
<>
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図1
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図2
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図3
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図4A
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図4B
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図5
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図6
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図7
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図8
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図9
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図10
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図11
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図12
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図13
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図14
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図15
  • 特許-通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-26
(45)【発行日】2023-05-09
(54)【発明の名称】通信制御装置、モビリティネットワークシステム、通信制御方法およびプログラム
(51)【国際特許分類】
   H04L 12/40 20060101AFI20230427BHJP
   H04L 12/28 20060101ALI20230427BHJP
   B60R 16/02 20060101ALI20230427BHJP
   B60R 16/023 20060101ALI20230427BHJP
【FI】
H04L12/40
H04L12/28 200Z
B60R16/02 621J
B60R16/023 P
【請求項の数】 10
(21)【出願番号】P 2020521120
(86)(22)【出願日】2019-04-22
(86)【国際出願番号】 JP2019017033
(87)【国際公開番号】W WO2019225259
(87)【国際公開日】2019-11-28
【審査請求日】2021-11-16
(31)【優先権主張番号】P 2018098984
(32)【優先日】2018-05-23
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】岸川 剛
(72)【発明者】
【氏名】芳賀 智之
(72)【発明者】
【氏名】松島 秀樹
【審査官】吉江 一明
(56)【参考文献】
【文献】国際公開第2015/151418(WO,A1)
【文献】特開2017-091280(JP,A)
【文献】特開2017-028567(JP,A)
【文献】矢嶋 純 他,非周期送信メッセージによる攻撃を検知可能にするセキュリティCANアダプタ,2016年 暗号と情報セキュリティシンポジウム(SCIS2016),2016年01月19日,pp.1-6,特に, 「4. 提案方式」, 「4.1 準備」, 「4.2 提案アルゴリズム」, 「4.3 提案手法の有効性確認」
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/40
H04L 12/28
B60R 16/02
B60R 16/023
(57)【特許請求の範囲】
【請求項1】
1以上の電子制御ユニットと、ネットワークと、から構成されるモビリティネットワークシステムにおける通信制御装置であって、
前記通信制御装置は、
前記ネットワークと、前記1以上の電子制御ユニットのうちのいずれかの電子制御ユニットとを接続し、
前記電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、
前記通信部および前記送信IDリスト保持部を制御する制御部と、を備え、
前記制御部は、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、
前記送信IDリストに関わる情報を、前記ネットワークへ送信する、
通信制御装置。
【請求項2】
前記制御部は、前記通信部が前記ネットワークから前記送信IDリストに関わる情報を要求することを示す所定の識別子を含むメッセージを受信したときに、前記送信IDリストに関わる情報を前記ネットワークへ送信する、
請求項1記載の通信制御装置。
【請求項3】
前記制御部は、前記送信IDを前記送信IDリストに追加したときに、前記送信IDリストに関わる情報を前記ネットワークへ送信する、
請求項1または2記載の通信制御装置。
【請求項4】
前記制御部は、さらに、前記電子制御ユニットから送信されるメッセージの数を計測し、前記メッセージの数に関わる情報を前記ネットワークへ送信する、
請求項1~3のいずれか1項に記載の通信制御装置。
【請求項5】
前記送信IDリストに関わる情報は、送信IDリストである、
請求項1~4のいずれか1項に記載の通信制御装置。
【請求項6】
前記制御部は、さらに、前記通信部が前記ネットワークから不正な送信IDリストを通知するための不正通知メッセージを受信した場合に、当該不正な送信IDリストが、前記送信IDリスト保持部に保持された前記送信IDリストと一致するときには、以降、前記電子制御ユニットから送信される、不正な送信IDを含むメッセージを、前記ネットワークに送信しない、
請求項5記載の通信制御装置。
【請求項7】
前記制御部は、さらに、前記通信部が前記ネットワークから不正な送信IDリストに関わる情報を通知するための不正通知メッセージを受信した場合に、当該不正な送信IDリストに関わる情報が、前記送信IDリスト保持部に保持された前記送信IDリストに関わる情報と一致するときには、以降、前記電子制御ユニットから送信されるメッセージを、前記ネットワークに送信しない、
請求項1~6のいずれか1項に記載の通信制御装置。
【請求項8】
1以上の電子制御ユニットと、ネットワークと、から構成されるモビリティネットワークシステムであって、
前記モビリティネットワークシステムは、前記1以上の電子制御ユニットと前記ネットワークとをそれぞれ接続する1以上の通信制御装置と、
前記1以上の電子制御ユニットの中から不正な電子制御ユニットを検知する不正検知電子制御ユニットと、を備え、
前記1以上の通信制御装置は、それぞれ、
当該通信制御装置に接続される電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、
前記通信部および前記送信IDリスト保持部を制御する制御部と、を備え、
前記制御部は、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、
前記送信IDリストに関わる情報を、前記ネットワークへ送信し、
前記不正検知電子制御ユニットは、
前記ネットワークに対して、メッセージの送受信を行う送受信部と、
前記1以上の電子制御ユニットが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部と、
前記送受信部および前記正規IDリスト保持部を制御する不正検知部と、を備え、
前記不正検知部は、
前記送受信部が前記ネットワークから、前記送信IDのリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、前記1以上の正規の送信IDリストに関わる情報とを照合し、
前記1以上の正規の送信IDリストに関わる情報のいずれにも合致していない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、前記ネットワークへ送信する、
モビリティネットワークシステム。
【請求項9】
1以上の電子制御ユニットと、ネットワークと、から構成されるモビリティネットワークシステムにおける通信制御装置により実行される通信制御方法であって、
前記通信制御装置は、
前記ネットワークと、前記1以上の電子制御ユニットのうちのいずれかの電子制御ユニットとを接続し、
前記電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、を備え、
前記通信制御方法では、
前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、
前記送信IDリストに関わる情報を、前記ネットワークへ送信する、
通信制御方法。
【請求項10】
請求項に記載の通信制御方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モビリティネットワークシステムで用いられる通信制御装置等に関する。
【背景技術】
【0002】
近年、自動車の中のシステムには、電子制御ユニット(Electronic ControlUnit:以下、ECUとも呼ぶ)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在するが、その中でも最も主流な規格の一つに、Controller Area Network(以下、CAN)という規格が存在する。
【0003】
CANでは、不正なデータフレーム(メッセージ)が送信されるようなケースを想定したセキュリティ機能が存在しないため、例えば、攻撃者によって不正なノードが勝手にCANのバスに接続され、不正なノードが不正なデータフレームを送信することで、車両を不正にコントロールしてしまうことが可能である。
【0004】
このような状況において、非特許文献1では、車載ネットワークに送信されたデータフレームから不正なデータフレームを検知した後に、不正なデータフレームを送信したECUを遮断する方法を開示している。
【先行技術文献】
【非特許文献】
【0005】
【文献】Smart CAN cable, Another proposal of intrusion prevention system(IPS) for in-vehicle networks - LAC Co.,Ltd., Symposium on Cryptography and Information Security, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1に開示されている方法では、正常なデータフレームを誤って不正なデータフレームとして検知してしまった場合に、正常なECUを誤って遮断してしまう。正常なECUを誤って遮断してしまうと、自動車が正常に機能しなくなり、自動車の安全性に影響を及ぼす可能性がある。
【0007】
そこで、本開示は、不正なECUを精度よく検知できる通信制御装置等を提供する。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示の一態様に係る通信制御装置は、1以上の電子制御ユニットと、ネットワークと、から構成されるモビリティネットワークシステムにおける通信制御装置であって、前記通信制御装置は、前記ネットワークと、前記1以上の電子制御ユニットのうちのいずれかの電子制御ユニットとを接続し、前記電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークへ送信し、前記ネットワークからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、前記通信部および前記送信IDリスト保持部を制御する制御部と、を備え、前記制御部は、前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、前記送信IDリストに関わる情報を、前記ネットワークへ送信する。
【0009】
なお、上記の包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラムまたはコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM(Compact Disc-Read Only Memory)等の不揮発性の記録媒体を含む。
【発明の効果】
【0010】
本開示によれば、不正なECUを精度よく検知できる。
【図面の簡単な説明】
【0011】
図1図1は、実施の形態1における、モビリティネットワークシステムの全体構成を示す図である。
図2図2は、実施の形態1における、CANプロトコルのデータフレームのフォーマットを示す図である。
図3図3は、実施の形態1における、CANプロトコルのエラーフレームのフォーマットを示す図である。
図4A図4Aは、実施の形態1における、通信制御装置の構成を示す図である。
図4B図4Bは、実施の形態1における、通信制御装置の別の構成を示す図である。
図5図5は、実施の形態1における、不正検知ECUの構成を示す図である。
図6図6は、実施の形態1における、エンジンECUの構成を示す図である。
図7図7は、実施の形態1における、ブラックリストの一例を示す図である。
図8図8は、実施の形態1における、送信IDリストの一例を示す図である。
図9図9は、実施の形態1における、通信制御装置の状態の一例を示す図である。
図10図10は、実施の形態1における、正規IDリスト保持部に格納される正規の送信IDリストの一例を示す図である。
図11図11は、実施の形態1における、通信制御装置の処理を示すフローチャートである。
図12図12は、実施の形態1における、通信制御装置の処理を示す別のフローチャートである。
図13図13は、実施の形態1における、通信制御装置の処理を示すさらに別のフローチャートである。
図14図14は、実施の形態1における、不正検知ECUの処理を示すフローチャートである。
図15図15は、実施の形態1における、不正なECUを遮断するシーケンスを示す図である。
図16図16は、実施の形態1における、不正なECUを遮断するシーケンスを示す図である。
【発明を実施するための形態】
【0012】
本開示の一実施態様の通信制御装置は、1以上の電子制御ユニットと、ネットワークバスと、から構成されるモビリティネットワークシステムにおける通信制御装置であって、前記通信制御装置は、前記ネットワークバスと、前記1以上の電子制御ユニットのうちのいずれかの電子制御ユニットとを接続し、前記電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、前記通信部および前記送信IDリスト保持部を制御する制御部と、を備え、前記制御部は、前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、前記送信IDリストに関わる情報を、前記ネットワークバスへ送信する。
【0013】
通信制御装置は、自身を介してネットワークバスに接続するECU(通信制御装置に接続されるECU)から受信したメッセージに含まれる送信IDを送信IDリストに追加していく。そして、通信制御装置は、送信IDリストに関わる情報をネットワークバスへ例えば定期的に送信する。例えば、ネットワークバスには、当該ECUが送信するメッセージについての正規の送信IDリストに関わる情報を予め保持する不正検知ECUが配置されているとする。これにより、当該ECUが不正に書き換えられる等して、不正なメッセージをネットワークバスに送信するようになったとしても、通信制御装置が、ネットワークバスに、送信IDリストに関わる情報を送信することで、不正検知ECUが通信制御装置から送信された不正な送信IDを含み得る送信IDリストに関わる情報を受信し、正規の送信IDリストと照合することで、不正を検知できる。したがって、ECUごとに対応する送信IDリストに基づいた不正検知が可能となり、不正なECUを精度よく検知できる。その結果、正常なECUを誤って不正なECUと判断せずに、不正なECUのみを遮断することができ、モビリティネットワークシステムの安全性の向上につなげることができる。
【0014】
また、前記制御部は、前記通信部が前記ネットワークバスから前記送信IDリストに関わる情報を要求することを示す所定の識別子を含むメッセージを受信したときに、前記送信IDリストに関わる情報を前記ネットワークバスへ送信してもよい。
【0015】
これにより、外部からの要求にしたがって、送信IDリストに関わる情報を送信することが可能となり、平常時のネットワークトラフィックへの影響を抑制できる。
【0016】
また、前記制御部は、前記送信IDを前記送信IDリストに追加したときに、前記送信IDリストに関わる情報を前記ネットワークバスへ送信してもよい。
【0017】
これにより、送信IDリストが更新されたときに、送信IDリストに関わる情報を送信することが可能となり、ネットワークトラフィックへの影響を抑制できる。
【0018】
また、前記制御部は、さらに、前記電子制御ユニットから送信されるメッセージの数を計測し、前記メッセージの数に関わる情報を前記ネットワークバスへ送信してもよい。
【0019】
これにより、送信IDリストに関わる情報に加えて、通信制御装置に接続されるECUから送信されるメッセージの数に関わる情報を用いることで、メッセージの数の観点からも異常を把握することが可能となり、さらに精度よく不正なECUを検知することができる。
【0020】
また、前記送信IDリストに関わる情報は、送信IDリストであってもよい。例えば、前記制御部は、さらに、前記通信部が前記ネットワークバスから不正な送信IDリストを通知するための不正通知メッセージを受信した場合に、当該不正な送信IDリストが、前記送信IDリスト保持部に保持された前記送信IDリストと一致するときには、以降、前記電子制御ユニットから送信される、不正な送信IDを含むメッセージを、前記ネットワークバスに送信しなくてもよい。
【0021】
これにより、ネットワークバスに配置された不正検知ECUは、ネットワークバスから受信した送信IDリストに関わる情報として送信IDリストによって、具体的に不正な送信IDを把握することが可能となり、不正な送信IDのメッセージのみの送信を停止するように通信制御装置に要求することができ、安全性を向上できる。
【0022】
また、前記制御部は、さらに、前記通信部が前記ネットワークバスから不正な送信IDリストに関わる情報を通知するための不正通知メッセージを受信した場合に、当該不正な送信IDリストに関わる情報が、前記送信IDリスト保持部に保持された前記送信IDリストに関わる情報と一致するときには、以降、前記電子制御ユニットから送信されるメッセージを、前記ネットワークバスに送信しなくてもよい。
【0023】
これにより、通信制御装置は、不正なECUをネットワークバスから遮断することが可能となり、モビリティネットワークシステムに不正なECUが与える影響を軽減できる。
【0024】
また、本開示の一態様に係る不正検知電子制御ユニットは、1以上の電子制御ユニットと、ネットワークバスと、から構成されるモビリティネットワークシステムにおける、前記1以上の電子制御ユニットの中から不正な電子制御ユニットを検知する不正検知電子制御ユニットであって、前記不正検知電子制御ユニットは、前記ネットワークバスに対して、メッセージの送受信を行う送受信部と、前記1以上の電子制御ユニットが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部と、前記送受信部および前記正規IDリスト保持部を制御する不正検知部と、を備え、前記不正検知部は、前記送受信部が前記ネットワークバスから、前記1以上の電子制御ユニットが送信したメッセージに含まれる送信IDのリストである送信IDリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、前記1以上の正規の送信IDリストに関わる情報とを照合し、前記1以上の正規の送信IDリストに関わる情報のいずれにも合致しない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、前記ネットワークバスへ送信する。
【0025】
不正検知電子制御ユニットは、ネットワークバスに配置されたECUが送信するメッセージについての正規の送信IDリストに関わる情報を予め保持している。これにより、不正検知電子制御ユニットは、ネットワークバスから受信した不正な送信IDを含み得る送信IDリストに関わる情報と、正規の送信IDリストに関わる情報とを照合することで、不正なECUを精度よく検知でき、モビリティネットワークシステムの安全性を向上できる。
【0026】
また、本開示の一態様に係るモビリティネットワークシステムは、1以上の電子制御ユニットと、ネットワークバスと、から構成されるモビリティネットワークシステムであって、前記モビリティネットワークシステムは、前記1以上の電子制御ユニットと前記ネットワークバスとをそれぞれ接続する1以上の通信制御装置と、前記1以上の電子制御ユニットの中から不正な電子制御ユニットを検知する不正検知電子制御ユニットと、を備え、前記1以上の通信制御装置は、それぞれ、当該通信制御装置に接続される電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、前記通信部および前記送信IDリスト保持部を制御する制御部と、を備え、前記制御部は、前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、前記送信IDリストに関わる情報を、前記ネットワークバスへ送信し、前記不正検知電子制御ユニットは、前記ネットワークバスに対して、メッセージの送受信を行う送受信部と、前記1以上の電子制御ユニットが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部と、前記送受信部および前記正規IDリスト保持部を制御する不正検知部と、を備え、前記不正検知部は、前記送受信部が前記ネットワークバスから、前記送信IDのリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、前記1以上の正規の送信IDリストに関わる情報とを照合し、前記1以上の正規の送信IDリストに関わる情報のいずれにも合致していない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、前記ネットワークバスへ送信する。
【0027】
これにより、不正なECUを精度よく検知できるモビリティネットワークシステムを提供できる。
【0028】
また、本開示の一態様に係る通信制御方法は、1以上の電子制御ユニットと、ネットワークバスと、から構成されるモビリティネットワークシステムにおける通信制御装置により実行される通信制御方法であって、前記通信制御装置は、前記ネットワークバスと、前記1以上の電子制御ユニットのうちのいずれかの電子制御ユニットとを接続し、前記電子制御ユニットからメッセージを受信して当該メッセージを前記ネットワークバスへ送信し、前記ネットワークバスからメッセージを受信して当該メッセージを前記電子制御ユニットへ送信する通信部と、前記電子制御ユニットから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部と、を備え、前記通信制御方法では、前記電子制御ユニットから送信されるメッセージに含まれる送信IDが前記送信IDリストに存在しない場合に、当該送信IDを前記送信IDリストに追加し、前記送信IDリストに関わる情報を、前記ネットワークバスへ送信する。
【0029】
これにより、不正なECUを精度よく検知できる通信制御方法を提供できる。
【0030】
また、本開示の一態様に係るプログラムは、上記の通信制御方法をコンピュータに実行させるプログラムである。
【0031】
これにより、不正なECUを精度よく検知できるプログラムを提供できる。
【0032】
また、本開示の一態様に係る不正検知方法は、1以上の電子制御ユニットと、ネットワークバスと、から構成されるモビリティネットワークシステムにおける、前記1以上の電子制御ユニットの中から不正な電子制御ユニットを検知する不正検知電子制御ユニットにより実行される不正検知方法であって、前記不正検知電子制御ユニットは、前記ネットワークバスに対して、メッセージの送受信を行う送受信部と、前記1以上の電子制御ユニットが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部と、を備え、前記不正検知方法では、前記送受信部が前記ネットワークバスから、前記1以上の電子制御ユニットが送信したメッセージに含まれる送信IDのリストである送信IDリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、前記1以上の正規の送信IDリストに関わる情報とを照合し、前記1以上の正規の送信IDリストに関わる情報のいずれにも合致しない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、前記ネットワークバスへ送信する。
【0033】
これにより、不正なECUを精度よく検知できる通信制御方法を提供できる。
【0034】
また、本開示の一態様に係るプログラムは、上記の不正検知方法をコンピュータに実行させるプログラムである。
【0035】
これにより、不正なECUを精度よく検知できるプログラムを提供できる。
【0036】
以下、図面を参照しながら、本開示の実施の形態に関わるモビリティネットワーク不正検知システムについて説明する。なお、以下で説明する実施の形態は、いずれも本開示の好ましい一具体例を示す。つまり、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置および接続形態、ステップ、ステップの順序などは、本開示の一例であり、本開示を限定する主旨ではない。本開示は、請求の範囲の記載に基づいて特定される。したがって、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、本開示の課題を達成するために必ずしも必要ではないが、より好ましい形態を構成する構成要素として説明される。
【0037】
(実施の形態1)
以下、複数のECUが、CANバスを介して通信するモビリティネットワークシステム(例えば車載ネットワークシステム)における不正検知ECUおよび通信制御装置について説明する。
【0038】
[1.1 モビリティネットワークシステムの全体構成]
図1は、本実施の形態における、モビリティネットワークシステム10の全体構成を示す図である。モビリティネットワークシステム10は、図1に示すように、例えば車両(例えば自動車)に搭載される。図1において、モビリティネットワークシステム10は、1以上のECUとして、通信制御装置110、120、130、140、150、160、診断ポート210、不正検知ECU220、エンジンECU230、ブレーキECU240、インパネ(インストルメントパネル)ECU250、および、IVI(In-Vehicle Infortainment) ECU260と、バス100(ネットワークバス)と、から構成される。例えば、図1に示す例では、モビリティネットワークシステム10は、複数のECUのそれぞれに対応するように設けられた複数の通信制御装置を備える。
【0039】
例えば、通信制御装置130に着目すると、通信制御装置130は、バス100と複数のECUのうちのいずれかのECU(ここではエンジンECU230)の間に配置される。エンジンECU230がバス100へ向けてメッセージを送信する際、および、エンジンECU230がバス100からメッセージを受信する際に、通信制御装置130を介してメッセージの送受信が行われる。なお、以下では、メッセージをデータフレームとも呼ぶ。
【0040】
ECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM(Read Only Memory)、RAM(Random Access Memory)等であり、プロセッサにより実行されるプログラムを記憶することができる。例えばプロセッサが、プログラムに従って動作することにより、ECUは各種機能を実現することになる。ECUは、例えば、CANプロトコルに従ってモビリティネットワークにおけるネットワークバスを介してデータフレームの送受信を行う。
【0041】
各ECUは、ネットワークバスに対して、CANのプロトコルに従ったデータフレームを送受信する。例えば、ネットワークバスから他のECUが送信したデータフレームを受信し、また、他のECUに送信したい内容を含むデータフレームを生成してバスに送信する。具体的には、各ECUは、受信したデータフレームの内容に応じた処理を行い、また、ECUに接続されている機器、センサ等の状態を示すデータフレームもしくは他のECUへの指示値(制御値)等のデータフレームを生成して送信する。
【0042】
診断ポート210は、通信制御装置110に接続され、バス100を介して通信を行う。診断ポート210は、一般にOBD(On-Board Diagnostic)ポートと呼ばれるポートであり、ディーラーが保持する専用端末が接続され、バス100に接続されるECUの故障診断等を行うためのポートである。
【0043】
不正検知ECU220は、通信制御装置120に接続され、バス100を介して通信を行う。不正検知ECU220は、バス100を監視し、不正なデータフレームが送信されていないか、あるいは、不正なECUが接続されていないかを検証するECUであり、例えばIDS(Intrusion Detection System) ECUである。
【0044】
エンジンECU230は、通信制御装置130に接続され、バス100を介して通信を行う。エンジンECU230は、バス100から取得する情報に基づいて、エンジンの回転数を制御するECUである。図1では、エンジンECU230に接続されるエンジンの記載を省略している。
【0045】
ブレーキECU240は、通信制御装置140に接続され、バス100を介して通信を行う。ブレーキECU240は、バス100から取得する情報に基づいて、ブレーキの制御を行うECUである。図1では、ブレーキECU240に接続されるブレーキの記載を省略している。
【0046】
インパネECU250は、通信制御装置150に接続され、バス100を介して通信を行う。インパネECU250は、バス100から取得する情報に基づいて、インストルメントパネルの表示を制御するECUである。図1では、インパネECU250に接続されるインストルメントパネルの記載を省略している。
【0047】
IVI ECU260は、通信制御装置160に接続され、バス100を介して通信を行う。IVI ECU260は、車内の情報や娯楽の端末、具体的には、カーナビ(カーナビゲーションシステム)またはオーディオヘッドユニット等に接続されるECUであり、これらの端末の制御を行うECUである。IVI ECU260は、図示していない外部サーバと専用回線でつながっており、地図情報またはアプリケーションのアップデート等を行う機能を持つ。図1では、カーナビおよびオーディオヘッドユニットの記載を省略している。
【0048】
通信制御装置の詳細については後述する。
【0049】
なお、モビリティネットワークシステム10における複数のECUには、通信制御装置を介さずにバス100に接続されるECUが含まれていてもよい。例えば、車両の安全性に大きな影響を及ぼす可能性の高い走行制御に関わるECUとバス100との間のみに異常検知装置を接続することでコストダウンを図ってもよい。
【0050】
[1.2 データフレームフォーマット]
図2は、本実施の形態における、CANプロトコルのデータフレームのフォーマットを示す図である。図2のフォーマットは、CANプロトコルにおける標準IDフォーマットにおけるデータフレームを示している。
【0051】
図2において、データフレームは、Start Of Frame(SOF)、IDフィールド、Remote Transimission Request(RTR)、IDentifier Extension(IDE)、予約bit(r)、データレングスコード(DLC)、データフィールド、CRCシーケンス、CRCデリミタ(DEL)、Acknowledgementスロット(ACK)、ACKデリミタ(DEL)、および、エンドオブフレーム(EOF)から構成される。
【0052】
SOFとは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ここからドミナントへ変更することでフレームの送信開始を通知する。
【0053】
IDフィールドとは、11bitで構成される、データの種類を示す値であるIDが格納されるフィールドである。複数のノードが同時に送信を開始した場合、このフィールドで通信調停を行うために、IDが小さい値を持つデータフレームが高い優先度となるよう設計されている。
【0054】
RTRとは、データフレームを示すドミナント1bitで構成される。
【0055】
IDEとrは、それぞれドミナント1bitで構成される。
【0056】
DLCは、4bitで構成される、データフィールドの長さを示す値である。
【0057】
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、車種または製造者に依存する。
【0058】
CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールドおよびデータフィールドの送信より算出される。
【0059】
CRCデリミタとは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。
【0060】
ACKとは、1bitで構成される。送信ノードはレセシブで送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればドミナントを送信することで、ドミナントが優先される。
【0061】
ACKデリミタとは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
【0062】
EOFとは、7bitのレセシブで構成されており、データフレームの終了を示す。
【0063】
[1.3 エラーフレームフォーマット]
図3は、本実施の形態における、CANプロトコルのエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタ(DEL)と、から構成される。
【0064】
エラーフラグ(プライマリ)とは、エラーの発生を他のノードに知らせるために使用する。6bitのドミナントを連続で送信することで、CANプロトコルにおけるビットスタッフィングルール(連続して同じ値を6bit以上送信しない)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。
【0065】
エラーフラグ(セカンダリ)とは、エラーの発生を他のノードに知らせるために、6bitのドミナントを連続で送信する。エラーフラグ(プライマリ)を受信した全てのノードが送信する。
【0066】
エラーデリミタ(DEL)とは、8bitのレセシブを連続で送信することでエラーフレーム送信の終了を通知する。
【0067】
[1.4 通信制御装置の構成]
次に、通信制御装置の構成について説明する。ここでは、通信制御装置130に着目して説明する。
【0068】
図4Aは、本実施の形態における通信制御装置130の構成を示す図である。なお、通信制御装置110、120、140、150、160は、通信制御装置130の構成と同様の構成であるため説明は省略する。
【0069】
図4Aにおいて、通信制御装置130は、通信部118、制御部114、ブラックリスト保持部115、送信IDリスト保持部116および状態保持部117を備える。通信制御装置130は、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行されるプログラムを記憶することができる。例えば、プロセッサが、プログラムに従って動作することにより、通信制御装置130は制御部114を実現することになる。通信部118は、例えば通信回路により実現される。ブラックリスト保持部115、送信IDリスト保持部116および状態保持部117は、例えばメモリにより実現される。
【0070】
通信部118は、エンジンECU230からデータフレームを受信して当該データフレームをバス100へ送信し、また、バス100からデータフレームを受信して当該データフレームをエンジンECU230へ送信する。通信部118は、具体的には、トランシーバ部111、リピータ部112およびトランシーバ部113から構成される。
【0071】
トランシーバ部111は、エンジンECU230から送信されたデータフレームを受信し、0と1のデジタル信号を出力し、リピータ部112へ通知する。また、トランシーバ部111は、リピータ部112から通知されたデータフレームをエンジンECU230へ送信する。
【0072】
トランシーバ部113は、リピータ部112から通知されたデータフレームをバス100へ送信する。また、トランシーバ部113は、バス100から受信したデータフレームをリピータ部112へ通知する。
【0073】
リピータ部112は、トランシーバ部111から受信したデータフレームを、制御部114へ通知する。制御部114が、トランシーバ部111から受信したデータフレームを送信可能と判断した場合、リピータ部112は、当該データフレームをトランシーバ部113へ通知する。また、リピータ部112は、トランシーバ部113から受信したデータフレームを、制御部114へ通知し、トランシーバ部111へ通知する。
【0074】
ブラックリスト保持部115は、通信制御装置130から送信することを禁止するデータフレームに含まれるIDのリストであるブラックリストを格納している。ブラックリスト保持部115の詳細は、後述する。
【0075】
送信IDリスト保持部116は、通信制御装置130に接続されたエンジンECU230から送信されるデータフレームに含まれる送信IDのリストである送信IDリストを保持する。送信IDリスト保持部116の詳細は、後述する。
【0076】
状態保持部117は、通信制御装置130の状態を示す情報を保持する。状態保持部117の詳細は、後述する。
【0077】
制御部114は、通信部118(リピータ部112)、ブラックリスト保持部115、送信IDリスト保持部116および状態保持部117を制御する。制御部114は、以下の処理を行う。
【0078】
制御部114は、トランシーバ部111から通知されたデータフレームに含まれる送信IDが、ブラックリスト保持部115に格納されている送信IDか否かを判断する。トランシーバ部111から受信したデータフレームに含まれる送信IDが、ブラックリスト保持部115に格納されている場合は、制御部114は、リピータ部112に対して、トランシーバ部111から通知されたデータフレームを、トランシーバ部113へ通知しないように通知する。
【0079】
また、状態保持部117に格納されている通信制御装置110の状態が、「送信停止」の状態である場合、制御部114は、リピータ部112に対して、トランシーバ部111から受信したデータフレームを、トランシーバ部113へ通知しないように通知する。
【0080】
制御部114は、さらに、エンジンECU230から送信されるデータフレームに含まれる送信IDが送信IDリストに存在しない場合に、当該送信IDを送信IDリストに追加する。制御部114は、例えば、送信IDリスト保持部116に保持されている送信IDリストを用いて、送信IDリストに関わる情報(例えばハッシュ値)を所定の間隔で計算し、送信IDリスト保持部116に格納すると共に、当該ハッシュ値と通信制御装置ごとに定められたIDである装置IDとをデータフレームに含めて、トランシーバ部113へ通知するようにリピータ部112へ通知する(つまり、送信IDリストに関わる情報等をバス100へ送信する)。例えば、制御部114は、通信部118がバス100から送信IDリストに関わる情報を要求することを示す所定の識別子を含むデータフレームを受信したときに、送信IDリストに関わる情報をバス100へ送信してもよい。所定の識別子は、送信IDリストに関わる情報を要求することを示す識別子であれば特に限定されない。また、例えば、制御部114は、送信IDを送信IDリストに追加したときに(追加したタイミングで)、送信IDリストに関わる情報をバス100へ送信してもよい。
【0081】
また、制御部114は、通信部118がバス100から(具体的には不正検知ECU220から)不正な送信IDリストに関わる情報を通知するための不正通知データフレームを受信した場合に、当該不正な送信IDリストに関わる情報が、送信IDリスト保持部116に保持された送信IDリストに関わる情報と一致するときには、以降、エンジンECU230から送信されるデータフレームを、バス100に送信しない。例えば、不正通知データフレームには、不正検知ECU220から送信されたことを示す所定のID(例えばIDS ID)が含まれているため、不正通知データフレームが不正な送信IDリストに関わる情報を通知するためのデータフレームであることを制御部114は認識できる。
【0082】
制御部114は、不正通知データフレームに含まれる送信IDリストに関わる情報(例えばハッシュ値)と、送信IDリスト保持部116に含まれる、送信IDリストに関わる情報(例えばハッシュ値)とが一致するか否かを判断する。不正通知データフレームに含まれるハッシュ値と、送信IDリスト保持部116に含まれる送信IDリストのハッシュ値とが一致した場合に、制御部114は、送信IDリスト保持部116に含まれる送信IDリストが不正な送信IDリストであると判断し、通信制御装置130の状態を「送信停止」として、状態保持部117に格納する。ここで、制御部114が、「送信IDリスト保持部116に含まれるIDリストが不正な送信IDリストであると判断する」、とは、「通信制御装置130に接続されるエンジンECU230が不正なECUであると判断する」ということである。そして、制御部114は、通信制御装置130の状態が「送信停止」となっていることから、以降、エンジンECUから送信される、不正な送信IDを含むデータフレームを、バス100に送信しない。
【0083】
なお、トランシーバ部113から通知された不正通知データフレームに含まれるIDがIDS IDである場合に、不正通知データフレームに、通信制御装置130の装置IDと一致する値が含まれているときには、制御部114は、送信IDリスト保持部116に含まれるIDリストが不正な送信IDリストであると判断し、通信制御装置130の状態を「送信停止」として状態保持部117に格納してもよい。つまり、通信制御装置130は、自身が保持している送信IDリストが不正なものか否かを不正通知データフレームを用いて判断する際に、不正通知データフレームに自身が保持している送信IDリストのハッシュ値が含まれていれば不正なものとなっていると判断してもよいし、不正通知データフレームに自身の装置IDが含まれていれば不正なものとなっていると判断してもよい。
【0084】
なお、送信IDリストに関わる情報がハッシュ値ではなく、送信IDリストである場合、制御部114は、通信部118がバス100から不正な送信IDリストを通知するための不正通知メッセージを受信した場合に、当該不正な送信IDリストが、送信IDリスト保持部116に保持された送信IDリストと一致するときには、以降、エンジンECU230から送信される、不正な送信IDを含むデータフレームを、バス100に送信しなくてもよい。
【0085】
[1.5 通信制御装置の別の構成]
図4Bは、本実施の形態における通信制御装置の別の構成を示す図である。図4Bにおいて、通信制御装置130aは、後述するエンジンECU230と一体構造になっている。通信制御装置130aは、通信部118の代わりに通信部119を備え、さらに、エンジンECU230の構成の一部である、フレーム解釈部232、フレーム生成部234および外部機器制御部233を備える点が通信制御装置130と異なる。
【0086】
エンジンECU230の構成の一部であるフレーム解釈部232、フレーム生成部234および外部機器制御部233については、後述する。
【0087】
通信制御装置130aは、通信制御装置130からトランシーバ部111を除いた構成である。言い換えると、通信部119は、通信部118からトランシーバ部111を除いた構成である。また、リピータ部112、トランシーバ部113、制御部114、ブラックリスト保持部115、送信IDリスト保持部116の構成は、通信制御装置110で説明した内容と同じであるため説明は省略する。
【0088】
通信制御装置130は、エンジンECU230のトランシーバ、具体的には、後述するフレーム送受信部231からデータフレームが送信されることを想定した構成である。
【0089】
これに対し、通信制御装置130aは、エンジンECU230のトランシーバからデータフレームを送受信する構成ではなく、エンジンECU230に内蔵されるCANのコントローラである、フレーム生成部234およびフレーム解釈部232が一体化された構成である。これにより、部品数を抑えることが可能となり、開発コストの低下に効果的である。このように、通信制御装置の機能がECUに内蔵されていてもよい。
【0090】
[1.6 不正検知ECUの構成]
次に、不正検知ECU220の構成について説明する。図5は、本実施の形態における不正検知ECU220の構成を示す図である。不正検知ECU220は、送受信部221と、不正検知部222と、フレーム生成部223と、正規IDリスト保持部224と、を備える。例えば、プロセッサが、プログラムに従って動作することにより、不正検知ECU220は不正検知部222およびフレーム生成部223を実現することになる。送受信部221は、例えば通信回路により実現される。正規IDリスト保持部224は、例えばメモリにより実現される。
【0091】
送受信部221は、バス100に対して、データフレームの送受信を行う。具体的には、送受信部221は、不正検知ECU220に接続された通信制御装置120に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、送受信部221は、通信制御装置120からフレームを1bitずつ受信する。エラー無くデータフレームの受信が完了すると、送受信部221は、データフレーム内のID、DLC、データ等の情報を不正検知部222に転送する。
【0092】
また、送受信部221は、通信制御装置120から受信中のデータフレームがCANプロトコルに則っていないデータフレームであると判断した場合は、エラーフレームを通信制御装置120へ送信する。
【0093】
また、送受信部221は、通信制御装置120からエラーフレームを受信した場合、つまり、受信したデータフレームがエラーフレームであると解釈した場合には、それ以降はそのデータフレームを破棄する。
【0094】
また、送受信部221は、フレーム生成部223からデータフレームの送信要求を受けた場合には、通信制御装置120へデータフレームを送信する。
【0095】
正規IDリスト保持部224は、モビリティネットワークシステム10における1以上のECUが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する。具体的には、正規IDリスト保持部224には、モビリティネットワークシステム10における複数のECUそれぞれについて、あらかじめ送信することが定められている送信IDの一覧を示す正規の送信IDリストおよび、正規の送信IDリストのハッシュ値が保持されている。正規IDリスト保持部224の詳細は、後述する。
【0096】
不正検知部222は、送受信部221および正規IDリスト保持部224を制御する。不正検知部222は、以下の処理を行う。
【0097】
不正検知部222は、送受信部221がバス100から(具体的には通信制御装置120から)、1以上のECUが送信したデータフレームに含まれる送信IDのリストである送信IDリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、1以上の正規の送信IDリストに関わる情報とを照合し、1以上の正規の送信IDリストに関わる情報のいずれにも合致しない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、バス100へ(具体的には通信制御装置120へ)送信する。
【0098】
具体的には、不正検知部222は、送受信部221から受信したデータフレームと、正規IDリスト保持部224に格納されている正規の送信IDリストに基づいて、バス100に不正なECUが接続されているか否かを検知する。
【0099】
送受信部221から受信したデータフレームには、通信制御装置110、130、140、150または160が送信する、装置IDと送信IDリストのハッシュ値とを含むデータフレームがある。これらのデータフレームは、通信制御装置110、130、140、150および160のそれぞれに、あらかじめ割り当てられた所定の装置IDがデータフレームのIDとして付与されている。不正検知部222は、送受信部221が受信したデータフレームに送信IDリストのハッシュ値が含まれていることを確認する。その後、不正検知部222は、正規IDリスト保持部224に格納されている1以上の正規の送信IDリストに含まれるハッシュ値の中に、受信したデータフレームに含まれる送信IDリストのハッシュ値と同じ値が存在するかを確認する。
【0100】
正規IDリスト保持部224に格納されている正規の送信IDリストに含まれるハッシュ値の中に、受信したデータフレームに含まれる送信IDリストのハッシュ値が含まれない場合は、不正検知部222は、当該送信IDリストのハッシュ値を送信した通信制御装置に接続されているECUが、不正な送信IDを含むデータフレームを送信したと判断する、すなわち、当該ECUが不正なECUであることを検知する。
【0101】
不正検知部222は、不正なECUを検知すると、不正なECUによる攻撃の影響を緩和するために、不正なECUに接続されている通信制御装置に対して、遮断要求メッセージを送信するための不正通知データフレームの送信要求をフレーム生成部223に通知する。
【0102】
フレーム生成部223は、不正検知部222から、不正なECUの遮断要求の通知を受けると、不正な送信IDリストのハッシュ値、あるいは、不正な送信IDリストのハッシュ値を送信した装置IDを含めた不正通知データフレームを生成し、送受信部221へ、送信要求を通知する。
【0103】
[1.7 エンジンECUの構成]
次に、ECUの構成について説明する。ここでは、通信制御装置130に接続されたエンジンECU230の構成に着目して説明するが、ブレーキECU240、インパネECU250およびIVI ECU260等も同様の構成であるため説明は省略する。
【0104】
図6は、本実施の形態におけるエンジンECU230の構成を示す図である。なおエンジンECU230は、フレーム送受信部231と、フレーム解釈部232と、外部機器制御部233と、フレーム生成部234とから構成される。
【0105】
フレーム送受信部231は、通信制御装置130に対して、CANのプロトコルに従ったデータフレームを送受信する。即ち、フレーム送受信部231は、通信制御装置130からフレームを1bitずつ受信する。また、エラー無くデータフレームの受信を完了すると、データフレーム内のID、DLCおよびデータ等の情報をフレーム解釈部232に転送する。
【0106】
また、フレーム送受信部231は、受信中のデータフレームがCANプロトコルに則っていないデータフレームと判断した場合は、エラーフレームを送信する。
【0107】
また、フレーム送受信部231は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームであると解釈した場合には、それ以降はそのフレームを破棄する。
【0108】
また、フレーム送受信部231は、フレーム生成部234からデータフレームの送信要求を受けた場合には、通信制御装置130へデータフレームを送信する。
【0109】
フレーム解釈部232は、フレーム送受信部231から通知されたデータフレームを解釈し、処理を決定する。例えば、データフレームに直接的にエンジンの回転数を上昇させることを指示するデータが含まれている場合は、外部機器制御部233に対して、エンジンの回転数を上昇させる処理を行うように通知する。
【0110】
外部機器制御部233は、エンジンECU230に接続される外部機器を制御するインターフェースである。外部機器制御部233は、エンジンECU230の場合は、エンジンと接続されており、現在のエンジン回転数の情報を、フレーム生成部234へ通知することで、バス100に、エンジン回転数の情報をブロードキャストし、他のECUにエンジン回転数を通知する。
【0111】
また、フレーム解釈部232から、エンジン回転数の制御情報を通知されると、エンジンの回転数を制御情報で指示されたとおりに制御する。
【0112】
また、ブレーキECU240は、ブレーキに接続され、インパネECU250は、インストルメントパネルに接続され、IVI ECU260は、ナビゲーションシステム等にそれぞれ接続されており、各機器から情報の取得および、各機器の制御を行う。
【0113】
フレーム生成部234は、外部機器制御部233から通知された、外部機器の情報および外部機器の情報に基づいた他のECUへの制御メッセージ等を通知するためのデータフレームの生成を行い、当該データフレームをバス100へ通知するためにフレーム送受信部231へ送信要求を行う。
【0114】
[1.8 ブラックリストの構成]
次に、通信制御装置130のブラックリスト保持部115に格納されているブラックリストの構成について説明する。図7は、本実施の形態におけるブラックリストの一例を示す図である。図7において、ブラックリストには、送信IDがそれぞれ、0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0A、0x0B、0x0C、0x0D、0x0Eおよび0x0FであるブラックリストIDが含まれている。つまり、通信制御装置130に接続されるエンジンECU230から、上記IDのデータフレームが送信されようとした場合に、通信制御装置130は、当該データフレームをバス100に送信しない。
【0115】
ブラックリストには、各通信制御装置が送信するデータフレームのIDである装置IDと、不正検知ECU220が送信するデータフレームのIDであるIDS IDを格納しておくとよい。
【0116】
なお、通信制御装置130は、ブラックリスト保持部115を備えていなくてもよい。例えば、装置IDまたはIDS IDが送信IDリストに追加されれば、不正検知ECU220によってその送信IDリストが不正な送信IDリストであると判定できるため、通信制御装置130にそもそもブラックリストが保持されていなくてもよいとも考えられる。しかし、送信IDリストによる判定が行われるまでは、通信制御装置130または不正検知ECU220のなりすましを放置することになる。このため、送信IDリストとは別に装置IDまたはIDS IDを含むブラックリストが保持されてもよい。これらのIDは、バス100および通信制御装置130の製造段階で決定されるため、車種に依存した設計をする必要がない。このように、通信制御装置130がブラックリスト保持部115を備えている場合には、セキュリティの観点から、不正なECUからの遮断要求を含むデータフレームや、不正なIDリストの送信を防ぐことが可能となり、モビリティネットワークシステム10の安全性が高まる。
【0117】
[1.9 送信IDリストの構成]
次に、通信制御装置130の送信IDリスト保持部116に格納されている送信IDリストについて説明する。
【0118】
図8は、本実施の形態における送信IDリストの一例を示す図である。図8において、送信IDリストが0x100、0x110、0x120、0x130および0x140の送信IDのリストであることを示している。つまり、通信制御装置130に接続されるエンジンECU230からは、上記のIDのデータフレームが送信されたことを示している。また、送信IDリストのハッシュ値は16進数で、60 CD 11 40 D5 D0 63 64であることを示している。
【0119】
なお、ハッシュアルゴリズムは、SHA-256等の暗号学的ハッシュアルゴリズムでもよいし、ブルームフィルタ、チェックサムまたはCyclic Redundancy check等であってもよい。
【0120】
なお、図8では、送信IDリストとハッシュ値が平文のまま格納されているが、暗号化されて格納されていてもよい。また、ハッシュ値は、都度計算すればよく、送信IDリスト保持部116に格納されていなくてもよい。
【0121】
[1.10 通信制御装置の状態の構成]
次に、通信制御装置130の状態保持部117に格納される通信制御装置130の状態の構成について説明する。
【0122】
図9は、本実施の形態における通信制御装置130の状態の一例を示す図である。図9において、通信制御装置130の状態は「通常(通信可能)」であることを示している。つまり、バス100とエンジンECU230とが通信可能な状態であることを示している。
【0123】
通信制御装置130の状態は、「通常(通信可能)」の状態の他に「送信停止」の状態が存在する。「送信停止」状態は、通信制御装置130に接続されるエンジンECU230から、不正なデータフレームが送信されていることを検知している状態である。「送信停止」の状態のときには、通信制御装置130は、エンジンECU230から送信されるデータフレームの送信を停止する。
【0124】
[1.11 正規IDリストの構成]
次に、不正検知ECU220の正規IDリスト保持部224に格納される正規の送信IDリストの構成について説明する。
【0125】
図10は、本実施の形態における正規の送信IDリストの一例を示す図である。正規IDリスト保持部224には、各ECUが送信するデータフレームの正規の送信IDリストが保持されている。正規の送信IDリストは、ECUの設計情報に基づいてあらかじめ作成され、不正検知ECU220の正規IDリスト保持部224に格納される。図10では、正規の送信IDリストの1つ目は0x100、0x110、0x120、0x130、0x140であり、これらの送信IDを送信IDリストとして持つECUが存在することを示しており、そのハッシュ値は、「60 CD 11 40 D5 D0 63 64」である。2つ目の送信IDリストは、0x200、0x210、0x220、0x230であり、そのハッシュ値は、「C9 3F 55 27 C1 22 B3 4F」である。最後の送信IDリストは、0x550、0x551、0x552であり、そのハッシュ値は、「E2 42 EE 4F 0A 67 5A 1B」である。なお、ECUの種類によっては、イベント発生時に送信されるデータフレームがあり、状況によっては、不正検知ECU220がバス100から受信する送信IDリストのハッシュ値が異なってくることがある。例えば、あるECUについての送信IDリストに、図10に示す0x550、0x551および0x552が全て含まれる場合もあれば、状況によっては、イベント発生時に送信されるデータフレームに含まれる0x552等が送信IDリストに含まれない場合もある。このため、正規IDリスト保持部224は、1つのECUについて、複数の正規の送信IDリストを保持していてもよい。具体的には、正規IDリスト保持部224は、1つのECUについて、0x550、0x551および0x552の正規の送信IDリストと、0x550および0x551の正規の送信IDリストとをそれぞれ保持していてもよい。
【0126】
[1.12 通信制御装置の処理]
次に、通信制御装置130の処理について説明する。
【0127】
図11は、本実施の形態における通信制御装置130の処理を示すフローチャートである。
【0128】
ステップS1101では、通信制御装置130は、エンジンECU230からメッセージ(データフレーム)を受信しているか否かを判断する。通信制御装置130は、エンジンECU230からメッセージを受信している場合(ステップS1101でYの場合)は、ステップS1102を実行し、エンジンECU230からメッセージを受信していない場合(ステップS1101でNの場合)は、ステップS1107を実行する。
【0129】
ステップS1102では、通信制御装置130がバス100から受信したメッセージを処理中であるか否かを判断する。通信制御装置130がバス100からのメッセージの処理中である場合(ステップS1102でYの場合)は、処理が完了するまで待機する。通信制御装置130がバス100からのメッセージの処理中でない場合(ステップS1102でNの場合)は、ステップS1103を実行する。
【0130】
ステップS1103では、通信制御装置130は、エンジンECU230から受信したメッセージに含まれる送信IDに基づいて、送信IDリスト保持部116に格納されている送信IDリストを更新する。具体的には、通信制御装置130は、エンジンECU230から送信されるメッセージに含まれる送信IDが送信IDリストに存在しない場合に、当該送信IDを送信IDリストに追加する。その後、通信制御装置130は、ステップS1104を実行する。
【0131】
ステップS1104では、通信制御装置130は、通信制御装置130の状態が「送信停止」であるか、または、エンジンECU230から受信したメッセージに含まれる送信IDがブラックリスト保持部115に格納されるブラックリストに存在するか、のいずれかに該当するか否かを判断する。通信制御装置130の状態が「送信停止」となるのは、後述するステップS1110での処理が行われた場合である。
【0132】
上記いずれかの条件に該当する場合(ステップS1104でYの場合)は、通信制御装置130は、メッセージを破棄して(S1105)、終了する。「送信停止」状態は、通信制御装置130に接続されるエンジンECU230から不正なメッセージが送信されていることを検知している状態である。また、正常であれば送信することのない送信IDのリストであるブラックリストに存在する送信IDのメッセージをエンジンECU230が送信しているということは、エンジンECU230に異常がある。このため、不正なエンジンECU230からのメッセージを破棄する。
【0133】
上記のいずれの条件にも該当しない場合(ステップS1104でNの場合)は、通信制御装置130は、エンジンECU230から受信したメッセージをバス100へ送信し(S1106)、処理を終了する。
【0134】
ステップS1107では、通信制御装置130は、バス100からメッセージを受信しているか否かを判断する。通信制御装置130は、バス100からメッセージを受信している場合(ステップS1107でYの場合)は、ステップS1108を実行する。通信制御装置130は、バス100からメッセージを受信していない場合(ステップS1107でNの場合)は、ステップS1112を実行する。
【0135】
ステップS1108では、通信制御装置130は、エンジンECU230から受信したメッセージの処理中であるか否かを判断する。通信制御装置130がエンジンECU230から受信したメッセージの処理中である場合(ステップS1108でYの場合)は、処理が完了するまで待機する。通信制御装置130がエンジンECU230から受信したメッセージの処理中でない場合(ステップS1108でNの場合)は、ステップS1109を実行する。
【0136】
ステップS1109では、通信制御装置130は、バス100から受信したメッセージが、IDS IDを含む不正通知メッセージ(つまり、不正な送信IDリストを通知するための不正通知メッセージ)であり、かつ、不正通知メッセージに含まれる送信IDリストのハッシュ値が、通信制御装置130の保持する送信IDリストのハッシュ値と一致するか否かを判断する。不正通知メッセージが上記条件に一致する場合(ステップS1109でYの場合)は、通信制御装置130は状態を「送信停止」に移行し(S1110)、終了する。これにより、以降、ステップS1104において、ステップS1105に進むことができ、不正なエンジンECU230からの不正なメッセージがバス100へ流れないようにすることができる。不正通知メッセージが上記条件と一致しない場合(ステップS1110でNの場合)は、通信制御装置130は、バス100から受信したメッセージをエンジンECU230に転送(送信)して(S1111)、処理を終了する。この場合、バス100から受信したメッセージが、不正通知メッセージではなく例えば通常のメッセージであるか、通知対象が他のECUの不正通知メッセージであるため、エンジンECU230に転送される。
【0137】
なお、不正通知メッセージに送信IDリストそのものが含まれていてもよく、この場合ステップS1109で、通信制御装置130は、不正通知メッセージに含まれる送信IDリストが通信制御装置130の保持する送信IDリストと一致するか否かを判断してもよい。また、不正通知メッセージに装置IDが含まれていてもよく、この場合ステップS1109で、通信制御装置130は、不正通知メッセージに含まれる装置IDが通信制御装置130の装置IDと一致するか否かを判断してもよい。これらのいずれであっても、通信制御装置130は、不正通知メッセージの通知対象の通信制御装置を特定できる。
【0138】
ステップS1112では、通信制御装置130は、内部のタイマに従って、送信IDリストに関わる情報(送信IDリストのハッシュ値または送信IDリスト)の送信タイミングであるか否かを判断する。送信IDリストに関わる情報の送信タイミングである場合(ステップS1112でYの場合)は、通信制御装置130は、例えば送信IDリストのハッシュ値をメッセージに含めて、あらかじめ定められた通信制御装置130の装置IDをメッセージのIDとしてバス100に送信し(S1113)、処理を終了する。これにより、当該メッセージを受信した不正検知ECU220は、当該メッセージに含まれる送信IDリストのハッシュ値が通信制御装置130のものであることを認識できる。送信IDリストの送信タイミングでない場合(ステップS1112でNの場合)は、通信制御装置130は、ステップS1101へ戻る。
【0139】
なお、通信制御装置130は、ステップS1112で、送信IDリストそのものをメッセージに含めてバス100に送信してもよい。ただし、送信IDリストそのものよりも送信IDリストのハッシュ値の方が、データサイズが小さいため、メッセージに送信IDリストのハッシュ値を含める場合にはメッセージのデータ量を小さくできる。
【0140】
以上のように、通信制御装置130は、通信制御装置130に接続されるエンジンECU230から受信したメッセージに含まれる送信IDを送信IDリストに追加していく。そして、通信制御装置130は、送信IDリストに関わる情報をバス100へ例えば定期的に送信する。例えば、バス100には、エンジンECU230が送信するメッセージについての正規の送信IDリストに関わる情報を予め保持する不正検知ECU220が配置されている。これにより、エンジンECU230が不正に書き換えられる等して、不正なメッセージをバス100に送信するようになったとしても、通信制御装置130が、バス100に、送信IDリストに関わる情報を送信することで、不正検知ECU220が通信制御装置130から送信された不正な送信IDを含み得る送信IDリストに関わる情報を受信し、正規の送信IDリストと照合することで、不正を検知できる。したがって、ECUごとに対応する送信IDリストに基づいた不正検知が可能となり、不正なECUを精度よく検知できる。その結果、正常なECUを誤って不正なECUと判断せずに、不正なECUのみを遮断することができ、モビリティネットワークシステム10の安全性の向上につなげることができる。
【0141】
[1.13 通信制御装置の別の処理]
通信制御装置130の処理として図11のフローチャートで説明したが、これに限らない。図11では、送信IDリストの送信タイミングが、内部のタイマに従って定期的に送信されるものとして説明したが、通信制御装置130が、送信IDリストに関わる情報を要求することを示す所定の識別子を含むメッセージを受信した場合にのみ、通信制御装置130が送信IDリストに関わる情報を送信するようにしてもよい。
【0142】
これにより、通信制御装置130から送信IDリストに関わる情報を含むメッセージの送信が定期的にバス100にされなくなるため、バス100の負荷の低減ができる。具体的には、図12を用いて説明する。
【0143】
図12のフローチャートを用いて、通信制御装置130が、送信IDリストに関わる情報の送信要求のメッセージを受信する場合の通信制御装置130の処理を説明する。
【0144】
図12は、本実施の形態における通信制御装置130の処理を示す別のフローチャートである。
【0145】
ステップS1201では、通信制御装置130は、エンジンECU230からメッセージを受信しているか否かを判断する。通信制御装置130は、エンジンECU230からメッセージを受信している場合(ステップS1201でYの場合)は、ステップS1202を実行し、エンジンECU230からメッセージを受信していない場合(ステップS1201でNの場合)は、ステップS1207を実行する。
【0146】
ステップS1202では、通信制御装置130がバス100から受信したメッセージを処理中であるか否かを判断する。通信制御装置130がバス100からのメッセージの処理中である場合(ステップS1202でYの場合)は、処理が完了するまで待機する。通信制御装置130がバス100からのメッセージの処理中でない場合(ステップS1202でNの場合)は、ステップS1203を実行する。
【0147】
ステップS1203では、通信制御装置130は、エンジンECU230から受信したメッセージに含まれる送信IDに基づいて、送信IDリスト保持部116に格納されている送信IDリストを更新する。その後、通信制御装置130は、ステップS1204を実行する。
【0148】
ステップS1204では、通信制御装置130は、通信制御装置130の状態が「送信停止」であるか、または、エンジンECU230から受信したメッセージに含まれる送信IDがブラックリスト保持部115に格納されるブラックリストに存在するか、のいずれかに該当するかを判断する。通信制御装置130の状態が「送信停止」となるのは、後述するステップS1210での処理が行われた場合である。
【0149】
上記いずれかの条件に該当する場合(ステップS1204でYの場合)は、通信制御装置130は、メッセージを破棄して(S1205)、処理を終了する。
【0150】
上記のいずれの条件にも該当しない場合(ステップS1204でNの場合)は、通信制御装置130は、エンジンECU230から受信したメッセージをバス100へ送信し(S1206)、処理を終了する。
【0151】
ステップS1207では、通信制御装置130は、バス100からメッセージを受信しているか否かを判断する。通信制御装置130は、バス100からメッセージを受信している場合(ステップS1207でYの場合)は、ステップS1208を実行する。通信制御装置130は、バス100からメッセージを受信していない場合(ステップS1207でNの場合)は、ステップS1201に戻る。
【0152】
ステップS1208では、通信制御装置130は、エンジンECU230から受信したメッセージを処理中であるか否かを判断する。通信制御装置130がエンジンECU230から受信したメッセージの処理中である場合(ステップS1208でYの場合)は、処理が完了するまで待機する。通信制御装置130がエンジンECU230から受信したメッセージの処理中でない場合(ステップS1208でNの場合)は、ステップS1209を実行する。
【0153】
ステップS1209では、通信制御装置130は、バス100から受信したメッセージが、IDS IDを含む不正通知メッセージであり、かつ、不正通知メッセージに含まれる送信IDリストのハッシュ値が、通信制御装置130の保持する送信IDリストのハッシュ値と一致するか否かを判断する。不正通知メッセージが上記条件と一致する場合(ステップS1209でYの場合)は、通信制御装置130は状態を「送信停止」に移行し(S1210)、処理を終了する。不正通知メッセージが上記条件と一致しない場合(ステップS1209でNの場合)は、通信制御装置130は、ステップS1211を実行する。
【0154】
ステップS1211では、通信制御装置130は、バス100から受信したメッセージが、送信IDリストに関わる情報を要求するメッセージであるか否かを判断する。つまり、通信制御装置130は、バス100から受信したメッセージに送信IDリストに関わる情報を要求することを示す所定の識別子を含むか否かを判断する。メッセージが送信IDリストに関わる情報(例えば送信IDリストのハッシュ値)を要求するメッセージの場合(ステップS1211でYの場合)は、通信制御装置130は、送信IDリストのハッシュ値をメッセージに含めて、バス100へ送信し(S1212)、処理を終了する。これにより、外部からの要求にしたがって、送信IDリストを送信することが可能となり、平常時のネットワークトラフィックへの影響を抑制できる。メッセージが送信IDリストに関わる情報を要求するメッセージでない場合(ステップS1211でNの場合)は、通信制御装置130は、バス100から受信したメッセージをエンジンECU230へ転送(送信)し(S1213)、処理を終了する。この場合、バス100から受信したメッセージが、不正通知メッセージではなく例えば通常のメッセージであるか、通知対象が他のECUの不正通知メッセージであるため、エンジンECU230に転送される。
【0155】
[1.14 通信制御装置のさらに別の処理]
通信制御装置130の処理として、図11図12のフローチャートで説明したが、さらに別の通信制御装置130の処理について説明する。例えば、通信制御装置130の送信IDリストが更新されたときのみ、バス100へ送信IDリストのハッシュ値または送信IDリストを送信するようにしてもよい。
【0156】
これにより、通信制御装置130から定期的に送信IDリストを含むメッセージの送信をする必要がなくなり、バス100の負荷の低減ができる。具体的には、図13を用いて説明する。
【0157】
図13のフローチャートを用いて、通信制御装置130の送信IDリストが更新された場合に送信IDリストに関わる情報を送信するときの通信制御装置130の処理を説明する。
【0158】
図13は、本実施の形態における通信制御装置130の処理を示すさらに別のフローチャートである。
【0159】
ステップS1301では、通信制御装置130は、エンジンECU230からメッセージを受信しているか否かを判断する。通信制御装置130は、エンジンECU230からメッセージを受信している場合(ステップS1301でYの場合)は、ステップS1302を実行し、エンジンECU230からメッセージを受信していない場合(ステップS1301でNの場合)は、ステップS1309を実行する。
【0160】
ステップS1302では、通信制御装置130がバス100から受信したメッセージを処理中であるか否かを判断する。通信制御装置130がバス100からのメッセージの処理中である場合(ステップS1302でYの場合)は、処理が完了するまで待機する。通信制御装置130がバス100からのメッセージの処理中でない場合(ステップS1302でNの場合)は、ステップS1303を実行する。
【0161】
ステップS1303では、通信制御装置130は、エンジンECU230から受信したメッセージに含まれる送信IDに基づいて、送信IDリスト保持部116に格納されている送信IDリストを更新する。その後、通信制御装置130は、ステップS1304を実行する。
【0162】
ステップS1304では、通信制御装置130は、ステップS1303において、送信IDリストに変更があったか否かを確認する。送信IDリストに変更があった場合(ステップS1304でYの場合)は、通信制御装置130は、送信IDリストに関わる情報(例えば送信IDリストのハッシュ値)を含めたメッセージをバス100に送信し(S1305)、ステップS1306を実行する。通信制御装置130は、送信IDリストに変更がない場合(ステップS1304でNの場合)は、ステップS1306を実行する。これにより、送信IDリストが更新されたときに、送信IDリストに関わる情報を送信することが可能となり、ネットワークトラフィックへの影響を抑制できる。
【0163】
ステップS1306では、通信制御装置130の状態が「送信停止」であるか、または、エンジンECU230から受信したメッセージに含まれる送信IDがブラックリスト保持部115に格納されるブラックリストに存在するか、のいずれかに該当するか否かを判断する。通信制御装置130の状態が「送信停止」となるのは、後述するステップS1312での処理が行われた場合である。
【0164】
上記いずれかの条件に該当する場合(ステップS1306でYの場合)は、通信制御装置130は、メッセージを破棄して(S1307)、処理を終了する。
【0165】
上記のいずれの条件にも該当しない場合(ステップS1306でNの場合)は、通信制御装置130は、エンジンECU230から受信したメッセージをバス100へ送信し(S1308)、処理を終了する。
【0166】
ステップS1309では、通信制御装置130は、バス100からメッセージを受信しているか否かを判断する。通信制御装置130は、バス100からメッセージを受信している場合(ステップS1309でYの場合)は、ステップS1310を実行する。通信制御装置130は、バス100からメッセージを受信していない場合(ステップS1309でNの場合)は、ステップS1301に戻る。
【0167】
ステップS1310では、通信制御装置130は、エンジンECU230から受信したメッセージを処理中であるか否かを判断する。通信制御装置130がエンジンECU230から受信したメッセージの処理中である場合(ステップS1310でYの場合)は、処理が完了するまで待機する。通信制御装置130がエンジンECU230から受信したメッセージの処理中でない場合(ステップS1310でNの場合)は、ステップS1311を実行する。
【0168】
ステップS1311では、通信制御装置130は、バス100から受信したメッセージが、IDS IDを含む不正通知メッセージであり、かつ、不正通知メッセージに含まれる送信IDリストのハッシュ値が、通信制御装置130の保持する送信IDリストのハッシュ値と一致するか否かを判断する。不正通知メッセージが上記条件に一致する場合(ステップS1311でYの場合)は、通信制御装置130は状態を「送信停止」に移行し(S1312)、処理を終了する。不正通知メッセージが上記条件と一致しない場合(ステップS1311でNの場合)は、通信制御装置130は、バス100から受信したメッセージをエンジンECU230に転送して(S1313)、処理を終了する。
【0169】
[1.15 不正検知ECUの処理]
次に、不正検知ECU220の処理について説明する。
【0170】
図14は、本実施の形態における不正検知ECU220の処理を示すフローチャートである。
【0171】
ステップS1401では、不正検知ECU220は、送信IDリストに関わる情報を受信しているか否かを判断する。送信IDリストに関わる情報を受信しているか否かの判断は、例えば、受信したメッセージのIDがあらかじめ定められた装置IDであるか否かで判断する。送信IDリストに関わる情報を受信している場合(ステップS1401でYの場合)は、不正検知ECU220は、受信した送信IDリストに関わる情報(例えば送信IDリストのハッシュ値)と、正規IDリスト保持部224に格納されている1以上の正規の送信IDリストに関わる情報(例えば正規の送信IDリストのハッシュ値)との照合を行い(S1402)、ステップS1403を実行する。送信IDリストに関わる情報を受信していない場合(ステップS1401でNの場合)は、ステップS1401に戻る。
【0172】
ステップS1403では、不正検知ECU220は、受信した送信IDリストのハッシュ値が、1以上の正規の送信IDリストのハッシュ値のいずれかに合致するか否かを判断する。
【0173】
上記条件に合致しない場合(ステップS1403でNの場合)は、不正検知ECU220は、受信した送信IDリストのハッシュ値が異常であることを通知するために、受信した送信IDリストのハッシュ値(つまり、1以上の正規の送信IDリストに関わる情報のいずれにも合致しない送信IDリストに関わる情報)を、IDをIDS IDとした不正通知メッセージに含めて、バス100へ送信して(S1404)、処理を終了する。
【0174】
上記条件に合致する場合(ステップS1403でYの場合)は、不正検知ECU220は、処理を終了する。
【0175】
以上のように、不正検知ECU220は、バス100に配置されたECUが送信するメッセージについての正規の送信IDリストに関わる情報を予め保持している。これにより、不正検知ECU220は、バス100から受信した不正な送信IDを含み得る送信IDリストに関わる情報と、正規の送信IDリストに関わる情報とを照合することで、不正なECUを精度よく検知でき、モビリティネットワークシステム10の安全性を向上できる。
【0176】
[1.16 不正なECUを遮断するシーケンス]
次に、不正なECUを遮断するシーケンスについて説明する。
【0177】
図15、および図16は、不正なECUを遮断するシーケンスを示す図である。図16のシーケンス図は、図15のシーケンス図の続きを示しており、図15におけるA~Eは、図16におけるA~Eに対応している。図15および図16では、一例として、エンジンECU230になりすまそうとしている不正なECUであるIVI ECU260を不正検知ECU220が検知したときに、IVI ECU260をバス100から遮断するシーケンスを示す。
【0178】
ここで、図15および16に示す、不正なECUを遮断するシーケンスにおいて、不正検知ECU220に接続された通信制御装置120は、メッセージの転送処理を行うのみであるため、図示および詳細な説明は省略する。
【0179】
図15において、まず、エンジンECU230がエンジン回転数を含めたメッセージを送信する(S1501)。
【0180】
エンジンECU230の送信したメッセージを通信制御装置130が受信し、送信IDリストの更新を行う(S1502)。
【0181】
その後、通信制御装置130は、エンジン回転数を含んだメッセージをバス100に送信する(S1503)。
【0182】
バス100に送信されたエンジン回転数を含むメッセージを通信制御装置160が受信し、IVI ECU260へ転送する(S1504)。
【0183】
その後、不正なIVI ECU260は、例えば、エンジンECU230によるエンジン回転数を、異なる回転数にするために、エンジン回転数を含んだメッセージを送信する(S1505)。このメッセージは、IVI ECU260が本来送信しないはずのエンジン回転数を含んだメッセージであり、不正なメッセージである。
【0184】
通信制御装置160は、送信IDリストを更新し(S1506)、エンジン回転数を含んだ不正なメッセージをバス100へ送信する(S1507)。このとき、通信制御装置160の送信IDリストには、IVI ECU260が本来送信しないはずのメッセージの送信IDが追加される。
【0185】
通信制御装置130は、バス100に流れるエンジン回転数を含んだ不正なメッセージを、エンジンECU230へ転送する(S1508)。
【0186】
次に、図15に引き続き図16において、通信制御装置130は、送信IDリストを送信するタイミングになり、送信IDリストのハッシュ値をメッセージに含めた、IDが通信制御装置130の装置IDであるメッセージを、バス100に送信する(S1509)。
【0187】
送信されたメッセージのIDが通信制御装置130の装置IDであるので、不正検知ECU220は、通信制御装置120(図示せず)を経由してメッセージを受信する。不正検知ECU220は、メッセージに含まれる送信IDリストのハッシュ値と、1以上の正規の送信IDリストのハッシュ値とを照合し、通信制御装置130の送信IDリストには不正な送信IDが含まれていないことから、受信した送信IDリストのハッシュ値が、1以上の正規の送信IDリストのハッシュ値のいずれかに該当することを確認する(S1510)。
【0188】
次に、通信制御装置160は、送信IDリストを送信するタイミングとなり、送信IDリストのハッシュ値をメッセージに含めた、IDが通信制御装置160の装置IDであるメッセージを、バス100に送信する(S1511)。
【0189】
送信されたメッセージのIDが通信制御装置160の装置IDであるので、不正検知ECU220は、通信制御装置120(図示せず)を経由してメッセージを受信する。不正検知ECU220は、メッセージに含まれる送信IDリストのハッシュ値と、1以上の正規の送信IDリストのハッシュ値とを照合し、通信制御装置160の送信IDリストには不正な送信IDが含まれていることから、受信した送信IDリストのハッシュ値が、1以上の正規IDリストに含まれる送信IDリストのハッシュ値のいずれにも該当しないことを確認する(S1512)。これは、IVI ECU260がエンジン回転数を含んだ不正なメッセージを送信したために、送信IDリストが不正なものとなったことが原因で、受信した送信IDリストのハッシュ値が、正規の送信IDリストのハッシュ値とは一致しなくなったためである。
【0190】
その後、不正検知ECU220は、通信制御装置160に不正なECUが接続されていることを通知するために、受信した送信IDリストのハッシュ値を含めた、IDがIDS IDである不正通知メッセージを、バス100へ送信する(S1513)。
【0191】
送信されたメッセージのIDがIDS IDであるメッセージであるので、通信制御装置130は、バス100から、不正通知メッセージを受信する。通信制御装置130は、不正通知メッセージに含まれる送信IDリストのハッシュ値が、通信制御装置130が保持する送信IDリストのハッシュ値と一致しないことを確認する(S1514)。つまり、通信制御装置130は、受信した不正通知メッセージが自身宛てでないことを確認する。
【0192】
送信されたメッセージのIDがIDS IDであるメッセージであるので、通信制御装置160は、バス100から、不正通知メッセージを受信する。通信制御装置160は、不正通知メッセージに含まれる送信IDリストのハッシュ値が、通信制御装置160が保持する送信IDリストのハッシュ値と一致することを確認する(S1515)。つまり、通信制御装置160は、受信した不正通知メッセージが自身宛てであることを確認する。
【0193】
その後、通信制御装置160は、状態を「送信停止」へ移行する(S1516)。通信制御装置160は、以降、IVI ECU260から送信されるメッセージを、バス100に送信しない。
【0194】
IVI ECU260は、エンジン回転数を含んだメッセージを送信する(S1517)。このメッセージは、IVI ECU260が本来送信しないはずのエンジン回転数を含んだメッセージであり、不正なメッセージである。
【0195】
通信制御装置160は、状態が「送信停止」へ移行しているため、エンジン回転数を含んだ不正なメッセージを破棄する、つまり、バス100に送信しない(S1518)。これにより、通信制御装置160は、不正なIVI ECU260をバス100から遮断することが可能となり、モビリティネットワークシステム10に不正なIVI ECU260が与える影響を軽減できる。
【0196】
(その他変形例)
なお、本開示を上記各実施の形態に基づいて説明してきたが、本開示は、上記各実施の形態に限定されないのはもちろんである。以下のような場合も本開示に含まれる。
【0197】
例えば、本開示は、通信制御装置または不正検知ECU220として実現できるだけでなく、通信制御装置および不正検知ECU220を備えるモビリティネットワークシステム10として実現できる。
【0198】
具体的には、モビリティネットワークシステム10は、1以上のECUと、バス100と、から構成されるシステムであって、1以上のECUとバス100とをそれぞれ接続する1以上の通信制御装置と、1以上のECUの中から不正なECUを検知する不正検知ECU220と、を備え、1以上の通信制御装置は、それぞれ、当該通信制御装置に接続されるECUからメッセージを受信して当該メッセージをバス100へ送信し、バス100からメッセージを受信して当該メッセージを当該ECUへ送信する通信部118と、当該ECUから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部116と、通信部118および送信IDリスト保持部116を制御する制御部114と、を備え、制御部114は、当該ECUから送信されるメッセージに含まれる送信IDが送信IDリストに存在しない場合に、当該送信IDを送信IDリストに追加し、送信IDリストに関わる情報を、バス100へ送信し、不正検知ECU220は、バス100に対して、メッセージの送受信を行う送受信部221と、1以上のECUが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部224と、送受信部221および正規IDリスト保持部224を制御する不正検知部222と、を備え、不正検知部222は、送受信部221がバス100から、送信IDのリストに関わる情報を受信したときに、当該送信IDリストに関わる情報と、1以上の正規の送信IDリストに関わる情報とを照合し、1以上の正規の送信IDリストに関わる情報のいずれにも合致していない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、バス100へ送信する。
【0199】
また、例えば、通信制御装置は、ECUとバス100とを接続するコネクタであってもよい。
【0200】
上記の実施の形態では、モビリティネットワークをCANとして説明したが、これに限定されることなく、CAN-FD(CAN with Flexible Data rate)、Ethernet(登録商標)、LIN(Local Interconnect Network)、FlexRay(登録商標)、MOST(Media Oriented Systems Transport)であってもよいし、それぞれを組み合わせた構成であってもよい。
【0201】
また、上記の実施の形態では、自動車に搭載されるモビリティネットワークにおけるサイバーセキュリティ対策として説明したが、本開示の適用範囲はこれに限られない。自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよい。すなわち、本開示は、モビリティネットワークおよびモビリティネットワークシステムにおけるサイバーセキュリティ対策として適用可能である。
【0202】
上記の実施の形態では、通信制御装置は、送信IDリストのハッシュ値をバスへ送信していたが、送信IDリストのハッシュ値ではなく、上述したように、送信IDリストを送信してもよい。これにより、不正検知ECU220は、他のECUから送信されたデータフレームのIDを詳細に把握することが可能となり、その後に、不正なIDのデータフレームのみの送信を停止するように要求することができ、安全性向上の観点から効果的である。
【0203】
上記の実施の形態では、通信制御装置は、不正検知ECUから送信される不正な送信IDリストのハッシュ値が、自身の保持する送信IDリストのハッシュ値と一致する場合に、状態を「送信停止」へ移行し、接続されるECUからのデータフレームを遮断するが、一致した段階で、状態を「送信停止」へ移行しなくてもよい。あるいは、送信停止以外の対応をとってもよい。
【0204】
例えば、不正検知ECUから送信される不正な送信IDリストのハッシュ値と、自身の送信IDリストのハッシュ値とが一致した場合に、通信制御装置は、自分が一致していることを通知するデータフレーム、および、詳細な送信IDリストをバス100へ送信することを行ってもよい。
【0205】
これにより、不正検知ECUが、不正な送信IDリストと判断した通信制御装置に対して、どのような対応を行うべきかを決定するための詳細な情報を取得することができ、状況に応じた適切な対応を行うことが可能となる。
【0206】
上記の実施の形態では、例えば、通信制御装置の状態が「送信停止」のときに、ECUからのデータフレームを全て遮断するが、全てのデータフレームを遮断しなくてもよい。例えば、不正検知ECUから、特定のIDに関して送信停止要求メッセージを通知されたときに、特定のIDを自身の通信制御装置のブラックリストに追記することで、特定のIDのみのデータフレームの送信を停止してもよい。
【0207】
上記の実施の形態では、通信制御装置は送信IDリストを保持していたが、送信IDリストは、不揮発メモリに保持してもよいし、イグニッションをONにする毎にリセットされてもよいし、所定の期間において送信された送信IDのリストを保持してもよい。
【0208】
上記の実施の形態では、通信制御装置が送信IDリストに関わる情報を送信していたが、送信IDリストに関わる情報以外の情報も送信してもよい。例えば、制御部114は、さらに、ECUから送信されるメッセージの数を計測し、メッセージの数に関わる情報をバス100へ送信してもよい。例えば、単位時間当たりの送信メッセージの数、または、送信したメッセージに含まれるIDの数を付加的に送信してもよい。これにより、不正検知ECU220は、送信IDリストの異常だけでなく、送信量の観点からも異常を把握することが可能となり、さらに精度よく不正なECUを検知することができる。
【0209】
また、例えば、不正検知ECU220が、正規の送信IDリストを送信し、通信制御装置は自身の送信IDリストが正規の送信IDリストの中に一致するものが存在するかによって、ECUからのデータフレームを送信停止するかを判断してもよい。例えば、不正検知ECU220から送信される正規の送信IDリストと自身の送信IDリストとが一致しない期間が所定の期間継続した場合に、通信制御装置はECUから送信されるデータフレームの送信を停止してもよい。
【0210】
上記の実施の形態では、通信制御装置はブラックリストに含まれる送信IDのデータフレームがECUから送信された場合に、当該データフレームの送信を停止しているが、この時点で、不正なECUが接続されている疑いがあるとして、不正検知ECU220に、ブラックリストに含まれる送信IDの送信が行われたことを通知してもよい。これにより、より早期にECUの不正な挙動を検知することができ、安全性向上の観点から効果的である。
【0211】
上記の実施の形態では、不正検知ECU220が受信した送信IDリストに関わる情報が、不正検知ECU220の内部に保持される1以上の正規の送信IDリストに関わる情報のいずれにも合致しないとき、不正な送信IDリストを検知する例を示したが、いずれの正規の送信IDリストに合致しないときも、不正な送信IDリストと判断しない場合があってもよい。例えば、診断ポートに接続される通信制御装置等から送信されるデータフレームに含まれるIDは動的に変化しうる。そのため、想定しうる送信IDリストのパターンのすべてを、不正検知ECU220が保持しておくことは現実的でない可能性がある。そこで、不正検知ECU220は、所定の期間に、受信する送信IDリストが、正規の送信IDリストに合致しない数が、所定数以下である場合には、不正な送信IDリストを検知したことを、バス100に通知しないようにしてもよい。
【0212】
上記の実施の形態では、不正検知ECU220の内部に正規の送信IDリストが保持される例を示したが、内部に正規の送信IDリストを保持していなくてもよい。このとき、不正検知ECU220は、各通信制御装置から送信される送信IDリストを受信するたびに、更新しながら保持しておく。送信IDリストの更新が行われることをもって、不正なECUから、不正なデータフレームが送信されたことを検知してもよいし、送信IDリストの更新が、所定の時間内に所定の回数以上行われることによって、不正なECUから、不正なデータフレームが送信されたことを検知してもよい。これにより、不正検知ECU220では、あらかじめ正規送信IDリストを保持しておく必要がなくなり、効率的なシステム開発が行える。
【0213】
上記の実施の形態では、不正検知ECU220は送信IDリストと、正規の送信IDリストとの照合によって、不正なECUを検知していたが、不正なECUの検知方法は、これだけに限らない。例えば、不正検知ECU220には、他の異常検知アルゴリズムが実装されており、それによって不正なECUの接続を検知してもよく、他の異常検知アルゴリズムの結果と、正規の送信IDリストの照合結果の組み合わせによって、不正なECUの接続を検知してもよい。
【0214】
上記の実施の形態では、不正検知ECUは、送信IDリストと正規の送信IDリストとが一致するかのみで、不正なECUの接続を検知していたが、さらに、装置IDとの照合を行ってもよい。例えば、正規の送信IDリスト内に、これまでにどの装置IDが、どの正規の送信IDリストに合致したのかを追加で保持しておいてもよい。これにより、装置IDとリストの対応が崩れたときに、不正なECUが接続されていることを検知することが可能となる。
【0215】
上記の実施の形態では、バス100に接続される通信制御装置内に、送信IDリスト保持部116および送信の遮断を行う制御部114を保持しているが、通信制御装置内にこれらの構成要素を持たなくてもよい。例えば、トランシーバやスイッチに同様の構成要素が保持されていてもよい。
【0216】
上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0217】
上記の実施の形態における各装置は、構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0218】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部またはすべてを含むように1チップ化されてもよい。
【0219】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【0220】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0221】
上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【0222】
本開示は、通信制御装置として実現できるだけでなく、通信制御装置を構成する各構成要素が行うステップ(処理)を含む通信制御方法として実現できる。
【0223】
通信制御方法は、1以上のECUと、バス100と、から構成されるモビリティネットワークシステム10における通信制御装置により実行される通信制御方法であって、通信制御装置は、バス100と、1以上のECUのうちのいずれかのECUとを接続し、当該ECUからメッセージを受信して当該メッセージをバス100へ送信し、バス100からメッセージを受信して当該メッセージを当該ECUへ送信する通信部118と、当該ECUから送信されるメッセージに含まれる送信IDのリストである送信IDリストを保持する送信IDリスト保持部116と、を備え、通信制御方法では、当該ECUから送信されるメッセージに含まれる送信IDが送信IDリストに存在しない場合に、当該送信IDを送信IDリストに追加し(図11のステップS1103等)、送信IDリストに関わる情報を、バス100へ送信する(図11のステップS1113等)。
【0224】
また、本開示は、不正検知ECU220として実現できるだけでなく、不正検知ECU220を構成する各構成要素が行うステップ(処理)を含む不正検知方法として実現できる。
【0225】
不正検知方法は、1以上のECUと、バス100と、から構成されるモビリティネットワークシステム10における、1以上のECUの中から不正なECUを検知する不正検知ECU220により実行される不正検知方法であって、不正検知ECU220は、バス100に対して、メッセージの送受信を行う送受信部221と、1以上のECUが送信する正規のメッセージに含まれる送信IDのリストである正規の送信IDリストに関わる情報を1以上保持する正規IDリスト保持部224と、を備え、不正検知方法では、送受信部221がバス100から、1以上のECUが送信したメッセージに含まれる送信IDのリストである送信IDリストに関わる情報を受信したときに(図14のステップS1401でNの場合)、当該送信IDリストに関わる情報と、1以上の正規の送信IDリストに関わる情報とを照合し(図14のステップS1402)、1以上の正規の送信IDリストに関わる情報のいずれにも合致しない送信IDリストに関わる情報を、不正な送信IDリストに関わる情報を通知するための不正通知メッセージに含めて、バス100へ送信する(ステップS1404)。
【0226】
また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0227】
また、本開示は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
【0228】
また、本開示は、コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0229】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
【0230】
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0231】
上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0232】
本開示は、モビリティネットワークを搭載した車両等に利用可能である。
【符号の説明】
【0233】
10 モビリティネットワークシステム
100 バス
110、120、130、130a、140、150、160 通信制御装置
111 トランシーバ部
112 リピータ部
113 トランシーバ部
114 制御部
115 ブラックリスト保持部
116 送信IDリスト保持部
117 状態保持部
118、119 通信部
210 診断ポート
220 不正検知ECU
221 送受信部
222 不正検知部
223 フレーム生成部
224 正規IDリスト保持部
230 エンジンECU
231 フレーム送受信部
232 フレーム解釈部
233 外部機器制御部
234 フレーム生成部
240 ブレーキECU
250 インパネECU
260 IVI ECU
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16