(57)【要約】バス上でメッセージの授受を行う複数の電子制御ユニット（ＥＣＵ）及びバスに接続された不正検知ＥＣＵを備える車載ネットワークシステムにおいて用いられる不正検知方法では、不正検知ＥＣＵがバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、不正検知ＥＣＵによってルール情報を用いてバス上で送信されたメッセージが不正か否かを判定して、不正であった場合には不正なメッセージのメッセージ識別子を含むエラーメッセージを送信し、不正検知ＥＣＵによって外部のサーバから送信された更新用ルール情報を取得して、更新用ルール情報を用いてルール情報を更新する。
2015159520.tif 000002
【特許請求の範囲】
【請求項１】
１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、
前記不正検知方法は、
前記バスに接続された前記不正検知電子制御ユニットが、前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定して、不正であった場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信し、
前記不正検知電子制御ユニットが、前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する
不正検知方法。
【請求項２】
前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って前記バスを介して通信を行う
請求項１記載の不正検知方法。
【請求項３】
前記車載ネットワークシステムは、前記外部装置と通信する機能を有する外部通信電子制御ユニットを備え、
前記不正検知電子制御ユニットによる更新用ルール情報の前記取得は、前記外部通信電子制御ユニットが前記外部装置から受信して前記バス上に送信した更新用ルール情報を、受信することにより行われる
請求項１記載の不正検知方法。
【請求項４】
前記外部装置から受信した更新用ルール情報の前記外部通信電子制御ユニットによる前記送信は、前記外部通信電子制御ユニットが、当該更新用ルール情報に対するメッセージ認証コードを生成し、生成したメッセージ認証コードを付して当該更新用ルール情報を送信することにより行われる
請求項３記載の不正検知方法。
【請求項５】
前記車載ネットワークシステムでは前記複数の電子制御ユニットの通信に複数のバスが用いられ、前記車載ネットワークシステムは、互いに異なるバスに接続された複数の不正検知電子制御ユニットを備え、
前記車載ネットワークシステムは更に、前記複数のバスの間でメッセージを転送する機能を有するゲートウェイ装置を備え、
前記外部通信電子制御ユニットにより前記バスに送信された更新用ルール情報を前記ゲートウェイ装置は当該バスと異なる、前記不正検知電子制御ユニットが接続された１以上の前記バスに転送し、
前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージに係るルール情報の更新に必要な更新用ルール情報を、当該バスから受信する
請求項３記載の不正検知方法。
【請求項６】
互いに異なるバスに接続された前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納したルール情報は、自装置が接続されたバス上で送信されるメッセージのメッセージ識別子と、当該メッセージについての送信に関するルールとを対応付けた情報である
請求項５記載の不正検知方法。
【請求項７】
前記バスに接続された前記不正検知電子制御ユニットが前記メモリに格納するルール情報は、当該バス上で繰り返し送信される１以上のメッセージについて、メッセージ識別子と、当該メッセージ識別子で識別されるメッセージについての送信周期又は所定単位時間当たりの送信回数に関するルールとを対応付けた情報であり、
前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージが前記メモリに格納されたルール情報が示すルールに適合していない場合に、当該メッセージが不正であると判定する
請求項１記載の不正検知方法。
【請求項８】
前記不正検知方法では更に、
前記バスに接続された前記不正検知電子制御ユニットが、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子を、前記複数の電子制御ユニットのうち特定の電子制御ユニットへ送信する
請求項７記載の不正検知方法。
【請求項９】
前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての送信周期の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信周期の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１０】
前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての所定単位時間あたりの送信回数の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信回数の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１１】
前記不正検知方法では更に、
前記外部通信電子制御ユニットが、前記不正検知電子制御ユニットにより送信された、不正なメッセージのメッセージ識別子を含むエラーメッセージを受信し、当該メッセージ識別子を含む情報を前記外部装置に送信する
請求項１記載の不正検知方法。
【請求項１２】
１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムであって、
前記バスに接続された前記不正検知電子制御ユニットは、
当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、
前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定する判定部と、
前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、
前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える
車載ネットワークシステム。
【請求項１３】
１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットが通信に用いるバスに接続される不正検知電子制御ユニットであって、
前記バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、
前記メモリに格納されたルール情報を用いて、前記バス上で送信されたメッセージが不正か否かを判定する判定部と、
前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、
前記複数の電子制御ユニットが通信に用いるバスに接続されない外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える
不正検知電子制御ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子制御ユニットが通信を行う車載ネットワークにおいて送信された不正なフレームを検知する技術に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Electronic Control Unit）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ＩＳＯ１１８９８−１で規定されているＣＡＮ（Controller Area Network）という規格が存在する（「非特許文献１」参照）。【０００３】
ＣＡＮでは、通信路は２本のバスで構成され、バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、２本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「１」の値と、ドミナントと呼ばれる「０」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを６ｂｉｔ連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。【０００４】
またＣＡＮでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージＩＤと呼ばれるＩＤを付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたメッセージＩＤのみを受信する（つまりバスから信号を読み取る）。また、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式を採用しており、複数ノードの同時送信時にはメッセージＩＤによる調停が行われ、メッセージＩＤの値が小さいフレームが優先的に送信される。【０００５】
また、従来、異常なメッセージがＣＡＮのバス上に送信された場合にゲートウェイ装置が異常メッセージを検出して、他のバスに転送しないことで、バスの負荷の上昇を抑える技術が知られている（「特許文献１」参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３８９０４号公報
【非特許文献】
【０００７】
【非特許文献１】“ＣＡＮ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ２．０  Ｐａｒｔ  Ａ”、［ｏｎｌｉｎｅ］、ＣＡＮ  ｉｎ  Ａｕｔｏｍａｔｉｏｎ（ＣｉＡ）、［平成２６年１１月１４日検索］、インターネット（ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｃａｎ−ｃｉａ．ｏｒｇ／ｆｉｌｅａｄｍｉｎ／ｃｉａ／ｓｐｅｃｉｆｉｃａｔｉｏｎｓ／ＣＡＮ２０Ａ．ｐｄｆ）
【非特許文献２】ＲＦＣ２１０４  ＨＭＡＣ：  Ｋｅｙｅｄ−Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、車載ネットワークにおいて不正なノードがバスに接続され、不正なノードが不正にフレーム（メッセージ）を送信することで、車体を不正にコントロールしてしまう可能性があるため、その抑制のために不正なメッセージの検知が必要となる。【０００９】
そこで、本開示は、ＣＡＮプロトコル等に従って通信する車載ネットワークシステムにおいて、バス上に不正なメッセージの送信が行われたことを検知する不正検知電子制御ユニット（不正検知ＥＣＵ）を提供する。また、本開示は、不正なメッセージを検知するための不正検知方法、及び、不正検知ＥＣＵを備える車載ネットワークシステムを提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本開示の一態様に係る不正検知方法は、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、前記不正検知方法は、前記バスに接続された前記不正検知電子制御ユニットが、前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定して、不正であった場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信し、前記不正検知電子制御ユニットが、前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する不正検知方法である。【００１１】
また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムであって、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定する判定部と、前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える車載ネットワークシステムである。【００１２】
また、上記課題を解決するために本開示の一態様に係る不正検知電子制御ユニット（不正検知ＥＣＵ）は、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットが通信に用いるバスに接続される不正検知電子制御ユニットであって、前記バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、前記メモリに格納されたルール情報を用いて、前記バス上で送信されたメッセージが不正か否かを判定する判定部と、前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、前記複数の電子制御ユニットが通信に用いるバスに接続されない外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える不正検知電子制御ユニットである。
【発明の効果】
【００１３】
本開示によれば、不正なフレームを判断する基準としてのルール情報を定めて更新できるため、車載ネットワークシステムでバスに不正なノードが接続されて不正なメッセージが送信された場合にその検知が可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１に係る車載ネットワークシステムの全体構成を示す図である。
【図２】ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。
【図３】ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。
【図４】ヘッドユニットの構成図である。
【図５】受信ＩＤリストの一例を示した図である。
【図６】ゲートウェイの構成図である。
【図７】転送ルールの一例を示した図である。
【図８】実施の形態１に係るＥＣＵの構成図である。
【図９】受信ＩＤリストの一例を示した図である。
【図１０】エンジンに接続されたＥＣＵから送信されるフレームにおけるＩＤ及びデータフィールドの一例を示す図である。
【図１１】ブレーキに接続されたＥＣＵから送信されるフレームにおけるＩＤ及びデータフィールドの一例を示す図である。
【図１２】ドア開閉センサに接続されたＥＣＵから送信されるフレームにおけるＩＤ及びデータフィールドの一例を示す図である。
【図１３】窓開閉センサに接続されたＥＣＵから送信されるフレームにおけるＩＤ及びデータフィールドの一例を示す図である。
【図１４】実施の形態１に係る不正検知ＥＣＵの構成図である。
【図１５】不正検知ＥＣＵに保持される正規ＩＤリストの一例を示した図である。
【図１６】不正検知ＥＣＵに保持される正規ＩＤリストの一例を示した図である。
【図１７】メッセージＩＤ毎の不正検知カウンタの状態の一例を示す図である。
【図１８】実施の形態１における不正なフレームの検知及び実行阻止に係る動作例を示すシーケンス図である。
【図１９】実施の形態２に係る車載ネットワークシステムの全体構成を示す図である。
【図２０】実施の形態２に係る不正検知ＥＣＵの構成図である。
【図２１】フレームルールの一例を示した図である。
【図２２】実施の形態２におけるエラーメッセージの構成の一例を示す図である。
【図２３】転送ルールの一例を示す図である。
【図２４】コーナーセンサに接続されたＥＣＵから送信されるフレームにおけるＩＤ及びデータフィールドの一例を示す図である。
【図２５】受信ＩＤリストの一例を示す図である。
【図２６】実施の形態２における不正なフレームの検知及びエラーメッセージの送信に係る動作例を示すシーケンス図である（図２７に続く）。
【図２７】実施の形態２における不正なフレームの検知及びエラーメッセージの送信に係る動作例を示すシーケンス図である（図２６から続く）。
【図２８】実施の形態３に係る車載ネットワークシステムの全体構成を示す図である。
【図２９】実施の形態３に係る不正検知ＥＣＵの構成図である。
【図３０】エラーメッセージの構成の一例を示した図である。
【図３１】実施の形態３に係るヘッドユニットの構成図である。
【図３２】受信ＩＤリストの一例を示した図である。
【図３３】転送ルールの一例を示した図である。
【図３４】実施の形態３における不正なフレームの検知、エラーメッセージの送信及び警告表示等に係る動作例を示すシーケンス図である（図３５に続く）。
【図３５】実施の形態３における不正なフレームの検知、エラーメッセージの送信及び警告表示等に係る動作例を示すシーケンス図である（図３４から続く）。
【図３６】実施の形態３における更新用ルール情報の送信及びフレームルールの更新に係る動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
本開示の一態様に係る不正検知方法は、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、前記不正検知方法は、前記バスに接続された前記不正検知電子制御ユニットが、前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定して、不正であった場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信し、前記不正検知電子制御ユニットが、前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する不正検知方法である。なお、ルール情報の一例には、繰り返し送信されるメッセージについての送信の間隔に関連した情報（例えば送信周期、単位時間当たりの送信回数等の許容範囲を示す情報等）がある。これにより、不正なフレームを判断する基準としてのルール情報を定めて更新できるため、車載ネットワークシステムでバスに不正なノードが接続されて不正なメッセージが送信された場合にその検知が可能となる。また、車載ネットワークシステムにおける不正なフレームの検知に関して外部装置が管理、制御等を行い得るようになる。また、エラーメッセージを受信した車載ネットワークシステムを構成する各装置が、不正に対処する（警告表示をする、不正なメッセージを処理しないようにする等）ことが可能になる。
【００１６】
また、前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って前記バスを介して通信を行うこととしても良い。これにより、ＣＡＮプロトコルに従って通信する車載ネットワークシステムに不正な電子制御ユニット（ＥＣＵ）が接続されて不正なフレームが送信された場合にその不正を不正検知ＥＣＵが検知できるようになる。
【００１７】
また、前記車載ネットワークシステムは、前記外部装置と通信する機能を有する外部通信電子制御ユニットを備え、前記不正検知電子制御ユニットによる更新用ルール情報の前記取得は、前記外部通信電子制御ユニットが前記外部装置から受信して前記バス上に送信した更新用ルール情報を、受信することにより行われることとしても良い。これにより、車載ネットワークシステムにおいて外部装置と通信する装置と不正検知ＥＣＵとが別個の構成であっても不正なフレームを検知するためのルール情報を適切に更新できる。
【００１８】
また、前記外部装置から受信した更新用ルール情報の前記外部通信電子制御ユニットによる前記送信は、前記外部通信電子制御ユニットが、当該更新用ルール情報に対するメッセージ認証コードを生成し、生成したメッセージ認証コードを付して当該更新用ルール情報を送信することにより行われることとしても良い。これにより、不正な更新用ルール情報に基づきルール情報を更新してしまうことが防止される。
【００１９】
また、前記車載ネットワークシステムでは前記複数の電子制御ユニットの通信に複数のバスが用いられ、前記車載ネットワークシステムは、互いに異なるバスに接続された複数の不正検知電子制御ユニットを備え、前記車載ネットワークシステムは更に、前記複数のバスの間でメッセージを転送する機能を有するゲートウェイ装置を備え、前記外部通信電子制御ユニットにより前記バスに送信された更新用ルール情報を前記ゲートウェイ装置は当該バスと異なる、前記不正検知電子制御ユニットが接続された１以上の前記バスに転送し、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージに係るルール情報の更新に必要な更新用ルール情報を、当該バスから受信することとしても良い。これにより、車載ネットワークシステムが複数のバスそれぞれに不正検知ＥＣＵを接続して構成されている場合において、外部装置と通信可能な少なくとも１台の装置を車載ネットワークシステムに有するだけで、各不正検知ＥＣＵがルール情報を更新できる。
【００２０】
また、互いに異なるバスに接続された前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納したルール情報は、自装置が接続されたバス上で送信されるメッセージのメッセージ識別子と、当該メッセージについての送信に関するルールとを対応付けた情報であることとしても良い。これにより、各不正検知ＥＣＵは、自機が接続されているバス上で不正なフレーム（メッセージ）が送信された場合に検知できる。
【００２１】
また、前記バスに接続された前記不正検知電子制御ユニットが前記メモリに格納するルール情報は、当該バス上で繰り返し送信される１以上のメッセージについて、メッセージ識別子と、当該メッセージ識別子で識別されるメッセージについての送信周期又は所定単位時間当たりの送信回数に関するルールとを対応付けた情報であり、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージが前記メモリに格納されたルール情報が示すルールに適合していない場合に、当該メッセージが不正であると判定することとしても良い。これにより、定期的に送信されるメッセージと同一のメッセージ識別子（メッセージＩＤ）を有するメッセージが不正なＥＣＵにより不正に送信された場合に、不正であることが検知できるようになる。例えば、リプレイ攻撃などの異常な送信周期でのメッセージ送信を検知できるようになる。
【００２２】
また、前記不正検知方法では更に、前記バスに接続された前記不正検知電子制御ユニットが、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子を、前記複数の電子制御ユニットのうち特定の電子制御ユニットへ送信することとしても良い。これにより、不正検知ＥＣＵは、不正か否かの判断ができないメッセージについてのその判断を特定のＥＣＵ（例えばヘッドユニット等）に依頼することが可能となる。
【００２３】
また、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての送信周期の計測結果を前記特定の電子制御ユニットへ送信し、前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信周期の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定することとしても良い。これにより、不正検知ＥＣＵは、メッセージの送信周期を計測した上で、そのメッセージについて不正か否かの判断を特定のＥＣＵに依頼することが可能となる。
【００２４】
また、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての所定単位時間あたりの送信回数の計測結果を前記特定の電子制御ユニットへ送信し、前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信回数の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定することとしても良い。これにより、不正検知ＥＣＵは、メッセージの送信回数を計測した上で、そのメッセージについて不正か否かの判断を特定のＥＣＵに依頼することが可能となる。
【００２５】
また、前記不正検知方法では更に、前記外部通信電子制御ユニットが、前記不正検知電子制御ユニットにより送信された、不正なメッセージのメッセージ識別子を含むエラーメッセージを受信し、当該メッセージ識別子を含む情報を前記外部装置に送信することとしても良い。これにより、車載ネットワークシステムにおいて検知された不正なフレーム（メッセージ）に関する情報を、外部装置において収集することが可能になる。このため、外部装置は、車載ネットワークシステムの状況を管理し得るようになる。
【００２６】
また、本開示の一態様に係る車載ネットワークシステムは、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニット及び前記バスに接続された不正検知電子制御ユニットを備える車載ネットワークシステムであって、前記バスに接続された前記不正検知電子制御ユニットは、当該バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、前記メモリに格納されたルール情報を用いて、当該バス上で送信されたメッセージが不正か否かを判定する判定部と、前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、前記車載ネットワークシステムの外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える車載ネットワークシステムである。これにより、不正なフレームを判断する基準としてのルール情報を定めて更新できるため、車載ネットワークシステムでバスに不正なノードが接続されて不正なメッセージが送信された場合にその検知が可能となる。
【００２７】
また、本開示の一態様に係る不正検知電子制御ユニット（不正検知ＥＣＵ）は、１以上のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットが通信に用いるバスに接続される不正検知電子制御ユニットであって、前記バス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、前記メモリに格納されたルール情報を用いて、前記バス上で送信されたメッセージが不正か否かを判定する判定部と、前記判定部によりメッセージが不正であると判定された場合には不正な当該メッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、前記複数の電子制御ユニットが通信に用いるバスに接続されない外部の外部装置から送信された更新用ルール情報を取得して、当該更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備える不正検知電子制御ユニットである。これにより、外部装置により不正なフレームを判断する基準としてのルール情報を更新でき、ルール情報に基づいて、車載ネットワークシステムで不正なメッセージが送信された場合にその検知が可能となる。
【００２８】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【００２９】
以下、実施の形態に係る車載ネットワークシステム、不正検知ＥＣＵ等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００３０】
（実施の形態１）
以下、本開示の実施の形態として、メッセージＩＤを用いて他のノード（ＥＣＵ）において不正なフレームに基づく処理が実行されることを阻止するための不正対処方法を実現する不正検知ＥＣＵを含む車載ネットワークシステム１０について図面を用いて説明する。
【００３１】
［１．１  車載ネットワークシステム１０の全体構成］
図１は、実施の形態１に係る車載ネットワークシステム１０の全体構成を示す図である。車載ネットワークシステム１０は、ＣＡＮプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム１０は、バス５００ａ、５００ｂと、不正検知ＥＣＵ１００ａ、１００ｂ、ヘッドユニット２００、ゲートウェイ３００、及び、各種機器に接続されたＥＣＵ４００ａ〜４００ｄ等のＥＣＵといったバスに接続された各ノードとを含んで構成される。なお、図１では省略しているものの、車載ネットワークシステム１０にはＥＣＵ４００ａ〜４００ｄ以外にもいくつものＥＣＵが含まれ得るが、ここでは、便宜上ＥＣＵ４００ａ〜４００ｄに注目して説明を行う。ＥＣＵは、例えば、プロセッサ（マイクロプロセッサ）、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行される制御プログラム（コンピュータプログラム）を記憶することができる。例えばプロセッサが、制御プログラム（コンピュータプログラム）に従って動作することにより、ＥＣＵは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ここでは、バス５００ａ、５００ｂには不正なフレームを送信する不正ＥＣＵが接続されている可能性があることを前提として説明する。
【００３２】
不正検知ＥＣＵ１００ａ、１００ｂは、それぞれバス５００ａ、バス５００ｂに接続され、ＥＣＵ４００ａ〜４００ｄ等により送信されたフレームが不正であるかどうかを判定し、不正であればエラーフレームを送信する機能を有するＥＣＵである。
【００３３】
ＥＣＵ４００ａ〜４００ｄは、いずれかのバスと接続され、また、それぞれエンジン４０１、ブレーキ４０２、ドア開閉センサ４０３、窓開閉センサ４０４に接続されている。ＥＣＵ４００ａ〜４００ｄのそれぞれは、接続されている機器（エンジン４０１等）の状態を取得し、定期的に状態を表すフレーム（後述するデータフレーム）等をネットワーク（つまりバス）に送信している。
【００３４】
ゲートウェイ３００は、不正検知ＥＣＵ１００ａ、ＥＣＵ４００ａ及びＥＣＵ４００ｂがつながるバス５００ａと、不正検知ＥＣＵ１００ｂ、ＥＣＵ４００ｃ及びＥＣＵ４００ｄがつながるバス５００ｂと、ヘッドユニット２００がつながるバス５００ｃとに接続しており、それぞれのバスから受信したフレームを他のバスに転送する機能を有する。また受信したフレームを転送するかしないかを接続されたバス間毎に切り替えることも可能である。ゲートウェイ３００も一種のＥＣＵである。
【００３５】
ヘッドユニット２００は、フレームを受信する機能を持ち、ＥＣＵ４００ａ〜４００ｄから送信されるフレームを受信し、各種状態をディスプレイ（図示しない）に表示して、ユーザに提示する機能を持つ。ヘッドユニット２００も一種のＥＣＵである。
【００３６】
この車載ネットワークシステム１０においてはＣＡＮプロトコルに従って各ＥＣＵがフレームの授受を行う。ＣＡＮプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。説明の便宜上、まずはデータフレーム及びエラーフレームを中心に説明する。
【００３７】
［１．２  データフレームフォーマット］
以下、ＣＡＮプロトコルに従ったネットワークで用いられるフレームの１つであるデータフレームについて説明する。
【００３８】
図２は、ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、ＣＡＮプロトコルで規定される標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、ＳＯＦ（Start Of Frame）、ＩＤフィールド、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビット「ｒ」、ＤＬＣ（Data Length Code）、データフィールド、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ「ＤＥＬ」、ＡＣＫ（Acknowledgement）スロット、ＡＣＫデリミタ「ＤＥＬ」、及び、ＥＯＦ（End Of Frame）の各フィールドで構成される。
【００３９】
ＳＯＦは、１ｂｉｔのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ＳＯＦによりドミナントへ変更することでフレームの送信開始を通知する。
【００４０】
ＩＤフィールドは、１１ｂｉｔで構成される、データの種類を示す値であるＩＤ（メッセージＩＤ）を格納するフィールドである。複数のノードが同時に送信を開始した場合、このＩＤフィールドで通信調停を行うために、ＩＤが小さい値を持つフレームが高い優先度となるよう設計されている。
【００４１】
ＲＴＲは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント１ｂｉｔで構成される。
【００４２】
ＩＤＥと「ｒ」とは、両方ドミナント１ｂｉｔで構成される。
【００４３】
ＤＬＣは、４ｂｉｔで構成され、データフィールドの長さを示す値である。なお、ＩＤＥ、「ｒ」及びＤＬＣを合わせてコントロールフィールドと称する。
【００４４】
データフィールドは、最大６４ｂｉｔで構成される送信するデータの内容を示す値である。８ｂｉｔ毎に長さを調整できる。送られるデータの仕様については、ＣＡＮプロトコルで規定されておらず、車載ネットワークシステム１０において定められる。従って、車種、製造者（製造メーカ）等に依存した仕様となる。
【００４５】
ＣＲＣシーケンスは、１５ｂｉｔで構成される。ＳＯＦ、ＩＤフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【００４６】
ＣＲＣデリミタは、１ｂｉｔのレセシブで構成されるＣＲＣシーケンスの終了を表す区切り記号である。なお、ＣＲＣシーケンス及びＣＲＣデリミタを合わせてＣＲＣフィールドと称する。
【００４７】
ＡＣＫスロットは、１ｂｉｔで構成される。送信ノードはＡＣＫスロットをレセシブにして送信を行う。受信ノードはＣＲＣシーケンスまで正常に受信ができていればＡＣＫスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にＡＣＫスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【００４８】
ＡＣＫデリミタは、１ｂｉｔのレセシブで構成されるＡＣＫの終了を表す区切り記号である。
【００４９】
ＥＯＦは、７ｂｉｔのレセシブで構成されており、データフレームの終了を示す。
【００５０】
［１．３  エラーフレームフォーマット］
図３は、ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ（プライマリ）と、エラーフラグ（セカンダリ）と、エラーデリミタとから構成される。
【００５１】
エラーフラグ（プライマリ）は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために６ｂｉｔのドミナントを連続で送信する。この送信は、ＣＡＮプロトコルにおけるビットスタッフィングルール（連続して同じ値を６ｂｉｔ以上送信しない）に違反し、他のノードからのエラーフレーム（セカンダリ）の送信を引き起こす。
【００５２】
エラーフラグ（セカンダリ）は、エラーの発生を他のノードに知らせるために使用される連続した６ビットのドミナントで構成される。エラーフラグ（プライマリ）を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ（セカンダリ）を送信することになる。
【００５３】
エラーデリミタ「ＤＥＬ」は、８ｂｉｔの連続したレセシブであり、エラーフレームの終了を示す。
【００５４】
［１．４  ヘッドユニット２００の構成］
ヘッドユニット２００は、例えば、自動車のインパネ（インストルメントパネル）等に設けられ、運転者に視認されるための情報を表示する液晶ディスプレイ（ＬＣＤ：liquid crystal display）等の表示装置、運転者の操作を受け付ける入力手段等を備える一種のＥＣＵである。
【００５５】
図４は、ヘッドユニット２００の構成図である。ヘッドユニット２００は、フレーム送受信部２７０と、フレーム解釈部２６０と、受信ＩＤ判断部２４０と、受信ＩＤリスト保持部２５０と、フレーム処理部２２０と、表示制御部２１０と、フレーム生成部２３０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ヘッドユニット２００における通信回路、ＬＣＤ、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【００５６】
フレーム送受信部２７０は、バス５００ｃに対して、ＣＡＮプロトコルに従ったフレームを送受信する。バス５００ｃからフレームを１ｂｉｔずつ受信し、フレーム解釈部２６０に転送する。また、フレーム生成部２３０より通知を受けたフレームの内容をバス５００ｃに１ｂｉｔずつ送信する。
【００５７】
フレーム解釈部２６０は、フレーム送受信部２７０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレーム解釈部２６０は、ＩＤフィールドと判断した値は受信ＩＤ判断部２４０へ転送する。フレーム解釈部２６０は、受信ＩＤ判断部２４０から通知される判定結果に応じて、ＩＤフィールドの値と、ＩＤフィールド以降に現れるデータフィールドとを、フレーム処理部２２０へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する（つまりそのフレームとしての解釈を中止する）かを決定する。また、フレーム解釈部２６０は、例えば、ＣＲＣの値が合わなかったり、ドミナント固定とされている項目がレセシブだったりする等、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部２３０へ通知する。また、フレーム解釈部２６０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。例えばデータフレームの途中からエラーフレームと解釈された場合においては、そのデータフレームの解釈は中止され、そのデータフレームに応じて特段の処理を行うことがなくなる。
【００５８】
受信ＩＤ判断部２４０は、フレーム解釈部２６０から通知されるＩＤフィールドの値を受け取り、受信ＩＤリスト保持部２５０が保持しているメッセージＩＤのリストに従い、そのＩＤフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ＩＤ判断部２４０は、フレーム解釈部２６０へ通知する。
【００５９】
受信ＩＤリスト保持部２５０は、ヘッドユニット２００が受信するＩＤ（メッセージＩＤ）のリストである受信ＩＤリストを保持する。図５は、受信ＩＤリストの一例を示した図である。ヘッドユニット２００は、エンジン４０１に接続されたＥＣＵ４００ａからメッセージＩＤが「１」であるフレーム（メッセージ）を受信し、ブレーキ４０２に接続されたＥＣＵ４００ｂからメッセージＩＤが「２」であるフレームを受信し、ドア開閉センサ４０３に接続されたＥＣＵ４００ｃからメッセージＩＤが「３」であるフレームを受信し、窓開閉センサ４０４に接続されたＥＣＵ４００ｄからメッセージＩＤが「４」であるフレームを受信する。
【００６０】
フレーム処理部２２０は、受信したフレームの内容（例えばメッセージＩＤ及びデータフィールドの内容）に基づいて、例えばＬＣＤに表示されるべき画像を形成して、表示制御部２１０に通知する。なお、フレーム処理部２２０は、受信したデータフィールドの内容を保持し、入力手段を通じて受け付けた運転者による操作に応じて、ＬＣＤに表示されるべき画像（例えば車速表示用の画像、窓開閉状態表示用の画像等）を選択して通知しても良い。
【００６１】
表示制御部２１０は、フレーム処理部２２０より通知を受けた内容をＬＣＤ等に表示する。
【００６２】
フレーム生成部２３０は、フレーム解釈部２６０からのエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部２７０へ通知して送信させる。
【００６３】
［１．５  受信ＩＤリスト例１］
図５は、ヘッドユニット２００、ゲートウェイ３００、ＥＣＵ４００ｃ及びＥＣＵ４００ｄのそれぞれにおいて保持される受信ＩＤリストの一例を示す図である。同図に例示する受信ＩＤリストは、ＩＤ（メッセージＩＤ）の値が「１」、「２」、「３」及び「４」のいずれかであるメッセージＩＤを含むフレームを選択的に受信して処理するために用いられる。例えば、ヘッドユニット２００の受信ＩＤリスト保持部２５０に図５の受信ＩＤリストが保持されていると、メッセージＩＤが「１」、「２」、「３」及び「４」のいずれでもないフレームについては、フレーム解釈部２６０でのＩＤフィールド以後のフレームの解釈が中止される。
【００６４】
［１．６  ゲートウェイ３００の構成］
図６は、ゲートウェイ３００の構成図である。ゲートウェイ３００は、フレーム送受信部３６０と、フレーム解釈部３５０と、受信ＩＤ判断部３３０と、受信ＩＤリスト保持部３４０と、フレーム生成部３２０と、転送処理部３１０と、転送ルール保持部３７０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ゲートウェイ３００における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【００６５】
フレーム送受信部３６０は、バス５００ａ、５００ｂ、５００ｃそれぞれに対して、ＣＡＮプロトコルに従ったフレームを送受信する。バスからフレームを１ｂｉｔずつ受信し、フレーム解釈部３５０に転送する。また、フレーム生成部３２０より通知を受けた転送先のバスを示すバス情報及びフレームに基づいて、そのフレームの内容をバス５００ａ、５００ｂ、５００ｃに１ｂｉｔずつ送信する。
【００６６】
フレーム解釈部３５０は、フレーム送受信部３６０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。ＩＤフィールドと判断した値は受信ＩＤ判断部３３０へ転送する。フレーム解釈部３５０は、受信ＩＤ判断部３３０から通知される判定結果に応じて、ＩＤフィールドの値と、ＩＤフィールド以降に現れるデータフィールド（データ）とを、転送処理部３１０へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する（つまりそのフレームとしての解釈を中止する）かを決定する。また、フレーム解釈部３５０は、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部３２０へ通知する。また、フレーム解釈部３５０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【００６７】
受信ＩＤ判断部３３０は、フレーム解釈部３５０から通知されるＩＤフィールドの値を受け取り、受信ＩＤリスト保持部３４０が保持しているメッセージＩＤのリストに従い、そのＩＤフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ＩＤ判断部３３０は、フレーム解釈部３５０へ通知する。
【００６８】
受信ＩＤリスト保持部３４０は、ゲートウェイ３００が受信するＩＤ（メッセージＩＤ）のリストである受信ＩＤリスト（図５参照）を保持する。
【００６９】
転送処理部３１０は、転送ルール保持部３７０が保持する転送ルールに従って、受信したフレームのメッセージＩＤに応じて、転送するバスを決定し、転送するバスを示すバス情報とフレーム解釈部３５０より通知されたメッセージＩＤとデータとをフレーム生成部３２０へ通知する。なお、ゲートウェイ３００は、あるバスから受信されたエラーフレームについては他のバスに転送しない。
【００７０】
転送ルール保持部３７０は、バス毎のフレームの転送についてのルールを表す情報である転送ルールを保持する。図７は、転送ルールの一例を示した図である。
【００７１】
フレーム生成部３２０は、フレーム解釈部３５０から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部３６０へ通知して送信させる。また、フレーム生成部３２０は、転送処理部３１０より通知されたメッセージＩＤとデータとを使ってフレームを構成し、フレーム及びバス情報をフレーム送受信部３６０へ通知する。
【００７２】
［１．７  転送ルール例］
図７は、ゲートウェイ３００が保有する転送ルールの一例を示す。この転送ルールは、転送元のバスと転送先のバスと転送対象のＩＤ（メッセージＩＤ）とを対応付けている。図７中の「＊」はメッセージＩＤにかかわらずフレームの転送がなされることを表している。また、同図中の「−」は転送対象のフレームがないことを示す。同図の例は、バス５００ａから受信するフレームはメッセージＩＤにかかわらず、バス５００ｂ及びバス５００ｃに転送するように設定されていることを示している。また、バス５００ｂから受信するフレームのうち、バス５００ｃには全てのフレームが転送されるが、バス５００ａにはメッセージＩＤが「３」であるフレームのみが転送されるように設定されていることを示している。また、バス５００ｃから受信されるフレームは、バス５００ａにもバス５００ｂにも転送されないように設定されていることを示している。
【００７３】
［１．８  ＥＣＵ４００ａの構成］
図８は、ＥＣＵ４００ａの構成図である。ＥＣＵ４００ａは、フレーム送受信部４６０と、フレーム解釈部４５０と、受信ＩＤ判断部４３０と、受信ＩＤリスト保持部４４０と、フレーム処理部４１０と、フレーム生成部４２０と、データ取得部４７０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ＥＣＵ４００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【００７４】
フレーム送受信部４６０は、バス５００ａに対して、ＣＡＮプロトコルに従ったフレームを送受信する。バス５００ａからフレームを１ｂｉｔずつ受信し、フレーム解釈部４５０に転送する。また、フレーム生成部４２０より通知を受けたフレームの内容をバス５００ａに送信する。
【００７５】
フレーム解釈部４５０は、フレーム送受信部４６０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。ＩＤフィールドと判断した値は受信ＩＤ判断部４３０へ転送する。フレーム解釈部４５０は、受信ＩＤ判断部４３０から通知される判定結果に応じて、ＩＤフィールドの値と、ＩＤフィールド以降に現れるデータフィールドとを、フレーム処理部４１０へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する（つまりそのフレームとしての解釈を中止する）かを決定する。また、フレーム解釈部４５０は、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部４２０へ通知する。また、フレーム解釈部４５０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【００７６】
受信ＩＤ判断部４３０は、フレーム解釈部４５０から通知されるＩＤフィールドの値を受け取り、受信ＩＤリスト保持部４４０が保持しているメッセージＩＤのリストに従い、そのＩＤフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ＩＤ判断部４３０は、フレーム解釈部４５０へ通知する。
【００７７】
受信ＩＤリスト保持部４４０は、ＥＣＵ４００ａが受信するＩＤ（メッセージＩＤ）のリストである受信ＩＤリストを保持する。図９は、受信ＩＤリストの一例を示した図である。
【００７８】
フレーム処理部４１０は、受信したフレームのデータに応じてＥＣＵ毎に異なる機能に係る処理を行う。例えば、エンジン４０１に接続されたＥＣＵ４００ａは、時速が３０ｋｍを超えた状態でドアが開いている状態だと、アラーム音を鳴らす機能を備える。ＥＣＵ４００ａは、例えばアラーム音を鳴らすためのスピーカ等を有している。そして、ＥＣＵ４００ａのフレーム処理部４１０は、他のＥＣＵから受信したデータ（例えばドアの状態を示す情報）を管理し、エンジン４０１から取得された時速に基づいて一定条件下でアラーム音を鳴らす処理等を行う。
【００７９】
データ取得部４７０は、ＥＣＵにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部４２０に通知する。
【００８０】
フレーム生成部４２０は、フレーム解釈部４５０から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部４６０へ通知して送信させる。また、フレーム生成部４２０は、データ取得部４７０より通知されたデータの値に対して、予め定められたメッセージＩＤをつけてフレームを構成し、フレーム送受信部４６０へ通知する。
【００８１】
なお、ＥＣＵ４００ｂ〜４００ｄも、上述したＥＣＵ４００ａと基本的に同様の構成を備える。但し、受信ＩＤリスト保持部４４０に保持される受信ＩＤリストはＥＣＵ毎に異なる内容となり得る。ＥＣＵ４００ｂは図９に例示する受信ＩＤリストを保持し、ＥＣＵ４００ｃ及びＥＣＵ４００ｄは図５に例示する受信ＩＤリストを保持する。また、フレーム処理部４１０の処理内容は、ＥＣＵ毎に異なる。例えば、ＥＣＵ４００ｃにおけるフレーム処理部４１０の処理内容は、ブレーキがかかっていない状況でドアが開くとアラーム音を鳴らす機能に係る処理を含む。例えば、ＥＣＵ４００ｂ及びＥＣＵ４００ｄにおけるフレーム処理部４１０では特段の処理を行わない。なお、各ＥＣＵは、ここで例示した以外の機能を備えていても良い。なお、ＥＣＵ４００ａ〜４００ｄのそれぞれが送信するフレームの内容については後に図１０〜図１３を用いて説明する。
【００８２】
［１．９  受信ＩＤリスト例２］
図９は、ＥＣＵ４００ａ及びＥＣＵ４００ｂのそれぞれにおいて保持される受信ＩＤリストの一例を示す図である。同図に例示する受信ＩＤリストは、ＩＤ（メッセージＩＤ）の値が「１」、「２」及び「３」のいずれかであるメッセージＩＤを含むフレームを選択的に受信して処理するために用いられる。例えば、ＥＣＵ４００ａの受信ＩＤリスト保持部４４０に図９の受信ＩＤリストが保持されていると、メッセージＩＤが「１」、「２」及び「３」のいずれでもないフレームについては、フレーム解釈部４５０でのＩＤフィールド以後のフレームの解釈が中止される。
【００８３】
［１．１０  エンジンに係るＥＣＵ４００ａの送信フレーム例］
図１０は、エンジン４０１に接続されたＥＣＵ４００ａから送信されるフレームにおけるＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。ＥＣＵ４００ａが送信するフレームのメッセージＩＤは「１」である。データは、時速（ｋｍ／時）を表し、最低０（ｋｍ／時）〜最高１８０（ｋｍ／時）までの範囲の値を取り、データ長は１Ｂｙｔｅである。図１０の上行から下行へと、ＥＣＵ４００ａから逐次送信される各フレームに対応する各メッセージＩＤ及びデータを例示しており、０ｋｍ／時から１ｋｍ／時ずつ加速されている様子を表している。
【００８４】
［１．１１  ブレーキに係るＥＣＵ４００ｂの送信フレーム例］
図１１は、ブレーキ４０２に接続されたＥＣＵ４００ｂから送信されるフレームにおけるＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。ＥＣＵ４００ｂが送信するフレームのメッセージＩＤは「２」である。データは、ブレーキのかかり具合を割合（％）で表し、データ長は１Ｂｙｔｅである。この割合は、ブレーキを全くかけていない状態を０（％）、ブレーキを最大限かけている状態を１００（％）としたものである。図１１の上行から下行へと、ＥＣＵ４００ｂから逐次送信される各フレームに対応する各メッセージＩＤ及びデータを例示しており、１００％から徐々にブレーキを弱めている様子を表している。
【００８５】
［１．１２  ドア開閉センサに係るＥＣＵ４００ｃの送信フレーム例］
図１２は、ドア開閉センサ４０３に接続されたＥＣＵ４００ｃから送信されるフレームにおけるＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。ＥＣＵ４００ｃが送信するフレームのメッセージＩＤは「３」である。データは、ドアの開閉状態を表し、データ長は１Ｂｙｔｅである。データの値は、ドアが開いている状態が「１」、ドアが閉まっている状態が「０」である。図１２の上行から下行へと、ＥＣＵ４００ｃから逐次送信される各フレームに対応する各メッセージＩＤ及びデータを例示しており、ドアが開いている状態から次第に閉められた状態へと移った様子を表している。
【００８６】
［１．１３  窓開閉センサに係るＥＣＵ４００ｄの送信フレーム例］
図１３は、窓開閉センサ４０４に接続されたＥＣＵ４００ｄから送信されるフレームにおけるＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。ＥＣＵ４００ｄが送信するフレームのメッセージＩＤは「４」である。データは、窓の開閉状態を割合（％）で表し、データ長は１Ｂｙｔｅである。この割合は、窓が完全に閉まっている状態を０（％）、窓が全開の状態を１００（％）としたものである。図１３の上行から下行へと、ＥＣＵ４００ｄから逐次送信される各フレームに対応する各メッセージＩＤ及びデータを例示しており、窓が閉まっている状態から徐々に開いていく様子を表している。
【００８７】
［１．１４  不正検知ＥＣＵ１００ａの構成］
図１４は、不正検知ＥＣＵ１００ａの構成図である。不正検知ＥＣＵ１００ａは、フレーム送受信部１６０と、フレーム解釈部１５０と、不正フレーム検知部１３０と、正規ＩＤリスト保持部１２０と、不正検知カウンタ保持部１１０と、フレーム生成部１４０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ＥＣＵ１００ａにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、不正検知ＥＣＵ１００ｂも基本的に同様の構成を備えるが、正規ＩＤリスト保持部１２０が保持するリスト情報（正規ＩＤリスト）の内容が不正検知ＥＣＵ１００ａと不正検知ＥＣＵ１００ｂとでは異なる。
【００８８】
フレーム送受信部１６０は、バス５００ａに対して、ＣＡＮプロトコルに従ったフレームを送受信する。即ち、フレーム送受信部１６０は、バス上でのフレームの送信が開始された場合においてフレームを受信する言わば受信部として働き、また、バスにエラーフレーム等を送信する言わば送信部として働く。即ち、フレーム送受信部１６０は、バス５００ａからフレームを１ｂｉｔずつ受信し、フレーム解釈部１５０に転送する。また、フレーム生成部１４０より通知を受けたフレームの内容をバス５００ａに送信する。
【００８９】
フレーム解釈部１５０は、フレーム送受信部１６０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。ＩＤフィールドと判断した値は、不正フレーム検知部１３０へ転送する。また、フレーム解釈部１５０は、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部１４０へ通知する。また、フレーム解釈部１５０は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【００９０】
不正フレーム検知部１３０は、フレーム解釈部１５０から通知されるＩＤフィールドの値を受け取り、ＩＤフィールドの値が不正を示す所定条件に該当するか否かを判定する。即ち不正フレーム検知部１３０は、受信されたフレームにおける所定フィールドの内容が不正を示す所定条件に該当するか否かを判定する言わば判定部として機能する。この不正を示す所定条件は、ＩＤフィールドの値が、正規ＩＤリスト保持部１２０が保持しているメッセージＩＤのリストに載っていないという条件である。即ち、正規ＩＤリスト保持部１２０が保持しているメッセージＩＤのリストに従い、通知されたＩＤフィールドの値（メッセージＩＤ）が不正かどうかの判定を行う。このリスト（つまり後述する正規ＩＤリスト）に載っていないメッセージＩＤを受信した場合は、不正の検知回数をインクリメントするために、受信したメッセージＩＤを不正検知カウンタ保持部１１０へ通知する。また、正規ＩＤリストに載っていないメッセージＩＤを受信した場合は、エラーフレームを送信するように、フレーム生成部１４０へ通知する。また、不正の検知回数が一定回数以上に達した場合に、不正検知カウンタ保持部１１０より通知を受け、該当するメッセージＩＤを発行する不正なＥＣＵが存在することを示すエラー表示メッセージ（フレーム）を送信するようフレーム生成部１４０へ通知する。エラー表示メッセージのメッセージＩＤは予め定められており、このメッセージＩＤのメッセージ（フレーム）をヘッドユニット２００が受信してエラー表示を行うようになっている。このエラー表示メッセージについては便宜上説明を省略していたが、エラー表示メッセージのメッセージＩＤは、ゲートウェイ３００及びヘッドユニット２００が保持する受信ＩＤリスト、及び、後述する正規ＩＤリストに掲載される。但し、図１５、図１６ではエラー表示メッセージについてのメッセージＩＤを省略している。
【００９１】
正規ＩＤリスト保持部１２０は、車載ネットワークシステム１０においてバス５００ａ上を送信されることとなるフレームに含まれるメッセージＩＤを予め規定したリストである正規ＩＤリストを保持する（図１５、図１６参照）。
【００９２】
不正検知カウンタ保持部１１０は、メッセージＩＤ毎に検知回数をカウントするための不正検知カウンタを保持しており、不正フレーム検知部１３０からメッセージＩＤが通知されると、該当する不正検知カウンタをインクリメント（増加）する。不正検知カウンタが一定数（所定回数）以上に達した場合、不正フレーム検知部１３０に一定数を超えたことを通知する。ここでいう一定数（所定回数）の一例は、ＣＡＮプロトコルにおける送信エラーカウンタの取り扱い規則に対応して定められた値である。ＣＡＮプロトコルでは、ＥＣＵがエラーフレームによって送信を阻止する度に送信エラーカウンタが８カウントアップする。そして、この結果として送信ノードにおける送信エラーカウンタが１２８迄カウントアップすれば送信ノードはパッシブ状態に遷移してフレーム送信をしなくなるように規定されている。従って、１２８／８（＝１６）より大きな１７をこの一定数として定めておけば、ＣＡＮプロトコルにおける送信エラーカウンタに係る規則を無視した送信ノード（不正なＥＣＵ）の存在が推定される場合に不正検知ＥＣＵ１００ａからエラー表示メッセージが送信されるようになる。なお、不正なフレームを送信する、不正なＥＣＵが、ＣＡＮプロトコルにおける送信エラーカウンタに係る規則に従うものであった場合には、不正検知ＥＣＵ１００ａによるエラーフレームの送信によって、不正なＥＣＵの送信エラーカウンタは８インクリメントされる。この場合、不正なフレームの送信を繰り返すことで不正なＥＣＵの送信エラーカウンタが１２８まで上昇すると、不正なＥＣＵがパッシブ状態に遷移し、不正なＥＣＵによる不正なフレームの送信が停止することになる。
【００９３】
フレーム生成部１４０は、フレーム解釈部１５０から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部１６０へ通知して送信させる。また、フレーム生成部１４０は、不正フレーム検知部１３０から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部１６０へ通知して送信させる。更にフレーム生成部１４０は、不正フレーム検知部１３０から通知されたエラー表示メッセージの送信を指示する通知に従い、エラー表示メッセージをフレーム送受信部１６０へ通知して送信させる。
【００９４】
［１．１５  不正検知ＥＣＵ１００ａの正規ＩＤリスト例］
図１５は、不正検知ＥＣＵ１００ａの正規ＩＤリスト保持部１２０に保持される正規ＩＤリストの一例を示した図である。同図に例示する正規ＩＤリストは、ＩＤ（メッセージＩＤ）の値が「１」、「２」及び「３」のいずれかであるメッセージＩＤを含むフレームがバス５００ａに流れ得ることを示している。
【００９５】
［１．１６  不正検知ＥＣＵ１００ｂの正規ＩＤリスト例］
図１６は、不正検知ＥＣＵ１００ｂの正規ＩＤリスト保持部１２０に保持される正規ＩＤリストの一例を示した図である。同図に例示する正規ＩＤリストは、ＩＤ（メッセージＩＤ）の値が「１」、「２」、「３」及び「４」のいずれかであるメッセージＩＤを含むフレームがバス５００ｂに流れ得ることを示している。
【００９６】
［１．１７  不正検知カウンタ保存リスト例］
図１７は、メッセージＩＤ毎の不正検知カウンタの状態の一例を示す図である。同図の例は、メッセージＩＤが「４」の不正検知カウンタだけが、不正を一度検知しており、その他のメッセージＩＤでは一度も検知していないことを示す。即ち、この例はバス５００ａに本来流れるはずがないメッセージＩＤ「４」のメッセージ（フレーム）が一度送信されたことを不正検知ＥＣＵ１００ａが検知し、該当するメッセージＩＤ「４」に対応する不正検知カウンタを１インクリメントした場合を示している。
【００９７】
［１．１８  不正フレームの検知に係るシーケンス］
以下、上述の構成を備える車載ネットワークシステム１０のバス５００ａに不正なＥＣＵが接続された場合について、バス５００ａに接続された不正検知ＥＣＵ１００ａ、ＥＣＵ４００ａ、ＥＣＵ４００ｂ、ゲートウェイ３００等の動作について説明する。
【００９８】
図１８は、不正検知ＥＣＵ１００ａが不正なフレーム（メッセージ）を検知して、他のＥＣＵによりその不正なフレームに対応した処理がなされることを阻止する動作例を示すシーケンス図である。同図では、不正なＥＣＵが、バス５００ａにメッセージＩＤが「４」でデータフィールド（データ）が「２５５（０ｘＦＦ）」となるデータフレームを送信する場合の例を示している。ここでの各シーケンスは、各種装置における各処理手順（ステップ）を意味する。
【００９９】
まず、不正なＥＣＵは、メッセージＩＤが「４」、データが「２５５（０ｘＦＦ）」となるデータフレームの送信を開始する（シーケンスＳ１００１）。フレームを構成する各ビットの値は、上述したデータフレームフォーマットに従ってＳＯＦ、ＩＤフィールド（メッセージＩＤ）といった順に逐次バス５００ａ上に送出される。
【０１００】
不正なＥＣＵがＩＤフィールド（メッセージＩＤ）までをバス５００ａに送出し終えたときにおいて、不正検知ＥＣＵ１００ａ、ＥＣＵ４００ａ、ＥＣＵ４００ｂ及びゲートウェイ３００はそれぞれメッセージＩＤを受信する（シーケンスＳ１００２）。
【０１０１】
ＥＣＵ４００ａ、ＥＣＵ４００ｂ及びゲートウェイ３００はそれぞれ、保持している受信ＩＤリストを用いてメッセージＩＤをチェックする（シーケンスＳ１００３）。このとき、不正検知ＥＣＵ１００ａは、保持している正規ＩＤリストを用いてメッセージＩＤをチェックする（シーケンスＳ１００４）。即ち、不正検知ＥＣＵ１００ａは、送信されたフレームにおけるＩＤフィールドの内容が、不正を示す所定条件（正規ＩＤリストに掲載されていないこと）に該当するか否かを判定する。
【０１０２】
シーケンスＳ１００３において、ＥＣＵ４００ａ及びＥＣＵ４００ｂは、それぞれが保持している受信ＩＤリストに「４」が含まれていないため（図９参照）、受信を終了する。つまりこれ以上不正なＥＣＵが送信を継続するフレームの解釈をせずフレームに対応した処理を行わない。また、シーケンスＳ１００３においてゲートウェイ３００は、保持している受信ＩＤリストに「４」が含まれているため（図５参照）、受信を継続する。また、シーケンスＳ１００４において不正検知ＥＣＵ１００ａは、保持している正規ＩＤリストに「４」が含まれていないため、不正なメッセージＩＤであると判断して、続いてエラーフレームの発行準備を開始する（シーケンスＳ１００５）。
【０１０３】
シーケンスＳ１００３に続いて、ゲートウェイ３００はフレームの受信を継続する。例えば、不正検知ＥＣＵ１００ａがエラーフレームの発行準備をしている間に、不正なＥＣＵからはバス５００ａ上にＩＤフィールドより後の部分であるＲＴＲ、コントロールフィールド（ＩＤＥ、ｒ、ＤＬＣ）が逐次送出され、続いてデータフィールドが１ビットずつ逐次送出される。ゲートウェイ３００はこのＲＴＲ、コントロールフィールド（ＩＤＥ、ｒ、ＤＬＣ）を受信し、続いてデータフィールドの受信を開始する（シーケンスＳ１００６）。
【０１０４】
次にエラーフレームの発行準備が終わって、不正検知ＥＣＵ１００ａがエラーフレームを送信する（シーケンスＳ１００７）。このエラーフレームの送信は、不正なフレームの最後尾が送信される前（例えばＣＲＣシーケンスの最後尾が送信される前等）に行われる。この動作例においては、データフィールドの途中で行われる。このエラーフレームの送信が開始されることによりバス５００ａでは、不正なＥＣＵから送信中のフレームのデータフィールドの途中部分がエラーフレーム（優先されるドミナントのビット列）により上書きされることになる。
【０１０５】
シーケンスＳ１００７において送信されたエラーフレームを受信したゲートウェイ３００は、データフィールドの受信途中で不正なＥＣＵが送信していたフレームの受信を中止する（シーケンスＳ１００８）。つまり、ゲートウェイ３００は、不正なＥＣＵからのデータフィールドがエラーフレームで上書きされており、エラーフレームを検出するので、不正なＥＣＵが送信していたフレームの受信を継続しない。
【０１０６】
不正検知ＥＣＵ１００ａは、エラーフレームを送信する対象となったデータフレームのメッセージＩＤ「４」に対応する不正検知カウンタをインクリメントする（シーケンスＳ１００９）。
【０１０７】
インクリメントした結果としてメッセージＩＤ「４」に対応する不正検知カウンタが１７以上となった場合、不正検知ＥＣＵ１００ａは、ヘッドユニット２００に受信されるようにエラー表示を通知するフレーム（エラー表示メッセージ）を送信する（シーケンスＳ１０１０）。この結果としてヘッドユニット２００のフレーム処理部２２０によってエラー表示のための処理がなされＬＣＤ等を介してエラーが報知される。なお、エラーの報知は、ＬＣＤ等への表示の他、音声出力、発光等によるものでも良い。
【０１０８】
［１．１９  実施の形態１の効果］
実施の形態１で示した不正検知ＥＣＵは、送信されたフレーム（データフレーム）が不正なフレームか否かを、フレームのＩＤフィールドについて正規ＩＤリストを用いて判定する。これにより、データフレームにおけるＩＤフィールドによって不正を判定できるため、既存のノード（つまり不正検知ＥＣＵ及び不正なＥＣＵ以外のＥＣＵ）において不正なフレームが解釈されてそのフレームに対応する処理が実行されることを阻止できる。また、データフレームの先頭のＳＯＦに続くＩＤフィールドまで受信するだけで判定ができるため、データフレームの後部等を受信して判定を行う場合よりも、バスのトラフィックを抑えることが可能となる。
【０１０９】
また、不正検知ＥＣＵが、不正検知カウンタを用いてエラーフレームを送信した回数をカウントすることで、エラーフレームの受信により不正なメッセージＩＤを送信するノードにおける送信エラーカウンタがＣＡＮプロトコルに従えばパッシブ状態に遷移すべき上限値まで到達していることを検出することができる。これにより、不正なメッセージＩＤを送信するノードが、ＣＡＮプロトコルのエラーカウンタの仕様に準拠しているか否かを判定することが可能となる。
【０１１０】
また、不正なフレームの判定を行うノードを不正検知ＥＣＵのみとすることで、既存のネットワーク構成への影響を最小限に抑えることができ、システム全体として処理量、電力消費量を抑えることができる。
【０１１１】
（実施の形態２）
以下、本開示の実施の形態として、メッセージＩＤ毎に定められるフレームの送信に係るルールを用いて不正なフレームを検知するための不正検知方法を実現する不正検知ＥＣＵを含む車載ネットワークシステム１１について説明する。
【０１１２】
［２．１  車載ネットワークシステム１１の全体構成］
図１９は、実施の形態２に係る車載ネットワークシステム１１の全体構成を示す図である。車載ネットワークシステム１１は、実施の形態１で示した車載ネットワークシステム１０の一部を変形したものである。
【０１１３】
車載ネットワークシステム１１は、不正検知ＥＣＵ２１００ａ〜２１００ｃ、ヘッドユニット２００、ゲートウェイ３００、３００ａ、及び、各種機器に接続されたＥＣＵ４００ａ〜４００ｅ等といったバスに接続された各ノードを含んで構成される。車載ネットワークシステム１１の構成要素のうち、実施の形態１と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ＥＣＵ４００ｅは、バス５００ｄと接続され、コーナーセンサ４０５に接続されており、実施の形態１で示したＥＣＵ４００ａ〜４００ｄと同様の構成を備えている。また、ＥＣＵ４００ｅは、コーナーセンサ４０５の状態を取得し、定期的に状態を表すデータフレームをバス５００ｄに送信している。また、バス５００ａ〜５００ｃの間をゲートウェイ３００が結び、バス５００ｂ及びバス５００ｄの間をゲートウェイ３００ａが結ぶ。不正検知ＥＣＵ２１００ａ、２１００ｂ、２１００ｃは、実施の形態１で示した不正検知ＥＣＵ１００ａを変形したものであり、それぞれバス５００ａ、５００ｂ、５００ｄに接続されている。不正検知ＥＣＵ２１００ａ〜２１００ｃは、ＥＣＵ４００ａ〜４００ｅ等により送信されたフレームが不正であるか否かを判定し、不正であれば、エラーを通知するためのデータフレームであるエラーメッセージを送信する機能を有するＥＣＵである。
【０１１４】
［２．２  不正検知ＥＣＵ２１００ｃの構成］
図２０は、不正検知ＥＣＵ２１００ｃの構成図である。不正検知ＥＣＵ２１００ｃは、フレーム送受信部１６０と、フレーム解釈部１５０と、不正フレーム検知部２１３０と、フレーム生成部１４０と、時間計測部２１１０と、フレームルール保持部２１２０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ＥＣＵ２１００ｃにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。不正検知ＥＣＵ２１００ｃは、実施の形態１で示した不正検知ＥＣＵ１００ａの一部を変形したものであり、実施の形態１と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
【０１１５】
時間計測部２１１０は、不正フレーム検知部２１３０から、受信したフレーム（メッセージ）のメッセージＩＤの通知を受けると、そのメッセージＩＤが前回受信されて通知を受けた時から今回通知を受けた時までに経過した時間（計測時間）を通知する機能を有する。時間計測部２１１０は、メッセージＩＤ毎に対応したタイマー（計時機構）を用いて、メッセージＩＤの通知を受けると対応するタイマーをストップし計測時間を不正フレーム検知部２１３０に通知し、タイマーをリセットして再びタイマーでの時間計測をスタートする。なお、時間計測部２１１０は、メッセージＩＤの通知を受けた場合にそのメッセージＩＤについて初回の通知であったときには前回受信からの経過時間の計測はできないので特別の取り扱いをする。このときには時間計測部２１１０は、例えばゼロ値の時間を不正フレーム検知部２１３０に通知し、そのメッセージＩＤに対応したタイマーでの時間計測をスタートする。
【０１１６】
フレームルール保持部２１２０は、メモリ等の記憶媒体に、フレームの送信に関するルール情報であるフレームルールを保持する。なお、このフレームはＣＡＮプロトコルに準拠して送信されるフレームである。不正検知ＥＣＵ２１００ｃにおけるフレームルール保持部２１２０には、不正検知ＥＣＵ２１００ｃが接続するバス５００ｄ上で送信され得るフレームについてのフレームルールが保持される。図２１は、フレームルールの一例を示した図である。フレームルールは、例えばフレームのメッセージＩＤとそのフレームの送信周期とを対応付けた情報であり、同図の例では、バス５００ｄに接続されたＥＣＵ４００ｅが送信するフレームのメッセージＩＤ「５」と２０〜３０ｍｓｅｃという送信周期とを示す。このフレームルールによれば、メッセージＩＤが「５」であるフレームは、送信周期が２０ｍｓｅｃ以上３０ｍｓｅｃ以下の範囲内で送信されることを示し、このフレームルールに従わずに送信されたフレームは、不正なフレームであると検知されることになる。つまり、フレームルールに従わないフレームが送信された場合には、不正なフレームが送信されたと判断される。
【０１１７】
不正フレーム検知部２１３０は、実施の形態１で示した不正フレーム検知部１３０を変形したものであり、フレーム解釈部１５０から受信されたフレームのメッセージＩＤを受け取り、そのフレームが不正に送信されたものであるか否かを判定する機能を有する。即ち、不正フレーム検知部２１３０は、フレームルール保持部２１２０により保持されたフレームルールを用いて、バス上で送信されたフレーム（メッセージ）が不正か否かを判定する言わば判定部として機能する。具体的には、不正フレーム検知部２１３０は、フレーム解釈部１５０からＩＤフィールドのＩＤ（メッセージＩＤ）を受信すると、時間計測部２１１０にメッセージＩＤを通知する。不正フレーム検知部２１３０は、時間計測部２１１０から計測時間を取得すると、フレームルール保持部２１２０が保持するフレームルールを参照し、計測時間がフレームルールに適合しているかを検証する。計測時間が送信周期の範囲から外れていた場合、不正フレーム検知部２１３０は、不正なフレームが送信されたと判断する。但し前回受信していないことから送信周期が計測できていない場合（例えばゼロ値の時間を時間計測部２１１０から取得した場合）には、例外的に不正なフレームが送信されたとは判断しない。不正なフレームが送信されたと判断した場合、不正フレーム検知部２１３０は、そのフレームのメッセージＩＤをデータフレームのデータフィールドに含ませたエラーメッセージの送信をフレーム生成部１４０に依頼する。フレーム生成部１４０は、エラーメッセージの送信が依頼されるとエラーメッセージを生成して、フレーム送受信部１６０を介してそのエラーメッセージを送信する。従って、フレーム送受信部１６０は、バスにエラーメッセージ等を送信する言わば送信部として機能する。なお、不正フレーム検知部２１３０は、不正と判断したフレームについて、時間計測部２１１０にそのフレームの受信タイミングを除外して時間計測を行わせるようにすることで、不正を検知した後も前回の正当なフレームを基準として、後に受信したフレームの送信周期が適正か否かを正しく判断し続けることができる。
【０１１８】
図２２は不正検知ＥＣＵ２１００ｃのフレーム生成部１４０が生成するエラーメッセージの構成の一例を示した図である。同図に例示するようにエラーメッセージは、ＩＤフィールドにエラーメッセージ用に予め定めたＩＤ値「２０４７（０ｘ７ＦＦ）」を設定し、データフィールドに不正と検知されたフレームのメッセージＩＤを含ませたデータフレームである。
【０１１９】
不正検知ＥＣＵ２１００ａ、２１００ｂも不正検知ＥＣＵ２１００ｃと基本的に同様の構成を備える。但し、フレームルール保持部２１２０が保持するフレームルールについては、その不正検知ＥＣＵが接続するバス上に送信され得るフレームに対応した内容となる。即ち、互いに異なるバスに接続された複数の不正検知ＥＣＵ各々が自装置のメモリ等に格納したフレームルールは、自装置が接続されたバス上で送信されるフレームのメッセージＩＤと、そのメッセージについての送信に関するルール（送信周期の範囲等）とを対応付けた内容となる。なお、車載ネットワークシステム１１のいずれかのバス上で送信され得る各フレームについての送信周期を定めた総合的なフレームルールを各不正検知ＥＣＵが保持する方式も採り得る。
【０１２０】
［２．３  ゲートウェイ３００ａの転送ルール例］
ゲートウェイ３００ａは、実施の形態１で示したゲートウェイ３００と同様の構成を備える（図６参照）。但し、ゲートウェイ３００ａの受信ＩＤリスト保持部３４０に保持されている受信ＩＤリスト及び転送ルール保持部３７０に保持されている転送ルールは、ゲートウェイ３００ａが接続されているバス５００ｂ、５００ｄに対応する内容となっている。
【０１２１】
図２３は、ゲートウェイ３００ａが保有する転送ルールの一例を示した図である。同図の例は、バス５００ｂから受信するフレームはメッセージＩＤにかかわらず、バス５００ｄに転送するように設定されていることを示す。また、バス５００ｄから受信するフレームのうち、バス５００ｂにはメッセージＩＤが「５」であるフレーム及びメッセージＩＤが「２０４７」であるフレーム（エラーメッセージ）のみが転送されるように設定されていることを示す。
【０１２２】
［２．４  コーナーセンサに係るＥＣＵ４００ｅの送信フレーム例］
図２４は、コーナーセンサ４０５に接続されたＥＣＵ４００ｅから送信されるフレームにおけるＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。ＥＣＵ４００ｅが送信するフレームのメッセージＩＤは「５」である。データ長は１Ｂｙｔｅであり、データの値は、コーナーセンサ４０５が、車両のコーナーから一定距離範囲に障害物が存在することを検知すれば「１」、障害物を検知しなければ「０」である。図２４の上行から下行へと、ＥＣＵ４００ｅから定期的に送信される各フレームに対応する各メッセージＩＤ及びデータを例示しており、車両のコーナーに障害物が検知されない状態から次第に障害物が検知される状態へと移った様子を表している。
【０１２３】
［２．５  受信ＩＤリスト例］
図２５は、ＥＣＵ４００ａ（図８参照）と同様の構成を備えるＥＣＵ４００ｅにおいて受信ＩＤリスト保持部４４０に保持される受信ＩＤリストの一例を示す図である。同図に示す受信ＩＤリストは、メッセージＩＤの値が「５」又は「２０４７」であるメッセージＩＤを含むフレームをＥＣＵ４００ｅが選択的に受信して処理するために用いられる。この場合にＥＣＵ４００ｅのフレーム解釈部４５０では、メッセージＩＤが「５」又は「２０４７」でないフレームについては、ＩＤフィールド以後のフレームの解釈が中止される。
【０１２４】
［２．６  不正フレームの検知に係るシーケンス］
以下、上述の構成を備える車載ネットワークシステム１１のバス５００ｄに不正なＥＣＵが接続された場合における、バス５００ｄに接続された不正検知ＥＣＵ２１００ｃ、ＥＣＵ４００ｅ、ゲートウェイ３００ａ等の動作について説明する。
【０１２５】
図２６及び図２７は、不正検知ＥＣＵ２１００ｃが不正なフレーム（メッセージ）を検知して、エラーメッセージを送信する動作例を示すシーケンス図である。ここでの各シーケンスは、各装置における各処理手順（ステップ）を意味する。
【０１２６】
ＥＣＵ４００ｅは、コーナーセンサ４０５からセンサ状態を取得する（シーケンスＳ２００１）。
【０１２７】
続いてＥＣＵ４００ｅは、取得したセンサ状態をデータフィールドに含ませてメッセージＩＤを「５」としたデータフレーム（メッセージ）を生成してバス５００ｄへと送信する（シーケンスＳ２００２）。ＥＣＵ４００ｅは、一定時間間隔でシーケンスＳ２００１及びＳ２００２を繰り返す（シーケンスＳ２００３）。この一定時間間隔（例えば２５ｍｓｅｃ）によりＥＣＵ４００ｅによるデータフレームの送信周期は、図２１に示したフレームルールに従ったものとなる。
【０１２８】
バス５００ｄに接続されている不正検知ＥＣＵ２１００ｃは、ＥＣＵ４００ｅが送信したデータフレーム（メッセージ）のメッセージＩＤを受信する（シーケンスＳ２００４）。
【０１２９】
不正検知ＥＣＵ２１００ｃは、メッセージの受信周期（つまり送信周期）が、フレームルール（図２１参照）で定められた送信周期の範囲であるかを確認して異常（範囲外）であるかを判断する（シーケンスＳ２００５）。異常でなければ、不正検知ＥＣＵ２１００ｃは、エラーメッセージの送信を行わず、バス５００ｄでメッセージが送信される毎にシーケンスＳ２００４、Ｓ２００５の手順を繰り返す。即ち、ＥＣＵ４００ｅからフレームルールに従った送信周期でデータフレームが繰り返し送信されている間は、不正検知ＥＣＵ２１００ｃは、シーケンスＳ２００５の判断でメッセージの周期が異常ではないと判断する。なお、図２６では図示を省略しているが、バス５００ｄに接続されているゲートウェイ３００ａは、ＥＣＵ４００ｅが送信したメッセージＩＤが「５」のデータフレームをバス５００ｂに転送する。
【０１３０】
ここで、あるタイミングで不正なＥＣＵが、メッセージＩＤ「５」のデータフレームを送信したとする（シーケンスＳ２００２ａ）。不正なＥＣＵは、ＥＣＵ４００ｅが一定周期で送信しているメッセージＩＤ「５」と同じメッセージＩＤのデータフレームを送信するが、ＥＣＵ４００ｅの送信周期と無関係なタイミングでその送信を行う。
【０１３１】
不正なＥＣＵがデータフレームを送信すると、不正検知ＥＣＵ２１００ｃは、そのメッセージＩＤを受信し（シーケンスＳ２００４）、フレームルールに基づいて送信周期を確認して、周期が異常であると判断する（シーケンスＳ２００５）。なお、不正なＥＣＵによるデータフレームの送信は、ＥＣＵ４００ｅの送信周期と無関係なので、フレームルールで定められた送信周期の範囲より周期が短くなる可能性が十分にある。
【０１３２】
周期が異常であると判断すると、不正検知ＥＣＵ２１００ｃは、バス５００ｄに、データフィールドにメッセージＩＤである「５」を含ませたエラーメッセージを送信する（シーケンスＳ２００６）。
【０１３３】
エラーメッセージを受信するとゲートウェイ３００ａは、他のバスにエラーメッセージを転送する（シーケンスＳ２００７）。この結果として、他のバスに接続されたＥＣＵにおいても、メッセージＩＤが「５」である不正なデータフレームの送信に対処することが可能となる。例えば、ゲートウェイ３００がエラーメッセージをバス間で転送するようにし、ヘッドユニット２００は、エラーメッセージを受信して、ディスプレイ等にエラーの発生を表示し、エラーに関するログを記憶媒体等に記録する。また、例えば、エラーメッセージを受信したＥＣＵは、エラーメッセージのデータフィールドで示されたメッセージＩＤを記憶し、そのメッセージＩＤのメッセージを利用しなくても良いように予め定められた処理を必要に応じて実行し、また、それ以後にそのメッセージＩＤのメッセージを受信した場合にそのメッセージを処理しない。
【０１３４】
［２．７  実施の形態２の効果］
実施の形態２で示した不正検知ＥＣＵは、送信されたフレームが不正なフレームか否かを、フレームの送信周期を示すフレームルールを用いて判定している。これにより、データフレームにおけるＩＤフィールドが正規なものと同一であっても不正なフレームを検知（判別）できるようになる。また、フレームルールを用いることにより、フレームの内容（ＩＤフィールド及びデータフィールド）からは正当なものと区別できないフレームであっても、不正なフレームを判別可能となり、反射攻撃（リプレイ攻撃）等の影響を阻止できる。なお、不正検知ＥＣＵは、不正なフレームを検知するとその不正なフレームのメッセージＩＤを示すエラーメッセージを送信するので、他のＥＣＵは、エラーメッセージに基づいて不正なフレームに対処し得るようになる。従って、この不正検知ＥＣＵを備える車載ネットワークシステムは不正にコントロールされにくい。また、不正なフレームの判定を行うノードを不正検知ＥＣＵのみとすることで、既存の車載ネットワーク構成への影響を最小限に抑えることができ、システム全体として処理量、電力消費量を抑えることができる。
【０１３５】
（実施の形態３）
以下、本開示の実施の形態として、車外の装置（外部装置）と連携して更新されるフレームルールを用いて不正なフレームを検知するための不正検知方法を実現する不正検知ＥＣＵを含む車載ネットワークシステム１２について説明する。
【０１３６】
［３．１  車載ネットワークシステム１２の全体構成］
図２８は、実施の形態３に係る車載ネットワークシステム１２の全体構成を示す図である。車載ネットワークシステム１２は、実施の形態２で示した車載ネットワークシステム１１の一部を変形したものである。
【０１３７】
車載ネットワークシステム１２は、不正検知ＥＣＵ３１００ａ〜３１００ｃ、ヘッドユニット３２００、ゲートウェイ３３００、３３００ａ、及び、各種機器に接続されたＥＣＵ４００ａ〜４００ｅ等といったバスに接続された各ノードとを含んで構成される。車載ネットワークシステム１２の構成要素のうち、実施の形態１或いは実施の形態２で示したものと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。ヘッドユニット３２００は、実施の形態１で示したヘッドユニット２００を部分的に変形したものであり、図２８に示すように外部ネットワーク５５０を介してサーバ６００等の外部装置と通信可能である。不正検知ＥＣＵ３１００ａ〜３１００ｃは、実施の形態２で示した不正検知ＥＣＵ２１００ａ〜２１００ｃを部分的に変形したものであり、それぞれバス５００ａ、５００ｂ、５００ｄに接続されている。ゲートウェイ３３００、３３００ａは、実施の形態２で示したゲートウェイ３００、３００ａを部分的に変形したものである。
【０１３８】
図２８では、車載ネットワークシステム１２を搭載した車両を１台だけ示しているが、複数の車両各々が車載ネットワークシステム１２を搭載し得る。
【０１３９】
サーバ６００は、１台以上の各車両において搭載された各車載ネットワークシステム１２を管理すべく各車載ネットワークシステム１２と通信により連携する機能を備えるコンピュータである。サーバ６００は、車載ネットワークシステム１２で検知された不正なフレームの送信に関する情報を収集する機能、車載ネットワークシステム１２で用いられるフレームルールを更新するための更新用ルール情報を送信する機能等を有する。更新用ルール情報は、例えばサーバ６００の操作者により入力され、また、サーバ６００による更新用ルール情報の送信は、例えば操作者に指示されたタイミングで実行される。更新用ルール情報は、例えば、フレームルールを上書きして置き換えるため、或いは、フレームルールに追加するための情報であり、例えば、フレームルール（図２１参照）と同様に、フレームのメッセージＩＤとそのフレームの送信周期とを対応付けた情報である。
【０１４０】
［３．２  不正検知ＥＣＵ３１００ｃの構成］
図２９は、不正検知ＥＣＵ３１００ｃの構成図である。不正検知ＥＣＵ３１００ｃは、実施の形態２で示した不正検知ＥＣＵ２１００ｃと同一の機能に加えて、エラーメッセージを送信する際にメッセージ認証コード（ＭＡＣ：Message Authentication Code）を付加して送信する機能、ヘッドユニット３２００を経由してサーバ６００からの更新用ルール情報を取得してフレームルールを更新する機能等を有する。これらの機能を実現すべく不正検知ＥＣＵ３１００ｃは、フレーム送受信部１６０と、フレーム解釈部１５０と、不正フレーム検知部３１３０と、フレーム生成部１４０と、時間計測部２１１０と、フレームルール保持部２１２０と、ＭＡＣ鍵保持部３１２０と、ＭＡＣ生成部３１１０と、更新部３１２１とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、不正検知ＥＣＵ３１００ｃにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。不正検知ＥＣＵ３１００ｃの構成要素のうち実施の形態２で示した不正検知ＥＣＵ２１００ｃと同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
【０１４１】
ＭＡＣ生成部３１１０は、ＭＡＣ鍵保持部３１２０で保持するＭＡＣ鍵を用いて、不正フレーム検知部３１３０の依頼を基にＭＡＣを生成する機能を有する。ＭＡＣの生成方法としては、ＨＭＡＣ（Hash-based Message Authentication Code）（非特許文献２参照）等がある。例えば、不正フレーム検知部３１３０から伝えられる不正なフレームのメッセージＩＤに対し、所定のブロック分（例えば４ｂｙｔｅｓ）までパディングした値でＭＡＣ鍵を使ってＨＭＡＣを用いて計算した結果の先頭４ｂｙｔｅｓをＭＡＣとする。
【０１４２】
ＭＡＣ鍵保持部３１２０は、ＭＡＣを生成するために必要となるＭＡＣ鍵を保持する。このＭＡＣ鍵保持部３１２０が保持するＭＡＣ鍵と同一のＭＡＣ鍵を、ヘッドユニット３２００も保持している。
【０１４３】
不正フレーム検知部３１３０は、実施の形態２で示した不正フレーム検知部２１３０の一部を変形したものである。不正フレーム検知部３１３０は、フレーム解釈部１５０から受信されたフレームのメッセージＩＤを受け取り、そのフレームが不正に送信されたものであるか否かを判定する機能を有する。即ち、不正フレーム検知部３１３０は、フレーム解釈部１５０からメッセージＩＤを受信すると、時間計測部２１１０にメッセージＩＤを通知する。不正フレーム検知部３１３０は、時間計測部２１１０から計測時間を取得すると、フレームルール保持部２１２０が保持するフレームルールを参照し、計測時間がフレームルールに適合しているかを検証する。計測時間がフレームルールで定められた送信周期の範囲（ルールとして許容される範囲）から外れていた場合、不正フレーム検知部３１３０は、不正なフレームが送信されたと判断する。但し前回受信していないことから送信周期が計測できていない場合（例えばゼロ値の時間を時間計測部２１１０から取得した場合）には、例外的に不正なフレームが送信されたとは判断しない。不正なフレームが送信されたと判断した場合、不正フレーム検知部３１３０は、不正なフレームのメッセージＩＤを伝えてそのメッセージＩＤに基づくＭＡＣ生成をＭＡＣ生成部３１１０に依頼する。そして、ＭＡＣ生成部３１１０により生成されたＭＡＣを受け取り、不正なフレームのメッセージＩＤと対応するＭＡＣとをデータフレームのデータフィールドとしたエラーメッセージの送信をフレーム生成部１４０に依頼する。フレーム生成部１４０は、エラーメッセージの送信が依頼されるとエラーメッセージを生成して、フレーム送受信部１６０を介してそのエラーメッセージを送信する。なお、不正フレーム検知部３１３０は、不正と判断したフレームについて、時間計測部２１１０にそのフレームの受信タイミングを除外して時間計測を行わせるようにすることで、不正を検知した後も前回の正当なフレームを基準として、後に受信したフレームの送信周期が適正か否かを正しく判断し続けることができる。
【０１４４】
図３０は不正検知ＥＣＵ３１００ｃのフレーム生成部１４０が生成するエラーメッセージの構成の一例を示した図である。同図に例示するようにエラーメッセージは、ＩＤフィールドにエラーメッセージ用に予め定めたＩＤ値「２０４６（０ｘ７ＦＥ）」を設定し、データフィールドに不正と検知されたフレームのメッセージＩＤとこのメッセージＩＤに対応して生成したＭＡＣとを含ませたデータフレームである。
【０１４５】
上述したＭＡＣ生成部３１１０は、更に、ＭＡＣ鍵保持部３１２０で保持するＭＡＣ鍵を用いて更新部３１２１の依頼を基にＭＡＣを生成する機能も有する。
【０１４６】
更新部３１２１は、更新用ルール情報を含むデータフレーム（「更新データフレーム」と称する。）とから更新用ルール情報を抽出して、その更新用ルール情報を用いてフレームルール保持部２１２０に保持されているフレームルールを更新する機能を有する。更新用ルール情報はヘッドユニット３２００がサーバ６００から受信するものである。なお、ヘッドユニット３２００は、更新用ルール情報と、この更新用ルール情報に対して例えばＨＭＡＣを用いて計算した結果であるＭＡＣとをデータフィールドの内容とした更新データフレームを送信し、ゲートウェイ３３００、３３００ａを経由して不正検知ＥＣＵ３１００ｃはこのデータフレームを受信する。更新データフレームのＩＤ値は、例えば「２０４５（０ｘ７ＦＤ）」と予め定められている。更新部３１２１は、更新用ルール情報及びＭＡＣを含むデータフレームがフレーム送受信部１６０に受信された場合にフレーム解釈部１５０からその更新用ルール情報及びＭＡＣを受け取り、ＭＡＣを検証する。つまり、更新部３１２１は、更新用ルール情報をＭＡＣ生成部３１１０に伝えてＭＡＣの生成を依頼して、生成されたＭＡＣがフレーム解釈部１５０から受け取ったＭＡＣと一致するか否かを判断することで、更新用ルール情報のＭＡＣを検証する。ＭＡＣが一致することで検証に成功すると更新部３１２１は、予め定められた手順に従って更新用ルール情報を用いてフレームルールを更新する。この手順の一例としては、更新用ルール情報をフレームルールに上書きして新たにフレームルールとする手順、更新用ルール情報をフレームルールに追加する手順等が挙げられる。なお、ヘッドユニット３２００が更新用ルール情報を複数の更新データフレームに分割して送信し、受信側で複数の更新データフレームから抽出した更新用ルール情報を統合して利用するようにしても良い。
【０１４７】
なお、不正検知ＥＣＵ３１００ａ、３１００ｂも不正検知ＥＣＵ３１００ｃと同様の構成を備える。各不正検知ＥＣＵのフレームルール保持部２１２０が保持するフレームルールについては、その不正検知ＥＣＵが接続するバス上に送信され得るフレームに対応した内容を含むものとなる。車載ネットワークシステム１２のいずれかのバス上で送信され得る各フレームについての送信周期を定めた総合的なフレームルールを各不正検知ＥＣＵが保持することとしても良い。
【０１４８】
［３．３  ヘッドユニット３２００の構成］
ヘッドユニット３２００は、実施の形態１で示したヘッドユニット２００と同一の機能に加えて、サーバ６００から更新用ルール情報を取得して、更新用ルール情報にＭＡＣを付加したものを含む更新データフレームを送信する機能、エラーメッセージを受信して、エラーメッセージが示す不正なフレームのメッセージＩＤを含む情報をサーバ６００に伝達する機能等を有する。これらの機能を実現すべく、ヘッドユニット３２００は、図３１に示す各構成要素を含む。
【０１４９】
図３１は、ヘッドユニット３２００の構成図である。ヘッドユニット３２００は、表示制御部２１０と、フレーム処理部２２０と、フレーム生成部２３０と、受信ＩＤ判断部２４０と、受信ＩＤリスト保持部２５０と、フレーム解釈部２６０と、フレーム送受信部２７０と、ＭＡＣ生成部３２１０と、ＭＡＣ鍵保持部３２２０と、不正ＩＤリスト保持部３２３０と、不正フレーム検知部３２４０と、サーバ通信部３２５０と、更新処理部３２６０とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ヘッドユニット３２００における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。ヘッドユニット３２００の構成要素のうち実施の形態１で示したヘッドユニット２００と同様の機能を有する構成要素は、同じ符号を付して説明を適宜省略する。
【０１５０】
受信ＩＤリスト保持部２５０は、ヘッドユニット３２００が受信するメッセージＩＤのリストである受信ＩＤリストを保持する。図３２は、ヘッドユニット３２００における受信ＩＤリストの一例を示した図である。同図に示すように、受信ＩＤリストには、不正検知ＥＣＵから送信されるエラーメッセージのＩＤ値「２０４６（０ｘ７ＦＥ）」が含まれている。
【０１５１】
フレーム解釈部２６０は、フレーム送受信部２７０よりフレームの値を受け取り、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。フレーム解釈部２６０は、ＩＤフィールドと判断した値は受信ＩＤ判断部２４０へ転送する。フレーム解釈部２６０は、受信ＩＤ判断部２４０から通知される判定結果に応じて、ＩＤフィールドの値とＩＤフィールド以降に現れるデータフィールドとをフレーム処理部２２０へ転送するか、不正フレーム検知部３２４０へ転送するか、その判定結果を受けた以降においてフレームの受信を中止するかを決定する。なお、ＩＤフィールドの値が「２０４６」である場合（エラーメッセージが受信された場合）には、フレーム解釈部２６０は、そのＩＤフィールドの値とデータフィールドとを不正フレーム検知部３２４０へ転送する。
【０１５２】
ＭＡＣ生成部３２１０は、ＭＡＣ鍵保持部３２２０が保持するＭＡＣ鍵を用いて、不正フレーム検知部３２４０の依頼を基にＭＡＣを生成する。このＭＡＣの生成の方式は不正検知ＥＣＵ３１００ｃ等におけるＭＡＣ生成部３１１０と同一である。例えば、ＭＡＣ生成部３２１０は、不正フレーム検知部３２４０から伝えられる不正なフレームのメッセージＩＤに対し、所定のブロック分までパディングした値でＭＡＣ鍵を使ってＨＭＡＣを用いて計算した結果の先頭４ｂｙｔｅｓをＭＡＣとする。
【０１５３】
ＭＡＣ鍵保持部３２２０は、ＭＡＣを生成するために必要となるＭＡＣ鍵を保持する。上述したようにＭＡＣ鍵保持部３２２０が保持するＭＡＣ鍵と同一のＭＡＣ鍵を、不正検知ＥＣＵ３１００ｃ等も保持している。なお、車載ネットワークシステム１２において各不正検知ＥＣＵが保持するＭＡＣ鍵は、全て同一であることとしても良いし、個別に異なるとしても良い。なお、各不正検知ＥＣＵが保持するＭＡＣ鍵が個別に異なるとした場合においては、ヘッドユニット３２００のＭＡＣ鍵保持部３２２０は、その個別に異なる全てのＭＡＣ鍵を保持する。
【０１５４】
不正ＩＤリスト保持部３２３０は、不正フレーム検知部３２４０から不正なフレームのメッセージＩＤの通知を受けてそのメッセージＩＤをメモリ等の記憶媒体に記録して保持する機能を有する。
【０１５５】
不正フレーム検知部３２４０は、フレーム解釈部２６０からエラーメッセージのメッセージＩＤ及びデータフィールドの値を受けると、エラーメッセージが正当なものであることを検証すべく、データフィールド内のメッセージＩＤを伝えてＭＡＣ生成部３２１０にＭＡＣの生成を依頼する。ＭＡＣ生成部からＭＡＣを受信すると、データフィールド内のＭＡＣの値と比較する。両ＭＡＣが一致することは、エラーメッセージが正当なものであることの検証に成功したことを意味する。検証に成功した場合には、不正フレーム検知部３２４０は、エラーメッセージのデータフィールド内のメッセージＩＤ（つまり不正なフレームのメッセージＩＤ）を、不正ＩＤリスト保持部３２３０に保持させる。また、エラーメッセージが正当なものであることの検証に成功した場合には、表示制御部２１０に、エラーの発生を示す警告表示を行うよう依頼する。表示制御部２１０は、警告表示の依頼を受けた場合にディスプレイに、警告（例えばエラーの発生を示す文字列、画像等）を表示する。また、不正フレーム検知部３２４０は、サーバ通信部３２５０を介して、不正なフレームのメッセージＩＤを示す情報をサーバに送信する。
【０１５６】
サーバ通信部３２５０は、サーバ６００と外部ネットワーク５５０を介して通信する機能を有する。
【０１５７】
上述したＭＡＣ生成部３２１０は、更に、ＭＡＣ鍵保持部３２２０で保持するＭＡＣ鍵を用いて更新処理部３２６０の依頼を基にＭＡＣを生成する機能も有する。このＭＡＣの生成の方式も不正検知ＥＣＵ３１００ｃ等におけるＭＡＣ生成部３１１０と同一である。例えば、ＭＡＣ生成部３２１０は、更新処理部３２６０から伝えられる更新用ルール情報の一部（例えば先頭２Ｂｙｔｅｓ等）に対し、所定のブロック分までパディングした値でＭＡＣ鍵を使ってＨＭＡＣを用いて計算した結果の先頭４ｂｙｔｅｓをＭＡＣとする。
【０１５８】
更新処理部３２６０は、サーバ通信部３２５０によりサーバ６００から更新用ルール情報が受信された場合に、この更新用ルール情報を伝えてＭＡＣ生成部３２１０にＭＡＣを生成させ、更新用ルール情報及びそのＭＡＣをデータフィールドの内容とした更新データフレームをフレーム生成部２３０に生成させて送信させる機能を有する。
【０１５９】
［３．４  ゲートウェイ３３００ａの転送ルール例］
ゲートウェイ３３００ａは、実施の形態１で示したゲートウェイ３００と同様の構成を備える（図６参照）。但し、ゲートウェイ３３００ａの受信ＩＤリスト保持部３４０に保持されている受信ＩＤリスト及び転送ルール保持部３７０に保持されている転送ルールは、ゲートウェイ３３００ａが接続されているバス５００ｂ、５００ｄに対応する内容となっている。
【０１６０】
図３３は、ゲートウェイ３３００ａが保有する転送ルールの一例を示した図である。同図の例は、バス５００ｂから受信するフレームはメッセージＩＤにかかわらず、バス５００ｄに転送するように設定されていることを示す。これにより、例えばヘッドユニット３２００から送信される更新用ルール情報を含む更新データフレームはバス５００ｂからゲートウェイ３３００ａによりバス５００ｄに転送され、不正検知ＥＣＵ３１００ｃに伝達されることになる。また、図３３の例は、バス５００ｄから受信するフレームのうち、バス５００ｂにはメッセージＩＤが「５」であるフレーム及びメッセージＩＤが「２０４６」であるフレーム（エラーメッセージ）のみが転送されるように設定されていることを示す。
【０１６１】
ゲートウェイ３３００については、ゲートウェイ３３００ａと同様の構成であるが、受信ＩＤリスト及び転送ルールは、ゲートウェイ３３００が接続されているバス５００ａ〜５００ｃに対応する内容となっている。なお、ゲートウェイ３３００もゲートウェイ３３００ａと同様に、ヘッドユニット３２００から送信される更新用ルール情報を含む更新データフレームをバス５００ｃから受信した場合に他の各バスに転送し、バス５００ｂ又はバス５００ｃから受信したエラーメッセージをバス５００ｃに転送する。これにより、車載ネットワークシステム１２においてヘッドユニット３２００から各不正検知ＥＣＵへと更新用ルール情報を含むデータフレームが伝送され、各不正検知ＥＣＵからヘッドユニット３２００へとエラーメッセージが伝送されるようになる。
【０１６２】
［３．５  不正フレームの検知及び対応に係るシーケンス］
以下、車載ネットワークシステム１２のバス５００ｄに不正なＥＣＵが接続された場合における不正検知ＥＣＵ３１００ｃ、ゲートウェイ３３００、３３００ａ、ヘッドユニット３２００等の動作について説明する。
【０１６３】
図３４及び図３５は、不正検知ＥＣＵ３１００ｃが不正なフレーム（メッセージ）を検知して、エラーメッセージを送信しヘッドユニット３２００が警告表示等の対応を行う動作例を示すシーケンス図である。ここでの各シーケンスは、各装置における各処理手順（ステップ）を意味する。
【０１６４】
あるタイミングで不正なＥＣＵが、メッセージＩＤ「５」のデータフレームを送信する（シーケンスＳ３００１）。ここでは、実施の形態２で説明したシーケンスＳ２００２ａ（図２６参照）と同様であり、不正なＥＣＵは、ＥＣＵ４００ｅが一定周期で送信しているメッセージＩＤ「５」と同じメッセージＩＤのデータフレームを送信するが、ＥＣＵ４００ｅの送信周期と無関係なタイミングでその送信を行う。
【０１６５】
バス５００ｄに接続されている不正検知ＥＣＵ３１００ｃは、不正なＥＣＵがデータフレームを送信すると、不正検知処理を行う（シーケンスＳ３００２）。この不正検知処理は、実施の形態２で説明したシーケンスＳ２００４、Ｓ２００５と同様であるので、ここでは説明を省略する。この不正検知処理により、不正検知ＥＣＵ３１００ｃは、送信周期の異常から、メッセージＩＤが「５」である不正なフレームが送信されたことを検知する。
【０１６６】
不正なフレームが送信されたことを検知すると、不正検知ＥＣＵ３１００ｃは、「５」というメッセージＩＤに対応してＭＡＣを生成し、データフィールドにメッセージＩＤである「５」とＭＡＣとを含ませたエラーメッセージを送信する（シーケンスＳ３００３）。
【０１６７】
バス５００ｄからエラーメッセージを受信するとゲートウェイ３３００ａは、バス５００ｂにエラーメッセージを転送する（シーケンスＳ３００４）。また、バス５００ｂに転送されたエラーメッセージをゲートウェイ３３００がバス５００ｃに転送する。この結果として、バス５００ｃに接続されたヘッドユニット３２００はエラーメッセージを受信できる。
【０１６８】
ヘッドユニット３２００は、バス５００ｃに送信されたエラーメッセージを受信して、受信ＩＤリストに基づいて受信すべきメッセージＩＤであるかを確認する（シーケンスＳ３００５）。受信すべきメッセージＩＤでなければヘッドユニット３２００は、処理を終える。エラーメッセージのメッセージＩＤは受信すべきメッセージＩＤであるため、ヘッドユニット３２００は、次にエラーメッセージであるか否かをメッセージＩＤにより確認する（シーケンスＳ３００６）。エラーメッセージでない場合には、メッセージＩＤに対応して予め定められている処理を行う。この例では、エラーメッセージのメッセージＩＤを受信しているので、ヘッドユニット３２００は、データフィールドを受信してその内容である不正なフレームのメッセージＩＤに基づいてＭＡＣを生成し、データフィールドの内容であるＭＡＣと比較することにより、ＭＡＣを検証する（シーケンスＳ３００７）。生成したＭＡＣとデータフィールドの内容であるＭＡＣとが一致すれば検証が成功する。
【０１６９】
ＭＡＣの検証に成功した場合に限り、ヘッドユニット３２００は、不正なフレームのメッセージＩＤを不正ＩＤリスト保持部３２３０に保持し、ログに記録する（シーケンスＳ３００８）。また、ヘッドユニット３２００は、エラーの発生を示す警告をディスプレイに表示する（シーケンスＳ３００９）。また、ヘッドユニット３２００は、不正なフレームのメッセージＩＤを示す情報を外部ネットワーク５５０を介してサーバ６００に送信する（シーケンスＳ３０１０）。これにより、サーバ６００では、メッセージＩＤが「５」である不正なフレームを送信する不正なＥＣＵが車載ネットワークシステム１２に接続されたという情報を取得できる。サーバ６００は、例えば、複数の車両それぞれに搭載される車載ネットワークから、不正なフレームの送信に関する情報を収集して、その情報を、分析、対策決定等のために活用できる。なお、ヘッドユニット３２００がサーバ６００へ情報を送信するタイミングは、エラーメッセージを受信したタイミングと必ずしも同期しなくても良い。例えば、ヘッドユニット３２００は、不正ＩＤリスト保持部３２３０に保持された不正なフレームのメッセージＩＤを示す情報を、任意のタイミングでサーバ６００に送信しても良い。
【０１７０】
［３．６  更新用ルール情報の処理に係るシーケンス］
以下、ヘッドユニット３２００がサーバ６００から更新用ルール情報を受信した場合におけるヘッドユニット３２００、ゲートウェイ３３００、３３００ａ、不正検知ＥＣＵ３１００ｃ等の動作について説明する。
【０１７１】
図３６は、ヘッドユニット３２００が更新用ルール情報を送信して、不正検知ＥＣＵ３１００ｃが更新用ルール情報に基づきフレームルールを更新する動作例を示すシーケンス図である。ここでの各シーケンスは、各装置における各処理手順（ステップ）を意味する。
【０１７２】
ヘッドユニット３２００は、サーバ６００から更新用ルール情報を受信する（シーケンスＳ３１０１）。
【０１７３】
続いて、ヘッドユニット３２００は、受信した更新用ルール情報に基づいてＭＡＣを生成して、データフィールドに更新用ルール情報及びＭＡＣを含ませた更新データフレームをバス５００ｃへと送信する（シーケンスＳ３１０２）。
【０１７４】
バス５００ｃから更新データフレームを受信するとゲートウェイ３３００は、バス５００ｂに更新データフレームを転送する（シーケンスＳ３１０３）。また、バス５００ｂに転送された更新データフレームをゲートウェイ３３００ａがバス５００ｄに転送する。この結果として、バス５００ｄに接続された不正検知ＥＣＵ３１００ｃは更新データフレームを受信できる。
【０１７５】
不正検知ＥＣＵ３１００ｃは、バス５００ｄに送信された更新データフレームを受信して、そのデータフィールドに含まれる更新用ルール情報に基づいてＭＡＣを生成し、その生成したＭＡＣとデータフィールドに含まれるＭＡＣとを比較することにより、ＭＡＣを検証する（シーケンスＳ３１０４）。生成したＭＡＣとデータフィールドの内容であるＭＡＣとが一致すれば検証が成功する。
【０１７６】
ＭＡＣの検証に成功した場合に限り、不正検知ＥＣＵ３１００ｃは、更新データフレームのデータフィールドに含まれる更新用ルール情報に基づいて、保持しているフレームルールを更新する（シーケンスＳ３１０５）。これ以後は、不正検知ＥＣＵ３１００ｃでは、更新後のフレームルールに基づいて不正なフレームの検知が行われるようになる。
【０１７７】
なお、各ゲートウェイにより更新データフレームは各バスに転送されるため、不正検知ＥＣＵ３１００ｃ以外の不正検知ＥＣＵも不正検知ＥＣＵ３１００ｃと同様に、受信した更新用ルール情報に基づいて、保持しているフレームルールを更新することができる。
【０１７８】
［３．７  実施の形態３の効果］
実施の形態３で示した不正検知ＥＣＵは、送信されたフレームが不正なフレームか否かを、フレームの送信周期を示すフレームルールを用いて判定している。これにより、データフレームにおけるＩＤフィールドが正規なものと同一であっても不正なフレームを検知（判別）できるようになる。
【０１７９】
また、不正検知ＥＣＵが不正なフレームを検知した場合、ヘッドユニットに不正なフレームのメッセージＩＤを含むエラーメッセージを通知するので、ヘッドユニットが、警告をディスプレイに表示すること、或いは、不正なフレームのメッセージＩＤを示す情報をサーバに送信すること等によって、車載ネットワークにおいて生じた異常事態を外部に通知することができる。なお、サーバは、各車両に搭載された各車載ネットワークシステムから異常事態の通知を受け得るため、例えば異常事態に対する適切な対策を実施することが可能となり、車載ネットワークシステムの安全性の向上を図ることが可能になる。
【０１８０】
また、不正検知ＥＣＵがヘッドユニットに不正なフレームのメッセージＩＤを含むエラーメッセージを通知する際に、ＭＡＣを用いて検証を行うため、エラーメッセージの正当性を確認でき、不正なエラーメッセージによる誤判断を防止できる。
【０１８１】
また、不正なフレームの判定を行うノードを不正検知ＥＣＵのみとすることで、既存の車載ネットワーク構成への影響を最小限に抑えることができ、システム全体として処理量、電力消費量を抑えることができる。
【０１８２】
また、サーバが、不正なフレームか否かを検知するためのフレームルールを管理することができ、サーバから更新用ルール情報を送信することで、車載ネットワークの不正検知ＥＣＵがその更新用ルール情報により更新されたフレームルールを用いて不正なフレームを検出することができるようになる。
【０１８３】
（他の実施の形態等）
以上のように、本開示に係る技術の例示として実施の形態１〜３を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
【０１８４】
（１）上記実施の形態では、各ＥＣＵによりフレームが定期的に送信される例を示したが、フレームは状態変化を通知するイベントとして送信されることとしても良い。例えば、ＥＣＵは、ドアの開閉状態を定期的に送信するのではなく、ドアの開閉状態が変化した場合にのみ、フレームを送信するとしても良い。また、ＥＣＵがフレームを、定期的に送信、かつ、状態変化が発生した時に送信することとしても良い。
【０１８５】
（２）上記実施の形態では、ＣＡＮプロトコルにおけるデータフレームを標準ＩＤフォーマットで記述しているが、拡張ＩＤフォーマットであっても良い。拡張ＩＤフォーマットの場合には、標準ＩＤフォーマットにおけるＩＤ位置のベースＩＤと、拡張ＩＤとを合わせて２９ビットでＩＤ（メッセージＩＤ）を表すので、この２９ビットのＩＤを上述の実施の形態におけるＩＤ（メッセージＩＤ）と扱えば良い。
【０１８６】
（３）上記実施の形態２では、フレームルールは繰り返し送信されるメッセージについての送信の周期を示しているが、これに限定されることはなく、フレームの送信の頻度（単位時間当たりの送信回数等）等といった送信の間隔に関連するルールを示すこととしても良い。このルールに従わない場合に、不正なフレームと扱うことになる。具体的には、ある一定期間のうちに同一のメッセージＩＤのフレームが送信された回数をカウントし、カウントした値が、フレームルールに適合しているか否かによって、異常（不正なフレーム）であるか否かを判断することとしても良い。例えば、フレームルールで示される一定期間の送信回数（ルールとして許容される送信回数）を、計測した回数が超えた場合に不正なフレームの送信がなされたと判断することができる。なお、フレームルールには、例えば、複数のフレームにおけるデータフレームの値の連続性についてのルールが含まれても良い。連続性についてのルールの一例は、例えばデータフィールドの値が、１、２、３と送信毎に所定値以上の変化をしないというルールである。このルールの場合には、データフィールドの値が１のフレームの次に２のフレームを受信すると正当なフレームと判断するが、データフィールドの値が２のフレームの次に１００のフレームを受信すると不正なフレームと判断することになる。
【０１８７】
（４）上記実施の形態２、３で示した不正検知ＥＣＵは、フレームルールに基づく不正なフレームの検知を、一定の場合（例えば車両のエンジンが始動する前、駐車中等）には実行しないこととしても良い。また、フレームルールに基づく不正なフレームの検知を中止した後に再開したときには、上述した時間計測部が再開後の最初のメッセージＩＤについての通知を、上述した初回の通知として上述した特別の取り扱いをすることができる。
【０１８８】
（５）上記実施の形態２で不正検知ＥＣＵが不正なフレームを検知した場合に送信したエラーメッセージを受信した各不正検知ＥＣＵ或いはＥＣＵは、そのエラーメッセージに含まれる不正なフレームのメッセージＩＤと同じＩＤのフレームを次に受信した時に、エラーフレームをバス上に送出することとしても良い。不正なフレームを検知した不正検知ＥＣＵ自体も、そのフレームのＩＤと同じメッセージＩＤを次に受信した時にエラーフレームをバス上に送出することとしても良い。これらのエラーフレームにより、一度不正と判断したフレームと同一内容の次回以後のフレームについての実行を阻止できる。
【０１８９】
（６）上記実施の形態では、不正検知ＥＣＵがフレームルールを用いてフレームの不正を判断しているが、フレームが不正か否かの判断を予め定められた特定のＥＣＵ（例えばヘッドユニット）が行うこととしても良い。この場合には、その特定のＥＣＵは、フレームルール保持部２１２０を備える。そして、不正検知ＥＣＵが、不正か否かの判断を依頼するフレームについて、送信周期の計測結果或いは所定単位時間当たりの送信回数の計測結果とそのフレームのメッセージＩＤとをその特定のＥＣＵに通知（送信）する。その特定のＥＣＵでは、フレームルール保持部２１２０のフレームルールを用いて、不正検知ＥＣＵから通知された計測結果に基づいて、その通知されたメッセージＩＤで識別されるフレーム（メッセージ）が不正か否かの判断を行う。不正なフレームと判断した場合には、その特定のＥＣＵはエラーメッセージを送信しても良いし、特定のＥＣＵがヘッドユニットであれば警告を表示したり、サーバ６００に不正なフレームのＩＤを示す情報を送信したりしても良い。なお、不正検知ＥＣＵは、フレームルール保持部２１２０に保持している、メッセージＩＤ毎の送信間隔等に関するルールを含むフレームルールには、含まれていないメッセージＩＤを受信したような場合に限って、特定のＥＣＵ（例えばヘッドユニット）に対して、送信周期の計測結果或いは送信回数の計測結果を通知して、不正か否かの判断を依頼することとしても良い。
【０１９０】
（７）上記実施の形態３では、ヘッドユニットが更新データフレームに格納する更新用ルール情報にＭＡＣを付加することにしたが、必ずしも更新用ルール情報にＭＡＣを付加しなくても良い。但し、ＭＡＣを付加すると、不正な更新データフレームの送信に対処し得るようになる。
【０１９１】
（８）上記実施の形態３では、ヘッドユニットが外部装置であるサーバと通信する構成を有することとしたが、ヘッドユニット以外のＥＣＵ（例えばゲートウェイ、不正検知ＥＣＵ等）がサーバと通信する構成を有することとしても良い。即ち、ヘッドユニット、ゲートウェイ、不正検知ＥＣＵ等が言わば外部通信電子制御ユニット（つまり外部装置と通信可能なＥＣＵ）として機能し得る。不正検知ＥＣＵがサーバと通信する構成を有する場合には、不正検知ＥＣＵが、不正なフレームを検知した場合にそのフレームのメッセージＩＤを示す情報を直接サーバに送信することとしても良く、また、サーバから更新用ルール情報を直接受信して、自機に保持するフレームルールをその更新用ルール情報に基づいて更新することとしても良い。
【０１９２】
（９）上記実施の形態３では、ゲートウェイが、更新用ルール情報が含まれる更新データフレームをバスから他のバスへと一律に転送する例を示した。しかし、更新用ルール情報が、１以上の特定のメッセージＩＤのフレームについての送信間隔に関するルールの集合である場合には、その更新用ルール情報は、その特定のメッセージＩＤが流れるバスに接続された不正検知ＥＣＵに届けば足りる。従って、ゲートウェイは、更新データフレームを受信した場合には、ルールの対象となるメッセージＩＤに応じて転送先のバスを選択して、選択したバスにのみ転送することとしても良い。また、ヘッドユニットが、更新データフレームの送信先となる不正検知ＥＣＵを限定して指定（例えばデータフィールド内において宛先の情報を入れて指定）しても良く、この場合にはゲートウェイは指定された宛先である不正検知ＥＣＵに繋がるバスにのみ更新データフレームを転送することとしても良い。なお、１つの更新データフレームが、１つのメッセージＩＤのフレームについてのルールに係る更新用ルール情報を含むこととしても良いし、複数のメッセージＩＤのフレームについてのルールに係る更新用ルール情報を含むこととしても良い。
【０１９３】
（１０）上記実施の形態３では、ＭＡＣ算出のアルゴリズムをＨＭＡＣとしているが、これＣＢＣ−ＭＡＣ（Cipher Block Chaining Message Authentication Code）、ＣＭＡＣ（(Cipher-based MAC）であっても良い。また、ＭＡＣ計算に用いられるパディングについては、ゼロパディング、ＩＳＯ１０１２６、ＰＫＣＳ＃１、ＰＫＣＳ＃５、ＰＫＣＳ＃７、その他、ブロックのデータサイズが計算に必要となるパディングの方式であれば何でも良い。また４ｂｙｔｅｓ等のブロックへのサイズの変更方法についても、先頭、最後尾、中間のいずれの部分にパディングを行っても良い。また、ＭＡＣ算出に用いるデータは、連続しているデータ（例えば４ｂｙｔｅｓ分の連続データ）でなくても、特定のルールに従って１ｂｉｔずつ収集して結合したものでも良い。また、ＭＡＣのサイズは４ｂｙｔｅｓに限定されず、例えば２ｂｙｔｅｓ等であっても良い。
【０１９４】
（１１）上記実施の形態で示したＣＡＮプロトコルは、ＴＴＣＡＮ（Time-Triggered CAN)、ＣＡＮＦＤ（CAN with Flexible Data Rate）等の派生的なプロトコルをも包含する広義の意味を有するものであっても良い。
【０１９５】
（１２）上記実施の形態における各ＥＣＵ（ゲートウェイ及びヘッドユニットを含む）は、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路等）によりその機能を実現することとしても良い。
【０１９６】
（１３）上記実施の形態における各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又はすべてを含むように１チップ化されても良い。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１９７】
（１４）上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしても良い。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
【０１９８】
（１５）本開示の一態様としては、上記に示す不正検知方法、不正対処方法等の方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０１９９】
（１６）上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
【産業上の利用可能性】
【０２００】
本開示は、車載ネットワークシステムにおいて不正なＥＣＵによる影響を効率的に抑制するために利用可能である。
【符号の説明】
【０２０１】
１０，１１，１２  車載ネットワークシステム
１００ａ，１００ｂ，２１００ａ，２１００ｂ，２１００ｃ，３１００ａ，３１００ｂ，３１００ｃ  不正検知電子制御ユニット（不正検知ＥＣＵ）
１１０  不正検知カウンタ保持部
１２０  正規ＩＤリスト保持部
１３０，２１３０，３１３０，３２４０  不正フレーム検知部
１４０，２３０，３２０  フレーム生成部
１５０，２６０，３５０，４５０  フレーム解釈部
１６０，２７０，３６０，４６０  フレーム送受信部
２００，３２００  ヘッドユニット
２１０  表示制御部
２２０，４１０  フレーム処理部
２３０，４２０  フレーム生成部
２４０，３３０，４３０  受信ＩＤ判断部
２５０，３４０，４４０  受信ＩＤリスト保持部
３００，３００ａ，３３００，３３００ａ  ゲートウェイ
３１０  転送処理部
３７０  転送ルール保持部
４００ａ，４００ｂ，４００ｃ，４００ｄ，４００ｅ  電子制御ユニット（ＥＣＵ）
４０１  エンジン
４０２  ブレーキ
４０３  ドア開閉センサ
４０４  窓開閉センサ
４０５  コーナーセンサ
４７０  データ取得部
５００ａ，５００ｂ，５００ｃ，５００ｄ  バス
５５０  外部ネットワーク
６００  サーバ
２１１０  時間計測部
２１２０  フレームルール保持部
３１１０，３２１０  ＭＡＣ生成部
３１２０，３２２０  ＭＡＣ鍵保持部
３１２１  更新部
３２３０  不正ＩＤリスト保持部
３２５０  サーバ通信部
３２６０  更新処理部
【図１】
2015159520.tif 000003
【図２】
2015159520.tif 000004
【図３】
2015159520.tif 000005
【図４】
2015159520.tif 000006
【図５】
2015159520.tif 000007
【図６】
2015159520.tif 000008
【図７】
2015159520.tif 000009
【図８】
2015159520.tif 000010
【図９】
2015159520.tif 000011
【図１０】
2015159520.tif 000012
【図１１】
2015159520.tif 000013
【図１２】
2015159520.tif 000014
【図１３】
2015159520.tif 000015
【図１４】
2015159520.tif 000016
【図１５】
2015159520.tif 000017
【図１６】
2015159520.tif 000018
【図１７】
2015159520.tif 000019
【図１８】
2015159520.tif 000020
【図１９】
2015159520.tif 000021
【図２０】
2015159520.tif 000022
【図２１】
2015159520.tif 000023
【図２２】
2015159520.tif 000024
【図２３】
2015159520.tif 000025
【図２４】
2015159520.tif 000026
【図２５】
2015159520.tif 000027
【図２６】
2015159520.tif 000028
【図２７】
2015159520.tif 000029
【図２８】
2015159520.tif 000030
【図２９】
2015159520.tif 000031
【図３０】
2015159520.tif 000032
【図３１】
2015159520.tif 000033
【図３２】
2015159520.tif 000034
【図３３】
2015159520.tif 000035
【図３４】
2015159520.tif 000036
【図３５】
2015159520.tif 000037
【図３６】
2015159520.tif 000038
【手続補正書】
【提出日】平成28年2月15日(2016.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、
前記不正検知方法は、
前記複数の不正検知電子制御ユニット各々は、前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定して、不正であった場合には前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信し、
前記ゲートウェイ装置は、前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信し、
前記ゲートウェイ装置は、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択し、
前記ゲートウェイ装置は、前記選択した第２バスにのみ受信した前記更新用ルール情報を転送し、
前記複数の不正検知電子制御ユニットのうち、前記選択した第２バスに接続された不正検知電子制御ユニットは、前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する
不正検知方法。
【請求項２】
前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って前記バスを介して通信を行う
請求項１記載の不正検知方法。
【請求項３】
前記車載ネットワークシステムは、さらに、外部通信電子制御ユニットを備え、
前記ゲートウェイ装置による更新用ルール情報の前記受信は、前記外部通信電子制御ユニットが外部装置から受信して前記第１バス上に送信した更新用ルール情報を、受信することにより行われる
請求項１記載の不正検知方法。
【請求項４】
前記外部装置から受信した更新用ルール情報の前記外部通信電子制御ユニットによる前記送信は、前記外部通信電子制御ユニットが、当該更新用ルール情報に対するメッセージ認証コードを生成し、生成したメッセージ認証コードを付して当該更新用ルール情報を送信することにより行われる
請求項３記載の不正検知方法。
【請求項５】
（削除）
【請求項６】
前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納したルール情報は、自装置が接続されたバス上で送信されるメッセージのメッセージ識別子と、当該メッセージについての送信に関するルールとを対応付けた情報である
請求項１記載の不正検知方法。
【請求項７】
前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納するルール情報は、自装置が接続されたバス上で繰り返し送信される１以上のメッセージについて、メッセージ識別子と、当該メッセージ識別子で識別されるメッセージについての送信周期又は所定単位時間当たりの送信回数に関するルールとを対応付けた情報であり、
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージが前記メモリに格納されたルール情報が示すルールに適合していない場合に、当該メッセージが不正であると判定する
請求項１記載の不正検知方法。
【請求項８】
前記不正検知方法では更に、
前記複数の不正検知電子制御ユニット各々が、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子を、前記複数の電子制御ユニットのうち特定の電子制御ユニットへ送信する
請求項７記載の不正検知方法。
【請求項９】
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての送信周期の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信周期の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１０】
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての所定単位時間あたりの送信回数の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信回数の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１１】
前記不正検知方法では更に、
前記外部通信電子制御ユニットが、前記複数の不正検知電子制御ユニットの何れかにより送信された、不正なメッセージのメッセージ識別子を含むエラーメッセージを受信し、当該メッセージ識別子を含む情報を前記外部装置に送信する
請求項３記載の不正検知方法。
【請求項１２】
複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムであって、
前記複数の不正検知電子制御ユニット各々は、
自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、
前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定する判定部と、
前記判定部によりメッセージが不正であると判定された場合には前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、
前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備え、
前記ゲートウェイ装置は、
前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信する受信部と、
受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、
前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備える
車載ネットワークシステム。
【請求項１３】
（削除）
【請求項１４】
前記更新用ルール情報は、１以上の特定のメッセージ識別子のメッセージについてのルールの集合であって、
前記ゲートウェイ装置は、前記特定のメッセージ識別子が流れるバスを転送先のバスとして選択する
請求項１記載の不正検知方法。
【請求項１５】
複数のバス間でメッセージを転送するゲートウェイ装置であって、
前記複数のバスに含まれる第１バスから更新用ルール情報を受信する受信部と、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、
前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備える
ゲートウェイ装置。
【請求項１６】
前記更新用ルール情報は、１以上の特定のメッセージ識別子のメッセージについてのルールの集合であって、
前記ゲートウェイ装置は、前記特定のメッセージ識別子が流れるバスを転送先のバスとして選択する
請求項１５記載のゲートウェイ装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
技術分野
［０００１］
本開示は、電子制御ユニットが通信を行う車載ネットワークにおいて送信された不正なフレームを検知する技術に関する。
背景技術
［０００２］
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ＩＳＯ１１８９８−１で規定されているＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）という規格が存在する（「非特許文献１」参照）。
［０００３］
ＣＡＮでは、通信路は２本のバスで構成され、バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、２本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「１」の値と、ドミナントと呼ばれる「０」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシプとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを６ｂｉｔ連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
［０００４］
またＣＡＮでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージＩＤと呼ばれるＩＤを付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたメッセージＩＤのみを受信す
【手続補正書】
【提出日】平成28年9月30日(2016.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、
前記不正検知方法では、
前記複数の不正検知電子制御ユニット各々は、前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定して、
不正であると判定された場合には、前記複数の不正検知電子制御ユニット各々は、前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信し、
前記ゲートウェイ装置は、前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信し、
前記ゲートウェイ装置は、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択し、
前記ゲートウェイ装置は、前記選択した第２バスにのみ受信した前記更新用ルール情報を転送し、
前記複数の不正検知電子制御ユニットのうち、前記選択した第２バスに接続された不正検知電子制御ユニットは、前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する
不正検知方法。
【請求項２】
前記複数の電子制御ユニットは、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＣＡＮ）プロトコルに従って前記バスを介して通信を行う
請求項１記載の不正検知方法。
【請求項３】
前記車載ネットワークシステムは、更に、外部通信電子制御ユニットを備え、
前記ゲートウェイ装置による更新用ルール情報の前記受信は、前記外部通信電子制御ユニットが外部装置から受信して前記第１バス上に送信した更新用ルール情報を、受信することにより行われる
請求項１記載の不正検知方法。
【請求項４】
前記外部装置から受信した更新用ルール情報の前記外部通信電子制御ユニットによる前記送信は、前記外部通信電子制御ユニットが、当該更新用ルール情報に対するメッセージ認証コードを生成し、生成したメッセージ認証コードを付して当該更新用ルール情報を送信することにより行われる
請求項３記載の不正検知方法。
【請求項５】
前記不正検知方法では更に、
前記外部通信電子制御ユニットが、前記複数の不正検知電子制御ユニットの何れかにより送信された、不正なメッセージのメッセージ識別子を含むエラーメッセージを受信し、当該メッセージ識別子を含む情報を前記外部装置に送信する
請求項３記載の不正検知方法。
【請求項６】
前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納したルール情報は、自装置が接続されたバス上で送信されるメッセージのメッセージ識別子と、当該メッセージについての送信に関するルールとを対応付けた情報である
請求項１記載の不正検知方法。
【請求項７】
前記複数の不正検知電子制御ユニット各々が自装置のメモリに格納するルール情報は、自装置が接続されたバス上で繰り返し送信される１以上のメッセージについて、メッセージ識別子と、当該メッセージ識別子で識別されるメッセージについての送信周期又は所定単位時間当たりの送信回数に関するルールとを対応付けた情報であり、
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージが前記メモリに格納されたルール情報が示すルールに適合していない場合に、当該メッセージが不正であると判定する
請求項１記載の不正検知方法。
【請求項８】
前記不正検知方法では更に、
前記複数の不正検知電子制御ユニット各々が、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子を、前記複数の電子制御ユニットのうち特定の電子制御ユニットへ送信する
請求項７記載の不正検知方法。
【請求項９】
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての送信周期の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信周期の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１０】
前記複数の不正検知電子制御ユニット各々は、前記メッセージ識別子で識別されるメッセージのうち、前記特定の電子制御ユニットで不正に送信されたと判定されたメッセージを除外して、前記送信周期又は前記所定単位時間当たりの送信回数を計測する
請求項９記載の不正検知方法。
【請求項１１】
前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されたメッセージのメッセージ識別子が前記メモリに格納されたルール情報に含まれていない場合に、当該メッセージ識別子に加えて、当該メッセージについての所定単位時間あたりの送信回数の計測結果を前記特定の電子制御ユニットへ送信し、
前記特定の電子制御ユニットは、前記メッセージ識別子及び前記送信回数の計測結果を受信して用いることにより、当該メッセージ識別子で識別されるメッセージが不正に送信されたか否かを判定する
請求項８記載の不正検知方法。
【請求項１２】
前記更新用ルール情報は、１以上の特定のメッセージ識別子のメッセージについてのルールの集合であって、
前記ゲートウェイ装置は、前記特定のメッセージ識別子が流れるバスを転送先のバスとして選択する
請求項１記載の不正検知方法。
【請求項１３】
複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムであって、
前記複数の不正検知電子制御ユニット各々は、
自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、
前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定する判定部と、
前記判定部によりメッセージが不正であると判定された場合には前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、
前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備え、
前記ゲートウェイ装置は、
前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信する受信部と、
受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、
前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備える
車載ネットワークシステム。
【請求項１４】
複数のバス間でメッセージを転送するゲートウェイ装置であって、
前記複数のバスに含まれる第１バスから更新用ルール情報を受信する受信部と、
受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、
前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備える
ゲートウェイ装置。
【請求項１５】
前記更新用ルール情報は、１以上の特定のメッセージ識別子のメッセージについてのルールの集合であって、
前記ゲートウェイ装置は、前記特定のメッセージ識別子が流れるバスを転送先のバスとして選択する
請求項１４記載のゲートウェイ装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記課題を解決するために本開示の一態様に係る不正検知方法は、  複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリを有し、前記不正検知方法では、前記複数の不正検知電子制御ユニット各々は、前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定して、不正であると判定された場合には、前記複数の不正検知電子制御ユニット各々は、前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信し、前記ゲートウェイ装置は、前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信し、前記ゲートウェイ装置は、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択し、前記ゲートウェイ装置は、前記選択した第２バスにのみ受信した前記更新用ルール情報を転送し、前記複数の不正検知電子制御ユニットのうち、前記選択した第２バスに接続された不正検知電子制御ユニットは、前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する不正検知方法である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、複数のバスを介した通信によりメッセージの授受を行う複数の電子制御ユニットと、前記複数のバスのうちの互いに異なる一つに接続された複数の不正検知電子制御ユニットと、ゲートウェイ装置とを備える車載ネットワークシステムであって、前記複数の不正検知電子制御ユニット各々は、自装置が接続されたバス上で送信されるメッセージについての送信に関するルールを示すルール情報を格納するメモリと、前記メモリに格納されたルール情報を用いて、自装置が接続されたバス上で送信されたメッセージが不正か否かを判定する判定部と、前記判定部によりメッセージが不正であると判定された場合には前記不正と判定されたメッセージのメッセージ識別子を含むエラーメッセージを送信する送信部と、前記ゲートウェイ装置から転送された更新用ルール情報を取得して、取得した前記更新用ルール情報を用いて前記メモリに格納された前記ルール情報を更新する更新部とを備え、前記ゲートウェイ装置は、前記複数のバスに含まれる第１バスに送信された更新用ルール情報を受信する受信部と、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備える車載ネットワークシステムである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、上記課題を解決するために本開示の一態様に係るゲートウェイ装置は、複数のバス間でメッセージを転送するゲートウェイ装置であって、前記複数のバスに含まれる第１バスから更新用ルール情報を受信する受信部と、受信した前記更新用ルール情報が示す更新ルールの対象となるメッセージ識別子に応じて、前記第１バスを除く前記複数のバスの中から第２バスを転送先のバスとして選択する選択部と、前記選択した第２バスにのみ受信した前記更新用ルール情報を転送する転送部と、を備えるゲートウェイ装置である。
【国際調査報告】
2015159520.tif 000039
2015159520.tif 000040
2015159520.tif 000041
2015159520.tif 000042