(57)【要約】【課題】処理負荷の軽減効果とセキュリティを向上させること。【解決手段】送信ノードは、前記送信ノードが非周期的に送信する非周期性メッセージを認証するための非周期性メッセージ用ＭＡＣを生成するＭＡＣ生成部と、前記非周期メッセージ用ＭＡＣを添付した前記非周期性メッセージを生成する非周期性メッセージ生成部と、前記送信ノードが周期的に送信する周期性メッセージを認証するための周期性メッセージ用ＭＡＣを生成又は添付せずに前記周期性メッセージを生成する周期性メッセージ生成部とを有し、受信ノードは、前記受信ノードが受信した前記非周期性メッセージに添付された前記非周期性用メッセージＭＡＣと、前記受信ノードが受信した前記周期性メッセージの受信周期との少なくとも一方に異常が検知された場合、前記受信ノードが受信したメッセージに不正メッセージが混入していると判定する混入判定部を有する、通信システム。【選択図】図１
2018082321.tif 000002
【特許請求の範囲】
【請求項１】
送信ノードと、
前記送信ノードが送信するメッセージを受信する受信ノードとを備え、
前記送信ノードは、
前記送信ノードが非周期的に送信する非周期性メッセージを認証するための非周期性メッセージ用ＭＡＣを生成するＭＡＣ生成部と、
前記非周期性メッセージ用ＭＡＣを添付した前記非周期性メッセージを生成する非周期性メッセージ生成部と、
前記送信ノードが周期的に送信する周期性メッセージを認証するための周期性メッセージ用ＭＡＣを生成又は添付せずに前記周期性メッセージを生成する周期性メッセージ生成部とを有し、
前記受信ノードは、
前記受信ノードが受信した前記非周期性メッセージに添付された前記非周期性メッセージ用ＭＡＣと、前記受信ノードが受信した前記周期性メッセージの受信周期との少なくとも一方に異常が検知された場合、前記受信ノードが受信したメッセージに不正メッセージが混入していると判定する混入判定部を有する、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関する。
【背景技術】
【０００２】
従来、車両に搭載された通信システムにおいて、通信バスを伝送するメッセージの完全性を担保するため、メッセージ認証コード（Message Authentication Code：ＭＡＣ）を用いる方法が知られている（例えば、特許文献１を参照）。通信バスに接続されるノードがメッセージを生成・送信する度にＭＡＣを生成すると、ノードの処理負荷が増大する。それを防ぐため、特許文献１の技術は、メッセージ内のデータの重要度に応じてＭＡＣの生成・送信を省略することによって、ノードの処理負荷の軽減とセキュリティの確保とを図っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２１６４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、周期的に送信するメッセージ内のデータの変化量が前回値に対して零又は小さい場合、そのデータの重要度は低いとみなされ、重要度の低いデータに対するＭＡＣの生成が省略される。
【０００５】
しかしながら、従来の技術では、周期的に送信するメッセージ内のデータが刻々と変化する場合、そのデータの重要度は高いとみなされるので、ＭＡＣの生成・送信は省略されない。そのため、周期的に送信するメッセージ内のデータが刻々と変化する場合、処理負荷の軽減効果が低下するおそれがある。また、周期的に送信するメッセージ内のデータの重要度が低いとみなされると、ＭＡＣの生成・送信が省略されるので、その省略がセキュリティを低下させるおそれがある。
【０００６】
そこで、本開示の一態様は、処理負荷の軽減効果とセキュリティを向上させた通信システムを提供することを目的とする。
【０００７】
処理負荷の軽減
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本開示の一態様では、
送信ノードと、
前記送信ノードが送信するメッセージを受信する受信ノードとを備え、
前記送信ノードは、
前記送信ノードが非周期的に送信する非周期性メッセージを認証するための非周期性メッセージ用ＭＡＣを生成するＭＡＣ生成部と、
前記非周期性メッセージ用ＭＡＣを添付した前記非周期性メッセージを生成する非周期性メッセージ生成部と、
前記送信ノードが周期的に送信する周期性メッセージを認証するための周期性メッセージ用ＭＡＣを生成又は添付せずに前記周期性メッセージを生成する周期性メッセージ生成部とを有し、
前記受信ノードは、
前記受信ノードが受信した前記非周期性メッセージに添付された前記非周期性メッセージ用ＭＡＣと、前記受信ノードが受信した前記周期性メッセージの受信周期との少なくとも一方に異常が検知された場合、前記受信ノードが受信したメッセージに不正メッセージが混入していると判定する混入判定部を有する、通信システムが提供される。
【０００９】
なお、生成されなければ添付されないので、「生成又は添付せずに」とは、「生成も添付もしない」、あるいは、「生成するが添付しない」を意味する。
【００１０】
この通信システムによれば、前記送信ノードが周期的に送信する周期性メッセージ内のデータが刻々と変化しても、前記周期性メッセージを認証するための周期性メッセージ用ＭＡＣの生成又は添付が省略される。つまり、生成も添付も省略される、あるいは、生成は省略されないが添付が省略される。したがって、前記周期性メッセージ用ＭＡＣを生成又は添付する処理によって前記送信ノードに発生する処理負荷を軽減することができる。また、この通信システムによれば、前記受信ノードが受信したメッセージが前記非周期性メッセージでも前記周期性メッセージでも、前記受信ノードが受信したメッセージに不正メッセージが混入していると判定することが前記混入判定部により可能となる。したがって、前記通信システムのセキュリティを向上させることができる。
【発明の効果】
【００１１】
本開示の一態様によれば、処理負荷の軽減効果とセキュリティが向上する。
【図面の簡単な説明】
【００１２】
【図１】通信システムにおける送信ノードの構成の一例を示す図である。
【図２】通信システムにおける受信ノードの構成の一例を示す図である。
【図３】周期性メッセージを送信する場合に送信ノードが実行する処理の流れの一例を示すフローチャートである。
【図４】非周期性メッセージを送信する場合に送信ノードが実行する処理の流れの一例を示すフローチャートである。
【図５】受信ノードが実行する処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施形態を図面を参照して説明する。なお、以下の説明において、「生成・添付」という表現は、「生成及び添付」と「添付のみ」のうち、いずれか一方を意味する。
【００１４】
図１は、通信システムにおける送信ノードの構成の一例を示す図である。図２は、通信システムにおける受信ノードの構成の一例を示す図である。図１，２に示される通信システム１は、車両に搭載されるシステムの一例である。通信システム１は、通信バス２２，３０上を伝送する不正メッセージを監視する機能を有する。通信システム１は、送信ノード１００と、受信ノード１１０と、通信バス２２，３０とを備える。
【００１５】
通信システム１では、送信ノード１００と受信ノード１１０との間のメッセージの送受が、例えば、ＣＡＮ（Control Area Network）通信により行われる。この場合、通信バス２２，３０は、ＣＡＮバスと称されることがある。なお、通信バス２２，３０は、互いに直接接続されていてもよいし、例えばゲートウェイ装置を介して互いに接続されていてもよい。
【００１６】
送信ノード１００は、通信バス２２に接続されており、通信バス２２へ通信メッセージを送信する。送信ノード１００は、第１のＥＣＵ（Electronic Control Unit）の一例である。受信ノード１１０は、通信バス３０に接続されており、通信バス３０からメッセージを受信する。受信ノード１１０は、第２のＥＣＵの一例である。通信バス２２，３０は、いずれも、送信ノード１００と受信ノード１１０との間で送受されるメッセージが伝送する伝送路である。
【００１７】
車載ネットワーク（より具体的には、通信バス２２，３０）上において、送信するメッセージの完全性を担保するため、通信システム１では、メッセージ認証コード（ＭＡＣ）の生成・添付が行われる。
【００１８】
送信ノード１００は、送信するメッセージを生成する場合、そのメッセージのタイプに応じて、以下の制御Ａ又は制御Ｂを実行する。
【００１９】
制御Ａ：予め定められたルールに沿った送信周期で周期的に送信される周期性メッセージを生成する周期性メッセージ生成部５１は、各々の周期性ルールに対応したＣＡＮＩＤを付加し、周期性メッセージ用ＭＡＣの生成・添付を省略する。
【００２０】
制御Ｂ：周期性メッセージ以外の非周期性メッセージを生成する非周期性メッセージ生成部５２は、制御Ａ用に用意されたＣＡＮＩＤとは別のＣＡＮＩＤを付加し、非周期性メッセージ内の情報を用いて計算した非周期性メッセージ用ＭＡＣを生成・添付する。
【００２１】
なお、ＣＡＮＩＤは、通信バス２２，３０を介して送受されるメッセージを識別するための符号（識別番号）を表す。
【００２２】
受信ノード１１０のＣＡＮＩＤ識別部３１は、通信バス３０から受信した受信メッセージに付与されているＣＡＮＩＤを参照し、所定のデータベースと照合して、その受信メッセージが、受信ノード１１０に宛てられたメッセージ（自身宛てメッセージ）であるか否かを判断する。受信メッセージが自身宛てメッセージである場合、受信ノード１１０は、その受信メッセージのＣＡＮＩＤに応じて、次の制御Ａ'又は制御Ｂ'を実行する。
【００２３】
制御Ａ'：受信メッセージのＣＡＮＩＤが周期性メッセージであることを示す場合、周期性異常検知部３５は、その受信メッセージとＣＡＮＩＤが同じである過去の受信メッセージの受信時刻から正常な周期を空けて、その受信メッセージは受信されたか否かを判断する。周期性異常検知部３５は、例えば、その受信メッセージのＣＡＮＩＤに対応する周期性ルールと、その受信メッセージとＣＡＮＩＤが同じである過去の受信メッセージの受信時刻履歴とに基づいて、その受信メッセージの受信周期の異常有無を判断する。
【００２４】
制御Ｂ'：受信メッセージのＣＡＮＩＤが非周期性メッセージであることを示す場合、検証用ＭＡＣ計算部４０は、その受信メッセージのＣＡＮＩＤやデータフィールド内のデータなどからＭＡＣを計算する。ＭＡＣ比較部４２は、検証用ＭＡＣ計算部４０により計算されたＭＡＣを、その受信メッセージに添付されたＭＡＣと比較する。ＭＡＣ比較エラー検知部４３は、ＭＡＣ比較部４２による比較結果に基づいて、その受信メッセージが正当なものか否かを判断する。
【００２５】
異常処理部３７は、制御Ａ'で受信周期の異常を検知した場合又は制御Ｂ'でＭＡＣの不一致による異常を検知した場合、受信ノード１１０が受信した受信メッセージに不正メッセージの混入が発生していると判定し、異常処理ルーチンによる対応を開始する。異常処理部３７は、混入判定部の一例である。
【００２６】
通信バス２２，３０では、実際は周期性メッセージによる通信量が大半を占めている。上述の通り、本実施形態では、メッセージ内のデータの変化の有無にかかわらず周期性メッセージ全てについて周期性メッセージ用ＭＡＣの生成・添付が省略可能なので、既存技術に対して、送信ノードの処理負荷や消費電力の低減効果が向上する。また、上述の通り、周期性メッセージ用ＭＡＣの生成・添付が省略されても、周期性ルールに照らした不正メッセージの混入検知が受信ノード側で可能なので、不正な攻撃に対する受信ノードの防御性を高めることができる。
【００２７】
なお、周期性メッセージとは、例えば、車速、エンジンの回転数などのデータを一定の周期で送信するためのメッセージを表す。一方、非周期性メッセージとは、周期的でないイベントの発生を表すイベントデータを送信するためのメッセージを表す。イベントデータの具体例として、エアバッグが格納状態から展開状態に遷移したことを表すエアバッグ開情報や、ドライバーが所定の操作部材を操作したことを表す操作情報などの周期性の無い情報が挙げられる。
【００２８】
次に、図１，２に示される通信システム１の構成について、より詳細に説明する。
【００２９】
図１は、メッセージを送信する送信ノードの構成の一例を示す。図１に示さる送信ノード１００は、受信ノード１１０へのメッセージを送信する送信装置の一例である。送信ノード１００は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などを備えた電子制御装置の一例である。
【００３０】
送信ノード１００は、周期性メッセージ生成部５１、非周期性メッセージ生成部５２、送信数カウンタ１８及びＭＡＣ生成部１９を備える。周期性メッセージ生成部５１、非周期性メッセージ生成部５２、送信数カウンタ１８及びＭＡＣ生成部１９の各機能は、ＣＰＵが処理するプログラムによって実現される。
【００３１】
周期性メッセージ生成部５１は、第１のメッセージ生成部の一例である。周期性メッセージ生成部５１は、周期性タイマ１０、データフィールド生成部１１、周期性ＣＡＮＩＤ生成部１２及びＣＡＮメッセージ合成部１３を有する。
【００３２】
非周期性メッセージ生成部５２は、第２のメッセージ生成部の一例である。非周期性メッセージ生成部５２は、非周期性イベント発生部１４、データフィールド生成部１５、非周期性ＣＡＮＩＤ生成部１６、ＣＡＮメッセージ合成部１７、ＭＡＣ用ＣＡＮＩＤ生成部２０及びＣＡＮメッセージ合成部２１を有する。
【００３３】
図２は、メインメッセージを受信する受信ノードの構成の一例を示す。図２に示される受信ノード１１０は、送信ノード１００からのメッセージを受信する受信装置の一例である。受信ノード１１０は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などを備えた電子制御装置の一例である。
【００３４】
受信ノード１１０は、ＣＡＮＩＤ識別部３１、周期性メッセージ受信部３２、ログデータ格納部３３、周期性情報データベース３４、周期性異常検知部３５、非周期性メッセージ受信部３８、受信数カウンタ３９、検証用ＭＡＣ計算部４０、異常処理部３７、ＭＡＣメッセージ受信部４１、ＭＡＣ比較部４２及びＭＡＣ比較エラー検知部４３を有する。
【００３５】
ＣＡＮＩＤ識別部３１、周期性メッセージ受信部３２、周期性異常検知部３５、非周期性メッセージ受信部３８、受信数カウンタ３９、検証用ＭＡＣ計算部４０、異常処理部３７、ＭＡＣメッセージ受信部４１、ＭＡＣ比較部４２及びＭＡＣ比較エラー検知部４３の各機能は、ＣＰＵが処理するプログラムによって実現される。ログデータ格納部３３は、ＲＡＭにより実現され、受信時刻ログデータが格納される。周期性情報データベース３４は、ＲＯＭにより実現され、周期性ルール等の周期性情報を予め記憶する。
【００３６】
次に、メッセージ送信処理について説明する。
【００３７】
図３は、周期性メッセージを送信する場合に送信ノードが実行する処理の流れの一例を示すフローチャートである。図１を参照して、図３について以下説明する。
【００３８】
周期性タイマ１０は、一定の周期で割り込み処理を発生させる。周期性タイマ１０による割り込み処理が発生すると、本処理フローが開始する。
【００３９】
周期性タイマ１０による割り込みが発生すると、ステップＳ３０にて、データフィールド生成部１１は、今回の周期タイミングｉで送信すべきデータを準備し、周期性ＣＡＮＩＤ生成部１２は、今回の周期タイミングｉで送信すべきデータのＣＡＮＩＤを準備する。ステップＳ３０にて、データフィールド生成部１１は、外部装置からの情報やセンサ情報などに基づいて、今回の周期タイミングｉで送信すべきデータを含むデータフィールドを生成する。一方、ステップＳ３０にて、周期性ＣＡＮＩＤ生成部１２は、今回の周期タイミングｉで送信すべきデータを含むメッセージ（メインメッセージ）が周期性メッセージであることを識別するためのＣＡＮＩＤ（周期性ＣＡＮＩＤ）を生成する。
【００４０】
ステップＳ３１にて、ＣＡＮメッセージ合成部１３は、今回の周期タイミングｉで送信すべきメインメッセージを生成する。ＣＡＮメッセージ合成部１３は、データフィールド生成部１１により生成されたデータフィールドと、周期性ＣＡＮＩＤ生成部１２により生成されたＣＡＮＩＤとを合成することによって、今回の周期タイミングｉで送信すべきメインメッセージを生成する。
【００４１】
ステップＳ３２にて、ＣＡＮメッセージ合成部１３は、通信バス２２のネットワーク状態を確認する。ＣＡＮメッセージ合成部１３は、通信バス２２のネットワーク状態の正常が確認された場合、ステップＳ３１にて生成したメインメッセージを送信する（ステップＳ３３）。
【００４２】
ステップＳ３４にて、ＣＡＮメッセージ合成部１３は、受信ノード１１０からの肯定応答ＡＣＫの受信有無に基づいて、メインメッセージをエラーなく送信できたか否かを判定する。メインメッセージをエラーなく送信できたとＣＡＮメッセージ合成部１３が判定した場合、送信ノード１００の制御状態は、周期性タイマ１０による割り込み処理を待機する定常処理状態に戻る。一方、メインメッセージの送信にエラーが発生したとＣＡＮメッセージ合成部１３が判定した場合、ＣＡＮメッセージ合成部１３は、メインメッセージの送信をリトライするリトライ処理、又はメインメッセージの送信を中止するエラー処理を実施する。
【００４３】
図４は、非周期性のメッセージの送信する場合に送信ノードが実行する処理の流れの一例を示すフローチャートである。図１を参照して、図４について説明する。
【００４４】
非周期性イベント発生部１４は、周期性のないイベントが発生した場合、非周期性イベント割り込み処理を発生させる。非周期性イベント発生部１４による割り込み処理が発生すると、本処理フローが開始する。
【００４５】
非周期性イベント発生部１４によるイベントが発生すると、ステップＳ４０にて、データフィールド生成部１５は、今回のイベントｊで送信すべきイベントデータを準備し、非周期性ＣＡＮＩＤ生成部１６は、今回のイベントｊで送信すべきイベントデータのＣＡＮＩＤを準備する。ステップＳ４０にて、データフィールド生成部１５は、外部装置からの情報やセンサ情報などに基づいて、今回のイベントｊで送信すべきイベントデータを含むデータフィールドを生成する。一方、ステップＳ４０にて、非周期性ＣＡＮＩＤ生成部１６は、今回のイベントｊで送信すべきイベントデータを含むメッセージ（メインメッセージ）が非周期性メッセージであることを識別するためのＣＡＮＩＤ（非周期性ＣＡＮＩＤ）を生成する。
【００４６】
ステップＳ４１にて、送信数カウンタ１８は、ステップＳ４０にて生成した非周期性ＣＡＮＩＤに対応するカウント値をインクリメントして、最新のカウント値とする。送信数カウンタ１８によりカウントされた最新のカウント値は、その非周期性ＣＡＮＩＤが付与された非周期性メッセージの送信回数を表す。
【００４７】
ステップＳ４２にて、ＣＡＮメッセージ合成部１７は、今回のイベントｊで送信すべきメインメッセージを生成する。ＣＡＮメッセージ合成部１７は、データフィールド生成部１５により生成されたデータフィールドと、非周期性ＣＡＮＩＤ生成部１６により生成されたＣＡＮＩＤとを合成することによって、今回のイベントｊで送信すべきメインメッセージを生成する。
【００４８】
ステップＳ４３にて、ＭＡＣ生成部１９は、通信システム１内の送信ノード１００と受信ノード１１０との間で共通の暗号鍵（共通鍵）を用いて、非周期性メッセージ用ＭＡＣを算出する。ＭＡＣ生成部１９は、共通鍵を用いて、非周期性ＣＡＮＩＤ生成部１６による非周期性ＣＡＮＩＤ、送信数カウンタ１８による最新のカウント値及びデータフィールド生成部１５によるデータフィールド内のデータに基づき、非周期性メッセージ用ＭＡＣを算出する。
【００４９】
ステップＳ４４にて、ＣＡＮメッセージ合成部２１は、今回のイベントｊで送信すべきＭＡＣを含むメッセージ（ＭＡＣメッセージ）を生成する。ＣＡＮメッセージ合成部２１は、ＭＡＣ生成部１９によって算出されたＭＡＣを格納したデータフィールドと、ＭＡＣ用ＣＡＮＩＤ生成部２０により生成されたＣＡＮＩＤとを合成することによって、今回のイベントｊで送信すべきＭＡＣメッセージを生成する。ＭＡＣ用ＣＡＮＩＤ生成部２０により生成されたＣＡＮＩＤは、ＭＡＣメッセージが非周期性メッセージであることを識別するための非周期性ＣＡＮＩＤである。
【００５０】
ステップ４５にて、ＣＡＮメッセージ合成部１７，２１は、通信バス２２のネットワークの状態を確認する。ＣＡＮメッセージ合成部１７は、通信バス２２のネットワーク状態の正常が確認された場合、ステップＳ４２にて生成したメインメッセージを送信する（ステップＳ４６）。ＣＡＮメッセージ合成部２１は、通信バス２２のネットワーク状態の正常が確認された場合、ステップＳ４４にて生成したＭＡＣメッセージを送信する（ステップＳ４７）。
【００５１】
ステップＳ４８にて、ＣＡＮメッセージ合成部１７，２１は、受信ノード２００からの肯定応答ＡＣＫの受信有無に基づいて、メインメッセージをエラーなく送信できたか否かを判定し、ＭＡＣメッセージをエラーなく送信できたか否かを判定する。メインメッセージ及びＭＡＣメッセージをエラーなく送信できたとＣＡＮメッセージ合成部１７，２１が判定した場合、送信ノード１００の制御状態は、非周期性イベント発生部１４による割り込み処理を待機する定常処理状態に戻る。一方、メインメッセージ又はＭＡＣメッセージの送信にエラーが発生したとＣＡＮメッセージ合成部１７，２１が判定した場合、ＣＡＮメッセージ合成部１７，２１は、メインメッセージ又はＭＡＣメッセージの送信をリトライするリトライ処理、もしくはメインメッセージ又はＭＡＣメッセージの送信を中止するエラー処理を実施する。
【００５２】
次に、メッセージの受信処理について説明する。
【００５３】
図５は、メッセージを受信する場合に受信ノードが実行する処理の流れの一例を示すフローチャートである。図２を参照して、図５について以下する。
【００５４】
受信ノード１１０は、メインメッセージを受信すると、その受信したメインメッセージ（受信メインメッセージ）の受信時刻は、一時的に記録される（ステップＳ６０）。
【００５５】
ステップＳ６１にて、ＣＡＮＩＤ識別部３１は、ステップＳ６０での受信メインメッセージからＣＡＮＩＤを分離（抽出）する。
【００５６】
ステップＳ６２にて、ＣＡＮＩＤ識別部３１は、ステップＳ６１にて分離されたＣＡＮＩＤが、自身宛てメッセージのＣＡＮＩＤに該当するか否かを判定する。ステップＳ６１にて分離されたＣＡＮＩＤが、自身宛てメッセージのＣＡＮＩＤに該当しないと判定された場合、受信ノード１１０の制御状態は、メインメッセージの受信待ち状態に戻る。一方、ステップＳ６１にて分離されたＣＡＮＩＤが、自身宛てメッセージのＣＡＮＩＤに該当すると判定された場合、ステップＳ６３の処理が実行される。
【００５７】
ステップＳ６３にて、ＣＡＮＩＤ識別部３１は、ステップＳ６１にて分離されたＣＡＮＩＤが、メインメッセージが周期性メッセージであることを示す周期性ＣＡＮＩＤに該当するか否かを判定する。ステップＳ６１にて分離されたＣＡＮＩＤが周期性ＣＡＮＩＤに該当すると判定された場合、ステップＳ６４の処理が実行される。
【００５８】
ステップＳ６４にて、周期性メッセージ受信部３２は、ステップＳ６０で今回受信した受信メインメッセージとＣＡＮＩＤが同じ受信メインメッセージが前回受信したときの受信時刻ログデータをログデータ格納部３３から読み出して周期性異常検知部３５に提供する。ステップＳ６５にて、周期性メッセージ受信部３２は、ステップＳ６０で今回受信した受信メインメッセージのＣＡＮＩＤに対応付けされた周期性ルールを周期性情報データベース３４から読み出す。周期性メッセージ受信部３２は、読み出した周期性ルールで予め決まっている当該ＣＡＮＩＤの周期性メッセージの受信周期仕様を特定して周期性異常検知部３５に提供する。
【００５９】
ステップＳ６６にて、周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージの受信時刻がステップＳ６５にて読み出した周期性ルールを満たしているか否かを判断する。例えば、周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージの受信時刻と、ステップＳ６４で読み出された受信時刻ログデータが示す受信時刻との差が、周期性ルールで予め決まっている受信周期仕様を満たしているか否かを判断する。
【００６０】
周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージの受信時刻がステップＳ６５にて読み出した周期性ルールを満たしているとステップＳ６６にて判断した場合、ステップＳ６７の処理が実行される。
【００６１】
ステップＳ６７にて、周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージの受信時刻ログデータを、ログデータ格納部３３に格納された受信時刻履歴リストに登録する。周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージ内のデータをアプリケーションプログラムに提供する。
【００６２】
一方、周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージの受信時刻がステップＳ６５にて読み出した周期性ルールを満たしていないとステップＳ６６にて判断した場合、受信ノード１１０が受信したメッセージに不正メッセージが混入していると判定する。この場合、周期性異常検知部３５は、不正メッセージの混入を通知するなどの異常検知処理を実施する。
【００６３】
一方、ステップＳ６３において、ステップＳ６１にて分離されたＣＡＮＩＤが周期性ＣＡＮＩＤに該当しない（例えば、メインメッセージが非周期性メッセージであること示す非周期性ＣＡＮＩＤに該当する）と判定された場合、ステップＳ６７の処理が実行される。
【００６４】
ステップＳ６７にて、受信数カウンタ３９は、ステップＳ６１にて分離したＣＡＮＩＤ（この場合、非周期性ＣＡＮＩＤ）に対応するカウント値をインクリメントして、最新のカウント値とする。受信数カウンタ３９によりカウントされた最新のカウント値は、その非周期性ＣＡＮＩＤが付与された非周期性メッセージの受信回数を表す。
【００６５】
ステップＳ６８にて、検証用ＭＡＣ計算部４０は、通信システム１内の送信ノード１００と受信ノード１１０との間で共通の暗号鍵（共通鍵）を用いて、非周期性メッセージ用ＭＡＣを算出する。検証用ＭＡＣ計算部４０は、共通鍵を用いて、非周期性メッセージ受信部３８からの非周期性ＣＡＮＩＤ、受信数カウンタ３９による最新のカウント値及び非周期性メッセージ受信部３８からの受信メインメッセージ内のデータフィールド内のデータに基づき、非周期性メッセージ用ＭＡＣを算出する。
【００６６】
ステップ６９にて、ＭＡＣメッセージ受信部４１は、通信バス３０からＭＡＣメッセージを受信する。ステップＳ７０にて、ＭＡＣ比較部４２は、検証用ＭＡＣ計算部４０が計算した非周期性メッセージＭＡＣと、ＭＡＣメッセージに付与されたＭＡＣとを比較する。
【００６７】
両ＭＡＣが互いに一致すると判断された場合、周期性異常検知部３５は、ステップＳ６０で今回受信した受信メインメッセージ内のデータをアプリケーションプログラムに提供する。一方、両ＭＡＣが互いに一致しないと判断された場合、周期性異常検知部３５は、不正メッセージの混入を通知するなどの異常検知処理を実施する。
【００６８】
以上、通信システムを実施形態により説明したが、本発明は上記実施形態に限定されるものではない。他の実施形態の一部又は全部との組み合わせや置換などの種々の変形及び改良が、本発明の範囲内で可能である。
【００６９】
例えば、本開示の技術は、車載の通信システム以外の非車載の通信システム、又は、ＣＡＮ通信システム以外の通信システムにも適用できる。例えば、工場の制御系ネットワークへの適用や、Ethernet（登録商標）を用いた通信システムにも適用可能である。
【００７０】
また、上述の実施形態では、不正メッセージの混入検知を受信ノード側で実施する例を示した。しかし、ゲートウェイ装置などに配置される侵入検知プログラムなどがこの検知機能の一部又は全部を担ってもよい。
【００７１】
また、上述の実施形態では、送信ノードは、メインメッセージとは別のＭＡＣメッセージにＭＡＣを添付して送信する例を示した。しかし、送信ノードは、メインメッセージにＭＡＣを添付して送信してもよい。
【符号の説明】
【００７２】
１  通信システム
５１  周期性メッセージ生成部
５２  非周期性メッセージ生成部
１００  送信ノード
１１０  受信ノード
【図１】
2018082321.tif 000003
【図２】
2018082321.tif 000004
【図３】
2018082321.tif 000005
【図４】
2018082321.tif 000006
【図５】
2018082321.tif 000007