(57)【要約】【課題】簡易な構成にて車載通信システム内に送信された危険性の高いメッセージの検知を可能とする車載通信装置、車載通信システム及び車載通信方法を提供する。【解決手段】車載通信バスにバス接続される通信部を備える車載通信装置であって、前記通信部により、計数の対象とする対象メッセージを含むメッセージの送受信を制御し、認証情報を含む特定のメッセージを前記通信部から間欠的に送信させる通信制御部を備え、該通信制御部は、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませる。【選択図】図５
2019080119.tif 000002
【特許請求の範囲】
【請求項１】
車載通信バスにバス接続される通信部を備える車載通信装置であって、
前記通信部により、計数の対象とする対象メッセージを含むメッセージの送受信を制御し、認証情報を含む特定のメッセージを前記通信部から間欠的に送信させる通信制御部を備え、
該通信制御部は、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませる
車載通信装置。
【請求項２】
前記車載通信バスはＣＡＮバスであり、
前記特定のメッセージは定期的に送信されるキープアライブメッセージであり、該キープアライブメッセージのペイロードに前記認証情報及び前記送信回数が含まれ、該キープアライブメッセージには、前記ＣＡＮバスでの調停で他の通信装置よりも優先されるＣＡＮＩＤが付与されている
請求項１に記載の車載通信装置。
【請求項３】
前記特定のメッセージには、自装置のエラー状態を示す情報が含まれている
請求項２に記載の車載通信装置。
【請求項４】
車載通信バスにバス接続される通信部を備え、該通信部によりメッセージを送受信する車載通信装置であって、
計数の対象とする対象メッセージの受信回数を記憶する記憶部と、
前記通信部にて受信したメッセージが前記対象メッセージである場合、前記記憶部に記憶してある受信回数を更新する更新部と、
前記通信部にて受信したメッセージが特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、該特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、合致しないと判断した場合に異常を検知する異常検知部と
を備える車載通信装置。
【請求項５】
前記異常検知部は、前記特定のメッセージに含まれている認証情報に基づき認証処理を実行する認証処理部を更に備え、
該認証処理部にて認証が成功し、且つ前記受信回数及び送信回数が合致したと判断された場合に正常であると判断する
請求項４に記載の車載通信装置。
【請求項６】
車載通信バスにバス接続される通信部を備える複数の車載通信装置を含む車載通信システムであって、
前記複数の車載通信装置の一部は、
前記通信部により、計数の対象とする対象メッセージを含むメッセージの送受信を制御し、認証情報を含む特定のメッセージを前記通信部から間欠的に送信させる通信制御部を備え、
該通信制御部は、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませ、
前記複数の車載通信装置の一部又は全部は、
前記対象メッセージの受信回数を記憶する記憶部と、
前記通信部にて受信したメッセージが前記対象メッセージである場合、前記記憶部に記憶してある受信回数を更新する更新部と、
前記通信部にて受信したメッセージが前記特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、該特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、合致しないと判断した場合に異常を検知する異常検知部と
を備える車載通信システム。
【請求項７】
車載通信バスにバス接続される通信部を備える複数の車載通信装置間でメッセージを送受信する通信方法であって、
前記複数の車載通信装置の一部は、
計数の対象とする対象メッセージを含むメッセージを前記通信部から複数回送信し、
認証情報を含む特定のメッセージを間欠的に前記通信部から送信し、
第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませ、
前記複数の車載通信装置の一部又は全部は、
前記通信部にて受信したメッセージが前記対象メッセージである場合、記憶部に記憶してある受信回数を更新し、
前記通信部にて受信したメッセージが前記特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、
受信した前記特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、
合致しないと判断した場合に異常を検知する車載通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載通信装置、車載通信システム及び車載通信方法に関する。
【背景技術】
【０００２】
車輌制御の分野では、車内に配される多数の機器を電気的に制御するＥＣＵ（Electronic Control Unit ）等の制御装置を相互に通信可能とした通信システムを構成し、相互に情報を交換して送受信させて、多様な処理を協調して行なう構成が一般的となっている。このような通信システムに、攻撃者が不正な情報を送出することにより、車輌の操舵が不能になるなどの危険性が指摘されている。
【０００３】
車載通信システムを攻撃から守るため、例えば車載制御装置に搭載されるソフトウェアの共通プラットフォームを提唱するAUTOSAR （登録商標）では、車載通信システムに使用されるＣＡＮ（Control Area Network）プロトコルに基づくメッセージに、認証情報を付与することを提案している（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】AUTOSAR 、“Specification of Module Secure Onboard Communication”、[online]、2016年11月30日、Classic Platform Release 4.3.0、インターネット〈https://www.autosar.org/fileadmin/files/standards/classic/4-3/software-architecture/safety-and-security/standard/AUTOSAR_SWS_SecureOnboardCommunication.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１のように、車載通信システム内で送受信される情報夫々に認証情報を付与し、受信側で認証情報によって安全な情報か否かを検証することで危険な情報を除外し、システムを保護することは可能である。しかしながら、全ての情報に認証情報を付与することは通信負荷及び処理負荷の観点から実装が困難である。
【０００６】
本開示の目的は、簡易な構成にて車載通信システム内に送信された危険性の高いメッセージの検知を可能とする車載通信装置、車載通信システム及び車載通信方法を提供することである。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る車載通信装置は、車載通信バスにバス接続される通信部を備える車載通信装置であって、前記通信部により、計数の対象とする対象メッセージを含むメッセージの送受信を制御し、認証情報を含む特定のメッセージを前記通信部から間欠的に送信させる通信制御部を備え、該通信制御部は、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませる。
【０００８】
本開示の一態様に係る車載通信装置は、前記車載通信バスはＣＡＮバスであり、前記特定のメッセージは定期的に送信されるキープアライブメッセージであり、該キープアライブメッセージのペイロードに前記認証情報及び前記送信回数が含まれ、該キープアライブメッセージには、前記ＣＡＮバスでの調停で他の通信装置よりも優先されるＣＡＮＩＤが付与されている。
【０００９】
本開示の一態様に係る車載通信装置は、前記特定のメッセージには、自装置のエラー状態を示す情報が含まれている。
【００１０】
本開示の一態様に係る車載通信装置は、車載通信バスにバス接続される通信部を備え、該通信部によりメッセージを送受信する車載通信装置であって、計数の対象とする対象メッセージの受信回数を記憶する記憶部と、前記通信部にて受信したメッセージが前記対象メッセージである場合、前記記憶部に記憶してある受信回数を更新する更新部と、前記通信部にて受信したメッセージが特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、該特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、合致しないと判断した場合に異常を検知する異常検知部とを備える。
【００１１】
本開示の一態様に係る車載通信装置は、前記異常検知部は、前記特定のメッセージに含まれている認証情報に基づき認証処理を実行する認証処理部を更に備え、該認証処理部にて認証が成功し、且つ前記受信回数及び送信回数が合致したと判断された場合に正常であると判断する。
【００１２】
本開示の一態様に係る車載通信システムは、車載通信バスにバス接続される通信部を備える複数の車載通信装置を含む車載通信システムであって、前記複数の車載通信装置の一部は、前記通信部により、計数の対象とする対象メッセージを含むメッセージの送受信を制御し、認証情報を含む特定のメッセージを前記通信部から間欠的に送信させる通信制御部を備え、該通信制御部は、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませ、前記複数の車載通信装置の一部又は全部は、前記対象メッセージの受信回数を記憶する記憶部と、前記通信部にて受信したメッセージが前記対象メッセージである場合、前記記憶部に記憶してある受信回数を更新する更新部と、前記通信部にて受信したメッセージが前記特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、該特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、合致しないと判断した場合に異常を検知する異常検知部とを備える。
【００１３】
本開示の一態様に係る車載通信方法は、車載通信バスにバス接続される通信部を備える複数の車載通信装置間でメッセージを送受信する通信方法であって、前記複数の車載通信装置の一部は、計数の対象とする対象メッセージを含むメッセージを前記通信部から複数回送信し、認証情報を含む特定のメッセージを間欠的に前記通信部から送信し、第１の時点に送信する前記特定のメッセージに、前記第１の時点よりも前に送信した直近の特定のメッセージの送信後から該第１の時点までに送信した前記対象メッセージの送信回数を含ませ、前記複数の車載通信装置の一部又は全部は、前記通信部にて受信したメッセージが前記対象メッセージである場合、記憶部に記憶してある受信回数を更新し、前記通信部にて受信したメッセージが前記特定のメッセージである場合、前記記憶部に記憶してある受信回数を読み出し、受信した前記特定のメッセージに含まれている前記対象メッセージの送信回数と合致するか否かを判断し、合致しないと判断した場合に異常を検知する。
【００１４】
本開示の一態様では、車載通信装置から間欠的に送信される特定のメッセージに、その車載通信装置自身が複数回送信するメッセージの内、計数の対象とする対象メッセージの送信回数が含まれる。これにより車載通信バスにバス接続してメッセージを受信する他の車載通信装置にて、この特定のメッセージに含まれる送信回数と、実際に車載通信バスから対象メッセージを受信した回数とを比較し、その回数が一致するか否かで異常を検知することが可能になる。
【００１５】
本開示の一態様ではまた、特定のメッセージには認証情報が含まれていることで、認証情報に対応する鍵を使った認証処理を実行することができ、これにより特定のメッセージに含まれる送信回数は信頼できる。特定のメッセージ自体に対してなりすましのメッセージが送信されたとしてもこれを除外して処理が可能である。
【００１６】
本開示の一態様では、自装置のエラー状態がキープアライブメッセージに送信される。ＣＡＮＦＤ（Flexible Data-Rate）を使用しないＣＡＮに基づく通信システムであっても、エラーアクティブ、エラーパッシブ等のエラー状態を他装置にて認識することが可能である。
【００１７】
なお本願は、このような特徴的な各構成部を備えた車載通信装置として実現することができるだけでなく、かかる特徴的なステップをコンピュータに実行させるコンピュータプログラム及び該プログラムを記憶した記憶媒体として実現することができる。また、車載通信装置の構成部の一部又は全部を実現する半導体集積回路として実現したり、車載通信装置を用いた車載通信システムを含むその他のシステムとして実現したりすることができる。
【発明の効果】
【００１８】
上記によれば、簡易な構成にて車載通信システム内に送出された危険性の高いメッセージの除外を実現することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態における車載通信システムの構成を示すブロック図である。
【図２】ＥＣＵ及びＧＷの内部構成を示すブロック図である。
【図３】ＥＣＵによるメッセージの送信処理の一例を示すフローチャートである。
【図４】通信部におけるメッセージの処理の概要を示す説明図である。
【図５】通信バスに送信されるメッセージを示す模式図である。
【図６】異常を検出するＧＷによるメッセージの受信処理の一例を示すフローチャートである。
【図７】ＧＷにおける処理の概要を示す説明図である。
【図８】第３テーブルにおける受信回数の更新を示す説明図である。
【図９】異常検知に係る処理手順の一例を示すフローチャートである。
【図１０】異常検知後のＥＣＵにおける処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本開示の実施形態に係る車載通信装置の具体例を以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２１】
図１は、本実施の形態における車載通信システム１００の構成を示すブロック図である。車載通信システム１００は、車輌内に配設されている複数の通信バス２と、車輌内の各所に配設され、複数の通信バス２のいずれかに接続されている複数のＥＣＵ１と、異なる通信バス２間で中継処理を行なうＧＷ３とを含む。
【００２２】
ＥＣＵ１には、図示しない車載スイッチ、センサ、又はアクチュエータ等の機器が接続されており、ＥＣＵ１はスイッチ又はセンサから得られる情報を通信バス２へ送出すると共に、通信バス２を介して受信する情報に基づいてアクチュエータ等の動作を制御する。ＧＷ３は、異なる通信バス２を介して複数のＥＣＵ１から送信されるメッセージを全て受信し、他の通信バス２への中継の要否を記憶したテーブルに基づき必要に応じて他の通信バス２へ中継する。なお以下に説明する実施の形態において通信バス２はＣＡＮバスであり、ＥＣＵ１及びＧＷ３はＣＡＮプトロコルに準じて夫々複数のメッセージを複数回、送受信する。
【００２３】
図２は、ＥＣＵ１及びＧＷ３の内部構成を示すブロック図である。ＥＣＵ１は、制御部１０、記憶部１１、一時記憶部１２、及び通信部１３を備える。制御部１０は、ＣＰＵ（Central Processing Unit ）又はＭＰＵ（Micro Processing Unit ）等の演算処理装置を用いる。制御部１０は入出力インタフェースを備え、該入出力インタフェースを介してスイッチ、センサ等の機器に接続されている。制御部１０は記憶部１１に記憶してある制御プログラム１Ｐを読み出して実行することにより、各構成部及び機器を制御する制御処理並びに演算処理を行なう。例えば制御部１０は、制御プログラムに含まれているＣＡＮプロトコルに準ずる処理を実行することにより、通信部１３のハードウェアと協働してＣＡＮ対応のネットワークコントローラ（通信制御部）として機能する。
【００２４】
記憶部１１は、フラッシュメモリ等の不揮発性メモリを用い、制御部１０が実行する制御プログラム１Ｐの他、処理の際に参照する各種情報を予め記憶している。なお制御プログラム１Ｐの一部は、制御部１０に内蔵されるマスクＲＯＭ（Read Only Memory）等に記憶されていてもよい。一時記憶部１２は、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリを用い、制御部１０の処理により生成される情報を一時的に記憶する。
【００２５】
通信部１３は、ＣＡＮコントローラ及びＣＡＮトランシーバを用い、通信バス２における情報の送受信を実現する。通信部１３は、制御部１０と協働して制御部１０から指示されてＣＡＮコントローラ内蔵のメールボックス内に作成されて記憶してあるＣＡＮメッセージを、順に通信バス２へ送信する。また通信部１３は、通信バス２を介して他から送信されたＣＡＮメッセージを受信した場合、ＣＡＮコントローラ内蔵のメールボックスに一旦記憶して制御部１０へ通知し、該メッセージに含まれる情報を制御部１０へ受け渡す。
【００２６】
ＧＷ３は、制御部３０、記憶部３１、一時記憶部３２、及び複数の通信部３３を備える。制御部３０は、ＣＰＵ又はＭＰＵ等の演算処理装置を用いる。制御部３０は記憶部３１に記憶してある制御プログラム及び異常検知プログラム３Ｐを読み出して実行することにより、演算処理及び各構成部を制御する制御処理を行なう。例えば制御部３０は制御プログラムにより、通信部３３のハードウェアと協働してＣＡＮ対応のネットワークコントローラとして機能する。また制御部３０は、異常検知プログラム３Ｐにより後述する異常検知処理を実行する。
【００２７】
記憶部３１は、フラッシュメモリ等の不揮発性メモリを用い、制御部３０が実行する制御プログラム、異常検知プログラム３Ｐの他、中継テーブル等、処理の際に参照する各種情報を予め記憶している。ＧＷ３においても制御プログラム及び異常検知プログラム３Ｐは、制御部３０に内蔵されるマスクＲＯＭに記憶されていてもよい。一時記憶部３２は、ＤＲＡＭ等の揮発性メモリを用いて制御部３０の処理により生成される情報を一時的に記憶する。
【００２８】
複数の通信部３３は夫々、ＣＡＮコントローラ及びＣＡＮトランシーバを用い、通信バス２における情報の送受信を実現する。通信部３３は、通信バス２を介して他から送信されたＣＡＮメッセージを受信した場合、ＣＡＮコントローラ内蔵のメールボックスに一旦記憶して制御部３０へ通知し、必要に応じて該メッセージに含まれる情報を制御部１０へ受け渡す。また通信部３３は、制御部３０から指示されてＣＡＮコントローラ内蔵のメールボックス内に記憶してあるＣＡＮメッセージを通信バス２へ送出する。
【００２９】
このように構成される車載通信システム１００において、各ＥＣＵ１の制御部１０は、自装置で得られる機器（車載スイッチ、センサ等）からの情報をＣＡＮメッセージのペイロードに格納して接続されている通信バス２へ通信部１３から送信する。なお制御部１０はこれらのＣＡＮメッセージを、定期的に機器からの情報を取得して送信するか、又はスイッチのイベント発生のタイミングで送信する。そして制御部１０は、これらの送信周期と等しいか又は長い周期で、キープアライブメッセージ（AUTOSAR ではCAN Network Management Protocol Data Unit として規定されている）を通信部１３から送信するように指示する。
【００３０】
図３は、ＥＣＵ１によるメッセージの送信処理の一例を示すフローチャートである。制御部１０は通信処理部として、自装置がアクティブ状態である間、図３のフローチャートに示す処理を繰り返し実行し続ける。
【００３１】
制御部１０は、キープアライブメッセージ以外のメッセージの送信タイミングであるか否かを判断する（ステップＳ１０１）。キープアライブメッセージ以外のメッセージの送信タイミングは、メッセージ（ＣＡＮＩＤ）毎に規定されている。送信タイミングは１０ミリ秒などの一定時間経過毎である場合、又は割込発生等のイベント依存である場合がある。
【００３２】
ステップＳ１０１で送信タイミングであると判断された場合（Ｓ１０１：ＹＥＳ）、制御部１０は送信するメッセージが、計数の対象となる対象メッセージ（監視対象メッセージ）であるか否かを判断する（ステップＳ１０２）。ステップＳ１０２にて対象メッセージであると判断された場合（Ｓ１０２：ＹＥＳ）、制御部１０は一時記憶部１２に記憶している送信回数を加算する（ステップＳ１０３）。なお対象メッセージであるか否かは、車載通信システム１００にて、そのメッセージの重要度、不正なメッセージが送出された場合の車輌の危険性を鑑みて予め設定されており、各ＥＣＵ１が記憶している。ステップＳ１０２にて対象メッセージでないと判断された場合（Ｓ１０２：ＮＯ）、制御部１０は処理をそのままステップＳ１０４へ進める。
【００３３】
次に制御部１０は、送信するメッセージ（データ）を通信部１３のメールボックスへ受け渡す（ステップＳ１０４）。なおこのとき、通信部１３のメールボックスでは、キープアライブメッセージを送信すべくメッセージを保留させた保留状態である場合と、それ以外（通常状態）である場合とによって、受け渡し先が切り替えられている。通常状態である場合、メッセージはそのままメールボックスへ順に格納されるが、保留状態では、保留メッセージキューへ、順次退避させられるようにしてある（図４参照）。なおメールボックスと保留メッセージキューとは、実体として別のメモリであるとは限らない。メールボックス及び保留メッセージキューとして使用される記憶媒体におけるアドレスの管理により、夫々区別される。
【００３４】
ステップＳ１０１で送信タイミングでないと判断された場合（Ｓ１０１：ＮＯ）、制御部１０は処理をステップＳ１０５へ進める。
【００３５】
制御部１０は、メッセージをメールボックスで保留状態であるか否かを判断する（ステップＳ１０５）。保留状態でないと判断された場合（Ｓ１０５：ＮＯ）、制御部１０は、キープアライブメッセージの送信タイミングであるか否かを判断する（ステップＳ１０６）。本実施の形態においてキープアライブメッセージの送信タイミングは５００ミリ秒など一定時間経過毎の定期である。
【００３６】
ステップＳ１０６にて送信タイミングであると判断された場合（Ｓ１０６：ＹＥＳ）、制御部１０は、認証情報（ＭＡＣ：Message Authentication Code ）を所定のアルゴリズムで生成するか、又は記憶してある認証情報を読み出して取得する（ステップＳ１０７）。制御部１０は、取得した認証情報及び一時記憶部１２に記憶してある送信回数をペイロードに含むキープアライブメッセージを作成する（ステップＳ１０８）。
【００３７】
ステップＳ１０８で作成されるキープアライブメッセージは、ＣＡＮにおけるペイロードとして定義されている８バイト中、３番目（Byte 2）から８番目（Byte 7）までが更にユーザデータに定義されている（AUTOSAR （登録商標）CAN Network Management）。このユーザデータ部分を認証情報及び送信回数に使用する。計６バイト中の認証情報に使用するビット数と送信回数に使用するビット数との振り分けは、認証情報の安全度を鑑みて設定されるとよい。本実施の形態におけるキープアライブメッセージは、通信部１３が通信バス２へ送出しようとするときに可及的に確実に送信できるように、他から送信されるメッセージとの調停で優先されるべくＣＡＮＩＤが優先度の高いものに設定される。
【００３８】
そして制御部１０は、通信部１３のメールボックスを参照し、メールボックスが空（待機中メッセージ数がゼロ）であるか否かを判断する（ステップＳ１０９）。空であると判断された場合（Ｓ１０９：ＹＥＳ）、制御部１０は作成したキープアライブメッセージを通信部１３のメールボックスへ受け渡し（ステップＳ１１１）、一時記憶部１２に記憶してある送信回数をリセットし（ステップＳ１１２）、処理を終了する。
【００３９】
空でないと判断された場合（Ｓ１０９：ＮＯ）、制御部１０は、通信部１３のメールボックスを保留させて保留状態とし（ステップＳ１１０）、キープアライブメッセージをメールボックスへ受け渡し（Ｓ１１１）、送信回数をリセットして（Ｓ１１２）、処理を終了する。
【００４０】
ステップＳ１０９で空であると判断された場合（Ｓ１０９：ＹＥＳ）、通信部１３のメールボックスは通常状態のまま、キープアライブメッセージはメールボックスの先頭に格納され、通信バス２が空き次第、送出される。ステップＳ１０９で空でないと判断された場合（Ｓ１０９：ＮＯ）、通信部１３のメールボックスでは保留状態となり、キープアライブメッセージは保留メッセージキューの先頭に退避させられて待機する。
【００４１】
ステップＳ１０６にて、保留状態でもなく（Ｓ１０５：ＮＯ）、送信タイミングでないと判断された場合（Ｓ１０６：ＮＯ）、制御部１０は処理をそのまま終了する。この場合、制御部１０は、再度ステップＳ１０１から処理を開始し、新たなメッセージが通信部１３のメールボックスへ受け渡される。
【００４２】
保留状態である間に通信部１３へ受け渡されたメッセージは保留メッセージキューへ退避する一方で、キープアライブメッセージより前にメールボックスに格納されていたメッセージは、通信バス２が空き次第、順次送出される。ステップＳ１０５にて保留状態であると判断された場合（Ｓ１０５：ＹＥＳ）、制御部１０は通信部１３のメールボックスのメッセージ数を参照し、空であるか否かを判断する（ステップＳ１１３）。
【００４３】
メールボックスが空であると判断された場合（Ｓ１１３：ＹＥＳ）、制御部１０は保留メッセージキューへ退避させていた保留中のメッセージをメールボックスへ移動させ（ステップＳ１１４）、保留状態を解除し（ステップＳ１１５）、処理を終了する。この場合、保留メッセージキューには先頭にキープアライブメッセージが退避させられていたので、メールボックスの先頭にはキープアライブメッセージが格納されており、通信バス２へ送出される。保留メッセージキューは空になり、制御部１０は再度ステップＳ１０１から処理を開始し、順次メールボックスへメッセージを受け渡すなど処理を続行する。
【００４４】
メールボックスが空でないと判断された場合（Ｓ１１３：ＮＯ）、制御部１０はそのまま処理を終了する。この場合、制御部１０は再度ステップＳ１０１から処理を開始する。メールボックスが空となるまで新たなメッセージ及びキープアライブメッセージは保留メッセージキューへ退避され、メールボックスのメッセージは順次、通信バス２が空き次第送出される。
【００４５】
通信部１３ではネットワークコントローラの機能により、制御部１０から受け渡されるデータからＣＡＮメッセージを作成してメールボックス及び保留メッセージキューに対応するメモリ内に記憶させる。更に通信部１３は、メモリ内に記憶したＣＡＮメッセージの場所（先頭、末尾）を記憶しておき、ネットワークコントローラの機能により、メールボックスの先頭から順にメッセージを読み出してＣＡＮトランシーバから通信バス２へ送出する。図３のフローチャートの処理を制御部１０が実行する間、通信部１３はネットワークコントローラの機能により、メッセージの記憶及びＣＡＮトランシーバからの送出を継続して実行する。
【００４６】
図４は、通信部１３におけるメッセージの処理の概要を示す説明図である。図４中、ＡからＤは時間の経過に沿って変化する通信部１３内部でのメッセージの状態を示している。メールボックス及び保留メッセージキューは概念として２つに分別され、夫々矩形で示すボックスにてメッセージが格納される。なおハッチングによりボックス又はキューの空き状態を示している。
【００４７】
図４Ａに示す状態は、キープアライブメッセージの送信タイミング前であって、メッセージの送信タイミングに対応する。図４Ａでメールボックスへ受け渡されるメッセージは、ＣＡＮＩＤが「３０」のメッセージである。図４Ａでは、保留状態ではないのでステップＳ１０４で受け渡されたメッセージは、メールボックスに格納される。ＣＡＮＩＤが「５」のメッセージが待機中であるから、ＣＡＮＩＤが「３０」のメッセージはメールボックスの２番目のメッセージとなる。
【００４８】
図４Ｂに示す状態は、キープアライブメッセージ（ＣＡＮＩＤが「１」）の送信タイミングに対応する。キープアライブメッセージの送信タイミングであるが（Ｓ１０６：ＹＥＳ）、メールボックスが空ではないので（Ｓ１０９：ＮＯ）、保留状態となり、通信部１３におけるメッセージの受け渡し先（格納先）がその後、保留メッセージキューへ切り替えられる。したがって受け渡されたキープアライブメッセージは、保留メッセージキューの先頭に格納される。
【００４９】
図４Ｃに示す状態は、保留状態における他のメッセージの送信タイミングに対応する。図４Ｃでメールボックスへ受け渡されるメッセージは、ＣＡＮＩＤが「４０」のメッセージである。保留状態であるからステップＳ１０４で受け渡されたメッセージは、保留メッセージキューの末尾に格納される。また、メールボックスからＣＡＮＩＤが「５」のメッセージが通信バス２へ送出されるが、メールボックスにはＣＡＮＩＤが「３０」のメッセージが残っており空ではないので（Ｓ１１３：ＮＯ）、保留状態のままである。
【００５０】
図４Ｄに示す状態は、保留状態にてメールボックスが空になったタイミングに対応する。図４Ｄでは、メールボックスに残っていたＣＡＮＩＤが「３０」のメッセージが通信バス２へ送出されるから、保留状態にて（Ｓ１０５：ＹＥＳ）、空であると判断され（Ｓ１１３：ＹＥＳ）、保留メッセージキューに記憶されているメッセージがメールボックスに保留メッセージキューに記憶されている順序で格納される。これにより、次にキープアライブメッセージが通信バス２へ送出される。
【００５１】
図３及び図４に示したように、キープアライブメッセージを送信すべきタイミングで保留メッセージキューに退避させるのは以下の理由による。優先度が高く設定してあるキープアライブメッセージが、それ以前にメールボックスに格納されてある対象メッセージに先んじて通信バス２へ送出されることを防ぐためである。キープアライブメッセージのペイロードには、対象メッセージの送信回数が記憶されているから、キープアライブメッセージが対象メッセージに先んじて送出されてしまった場合、送信回数と実際の送信回数との間にズレが生じてしまい、後述する異常検知が正しく行なわれない可能性がある。
【００５２】
図３のフローチャート及び図４の説明図に示した処理が各ＥＣＵ１にて実行されることにより、通信バス２に送信される対象メッセージの送信回数が他装置から把握可能となる。図５は、通信バス２に送信されるメッセージを示す模式図である。図５において横軸は時間の経過を示し、図５中の矩形は各時点で通信バス２に送出されたＣＡＮメッセージを示している。なお矩形中の数字はＣＡＮＩＤを示している。
【００５３】
図５中、ＣＡＮＩＤが「１」及び「２」のＣＡＮメッセージは、キープアライブメッセージである。キープアライブメッセージを示す矩形中の括弧付き数字は、キープアライブメッセージのペイロードに含まれる送信回数を示している。例えばＣＡＮＩＤ「１」のキープアライブメッセージは、対象メッセージであるＣＡＮＩＤ「５」及び「３０」のメッセージ並びに対象外のＣＡＮＩＤ「４０」のメッセージを送信するＥＣＵ１から送信される。ＣＡＮＩＤ「２」のキープアライブメッセージは、対象メッセージであるＣＡＮＩＤ「８」のメッセージ並びに対象外のＣＡＮＩＤ「２０」のメッセージを送信する別のＥＣＵ１から送信されるものとする。そして図５中、ハッチングで示すＣＡＮＩＤ「５」のメッセージは、不正に通信バス２に送出されたメッセージであるとする。なお図５では説明を容易にすべく、送信するＥＣＵ１の相違に対応させて各メッセージに対応する矩形の上下の位置をずらしているが、いずれも１つの通信バス２上に送出されるメッセージであって区別されない。
【００５４】
図５に示すように、時点Ｔａ２及び時点Ｔａ３に通信バス２に送信されたＣＡＮＩＤ「１」のキープアライブメッセージには、直前のキープアライブメッセージを送信した後に通信バス２に送信された対象メッセージの送信回数「３」が含まれている。時点Ｔａ１のキープアライブメッセージ以前は、監視期間外であって送信回数は含まれていない。通信バス２に接続されている各ＥＣＵ１及びＧＷ３は、通信バス２をＣＡＮトランシーバにより常に監視している。時点Ｔａ１の後、時点Ｔａ２までの間に通信バス２へ送出されたＣＡＮＩＤ「５」及び「３０」のメッセージは、時点Ｔｂ１、時点Ｔｃ１及び時点Ｔｄ１の計３回、各ＥＣＵ１及びＧＷ３で受信される。一方、時点Ｔａ２の後、時点Ｔａ３までの間に通信バス２へ送出されたＣＡＮＩＤ「５」及び「３０」のメッセージは、時点Ｔｘ１、Ｔｂ１、時点Ｔｃ１及び時点Ｔｄ１の計４回、各ＥＣＵ１及びＧＷ３で受信される。
【００５５】
これにより、通信バス２からメッセージを受信するＥＣＵ１又はＧＷ３側で、キープアライブメッセージに含まれる送信回数と、受信した回数とを比較することで異常を検知することができる。
【００５６】
本実施の形態ではＧＷ３が、通信バス２に送出されるメッセージを監視し異常を検知する。異常検知の処理内容を、フローチャートを参照して説明する。図６は、異常を検出するＧＷ３によるメッセージの受信処理の一例を示すフローチャートである。制御部３０は通信処理部として通常の中継処理の他に、複数の通信部３３毎に、該通信部３３から受信できるメッセージについて図６のフローチャートに示す処理を繰り返し実行し続ける。なお制御部３０は、対象の通信部３３にていずれかのＥＣＵ１から、最初にキープアライブメッセージを受信した場合（スリープ状態から起動した場合）に処理を開始して繰り返し、対象メッセージの送信元のＥＣＵ１がスリープ状態となった場合には処理を停止する。
【００５７】
制御部３０は、対象の通信部３３にて通信バス２からメッセージを受信する都度（ステップＳ３０１）、受信したメッセージのＣＡＮＩＤを参照して計数の対象メッセージ又はキープアライブメッセージであるか否かを判断する（ステップＳ３０２）。対象メッセージ又はキープアライブメッセージであると判断された場合（Ｓ３０２：ＹＥＳ）、制御部３０は対象メッセージであるか否かを判断する（ステップＳ３０３）。対象メッセージであると判断された場合（Ｓ３０３：ＹＥＳ）、制御部３０は通信部３３から受信したメッセージに対応させて一時記憶部３２に記憶してある受信回数を加算し（ステップＳ３０４）、処理を終了する。受信回数は、対象メッセージのＣＡＮＩＤのグループ（対応するキープアライブメッセージ）別に記憶されている。上述の例であればＣＡＮＩＤ「５」及び「３０」のメッセージの受信回数がまとめて記憶されている。制御部３０はその後、再度処理をステップＳ３０１から実行する。
【００５８】
ステップＳ３０３にてキープアライブメッセージであると判断された場合（Ｓ３０３：ＮＯ）、制御部３０は受信したメッセージのペイロードから送信回数及び認証情報を抽出する（ステップＳ３０５）。制御部３０は、抽出した認証情報に対して予め対応させてある鍵を用いた認証処理を実行する（ステップＳ３０６）。制御部３０は、認証処理に成功したか否かを判断する（ステップＳ３０７）。認証に成功した場合には（Ｓ３０７：ＹＥＳ）、制御部３０は、受信したメッセージのＣＡＮＩＤに対応付けて記憶してある受信回数と、ステップＳ３０５で抽出した送信回数とを比較し（ステップＳ３０８）、その後受信回数をゼロにリセットする（ステップＳ３０９）。このように本実施の形態では認証結果に応じて受信回数のリセットが実行される。そして制御部３０は、ステップＳ３０８の比較の結果、受信回数と送信回数とが一致するか否かを判断し（ステップＳ３１０）、一致すると判断した場合（Ｓ３１０：ＹＥＳ）、処理を終了する。
【００５９】
ステップＳ３１０にて一致しないと判断した場合（Ｓ３１０：ＮＯ）、制御部３０は対象メッセージに対して異常を検知し（ステップＳ３１１）、処理を終了する。
【００６０】
またステップＳ３０２にて対象外のメッセージであると判断された場合（Ｓ３０２：ＮＯ）、制御部３０はそのまま、異常検知に係る処理を終了し、他のメッセージを受信すべく処理をステップＳ１０１から開始する。
【００６１】
また、ステップＳ３０７で認証に失敗したと判断された場合（Ｓ３０７：ＮＯ）、異常を検知し（Ｓ３１１）、処理を終了する。この場合、キープアライブメッセージは安全なメッセージでないので破棄する等、異常処理を行なうとよい。
【００６２】
図７は、ＧＷ３における処理の概要を示す説明図である。図７を参照して、図６のフローチャートにて説明した処理を、具体的に説明する。
【００６３】
制御部３０は一時記憶部３２又は内蔵メモリに、複数の通信部３３夫々に対し、その通信部３３から受信するメッセージのＣＡＮＩＤ毎に、異常検知処理への移行時の参照先を記憶した第１テーブル３０１を記憶している。図７に示す第１テーブル３０１では、ＣＡＮＩＤの数値の昇順に、メッセージが対象メッセージであるか、対象外であるか又はキープアライブメッセージであるかを示す数値を記憶してある。図７の例であれば、ＣＡＮＩＤが「１」から「４」である場合には、キープアライブメッセージであることを示す「２」が記憶されており、ＣＡＮＩＤが「５」及び「３０」である場合には、対象メッセージであることを示す「１」が記憶されている。制御部３０は、受信したメッセージのＣＡＮＩＤにより第１テーブル３０１を参照した結果が「０」である場合にステップＳ３０２にて対象外であると判断し（Ｓ３０２：ＮＯ）、「１」又は「２」である場合に対象メッセージ又はキープアライブメッセージであると判断する（Ｓ３０２：ＹＥＳ）。このように制御部３０は、受信したメッセージのＣＡＮＩＤに基づき、受信したメッセージが対象メッセージ又はキープアライブメッセージである場合の処理（Ｓ３０４、Ｓ３０５）に進む。
【００６４】
更に制御部３０は、一時記憶部３２又は内蔵メモリに、複数の通信部３３夫々に対し、その通信部３３から受信するメッセージのＣＡＮＩＤ毎に、参照先を記憶した第２テーブル３０２を記憶している。図７の第２テーブル３０２では、ＣＡＮＩＤの数値の昇順に、計数の対象である対象メッセージの受信回数を記憶する第３テーブル３０３内のアドレスを示す数値（番号）を記憶してある。図７の例であれば、ＣＡＮＩＤ「５」及び「３０」に対しては第３テーブル３０３内の「ｎ」番目に受信回数が記憶されていることが記憶されている。またＣＡＮＩＤ「１」のキープアライブメッセージに対して、第３テーブル３０３内の「ｎ」番目の受信回数が参照されるべきことが記憶されている。同様にして対象メッセージのＣＡＮＩＤ「８」に対しては第３テーブル３０３内の「ｎ＋１」番目に受信回数が記憶されていることが記憶されている。またＣＡＮＩＤ「２」のキープアライブメッセージに対して、第３テーブル３０３内の「ｎ＋１」番目の受信回数が参照されるべきことが記憶されている。
【００６５】
上述したように制御部３０は、一時記憶部３２又は内蔵メモリに、受信回数を記憶した第３テーブル３０３を記憶している。本実施の形態では、キープアライブメッセージに含まれる送信回数はキープアライブメッセージ毎（ＥＣＵ１毎）に計数される数値であるから、第３テーブル３０３には、ＥＣＵ１の数「Ｎ」分だけ受信回数が存在している。制御部３０は、第３テーブル３０３に記憶されている受信回数に対して加算、参照、又はゼロリセットする。例えば制御部３０は、上述のようにＣＡＮＩＤが「５」及び「３０」である対象メッセージを受信した場合、第２テーブル３０２を参照して第３テーブル３０３の「ｎ」番目の受信回数を１つずつ加算する（Ｓ３０４）。そして制御部３０は、ＣＡＮＩＤが「１」のキープアライブメッセージを受信した場合、第２テーブル３０２を参照して第３テーブル３０３の「ｎ」番目の受信回数「Ｍ」を参照し、メッセージ内の送信回数と比較する（Ｓ３０４）。
【００６６】
図８は、第３テーブル３０３における受信回数の更新を示す説明図である。図８中、上部に図５のメッセージの時間分布を示し、下部に各時点にて図７中の受信回数「Ｍ」が更新される過程を示している。図８に示すように、時点Ｔｘ２においてもＧＷ３において受信回数「Ｍ」が加算されるため、時点Ｔａ３にて受信したＣＡＮＩＤ「１」のキープアライブメッセージに含まれる送信回数「３」と「Ｍ」の「４」とを比較する。キープアライブメッセージは、ペイロードに認証情報を含み、メッセージに対する改ざんが防止されているから、含まれている送信回数「３」は信頼できるものである。したがってＥＣＵ１又はＧＷ３は、時点Ｔａ２から時点Ｔａ３の間に４回受信したＣＡＮＩＤ「５」及び「３０」の対象メッセージは、いずれかが不正に送信されたメッセージであって信頼できない、即ち異常であると検知する（Ｓ３１１）ことが可能である。
【００６７】
このように本開示の車載通信システム１００では、ＥＣＵ１が各々、自身から送信する監視対象のメッセージの送信回数を、定期的に送信するキープアライブメッセージ内に含めて送信する。これにより、キープアライブメッセージ以外のメッセージには認証情報を付加せずとも、ＥＣＵ１自身を含む各ＥＣＵ１又はＧＷ３にて、不正なメッセージが送信されたことを検知することができる。なおＥＣＵ１は、自身から送信する重要なメッセージについては、そのメッセージ自体に認証情報を更に含めるようにしてもよい。この場合、キープアライブメッセージにて認証される送信回数による異常の検知と、メッセージ自体の認証とでより厳密なネットワークの保護を行なうことができる。
【００６８】
本実施の形態においては、キープアライブメッセージのペイロードに含まれる送信回数は、計数の対象である対象メッセージの送信回数の総計としたが（例えばＣＡＮＩＤ「５」及び「３０」のメッセージの送信回数の総計）、ＣＡＮＩＤ別の送信回数としてもよい。この場合例えば、送信回数用に１バイト使用し、前半４ビットでＣＡＮＩＤ「５」、後半４ビットでＣＡＮＩＤ「３０」の送信回数を表わすように規定してもよい。また、各ＥＣＵ１から送信されるキープアライブメッセージには、ＥＣＵ１のエラー状態（エラーアクティブ、エラーパッシブ）を示す情報が含まれるとよい。AUTOSAR におけるキープアライブメッセージのペイロードのユーザデータ用の６バイトの内、例えば４バイトを認証情報（ＭＡＣ）に使用し、残りの１６ビットで送信回数とエラー状態とを表わすようにするとよい。本実施の形態では、ＣＡＮに基づく通信を行なうこととしている。ＣＡＮＦＤへ拡張せずとも、キープアライブメッセージを利用してエラー状態を他装置へ通知することが可能になる。またこの場合、図６のフローチャートにおけるステップＳ３１１の異常検知の処理の際に、キープアライブメッセージを送信してきたＥＣＵ１のエラー状態を鑑みて検知することも可能である。
【００６９】
また本実施の形態においてキープアライブメッセージのＣＡＮＩＤは、通信バス２の調停にて送信が優先されるように、優先度が高く設定されていることとしたが、高く設定することには限られない。キープアライブメッセージを通信バス２へ送出が可能なタイミングにて、確定している送信回数を含ませることができれば、優先度は他のメッセージよりも高くなくともよい。またキープアライブメッセージの送信タイミングは、優先度を高く設定されている場合、他のメッセージの送受信を阻害しないように適切に設計されるとよい。また送信タイミングは一定時間経過毎としたが定期的とは限らない。１回のキープアライブメッセージが通信バス２に送出された後、次の時点でのキープアライブメッセージが通信バス２に実際に送出される際に、その間に送信された対象メッセージの送信回数を確実に含ませることができればよい。
【００７０】
次に、異常が検知された場合、即ち通信バス２に送信されたメッセージに不正なメッセージが存在していると認識できた場合の処理について説明する。図９は、異常検知に係る処理手順の一例を示すフローチャートである。図９のフローチャートの内、図６のフローチャートに示す処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【００７１】
制御部３０は、ステップＳ３１１にて異常を検知すると、ステップＳ３０１で受信したキープアライブメッセージのＣＡＮＩＤを識別する情報を含む異常検知通知を、通信バス２へ送信する（ステップＳ３１２）。制御部３０は、検知した異常をログに記録し、警告を出力し（ステップＳ３１３）、処理を終了する。なお警告の出力先は、必要に応じて車載通信システム１００が搭載されている車輌の運転者向けに、車載のディスプレイに表示させてもよいし、警告音を出力するようにしてもよい。更には無線通信デバイスを含む他の車載装置を介して、自動車メーカ、ディーラ、又は警備会社へ出力されるようにしてもよい。
【００７２】
ステップＳ３１１の異常検知通知により、通知を受信して自身が送信したキープアライブメッセージのＣＡＮＩＤが含まれていると判断したＥＣＵ１は、以後、計数の対象である対象メッセージの一部又は全部にキープアライブメッセージと同様に認証情報を含ませる。このとき監視対象のメッセージ全てではなく、保護されるべき情報を含むより優先度の高いメッセージに限定して認証情報を付加することが望ましい。
【００７３】
これに応じて制御部３０は、受信したメッセージが対象メッセージであると判断された場合にも（Ｓ３０３：ＹＥＳ）、認証情報が含まれているか否かを判断し（ステップＳ３１４）、含まれていると判断された場合（Ｓ３１４：ＹＥＳ）、認証処理を実行してから（ステップＳ３１５）、処理を進める。この場合、制御部３０は認証処理に成功したか否かを判断し（ステップＳ３１６）し、認証に成功した場合（Ｓ３１６：ＹＥＳ）、又は認証情報が含まれていないと判断された場合（Ｓ３１４：ＮＯ）、受信回数を加算する（Ｓ３０４）。認証に失敗した場合には（Ｓ３１６：ＮＯ）、制御部３０は異常を検知する処理に進めてよい（Ｓ３１１）。これにより、異常を検知した場合に、不正なメッセージを除外してシステムの運用を続行することが可能となる。
【００７４】
図１０は、異常検知後のＥＣＵ１における処理手順の一例を示すフローチャートである。図１０のフローチャートの内、図３のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。制御部１０は、送信するメッセージが対象メッセージであると判断された場合（Ｓ１０２：ＹＥＳ）、認証情報を取得し（ステップＳ１２１）、取得した認証情報を対象メッセージに付加し（ステップＳ１２２）、送信回数を加算する（Ｓ１０３）。
【００７５】
このように、異常が検知された場合、運転者への報知を行なう他に、その後に送信する対象メッセージに限定して認証情報を加えることで、キープアライブメッセージにて認証される送信回数による異常の検知と、メッセージ自体の認証とでよりネットワークの保護を強化することが可能である。また異常の通知を受けたＥＣＵ１は、自身が送出する対象メッセージに関して異常が検知された場合に、送信を停止することもできる。
【００７６】
また、異常の検知を契機に不正なメッセージが送信された通信バス２を車載通信システム１００全体から切り離すなどの処置を行なってもよい。例えば各ＥＣＵ１を通信バス２の他に、サブネットワークとなる他のＣＡＮバスにも接続させた冗長ネットワーク構成とした場合に、異常の検知を契機に通信バス２を切り離しても運用を続行することができる。
【００７７】
本実施の形態において異常検知の処理は、ＧＷ３が実行する構成としたが、他のＥＣＵ１又は、通信バス２に接続される特別な車載通信装置が実行するようにしてもよい。
【００７８】
また本実施の形態においてＧＷ３の制御部３０が実行した異常検知プログラム３Ｐ、制御プログラム等の各種プログラムは、光ディスク又はメモリカード等の記録媒体に、コンピュータが読み取り可能に記録された態様で提供され得る。
【符号の説明】
【００７９】
１  ＥＣＵ（車載通信装置）
１０  制御部
１１  記憶部
１２  一時記憶部
１３  通信部
１Ｐ  制御プログラム
２  通信バス（車載通信バス）
３  ＧＷ（車載通信装置）
３０  制御部
３１  記憶部
３３  通信部
３Ｐ  異常検知プログラム
【図１】
2019080119.tif 000003
【図２】
2019080119.tif 000004
【図３】
2019080119.tif 000005
【図４】
2019080119.tif 000006
【図５】
2019080119.tif 000007
【図６】
2019080119.tif 000008
【図７】
2019080119.tif 000009
【図８】
2019080119.tif 000010
【図９】
2019080119.tif 000011
【図１０】
2019080119.tif 000012