(57)【要約】【課題】認証異常の種類を区別できるようにしたメッセージの認証異常判別装置を提供する。【解決手段】受信ノード４が、ハードウェア上でメッセージを受信失敗したときには、認証用カウンタ１８をインクリメントしない。このとき受信ノード４は、ＭＡＣ検証ＮＧと判定し続け、ＮＧ継続カウンタ１９の値がインクリメントされ規定値に達したときに、Ｕ８にて送受信ノード３、４間の認証用カウンタ１８のずれに起因した異常であると判別する。また、不正機器６がネットワーク２に接続されている場合には、Ｕ５にて累積カウンタ２０により計数されるＮＧの累積回数は増加し続ける。このため、Ｕ６にて累積カウンタ２０が規定値以上となったときには、Ｕ１０にて不正メッセージを受信していると判別する。【選択図】図８
2018007102.tif 000002
【特許請求の範囲】
【請求項１】
送信ノード（３）がネットワーク（２）にメッセージを送信し、受信ノード（４）がネットワークからメッセージを受信する通信システム（１）であり、
前記送信ノード（３）は、送信対象のデータを生成するデータ生成部（１１）と、前記データの生成の度に所定値を加減算する送信用の第１認証用カウンタ（１８）と、前記データ及び前記第１認証用カウンタの値に基づいてメッセージ認証コード（以下ＭＡＣと略す）を生成し、前記データと共に前記ＭＡＣをメッセージとしてネットワークに送信するメッセージ送信部（１０）と、を備え、
前記受信ノード（４）は、前記メッセージ送信部により送信されたデータ及びＭＡＣをメッセージとして受信するメッセージ受信部（１２）と、前記メッセージの受信の度に前記所定値を加減算する受信用の第２認証用カウンタ（１８）と、前記受信されたデータ及び前記第２認証用カウンタからＭＡＣを生成するＭＡＣ生成部（１３、Ｔ３）と、前記メッセージ送信部によりネットワークに送信されたＭＡＣを受信し当該ＭＡＣと前記ＭＡＣ生成部により生成されたＭＡＣとを比較し一致するか否かを判定することでＭＡＣ検証ＯＫ／ＮＧを判定する一致判定部（１４、Ｔ４〜Ｔ７）と、を備えた通信システム（１）における認証異常判別装置（４）であって、
前記一致判定部によりＮＧと判定されると当該ＮＧ発生からのＮＧ継続時間を計測しＯＫと判定されるとＮＧ継続時間をクリアするＮＧ継続計測部（１５、１９）と、
前記一致判定部によりＮＧと判定されてから当該一致判定部により判定されるＮＧの累積回数を計数する累積ＮＧ回数計数部（１６、２０）と、
前記ＮＧ継続計測部の計測結果及び前記累積ＮＧ回数計数部の計数結果に基づいて認証異常の種類を判別する異常種類判別部（１７、Ｕ８、Ｕ１０）と、
を備えるメッセージの認証異常判別装置。
【請求項２】
請求項１記載の認証異常判別装置において、
前記異常種類判別部は、
前記ＮＧ継続計測部によるＮＧ継続時間が所定時間以上となったときには前記第１及び第２認証用カウンタのずれを発生していると判別するメッセージの認証異常判別装置。
【請求項３】
請求項２記載の認証異常判別装置において、
前記所定時間は前記メッセージの受信周期の２以上の所定倍に設定されているメッセージの認証異常判別装置。
【請求項４】
請求項１または２記載の認証異常判別装置において、
前記異常種類判別部は、
前記累積ＮＧ回数計数部により計数される累積回数が所定回数以上となったときには不正メッセージの受信であると判別するメッセージの認証異常判別装置。
【請求項５】
請求項３記載の認証異常判別装置において、
前記異常種類判別部は、
前記累積ＮＧ回数計数部により計数される累積回数が所定回数以上となったときには不正メッセージの受信であると判別するメッセージの認証異常判別装置。
【請求項６】
請求項５記載の認証異常判別装置において、
前記累積回数の閾値となる所定回数は、前記ＮＧ計測時間の閾値となる所定時間内では超えないように予め設定されているメッセージの認証異常判別装置。
【請求項７】
請求項２記載の認証異常判別装置において、
前記通信システム（１）は、前記第１認証用カウンタ及び前記第２認証用カウンタの初期値を配信するマスタノード（３）を備えた通信システム（１）であって、
前記異常種類判別部が前記第１及び第２認証用カウンタのカウンタずれを生じていると判別すると（Ｕ８）、前記マスタノードへ前記第１及び第２認証用カウンタの初期化通知要求を行う初期化通知要求部（Ｗ１）、をさらに備えるメッセージの認証異常判別装置。
【請求項８】
請求項７記載の認証異常判別装置において、
前記第１及び第２認証用カウンタが初期化されるときには、前記累積回数及び前記ＮＧ継続時間をリセットするリセット部（Ｗ５）、をさらに備えるメッセージの認証異常判別装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージの認証異常判別装置に関する。
【背景技術】
【０００２】
従来、送信ノードと受信ノードとの間でメッセージを送受信するときに、メッセージ認証コード（以下、ＭＡＣと称す）を利用してメッセージの認証を行う方法が提案されている（例えば、特許文献１参照）。特許文献１記載の技術によれば、送信ノードがメインメッセージおよびカウンタ値に基づいて生成されるＭＡＣを含むＭＡＣメッセージを送信し、受信ノードがメインメッセージおよび受信ノードに記憶されているカウンタ値に基づいて生成されるＭＡＣと、ＭＡＣメッセージに含まれるＭＡＣとが一致するか否かによりメインメッセージの正当性を検証している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５７７０６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１記載の技術を採用したときには、例えば通信エラー等により送信ノード、受信ノードのそれぞれに設けられるカウンタ値がずれてしまった場合、ＭＡＣの値も異なってしまう。このとき、受信ノードがメッセージの検証時にＮＧとなる。また例えば、不正機器がネットワークに接続されることで当該不正機器が送信ノードに成りすましたときにも、受信ノードがメッセージの検証時にＮＧとなる。このため、これらの区別ができなくなる。
【０００５】
本発明の目的は、認証異常を区別できるようにしたメッセージの認証異常判別装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載の発明によれば、データ生成部が送信対象となるデータを生成し、第１認証用カウンタがデータ生成の度に所定値を加減算する。そして、メッセージ送信部は、データ及び第１認証用カウンタの値に基づいてメッセージ認証コード（以下、ＭＡＣ）を生成し、データと共にＭＡＣをネットワークに送信する。
【０００７】
受信ノードでは、メッセージ受信部がデータ及びＭＡＣを受信する。第２認証用カウンタは、メッセージの受信の度に所定値を加減算する。ＭＡＣ生成部は、データ及び第２認証用カウンタからＭＡＣを生成する。そして一致判定部は、メッセージ送信部によりネットワークに送信されたＭＡＣを受信し当該ＭＡＣとＭＡＣ生成部により生成されたＭＡＣとを比較し一致するか否かを判定することでＭＡＣ検証ＯＫ／ＮＧを判定する。累積ＮＧ回数計数部は、一致判定部によりＮＧと判定されてからＮＧの累積回数を計数する。異常種類判別部は、ＮＧ継続計測部の計測結果及び累積ＮＧ回数計数部の計数結果に基づいて認証異常の種類を判別する。
【０００８】
例えば受信ノードがハードウェア上でメッセージを正常に取得できないときには、第２認証用カウンタは所定値の加減算処理をしない。このため、受信ノードがハードウェア上でメッセージを一度でも受信失敗すると、第１及び第２認証用カウンタの値はずれ続け、一致判定部によりＭＡＣ検証ＮＧと判定され続けることになる。すると、ＮＧ継続計測部はその後ＮＧ継続時間を計測し続ける。これにより異常判別できる。特に、請求項２に示すように、所定時間以上となったときに第１及び第２認証用カウンタのずれを発生していると判別できる。
【０００９】
また、例えば受信ノードがハードウェア上でメッセージを正常に取得し続けているときには送信ノードの第１認証用カウンタ及び受信ノードの第２認証用カウンタの値は一致することになる。このため、一致判定部によりＭＡＣ検証ＯＫと判定されることでＮＧ継続計数部はＮＧ継続時間をクリアすることになる。このため第１及び第２認証用カウンタのカウンタずれに基づくＭＡＣ検証ＮＧではないことを判別できる。また、例えば不正機器がネットワークに接続されている場合には、累積ＮＧ回数計数部により計数されるＮＧの累積回数は増加し続けることになる。このため、特に請求項４、５に示すように累積回数が所定回数以上となったときには不正メッセージの受信であると判別できる。このようにして認証異常の種類を区別できる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態について示す通信システムの電気的構成図
【図２】ＣＡＮのデータフレームの一部を示す図
【図３】ＥＣＵの電気的構成を機能的に示す図
【図４】メッセージの管理テーブルの内容例
【図５】送信ノードの処理の流れを示す説明図
【図６】受信ノードの処理の流れを示す説明図
【図７】認証用カウンタの変化を示すタイミングチャート
【図８】検証ＮＧ要因の監視処理を説明するフローチャート
【図９】周期的な処理内容を示すフローチャート
【図１０】受信失敗時における動作を示すタイミングチャート
【図１１】不正機器による不正処理を想定した場合の動作を示すタイミングチャート
【図１２】第２実施形態についてスレーブノード（受信ノード）によるカウンタ初期化処理の内容を説明するフローチャート
【図１３】マスタノードによるカウンタ初期化処理の内容を説明するフローチャート
【図１４】認証用カウンタの値の変化を示すタイミングチャート
【図１５】第３実施形態について検証ＮＧ要因の監視処理を説明するフローチャート
【図１６】周期的な処理を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、メッセージの認証異常判別装置の幾つかの実施形態を説明する。以下の実施形態中では、各実施形態間で同一機能または類似機能を備えた部分に同一符号を付して説明を行い、同一又は類似機能を備えた構成及びその作用、連携動作説明等を必要に応じて省略する。
【００１２】
（第１実施形態）
図１〜図１１は、第１実施形態の説明図を示す。図１に通信システム１の構成例を示す。ネットワーク２には例えばＣＡＮ（Controller Area Network）が採用されている。ＣＡＮは相互接続された機器間のデータ伝送に用いられる通信プロトコルを採用したネットワークである。
【００１３】
このネットワーク２には様々なＥＣＵ（Electronic Control Unit）、すなわち、ＥＣＵ＿Ａ３、ＥＣＵ＿Ｂ４、ＥＣＵ＿Ｃ５が接続されている。これらのＥＣＵ３〜５はネットワーク２に接続されており相互に通信可能であるため、以下では、これらのＥＣＵ３〜５をそれぞれ通信ノード３〜５として説明する。また図１に示すように、ネットワーク２には不正機器６が接続される虞もある。ＣＡＮにはバス型アーキテクチャが用いられているため、ネットワーク２に伝送されるメッセージを全ての通信ノード３〜５、６が参照可能となっている。
【００１４】
図２はＣＡＮに用いられるフレームの一部の内容例を示している。例えば、データフレーム７は、識別子フィールド（所謂ＣＡＮＩＤ）８と、データを格納するデータフィールド９と、を含む。例えばデータフレーム７は、その他のフィールドも備えるが、その説明は割愛する。識別子フィールド８は、メッセージがどのようなメッセージであるかを示すものであり、通信ノード３〜５がメッセージを受信するときに識別子フィールド８に格納されるＣＡＮＩＤを参照し、自ノードが処理すべきデータであるかを判定し、必要に応じてカウンタ（後述の各種カウンタ１８〜２０の説明参照）の更新処理を行い、必要に応じてデータ処理を行う。また、データフィールド７にはデータの内容が格納される。
【００１５】
図３は通信ノード３〜５の電気的構成を機能的に示している。各通信ノード３〜５は、例えばＣＰＵ、ＲＯＭ、ＲＡＭ、Ａ／Ｄ変換回路等（何れも図示せず）を有するマイクロコンピュータを備えて構成され、その他、センサやアクチュエータ（図示せず）を接続するインタフェースを備える。
【００１６】
通信ノード３〜５は、送信用としてメッセージ送信部１０及びデータ生成部１１としての機能を備え、受信用として、メッセージ受信部１２、メッセージ認証コード（以下ＭＡＣ）生成部１３、一致判定部１４、ＮＧ継続計測部１５、累積ＮＧ回数計数部１６、異常種類判別部１７としての機能を備える。これらの各種機能１０〜１７は、各通信ノード３〜５が非遷移的記憶媒体となるメモリ（例えばＲＯＭ）に格納されたプログラムを実行することで実現される機能を示しており、メッセージ送信及びメッセージの受信に必要な処理内容が選択的に実行される。
【００１７】
また、各通信ノード３〜５は、送信用及び受信用の認証用カウンタ１８、ＮＧ継続カウンタ１９、累計カウンタ２０による各種カウンタ１８〜２０を備える。これらのカウンタ１８〜２０の値は、メモリの管理テーブル２１に格納される。また各通信ノード３〜５は、ＮＧ継続フラグなど各種フラグを利用してソフトウェア処理を実行するようになっているが、この図示は省略している。
【００１８】
図４は各通信ノード３〜５の内部に用意されている管理テーブル２１の内容を示す。各通信ノード３〜５において、認証用カウンタ１８は、通常、識別子（ＣＡＮＩＤ）毎に用意されている。識別子をＩＤ１〜ＩＤ６…としたとき、認証用カウンタ１８の値ＡｕｔｈＣ１〜Ｃ６…はこれらの識別子ＩＤ１〜ＩＤ６…に対応して管理テーブル２１に格納される。通信ノード３のＮＧ継続カウンタ１９の値ＣｏｎｔＣ３〜Ｃ６…は、「受信」に対応する識別子ＩＤ３〜ＩＤ６…に対応して管理テーブル２１に格納される。
【００１９】
通信ノード４のＮＧ継続カウンタ１９の値ＣｏｎｔＣ１、Ｃ３…は、「受信」に対応する識別子ＩＤ１、ＩＤ３…に対応して管理テーブル２１に格納される。通信ノード５のＮＧ継続カウンタ１９の値ＣｏｎｔＣ１、Ｃ２…は、「受信」識別子ＩＤ１、ＩＤ２…に対応して管理テーブル２１に格納される。
【００２０】
また通信ノード３の累計カウンタ２０の値ＴｏｔａｌＣ３〜Ｃ６…は、「受信」識別子ＩＤ３〜ＩＤ６…に対応して管理テーブル２１に格納される。通信ノード４の累計カウンタ２０の値ＴｏｔａｌＣ１、Ｃ３…もまた、「受信」識別子ＩＤ１、ＩＤ３…に対応して管理テーブル２１に格納される。
【００２１】
通信ノード５の累計カウンタ２０の値ＴｏｔａｌＣ１、Ｃ３…は、「受信」識別子ＩＤ１、ＩＤ２…に対応して管理テーブル２１に格納される。これらのＮＧ継続カウンタ１９及び累計カウンタ２０は、通信ノード３〜５が、受信時にＭＡＣ検証ＮＧの原因を検証するために設けられるカウンタである。
【００２２】
本実施形態では、ネットワーク２においてメッセージの不正検証を可能にすると共に通信エラーによる受信失敗であるか否かを判別可能にする。以下の説明では、説明の簡単化のため、メッセージを送信する通信ノードを「送信ノード３」とし、この送信されたメッセージを受信する通信ノードを「受信ノード４」とする。
【００２３】
図５及び図６には、送信ノード３及び受信ノード４がメッセージの送受信時にソフトウェア上で実行する処理を概略的に示している。図５に示すように、送信ノード３は、データ生成部１１により送信対象となるデータを生成した後、Ｓ１においてこの生成の度に認証用カウンタ１８をインクリメントし、Ｓ２において識別子、認証用カウンタ１８の値、データからＭＡＣを生成する。このＭＡＣの生成方法は例えば特許文献１に記載の技術を適用すれば良いためその説明を省略する。そして、送信ノード３は、メッセージ送信部１０により、Ｓ３において送信対象のデータ、及び、生成したＭＡＣをメッセージとしてネットワーク２に送信する。
【００２４】
図６に示すように、受信ノード４は、メッセージ受信部１２によりＴ１においてネットワーク２からメッセージを受信すると、当該メッセージからＭＡＣを取得する。受信ノード４は、Ｔ２においてメッセージの受信の度に認証用カウンタ１８をインクリメントする。また、受信ノード４は、ＭＡＣ生成部１３によりＴ３において識別子、認証用カウンタ１８、データからＭＡＣを生成する。そして、受信ノード４は、一致判定部１４によりＴ４においてＴ１にて受信したＭＡＣとＴ３にて生成したＭＡＣとを比較し、Ｔ５においてＴ４で比較したＭＡＣが一致するか否かを判定する。これにより、ＭＡＣ検証ＯＫ／ＮＧを判定する。ここでＭＡＣが一致していれば、Ｔ６においてＭＡＣ認証ＯＫと判断し、一致しなければ、Ｔ７においてＭＡＣ検証ＮＧと判断する。
【００２５】
受信ノード４は、図６に示すソフトウェア処理を実行する前にネットワーク２上に送信されたメッセージをハードウェア上で正常に受信できないこともある。このような場合、受信ノード４は図６に示すソフトウェア処理を実行することはない。
【００２６】
受信ノード４が図６に示すソフトウェア処理を実行しないと、Ｔ２における認証用カウンタ１８のインクリメント処理（加減算処理相当）が行われないことになる。図７に認証用カウンタ１８（第１認証用カウンタ、第２認証用カウンタ相当）の時間的変化を示す。この図７において、白抜き三角は送信ノード３の送信タイミング及び受信ノード４の受信タイミングを示す。図７に示すように、受信失敗の時点において、受信ノード４の認証用カウンタ１８のカウント数が、送信ノード３の認証用カウンタ１８のカウント数に比較して目減りし、その後のカウント数は、送信ノード３及び受信ノード４の間でずれる。このため、一旦、受信ノード４が受信失敗すると、その後、送信ノード３の管理テーブル２１中の「送信」欄の認証用カウンタ１８の値と、受信ノード４の管理テーブル２１中の「受信」欄の認証用カウンタ１８の値と、が互いに異なる値になる。
【００２７】
したがって、受信ノード４が、図６のＴ７においてＭＡＣ検証ＮＧと判断したとしても、この認証用カウンタ１８のずれに起因するものであるか、不正機器６から不正メッセージを受信したことに起因するものであるか、図６のＴ７の時点では判断できないことになる。
【００２８】
この原因を判別するため、受信ノード４は、図６に示す処理を終了した後、図８に示す処理を実行する。また受信ノード４は、タイマ割込処理を用いて図９に示す処理も周期的に実行する。この周期的タスクの実行周期は、受信ノード４がメッセージを受信する周期より短く設定されている。
【００２９】
受信ノード４は、図６のＴ６でメッセージのＭＡＣ検証ＯＫであると判断したときには、図８のＵ１においても受信したメッセージのＭＡＣ検証ＯＫであると判断する。この場合、受信ノード４は、図８のＵ２においてＮＧ継続フラグをオフし、図８のＵ３においてＮＧ継続カウンタ１９をクリアする。受信ノード４は、図８のＵ６においてＮＧ継続カウンタが規定値（所謂、閾値）以上であるか、図８のＵ７において累積カウンタ２０が規定値（所謂、閾値）以上であるか、否かを判定し、これらの判定結果の何れも満たさない場合には、監視処理を終了する。
【００３０】
図８のＵ６において、ＮＧ継続カウンタ１９が規定値以上となっていると判定したときには、受信ノード４は、図８のＵ６にてＹＥＳと判定し、図８のＵ８にて検証ＮＧ要因を送信ノード３及び受信ノード４の間の認証用カウンタ１８のずれであると判別する。このとき受信ノード４は、図８のＵ９においてカウンタ初期化処理を行う。カウンタ初期化処理は、ネットワーク２に接続されている全通信ノード３〜５の認証用カウンタ１８の値を一致させる処理であり、本実施形態では詳細説明を省略する。
【００３１】
また図８のＵ６において、ＮＧ継続カウンタ１９が規定値未満となっていると判定したときには、受信ノード４は図８のＵ６にてＮＯと判定する。そして受信ノード４は、累積カウンタ２０が規定値以上であると判定したときには、図８のＵ７にてＹＥＳと判定する。受信ノード４は、図８のＵ１０において検証ＮＧ要因を不正機器６による不正メッセージの注入であると判別する。
【００３２】
また、受信ノード４は、図９に示すタスクを周期的に実行する。受信ノード４は、図９のＶ１にてＮＧ継続フラグがオンであると判定されたことを条件として、図９のＶ２においてＮＧ継続カウンタ１９をインクリメントする。
【００３３】
受信ノード４は、このような一連の処理を行うことで、異常種類判別部１７によりＮＧ継続カウンタ１９の計測結果、及び、累計カウンタ２０の計数結果に基づいて認証異常の種類を判別できる。
【００３４】
以下、事例別に図１０、図１１に示すタイミングチャートを参照しながら説明する。図１０は、受信ノード４がハードウェア上で受信失敗したことを想定した場合のＮＧ継続カウンタ１９及び累計カウンタ２０の時間変化をタイミングチャートを用いて示している。図１１は、ネットワーク２に不正に接続された不正機器６により不正メッセージが注入されたことを想定した場合のＮＧ継続カウンタ１９及び累計カウンタ２０の時間変化をタイミングチャートを用いて示している。これらの図１０及び図１１中における実線は、ＮＧ継続カウンタ１９の値の時間的変化を示しており、破線は累計カウンタ２０の時間的変化を示しており、白抜き三角は受信ノード４の受信タイミングを示している。
【００３５】
累計カウンタ２０は、図８のＵ１においてＭＡＣ検証ＮＧであると判定されたときにインクリメントされる。このため、受信ノード４が一旦ハードウェア上で受信失敗したときには、図１０に示すように、累積カウンタ２０はこのタイミングから受信タイミング毎に徐々に増加する。また、受信ノード４が受信失敗すると、このタイミングの後、ＮＧ継続カウンタ１９は、受信ノード４が図９の周期タスクを実行する度に増加する。このときＮＧ継続カウンタ１９は、ＮＧ発生からのＮＧ継続時間を計測するＮＧ継続計測部１５として用いられる。
【００３６】
この場合、累積カウンタ２０が受信タイミング毎にインクリメントして閾値に達する前に、ＮＧ継続カウンタ１９により計測されるＮＧ継続時間がその閾値となる所定時間に早く達するように予め設定されていれば、受信失敗から所定時間経過したことを確実に検出できる。
【００３７】
図９に示される周期タスクが所定回実行されることでＮＧ継続時間が所定時間に達すると、受信ノード４は、図８のＵ６にてＹＥＳと判定し、この結果、図８のＵ８にて送信ノード３及び受信ノード４の間のカウンタずれと判別できる。なお、図示していないが、ＮＧ継続時間が所定時間に達することなく、受信ノード４がＭＡＣ検証ＯＫと判定したときにはＮＧ継続時間はクリアされることになる。
【００３８】
特に、例えば、ＮＧ継続時間の閾値となる所定時間が、正規のメッセージの受信周期の２以上の所定倍程度に設定されている場合、受信ノード４が、当該所定時間以内にＭＡＣ検証ＯＫと判定することなく、ＭＡＣ検証ＮＧの判定を継続したときには、送信ノード３及び受信ノード４の間の認証用カウンタ１８のずれに起因したＮＧであることを確実に特定できる。
【００３９】
また、不正機器６が通信ノード３〜５になりすましてネットワーク２に接続されているときには、不正機器６が定期的又は不定期にメッセージをネットワーク２に送信することが想定される。図１１中における黒塗り三角は、受信ノード４がこのメッセージをハードウェア上で正常に受信するタイミングを示している。
【００４０】
不正機器６がメッセージを定期的にネットワーク２に送信したときには、受信ノード４がこのメッセージを受信し、図６のＭＡＣの検証比較処理を行ったとしても図６のＴ７にてＭＡＣ検証ＮＧと判断する。このとき、受信ノード４は、図８のＵ１にてＮＧと判定するため、この判定結果に応じて、図８のＵ５において累積カウンタ２０がインクリメントされる。累積カウンタ２０は、ＭＡＣ検証ＮＧと判定されてから図８のＵ５を実行する度にインクリメントされる。このため、累積カウンタ２０はＮＧの累積回数を計数する累積ＮＧ回数計数部１６として機能する。
【００４１】
他方、ＮＧ継続カウンタ１９は、前述したように図９の周期タスクの実行に伴いインクリメントされるが、受信ノード４が、送信ノード３から送信される正規のメッセージを受信したときにはＭＡＣ検証ＯＫと判定する。これは、送信ノード３及び受信ノード４の認証用カウンタ１８が一致しているためである。受信ノード４が図６のＴ６にてＭＡＣ検証ＯＫと判定すると、ＮＧ継続カウンタ１９は図８のＵ３にてクリアされる。
【００４２】
ＮＧ継続カウンタ１９は正規にメッセージを受信したタイミングでクリアされるものの、累積カウンタ２０は、受信ノード４が不正機器６から不正メッセージを受信する度にカウンタを累積する。このため受信ノード４は、その累積カウンタ２０がその閾値に達することで、不正メッセージの受信回数が閾値に達したと判定する。この累積カウンタ２０の閾値は、通信システム１が正常に動作していれば通常では到達することが不可能となる値に設定することが望ましい。特に、累積カウンタ２０の閾値となる所定回数は、ＮＧ計測時間の閾値となる所定時間内では超えないように予め設定されていると良い。
【００４３】
このため、受信ノード４はＵ７にてＹＥＳと判定し、Ｕ１０にて不正機器６による不正メッセージの注入であると判別できる。このように判別したときには、例えば外部の管理サーバ（図示せず）への通知、又は攻撃履歴をメモリに記憶しておくことで、攻撃があったことを通知、記録することが可能となる。
【００４４】
以下、本実施形態の特徴部分をまとめる。受信ノード４が例えばハードウェア上でメッセージを受信失敗したときには、認証用カウンタ１８をインクリメントしない。すると、送信ノード３と受信ノード４との間で認証用カウンタ１８がずれ続ける。したがって、受信ノード４は、ＭＡＣ検証ＮＧと判定し続け、ＮＧ継続カウンタ１９がインクリメントされることによってＮＧ継続時間を計測し続ける。これにより異常判別できる。特に、このＮＧ継続時間が所定時間以上となったときに、送信ノード３の認証用カウンタ１８と受信ノード４の認証用カウンタ１８のずれに起因した異常であると判別できる。
【００４５】
また、受信ノード４がハードウェア上でメッセージを正常に取得し続けているときには送信ノード３及び受信ノード４の認証用カウンタ１８の値は一致する。このため、図１１に示すように、受信ノード４が正常に受信したタイミングにおいてＮＧ継続時間はクリアされ、送信ノード３及び受信ノード４の認証用カウンタ１８の値のずれに基づくＭＡＣ検証ＮＧではないことを判別できる。
【００４６】
また、不正機器６がネットワーク２に接続されている場合には、累積カウンタ２０により計数されるＮＧの累積回数は増加し続けることになる。このため、特に、この累積カウンタ２０が計数するＮＧ累積回数が所定回数以上となったときには、不正メッセージを受信していると判別できる。このようにして異常の内容を判別できる。
【００４７】
また、ＮＧ継続カウンタ１９の閾値は、データ受信不能な期間が通信システム１として許容できる範囲内で設定することが望ましく、例えば受信周期の２以上の所定倍（例えば３倍程度）とすることが望ましい。
【００４８】
また累積カウンタ２０の閾値は、不正機器６から連続して不正フレームが送信される攻撃を想定しているため、正規のメッセージを正常に受信したときにはＮＧ継続カウンタ１９が閾値に達しないように設定することが望ましい。このため、本実施形態では受信ノード４が正規のメッセージを正常に受信したときにはＮＧ継続カウンタ１９の値をクリアしている。
【００４９】
また累計カウンタ２０は、送信ノード３及び受信ノード４の間の認証用カウンタ１８のずれに応じてインクリメントされるものの、累計カウンタ２０の閾値を超える前にＮＧ継続カウンタ１９が閾値を先に超えるように設定されている。このため、認証用カウンタ１８のずれを不正機器６による不正メッセージの注入に起因するものと誤判別する可能性をなくすことができる。
【００５０】
（第２実施形態）
図１２〜図１４は第２実施形態の追加説明図を示す。第２実施形態では、図８のＵ９に示したカウンタ初期化処理の詳細について説明する。
【００５１】
通信システム１は、認証用カウンタ１８の値を全通信ノード３〜５の間で同一値とすることで正常に通信継続できる。通信システム１の起動中において、送信ノード３がデータを生成するときに認証用カウンタ１８をカウントし、受信ノード４がメッセージの受信の度に認証用カウント１８をカウントすることで、全通信ノード３〜５は認証用カウンタ１８を同一値にすることができる。しかし、受信ノード４が、図８のＵ８においてカウンタずれに起因した異常を生じていると判定したときには、次のように処理することで、全通信ノード３〜５の間で認証用カウンタ１８の値を共通化する。
【００５２】
図１２は、カウンタ初期化処理を要求するスレーブノードの処理をフローチャートで示す。スレーブノード４は、第１実施形態の受信ノード４に相当する通信ノードを示しているため、符号４を付して説明を行う。本実施形態において、受信ノード４は、初期化通知要求部、リセット部としての機能を備える。
【００５３】
また図１３は、カウンタ初期化処理を行い認証用カウンタ１８の初期値を配信するマスタノード３の処理についてフローチャートを用いて示している。図１４は、認証用カウンタの値の変化を示している。本実施形態では、説明の簡単化のため、マスタノード３を送信ノード３として説明を行う。マスタノード３は、受信ノード４以外の通信ノードであれば、任意の通信ノード（例えば５）であっても良い。
【００５４】
スレーブノード４が、図８のＵ９にてカウンタ初期化処理を実行するときには、まず図１２のＷ１にてマスタノード３へ認証用カウンタ１８の初期化通知要求を行い、図１２のＷ２にてカウンタ初期化メッセージを待機する。
【００５５】
図１３に示すように、マスタノード３は、スレーブノード４から初期化通知要求の待機をしているが、Ｘ１にてこの初期化通知要求を受信し受付けるとＹＥＳと判定し、通信システム１の初期化対象となる全ての識別子、すなわちメッセージ認証が必要なメッセージに対応する識別子、について、認証用カウンタ１８の初期値を全通信ノード３〜５に通知する。
【００５６】
マスタノード３は、全通信ノードに認証用カウンタ１８の初期値を通知するため、まず図１３のＸ２にて識別子（ＣＡＮＩＤ）を選択し、Ｘ３にて乱数を発生させ、Ｘ４にて識別子と関連付けて乱数をカウンタ初期化メッセージにより送信する。このとき、マスタノード３は、初期化対象となる全ての識別子を対象として送信するまで、Ｘ２〜Ｘ４の処理を繰り返す。
【００５７】
図１２に参照図面を戻すと、スレーブノード４は、マスタノード３からカウンタ初期化メッセージを受信すると、Ｗ３にてこのカウンタ初期化メッセージから乱数を取得し、Ｗ４において得られた数値（＝乱数）を認証用カウンタ１８の初期値として内部メモリ（例えばＲＡＭ）に記憶させる。通信ノード３〜５は、マスタノード３とスレーブノード４、５とに分けられるが、これらの一連の処理を行うことで、これらの通信ノード３〜５は、同一識別子の認証用カウンタ１８の値を互いに一致させることができる。また、受信ノード４は、Ｗ５において累積カウンタ２０の値をクリアすることで累積回数をクリアし、ＮＧ継続カウンタ１９をクリアすることでＮＧ継続時間をリセットする。
【００５８】
図１４の前半時間ｔ０〜ｔ３は受信失敗前後の変化を示す。図１４のタイミングｔ０付近に示すように、受信ノード４が正常に受信している間、認証用カウンタ１８の値が全通信ノード３〜５の間で一致する。例えば、受信ノード４が受信失敗すると、認証用カウンタ１８の値が、図１４のタイミングｔ１〜ｔ２に示すように、送信ノード３と受信ノード４との間でずれることになる。この間、受信ノード４のＮＧ継続カウンタ１９及び累積カウンタ２０は何れも増加する。
【００５９】
ＮＧ継続カウンタ１９が、その閾値に達すると、受信ノード４は図８のＵ９においてカウンタ初期化処理を行う。このときマスタノード３は、乱数を発生し、全スレーブノード４、５に乱数をカウンタ初期化メッセージとして送信する。これにより、図１４のタイミングｔ２〜ｔ３に示すように、認証用カウンタ１８の値は全通信ノード３〜５の間で一致する。ここでは説明をわかりやすくするため、認証用カウンタ１８の初期値として「１５」を図１４には図示しているが、この値はノード３〜５間の共通鍵を用いて暗号化して得た値を初期値として使用することが望ましく、これにより機密性を高く確保できる。
【００６０】
また、図１４の後半時間ｔ３〜ｔ４は、不正メッセージの受信前後における認証用カウンタ１８の値の変化を示す。図１４のタイミングｔ３〜ｔ４に示すように、受信ノード４が不正メッセージを受信したとしても、認証用カウンタ１８の値は送信ノード３と受信ノード４との間でずれることはなく、累計カウンタ２０が累積的に増加する。認証用カウンタ１８は、正規のメッセージを受信したときにクリアされる。このため、ＮＧ継続カウンタ１９が閾値に達することはなく、カウンタ初期化処理が行われることはない。これにより、正常に動作を継続させることができる。
【００６１】
以下、本実施形態の内容を概念的にまとめる。通信システム１は、認証用カウンタ１８の初期値を配信するマスタノード３を備え、受信ノード４は、認証用カウンタ１８のカウンタずれを生じていると判別すると、マスタノード３へ認証用カウンタ１８の初期化通知要求を行っている。これにより、マスタノード３は、認証用カウンタ１８を全通信ノード３〜５の間で一致させることができ、初期化できる。
【００６２】
また、このタイミングｔ２において、受信ノード４は、Ｗ５においてＮＧ継続カウンタ１９、累積カウンタ２０をクリアして累積回数及びＮＧ継続時間をクリアしている。このため、全通信ノード３〜５の各種カウンタ１８〜２０をクリアでき、新たな処理を正常に開始、継続できる。これにより、以降における不正機器６による攻撃の検知、判別、又は、認証用カウンタ１８のカウンタずれに起因した異常の判別を正常に行うことができる。
【００６３】
（第３実施形態）
図１５及び図１６は第３実施形態の追加説明図を示す。これらの図１５、図１６は、それぞれ図８、図９に対応して示しており、同一処理を行う部分には同一符号を付しており、類似の処理を行う部分には類似の符号を付している。
【００６４】
図１５に示すように、受信ノード４は、Ｕ０、Ｕ２ａ、Ｕ３ａ、Ｕ４ａ、Ｕ５ａ、Ｕ６ａ、Ｕ７ａにおいて対象となる識別子（対象識別子）毎に第１実施形態で説明した処理を行うようにしている。また図１６に示すように、周期的には、Ｖ１ａにおいて対象識別子のＮＧ継続フラグを確認し、フラグオンとされていることを条件として、Ｖ２ａにおいて対象識別子のＮＧ継続カウンタをインクリメントするようにしている。ここで受信ノード４は、Ｖ３ａにおいて周期的に全ての識別子について確認したか否かを判定している。
【００６５】
これにより、対象となる全ての識別子を対象として、これらの認証用カウンタ１８、ＮＧ継続カウンタ１９、累計カウンタ２０の値を制御できるようになる。本実施形態によっても前述実施形態と同様の作用効果を奏することになり、全てのメッセージについてＭＡＣによるメッセージ認証を行う必要はなく、例えば重要なメッセージについてメッセージ認証を行っても良い。
【００６６】
（他の実施形態）
本発明は、前述した実施形態に限定されるものではなく、種々変形して実施することができ、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば以下に示す変形又は拡張が可能である。
【００６７】
前述実施形態には示していないが、例えばＡＥＳ等の規格化された共通鍵を用いた共通鍵暗号方式等で暗号化してメッセージを送受信するようにしても良い。
前述実施形態では、ＣＡＮに対して適用した実施例を説明したが、ＣＡＮ以外であってもＣＡＮと類似するプロトコルに依存した通信システムであれば適用できる。
【００６８】
また前述実施形態においては、識別子とデータと識別子に対応する認証用カウンタ１８の値からＭＡＣを生成しているが、データと認証用カウンタ１８の値からＭＡＣを生成するようにしても良い。このようにしても、前述同様に異常の判別は可能となる。
【００６９】
また前述実施形態の説明においては、メッセージ受信時および送信時に認証用カウンタ１８の値をインクリメントし、インクリメント後の認証用カウンタ１８の値を使用してＭＡＣを算出しているが、インクリメント前のカウンタ値を用いてＭＡＣを算出しても良い。送信ノード３、受信ノード４、共に認証用カウンタ１８をプラス１するインクリメント処理を行うことで加減算処理するようにしているが、加算する値は１に限られず各種の所定値を加算しても良いし、減算するようにしても良い。
【００７０】
ＮＧ継続カウンタ１９を用いてＮＧ継続時間を計測する形態を示したが、タイマなど他の手段を用いて計測しても良い。
前述した複数の実施形態を組み合わせて構成しても良い。なお、特許請求の範囲に記載した括弧内の符号は、本発明の一つの態様として前述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【符号の説明】
【００７１】
図面中、１は通信システム、２はネットワーク、３は通信ノード（送信ノード、マスタノード）、４は通信ノード（認証異常判別装置、受信ノード、スレーブノード）、５は通信ノード、６は不正機器、１０はメッセージ送信部、１２はメッセージ受信部、１３はＭＡＣ生成部、１４は一致判定部、１５はＮＧ継続計測部、１６は累積ＮＧ回数計数部、１７は異常種類判別部、１８は認証用カウンタ（第１認証用カウンタ、第２認証用カウンタ）、１９はＮＧ継続カウンタ（ＮＧ継続計測部）、２０は累計カウンタ（累積ＮＧ回数計数部）、を示す。
【図１】
2018007102.tif 000003
【図２】
2018007102.tif 000004
【図３】
2018007102.tif 000005
【図４】
2018007102.tif 000006
【図５】
2018007102.tif 000007
【図６】
2018007102.tif 000008
【図７】
2018007102.tif 000009
【図８】
2018007102.tif 000010
【図９】
2018007102.tif 000011
【図１０】
2018007102.tif 000012
【図１１】
2018007102.tif 000013
【図１２】
2018007102.tif 000014
【図１３】
2018007102.tif 000015
【図１４】
2018007102.tif 000016
【図１５】
2018007102.tif 000017
【図１６】
2018007102.tif 000018