(57)【特許請求の範囲】
【請求項１】
それぞれ予め設定されたＩＤを付したメッセージを発信する複数の通信ノードと、
前記通信ノードに対応して設けられ、対応する前記通信ノードから受信したメッセージをバスに送出するとともに、前記受信したメッセージを前記ＩＤ毎に計数する第１のカウンタを有する中継装置と、
前記バスに接続され、前記バスを介して前記通信ノードが発信したメッセージを受信するとともに、前記受信したメッセージを前記ＩＤ毎に計数する第２のカウンタを有し、前記第１及び前記第２のカウンタの値を取得し、ＩＤ毎に前記第１及び前記第２のカウンタの値を比較する比較部を備える管理装置と、
を有することを特徴とするネットワーク監視システム。
【請求項２】
前記管理装置は、
前記受信したＩＤに対応する前記第２のカウンタが所定の値に達した場合に、前記中継装置から前記受信したＩＤに対応する前記第１のカウンタの値を取得する
ことを特徴とする請求項１に記載のネットワーク監視システム。
【請求項３】
前記中継装置は、
前記受信したＩＤに対応する前記第１のカウンタが所定の値に達した場合に、前記受信したＩＤに対応する前記第１のカウンタの値を前記管理装置に通知し、前記比較部に処理を実行させる
ことを特徴とする請求項１に記載のネットワーク監視システム。
【請求項４】
前記管理装置は、
定期的に前記中継装置から前記第１のカウンタの値を取得し、前記比較部に処理を実行させる
ことを特徴とする請求項１に記載のネットワーク監視システム。
【請求項５】
前記中継装置は、対応する前記通信ノードが送信する前記メッセージに含まれる可能性があるＩＤのリストを有し、対応する前記通信ノードからの前記メッセージに含まれるＩＤを前記リストに登録されたＩＤと照合することを特徴とする請求項１に記載のネットワーク監視システム。
【請求項６】
それぞれ予め設定されたＩＤを付したメッセージを発信する複数の通信ノードに対応して設けられる中継装置が、
対応する前記通信ノードから受信したメッセージをバスに送出するとともに、前記受信したメッセージを前記ＩＤ毎に第１のカウンタとして計数し、
前記バスに接続され、前記バスを介して前記通信ノードが発信したメッセージを受信する管理装置が、
前記受信したメッセージを前記ＩＤ毎に第２のカウンタとして計数し、前記第１及び前記第２のカウンタの値を取得し、ＩＤ毎に前記第１及び前記第２のカウンタの値を比較する
ことを特徴とするネットワーク監視プログラム。
【請求項７】
前記管理装置が、
前記受信したＩＤに対応する前記第２のカウンタが所定の値に達した場合に、前記中継装置から前記受信したＩＤに対応する前記第１のカウンタの値を取得する
ことを特徴とする請求項６に記載のネットワーク監視プログラム。
【請求項８】
前記中継装置が、
前記受信したＩＤに対応する前記第１のカウンタが所定の値に達した場合に、前記受信したＩＤに対応する前記第１のカウンタの値を前記管理装置に通知し、前記比較する処理を実行させる
ことを特徴とする請求項６に記載のネットワーク監視プログラム。
【請求項９】
中継装置と管理装置と複数のノードを備えるシステムにおいて、
それぞれ予め設定されたＩＤを付したメッセージを発信する複数の通信ノードに対応して設けられる前記中継装置が、
対応する前記通信ノードから受信したメッセージをバスに送出するとともに、前記受信したメッセージを前記ＩＤ毎に第１のカウンタとして計数し、
前記バスに接続され、前記バスを介して前記通信ノードが発信したメッセージを受信する前記管理装置が、
前記受信したメッセージを前記ＩＤ毎に第２のカウンタとして計数し、前記第１及び前記第２のカウンタの値を取得し、ＩＤ毎に前記第１及び前記第２のカウンタの値を比較する
ことを特徴とするネットワーク監視方法。
【請求項１０】
前記管理装置が、
前記受信したＩＤに対応する前記第２のカウンタが所定の値に達した場合に、前記中継装置から前記受信したＩＤに対応する前記第１のカウンタの値を取得する
ことを特徴とする請求項９に記載のネットワーク監視方法。
【請求項１１】
前記中継装置が、
前記受信したＩＤに対応する前記第１のカウンタが所定の値に達した場合に、前記受信したＩＤに対応する前記第１のカウンタの値を前記管理装置に通知し、前記比較する処理を実行させる
ことを特徴とする請求項９に記載のネットワーク監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置間の通信の監視に関する。
【背景技術】
【０００２】
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と呼ばれるネットワーク技術が使用されることがある。ＣＡＮが用いられるシステムは、複数のＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を含む。ＥＣＵ同士はメッセージを送受信することにより通信を行う。ＣＡＮ通信に使用されるメッセージには、メッセージの識別情報（ＩＤ）が含まれている。また、各ＥＣＵは、受信するメッセージのＩＤを予め記憶している。メッセージはブロードキャストされ、各ＥＣＵは、設定されたＩＤを含むメッセージを受信するが、受信対象に設定されていないＩＤを含むメッセージは破棄する。
【０００３】
ＣＡＮのネットワークに関し、メインメッセージが正当なものである否かを判定する技術が知られている。各ＥＣＵは、ＣＡＮＩＤごとにメッセージが送信された回数をカウントする。送信ノードと受信ノードとはＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）を用いることで、再送攻撃を防止する（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−９８７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＡＮにおいて、或る通信ノード（ＥＣＵ）が悪意ある第３者によって別の通信ノード（ＥＣＵ）に置き換えられたとする。置き換えられた通信ノードからはＩＤを成りすましたメッセージが発信され、このメッセージは、全ての通信ノードに到達する。成りすましたＩＤが自装置で受け取るべきＩＤである通信ノードは、このメッセージを受信してしまい、その結果、意図しない動作を引き起こされる可能性がある。
【０００６】
上記攻撃対策として、各通信ノードに自身が発信する可能性があるＩＤを登録しておき、受信データに含まれるＩＤと登録ＩＤを比較することが考えられる。他通信ノードから受信したメッセージに自身が発信する可能性があるＩＤが含まれている場合、他の通信ノードの何れかが不正な通信ノードに置き換わり、自身に成りすましていることを認識できる。
【０００７】
複数の通信ノードが同一のＩＤを持つメッセージを発信する可能性があるＣＡＮにおいて、自身が発信する可能性があるメッセージと同一のＩＤを受信しても、通信ノードは、該メッセージを発信した通信ノードが正規のものか不正なものかを判定できない。
【０００８】
本発明は１つの側面において、不正に置き換えられた通信ノードを検知する手法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
複数の通信ノードは、それぞれ予め設定されたＩＤを付したメッセージを発信する。中継装置は、前記通信ノードに対応して設けられ、対応する前記通信ノードから受信したメッセージをバスに送出するとともに、前記受信したメッセージを前記ＩＤ毎に計数する第１のカウンタを有する。管理装置は、前記バスに接続され、前記バスを介して前記通信ノードが発信したメッセージを受信するとともに、前記受信したメッセージを前記ＩＤ毎に計数する第２のカウンタを有し、前記第１及び前記第２のカウンタの値を取得し、ＩＤ毎に前記第１及び前記第２のカウンタの値を比較する比較部を備える。
【発明の効果】
【００１０】
本発明によれば、不正に置き換えられた通信ノードを検知することができる。
【図面の簡単な説明】
【００１１】
【図１】検知器を備えた複数のＥＣＵを含むＣＡＮの例を説明する図である。
【図２Ａ】本実施形態に係るシステムの例を説明する図である。
【図２Ｂ】本実施形態に係るシステムの例を説明する図である。
【図２Ｃ】本実施形態に係るシステムの例を説明する図である。
【図３】ハードウェア構成の例を説明する図である。
【図４】異なるＥＣＵが同一のＩＤを含むメッセージを送信するシステムにおける本実施形態に係る子機と親機の処理の具体的な例を説明する図
【図５】本実施形態に係る親機の処理の例を説明するフローチャートである。
【図６】本実施形態に係る子機の処理の例を説明するフローチャートである。
【図７】子機と接続されたＥＣＵが不正に置き換えられた場合の子機と親機処理の例を説明する図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、検知器を備えた複数のＥＣＵを含むＣＡＮの例を説明する図である。システム１００１は、ＣＡＮ１０１とＥＣＵ１１１（１１１ａ〜１１１ｆ）を含む。ＥＣＵ１１１ａ〜１１１ｆの各々は、ＣＡＮ１０１で接続されている。ＥＣＵ同士は、ＣＡＮ１０１を介してメッセージの送受信をすることができる。ＥＣＵ１１１ａ〜１１１ｆの各々は、ＣＡＮ１０１に接続されるインターフェースに検知器１１２ａ（ＥＣＵ１１１ａに対応）〜１１２ｆ（ＥＣＵ１１１ｆに対応）を備える。検知器は、ＥＣＵが送信するメッセージのＩＤを、ホワイトリストとして保持している。ここで、ＥＣＵの各々は、複数種類のメッセージが送信可能であり、種類毎のメッセージに対応したＩＤが設定される。なお、システム１００１内で異なるＥＣＵが同一のＩＤを持つメッセージを送信することはないものとする。検知器は、自ＥＣＵが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信した場合に、異常を検知する。また、検知器は、ＥＣＵが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信した場合に、システム１００１に異常があることを検知できる。
【００１３】
システム１００２は、システム１００１のＥＣＵ１１１ｂが、何者かによって不正にＥＣＵ１１１ｇに置き換えられたシステムの例である。システム１００２におけるＣＡＮ１０１、ＥＣＵ１１１ａ、ＥＣＵ１１１ｃ〜１１１ｆはシステム１００１と同じものである。ＥＣＵ１１１ｇには、ＥＣＵ１１１ａが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを送信する。ＥＣＵ１１１ｇがメッセージを送信すると、該メッセージは、ＥＣＵ１１１ａ、ＥＣＵ１１１ｃ〜１１１ｆに到達する。すると、ＥＣＵ１１１ａの検知器１１２ａは、自ＥＣＵ１１１ａが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信するため、異常を検知できる。
【００１４】
図１のシステム１００２において、ＥＣＵ１１１ａは、自身が送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信することで、システム１００２内の何れかのＥＣＵ１１１が何者かによって置き換えられていることを検知できる。一方、図１のシステム１００２において、何れかのＥＣＵ１１１が何者かによって置き換えられていることは検知可能であるものの、どのＥＣＵ１１１（以下、「通信ノード」とも称す）が置き換えられたかまでは特定できない。また、図１のシステム１００１は、異なるＥＣＵが同一のＩＤを持つメッセージを送信することがないという前提の元で動作する。システム１００１は、異なるＥＣＵが同一のＩＤを持つメッセージを送信する場合、機能しない。
【００１５】
車内ネットワーク（ＣＡＮ）において、ＥＣＵの不正な置き換えや、改竄される脅威が存在する。これらの脅威に対しては、ＥＣＵ同士が認証を行うことで解決する方法も考えうる。しかし、ＥＣＵ同士が認証を行うためには、認証用の機能を備えるようにＥＣＵを改造することになり、ＣＡＮに対してそのまま適用できない。ＥＣＵを改造しないでも、これらの脅威に対抗できる車内ネットワークが求められる。
【００１６】
そこで本発明では、親機と複数の子機とをＣＡＮで接続し、各子機１個につき１個のＥＣＵを接続する。子機は、対応して接続された（予め登録された）ＥＣＵからのデータだけをＣＡＮ側に通過させる。子機には、対応して接続されたＥＣＵが送信するメッセージに対応したＩＤのホワイトリストが登録される。更に、該子機は、カウンタ及びカウンタ制御部を備える。カウンタは、ホワイトリストに保持しているＩＤ毎のカウント数を記憶する。子機のカウンタ制御部は、対応したＥＣＵからメッセージを受信した場合、メッセージに含まれるＩＤに対応するカウンタをインクリメントする。親機は、ＣＡＮに接続されている全てのＥＣＵが送信するメッセージに含まれる可能性のあるＩＤのホワイトリストが登録される。更に、親機には、ホワイトリストに登録されている全てのＩＤ毎にカウンタを保持する。親機内のカウンタ制御部は、受信したメッセージに含まれるＩＤに対応するカウンタをインクリメントする。子機は、カウンタの何れかのＩＤの値が所定の値に達した場合、該ＩＤ情報を親機に通知する。親機は、通知されたＩＤと自身が持つ同ＩＤのカウンタの値が所定の値に達していなければ、「異常」ありと判定し、ユーザに通知することができる。このようにすることで、子機に接続されていないＥＣＵから攻撃メッセージが送信された場合で、かつ、子機に接続された何れかのＥＣＵが送信する可能性のあるＩＤを用いた攻撃メッセージであっても、異常を検知できる。また、親機は、該ＩＤを用いて、異常なＩＤを含むメッセージを送信するＥＣＵを特定することができる。
【００１７】
図２Ａ〜図２Ｃは、本実施形態に係るシステムの例を説明する図である。システム２０００は、ＣＡＮ２１０、ＥＣＵ２０１（２０１ａ〜２０１ｆ）、子機２０２（２０２ａ〜２０２ｆ）、親機２２０を含む。子機の各々はＣＡＮ２１０で接続されている。ＣＡＮ２１０は、例えば、ＣＡＮバスである。また、親機２２０も子機とＣＡＮ２１０を介して通信可能に接続されている。ＥＣＵ２０１a〜２０１ｆは、子機２０２ａ（ＥＣＵ２０１ａと対応）〜２０２ｆ（ＥＣＵ２０１ｆと対応）と対応付けられており、ＣＡＮ２１０を介して通信可能に接続されている。子機２０２は、ＥＣＵ２０１と1対１でＣＡＮ２１０を介して通信可能に接続される。
【００１８】
図２Ｂには、図２Ａのシステム２０００に含まれる親機２２０、子機２０２ｂの機能部が示されている。子機２０２ｂは、ＣＡＮトランシーバ２３１、ＣＡＮトランシーバ２３２、カウンタ制御部２３３、記憶部２３４を備える。なお、子機２０２ａ〜２０２ｆの各々は、子機２０２ｂと同様である。ＣＡＮトランシーバ２３１は、子機２０２ｂが他の子機、親機２２０とＣＡＮ２１０を介して通信をする際に使用される通信インターフェースである。ＣＡＮトランシーバ２３２は、子機２０２ｂが自身に対応付けて設定されるＥＣＵ２０１ｂと通信をする際に使用される通信インターフェースである。記憶部２３４は、ＥＣＵ２０１ｂが送信する可能性のある複数種類のメッセージのＩＤをホワイトリスト２３５として記憶する。ホワイトリスト２３５は、子機２０２と１対１で予め設置されたＥＣＵが送信するメッセージに対応したＩＤが登録されている。更に記憶部２３４は、カウンタ２３６を備える。カウンタ２３６は、ホワイトリスト２３５に登録されたＩＤを含むメッセージを子機２０２ｂが受信した回数を示す受信回数を記憶する。カウンタ制御部２３３は、ホワイトリスト２３５に登録されたＩＤを含むメッセージを子機２０２ｂが受信した回数を実際にカウントし、カウンタ２３６に反映する。なお、ＥＣＵ２０１ｂからのメッセージは、子機２０２ｂを経由して、ＣＡＮ２１０側にブロードキャストで配信されるものとする。
【００１９】
親機２２０は、ＣＡＮトランシーバ２２１、カウンタ制御部２２２、記憶部２２３を備える。ＣＡＮトランシーバ２２１は、子機２０２ａ〜２０２ｆとＣＡＮ２１０を介して通信をする際に使用される通信インターフェースである。記憶部２２３は、システム２０００内の全てのＥＣＵが送信してくる可能性のあるメッセージに含まれるＩＤを全てホワイトリスト２２４として記憶する。記憶部２２３は、ホワイトリスト２２４内においてメッセージに含まれるＩＤと該ＩＤを送信してくる子機（ＥＣＵ）を識別する識別情報（子機ＩＤ）とを対応付けて記憶する。更に記憶部２２３は、カウンタ２２５を備える。カウンタ２２５は、ホワイトリスト２２４に登録されたＩＤを含むメッセージを親機２２０が受信した回数を示す受信回数を記憶する。カウンタ制御部２２２は、ホワイトリスト２２４に登録されたＩＤを含むメッセージを親機２２０が受信した回数を実際にカウントし、カウンタ２２５に反映する。
【００２０】
以下に、本実施形態に係る親機２２０と子機２０２ｂの処理の例を順に説明する。
【００２１】
（Ａ１）ＥＣＵ２０１ｂから子機２０２ｂに対してメッセージが送信される。
【００２２】
（Ａ２）子機２０２ｂのＣＡＮトランシーバ２３２は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００２３】
（Ａ３）子機２０２ｂのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤが記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する。ここではＥＣＵ２０１ｂは、未だ不正にＥＣＵ２０１´に置き換えられていないものとする。ＥＣＵ２０１ｂから受信したメッセージに含まれるＩＤがホワイトリスト２３５に保持されていると判定すると、カウンタ制御部２３３は、カウンタ２３６内の受信したメッセージに含まれるＩＤに対応する受信回数に１をインクリメントする。この場合、子機２０２ｂに接続されているＥＣＵ２０１ｂは、正しいＩＤを送信していると考えられる。
【００２４】
（Ａ４）（Ａ３）の処理と並列して、ＣＡＮトランシーバ２３１は、ＣＡＮトランシーバ２３２が受信したＥＣＵ２０１ｂからのメッセージをブロードキャストでＣＡＮ２１０側に送信する。
【００２５】
（Ａ５）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂを介したＥＣＵ２０１ｂからのメッセージを受信する。
【００２６】
（Ａ６）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤが記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。ＥＣＵ２０１ｂは、未だ不正にＥＣＵ２０１´に置き換えられていないものとする。ＥＣＵ２０１ｂから送信されたメッセージに含まれるＩＤがホワイトリスト２２４に保持されていると判定すると、カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤに対応する受信回数に１をインクリメントする。
【００２７】
（Ａ７）ＥＣＵ２０１ｂからメッセージが送信される毎に、（Ａ２）〜（Ａ６）の処理が繰り返し実行される。子機２０２ｂと親機２２０は、各々が受信したメッセージに含まれるＩＤに対応する受信回数をカウントする。子機２０２ｂのカウンタ２３６におけるＩＤ毎の受信回数の値は、親機２２０のカウンタ２２５における子機２０２ｂのメッセージＩＤに対応する受信回数の値とは同じ値である。
【００２８】
（Ａ８）子機２０２ｂのカウンタ制御部２３４は、カウンタ２２５内の受信回数の何れかが所定の値（例えば１０回）に達しているか否かを判定する。受信回数が所定の値を超えているメッセージのＩＤがある場合、カウンタ制御部２３４の制御により、ＣＡＮトランシーバ２３１は、所定の値を超えているメッセージのＩＤを含む通知用メッセージを親機２２０に通知する。この通知メッセージは暗号化されていることもある。併せて、カウンタ制御部２３４は、受信回数が所定の値を超えているメッセージのＩＤに対応する受信回数をリセットする。
【００２９】
（Ａ９）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂから通知用メッセージを受信する。親機２２０のカウンタ制御部２２２は、通知用メッセージに含まれるメッセージＩＤ（子機２０２側でメッセージの受信回数が所定の回数に達したメッセージのＩＤ）に対応する受信回数を確認する。カウンタ２２５内の通知用メッセージに含まれるメッセージＩＤに対応する受信回数が所定の値である場合、カウンタ制御部２２２は、該メッセージＩＤに対応する受信回数をリセットする。
【００３０】
このように、ＥＣＵ２０１に問題がないシステムでは、親機２２０側のメッセージの受信回数と子機２０２側のメッセージの受信回数が同じである。子機２０２と親機２２０側の受信回数が所定の値に達するタイミングも同じタイミングである。
【００３１】
ここで、ＥＣＵ２０１ａと子機２０２ａとが不正なＥＣＵ２０１´に交換されたものとする。図３Ｃは、ＥＣＵ２０１ａと子機２０２ａとが不正なＥＣＵ２０１´に交換されたシステムの例である。ＥＣＵ２０１´は、ＥＣＵ２０１ａが送信しないメッセージのＩＤで、且つ、ＥＣＵ２０１ｂが送信するメッセージのＩＤを含むメッセージを送信することができる。言い換えると、ＥＣＵ２０１´は、ＥＣＵ２０１ｂに成りすましてメッセージを送信可能な通信ノードである。
【００３２】
（Ｂ１）不正なＥＣＵ２０１´は、ブロードキャストでＥＣＵ２０１ｂに成りすましてメッセージを送信する。
【００３３】
（Ｂ２）親機２２０のＣＡＮトランシーバ２２１は、ＥＣＵ２０１´からのメッセージを受信する。
【００３４】
（Ｂ３）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤが記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。ＥＣＵ２０１´がＥＣＵ２０１ｂに成りすましてメッセージを送信しているため、カウンタ制御部２２２は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤがホワイトリスト２２４に保持されていると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤに対応する受信回数に１をインクリメントする。
【００３５】
（Ｂ４）ＥＣＵ２０１´によるメッセージ送信と、ＥＣＵ２０１ｂ〜２０１ｆによるメッセージ送信がシステム２０００内で実行され続ける。すると、ＥＣＵ２０１´によるメッセージ送信により、親機２２０内のカウンタ２２５内の受信回数がインクリメントされていく。また、ＥＣＵ２０１ｂによるメッセージ送信により、子機２０２と親機２２０内のカウンタの受信回数がインクリメントされていく。
【００３６】
（Ｂ５）子機２０２ｂのカウンタ制御部２３４は、カウンタ２２５内の受信回数の何れかが所定の値（例えば１０回）に達しているか否かを判定する。受信回数が所定の値を超えているメッセージのＩＤがある場合、カウンタ制御部２３４の制御により、ＣＡＮトランシーバ２３１は、所定の値を超えているメッセージのＩＤを含む通知用メッセージを親機２２０に通知する。併せて、カウンタ制御部２３４は、受信回数が所定の値を超えているメッセージのＩＤに対応する受信回数をリセットする。
【００３７】
（Ｂ６）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂから通知用メッセージを受信する。親機２２０のカウンタ制御部２２２は、通知用メッセージに含まれるメッセージＩＤ（子機２０２側でメッセージの受信回数が所定の回数に達したメッセージのＩＤ）に対応する受信回数を確認する。親機２２０の受信回数は、ＥＣＵ２０１´からのメッセージの受信回数と、ＥＣＵ２０１ｂからのメッセージの受信回数との値を合算した値となっている。カウンタ２２５内の通知用メッセージに含まれるメッセージＩＤに対応する受信回数は、所定の値（例えば１０）ではない。カウンタ制御部２２２は、不正なＥＣＵ２０１があると判定し、ユーザに通知する。
【００３８】
子機２０２と親機２２０とで夫々カウンタを備え、メッセージの受信回数をカウントすることで、親機２２０は、不正なＥＣＵ２０１´が設置されたことを検知することができる。親機２２０のカウンタ制御部２２２は、画面などに不正に置き換えられたＥＣＵ２０１´が存在することなどを表示させ、ユーザに対して異常を通知してもよい。又、親機２２０のカウンタ制御部２２２は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。なお、システム２０００では、子機２０２と親機２２０と記載しているものの、子機２０２を、「中継装置」、親機２２０を中継装置及びＥＣＵを管理する「管理装置」と称してもよい。
【００３９】
図３は、ハードウェア構成の例を説明する図である。親機２２０、子機２０２のいずれも、図３に示すハードウェアによって実現される。子機２０２は、ＣＡＮトランシーバ３０１、ＣＡＮコントローラ３０２、処理回路３０３を含む。処理回路３０３は、プロセッサ３０４とメモリ３０５を備える。
【００４０】
ＣＡＮトランシーバ３０１は、子機２０２がＣＡＮネットワークを介して他の装置と通信するための処理を行う。ＣＡＮコントローラ３０２は、受信したメッセージ内のデータやＩＤなどを抽出する。ＣＡＮコントローラ３０２は、データをプロセッサ３０４に出力する。プロセッサ３０４は、任意の処理回路である。プロセッサは、メモリ３０５に格納されたプログラムを読み込み、処理を行う。
【００４１】
親機２２０において、ＣＡＮトランシーバ２２１は、ＣＡＮトランシーバ３０１とＣＡＮコントローラ３０２で実現される。プロセッサ３０４は、カウンタ制御部２２２として動作する。メモリ３０５は、記憶部２２３として動作する。
【００４２】
子機２０２のＣＡＮトランシーバ２３１とＣＡＮトランシーバ２３２は、ＣＡＮトランシーバ３０１とＣＡＮコントローラ３０２で実現される。プロセッサ３０４は、カウンタ制御部２３３として動作する。メモリ３０５は、記憶部２３４として動作する。なお、上記では子機のカウンタが一定値に達した場合に親機に対して通知するが、親機のカウンタが一定値に達した時点で子機に対してカウンタ値を要求する、あるいは、一定値であることを確認させる形でもよい。あるいは、親機にてカウンタが一定値に到達した時点で子機からの通知が無い場合に異常を検知したと判断しても良い。また、子機にはホワイトリストを持たず、単にID毎にカウントし、一定時間毎に親機に送信し、親機にて整合性チェックをしてもよい。
【００４３】
＜異なるＥＣＵが同一のＩＤを含むメッセージを送信しないシステムを用いた具体例＞
図２Ｂと図２Ｃを用いて異なるＥＣＵが同一のＩＤを含むメッセージを送信しないシステムにおける本実施形態に係る子機２０２と親機２２０の処理の具体的な例を説明する。ＥＣＵ２０１ｂは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤの何れかを含めてメッセージを送信するものとする。ＥＣＵ２０１ａは、０ｘ２２２、０ｘ３３３の２つのＩＤの何れかを含めてメッセージを送信するものとする。親機２２０のホワイトリスト２２４と子機２０２のホワイトリスト２３５は、夫々、０ｘ１２３、０ｘ４５６、０ｘ７８９をＥＣＵから送信する可能性のあるＩＤとして記憶する。親機２２０のカウンタ２２５と子機２０２ｂのカウンタ２３６は、夫々、０ｘ１２３、０ｘ４５６、０ｘ７８９に対応する受信回数を記憶する。以下に、異なるＥＣＵが同一のＩＤを含むメッセージを送信しないシステムにおける本実施形態に係る子機２０２と親機２２０の処理を、具体例を用いて順に説明する。
【００４４】
（Ｃ１）ＥＣＵ２０１ｂから子機２０２ｂに対して０ｘ１２３のＩＤを含むメッセージが送信される。
【００４５】
（Ｃ２）子機２０２ｂのＣＡＮトランシーバ２３２は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００４６】
（Ｃ３）子機２０２ｂのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤが記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する。ホワイトリスト２３５は、受信したメッセージに含まれるＩＤである０ｘ１２３を保持している。カウンタ制御部２３３は、カウンタ２３６内の受信したメッセージに含まれるＩＤ（０ｘ１２３）に対応する受信回数に１をインクリメントする。
【００４７】
（Ｃ４）（Ｃ３）の処理と並列して、ＣＡＮトランシーバ２３１は、ＣＡＮトランシーバ２３２が受信したＥＣＵ２０１ｂからのメッセージをブロードキャストでＣＡＮ２１０側に送信する。
【００４８】
（Ｃ５）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂを介したＥＣＵ２０１ｂからのメッセージを受信する。
【００４９】
（Ｃ６）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤ（０ｘ１２３）が記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。カウンタ制御部２２２は、ＥＣＵ２０１ｂから送信されたメッセージに含まれるＩＤ（０ｘ１２３）をホワイトリスト２２４に保持していると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤ（０ｘ１２３）に対応する受信回数に１をインクリメントする。
【００５０】
（Ｃ７）（Ｃ１）〜（Ｃ６）の処理が５回繰り返されると、親機２２０のカウンタ２３６と子機２０２ｂのカウンタ２２５の０ｘ１２３のＩＤを含むメッセージの受信回数は５回となる。
【００５１】
ここで、ＥＣＵ２０１ａと子機２０２ａとが不正なＥＣＵ２０１´に交換されたものとする。ＥＣＵ２０１´は、ＥＣＵ２０１ａが送信するメッセージ（０ｘ２２２、０ｘ３３３）とは異なるＩＤ（０ｘ１２３）のメッセージを送信するものとする。ＥＣＵ２０１´は、ＥＣＵ２０１ｂに成りすましてメッセージを送信可能な通信ノードである。
【００５２】
（Ｃ８）不正なＥＣＵ２０１´は、ブロードキャストでＥＣＵ２０１ｂに成りすましてＩＤ０ｘ１２３を含むメッセージを送信する。
【００５３】
（Ｃ９）親機２２０のＣＡＮトランシーバ２２１は、ＥＣＵ２０１´からのメッセージを受信する。
【００５４】
（Ｃ１０）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤ（０ｘ１２３）が記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。ＥＣＵ２０１´がＥＣＵ２０１ｂに成りすましてメッセージを送信しているため、カウンタ制御部２２２は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤ（０ｘ１２３）がホワイトリスト２２４に保持されていると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤ（０ｘ１２３）に対応する受信回数に１をインクリメントする。その結果、親機２２０のカウンタ２３６内のＩＤ０ｘ１２３に対する受信回数は、６回と設定される。
【００５５】
（Ｃ１１）その後、ＥＣＵ２０１ｂから子機２０２ｂに対して０ｘ１２３のＩＤを含むメッセージが５回送信され、（Ｃ２）〜（Ｃ６）の処理が繰り返し実行される。すると、子機２０２のカウンタ２３６内のＩＤ０ｘ１２３に対する受信回数は１０回となる。親機２２０のカウンタ２２５内のＩＤ０ｘ１２３に対する受信回数は１１回となる。
【００５６】
（Ｃ１２）子機２０２ｂのカウンタ制御部２３４は、カウンタ２３５内のＩＤ０ｘ１２３の受信回数が所定の値（例えば１０回）に達したと判定する。カウンタ制御部２３４の制御により、ＣＡＮトランシーバ２３１は、所定の値を超えているメッセージのＩＤ（０ｘ１２３）を含む通知用メッセージ（例えば、通知用ＩＤ０ｘ７７７を含む）を親機２２０に通知する。なお、該通知用メッセージには、子機ＩＤ（例えば０ｘ１）などを含める。併せて、カウンタ制御部２３４は、受信回数が所定の値を超えているメッセージのＩＤ（０ｘ１２３）に対応する受信回数をリセットする。
【００５７】
（Ｃ１３）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂから通知用メッセージを受信する。親機２２０のカウンタ制御部２２２は、通知用メッセージから、ＩＤ０ｘ１２３の受信回数が子機２０２ｂにおいて所定の値となったことを示す情報を取得する。
【００５８】
（Ｃ１４）親機２２０のカウンタ制御部２２２は、通知用メッセージに含まれるメッセージＩＤ（０ｘ１２３）に対応する受信回数を確認する。カウンタ２２５において、ＩＤ０ｘ１２３に対応する受信回数は１１回となっているため、カウンタ制御部２２２は、不正なＥＣＵ２０１があると判定し、ユーザに不正なＥＣＵが存在することを通知する。
【００５９】
子機２０２と親機２２０とで夫々カウンタを備え、メッセージの受信回数をカウントすることで、親機２２０は、不正なＥＣＵ２０１´が設置されたことを検知することができる。親機２２０のカウンタ制御部２２２は、画面などに不正に置き換えられたＥＣＵ２０１´があることを通知するなどの手法で、ユーザに対して異常を通知してもよい。又、親機２２０のカウンタ制御部２２２は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。異なるＥＣＵが同一のＩＤを含むメッセージを送信しないシステムにおいて、親機２２０は、不正なＥＣＵが存在することを検知できる。
【００６０】
＜異なるＥＣＵが同一のＩＤを含むメッセージを送信するシステムを用いた具体例＞
図４は、異なるＥＣＵが同一のＩＤを含むメッセージを送信するシステムにおける本実施形態に係る子機２０２と親機２２０の処理の具体的な例を説明する図である。図４のシステム２０００では、子機２０２ｆが接続されておらず、子機２０２を備えないＥＣＵ２０１ｆがＣＡＮに接続される。このように、ユーザがＥＣＵ２０１ｆの異常検知を望まない場合、子機２０２を備えなくてもよい。ＥＣＵ２０１ａは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤの何れかを含めてメッセージを送信するものとする。ＥＣＵ２０１ｂは、０ｘ１１２、０ｘ４５６の２つのＩＤの何れかを含めてメッセージを送信するものとする。ＥＣＵ２０１ｆは、０ｘ２２２、０ｘ３３３の２つのＩＤの何れかを含めてメッセージを送信するものとする。
【００６１】
親機２２０のホワイトリスト２２４と子機２０２ａのホワイトリスト２３５は、夫々、０ｘ１２３、０ｘ４５６、０ｘ７８９をＥＣＵ２０１ａが送信するメッセージＩＤとして記憶する。親機２２０のホワイトリスト２２４と子機２０２ｂのホワイトリスト２３５は、夫々、０ｘ１１２、０ｘ４５６をＥＣＵ２０１ｂが送信するメッセージＩＤとして記憶する。ここで、０ｘ４５６のＩＤを含むメッセージは、ＥＣＵ２０１ａとＥＣＵ２０１ｂから送信される。子機２０２ａのカウンタ２３６は、０ｘ１２３、０ｘ４５６、０ｘ７８９の夫々のＩＤに対応した受信回数を記憶する。子機２０２ｂのカウンタ２３６は、０ｘ１１２、０ｘ４５６の夫々のＩＤに対応した受信回数を記憶する。親機２２０のカウンタ２２５は、０ｘ１２３、０ｘ４５６、０ｘ７８９、０ｘ１１２の夫々のＩＤに対応した受信回数を記憶する。なお、カウンタ制御部２２２は、０ｘ４５６のＩＤを含むメッセージをＥＣＵ２０１ａとＥＣＵ２０１ｂから受信する毎に、カウンタ２２５の該ＩＤに対応する受信回数をインクリメントする。カウンタ２２５内の０ｘ４５６に対応する受信回数は、ＥＣＵ２０１ａとＥＣＵ２０１ｂのメッセージの送信回数の合算値である。以下に、異なるＥＣＵが同一のＩＤを含むメッセージを送信するシステムにおける本実施形態に係る子機２０２と親機２２０の処理を、具体例を用いて順に説明する。
【００６２】
（Ｄ１）ＥＣＵ２０１ａから子機２０２ａに対して０ｘ４５６のＩＤを含むメッセージが送信される。
【００６３】
（Ｄ２）子機２０２ａのＣＡＮトランシーバ２３２は、ＥＣＵ２０１ａからのメッセージを受信する。
【００６４】
（Ｄ３）子機２０２ａのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤ０ｘ４５６が記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する。ホワイトリスト２３５は、受信したメッセージに含まれるＩＤである０ｘ４５６を保持している。カウンタ制御部２３３は、カウンタ２３６内の受信したメッセージに含まれるＩＤ（０ｘ４５６）に対応する受信回数に１をインクリメントする。
【００６５】
（Ｄ４）（Ｄ３）の処理と並列して、ＣＡＮトランシーバ２３１は、ＣＡＮトランシーバ２３２が受信したＥＣＵ２０１ａからのメッセージをブロードキャストでＣＡＮ２１０側に送信する。
【００６６】
（Ｄ５）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ａを介したＥＣＵ２０１ａからのメッセージを受信する。
【００６７】
（Ｄ６）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤ（０ｘ４５６）が記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。カウンタ制御部２２２は、ＥＣＵ２０１ａから送信されたメッセージに含まれるＩＤ（０ｘ４５６）をホワイトリスト２２４に保持していると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤ（０ｘ４５６）に対応する受信回数に１をインクリメントする。
【００６８】
（Ｄ７）（Ｄ１）〜（Ｄ７）の処理が３回繰り返されると、親機２２０のカウンタ２３６と子機２０２ａのカウンタ２２５の０ｘ４５６のＩＤを含むメッセージの受信回数は、夫々３回となる。
【００６９】
（Ｄ８）ＥＣＵ２０１ｂから子機２０２ｂに対して０ｘ４５６のＩＤを含むメッセージが送信される。
【００７０】
（Ｄ９）子機２０２ｂのＣＡＮトランシーバ２３２は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００７１】
（Ｄ１０）子機２０２ｂのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤ０ｘ４５６が記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する。ホワイトリスト２３５は、受信したメッセージに含まれるＩＤである０ｘ４５６を保持している。カウンタ制御部２３３は、カウンタ２３６内の受信したメッセージに含まれるＩＤ（０ｘ４５６）に対応する受信回数に１をインクリメントする。
【００７２】
（Ｄ１１）（Ｄ１０）のの処理と並列して、ＣＡＮトランシーバ２３１は、ＣＡＮトランシーバ２３２が受信したＥＣＵ２０１ｂからのメッセージをブロードキャストでＣＡＮ２１０側に送信する。
【００７３】
（Ｄ１２）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｂを介したＥＣＵ２０１ｂからのメッセージを受信する。
【００７４】
（Ｄ１３）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤ（０ｘ４５６）が記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。カウンタ制御部２２２は、ＥＣＵ２０１ｂから送信されたメッセージに含まれるＩＤ（０ｘ４５６）をホワイトリスト２２４に保持していると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤ（０ｘ４５６）に対応する受信回数に１をインクリメントする。
【００７５】
（Ｄ１４）（Ｄ８）〜（Ｄ１３）の処理が４回繰り返されると、子機２０２ｂのカウンタ２２５の０ｘ４５６のＩＤを含むメッセージの受信回数は４回となる。親機２２０のカウンタ２３６の０ｘ４５６のＩＤを含むメッセージの受信回数は７回となる。
【００７６】
ここで、ＥＣＵ２０１ｆが不正なＥＣＵ２０１´に交換されたものとする。ＥＣＵ２０１´は、ＥＣＵ２０１ｆが送信しないＩＤ０ｘ４５６のＩＤのメッセージを送信するものとする。ＥＣＵ２０１´は、ＥＣＵ２０１ａやＥＣＵ２０１ｂに成りすましてメッセージを送信可能な通信ノードである。
【００７７】
（Ｄ１５）不正なＥＣＵ２０１´は、ブロードキャストでＩＤ０ｘ４５６を含むメッセージを送信する。
【００７８】
（Ｄ１６）親機２２０のＣＡＮトランシーバ２２１は、ＥＣＵ２０１´からのメッセージを受信する。
【００７９】
（Ｄ１７）親機２２０のカウンタ制御部２２２は、受信したメッセージに含まれるＩＤ（０ｘ４５５）が記憶部２２３に保持されているホワイトリスト２２４に含まれているか否かを判定する。
【００８０】
（Ｄ１８）カウンタ制御部２２２は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤ（０ｘ４５６）がホワイトリスト２２４に保持されていると判定する。カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤ（０ｘ４５６）に対応する受信回数に１をインクリメントする。その結果、親機２２０のカウンタ２３６内のＩＤ０ｘ４５６に対する受信回数は、８回と設定される。
【００８１】
（Ｄ１９）その後、ＥＣＵ２０１ａ、ＥＣＵ２０１ｂも通信を行い、ＩＤ０ｘ４５６のメッセージを夫々６回送信する。すると、親機２２０のカウンタ２２５内のＩＤ０ｘ４５６に対応する受信回数は、２０回となる。子機２０１ａのカウンタ２３６内のＩＤ０ｘ４５６に対応する受信回数は、９回となる。子機２０１ｂのカウンタ２３６内のＩＤ０ｘ４５６に対応する受信回数は、１０回となる。
【００８２】
（Ｄ２０）親機２２０のカウンタ制御部２２２は、カウンタ２２５内のＩＤ０ｘ４５６の受信回数が所定の値（ここでは例えば２０回）に達したと判定する。すると、カウンタ制御部２２２は、通知用ＩＤ（例えば０ｘ７７７）で発信されるメッセージに、収集対象のＩＤ（０ｘ４５６）を含めて全ての子機２０２に対して送信する。
【００８３】
（Ｄ２１）子機２０２の各カウンタ制御部２３４は、通知用ＩＤ（０ｘ７７７）のメッセージを受信すると、収集対象ＩＤ（０ｘ４５６）に対する受信回数をカウンタ２３６が保持しているか否かを判定する。収集対象のＩＤ（０ｘ４５６）に対する受信回数をカウンタ２３６に保持している子機２０２のカウンタ制御部２３４の制御により、ＣＡＮトランシーバ２３１は、ＩＤ（０ｘ４５６）の受信回数と子機自身を識別するＩＤを通知用ＩＤ（０ｘ７７７）と共にメッセージに含めて親機２２０に通知する。すると、子機２０２ａからは０ｘ４５６に対応する受信回数９回と、子機２０２ｂからは０ｘ４５６に対応する受信回数１０回を示す情報が親機２２０に通知される。
【００８４】
（Ｄ２２）親機２２０のカウンタ制御部２２２は、通知用ＩＤ０ｘ７７７を含むメッセージを受信すると、該メッセージから受信回数と、子機ＩＤとを取得する。
【００８５】
（Ｄ２３）親機２２０のカウンタ制御部２２２は、０ｘ４５６の受信回数を合算する。この場合、子機２０２ａの０ｘ４５６の受信回数９回と、子機２０２ｂの０ｘ４５６の受信回数１０回が合算され、１９回となる。次に、親機２２０のカウンタ制御部２２２は、０ｘ４５６の受信回数を合算した値と、カウンタ２２５内の０ｘ４５６の受信回数とで整合性がとれているか否かを判定する。この場合、合算した値は１９回であり、カウンタ２２５内の受信回数は２０回であるため整合性がとれない。カウンタ制御部２２２は、不正なＥＣＵ２０１があると判定し、ユーザに不正なＥＣＵが存在することを通知する。
【００８６】
子機２０２と親機２２０とで夫々カウンタを備え、メッセージの受信回数をカウントすることで、親機２２０は、不正なＥＣＵ２０１´が設置されたことを検知することができる。また、同一のＩＤを複数のＥＣＵが送信する場合であっても、親機２２０が該ＩＤを指定して全ての該ＩＤの受信回数をカウントしている子機２０２から対応する受信回数を収集することで、整合性の確認がとれる。この整合性を確認することで、親機２２０は、システム２０００内に不正なＥＣＵ２０１´が存在することを検知できる。なお、親機２２０は、定期的に子機２０２から受信回数を収集して整合性を確認してもよい。親機２２０のカウンタ制御部２２２は、画面などに不正に置き換えられたＥＣＵ２０１´があることを通知するなどの手法で、ユーザに対して異常を通知してもよい。又、親機２２０のカウンタ制御部２２２は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。
【００８７】
図５は、本実施形態に係る親機の処理の例を説明するフローチャートである。親機２２０のＣＡＮトランシーバ２２１は、子機２０２を介したＥＣＵ２０１からのメッセージを受信する（ステップＳ１０１）。カウンタ制御部２２２は、受信したメッセージに、子機２０２が不正なＥＣＵを検知したことを示す情報が含まれるか否かを判定する（ステップＳ１０２）。受信したメッセージに子機２０２が不正なＥＣＵを検知したことを示す情報を含まない場合（ステップＳ１０２でＮＯ）、カウンタ制御部２２２は、受信したメッセージに含まれるＩＤがホワイトリスト２２４に含まれているか否かを判定する（ステップＳ１０３）。受信したメッセージに含まれるＩＤがホワイトリスト２２４に保持されている場合（ステップＳ１０３でＹＥＳ）、カウンタ制御部２２２は、カウンタ２２５内の受信したメッセージに含まれるＩＤに対応する受信回数に１をインクリメントする（ステップＳ１０４）。カウンタ制御部２２２は、カウンタ２２５内の受信したＩＤに対応する受信回数が所定の値に達しているか否かを判定する（ステップＳ１０５）。カウンタ２２５内の受信したＩＤに対応する受信回数が所定の値に達している場合（ステップＳ１０５でＹＥＳ）、カウンタ制御部２２２の制御によりＣＡＮトランシーバ２２１は、各子機２０２から該ＩＤの受信回数を収集する（ステップＳ１０６）。カウンタ制御部２２２は、収集した子機２０２側の該ＩＤの受信回数と、親機２２０側の該ＩＤの受信回数との整合性を確認し問題があるか否かを判定する（ステップＳ１０７）。整合性に問題がない場合（ステップＳ１０７でＮＯ）、親機２２０は処理をステップＳ１０１から繰り返す。整合性に問題がある場合、親機２２０は、ユーザに異常を通知する（ステップＳ１０８）。受信したメッセージに子機２０２が不正なＥＣＵを検知したことを示す情報を含む場合（ステップＳ１０２でＹＥＳ）、親機２２０は、ユーザに異常を通知する（ステップＳ１０８）。同様に、受信したメッセージに含まれるＩＤがホワイトリストに含まれない場合（ステップＳ１０３でＮＯ）、親機２２０は、ユーザに異常を通知する（ステップＳ１０８）。
【００８８】
図６は、本実施形態に係る子機の処理の例を説明するフローチャートである。子機２０２のＣＡＮトランシーバ２３２は、ＥＣＵ２０１からのメッセージを受信する（ステップＳ２０１）。子機２０２のカウンタ制御部２３２は、受信したメッセージに含まれるＩＤが記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する（ステップＳ２０２）。受信したメッセージに含まれるＩＤがホワイトリスト２３５に保持されている場合（ステップＳ２０２でＹＥＳ）、カウンタ制御部２３３は、カウンタ２３６内の受信したメッセージに含まれるＩＤに対応する受信回数に１をインクリメントする（ステップＳ２０３）。子機２０２のカウンタ制御部２３４は、カウンタ２３６内の受信したＩＤに対応する受信回数が所定の値（例えば１０回）に達しているか否かを判定する（ステップＳ２０４）。受信したメッセージのＩＤに対応する受信回数が所定の値を超えている場合（ステップＳ２０４でＹＥＳ）、ＣＡＮトランシーバ２３１は、所定の値を超えている受信回数のＩＤを含む通知用メッセージを親機２２０に通知する（ステップS２０５）。カウンタ制御部２３４は、受信回数が所定の値を超えているメッセージのＩＤに対応する受信回数をリセットする（ステップＳ２０６）。受信したメッセージのＩＤに対応する受信回数が所定の値を超えていない場合（ステップＳ２０４でＮＯ）、子機２０２は、処理をステップＳ２０１から繰り返す。受信したメッセージのＩＤがホワイトリストに含まれていない場合（ステップＳ２０２でＮＯ）、ＣＡＮトランシーバ２３１は、子機２０２に接続されているＥＣＵが異常であることを親機２２０に通知する（ステップＳ２０７）。子機２０２は、ステップＳ２０６、ステップＳ２０７が終了すると、処理を終了する。なお、ステップＳ２０４を、親機２２０からのカウンタ値要求の有無を判定するステップに代えてもよい。この場合、カウンタ値の要求があれば要求されたＩＤのカウンタ値を親機２２０に通知して、当該カウンタ値をリセットする。カウンタ値の要求がなければ、処理Ｓ２０１から繰り返す。
【００８９】
子機２０２と親機２２０とで夫々カウンタを備え、メッセージの受信回数をカウントすることで、親機２２０は、不正なＥＣＵ２０１´が設置されたことを検知することができる。また、同一のＩＤを複数のＥＣＵが送信する場合であっても、親機２２０が該ＩＤを指定して全ての該ＩＤの受信回数をカウントしている子機２０２から対応する受信回数を収集することで、整合性の確認がとれる。この整合性を確認することで、親機２２０は、システム２０００内に不正なＥＣＵ２０１´が存在することを検知できる。なお、親機２２０は、定期的に子機２０２から受信回数を収集して整合性を確認してもよい。親機２２０のカウンタ制御部２２２は、画面などに不正に置き換えられたＥＣＵ２０１´があることを通知するなどの手法で、ユーザに対して異常を通知してもよい。又、親機２２０のカウンタ制御部２２２は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。なお、本実施形態において、子機は、不正に置き換えられた場合に異常を検知したいＥＣＵと対として使用されればよい。
【００９０】
＜その他＞
図７は、子機と接続されたＥＣＵが不正に置き換えられた場合の子機と親機処理の例を説明する図である。図７のシステム２０００では、ＥＣＵ２０１ｄが不正なＥＣＵ２０１´に置き換えられた場合の例である。ＥＣＵ２０１ｄが不正なＥＣＵ２０１´に置き換えられた場合の、子機２０２ｄと親機２２０の処理の例を以下に順に説明する。
【００９１】
（Ｅ１）ＥＣＵ２０１´から子機２０２ｄに対してメッセージが送信される。
【００９２】
（Ｅ２）子機２０２ｄのＣＡＮトランシーバ２３２は、ＥＣＵ２０２´からのメッセージを受信する。
【００９３】
（Ｅ３）子機２０２ｄのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤが記憶部２３４に保持されているホワイトリスト２３５に含まれているか否かを判定する。ここで、ホワイトリスト２３５は、不正なＥＣＵ２０１´の送信するメッセージに含まれるＩＤを保持しないものとする。
【００９４】
（Ｅ４）子機２０２ｄのカウンタ制御部２３２は、受信したメッセージに含まれるＩＤがホワイトリスト２３５に含まれていないと判定する。
【００９５】
（Ｅ５）子機２０２ｄのカウンタ制御部２３２の制御により、ＣＡＮトランシーバ２３１は、親機２２０に異常（不正なＥＣＵを検知したこと）を通知する。
【００９６】
（Ｅ６）親機２２０のＣＡＮトランシーバ２２１は、子機２０２ｄから異常の通知を受信する。この際、該通知には、子機２０２ｄを特定するための子機ＩＤが含まれる。
【００９７】
（Ｅ７）子機２０２が不正なＥＣＵを検知したことを示す情報を通知してきた場合、親機２２０は、ユーザに異常を通知する。
【００９８】
このように、不正なＥＣＵを検知した子機２０２から異常通知を受信し、親機２２０が該通知をしてきた子機２０２のＩＤを用いることで、異常を検知した子機２０２を特定することができる。従って、親機２２０は、子機２０２に接続された不正なＥＣＵ２０１´を特定し、ユーザに通知することができる。
【符号の説明】
【００９９】
１００１、１００２、２０００  システム
１０１、２１０  ＣＡＮ
１１１、１１１ａ〜１１１ｆ、１１１ｂ´  ＥＣＵ
１１２、１１２ａ〜１１２ｆ  検知器
２０１、２０１ａ〜２０１ｆ  ＥＣＵ
２０２、２０２ａ〜２０２ｆ  子機
２２０  親機
２２１、２３１、２３２  ＣＡＮトランシーバ
２２２、２３３  カウンタ制御部
２２３、２３４  記憶部
２２４、２３５  ホワイトリスト
２２５、２３６  カウンタ
【図１】
0006520515.tif 000002
【図２Ａ】
0006520515.tif 000003
【図２Ｂ】
0006520515.tif 000004
【図２Ｃ】
0006520515.tif 000005
【図３】
0006520515.tif 000006
【図４】
0006520515.tif 000007
【図５】
0006520515.tif 000008
【図６】
0006520515.tif 000009
【図７】
0006520515.tif 000010