(57)【特許請求の範囲】
【請求項１】
バスを介して複数の通信ノードが互いにデータ通信を行う通信ネットワークにおける、対応する前記通信ノードと前記バスの間に介在する通信中継装置であって、
前記バスに接続された管理装置との間で認証処理を行う第１の認証部と、
対応する前記通信ノードの送信データに含まれる可能性がある識別情報を記憶する記憶部と、
対応する前記通信ノードの送信データに含まれる識別情報と前記記憶部に記憶された識別情報との比較結果に応じた認証処理を行う第２の認証部と、
前記第１の認証部における認証処理が成功した場合、前記第２の認証部における認証結果を前記管理装置に通知する通知部と、
を有することを特徴とする通信中継装置。
【請求項２】
前記第１の認証部が、前記管理装置と前記通信中継装置の電源が投入されると、前記管理装置との間で認証処理を行い、
前記第１の認証部における認証処理が成功した場合で、且つ、前記第２の認証部における認証結果が失敗である場合に、前記通知部が、前記第２の認証部における認証結果を通知する
ことを特徴とする請求項１に記載の通信中継装置。
【請求項３】
前記第１の認証部は、前記管理装置との認証処理をチャレンジ＆レスポンス形式の認証を用いて行う
ことを特徴とする請求項１に記載の通信中継装置。
【請求項４】
バスを介して複数の通信ノードが互いにデータ通信を行う通信ネットワークにおける、対応する前記通信ノードと前記バスの間に介在する通信中継装置で実行されるプログラムであって、
前記バスに接続された管理装置との間で第１の認証処理を行い、
対応する前記通信ノードの送信データに含まれる可能性がある識別情報を記憶部に記憶し、
対応する前記通信ノードの送信データに含まれる識別情報と前記記憶部に記憶された識別情報との比較結果に応じた第２の認証処理を行い、
前記第１の認証処理が成功した場合、前記第２の認証処理の結果を前記管理装置に通知する
ことを特徴とする通信中継プログラム。
【請求項５】
前記プログラムは、
前記管理装置と前記通信中継装置の電源が投入されると、前記管理装置との間で認証処理を行い、
前記第１の認証処理が成功した場合で、且つ、前記第２の認証処理が失敗である場合に、前記第２の認証処理の結果を前記管理装置に通知する処理を含む
ことを特徴とする請求項４に記載の通信中継プログラム。
【請求項６】
前記第１の認証処理は、前記管理装置との認証処理をチャレンジ＆レスポンス形式の認証を用いて行われる
ことを特徴とする請求項４に記載の通信中継プログラム。
【請求項７】
バスを介して複数の通信ノードが互いにデータ通信を行う通信ネットワークにおける、対応する前記通信ノードと前記バスの間に介在する通信中継装置が、
前記バスに接続された管理装置との間で第１の認証処理を行い、
対応する前記通信ノードの送信データに含まれる可能性がある識別情報を記憶部に記憶し、
対応する前記通信ノードの送信データに含まれる識別情報と前記記憶部に記憶された識別情報との比較結果に応じた第２の認証処理を行い、
前記第１の認証処理が成功した場合、前記第２の認証処理の結果を前記管理装置に通知する
ことを特徴とする通信中継方法。
【請求項８】
前記管理装置と前記通信中継装置の電源が投入されると、前記管理装置との間で認証処理を行い、
前記第１の認証処理が成功した場合で、且つ、前記第２の認証処理が失敗である場合に、前記第２の認証処理の結果を前記管理装置に通知する
ことを特徴とする請求項７に記載の通信中継方法。
【請求項９】
前記第１の認証処理は、前記管理装置との認証処理をチャレンジ＆レスポンス形式の認証を用いて行われる
ことを特徴とする請求項７に記載の通信中継方法。
【請求項１０】
バスを介して複数の通信ノードが互いにデータ通信を行う通信ネットワークにおける、対応する前記通信ノードと前記バスの間に介在する通信中継装置と、対応する前記通信ノードと前記通信中継装置を管理する管理装置とを含むシステムであって、
前記通信中継装置は、
前記バスに接続された管理装置との間で第１の認証処理を行い、
対応する前記通信ノードの送信データに含まれる可能性がある識別情報を記憶部に記憶し、
対応する前記通信ノードの送信データに含まれる識別情報と前記記憶部に記憶された識別情報との比較結果に応じた第２の認証処理を行い、
前記第１の認証処理が成功した場合、前記第２の認証処理の結果を前記管理装置に通知し、
前記管理装置は、
複数の通信ノードのうち、前記第２の認証処理の結果が失敗している通信ノードを不正に置きえられた通信ノードとして特定する
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置間の通信の制御に関する。
【背景技術】
【０００２】
自動車の車載ネットワークやファクトリーオートメーションなどに使用される装置間で、データや制御情報を送受信するために、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と呼ばれるネットワーク技術が使用されることがある。ＣＡＮが用いられるシステムは、複数のＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を含む。ＥＣＵ同士はメッセージを送受信することにより通信を行う。ＣＡＮ通信に使用されるメッセージには、メッセージの識別情報（ＩＤ）が含まれている。また、各ＥＣＵは、受信するメッセージのＩＤを予め記憶している。メッセージはブロードキャストされ、各ＥＣＵは、設定されたＩＤを含むメッセージを受信するが、受信対象に設定されていないＩＤを含むメッセージは破棄する。
【０００３】
ＣＡＮのネットワークに関し、車両を制御する車両制御装置のデータを書き換える技術が知られている。車両にはＣＡＮバスに送信されるデータの送信状況を監視し、この監視するデータ送信状況に適応させて、書き換え用データのデータフレームをＣＡＮバスに送信する書き換え用データ送信制御装置が搭載されている（例えば、特許文献１を参照）。
【０００４】
車両の電子制御装置をアクセスする車外装置、例えば、メンテナンス装置の正当性を車両が認証処理を行って判定する技術が知られている。車両はその判定結果に従ってメンテナンス装置による電子制御装置へのアクセス可能な範囲を決定する。車外装置による車両の電子制御装置に対する所望しないアクセスを抑止する（例えば、特許文献２を参照）。
【０００５】
車外装置と車内通信システムとの間の通信にて生じ得る不都合な事象の発生を抑制する技術が知られている。車内通信システムに至る通信路としての迂回路を有する。迂回路には、上流と下流とを接続及び遮断するスイッチが設けられる。正当な外部ツールからの迂回路接続要求を受信すると、迂回路が接続され、それ以外の場合には、迂回路が遮断されるようにスイッチを制御する（例えば、特許文献３を参照）。
【０００６】
車載通信ネットワークに送信される不正メッセージを小さな処理負荷で検知する車両制御装置が知られている。送信されるメッセージに対して該メッセージに含まれる識別子が自身の識別子と一致するか否かに基づいて正当性の判断を含むメッセージ処理を行う。他の制御装置から送信されるメッセージに対してはメッセージ処理を行う一方、自身が送信したメッセージに対してはメッセージ処理を行わないように制御する（例えば、特許文献４を参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１７８０３５号公報
【特許文献２】国際公開第２００９／１４７７３４号
【特許文献３】特開２０１５−５８２５号公報
【特許文献４】特開２０１５−６５５４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＣＡＮにおいて、或る通信ノード（ＥＣＵ）が悪意ある第３者によって別の通信ノード（ＥＣＵ）に置き換えられたとする。置き換えられた通信ノードからはＩＤを成りすましたデータ、つまり、別の通信ノードが送信するＩＤを持つメッセージが発信され、このデータは、全ての通信ノードに到達する。成りすましたＩＤが自装置で受け取るべきＩＤである通信ノードは、このデータを受信してしまい、その結果、意図しない動作を引き起こされる可能性がある。
【０００９】
上記攻撃対策として、各通信ノードに自身が発信する可能性があるＩＤを登録しておき、受信データに含まれるＩＤと登録ＩＤを比較することが考えられる。他通信ノードから受信したデータに自身が発信する可能性があるＩＤが含まれている場合、他の通信ノードの何れかが不正な通信ノードに置き換わり、自身に成りすましていることを認識できる。
【００１０】
しかしながら、上述の対策では、置き換えられた通信ノードの存在は検知できるが、どの通信ノードが置き換えられたかは特定できない。置き換えられた通信ノードがどれであったのか、なるべく１箇所に集約した情報として確認できることが好ましい。
【００１１】
本発明は、１つの側面において、不正に置き換えられた通信ノードを特定できる手法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
通信中継装置は、バスを介して複数の通信ノードが互いにデータ通信を行う通信ネットワークにおいて、対応する前記通信ノードと前記バスの間に介在する。通信中継装置は、第１の認証部、記憶部、第２の認証部、通知部を備える。第１の認証部は、バスに接続された管理装置との間で認証処理を行う。記憶部は、対応する前記通信ノードの送信データに含まれる可能性がある識別情報を記憶する。第２の認証部は、対応する通信ノードの送信データに含まれる識別情報と記憶部に記憶された識別情報との比較結果に応じた認証処理を行う。通知部は、第１の認証部における認証処理が成功した場合、第２の認証部における認証結果を管理装置に通知する。
【発明の効果】
【００１３】
本発明によれば、不正に置き換えられた通信ノードを管理装置が特定することができる。
【図面の簡単な説明】
【００１４】
【図１】検知器を備えた複数のＥＣＵを含むＣＡＮの例を説明する図である。
【図２Ａ】第１の実施形態に係るシステムの例を説明する図である。
【図２Ｂ】第１の実施形態に係るシステムの例を説明する図である。
【図３】ハードウェア構成の例を説明する図である。
【図４】第１の実施形態に係る親機の処理の例を説明するフローチャートである。
【図５】第１の実施形態に係る子機の処理の例を説明するフローチャートである。
【図６】第２の実施形態に係る子機と親機の例を説明する図である。
【図７】第２の実施形態に係る子機の処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、検知器を備えた複数のＥＣＵを含むＣＡＮの例を説明する図である。システム１００１は、ＣＡＮ１０１とＥＣＵ１１１（１１１ａ〜１１１ｆ）を含む。ＥＣＵ１１１ａ〜１１１ｆの各々は、ＣＡＮ１０１で接続されている。そのため、ＥＣＵ同士は、メッセージの送受信をすることができる。ＥＣＵ１１１ａ〜１１１ｆの各々は、ＣＡＮ１０１に接続されるインターフェースに検知器１１２ａ（ＥＣＵ１１１ａに対応）〜１１２ｆ（ＥＣＵ１１１ｆに対応）を備える。検知器は、ＥＣＵが送信するメッセージのＩＤを、ホワイトリストとして保持している。ここで、ＥＣＵの各々は、複数種類のメッセージが送信可能であり、種類毎のメッセージに対応したＩＤが設定される。なお、システム１００１内で異なるＥＣＵが同一のＩＤを持つメッセージを送信することはないものとする。検知器は、自ＥＣＵが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信した場合に、異常を検知する。また、検知器は、ＥＣＵが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信した場合に、システム１００１に異常があることを検知できる。
【００１６】
システム１００２は、システム１００１のＥＣＵ１１１ｂが、何者かによって不正にＥＣＵ１１１ｇに置き換えられたシステムの例である。システム１００２におけるＣＡＮ１０１、ＥＣＵ１１１ａ、ＥＣＵ１１１ｃ〜１１１ｆはシステム１００１と同じものである。ＥＣＵ１１１ｇには、ＥＣＵ１１１ａが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを送信する。ＥＣＵ１１１ｇがメッセージを送信すると、該メッセージは、ＥＣＵ１１１ａ、ＥＣＵ１１１ｃ〜１１１ｆに到達する。すると、ＥＣＵ１１１ａの検知器１１２ａは、自ＥＣＵ１１１ａが送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信するため、異常を検知できる。
【００１７】
図１のシステム１００２において、ＥＣＵ１１１ａは、自身が送信する可能性のある複数種類のメッセージのＩＤの何れかを含むメッセージを受信することで、システム１００２内の何れかのＥＣＵ１１１が何者かによって置き換えられていることを検知できる。一方、図１のシステム１００２において、何れかのＥＣＵ１１１が何者かによって置き換えられていることは検知可能であるものの、どのＥＣＵ１１１（以下、「通信ノード」とも称す）が置き換えられたかまでは特定できない。
【００１８】
車内ネットワーク（ＣＡＮ）において、ＥＣＵの不正な置き換えや、改竄される脅威が存在する。これらの脅威に対しては、ＥＣＵ同士が認証を行うことで解決する方法も考えうる。しかし、ＥＣＵ同士が認証を行うためには、認証用の機能を備えるようにＥＣＵを改造することになり、ＣＡＮに対してそのまま適用できない。そのため、ＥＣＵを改造しないでも、これらの脅威に対抗できる車内ネットワークが求められる。
【００１９】
そこで本発明では、認証機能をＥＣＵではなく、子機に持たせる。しかし、認証機能を子機に持たせただけでは、不正に置き換えられたＥＣＵを特定できない。そこで親機と複数の子機とをＣＡＮで接続し、親機と各子機間での親子間の認証機能を導入する。なお、各子機１個につき、ＥＣＵ１個を接続する。子機は、対応して接続された（予め登録された）ＥＣＵからのデータだけをＣＡＮ側に通過させる。そのために、子機には、対応して接続されたＥＣＵが送信するメッセージに対応したＩＤのホワイトリストが登録される。また、子機は、ＥＣＵから送信されてくるメッセージの送信周期の情報を備えてもよい。
【００２０】
子機は、ＥＣＵ側からのデータについて、ホワイトリストに登録されたＩＤ以外のＩＤを持つデータが到着した場合、又は、メッセージの送信周期以外のタイミングでメッセージが到着した場合、ＥＣＵが異常であると判定する。異常があると判定した場合、どのＥＣＵも使用しないＩＤを用いて親機に通知する。これにより、車内ネットワークへの攻撃（ＥＣＵ置き換えや改竄）を防ぎ、不正に置き換えられた通信ノードを管理装置が特定することができる。
【００２１】
図２Ａ及び図２Ｂは、第１の実施形態に係るシステムの例を説明する図である。システム２０００は、ＣＡＮ２１０、ＥＣＵ２０１（２０１ａ〜２０１ｆ）、子機２０２（２０２ａ〜２０２ｆ）、親機２２０を含む。子機の各々はＣＡＮ２１０で接続されている。ＣＡＮ２１０は、例えば、ＣＡＮバスである。また、親機２２０も子機とＣＡＮ２１０を介して通信可能に接続されている。ＥＣＵ２０１a〜２０１ｆは、子機２０２ａ（ＥＣＵ２０１ａと対応）〜２０２ｆ（ＥＣＵ２０１ｆと対応）と対応付けられており、ＣＡＮ２１０を介して通信可能に接続されている。子機２０２は、ＥＣＵ２０１と1対１でＣＡＮ２１０を介して通信可能に接続される。
【００２２】
図２Ｂには、図１Ａのシステム２０００に含まれる親機２２０、子機２０２ｂの機能部が示されている。子機２０２ｂは、ＣＡＮトランシーバ２３１、記憶部２３２、第１の認証部２３３、第２の認証部２３４、制御部２３５、ＣＡＮトランシーバ２３６を備える。なお、子機２０２ａ〜２０２ｆの各々は、子機２０２ｂと同様である。ＣＡＮトランシーバ２３１は、子機２０２ｂが他の子機、親機２２０とＣＡＮ２１０を介して通信をする際に使用される通信インターフェースである。ＣＡＮトランシーバ２３６は、子機２０２ｂが自身に対応づけて設定されるＥＣＵ２０１ｂと通信をする際に使用される通信インターフェースである。記憶部２３２は、ＥＣＵ２０１が送信する可能性のある複数種類のメッセージのＩＤをホワイトリストとして記憶する。ホワイトリストは、子機２０２と１対１で予め設置されたＥＣＵが送信するメッセージに対応したＩＤが登録されている。第１の認証部２３３は、親機２２０と通信をし、親機２２０と子機２０２ｂとの間の認証処理をする。第２の認証部２３４は、子機２０２ｂに対応して接続されているＥＣＵ２０１ｂと子機２０２ｂとの認証処理をする。制御部２３５は、第１の認証部２３３、第２の認証部２３４などの処理を制御する。なお、図２Ｂの子機２０２ｂ内に記載されている矢印は、データの流れを示す図である。
【００２３】
親機２２０は、ＣＡＮトランシーバ２２１、第１の認証部２２２、記憶部２２３、制御部２２４を備える。ＣＡＮトランシーバ２２１は、子機２０２ａ〜２０２ｆとＣＡＮ２１０を介して通信をする際に使用される通信インターフェースである。第１の認証部２２２は、子機２０２の第１の認証部２３３との間で親子間認証を実行する。記憶部２２３は、親機２２０と子機２０２との認証結果と、子機２０２と対応するＥＣＵ２０１と子機２０２との間の認証結果とを記憶する。制御部２２４は、第１の認証部２２２の処理などを制御する。
【００２４】
以下に、第１の実施形態に係る親機２２０と子機２０２ｂの処理の例を順に説明する。
【００２５】
（Ａ１）ＥＣＵ２０１ｂから子機２０２ｂに対してメッセージが送信される。
【００２６】
（Ａ２）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００２７】
（Ａ３）第２の認証部２３４は、ＥＣＵ２０１ｂの認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。ここではＥＣＵ２０１ｂは、未だ不正にＥＣＵ２０１´に置き換えられていないものとする。そのため、第２の認証部２３４は、ＥＣＵ２０１ｂから受信したメッセージに含まれるＩＤが記憶部２３２のホワイトリストに保持されているため、ＥＣＵ２０１ｂの認証を成功と判定する。子機２０２は、（Ａ１）〜（Ａ３）の処理を繰り返し実行する。
【００２８】
（Ａ４）子機２０２ｂの第１の認証部２３３は、親機２２０との親子間認証処理を開始する。親子間認証は、定期的に実行されてもよい。該親子間認証は、第２の認証部２３４の認証結果を親機２２０に通知するための前処理として実行される。具体的には、ＣＡＮトランシーバ２３１は、親機２２０に対して親子間認証を実施する要求を通知する。
【００２９】
（Ａ５）親機２２０の第１の認証部２２２は、該要求に応じて親子間認証を行う。第１の認証部２２２は、子機２０２ｂと親機２２０との親子間認証に成功する。ＣＡＮトランシーバ２２１は、親子間認証の結果を子機２０２ｂに対して通知する。親機２２０の制御部２２４によって、親子間認証の結果が記憶部２２３に記憶される。
【００３０】
（Ａ６）親子間認証が問題なければ、ＣＡＮトランシーバ２３１は、ＥＣＵ２０１ｂとの認証結果（成功したこと）を親機２２０に対して通知する。
【００３１】
（Ａ７）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果が、記憶部２２３に記憶される。
【００３２】
（Ａ１）〜（Ａ７）の処理は、子機２０２ａ〜２０２ｆと親機２２０の夫々により実行される。これにより、親機２２０は、親機２２０と各子機２０２との間の親子間認証の結果と、子機２０２と各子機２０２ａ〜２０２ｆに対応するＥＣＵ２０１間の認証結果とを収集することができる。なお、ＣＡＮトランシーバ２３１は、子機２０２の通知部として動作してもよい。ＣＡＮトランシーバ２３１の処理は、例えば、制御部２３５により制御される。ＣＡＮトランシーバ２２１の処理は、例えば、制御部２２４により制御される。ＥＣＵ２０１は、通信ノードであってもよい。図２のシステム２０００は、ＥＣＵ２０１や子機２０２の台数を限定するものではない。
【００３３】
ここで、ＥＣＵ２０１ｂが、不正にＥＣＵ２０１´に置き換えられたものとする。以下に、システム２０００内のＥＣＵ２０１ｂが、不正なＥＣＵ２０１´に置き換えられた場合の親機２２０と子機２０２ｂの処理の例を順に説明する。ＥＣＵ２０１´は、不正に置き換えられたＥＣＵであるため、ＥＣＵ２０１ｂが送信するメッセージと異なるＩＤを含むメッセージを送信するものとする。
【００３４】
（Ｂ１）ＥＣＵ２０１´から子機２０２に対してメッセージが送信される。
【００３５】
（Ｂ２）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１´からのメッセージを受信する。
【００３６】
（Ｂ３）第２の認証部２３４は、ＥＣＵ２０１´の認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。第２の認証部２３４は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤを、記憶部２３２のホワイトリストに保持していないため、ＥＣＵ２０１´の認証を失敗と判定する。
【００３７】
（Ｂ４）子機２０２ｂの第１の認証部２３３は、親機２２０との親子間認証処理を開始する。親子間認証は、定期的に実行されてもよい。該親子間認証は、第２の認証部２３４の認証結果（失敗したこと）を親機２２０に通知するための前処理として行われる。具体的には、ＣＡＮトランシーバ２３１は、親子間認証を実施する要求を親機２２０に対して通知する。
【００３８】
（Ｂ５）親機２２０の第１の認証部２２２は、該要求に応じて親子間認証を行う。第１の認証部２２２は、子機２０２ｂと親機２２０との親子間認証に成功する。ＣＡＮトランシーバ２２１は、親子間認証の結果を子機２０２ｂに対して通知する。親機２２０の制御部２２４の制御によって、親子間認証の結果が記憶部２２３に記憶される。
【００３９】
（Ｂ６）ＣＡＮトランシーバ２３１は、親子間認証が問題なければ、ＥＣＵ２０１´との認証結果（失敗したこと）を、親機２２０に対して通知する。
【００４０】
（Ｂ７）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果（失敗したこと）が、記憶部２２３に記憶される。
【００４１】
ＥＣＵ２０１が不正に置き換えられた場合、不正なＥＣＵ２０１´と通信をする子機２０２（２０２ａ〜２０２ｆ）は、（Ｂ１）〜（Ｂ７）の処理を実行する。親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられていないかの認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、不正に置き換えられたＥＣＵ２０１を検知し、親機２２０に不正に置き換えられたＥＣＵ２０１を通知する。このことで、親機２２０は、その不正なＥＣＵを特定することができる。親機２２０の制御部２２４は、画面などに不正に置き換えられたと特定したＥＣＵ２０１´を表示させるなどをして、ユーザに対して異常を通知してもよい。又、親機２２０の制御部２２４は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。なお、システム２０００では、子機２０２と親機２２０と記載しているものの、子機２０２を、「中継装置」、親機２２０を中継装置及びＥＣＵを管理する「管理装置」と称してもよい。
【００４２】
図３は、ハードウェア構成の例を説明する図である。親機２２０、子機２０２のいずれも、図３に示すハードウェアによって実現される。子機２０２は、ＣＡＮトランシーバ３０１、ＣＡＮコントローラ３０２、処理回路３０３を含む。処理回路３０３は、プロセッサ３０４とメモリ３０５を備える。
【００４３】
ＣＡＮトランシーバ３０１は、子機２０２がＣＡＮネットワークを介して他の装置と通信するための処理を行う。ＣＡＮコントローラ３０２は、受信したメッセージ内のデータやＩＤなどを抽出する。ＣＡＮコントローラ３０２は、データをプロセッサ３０４に出力する。プロセッサ３０４は、任意の処理回路である。プロセッサは、メモリ３０５に格納されたプログラムを読み込み、処理を行う。
【００４４】
親機２２０において、ＣＡＮトランシーバ２２１は、ＣＡＮトランシーバ３０１とＣＡＮコントローラ３０２で実現される。プロセッサ３０４は、第１の認証部２２２、制御部２２４として動作する。メモリ３０５は、記憶部２２３として動作する。
【００４５】
子機２０２のＣＡＮトランシーバ２３１とＣＡＮトランシーバ２３６は、ＣＡＮトランシーバ３０１とＣＡＮコントローラ３０２で実現される。プロセッサ３０４は、第１の認証部２３３、第２の認証部２３４、制御部２３５として動作する。メモリ３０５は、記憶部２３２として動作する。
【００４６】
＜チャレンジ＆レスポンス形式を用いた第１の実施形態に係るシステムの例＞
図２Ｂのシステム２０００の例を用いて、チャレンジ＆レスポンス形式を用いた子機２０２と親機２２０の処理の例を順に説明する。ＥＣＵ２０１ｂは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤの何れかを含めてメッセージを送信するものとする。なお、子機２０２と親機２２０とは、共通鍵と対応付けられた認証用アルゴリズムを保持しているものとする。共通鍵と認証用アルゴリズムは、記憶部２２３と記憶部２３２に保持されていればよい。また以下の処理において、「通知」とはブロードキャスト通信のことである。
【００４７】
（Ｃ１）ＥＣＵ２０１ｂは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤの何れかを含むメッセージを子機２０２ｂに対して送信する。
【００４８】
（Ｃ２）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００４９】
（Ｃ３）第２の認証部２３４は、ＥＣＵ２０１ｂの認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。子機２０２ｂのホワイトリストは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤを保持している。第２の認証部２３４は、受信したメッセージに含まれるＩＤとホワイトリストに保持されているＩＤとを比較し、ＥＣＵ２０１ｂの認証を成功と判定する。子機２０２は、（Ｃ１）〜（Ｃ３）の処理を繰り返し実行する。
【００５０】
（Ｃ４）子機２０２ｂの第１の認証部２３３は、親機２２０との親子間認証処理を開始する。親子間認証は、定期的に実行されてもよい。親子間認証は、チャレンジ＆レスポンス形式の認証などを用いる。該親子間認証は、第２の認証部２３４の認証結果を親機２２０に通知するための前処理として実行される。子機は親機に対してチャレンジ＆レスポンス認証の開始を要求する。親機の第１の認証部２２２は子機からの認証要求（子機２０２ｂを識別するＩＤ（例えば０ｘ２）を含む）に応じて、チャレンジ＆レスポンス形式の認証に用いる乱数を生成する。ＣＡＮトランシーバ２２１は、乱数と親子認証用のＩＤ（例えば０ｘ７７７）と子機２０２ｂを識別するＩＤ（例えば０ｘ２）とを含めたメッセージを、親機２２０に対して通知する。このメッセージは、チャレンジ＆レスポンス形式の認証における「チャレンジ」である。
【００５１】
（Ｃ５）子機２０２ｂの第１の認証部２３３は、親子認証用のＩＤ（０ｘ７７７）を含むメッセージを受け取ると、メッセージに含まれる乱数と、保持している共通鍵を用いて乱数を暗号化する。以下、暗号化された乱数を「暗号文」と称し、暗号文の生成には認証用アルゴリズムが用いられる。ＣＡＮトランシーバ２３１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを、親機２２０に対して通知する。このメッセージは、チャレンジ＆レスポンス形式の認証における「レスポンス」である。さらに、子機２０２ｂの第１の認証部２３３は乱数を生成して、上記乱数と子機２０２それぞれを識別するＩＤを含めたメッセージを親機２２０に送信する。また、乱数を共通鍵で暗号化し、結果を保持する。
【００５２】
（Ｃ６）子機２２０の第１の認証部２２２は、（Ｃ４）の処理で生成した乱数と保持している共通鍵とから予想される暗号文と、レスポンスとして受け取ったメッセージに含まれる暗号文とが一致するかを判定する。暗号文が一致する場合、親機２２０の第１の認証部２２２は、親子間認証に問題がないと判定する。
【００５３】
（Ｃ７）親機２２０の第１の認証部２２２は、レスポンスとして受け取ったメッセージに含まれる暗号文から乱数と子機２０２を識別するＩＤを抽出する。第１の認証部２２２は、レスポンスとして受け取ったメッセージから抽出した乱数と共通鍵とから、暗号文を生成する。
【００５４】
（Ｃ８）ＣＡＮトランシーバ２２１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを子機２０２ｂに対して通知する。
【００５５】
（Ｃ９）子機２２０の第１の認証部２３３は、（Ｃ５）で生成した暗号文と、（Ｃ８）で親機２２０から通知された暗号文とが一致するかを判定する。暗号文が一致する場合、子機２０２ｂの第１の認証部２３３は、親子間認証に問題がないと判定する。認証結果を親機に通知する。この通知は暗号化されていても良い。
【００５６】
（Ｃ４）〜（Ｃ９）では、親機と子機の双方を認証する親子間認証を、親機側が開始している。しかし、認証は子機側から開始してもよい。また、親機と子機の双方の認証をせずに、親機が子機を認証する方法でもよい。同様に、親機と子機の双方の認証をせずに、子機が親機を認証する方法でもよい。
【００５７】
（Ｃ１０）親機２２０の第１の認証部２２２は、送られてきた子機２０２ｂの第１の認証結果と、第２の認証部２３４の認証結果を復号化して（暗号化されている場合）取得する。
【００５８】
（Ｃ１１）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果が記憶部２２３に記憶される。
【００５９】
（Ｃ１）〜（Ｃ１１）の処理は、子機２０２ａ〜２０２ｆと親機２２０の夫々により実行される。これにより、親機２２０は、親機２２０と各子機２０２との間の親子間認証の結果と、子機２０２と各子機２０２ａ〜２０２ｆに対応するＥＣＵ２０１間の認証結果とを収集することができる。
【００６０】
次に、ＥＣＵ２０１ｂが不正にＥＣＵ２０１´に置き換えられたものとする。以下に、システム２０００内のＥＣＵ２０１ｂが、不正なＥＣＵ２０１´に置き換えられた場合の親機２２０と子機２０２ｂの処理の例を順に説明する。ＥＣＵ２０１´は、０ｘ１１１のＩＤを含むメッセージを送信し、他のＥＣＵ２０１を誤動作させようとする。
【００６１】
（Ｄ１）ＥＣＵ２０１´から子機２０２に対してメッセージが送信される。
【００６２】
（Ｄ２）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１´からのメッセージを受信する。
【００６３】
（Ｄ３）第２の認証部２３４は、ＥＣＵ２０１´の認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤである０ｘ１１１が記憶部２３２に保持されているホワイトリスト（０ｘ１２３、０ｘ４５６、０ｘ７８９を含む）に含まれているか否かを判定する。第２の認証部２３４は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤ０ｘ１１１を、記憶部２３２のホワイトリスト（０ｘ１２３、０ｘ４５６、０ｘ７８９を含む）に保持していないため、ＥＣＵ２０１´の認証を失敗と判定する。
【００６４】
（Ｄ４）親機の第１の認証部２２２は子機からの認証要求（子機２０２ｂを識別するＩＤ（例えば０ｘ２）を含む）に応じて、子機機２０２ｂとの親子間認証処理を開始する。親子間認証は、チャレンジ＆レスポンス形式の認証などを用いる。親子間認証は、定期的に実行されてもよい。該親子間認証は、第２の認証部２３４の認証結果（失敗したこと）を親機２２０に通知するための前処理として実行される。親機２２０の第１の認証部２２２は、チャレンジ＆レスポンス形式の認証に用いる乱数を生成する。ＣＡＮトランシーバ２２１は、乱数と親子認証用のＩＤ（例えば０ｘ７７７）と子機２０２ｂを識別するＩＤ（例えば０ｘ２）とを含めたメッセージ（チャレンジ）を、子機２０２ｂに対して通知する。
【００６５】
（Ｄ５）子機２０２ｂの第１の認証部２３３は、親子認証用のＩＤ（０ｘ７７７）を含むメッセージを受け取ると、メッセージに含まれる乱数と、保持している共通鍵を用いて乱数を暗号化する。ＣＡＮトランシーバ２３１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージ（レスポンス）を、親機２２０に対して通知する。さらに、子機２０２ｂの第１の認証部２３３は乱数を生成して、上記乱数と子機２０２それぞれを識別するＩＤを含めたメッセージを親機２２０に送信する。また、乱数を共通鍵で暗号化し、結果を保持する。
【００６６】
（Ｄ６）親機２２０の第１の認証部２２１は、（Ｄ４）の処理で生成した乱数と保持している共通鍵とから予想される暗号文と、レスポンスとして受け取ったメッセージに含まれる暗号文とが一致するかを判定する。暗号文が一致する場合、親機２２０の第１の認証部２２１は、親子間認証に問題がないと判定する。
【００６７】
（Ｄ７）親機２２０の第１の認証部２２２は、レスポンスとして受け取ったメッセージに含まれる暗号文から乱数と子機２０２を識別するＩＤを抽出する。第１の認証部２２２は、レスポンスとして受け取ったメッセージから抽出した乱数と共通鍵とから、暗号文を生成する。
【００６８】
（Ｄ８）ＣＡＮトランシーバ２２１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを子機２０２ｂに対して通知する。
【００６９】
（Ｄ９）子機２２０の第１の認証部２３３は、（Ｃ５）で生成した暗号文と、（Ｃ８）で親機２２０から通知された暗号文とが一致するかを判定する。暗号文が一致する場合、子機２０２ｂの第１の認証部２３３は、親子間認証に問題がないと判定する。認証結果を親機に通知する。この通知は暗号化されていても良い。
【００７０】
（Ｄ４）〜（Ｄ９）では、親機と子機の双方を認証する親子間認証を、親機側が開始している。しかし、認証は子機側から開始してもよい。また、親機と子機の双方の認証をせずに、親機が子機を認証する方法でもよい。同様に、親機と子機の双方の認証をせずに、子機が親機を認証する方法でもよい。
【００７１】
（Ｄ１０）親機２２０の第１の認証部２２２は、送られてきた子機２０２ｂの第２の認証部２３４の認証結果を復号化して（暗号化されている場合）取得する。
【００７２】
（Ｄ１１）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果が、記憶部２２３に記憶される。
【００７３】
ＥＣＵ２０１が不正に置き換えられた場合、不正なＥＣＵ２０１´と通信をする子機２０２（２０２ａ〜２０２ｆ）は、（Ｄ１）〜（Ｄ１１）の処理を実行する。親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられたかどうかを示す認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、自身で不正に置き換えられたＥＣＵ２０１を検知し、親機２２０に不正に置き換えられたＥＣＵ２０１を特定させることができる。なお、チャレンジ＆レスポンス方式の親子認証において、乱数は子機２０２ｂ側で生成して親機のみを認証してもよいし、親機２２０と子機２０２ｂ双方で生成し、互いに認証を行っても良い。
【００７４】
図４は、第１の実施形態に係る親機の処理の例を説明するフローチャートである。親機２２０の第１の認証部２２２は、親子間認証を実行する（ステップＳ１０１）。親機２２０の制御部２２４の制御によって、親子間認証の結果が記憶部２２３に記憶される（ステップＳ１０２）。制御部２２４は、親子間認証に問題があったか否かを判定する（ステップＳ１０３）。親子間認証に問題がない場合（ステップＳ１０３でＮＯ）、親機２２０の第１の認証部２２２は、ＣＡＮトランシーバ２２１を介してＥＣＵ２０１と子機２０２との間の認証結果を取得する（ステップＳ１０４）。親機２２０の制御部２２４の制御によって、ＥＣＵ２０１と子機２０２との間の認証結果が記憶部２２３に記憶される（ステップＳ１０５）。制御部２２４は、ＥＣＵ２０１と子機２０２との間の認証に問題があったか否かを判定する（ステップＳ１０６）。親子間認証に異常があった場合（ステップＳ１０３でＹＥＳ）とＥＣＵ２０１と子機２０２との間の認証で異常があった場合（ステップＳ１０６でＹＥＳ）、制御部２２４は、親機２２０が通信可能な装置に異常を検知したことを通知する（ステップＳ１０７）。ステップＳ１０６又はステップＳ１０７の処理が終了すると、親機２２０の第１の実施形態に係る処理を終了する。親機２２０は、ステップＳ１０１〜Ｓ１０７の処理を、子機２０２ａ〜２０２ｆ毎に実行する。また、該処理を定期的に実行する。
【００７５】
図５は、第１の実施形態に係る子機の処理の例を説明するフローチャートである。ＣＡＮトランシーバ２３６は、ＥＣＵ２０１からのメッセージを受信する（ステップＳ２０１）。子機２０２の第２の認証部２３４は、メッセージに含まれるＩＤと記憶部２３２内の記憶部２３２に保持されているホワイトリストに該ＩＤが含まれるか否かを判定する（ステップＳ２０２）。子機２０２の第１の認証部２３３は、親機２２０との親子間認証を実施する（ステップＳ２０３）。ＣＡＮトランシーバ２３１は、子機が親機を認証する必要がある場合には親子間認証の結果を親機２２０に通知する（ステップＳ２０４）。ＣＡＮトランシーバ２３１は、ＥＣＵ２０１と子機２０２との認証結果（ステップ２０２の結果）を親機２２０に通知する（ステップＳ２０５）。なお、ステップＳ２０４とステップＳ２０５の処理は、並列して実行されてもよいし、逐次実行されてもよい。図５の処理は、ＥＣＵ２０１から子機２０２がメッセージを受信する毎に実行される。
【００７６】
図４と図５の処理により、親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられていないかの認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、不正に置き換えられたＥＣＵ２０１を検知し、親機２２０に不正に置き換えられたＥＣＵ２０１を通知することで特定させることができる。親機２２０の制御部２２４は、画面などに不正に置き換えられたＥＣＵ２０１´を表示させるなどをして、ユーザに対して異常を通知してもよい。又、親機２２０の制御部２２４は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。
【００７７】
図６は、第２の実施形態に係る子機と親機の例を説明する図である。第２の実施形態に係る子機２０２と親機２２０とは、図２Ｂに示した第１の実施形態に係る子機２０２と親機２２０と同じブロック構成を備える。そのため、図６では、図２Ｂと同じものには同じ番号を付す。図６に示す子機２０２ｂにおいて、データの流れを示す矢印が図２Ｂに示す子機２０２ｂのものと異なる。より詳しくは、図２Ｂに示す子機２０２ｂにおいて、ＥＣＵ２０１からのメッセージを受信すると、第２の認証部２３４が子機２０２とＥＣＵ２０１間の認証を実行し、その後に、第１の認証部２３３が親子間認証を実行する。第２の実施形態のおいては、第２の認証部２３４の認証処理と第１の認証部２３３の認証処理との順番が異なる。
【００７８】
（Ｅ１）システム２０００に備えられている全ての装置（親機２２０と子機２０２）の電源が投入される。システム２０００に備えられている全ての装置（親機２２０と子機２０２）の電源投入が完了すると、第１の認証部２２２は、全ての子機２０２と親機２２０との間の親子間認証を実行する。
【００７９】
（Ｅ２）親機２２０の制御部２２４の制御によって、各子機２０２と親機２２０との間の親子間認証の結果が記憶部２２３に記憶される。
【００８０】
（Ｅ３）親子間認証で問題のない子機２０２は、ＥＣＵ２０１からのメッセージがある場合に、該メッセージの受信を開始する。
【００８１】
（Ｅ４）ＥＣＵ２０１ｂから子機２０２ｂに対してメッセージが送信される。
【００８２】
（Ｅ５）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１ｂからのメッセージを受信する。
【００８３】
（Ｅ６）第２の認証部２３４は、ＥＣＵ２０１ｂの認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。ここではＥＣＵ２０１ｂは、未だ不正にＥＣＵ２０１´に置き換えられていないものとする。そのため、第２の認証部２３４は、ＥＣＵ２０１ｂから受信したメッセージに含まれるＩＤが記憶部２３２のホワイトリストに保持されているため、ＥＣＵ２０１ｂの認証を成功と判定する。
【００８４】
（Ｅ７）ＣＡＮトランシーバ２３１は、子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果を親機２２０に通知する。ＣＡＮトランシーバ２３１は、制御部２３５に制御されて通知処理を実行する。子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果は、親機２２０に暗号化されて通知されてもよい。
【００８５】
（Ｅ８）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果（成功したこと）が記憶部２２３に記憶される。
【００８６】
（Ｅ１）〜（Ｅ２）の処理は、親機２２０と子機２０２の電源が投入された場合に実行され、システム内の全ての子機２０２と親機２２０との間で親子間認証が実行される。その後、（Ｅ４）〜（Ｅ８）の処理が子機２０２と親機２２０とで繰り返される。このように電源投入時に親子間認証を済ませておくことで、その後のＥＣＵ２０１と子機２０２との認証処理毎の親子間認証処理を省くことができる。これにより、第１の実施形態に係るシステム２０００と比べて、親子間認証の処理の回数を減らすことができ、親機２２０の負荷を軽減することができる。
【００８７】
ここで、ＥＣＵ２０１ｂが、不正にＥＣＵ２０１´に置き換えられたものとする。ＥＣＵ２０１´は、不正に置き換えられたＥＣＵであるため、ＥＣＵ２０１ｂが送信するメッセージと異なるＩＤを含むメッセージを送信するものとする。
【００８８】
（Ｅ９）ＥＣＵ２０１´から子機２０２に対してメッセージが送信される。
【００８９】
（Ｅ１０）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１´からのメッセージを受信する。
【００９０】
（Ｅ１１）第２の認証部２３４は、ＥＣＵ２０１´の認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。第２の認証部２３４は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤを、記憶部２３２のホワイトリストに保持していないため、ＥＣＵ２０１´の認証を失敗と判定する。
【００９１】
（Ｅ１２）ＣＡＮトランシーバ２３１は、ＥＣＵ２０１´との認証結果（失敗したこと）を、親機２２０に対して通知する。子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果は、親機２２０に暗号化されて通知されてもよい。
【００９２】
（Ｅ１３）親機２２０の制御部２２４によって、子機２０２ｂから送られてきた認証結果（失敗したこと）が記憶部２２３に記憶される。
【００９３】
ＥＣＵ２０１が不正に置き換えられた場合、不正なＥＣＵ２０１´と通信をする子機２０２（２０２ａ〜２０２ｆ）と親機２２０は、（Ｅ９）〜（Ｅ１３）の処理を実行する。親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられていないかの認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、不正に置き換えられたＥＣＵ２０１を検知し、親機２２０に不正に置き換えられたＥＣＵ２０１を通知することで特定させることができる。親機２２０の制御部２２４は、画面などに不正に置き換えられたＥＣＵ２０１´を表示させるなどをして、ユーザに対して異常を通知してもよい。又、親機２２０の制御部２２４は、システム２０００外のシステムに対して、不正に置き換えられたＥＣＵ２０１´があることを通知してもよい。また、（Ｅ９）〜（Ｅ１３）の処理では、ＥＣＵ２０１と子機２０２との認証結果を親機２２０に通知する際に、親子間認証処理が実行されない。そのため、第１の実施形態に係るシステム２０００と比べて、親機２２０の負荷を軽減することができる。
【００９４】
＜チャレンジ＆レスポンス形式を用いた第２の実施形態に係るシステムの例＞
図６を用いて、チャレンジ＆レスポンス形式を用いた子機２０２と親機２２０の処理の例を順に説明する。ＥＣＵ２０１ｂは、０ｘ１２３、０ｘ４５６、０ｘ７８９の３つのＩＤの何れかを含めてメッセージを送信するものとする。
【００９５】
（Ｆ１）システム２０００に備えられている全ての装置（親機２２０と子機２０２）の電源が投入される。システム２０００に備えられている全ての装置（親機２２０と子機２０２）の電源投入が完了すると、親機２２０は、システム２０００内の全ての子機２０２と親子間認証処理を開始する。親子間認証は、チャレンジ＆レスポンス形式の認証などを用いる。
【００９６】
（Ｆ２）親機２２０の第１の認証部２２２は、親機２２０に接続されている子機２０２の数の乱数を生成する。乱数は、チャレンジ＆レスポンス形式の認証に用いられる。なお、生成された乱数には、各子機２０２に対応するＩＤが含まれる。そのため、生成された乱数は、各子機２０２に対応して生成される。ＣＡＮトランシーバ２２１は、乱数と親子認証用のＩＤ（例えば０ｘ７７７）と子機２０２ｂを識別するＩＤ（例えば０ｘ２）とを含めたメッセージを、子機２０２に対して通知する。このメッセージは、チャレンジ＆レスポンス形式の認証におけるチャレンジである。
【００９７】
（Ｆ３）子機２０２の第１の認証部２３３は、親子認証用のＩＤ（０ｘ７７７）を含むメッセージを受け取ると、メッセージに含まれる乱数と、保持している共通鍵を用いて乱数を暗号化する。ＣＡＮトランシーバ２３１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを、親機２２０に対して通知する。このメッセージは、チャレンジ＆レスポンス形式の認証におけるレスポンスである。
【００９８】
（Ｆ４）親機２２０の第１の認証部２２２は、（Ｆ２）の処理で生成した乱数と保持している共通鍵とから予想される暗号文と、レスポンスとして受け取ったメッセージに含まれる暗号文とが一致するかを判定する。暗号文が一致する場合、親機２２０の第１の認証部２２２は、親子間認証に問題がないと判定する。子機２０２の第一の認証部２３３は乱数を生成して、上記乱数と子機２０２それぞれを識別するＩＤを含めたメッセージを親機２２０に送信する。
【００９９】
（Ｆ５）親機２２０の第１の認証部２２２は、レスポンスとして受け取ったメッセージに含まれる暗号文と乱数と子機２０２を識別するＩＤを抽出する。第１の認証部２２２は、メッセージに含まれる子機２０２を識別するＩＤが、該レスポンスを送ってきた子機２０２を示すＩＤと一致するかを判定する。ＩＤが一致する場合、親機２２０の第１の認証部２２２は、レスポンスとして受け取ったメッセージから抽出した乱数と共通鍵とから、暗号文を生成する。
【０１００】
（Ｆ６）ＣＡＮトランシーバ２２１は、暗号文と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを子機２０２ｂに対して通知する。
【０１０１】
（Ｆ７）子機２０２の第１の認証部２３３は、（Ｆ３）で生成した暗号文と、（Ｆ６）で親機２２０から通知された暗号文とが一致するかを判定する。暗号文が一致する場合、子機２０２の第１の認証部２３３は、親子間認証に問題がないと判定する。併せて、子機２０２の第１の認証部２３３は、（Ｆ６）で親機２２０から通知されたメッセージに含まれる子機２０２を識別するＩＤが、自子機２０２のＩＤであるかを判定する。ＩＤが一致する、且つ、親子間認証に問題がない場合、ＣＡＮトランシーバ２３１は、親子間認証の結果（問題ないこと）と親子認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを親機２２０に対して通知する。なお、親子間認証の結果は、暗号化されていてもよい。
【０１０２】
（Ｆ８）親機２２０の第１の認証部２２２は、送られてきた子機２０２ｂの第２の認証部２３４の認証結果を復号化して（暗号化されている場合）取得する。
【０１０３】
（Ｆ９）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果が記憶部２２３に記憶される。
【０１０４】
（Ｆ１０）親子間認証で問題のない子機２０２は、ＥＣＵ２０１からのメッセージがある場合に、該メッセージの受信を開始する。ＥＣＵ２０１ｂから子機２０２ｂに対してメッセージが送信される。
【０１０５】
（Ｆ１１）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１ｂからのメッセージを受信する。
【０１０６】
（Ｆ１２）第２の認証部２３４は、ＥＣＵ２０１ｂの認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する。ここではＥＣＵ２０１ｂは、未だ不正にＥＣＵ２０１´に置き換えられていないものとする。そのため、第２の認証部２３４は、ＥＣＵ２０１ｂから受信したメッセージに含まれるＩＤが記憶部２３２のホワイトリストに保持されているため、ＥＣＵ２０１ｂの認証を成功と判定する。
【０１０７】
（Ｆ１３）ＣＡＮトランシーバ２３１は、子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果と認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを親機２２０に通知する。子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果を定期的に親機２２０に通知するようにしてもよい。なお、認証結果は、暗号化されて通知されてもよい。
【０１０８】
（Ｆ１４）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果（成功したこと）が記憶部２２３に記憶される。
【０１０９】
（Ｆ１）〜（Ｆ９）の処理は、親機２２０と子機２０２の電源が投入された場合に実行され、システム内の全ての子機２０２と親機２２０との間で親子間認証が実行される。その後、（Ｆ１０）〜（Ｆ１４）の処理が子機２０２と親機２２０とで繰り返される。このように電源投入時に親子間認証を済ませておくことで、その後のＥＣＵ２０１と子機２０２との認証処理毎の親子間認証処理を省くことができる。これにより、第１の実施形態に係るシステム２０００と比べて、親子間認証の処理の回数を減らすことができ、親機２２０の負荷を軽減することができる。
【０１１０】
ここで、ＥＣＵ２０１ｂが、不正にＥＣＵ２０１´に置き換えられたものとする。ＥＣＵ２０１´は、不正に置き換えられたＥＣＵであるため、ＥＣＵ２０１ｂが送信するメッセージ（０ｘ１２３、０ｘ４５６、０ｘ７８９）と異なるＩＤ（０ｘ１１１）を含むメッセージを送信するものとする。
【０１１１】
（Ｆ１５）ＥＣＵ２０１´から子機２０２に対してメッセージが送信される。
【０１１２】
（Ｆ１６）子機２０２ｂのＣＡＮトランシーバ２３６は、ＥＣＵ２０１´からのメッセージを受信する。
【０１１３】
（Ｆ１７）第２の認証部２３４は、ＥＣＵ２０１´の認証処理を開始する。第２の認証部２３４は、受信したメッセージに含まれるＩＤである０ｘ１１１が記憶部２３２に保持されているホワイトリスト（０ｘ１２３、０ｘ４５６、０ｘ７８９
を含む）に含まれているか否かを判定する。第２の認証部２３４は、ＥＣＵ２０１´から受信したメッセージに含まれるＩＤ０ｘ１１１を、記憶部２３２のホワイトリスト（０ｘ１２３、０ｘ４５６、０ｘ７８９を含む）に保持していないため、ＥＣＵ２０１´の認証を失敗と判定する。
【０１１４】
（Ｆ１８）ＣＡＮトランシーバ２３１は、子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果と認証用のＩＤ（０ｘ７７７）と子機２０２ｂを識別するＩＤ（０ｘ２）を含めたメッセージを親機２２０に通知する。なお、認証結果は、暗号化されて通知されてもよい。
【０１１５】
（Ｆ１９）親機２２０の制御部２２４の制御によって、子機２０２ｂから送られてきた認証結果（失敗したこと）が記憶部２２３に記憶される。
【０１１６】
なお、（Ｆ１３）の処理では、子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果（成功したこと）を親機２２０に通知すると記載している。しかし、子機２０２ｂにおけるＥＣＵ２０１ｂの認証結果が失敗と判定された場合に、子機２２０は、親機２２０に認証結果を通知してもよい。
【０１１７】
ＥＣＵ２０１が不正に置き換えられた場合、不正なＥＣＵ２０１´と通信をする子機２０２（２０２ａ〜２０２ｆ）は、（Ｆ１５）〜（Ｆ１９）の処理を実行する。親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられたかどうかを示す認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、自身で不正に置き換えられたＥＣＵ２０１を検知し、親機２２０に不正に置き換えられたＥＣＵ２０１を特定させることができる。なお、チャレンジ＆レスポンス方式の親子認証において、乱数は親機２２０側で生成して子機を認証する形式であってもよいし、子機２０２で生成して親機を認証する形式でも良い。
【０１１８】
図７は、第２の実施形態に係る子機の処理の例を説明するフローチャートである。子機２０２の第１の認証部２３３は、親機２２０からの要求により親子間認証を実行する（ステップＳ３０１）。ＣＡＮトランシーバ２３１は、親機２２０に親子間認証の結果を通知する（ステップＳ３０２）。ＣＡＮトランシーバ２３６は、ＥＣＵ２０１からのメッセージを受信する（ステップＳ３０３）。第２の認証部２３４は、ＥＣＵ２０１から受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれているか否かを判定する（ステップＳ３０４）。ＥＣＵ２０１から受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれている場合（ステップＳ３０４でＹＥＳ）、子機２０２は、処理をステップＳ３０３から繰り返す。ＥＣＵ２０１から受信したメッセージに含まれるＩＤが記憶部２３２に保持されているホワイトリストに含まれていない場合（ステップＳ３０４でＮＯ）、ＣＡＮトランシーバ２３１は、不正なＥＣＵ２０１を検知したことを親機２２０に通知する（ステップＳ３０５）。子機２０２は、ステップＳ３０５の処理が終了すると処理を終了する。
【０１１９】
ＥＣＵ２０１が不正に置き換えられた場合、親機２２０は、子機２０２ａ〜２０２ｆから自身に接続されているＥＣＵ２０１が不正に置き換えられたかどうかを示す認証結果を収集可能である。そのため、親機２２０は該認証結果を収集することで、不正に置き換えられたＥＣＵ２０１（通信ノード）を特定することができる。言い換えると、子機２０２は、自身で不正に置き換えられたＥＣＵ２０１を検知し、親機２２０が不正に置き換えられたＥＣＵ２０１を特定することができる。
【符号の説明】
【０１２０】
１００１、１００２、２０００  システム
１０１、２１０  ＣＡＮ
１１１、１１１ａ〜１１１ｆ、１１１ｂ´  ＥＣＵ
１１２、１１２ａ〜１１２ｆ  検知器
２０１、２０１ａ〜２０１ｅ  ＥＣＵ
２０２、２０２ａ〜２０２ｆ  子機
２２０  親機
２２１、２３１，２３６、３０１  ＣＡＮトランシーバ
２２２、２３３  第１の認証部
２２３、２３２  記憶部
２２４、２３５  制御部
２３４  第２の認証部
３０２  ＣＡＮコントローラ
３０３  処理回路
３０４  プロセッサ
３０５  メモリ
【図１】
0006536251.tif 000002
【図２Ａ】
0006536251.tif 000003
【図２Ｂ】
0006536251.tif 000004
【図３】
0006536251.tif 000005
【図４】
0006536251.tif 000006
【図５】
0006536251.tif 000007
【図６】
0006536251.tif 000008
【図７】
0006536251.tif 000009