(57)【要約】【課題】車載ネットワークのセキュリティの向上を容易化する。【解決手段】車載ネットワークシステム１２は、ＥＣＵ１４とセキュリティＥＣＵ２０を備える。セキュリティＥＣＵ２０は、ＥＣＵ１４から送信されたフレームが不正であるか否かを判定するための規則を所定の記憶領域に保持する。セキュリティＥＣＵ２０は、予め保持された規則にしたがって、ＥＣＵ１４から送信されたフレームが不正であるかを判定する。セキュリティＥＣＵ２０は、所定の条件が満たされた場合に、ＥＣＵ１４に対して上記規則を要求するデータを送信する。ＥＣＵ１４は、上記要求するデータに応じて、予め記憶する規則をセキュリティＥＣＵ２０へ送信する。セキュリティＥＣＵ２０は、ＥＣＵ１４から受信した規則により上記記憶領域に保持された規則を更新する。【選択図】図１
2018111468.tif 000002
【特許請求の範囲】
【請求項１】
車載ネットワークを介して他の電子制御ユニットと接続される不正検知電子制御ユニットであって、
前記他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶する記憶部と、
前記規則にしたがって、前記他の電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、を備え、
前記記憶部は、所定の条件が満たされた場合に、前記他の電子制御ユニットが保持する規則を取得して、記憶された前記規則を更新する、
不正検知電子制御ユニット。
【請求項２】
前記記憶部は、前記他の電子制御ユニットが保持する規則の第一バージョンの値を取得し、取得した前記第一バージョンの値と、前記記憶部が予め記憶する規則の第二バージョンの値との比較結果に応じて、記憶された前記規則を更新する、
請求項１に記載の不正検知電子制御ユニット。
【請求項３】
規則のバージョンの値は、メジャーバージョンの値と、マイナーバージョンの値を含み、
前記記憶部は、（１）取得した第一メジャーバージョンの値と予め記憶する第二メジャーバージョンの値が一致する場合、取得した第一マイナーバージョンの値が予め記憶する第二マイナーバージョンの値より新しければ、記憶された前記規則を更新し、（２）取得した第一メジャーバージョンの値と予め記憶する第二メジャーバージョンの値が不一致の場合、前記第一メジャーバージョンの値が前記第二メジャーバージョンの値より古くても、記憶された前記規則を更新する、
請求項２に記載の不正検知電子制御ユニット。
【請求項４】
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであって、
前記車載ネットワーク上に送信された、前記電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶する記憶部と、
前記不正検知電子制御ユニットから、規則の送信要求を受信する受信部と、
前記規則の送信要求に応じて、前記電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを前記不正検知電子制御ユニットが判定するために使用する、前記記憶部に記憶された規則を前記不正検知電子制御ユニットへ送信する送信部と、
を備える電子制御ユニット。
【請求項５】
電子制御ユニットと、
車載ネットワークを介して前記電子制御ユニットと接続される不正検知電子制御ユニットと、を備え、
前記不正検知電子制御ユニットは、
前記電子制御ユニットから送信されたフレームが不正であるか否かを判定するための規則を記憶する第一記憶部と、
前記規則にしたがって、前記電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、
所定の条件が満たされた場合に、前記電子制御ユニットに対して規則の送信要求を送信する第一送信部と、を含み、
前記電子制御ユニットは、前記規則の送信要求に応じて、第二記憶部に予め記憶する規則を前記不正検知電子制御ユニットへ送信する第二送信部を含み、
前記不正検知電子制御ユニットは、前記電子制御ユニットから受信した規則を前記第一記憶部へ記憶する、
車載ネットワークシステム。
【請求項６】
車載ネットワークを介して他の電子制御ユニットと接続され、かつ、前記他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶部に記憶する不正検知電子制御ユニットが、
前記規則にしたがって、前記他の電子制御ユニットから送信されたフレームが不正であるかを判定し、
所定の条件が満たされた場合に、前記他の電子制御ユニットが保持する規則を取得して、前記記憶部に記憶する規則を更新する、
不正検知方法。
【請求項７】
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであり、かつ、前記電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶部に記憶する電子制御ユニットが、
前記不正検知電子制御ユニットから、規則の送信要求を受信し、
前記規則の送信要求に応じて、前記電子制御ユニットから送信されたフレームが不正であるかを前記不正検知電子制御ユニットが判定するために使用する、前記記憶部に記憶された規則を前記不正検知電子制御ユニットへ送信する、
不正検知方法。
【請求項８】
車載ネットワークを介して他の電子制御ユニットと接続され、かつ、前記他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶部に記憶する不正検知電子制御ユニットに、
前記規則にしたがって、前記他の電子制御ユニットから送信されたフレームが不正であるかを判定し、
所定の条件が満たされた場合に、前記他の電子制御ユニットが保持する規則を取得して、前記記憶部に記憶する規則を更新する、
ことを実行させるためのコンピュータプログラム。
【請求項９】
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであり、かつ、前記電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶部に記憶する電子制御ユニットに、
前記不正検知電子制御ユニットから、規則の送信要求を受信し、
前記規則の送信要求に応じて、前記電子制御ユニットから送信されたフレームが不正であるかを前記不正検知電子制御ユニットが判定するために使用する、前記記憶部に記憶された規則を前記不正検知電子制御ユニットへ送信する、
ことを実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理技術に関し、特に不正検知電子制御ユニット、電子制御ユニット、車載ネットワークシステム、不正検知方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自動車には、多数の電子制御ユニット（Electronic Control Unit、以下「ＥＣＵ」と呼ぶ。）が配置されている。これらのＥＣＵを繋ぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには多数の規格が存在するが、広く普及した規格としてＣＡＮ（Controller Area Network）がある。
【０００３】
車載ネットワーク上に不正なＥＣＵが接続されていることを検知するため、車載ネットワークに接続された不正検知ＥＣＵが、車載ネットワーク上を流れるフレームを監視する方法が提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１５９５２０号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法では、不正検知ＥＣＵが、予め定義しておいた不正判定ルールに基づいて、他のＥＣＵが送信したフレームが不正かを判定する。そのため、車載ネットワークに接続されるＥＣＵの種類に対応する不正判定ルールを、予め不正検知ＥＣＵに格納しておく必要があるが、車載ネットワークに接続されるＥＣＵの種類に応じて、あるいは、ＥＣＵの修理交換またはファームウェアの更新に伴い、不正検知ＥＣＵに格納する不正判定ルールを個々に調整することは容易でなく、改善の余地があると本発明者は考えた。
【０００６】
本願発明は上記課題に鑑みたもので、１つの目的は、車載ネットワークのセキュリティの向上を容易化する技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の不正検知電子制御ユニットは、車載ネットワークを介して他の電子制御ユニットと接続される不正検知電子制御ユニットであって、他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶する記憶部と、規則にしたがって、他の電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、を備える。記憶部は、所定の条件が満たされた場合に、他の電子制御ユニットが保持する規則を取得して、記憶された規則を更新する。
【０００８】
本発明の別の態様は、電子制御ユニットである。この電子制御ユニットは、車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであって、車載ネットワーク上に送信された、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶する記憶部と、不正検知電子制御ユニットから、規則の送信要求を受信する受信部と、規則の送信要求に応じて、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを不正検知電子制御ユニットが判定するために使用する、記憶部に記憶された規則を不正検知電子制御ユニットへ送信する送信部と、を備える。
【０００９】
本発明のさらに別の態様は、車載ネットワークシステムである。この、車載ネットワークシステムは、電子制御ユニットと、車載ネットワークを介して電子制御ユニットと接続される不正検知電子制御ユニットと、を備える。不正検知電子制御ユニットは、電子制御ユニットから送信されたフレームが不正であるか否かを判定するための規則を記憶する第一記憶部と、規則にしたがって、電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、所定の条件が満たされた場合に、電子制御ユニットに対して規則の送信要求を送信する第一送信部と、を含む。電子制御ユニットは、規則の送信要求に応じて、第二記憶部に予め記憶する規則を不正検知電子制御ユニットへ送信する第二送信部を含む。不正検知電子制御ユニットは、電子制御ユニットから受信した規則を第一記憶部へ記憶する。
【００１０】
本発明のさらに別の態様は、不正検知方法である。この方法は、車載ネットワークを介して他の電子制御ユニットと接続され、かつ、他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶部に記憶する不正検知電子制御ユニットが、規則にしたがって、他の電子制御ユニットから送信されたフレームが不正であるかを判定し、所定の条件が満たされた場合に、他の電子制御ユニットが保持する規則を取得して、記憶部に記憶する規則を更新する。
【００１１】
本発明のさらに別の態様もまた、不正検知方法である。この方法は、車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであり、かつ、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶部に記憶する電子制御ユニットが、不正検知電子制御ユニットから、規則の送信要求を受信し、規則の送信要求に応じて、電子制御ユニットから送信されたフレームが不正であるかを不正検知電子制御ユニットが判定するために使用する、記憶部に記憶された規則を不正検知電子制御ユニットへ送信する。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を、コンピュータプログラム、コンピュータプログラムを記録した記録媒体、本装置を搭載した車両などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、車載ネットワークのセキュリティの向上を容易化することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例の車載ネットワークシステムの構成を示す図である。
【図２】図１のＥＣＵの機能構成を示すブロック図である。
【図３】不正判定ルールの構成を示す図である。
【図４】図１のセキュリティＥＣＵの機能構成を示すブロック図である。
【図５】図１のＥＣＵの動作を示すフローチャートである。
【図６】図１のセキュリティＥＣＵの動作を示すフローチャートである。
【図７】図６のＳ５０の不正判定処理を詳細に示すフローチャートである。
【図８】不正判定ルールの更新の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
実施例の構成を詳細に説明する前にまず概要を述べる。車載ネットワーク上に不正なＥＣＵが接続されていることを検知するために、不正検知ＥＣＵは、他のＥＣＵ（言い換えれば不正か否かの検査対象となるＥＣＵであり、「検査対象ＥＣＵ」とも呼ぶ。）から送信されたフレームが不正か否かを判定することがある。車載ネットワークに接続される検査対象ＥＣＵの種類に応じて、不正検知ＥＣＵに格納する不正判定ルールを個々に調整する必要があり、従来、不正検知ＥＣＵおよび不正判定ルールの管理が煩雑になってしまうことがあった。また、検査対象ＥＣＵの修理交換またはファームウェアの更新に伴い不正判定ルールが変更になる場合、不正検知ＥＣＵが保持する不正判定ルールも正しく更新する必要があるが、この更新の管理も従来容易ではなかった。
【００１６】
そこで、実施例の車載ネットワークシステムでは、検査対象ＥＣＵが、自身が送信するフレームと同じフレームＩＤのフレームを検査するための不正判定ルールを保持しておき、不正検知ＥＣＵへ提供する。不正検知ＥＣＵは、各検査対象ＥＣＵから提供された不正判定ルールに基づいて、各検査対象ＥＣＵから送信されたフレームが不正なものか否かを判定する。
【００１７】
図１は、実施例の車載ネットワークシステムの構成を示す。車載ネットワークシステム１２は、自動車１０に構築された通信システムであり、ＥＣＵ１４ａ、ＥＣＵ１４ｂ（以下総称する場合、単に「ＥＣＵ１４」と呼ぶ。）、セキュリティＥＣＵ２０を備える。ＥＣＵ１４とセキュリティＥＣＵ２０は、ＣＡＮ２２を介して接続され、ＣＡＮのプロトコルにしたがってフレームを送受信する。
【００１８】
ＥＣＵ１４ａとＥＣＵ１４ｂは上記の検査対象ＥＣＵに該当する。ＥＣＵ１４ａは、速度センサ、窓開閉センサ等のセンサ１６と接続され、センサ１６で検出された情報、例えば車速、窓開閉状態等を示すフレームをＣＡＮ２２へ送信する。ＥＣＵ１４ｂは、アクチュエータ１８（例えばブレーキアクチュエータ等）と接続され、ＣＡＮ２２から受け付けたフレームに基づいてアクチュエータ１８を制御する。またＥＣＵ１４ｂは、アクチュエータ１８の状態を示すフレームをＣＡＮ２２を介してセキュリティＥＣＵ２０へ送信する。
【００１９】
セキュリティＥＣＵ２０は、上記の不正検知ＥＣＵに該当する。セキュリティＥＣＵ２０は、複数のＥＣＵ１４から送信された複数のフレームが不正か否かを判定することにより、ＣＡＮ２２に不正なフレームを送信する検査対象ＥＣＵが接続されているか否かを判定する。
【００２０】
図２は、図１のＥＣＵ１４の機能構成を示すブロック図である。ＥＣＵ１４は、受信バッファ３０、ルール保持部３２、フレーム送受信部３４、フレーム解釈部３６、データ送受信部３８、フレーム生成部４０を備える。本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵ・メモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２１】
例えば、フレーム送受信部３４、フレーム解釈部３６、データ送受信部３８、フレーム生成部４０に対応するモジュールを含むコンピュータプログラムがＥＣＵ１４のＲＯＭに格納されてもよい。ＥＣＵ１４のＣＰＵは、そのコンピュータプログラムをＥＣＵ１４のＲＡＭに適宜読み出して実行することにより、各ブロックの機能を発揮してもよい。受信バッファ３０およびルール保持部３２は、ＥＣＵ１４のＲＯＭまたはＲＡＭにより実現されてもよい。
【００２２】
受信バッファ３０は、ＣＡＮ２２から受信したフレームデータを一時的に保持する記憶領域である。ルール保持部３２は、不正判定ルールを保持する記憶領域である。ルール保持部３２に保持される不正判定ルールは、ＥＣＵ１４自身（すなわち自装置）から送信するフレーム（例えばＣＡＮのリモートフレーム、データフレーム等）と同じフレームＩＤのフレームが不正なものか否かを判定するための基準または規則を定めたデータである。
【００２３】
図３は、不正判定ルールの構成を示す。不正判定ルール５０は、フレームＩＤ、個別判定ルール５２、外部参照判定ルール５４、ＥＣＵ型番、バージョン番号、改ざん検出用チェック値を含む。フレームＩＤには、不正判定ルール５０による判定対象のフレームに付与されるＩＤ値が設定される。実施例では、フレームの種類ごと、かつ、フレーム送信元のＥＣＵ１４ごとにユニークなフレームＩＤが定められる。
【００２４】
ＥＣＵ型番には、不正判定ルール５０の提供元であるＥＣＵ１４の識別子が設定される。バージョン番号には、不正判定ルール５０のバージョン番号が設定され、実施例ではメジャーバージョン番号とマイナーバージョン番号の両方が設定される。改ざん検出用チェック値には、所定の共通鍵と不正判定ルール５０のデータとに基づいて生成されたメッセージ認証コード（ＭＡＣデータ）が設定されてもよく、不正判定ルール５０に対して一般的なデジタル署名を行ったものが設定されてもよい。
【００２５】
個別判定ルール５２と外部参照判定ルール５４は、不正判定ルール５０の提供元であるＥＣＵ１４自身（例えばＥＣＵ１４ａ）が送信するフレームに関するルールである点で共通する。相違点として、個別判定ルール５２は、不正か否かの判定条件が、当該ＥＣＵ１４（例えばＥＣＵ１４ａ）が送信するフレームのみに関係する。一方、外部参照判定ルール５４は、不正か否かの判定条件が、当該ＥＣＵ１４（例えばＥＣＵ１４ａ）が送信するフレームだけでなく、他のＥＣＵ（例えばＥＣＵ１４ｂ）が送信するフレームにも関係する。
【００２６】
個別判定ルール５２は、フレームデータ長、送信周期、送信頻度を含む。フレームデータ長には、フレームのデータ長として取り得る値または範囲を指定する。後述のセキュリティＥＣＵ２０の不正判定部７０は、指定の値または範囲から外れたデータ長を持つフレームを不正と判定する。フレームデータ長の設定値として、例えば上限値と下限値が指定されてもよい。
【００２７】
送信周期には、本フレームＩＤのフレームがＣＡＮ２２上に出現する周期を指定する。後述のセキュリティＥＣＵ２０の不正判定部７０は、本フレームＩＤのフレームの前回の出現時刻（ＣＡＮ２２からの受信時刻とも言える）を記憶しておき、今回の出現時刻との差が送信周期を外れている場合、不正なフレームと判定する。送信周期の設定値として、例えばマージンを含む周期の上限値と下限値が指定されてもよい。
【００２８】
送信頻度には、本フレームＩＤのフレームがＣＡＮ２２上に出現する頻度を指定する。後述のセキュリティＥＣＵ２０の不正判定部７０は、ある時点から予め定められた単位時間経過後までの出現回数（ＣＡＮ２２からの受信回数とも言える）をカウントし、カウント値が送信頻度の指定範囲を外れている場合、不正なフレームと判定する。送信頻度の設定値として、例えば出現回数の上限値と下限値が指定されてもよい。個別判定ルール５２を用いた不正判定では、フレームデータ長、送信周期、送信頻度それぞれの値について指定範囲を逸脱するか否かを判定し、１つでも逸脱すれば不正なフレームと判定する。なお、個別判定ルール５２は、ここに挙げたルールに限定されるものではなく、ＥＣＵ１４自身が送信するフレームに関する他のルールを含めてもよい。
【００２９】
外部参照判定ルール５４は、参照フレーム情報、参照判定ルール要素、参照判定ルール演算式、判定ルール参照データ情報を含む。参照フレーム情報には、本ルール内で参照する、他のフレームのデータに関する情報が設定される。参照フレーム情報は、内部パラメータとして判定ルール参照データ識別子を含み、複数の判定ルール参照データ識別子が設定可能である。判定ルール参照データ識別子には、参照判定ルール要素が使用する判定ルール参照データの識別子（データ項目の名称やＩＤ等）が指定される。
【００３０】
参照判定ルール要素には、参照フレーム情報により指定された項目のデータに対する判定規則（言い換えれば不正判定基準）が設定される。参照判定ルール要素は、内部パラメータとして参照フレーム情報、判定条件、判定基準値の組を含み、複数の組が設定可能である。参照フレーム情報には、あるルール要素において参照する特定の参照フレーム情報の識別子等（例えばインデックス値）が指定される。判定条件には、特定の参照フレーム情報で指定される判定ルール参照データと判定基準値を用いて行う判定条件の種別が指定される。判定条件の種別は「等しい」「より大きい」「より小さい」等を含む。判定基準値は、判定に使用する基準値が指定される。判定基準値は、数値自体を指定する他、第２の参照フレーム情報の識別子等であってもよい。この場合は判定基準値として第２の参照フレーム情報によって保持された判定ルール参照データを判定基準値として用いる。すなわち、参照フレーム情報によって保持された判定ルール参照データと判定基準値とを比較して判定条件の充足を判定することにより、参照判定ルール要素の真偽値が求められる。
【００３１】
参照判定ルール演算式には、判定結果を求めるための演算式が設定される。参照判定ルール演算式は、内部パラメータとして演算子と参照判定ルール要素の組を含み、複数の組が設定可能である。演算子には、参照判定ルール要素を結合する演算子が指定される。参照判定ルール要素には、結合対象となる参照判定ルール要素が指定される。すなわち、参照判定ルール演算式では、個々の参照判定ルール要素で保持した個々の真偽値を演算子で結合し、最終的な判定結果を求めるための演算式を指定する。演算式は、逆ポーランド記法により記述され、格納されてもよい。
【００３２】
判定ルール参照データ情報には、他フレームで指定可能な判定ルール参照データに関する情報が設定される。判定ルール参照データ情報は、内部パラメータとして判定ルール参照データ識別子と判定ルール参照データ位置の組を含み、複数の組が設定可能である。判定ルール参照データ識別子には、他フレームにより参照可能な当該フレームデータの識別子（データ項目名、ＩＤ等）であり、車載ネットワークシステム１２において一意の値が指定される。
【００３３】
判定ルール参照データ位置には、判定ルール参照データ識別子により識別されるデータの位置が指定される。言い換えれば、判定ルール参照データ位置には、本フレーム（フレームＩＤで特定されるフレーム）に含まれるデータブロックの中で、他フレームが参照するブロックの位置がバイトオフセットとビット位置により指定される。すなわち、判定ルール参照データ情報は、他フレームが参照可能な本フレーム内のデータブロックの位置と、その識別子を定義するものであり、他フレームの参照フレーム情報で指定されうる情報である。なお、外部参照判定ルール５４は、ここに挙げたルールに限定するものではなく、他のＥＣＵから送信されるフレームに関する他のルールを含めてもよい。
【００３４】
図２に戻り、フレーム送受信部３４は、ＣＡＮ２２との間でＣＡＮプロトコルにしたがってフレームを送受信する。フレーム送受信部３４は、ＣＡＮ２２からフレームのデータを１ビットずつ受信し、フレーム解釈部３６へ送る。また、フレーム生成部４０から出力されたフレームをＣＡＮ２２へ送信する。
【００３５】
フレーム解釈部３６は、フレーム送受信部３４から１ビットずつフレームのデータを取得し、ＣＡＮプロトコルにしたがってデータを解釈する。フレーム解釈部３６は、取得したデータがＣＡＮプロトコルに則していないと判断した場合、１フレーム分のデータを受信する前であっても、エラーフレームの送信指示をフレーム生成部４０へ通知する。フレーム解釈部３６は、取得したデータがＣＡＮプロトコルに即している場合は、取得したデータを受信バッファ３０へ格納する。
【００３６】
フレーム解釈部３６は、１フレーム分の受信が完了し、フレームＩＤが処理対象となる所定値である場合、ＥＣＵの種類ごとに異なるフレームの処理を実行する。フレーム解釈部３６は、フレームの処理において必要に応じて、センサ１６またはアクチュエータ１８へ送信すべきデータをデータ送受信部３８へ送る。フレーム解釈部３６は、１フレーム分の処理が完了すると、受信バッファ３０をクリアする。
【００３７】
データ送受信部３８は、フレーム解釈部３６から受け付けたデータをＥＣＵ１４に接続されたセンサ１６またはアクチュエータ１８へ送信する。また、データ送受信部３８は、センサ１６またはアクチュエータ１８から受け付けたデータをフレーム生成部４０へ送る。
【００３８】
フレーム生成部４０は、データ送受信部３８からデータを受け付け、ＣＡＮプロトコルにしたがってフレームを生成する。例えば、データ送受信部３８から受け付けたデータの種類に応じたフレームＩＤを設定したフレームであり、データ送受信部３８から受け付けたデータの少なくとも一部を含むフレームを生成する。フレーム生成部４０は、生成したフレームをフレーム送受信部３４へ送る。また、フレーム生成部４０は、フレーム解釈部３６からエラーフレームの送信指示を受け付けた場合、エラーフレームを生成してフレーム送受信部３４へ送る。
【００３９】
実施例のＥＣＵ１４の特徴的な構成を説明する。フレーム送受信部３４とフレーム解釈部３６は互いに連携し、セキュリティＥＣＵ２０から、不正判定ルール５０の送信を要求する要求データを受け付ける受信部として機能する。具体的には、フレーム解釈部３６は、フレーム送受信部３４を介してＣＡＮ２２から受信されたフレームのＩＤが、不正判定ルール５０の本体データを要求する第１所定値である場合、不正判定ルール５０の本体データの送信指示をフレーム生成部４０へ送る。また、フレーム解釈部３６は、受信されたフレームのＩＤが、不正判定ルール５０のバージョン情報を要求する第２所定値である場合、不正判定ルール５０のバージョン情報の送信指示をフレーム生成部４０へ送る。
【００４０】
フレーム生成部４０とフレーム送受信部３４は互いに連携し、上記の受信部で受け付けられた要求データに応じて、ルール保持部３２に保持された不正判定ルール５０をセキュリティＥＣＵ２０へ送信する送信部として機能する。具体的には、フレーム生成部４０は、フレーム解釈部３６から不正判定ルール５０の本体データの送信指示を受け付けた場合、ルール保持部３２に保持された不正判定ルール５０の全データを含むフレームを生成する。フレーム送受信部３４は、不正判定ルール５０の全データを含むフレームをＣＡＮ２２へ送信する。
【００４１】
また、フレーム生成部４０は、フレーム解釈部３６から不正判定ルール５０のバージョン情報の送信指示を受け付けた場合、ルール保持部３２に保持された不正判定ルール５０のバージョン情報のみを含むフレームを生成する。フレーム送受信部３４は、不正判定ルール５０のバージョン情報のみを含むフレームをＣＡＮ２２へ送信する。
【００４２】
図４は、図１のセキュリティＥＣＵ２０の機能構成を示すブロック図である。セキュリティＥＣＵ２０は、受信バッファ６０、ルール保持部６２、参照データ保持部６４、フレーム送受信部６６、フレーム解釈部６８、不正判定部７０、フレーム生成部７２を備える。セキュリティＥＣＵ２０の受信バッファ６０、フレーム送受信部６６、フレーム解釈部６８、フレーム生成部７２は、図２に示したＥＣＵ１４の受信バッファ３０、フレーム送受信部３４、フレーム解釈部３６、フレーム生成部４０に対応する。以下、これらの機能ブロックのうち説明済みの構成については再度の説明を省略する。
【００４３】
ルール保持部６２は、外部のＥＣＵ１４から送信されたフレームが不正であるか否かを判定するための不正判定ルール（図３）を記憶する記憶領域を含む。ルール保持部６２は、車載ネットワークシステム１２内の複数のＥＣＵ１４それぞれから提供された不正判定ルールを各ＥＣＵ１４に対応づけて保持する。言い換えれば、ルール保持部６２は、各ＥＣＵから送信するフレームと同じフレームＩＤを有するフレームが不正か否かを判定するために、ＥＣＵごとの不正判定ルールを保持する。
【００４４】
具体的には、ルール保持部６２は、フレーム解釈部６８から送出された更新用の不正判定ルールを受け付け、更新用の不正判定ルールに含まれるＥＣＵ型番に対応付けて、当該不正判定ルールを所定の記憶領域へ新規格納する。ルール保持部６２は、更新用の不正判定ルールに含まれるＥＣＵ型番に対応付けて既存の不正判定ルールが格納済みの場合、更新用の不正判定ルールにより既存の不正判定ルールを更新する。
【００４５】
ルール保持部６２は、不正判定ルールの新規格納または更新時に、バージョン値のチェック処理、および、改ざん有無のチェック処理をさらに実行する。また、ルール保持部６２は、不正判定部７０から受け付けたフレームＩＤに対応する不正判定ルールを不正判定部７０へ送る。
【００４６】
ここで、実施例における不正判定ルールのバージョン管理処理を説明する。一部既述したように、ルール保持部６２は、複数のＥＣＵ１４それぞれのＥＣＵ型番、不正判定ルール、メジャーバージョン番号、マイナーバージョン番号を改ざんできない形で保持する。各ＥＣＵ１４は、ＥＣＵ型番、メジャーバージョン番号、マイナーバージョン番号を付与した不正判定ルールをセキュリティＥＣＵ２０へ送る。ルール保持部６２は、ＥＣＵ１４から取得したＥＣＵ型番に対応する不正判定ルールについて、ＥＣＵ１４から取得したメジャーバージョン番号と、ルール保持部６２で予め保持するメジャーバージョンとを比較する。
【００４７】
両者のメジャーバージョン番号が不一致の場合、ルール保持部６２は、ＥＣＵ１４から取得した不正判定ルールをルール保持部６２へ新規格納する。または、ＥＣＵ１４から取得した不正判定ルールによりルール保持部６２における既存の不正判定ルールを更新し、すなわち置き換える。両者のメジャーバージョン番号が不一致の場合、両者のメジャーバージョン番号の大小関係、両者のマイナーバージョン番号の異同に関わらず、ルール保持部６２の不正判定ルールを更新する。また、ＥＣＵ１４から取得したメジャーバージョン番号がルール保持部６２で予め保持するメジャーバージョン番号より古いものであっても、ルール保持部６２の不正判定ルールを更新する。例えば、ＥＣＵ１４から取得したＥＣＵ型番に対応付けられたルール保持部６２の既存データを、ＥＣＵ１４から取得した不正判定ルール、メジャーバージョン番号、マイナーバージョン番号に置き換える。
【００４８】
ＥＣＵ１４が保持するメジャーバージョン番号と、セキュリティＥＣＵ２０が保持するメジャーバージョン番号が不一致とは、ＥＣＵ１４が交換された場合（例えば古い形式のＥＣＵ１４へ交換された場合）等に発生する。また、メジャーバージョンが異なれば、個別判定ルールおよび外部参照判定ルールが大きく変化している可能性がある。そのため、セキュリティＥＣＵ２０が保持する不正判定ルールを、ＥＣＵ１４にあわせて更新することが望ましいと言える。
【００４９】
一方、両者のメジャーバージョン番号が一致する場合、ルール保持部６２は、ＥＣＵ１４から取得したＥＣＵ型番に対応する不正判定ルールについて、ＥＣＵ１４から取得したマイナーバージョン番号と、ルール保持部６２で予め保持するマイナーバージョン番号とをさらに比較する。ルール保持部６２は、ＥＣＵ１４から取得したマイナーバージョンの値が、ルール保持部６２で予め保持するマイナーバージョンの値より新しいこと（例えばより大きい番号であること）を条件として、ＥＣＵ１４から取得した不正判定ルールによりルール保持部６２における既存の不正判定ルールを更新する。メジャーバージョン番号が一致すれば不正判定ルールが大きく変化している可能性は低く、また、マイナーバージョン番号が新しい方が、より新しい機能追加およびバグ修正に対応していると考えられるからである。
【００５０】
変形例として、不正判定ルールには、メジャーバージョン番号とマイナーバージョン番号とに区分けされない単一種類のバージョン番号が対応付けられてもよい。セキュリティＥＣＵ２０のルール保持部６２は、ＥＣＵ１４から取得したＥＣＵ型番に対応する不正判定ルールについて、ＥＣＵ１４から取得したバージョン番号が、ルール保持部６２で予め保持するバージョン番号より新しい場合に、ＥＣＵ１４から取得した不正判定ルールによりルール保持部６２における既存の不正判定ルールを更新してもよい。
【００５１】
次に、実施例における改ざん有無のチェック処理を説明する。セキュリティＥＣＵ２０のルール保持部６２は、ルートＣＡ（Certificate Authority）証明書を改ざんされない形で保持する。各ＥＣＵ１４は、上記のルートＣＡ証明書により署名検証可能な署名されたＥＣＵ証明書と、ＥＣＵ証明書に対応する秘密鍵を使って署名された自身の不正判定ルールを保持する。各ＥＣＵ１４は、ＥＣＵ証明書と、署名付きの不正判定ルールをセキュリティＥＣＵ２０へ送る。セキュリティＥＣＵ２０のルール保持部６２は、ＥＣＵ証明書をルートＣＡ証明書を使用して検証し、不正判定ルールをＥＣＵ証明書を使用して検証する。セキュリティＥＣＵ２０のルール保持部６２は、上記２つの検証の両方が成功した場合に、不正判定ルールを更新する。なお署名付与および検証には、一般的なデジタル署名アルゴリズムを使用する。
【００５２】
参照データ保持部６４は、第１フレームに対する不正判定処理で参照される第２フレームのデータとその識別子（すなわち判定ルール参照データ識別子）とを対応付けて保持する。言い換えれば、参照データ保持部６４は、第２フレーム（のフレームＩＤ）に対応する不正判定ルールで定められた判定ルール参照データ情報にしたがって第２フレームから抽出されたデータである判定ルール参照データを保持する。
【００５３】
フレーム解釈部６８は、１フレーム分の受信が完了し、受信フレームをそのＩＤに基づいて更新用の不正判定ルールと解釈した場合、そのフレームをルール保持部６２へ送る。フレーム解釈部６８は、受信フレームを更新用の不正判定ルールと解釈しない場合、すなわち不正判定対象データと解釈した場合、そのフレームを不正判定部７０へ送る。フレーム解釈部６８は、１フレーム分の処理が完了すると受信バッファ６０をクリアする。
【００５４】
不正判定部７０は、ルール保持部６２に保持された不正判定ルールにしたがって、外部のＥＣＵ１４から送信されたフレームが不正なものか否かを判定する。具体的には、不正判定部７０は、フレーム解釈部６８から受け付けたフレーム（以下「判定対象フレーム」とも呼ぶ。）のフレームＩＤをルール保持部６２へ送り、ルール保持部６２からそのフレームＩＤに対応付けられた不正判定ルールを取得する。不正判定部７０は、ルール保持部６２から取得した不正判定ルールを参照して、判定対象フレームが不正か否かを判定する。判定対象フレームを不正と判断した場合、不正判定部７０は、エラーフレームの送信指示をフレーム生成部７２へ通知する。
【００５５】
フレーム生成部７２は、フレーム解釈部６８または不正判定部７０からエラーフレームの送信指示を受け付けた場合、ＣＡＮプロトコルに則したエラーフレームを生成してフレーム送受信部６６へ送る。ルール保持部６２は、所定の条件が満たされた場合に、他のＥＣＵ１４が保持する不正判定ルールを取得して格納する。不正判定ルールの更新処理の詳細は、図８に関連して後述する。
【００５６】
以上の構成による車載ネットワークシステム１２の動作を説明する。
図５は、図１のＥＣＵ１４の動作を示すフローチャートである。ＥＣＵ１４のフレーム送受信部３４は、ＣＡＮ２２におけるフレームの送信開始を検出すると（Ｓ１０のＹ）、そのフレームのデータを１ビット受信する（Ｓ１２）。フレーム解釈部３６は、受信したフレームがエラーフレームでなく（Ｓ１４のＮ）、１フレーム分のデータの受信が未完了であれば（Ｓ１６のＮ）、受信した１ビットのデータを受信バッファ３０へ追加し（Ｓ１８）、Ｓ１２に戻る。
【００５７】
フレーム解釈部３６は、１フレーム分のデータの受信が完了し（Ｓ１６のＹ）、フレームＩＤが自ＥＣＵで処理すべきフレームを示す所定値であれば（Ｓ２０のＹ）、受信フレームに基づくデータ処理を実行する（Ｓ２２）。例えば、フレーム解釈部３６は、受信したリモートフレームで指定されたデータを、自ＥＣＵに接続されたセンサ１６から取得し、取得したデータを含むデータフレームをＣＡＮ２２へ送信してもよい。またフレーム解釈部３６は、受信したリモートフレームで指定されたデータをアクチュエータ１８へ送信し、アクチュエータ１８の制御結果を含むデータフレームをＣＡＮ２２へ送信してもよい。また、Ｓ２２のフレーム処理の一態様として、フレーム解釈部３６およびフレーム生成部４０は、受信フレームが不正判定ルールの送信要求を含む場合、自ＥＣＵで予め記憶する不正判定ルールをセキュリティＥＣＵ２０へ提供する処理を実行する。不正判定ルールの提供処理の詳細は、図８に関連して後述する。
【００５８】
フレーム解釈部３６は、受信フレームのフレームＩＤが上記所定値以外であれば（Ｓ２０のＮ）、Ｓ２２をスキップし、例えば受信したフレームを廃棄する。フレーム解釈部３６は、受信フレームがエラーフレームであれば（Ｓ１４のＹ）、所定のエラー処理を実行し（Ｓ２８）、例えばそれまで受信したフレームデータを廃棄する。フレーム解釈部３６は、ＣＡＮ２２のバスアイドルを待ち（Ｓ２４）、受信バッファ３０に格納した受信データをクリアする（Ｓ２６）。電源オフ等の所定の終了条件が満たされると（Ｓ３０のＹ）、本図のフローを終了し、終了条件が満たされなければ（Ｓ３０のＮ）、Ｓ１０に戻る。フレームの送信開始を未検出であれば（Ｓ１０のＮ）、Ｓ１２〜Ｓ２８をスキップしてＳ３０の判定へ進む。
【００５９】
図６は、図１のセキュリティＥＣＵ２０の動作を示すフローチャートである。セキュリティＥＣＵ２０のフレーム送受信部６６は、ＣＡＮ２２におけるフレームの送信開始を検出すると（Ｓ４０のＹ）、そのフレームのデータを１ビット受信する（Ｓ４２）。フレーム解釈部６８は、受信したフレームがエラーフレームでなく（Ｓ４４のＮ）、フレームＩＤを未受信であれば（Ｓ４６のＮ）、受信した１ビットのデータを受信バッファ６０へ追加し（Ｓ４８）、Ｓ４２に戻る。フレームＩＤを受信済であれば（Ｓ４６のＹ）、不正判定部７０は、後述の不正判定処理を実行する（Ｓ５０）。不正判定処理において不正と判定されず、言い換えれば、それまでの受信データが正常と判定された場合（Ｓ５２のＮ）、フレーム解釈部６８は、１フレーム分のデータを受信したか否かを判定する。
【００６０】
１フレーム分のデータの受信が未完了であれば（Ｓ５４のＮ）、受信した１ビットのデータを受信バッファ６０へ追加し（Ｓ４８）、Ｓ４２に戻る。１フレーム分のデータの受信が完了すると（Ｓ５４のＹ）、フレーム解釈部６８は、ＣＡＮ２２のバスアイドルを待ち（Ｓ５６）、受信バッファ６０に格納した受信データをクリアする（Ｓ５８）。電源オフ等の所定の終了条件が満たされると（Ｓ６０のＹ）、本図のフローを終了し、終了条件が満たされなければ（Ｓ６０のＮ）、Ｓ４０に戻る。
【００６１】
不正判定処理において受信データが不正と判定された場合（Ｓ５２のＹ）、フレーム生成部７２はエラーフレームを生成し、フレーム送受信部６６はエラーフレームをＣＡＮ２２へ送信する（Ｓ６２）。なお、不正判定部７０は、受信データを不正と判定した場合、所定のログへエラーを記録してもよく、ＩＶＩ（In-Vehicle Infotainment）システム等にエラー表示を指示してもよい。フレーム解釈部６８は、受信したフレームがエラーフレームであれば（Ｓ４４のＹ）、所定のエラー処理を実行し、例えば受信したフレームのデータを破棄する（Ｓ６４）。フレームの送信開始を未検出であれば（Ｓ４０のＮ）、以降の処理をスキップして、Ｓ６０の判定へ進む。
【００６２】
なお、実施例では、フレームＩＤを受信後、１ビット受信する毎に不正判定処理を実行するが、データ単位を構成する複数のビットを受信する毎に不正判定処理を実行する構成としてもよい。また、図６では不図示だが、セキュリティＥＣＵ２０は、起動時に、ＥＣＵ１４と連携してルール保持部６２に記憶された不正判定ルールの更新処理を実行する。不正判定ルールの更新処理の詳細は、図８に関連して後述する。
【００６３】
図７は、図６のＳ５０の不正判定処理を詳細に示すフローチャートである。不正判定部７０は、受信フレームのフレームＩＤをルール保持部６２に渡す。ルール保持部６２は、保持している複数の不正判定ルールの中から、不正判定部７０から渡されたフレームＩＤに一致する不正判定ルールを検索する（Ｓ７０）。フレームＩＤに一致する不正判定ルールが存在しなければ（Ｓ７２のＮ）、不正判定部７０は、受信フレームが不正と判定する（Ｓ８４）。フレームＩＤに一致する不正判定ルールが存在すると（Ｓ７２のＹ）、不正判定部７０は、受信フレームが不正か否かを、フレームＩＤが一致する不正判定ルールの個別判定ルールにしたがって判定する（Ｓ７４）。フレームの形式または内容が個別判定ルールで定められた正常の範囲を逸脱する場合、例えばフレームデータ長がルールが定める許容範囲外であるとき（Ｓ７６のＹ）、不正判定部７０は、受信フレームを不正と判定する（Ｓ８４）。
【００６４】
個別判定ルールで正常と判定されると（Ｓ７６のＮ）、不正判定部７０は、受信フレームが不正か否かを、フレームＩＤが一致する不正判定ルールの外部参照判定ルールにしたがって判定する（Ｓ７８）。フレームの形式または内容が外部参照判定ルールで定められた正常の範囲を逸脱する場合、例えば参照判定ルール要素で定まる判定条件を満たさないとき（Ｓ８０のＹ）、不正判定部７０は、受信フレームを不正と判定する（Ｓ８４）。外部参照判定ルールによっても正常と判定されると（Ｓ８０のＮ）、不正判定部７０は、受信フレームを正常と判定する（Ｓ８２）。不正判定部７０は、当該ルールの中の判定ルール参照データ情報に基づいて、他のフレームの外部参照判定ルールにより参照されるデータを抽出する。そして不正判定部７０は、抽出したデータを、判定ルール参照データ識別子と対応付けて参照データ保持部６４へ格納する（Ｓ８６）。
【００６５】
図８は、不正判定ルールの更新の動作を示すフローチャートである。同図では、ＥＣＵ１４の動作とセキュリティＥＣＵ２０の動作をレーン分けして示している。また、ＥＣＵ１４とセキュリティＥＣＵ２０の間のデータ送受を波線で示している。図８では、ＥＣＵ１４を１つだけ描いているが、実際にはセキュリティＥＣＵ２０は、複数のＥＣＵ１４に対応する複数の不正判定ルールの更新処理を順次または並行して実行する。
【００６６】
セキュリティＥＣＵ２０のフレーム生成部７２は、自動車１０の電源オンに伴う起動時に、不正判定ルールのバージョン番号の提供を要求する所定のＩＤを設定したフレーム（以下「バージョン要求フレーム」と呼ぶ。）を生成する。起動時は、自動車１０のイグニッションスイッチがオフからオンに切り替えられた場合とも言える。フレーム送受信部６６は、バージョン要求フレームをＣＡＮ２２へ送信する（Ｓ９０）。
【００６７】
ＥＣＵ１４のフレーム解釈部３６が、受信フレームのフレームＩＤに基づいてバージョン要求フレームを受信したことを検出すると、フレーム生成部４０は、ルール保持部３２に保持された不正判定ルールのバージョン値を含むデータフレーム（以下「バージョン通知フレーム」と呼ぶ。）を生成する。実施例のバージョン通知フレームは、メジャーバージョン番号、マイナーバージョン番号、ＥＣＵ型番を含む。フレーム送受信部３４は、バージョン通知フレームをＣＡＮ２２へ送信する（Ｓ９２）。
【００６８】
セキュリティＥＣＵ２０のフレーム解釈部６８は、受信フレームのフレームＩＤがバージョン通知フレームの値である場合、受信フレームをバージョン通知フレームと認識してルール保持部６２へ渡す。ルール保持部６２は、バージョン通知フレームが示すメジャーバージョン番号およびマイナーバージョン番号に基づいて、不正判定ルールの更新要否を決定する。ルール保持部６２により不正判定ルールを更新すべきと決定された場合（Ｓ９４のＹ）、セキュリティＥＣＵ２０のフレーム生成部７２は、ＥＣＵ証明書を要求するフレーム（以下「証明書要求フレーム」と呼ぶ。）を生成する。フレーム送受信部６６は、証明書要求フレームをＣＡＮ２２へ送信する（Ｓ９６）。
【００６９】
ＥＣＵ１４のフレーム解釈部３６が、受信フレームのフレームＩＤに基づいて証明書要求フレームを受信したことを検出すると、フレーム生成部４０は、自ＥＣＵのＥＣＵ証明書を含むデータフレーム（以下「証明書フレーム」と呼ぶ。）を生成する。フレーム送受信部３４は、証明書フレームをＣＡＮ２２へ送信する（Ｓ９８）。
【００７０】
セキュリティＥＣＵ２０のフレーム解釈部６８は、受信フレームのフレームＩＤが証明書フレームの値である場合、受信フレームを証明書フレームと認識してルール保持部６２へ渡す。ルール保持部６２は、ルート証明書を使用して、証明書フレームに含まれるＥＣＵ証明書の正当性（言い換えれば改ざんがないこと）を検証する。ＥＣＵ証明書の正当性が確認された場合（Ｓ１００のＹ）、フレーム生成部７２は、署名付き不正判定ルールを要求するフレーム（以下「ルール要求フレーム」と呼ぶ。）を生成する。フレーム送受信部６６は、ルール要求フレームをＣＡＮ２２へ送信する（Ｓ１０２）。
【００７１】
ＥＣＵ１４のフレーム解釈部３６が、受信フレームのフレームＩＤに基づいてルール要求フレームを受信したことを検出すると、フレーム生成部４０は、ルール保持部３２に保持される不正判定ルールと署名を含むデータフレーム（以下「ルールフレーム」と呼ぶ。）を生成する。この署名は、例えば不正判定ルールのハッシュ値をＥＣＵ１４の秘密鍵で暗号化したデータであってもよい。フレーム送受信部３４は、ルールフレームをＣＡＮ２２へ送信する（Ｓ１０４）。
【００７２】
セキュリティＥＣＵ２０のフレーム解釈部３６は、受信フレームのフレームＩＤがルールフレームの値である場合、受信フレームをルールフレームと認識してルール保持部６２へ渡す。ルール保持部６２は、ルールフレームに含まれる不正判定ルールの正当性を署名に基づいて検証する。ルール保持部６２は、不正判定ルールの正当性が確認された場合（Ｓ１０６のＹ）、ルールフレームに含まれる不正判定ルール、メジャーバージョン番号、マイナーバージョン番号等を所定の記憶領域へ格納する（Ｓ１０８）。
【００７３】
バージョン番号に基づいてルールの更新が不要と判定された場合（Ｓ９４のＮ）、ＥＣＵ証明書の正当性の確認に失敗した場合（Ｓ１００のＮ）、不正判定ルールの正当性の確認に失敗した場合（Ｓ１０６のＮ）、以降の処理をスキップして本図のフローを終了する。なお、Ｓ１００のＮおよび／またはＳ１０６のＮの場合、ルール保持部６２は、所定のログへエラーを記録してもよく、ＩＶＩシステム等にエラー表示を指示してもよい。
【００７４】
実施例の車載ネットワークシステム１２によると、多数設置されたＥＣＵ１４それぞれの交換やファーム更新等の変化に追随して、セキュリティＥＣＵ２０が保持する不正判定ルールを更新していくことが容易になる。すなわち、セキュリティＥＣＵ２０が保持する不正判定ルールのメンテナンスコストを低減できる。また、セキュリティＥＣＵ２０が保持する不正判定ルールのバージョン値と、ＥＣＵ１４が保持する不正判定ルールのバージョン値とに基づいて、適切なタイミングでかつ効率的に、セキュリティＥＣＵ２０が保持する不正判定ルールを更新することができる。
【００７５】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７６】
第１変形例として、不正判定ルール更新のバリエーションを説明する。（１）セキュリティＥＣＵ２０からＥＣＵ１４へ不正判定ルールのバージョン番号を要求し、ＥＣＵ１４から応答がない場合、セキュリティＥＣＵ２０は、応答があるまで所定のＴ秒間隔でバージョン番号の要求を繰り返してもよい。要求をＮ回（Ｎは２以上の整数）繰り返してもＥＣＵ１４からの応答を未受信の場合、セキュリティＥＣＵ２０は、要求先のＥＣＵ１４を不活性ＥＣＵと見なしてもよい。不活性ＥＣＵは、正常に動作していないＥＣＵと言え、不正なＥＣＵとも言える。
【００７７】
（２）セキュリティＥＣＵ２０からＥＣＵ１４へＥＣＵ証明書または不正判定ルールを要求し、ＥＣＵ１４から応答がない場合、セキュリティＥＣＵ２０は、応答があるまで所定のＳ秒間隔で要求を繰り返してもよい。要求をＭ回（Ｍは２以上の整数）繰り返してもＥＣＵ１４からの応答を未受信の場合、要求先のＥＣＵ１４を不活性ＥＣＵと見なしてもよい。ここでＴ≧ＳかつＮ≧Ｍとすることが望ましい。バージョン番号を取得したにも関わらず、ＥＣＵ証明書または不正判定ルールを取得できないことは考えにくく、不正ＥＣＵの可能性が高いためであり、また、不正ＥＣＵを早期に検出するためである。
【００７８】
（３）セキュリティＥＣＵ２０は、不活性ＥＣＵのＥＣＵ型番を記憶する。セキュリティＥＣＵ２０の不正判定部７０（またはフレーム解釈部６８）は、受信フレームのフレームＩＤにより特定される不正判定ルールを参照し、その不正判定ルールのＥＣＵ型番が不活性ＥＣＵの型番と一致する場合、受信フレームを不活性ＥＣＵから送信されたフレームと判定する。不正判定部７０は、不活性ＥＣＵから送信された全てのフレームを、対応する不正判定ルールに関わらず、一律に不正と判定する。不正ＥＣＵから送信されたフレームの可能性が高いからである。
【００７９】
第２変形例を説明する。上記実施例の車載ネットワークシステム１２では、電源オン等に伴う起動時に不正判定ルールの更新処理を実行した。変形例として、セキュリティＥＣＵ２０（例えばフレーム生成部７２）は、ＥＣＵ１４の交換やファームウェアの更新等が検出された場合に、交換や更新等の対象になったＥＣＵ１４の不正判定ルールに対する更新処理を実行してもよい。
【００８０】
第３変形例を説明する。上記実施例では車載ネットワークをＣＡＮ２２としたが、イーサネット（登録商標）等の他の種類のネットワークであってもよい。
【００８１】
第４変形例を説明する。上記実施例のＥＣＵ１４は、セキュリティＥＣＵ２０からの要求に応じて、不正判定ルールおよびそのバージョンをセキュリティＥＣＵ２０へ提供した。変形例として、ＥＣＵ１４は、電源オン等に伴う起動時、ファームウェア更新時、交換時等において、ルール保持部３２に格納された不正判定ルールおよびそのバージョンをセキュリティＥＣＵ２０へ送信する処理を、セキュリティＥＣＵ２０からの要求を待つことなく、自発的・能動的に実行してもよい。
【００８２】
第５変形例を説明する。上記実施例のセキュリティＥＣＵ２０は、ＥＣＵ１４から送信されたフレームの不正を検知する専用装置としたが、変形例として、ＥＣＵ１４と同様のフレーム処理をさらに実行してもよい。すなわち、変形例のセキュリティＥＣＵ２０は、センサ１６またはセキュリティＥＣＵ２０に接続され、受信フレームが不正か否かを判定する機能とともに、受信フレームが正常である場合に受信フレームに基づくデータ処理を実行する機能（例えば図５のＳ２２）を備えてもよい。
【００８３】
なお、実施例および変形例に記載の技術は、以下の項目によって特定されてもよい。
［項目１］
車載ネットワークを介して他の電子制御ユニットと接続される不正検知電子制御ユニットであって、他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶する記憶部と、規則にしたがって、他の電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、を備え、記憶部は、所定の条件が満たされた場合に、他の電子制御ユニットが保持する規則を取得して、記憶された規則を更新する不正検知電子制御ユニット。
この不正検知電子制御ユニットによると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目２］
記憶部は、他の電子制御ユニットが保持する規則の第一バージョンの値を取得し、取得した第一バージョンの値と、記憶部が予め記憶する規則の第二バージョンの値との比較結果に応じて、記憶された規則を更新してもよい。
この態様によると、不正検知電子制御ユニットが保持する不正判定ルールの更新を効率的に実現できる。
［項目３］
規則のバージョンの値は、メジャーバージョンの値と、マイナーバージョンの値を含んでもよい。記憶部は、（１）取得した第一メジャーバージョンの値と予め記憶する第二メジャーバージョンの値が一致する場合、取得した第一マイナーバージョンの値が予め記憶する第二マイナーバージョンの値より新しければ、記憶された規則を更新し、（２）取得した第一メジャーバージョンの値と予め記憶する第二メジャーバージョンの値が不一致の場合、第一メジャーバージョンの値が第二メジャーバージョンの値より古くても、記憶された規則を更新してもよい。
この態様によると、不正検知電子制御ユニットが保持する不正判定ルールを、適切なタイミングでかつ効率的に更新することができる。
［項目４］
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであって、車載ネットワーク上に送信された、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶する記憶部と、不正検知電子制御ユニットから、規則の送信要求を受信する受信部と、規則の送信要求に応じて、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを不正検知電子制御ユニットが判定するために使用する、記憶部に記憶された規則を不正検知電子制御ユニットへ送信する送信部と、を備える電子制御ユニット。
この電子制御ユニットによると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目５］
電子制御ユニットと、車載ネットワークを介して電子制御ユニットと接続される不正検知電子制御ユニットと、を備える車載ネットワークシステム。不正検知電子制御ユニットは、電子制御ユニットから送信されたフレームが不正であるか否かを判定するための規則を記憶する第一記憶部と、規則にしたがって、電子制御ユニットから送信されたフレームが不正であるかを判定する判定部と、所定の条件が満たされた場合に、電子制御ユニットに対して規則の送信要求を送信する第一送信部と、を含む。電子制御ユニットは、規則の送信要求に応じて、第二記憶部に予め記憶する規則を不正検知電子制御ユニットへ送信する第二送信部を含む。不正検知電子制御ユニットは、電子制御ユニットから受信した規則を第一記憶部へ記憶する。
この車載ネットワークシステムによると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目６］
車載ネットワークを介して他の電子制御ユニットと接続され、かつ、他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶部に記憶する不正検知電子制御ユニットが、規則にしたがって、他の電子制御ユニットから送信されたフレームが不正であるかを判定し、所定の条件が満たされた場合に、他の電子制御ユニットが保持する規則を取得して、記憶部に記憶する規則を更新する不正検知方法。
この不正検知方法によると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目７］
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであり、かつ、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶部に記憶する電子制御ユニットが、不正検知電子制御ユニットから、規則の送信要求を受信し、規則の送信要求に応じて、電子制御ユニットから送信されたフレームが不正であるかを不正検知電子制御ユニットが判定するために使用する、記憶部に記憶された規則を不正検知電子制御ユニットへ送信する不正検知方法。
この不正検知方法によると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目８］
車載ネットワークを介して他の電子制御ユニットと接続され、かつ、他の電子制御ユニットから送信されたフレームが不正であるかを判定するための規則を記憶部に記憶する不正検知電子制御ユニットに、規則にしたがって、他の電子制御ユニットから送信されたフレームが不正であるかを判定し、所定の条件が満たされた場合に、他の電子制御ユニットが保持する規則を取得して、記憶部に記憶する規則を更新することを実行させるためのコンピュータプログラム。
このコンピュータプログラムによると、車載ネットワークのセキュリティを効率的に向上することができる。
［項目９］
車載ネットワークを介して不正検知電子制御ユニットと接続される電子制御ユニットであり、かつ、電子制御ユニットから送信するフレームと同じフレームＩＤのフレームが不正であるかを判定するための規則を記憶部に記憶する電子制御ユニットに、不正検知電子制御ユニットから、規則の送信要求を受信し、規則の送信要求に応じて、電子制御ユニットから送信されたフレームが不正であるかを不正検知電子制御ユニットが判定するために使用する、記憶部に記憶された規則を不正検知電子制御ユニットへ送信することを実行させるためのコンピュータプログラム。
このコンピュータプログラムによると、車載ネットワークのセキュリティを効率的に向上することができる。
【００８４】
上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【産業上の利用可能性】
【００８５】
本発明は、車両等の移動体のネットワークに限らず、汎用的なネットワークで接続されたユニット間で不正を検出するための規則を更新するために利用可能である。
【符号の説明】
【００８６】
１２  車載ネットワークシステム、  １４  ＥＣＵ、  ２０  セキュリティＥＣＵ、  ３２  ルール保持部、  ３４  フレーム送受信部、  ３６  フレーム解釈部、  ４０  フレーム生成部、  ６２  ルール保持部、  ６６  フレーム送受信部、  ６８  フレーム解釈部、  ７０  不正判定部、  ７２  フレーム生成部。
【図１】
2018111468.tif 000003
【図２】
2018111468.tif 000004
【図３】
2018111468.tif 000005
【図４】
2018111468.tif 000006
【図５】
2018111468.tif 000007
【図６】
2018111468.tif 000008
【図７】
2018111468.tif 000009
【図８】
2018111468.tif 000010