(57)【要約】【課題】不正機器によるなりすまし攻撃を検知できる電子制御装置を提供する。【解決手段】送信データ生成部３２は、ＭＡＣ生成部３４によるＭＡＣがメッセージに設定されるのを停止する条件の成立可否を判定する。メッセージ生成部３５は、条件不成立の非停止期間において、ＭＡＣ生成部により生成された値をメッセージのＭＡＣとして設定し、条件成立の停止期間において、ＭＡＣ生成部により生成される値とは異なる値をメッセージのＭＡＣとして設定する。判定部４１は、受信したメッセージに設定されたＭＡＣと、受信したメッセージに基づいてＭＡＣ生成部により生成されるＭＡＣとが一致するか否かを判定する。侵入検知部４３は、停止期間における判定部の判定結果であって、ＭＡＣ生成部とは異なる値がＭＡＣとして設定されたメッセージを含み、該メッセージと同じ電子制御装置のＩＤが付与されたメッセージの判定結果に基づいて、不正侵入を検知する。【選択図】図３
2019134262.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、メッセージ認証コード（以下、ＭＡＣ）が設定されたメッセージを送受信する電子制御装置であって、
共通鍵を用いて、前記ＭＡＣを生成するＭＡＣ生成部（３４）と、
前記ＭＡＣ生成部によるＭＡＣが前記メッセージに設定されるのを停止する条件の成立可否を判定する停止判定部（３２）と、
前記メッセージを生成するものであり、前記条件が成立しない非停止期間において、前記ＭＡＣ生成部により生成された値を前記メッセージのＭＡＣとして設定し、前記条件が成立する停止期間において、前記ＭＡＣ生成部により生成される値とは異なる値を前記メッセージのＭＡＣとして設定するメッセージ生成部（３５）と、
前記メッセージ生成部にて生成された前記メッセージを送信する送信部（３８）と、
他の前記電子制御装置にて生成された前記メッセージを受信する受信部（３９）と、
受信した前記メッセージに設定されたＭＡＣと、受信した前記メッセージに基づいて前記ＭＡＣ生成部により生成される前記ＭＡＣとが一致するか否かを判定する認証判定部（４１）と、
前記停止期間における前記認証判定部の判定結果であって、前記ＭＡＣ生成部とは異なる値が前記ＭＡＣとして設定された前記メッセージを含み、該メッセージと同じ前記電子制御装置のＩＤが付与された前記メッセージの判定結果に基づいて、不正侵入を検知する侵入検知部（４３）と、
を備える電子制御装置。
【請求項２】
前記侵入検知部は、前記認証判定部の一致判定に基づいて、不正侵入を検知する請求項１に記載の電子制御装置。
【請求項３】
前記侵入検知部は、前記一致判定された回数がゼロよりも大きい場合に、一致判定された前記メッセージのＩＤを記憶するとともに他の前記電子制御装置に通知する請求項２に記載の電子制御装置。
【請求項４】
前記侵入検知部は、前記一致判定された回数及び前記認証判定部により不一致判定された回数と、前記ＭＡＣ生成部とは異なる値が前記ＭＡＣとして設定された前記メッセージの生成数とのいずれかを他の前記電子制御装置から取得し、前記一致判定された回数及び前記不一致判定された回数の合算値と前記メッセージの生成数とに基づいて、不正侵入を検知する請求項１〜３いずれか１項に記載の電子制御装置。
【請求項５】
前記停止期間において、前記ＭＡＣ生成部は、前記ＭＡＣの生成を停止する請求項１〜４いずれか１項に記載の電子制御装置。
【請求項６】
前記停止判定部は、前記電子制御装置の処理負荷があらかじめ設定されたしきい値よりも高い場合に、前記条件が成立したと判定する請求項１〜５いずれか１項に記載の電子制御装置。
【請求項７】
前記停止判定部は、一定周期ごとに前記条件が成立したと判定する請求項１〜５いずれか１項に記載の電子制御装置。
【請求項８】
前記メッセージ生成部は、前記停止期間において、予め設定された固定値を前記メッセージのＭＡＣとして設定する請求項１〜７いずれか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書における開示は、ネットワークに接続され、メッセージ認証コードが設定されたメッセージを送受信する電子制御装置に関する。
【背景技術】
【０００２】
特許文献１には、ネットワークに接続され、メッセージ認証コードが設定されたメッセージを送受信する電子制御装置が開示されている。この電子制御装置では、共通鍵を用いて、所定のアルゴリズムによりメッセージ認証コードを生成する。メッセージの受信時において、電子制御装置は、受信したメッセージに設定されているメッセージ認証コードと、受信したメッセージに基づいて生成されるメッセージ認証コードとが一致するか否かにより、認証判定を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１１６０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の構成では、共通鍵が外部に漏洩した場合、上記した認証判定では不正機器によるなりすまし攻撃を検知することができない。
【０００５】
本開示はこのような課題に鑑みてなされたものであり、不正機器によるなりすまし攻撃を検知できる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【０００７】
本開示のひとつは、ネットワークに接続され、メッセージ認証コード（以下、ＭＡＣ）が設定されたメッセージを送受信する電子制御装置であって、
共通鍵を用いて、ＭＡＣを生成するＭＡＣ生成部（３４）と、
ＭＡＣ生成部によるＭＡＣがメッセージに設定されるのを停止する条件の成立可否を判定する停止判定部（３２）と、
メッセージを生成するものであり、条件が成立しない非停止期間において、ＭＡＣ生成部により生成された値をメッセージのＭＡＣとして設定し、条件が成立する停止期間において、ＭＡＣ生成部により生成される値とは異なる値をメッセージのＭＡＣとして設定するメッセージ生成部（３５）と、
メッセージ生成部にて生成されたメッセージを送信する送信部（３８）と、
他の電子制御装置にて生成されたメッセージを受信する受信部（３９）と、
受信したメッセージに設定されたＭＡＣと、受信したメッセージに基づいてＭＡＣ生成部により生成されるＭＡＣとが一致するか否かを判定する認証判定部（４１）と、
停止期間における認証判定部の判定結果であって、ＭＡＣ生成部とは異なる値がＭＡＣとして設定されたメッセージを含み、該メッセージと同じ電子制御装置のＩＤが付与されたメッセージの判定結果に基づいて、不正侵入を検知する侵入検知部（４３）と、
を備える。
【０００８】
この電子制御装置によれば、意図的に停止期間を設け、停止期間中において、ＭＡＣ生成部により生成される値とは異なる値を、メッセージのＭＡＣとして設定することができる。このメッセージは、メッセージを受信した電子制御装置の認証判定部において不一致と判定される。よって、共通鍵の漏洩により不正機器がメッセージ送信側の電子制御装置になりすましても、この電子制御装置のＩＤが付与されたメッセージの判定結果に基づいて、不正侵入を検知することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態の電子制御装置を備える通信システムを示す図である。
【図２】データフレームの構成を示す図である。
【図３】電子制御装置の概略構成を示す図である。
【図４】送信処理を示すフローチャートである。
【図５】受信処理を示すフローチャートである。
【図６】侵入検知処理を示すフローチャートである。
【図７】停止期間に実行される処理の流れを示すシーケンス図である。
【図８】第２実施形態の電子制御装置の概略構成を示す図である。
【図９】侵入検知処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的に及び／又は構造的に対応する部分には同一の参照符号を付与する。
【００１１】
（第１実施形態）
先ず、図１に基づき、本実施形態の電子制御装置を備える通信システムについて説明する。
【００１２】
図１に示す通信システム１０は、ＣＡＮバス２０及び複数の電子制御装置（Electronic Control Unit）３０を備えている。ＣＡＮは、バス型ネットワークを採用したシリアル通信プロトコルである。ＣＡＮは、登録商標である。以下、電子制御装置３０を、ＥＣＵ３０と示す。複数のＥＣＵ３０は、ＣＡＮバス２０に接続されている。本実施形態では、車両に搭載された複数のＥＣＵ３０が、ＣＡＮバス２０にノードとして接続されて、車載ネットワークが構築されている。
【００１３】
次に、図２に基づき、データフレームについて説明する。
【００１４】
図２に示すように、データフレームは、ＩＤフィールドやデータフィールドを含んでいる。それ以外にも、図示しないＣＲＣフィールドなどを含んでいる。メッセージは、送信可能な状態のデータフレームに相当する。
【００１５】
ＩＤフィールドには、保護対象データの内容や送信ノードを識別するためのＩＤが設定される。このＩＤにより、通信の優先順位も決定される。受信側のＥＣＵ３０は、ＩＤを参照することで、自身が処理する必要のあるデータか否かを判断する。
【００１６】
データフィールドには、保護対象データが設定される。保護対象データは、車両の特定の機能、たとえば制御機能や監視機能に関する情報である。すなわち、保護すべき情報である。保護対象データとして、たとえばエンジン回転数に関する情報や、アクチュエータの駆動を指示する情報などがある。
【００１７】
また、データフィールドには、メッセージの正当性を判断するためのメッセージ認証コード（Message Authentication Code）も設定される。以下、メッセージ認証コードを、ＭＡＣと示す。
【００１８】
次に、図３に基づき、本実施形態のＥＣＵ３０（電子制御装置）の概略構成について説明する。以下に説明する構成は、互いに通信可能に接続される複数のＥＣＵ３０で同じとなっている。
【００１９】
図３に示すように、ＥＣＵ３０は、マイコン３１を有している。マイコン３１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、フラッシュメモリ、レジスタ、及び入出力インターフェースなどを備えて構成されている。マイコン３１において、ＣＰＵが、ＲＡＭやレジスタの一時記憶機能を利用しつつ、ＲＯＭに予め記憶された制御プログラムにしたがって、所定の処理を実行する。マイコン３１は、機能部として、送信データ生成部３２、共通鍵記憶部３３、ＭＡＣ生成部３４、メッセージ生成部３５、ＭＡＣ記憶部３６、送信側カウンタ３７、送信部３８、受信部３９、メッセージ分解部４０、判定部４１、受信側カウンタ４２、及び侵入検知部４３を備えている。
【００２０】
送信データ生成部３２は、他のＥＣＵ３０へ送信したいデータ、たとえば制御データから保護対象データを生成するとともに、ＩＤを付与する。
【００２１】
また、送信データ生成部３２は、ＭＡＣ生成部３４のＭＡＣがメッセージに設定されるのを停止する条件の成立可否を判定する。すなわち、停止条件が成立する停止期間であるのか、停止条件が成立しない非停止期間であるのかを判定する。このため、送信データ生成部３２が、停止判定部に相当する。
【００２２】
本実施形態では、停止期間と判定すると、送信データ生成部３２がＭＡＣ生成部３４への保護対象データの出力を停止する。これにより、停止期間において、ＭＡＣ生成部３４によるＭＡＣ生成が停止となる。このように、ＭＡＣ生成停止により、ＭＡＣ生成部３４によるＭＡＣのメッセージへの設定が停止となる。このため、停止条件とは、保護対象データを用いてＭＡＣを生成しない条件とも言える。
【００２３】
共通鍵記憶部３３には、共通鍵が記憶されている。共通鍵は、メッセージが送受信されるＥＣＵ３０間で共通の暗号鍵である。共通鍵は、送信時及び受信時においてＭＡＣの生成に用いられる。
【００２４】
ＭＡＣ生成部３４は、送信データ生成部３２にて生成された保護対象データと、共通鍵記憶部３３に記憶された共通鍵を用いて、ＭＡＣを生成する。ＭＡＣ生成部３４は、ＣＭＡＣ（Cipher based MAC）等のアルゴリズムによりＭＡＣを生成する。
【００２５】
メッセージ生成部３５は、メッセージを生成する。メッセージ生成部３５は、データフィールドにＭＡＣが設定されたメッセージであるＭＡＣメッセージを生成する。メッセージ生成部３５は、データフレームのデータフィールドに、送信データ生成部３２にて生成された保護対象データと、ＭＡＣを設定する。メッセージ生成部３５は、停止条件の成立可否に応じてＭＡＣを設定する。非停止期間において、メッセージ生成部３５は、ＭＡＣ生成部３４により生成された値をＭＡＣとして設定する。停止期間において、メッセージ生成部３５は、ＭＡＣ記憶部３６に記憶された値をＭＡＣとして設定する。また、メッセージ生成部３５は、ＩＤフィールドに、送信データ生成部３２にて付与されたＩＤを設定する。
【００２６】
また、メッセージ生成部３５は、ＭＡＣメッセージとは別に、停止期間、非停止期間のいずれであるのかを示す期間通知信号を生成する。期間通知信号は、ＭＡＣが設定されないメッセージである。メッセージ生成部３５は、ＭＡＣメッセージとともに、期間通知信号も生成する。メッセージ生成部３５は、データフレーム生成部とも称される。
【００２７】
ＭＡＣ記憶部３６には、ＭＡＣメッセージにＭＡＣとして設定するための値が記憶されている。ＭＡＣ記憶部３６には、ＭＡＣ生成部３４により生成される値とは異なる値が記憶されている。本実施形態では、固定値が記憶されている。この固定値は、ＭＡＣ生成部３４が生成し得ない値とされている。
【００２８】
送信側カウンタ３７は、停止期間中のＭＡＣメッセージの生成数をカウントする。送信側カウンタ３７は、ＭＡＣメッセージの生成にともなって、たとえばインクリメント（カウントアップ）される。送信側カウンタ３７は、停止期間から非停止期間に切り替わるとクリアされる。本実施形態では、メッセージ生成部３５が、送信側カウンタ３７をインクリメントするとともに、非停止期間に切り替わるとクリアする。メッセージ生成部３５は、送信側カウンタ３７をクリアする直前の値（送信側カウント）を、停止期間中のＭＡＣメッセージ生成数として、侵入検知部４３に出力する。
【００２９】
送信部３８は、メッセージをＣＡＮバス２０に対して送信する。送信部３８は、ＭＡＣメッセージと期間通知信号をＣＡＮバス２０に対して送信する。送信部３８は、期間通知信号を先に送信し、次いで対応するＭＡＣメッセージを送信する。受信部３９は、ＣＡＮバス２０を通じてメッセージを受信する。受信部３９は、期間通知信号を受信した後に、対応するＭＡＣメッセージを受信する。
【００３０】
メッセージ分解部４０は、受信したメッセージを、ＩＤ、保護対象データ等に分解する。すなわち、メッセージ分解部４０は、メッセージを解析する。メッセージ分解部４０は、ＩＤに基づいて、受信したメッセージがＥＣＵ３０（自身）の処理対象であり、且つ、ＭＡＣによる認証が必要かを判断する。すなわち、自身が処理するＭＡＣメッセージかを判断する。
【００３１】
自身の処理対象であり、且つ、認証が必要な場合、ＭＡＣ生成部３４は、受信したＭＡＣメッセージ中の保護対象データと、共通鍵記憶部３３に記憶された共通鍵を用いて、ＭＡＣを生成する。
【００３２】
判定部４１は、受信したＭＡＣメッセージに基づいてＭＡＣ生成部３４により生成されたＭＡＣと、受信したＭＡＣメッセージに設定されていたＭＡＣとを比較し、認証判定を行う。判定部４１は、両ＭＡＣが一致する場合に認証ＯＫと判定し、一致しない場合に認証ＮＧと判定する。このため、判定部４１が、認証判定部に相当する。
【００３３】
判定部４１は、期間通知信号に設定された期間情報をメッセージ分解部を介して取得し、停止期間、非停止期間のいずれであるかを判断する。判定部４１は、メッセージ分解部４０から、設定されていたＭＡＣ及びＩＤを取得し、判定結果に関連付けてＩＤを一時的に記憶する。
【００３４】
受信側カウンタ４２は、停止期間中の判定部４１による認証判定数をカウントする。受信側カウンタ４２は、他のＥＣＵ３０に対応して複数設けられている。受信側カウンタ４２は、自信を除くＥＣＵ３０ごとに設けられている。各受信側カウンタ４２は、認証ＯＫ数をカウントする認証ＯＫカウンタと、認証ＮＧ数をカウントする認証ＮＧカウンタをそれぞれ有している。受信側カウンタ４２は、停止期間中において、対応するＥＣＵ３０のＩＤが設定されたＭＡＣメッセージの認証判定数をカウントする。受信側カウンタ４２は、停止期間から非停止期間に切り替わるとクリアされる。
【００３５】
本実施形態では、判定部４１が、停止期間における判定結果に基づいて、判定したＭＡＣメッセージのＩＤに対応する受信側カウンタ４２をインクリメントする。認証ＯＫの場合には、認証ＯＫカウンタをインクリメントし、認証ＮＧの場合には、認証ＮＧカウンタをインクリメントする。判定部４１は、停止期間から非停止期間に切り替わると、期間通知信号に設定されていたＩＤに基づいて、期間通知信号を生成したＥＣＵ３０に対応する受信側カウンタ４２をクリアする。また、判定部４１は、受信側カウンタ４２をクリアする直前の認証ＯＫ数及び認証ＮＧ数（受信側カウント）と、いずれの受信側カウンタ４２かを示す情報をデータフレームに設定し、送信部３８を介して送信する。認証ＯＫ数がゼロよりも大きい場合、判定部４１は、認証ＯＫと判定したＭＡＣメッセージのＩＤ情報も送信するデータフレームに設定する。
【００３６】
侵入検知部４３は、他のＥＣＵ３０から送信された受信側カウントを、受信部３９及びメッセージ分解部４０を介して取得する。そして、侵入検知部４３は、自身（ＥＣＵ３０）に対応する受信側カウンタ４２の受信側カウントと、送信側カウンタ３７から取得した送信側カウントとに基づいて、不正機器によるなりすまし攻撃、すなわち不正侵入を検知する。このように、たとえばＥＣＵ３０（第１のＥＣＵ）が、停止期間中に生成したＭＡＣメッセージの生成結果と、他のＥＣＵ３０（第２のＥＣＵ）が、停止期間中に第１のＥＣＵ３０のＩＤに対応するＭＡＣメッセージを認証判定した結果とに基づいて、不正侵入を検知する。このため、他のＥＣＵ３０から取得した受信側カウントがＭＡＣメッセージの判定情報に相当し、送信側カウンタ３７から取得した送信側カウントがＭＡＣメッセージの生成情報に相当する。
【００３７】
侵入検知部４３は、たとえば認証ＯＫ数がゼロよりも大きいことで不正侵入を検知すると、認証ＯＫと判定されたＭＡＣメッセージのＩＤを不正ＩＤとして記憶する。そして、不正ＩＤを、送信部３８を介して他のＥＣＵ３０に通知する。このように、侵入検知部４３は、通知機能も有している。
【００３８】
次に、図４に基づき、マイコン３１が実行する送信処理について説明する。マイコン３１は、ＭＡＣメッセージの構築タイミングごとに、以下に示す処理を実行する。
【００３９】
図４に示すように、先ず送信データ生成部３２が、他のＥＣＵ３０へ送信したいデータ、たとえば制御データから保護対象データを生成する（ステップＳ１０）。このとき、送信データ生成部３２は、ＩＤも付与する。
【００４０】
次いで、送信データ生成部３２は、停止条件が成立するか否かを判定する（ステップＳ１１）。
【００４１】
停止条件としては、一定周期ごとに成立する条件、たとえば１００ｓｅｃごとに１０ｓｅｃ間のみ成立する条件を採用することができる。それ以外にも、ある制御が動作中のみ成立する条件、たとえばクルーズコントロール機能中のみ成立する条件を採用することができる。また、ＥＣＵ３０（マイコン３１）の処理負荷が予め設定されたしきい値よりも高いときに成立する条件、たとえばエンジン回転数が所定回転数よりも高いときに成立する条件を採用することができる。
【００４２】
停止条件が成立する場合、送信データ生成部３２からＭＡＣ生成部３４への保護対象データの出力が停止され、ＭＡＣ生成部３４によるＭＡＣ生成が停止となる。このため、メッセージ生成部３５は、ＭＡＣ記憶部３６に記憶された値を読み出す（ステップＳ１２）。
【００４３】
ＭＡＣ記憶部３６に記憶された値は、ステップＳ１０で生成された保護対象データに基づいて、ＭＡＣ生成部３４により生成される値とは異なる値である。ＭＡＣ記憶部３６に記憶された値は、ＭＡＣ生成部３４が生成し得ない値とされている。本実施形態では、ＭＡＣ記憶部３６に固定値が記憶されており、メッセージ生成部３５はこの固定値を読み出す。なお、ＭＡＣとして設定される値は、固定値に限定されない。たとえばＭＡＣ記憶部３６に複数の値が記憶されており、この中からメッセージ生成部３５がランダムに設定してもよい。
【００４４】
次いで、メッセージ生成部３５は、期間通知信号に停止期間を設定する（ステップＳ１３）。メッセージ生成部３５は、データフレームに停止期間を示す情報を設定して、期間通知信号を生成する。
【００４５】
次いで、メッセージ生成部３５は、送信側カウンタ３７をインクリメントする（ステップＳ１４）。停止期間が継続している間は、ステップＳ１４の実行ごとに、送信側カウンタ３７が＋１ずつ増加する。送信側カウンタ３７のカウント値は、停止期間中におけるＭＡＣメッセージの生成数に一致する。ステップＳ１４の処理が終了すると、ステップＳ１９に移行する。なお、ステップＳ１２〜Ｓ１４の処理の実行順は、上記に例に限定されない。
【００４６】
一方、ステップＳ１１において停止条件が不成立の場合、送信データ生成部３２からＭＡＣ生成部３４に対して保護対象データが出力される。ＭＡＣ生成部３４は、共通鍵記憶部３３から共通鍵を読み出して、共通鍵及び保護対象データに基づきＭＡＣを生成し、メッセージ生成部３５へ出力する（ステップＳ１５）。
【００４７】
次いで、メッセージ生成部３５は、期間通知信号に非停止期間を設定する（ステップＳ１６）。メッセージ生成部３５は、データフレームに非停止期間を示す情報を設定して、期間通知信号を生成する。
【００４８】
次いで、メッセージ生成部３５は、停止期間から非停止期間への切り替わりタイミングか否かを判定する（ステップＳ１７）。切り替わりタイミングの場合、メッセージ生成部３５は、送信側カウンタ３７のカウント値である送信側カウントを侵入検知部４３に出力した後、送信側カウンタ３７をクリアする（ステップＳ１８）。
【００４９】
このように、メッセージ生成部３５は、停止期間から非停止期間に切り替わると、送信側カウンタ３７をクリアする直前の値（送信側カウント）を、停止期間中のＭＡＣメッセージ生成数として、侵入検知部４３に出力する。そして、ステップＳ１９に移行する。ステップＳ１７において切り替わりタイミングでない場合、ステップＳ１８の処理を実施せずにステップＳ１９に移行する。
【００５０】
ステップＳ１９において、メッセージ生成部３５は、ＭＡＣメッセージを生成する。メッセージ生成部３５は、ＩＤフィールドにステップＳ１０で付与されたＩＤを設定するとともに、データフィールドに、ステップＳ１０で生成された保護対象データと、ＭＡＣを設定する。ＭＡＣは、停止期間においてステップＳ１２の値が設定され、非停止期間においてステップＳ１５の値が設定される。
【００５１】
次いで、送信部３８は、メッセージをＣＡＮバス２０に対して送信する（ステップＳ２１）。送信部３８は、先に期間通知信号を送信し、次いでＭＡＣメッセージを送信する。そして、一連の処理を終了する。
【００５２】
次に、図５に基づき、マイコン３１が実行する受信処理について説明する。
【００５３】
図５に示すように、先ず受信部３９が、メッセージを受信する（ステップＳ３０）。
【００５４】
次いで、メッセージ分解部４０が、受信したメッセージを、ＩＤ、保護対象データ等に分解する（ステップＳ３１）。ＭＡＣメッセージの場合、ＩＤ、保護対象データ、ＭＡＣ等に分解する。メッセージ分解部４０は、ＩＤに基づいて、受信したメッセージが自身（ＥＣＵ３０）の処理対象であり、且つ、ＭＡＣによる認証が必要かを判断する。
【００５５】
自身の処理対象であり、且つ、認証が必要な場合、ＭＡＣ生成部３４は、受信したＭＡＣメッセージ中の保護対象データと共通鍵記憶部３３に記憶された共通鍵を用いて、ＭＡＣを生成し、生成したＭＡＣを判定部４１に出力する（ステップＳ３２）。認証が不要な場合、ステップＳ３２以降の処理を行わない。
【００５６】
次いで、判定部４１は、ステップＳ３２で生成されたＭＡＣと、受信したＭＡＣメッセージに設定されていたＭＡＣとが一致するか否かについて認証判定を行う（ステップＳ３３）。判定部４１は、両ＭＡＣが一致する場合に認証ＯＫ、すなわち不法侵入なしと判定する（ステップＳ３４）。一方し、両ＭＡＣが一致しない場合に認証ＮＧ、すなわち不法侵入ありと判定する（ステップＳ３５）。なお、判定部４１は、メッセージ分解部４０からＭＡＣとともにＩＤも取得し、ステップＳ３４，Ｓ３５の判定結果に関連付けてＩＤを一時的に記憶する。
【００５７】
次いで、判定部４１は、停止期間か否かを判定する（ステップＳ３６）。上記したように、送信側のＥＣＵ３０は、期間通知信号及びＭＡＣメッセージをセットで生成するとともに、期間通知信号を先に送信する。判定部４１は、メッセージ分解部４０から期間通知信号に設定された期間情報を取得し、停止期間、非停止期間を判定する。判定部４１は、期間通知信号のＩＤも取得する。
【００５８】
停止期間の場合、判定部４１は、判定したＭＡＣメッセージのＩＤから送信ノードを判断し、対応する受信側カウンタ４２をインクリメントする（ステップＳ３７）。上記したように、受信側カウンタ４２は自身を除くＥＣＵ３０ごとに設けられている。たとえばネットワークに５つのＥＣＵ３０が接続されており、自身が第２のＥＣＵ３０の場合、第１のＥＣＵ３０、第３のＥＣＵ３０、第４のＥＣＵ３０、及び第５のＥＣＵ３０用の４つの受信側カウンタ４２が設けられている。第２のＥＣＵ３０の判定部４１は、第１のＥＣＵ３０にて生成されたＭＡＣメッセージのＭＡＣを判定すると、第１のＥＣＵ３０用の受信側カウンタ４２をインクリメントする。
【００５９】
判定部４１は、認証ＯＫの場合には、受信側カウンタ４２の認証ＯＫカウンタをインクリメントし、認証ＮＧの場合には、受信側カウンタ４２の認証ＮＧカウンタをインクリメントする。そして、一連の処理を終了する。
【００６０】
一方、非停止期間の場合、判定部４１は、停止期間から非停止期間への切り替わりタイミングか否かを判定する（ステップＳ３８）。切り替わりタイミングの場合、判定部４１は、期間通知信号のＩＤに基づいて、期間通知信号を生成したＥＣＵ３０に対応する受信側カウンタ４２のカウント値を送信し、その後、この受信側カウンタ４２をクリアする（ステップＳ３９）。判定部４１は、受信側カウンタ４２をクリアする直前の認証ＯＫ数及び認証ＮＧ数（受信側カウント）と、いずれの受信側カウンタ４２かを示す情報をデータフレームに設定し、送信部３８を介して送信する。認証ＯＫ数がゼロよりも大きい場合、判定部４１は、認証ＯＫと判定したＭＡＣメッセージのＩＤ情報もデータフレームに設定して送信する。
【００６１】
このように、判定部４１は、停止期間から非停止期間に切り替わると、受信側カウンタ４２をクリアする直前の受信側カウントを送信する。そして、一連の処理を終了する。ステップＳ３８において切り替わりタイミングでない場合、ステップＳ３９の処理を実施せずに一連の処理を終了する。
【００６２】
なお、非停止期間において、マイコン３１は、不正侵入なしと判定したＭＡＣメッセージの保護対象データを用いて、たとえば所定の制御を実行する。一方、停止期間において、マイコン３１は、少なくとも不正侵入なしと判定したＭＡＣメッセージの保護対象データを用いて、たとえば所定の制御を実行する。
【００６３】
次に、図６に基づき、マイコン３１が実行する侵入検知処理について説明する。
【００６４】
図６に示すように、先ず侵入検知部４３は、送信側カウントを取得する（ステップＳ５０）。上記したように、送信側カウントは、侵入検知部４３を備えるＥＣＵ３０にて停止期間中に生成されたＭＡＣメッセージの生成数を示す。
【００６５】
次いで、侵入検知部４３は、他のＥＣＵ３０から受信側カウントを取得する（ステップＳ５１）。侵入検知部４３は、受信部３９及びメッセージ分解部４０を介して、受信側カウントを取得する。侵入検知部４３は、メッセージ分解部４０から受信側カウントとともに、カウントした受信側カウンタ４２がいずれのＥＣＵ３０用であるかを示す情報も取得する。また、認証ＯＫ数がゼロよりも大きい場合、認証ＯＫと判定したＭＡＣメッセージのＩＤ情報も取得する。
【００６６】
次いで、侵入検知部４３は、自身（ＥＣＵ３０）に対応する受信側カウントと、送信側カウントとに基づいて、不正機器によるなりすまし攻撃、すなわち不正侵入を検知する。たとえば第１のＥＣＵ３０の侵入検知部４３は、第２のＥＣＵ３０から取得した、第１のＥＣＵ３０に対応する受信側カウンタ４２の受信側カウントと、第１のＥＣＵ３０の送信側カウンタ３７の値である送信側カウントとに基づいて、不正侵入を検知する。侵入検知部４３は、受信側カウンタ４２がいずれのＥＣＵ３０用かを示す情報に基づいて、自身（ＥＣＵ３０）に対応する受信カウンタか否かを判断する。
【００６７】
侵入検知部４３は、２つの条件の少なくとも一方が成立するか否かを判定する（ステップＳ５２）。第１に、侵入検知部４３は、受信側カウントの総数、すなわち認証ＯＫ数と認証ＮＧ数の合算値が、送信側カウントよりも大きいか否かを判定する。共通鍵の漏洩により、たとえば不正機器が第１のＥＣＵ３０になりすまし、停止期間中に不正なＭＡＣメッセージを送信した場合、第２のＥＣＵ３０における第１のＥＣＵ３０用の受信側カウンタ４２のカウント総数が、第１のＥＣＵ３０の送信側カウントよりも大きくなる。
【００６８】
第２に、侵入検知部４３は、認証ＯＫ数がゼロ（０）よりも大きいか否かを判定する。上記したように、停止期間中に生成されるＭＡＣメッセージには、ＭＡＣ生成部３４により生成される値とは異なる値が設定される。このため、たとえば第１のＥＣＵ３０にて生成されたＭＡＣメッセージを、第２のＥＣＵ３０の判定部４１で認証判定する際、ＭＡＣメッセージに設定されていたＭＡＣと、第２のＥＣＵ３０のＭＡＣ生成部３４にて生成されたＭＡＣが一致することはない。認証ＯＫは、共通鍵の漏洩により不正機器が第１のＥＣＵ３０になりすまし、停止期間中に不正なメッセージを送信することで生じうる。
【００６９】
侵入検知部４３は、第１条件である受信側カウントの総数＞送信側カウントを満たすか、又は、第２条件である認証ＯＫ数＞０を満たすと、不正侵入ありと判定する（ステップＳ５３）。
【００７０】
認証ＯＫ数がゼロよりも大きいとして不正侵入ありと判定した場合、侵入検知部４３は、認証ＯＫと判定したＭＡＣメッセージのＩＤを、不正ＩＤとして記憶するとともに、送信部３８を介して他のＥＣＵ３０へ通知する（ステップＳ５４）。そして、一連の処理を終了する。これにより、たとえば第１のＥＣＵ３０は、自身が送信するＭＡＣメッセージのうち、不正ＩＤとＩＤが一致するメッセージの生成を停止するなどの処理が可能となる。また、他の第２〜第５のＥＣＵ３０は、不正ＩＤのＭＡＣメッセージを破棄するなどの処理が可能となる。
【００７１】
なお、受信側カウントの総数が、送信側カウントよりも大きいとして不正侵入ありと判定した場合に、同様の処理を行ってもよい。すなわち、認証ＮＧと判定したすべてのＭＡＣメッセージのＩＤを、不正ＩＤとして記憶するとともに、送信部３８を介して他のＥＣＵ３０へ通知してもよい。
【００７２】
一方、ステップＳ５２においていずれの条件も満たさない場合、侵入検知部４３は、不正侵入なしと判定し（ステップＳ５５）、一連の処理を終了する。
【００７３】
図７は、侵入検知のシーケンス図である。図７では、ネットワークに接続された２つのＥＣＵ３０間の例を示している。
【００７４】
図７に示すように、第１のＥＣＵ３０のマイコン３１は、上記した送信処理（図４参照）により、期間通知信号及びＭＡＣメッセージを送信する。
【００７５】
第２のＥＣＵ３０は、期間通知信号及びＭＡＣメッセージを受信し、上記した受信処理（図５参照）を実施する。そして、第２のＥＣＵ３０は、第１のＥＣＵ３０に対応する受信側カウンタ４２の停止期間中のカウント値（受信側カウント）を送信する。
【００７６】
第１のＥＣＵ３０は、受信側カウントに基づいて、上記した侵入検知処理（図６参照）を実施する。そして、不正機器の侵入を検知した場合、ネットワークにつながる他のＥＣＵ３０（第２のＥＣＵ３０）へ不正ＩＤを通知する。
【００７７】
次に、本実施形態のＥＣＵ３０及び通信システム１０の効果について説明する。
【００７８】
本来であれば共通鍵と保護対象データに基づいて生成されたＭＡＣが、ＭＡＣメッセージに設定されるべきところ、意図的に停止期間を設け、ＭＡＣ生成部３４により生成される値とは異なる値を、ＭＡＣメッセージのＭＡＣとして設定する。停止期間中に生成されたＭＡＣメッセージは、ＭＡＣメッセージを受信したＥＣＵ３０の判定部４１において認証ＮＧと判定される。したがって、共通鍵の漏洩により不正機器がＭＡＣメッセージ送信側のＥＣＵ３０になりすましても、このＥＣＵ３０のＩＤが付与されたＭＡＣメッセージの認証判定結果に基づいて、不正機器によるなりすまし攻撃（不正侵入）を検知することができる。
【００７９】
上記したように、停止期間中に送信側のＥＣＵ３０（たとえば第１のＥＣＵ）で生成されたＭＡＣメッセージは、他のＥＣＵ３０において認証ＮＧと判定される。このため、送信側のＥＣＵ３０で生成されたＭＡＣメッセージのみを受信した場合、認証ＯＫ判定がなされることはない。よって、認証ＯＫ判定（一致判定）により、不正侵入を検知することができる。
【００８０】
また、侵入検知部４３が、認証ＯＫ数がゼロよりも大きい場合に、認証ＯＫと判定したＭＡＣメッセージのＩＤを記憶するとともに、ＩＤを他のＥＣＵ３０に通知する。これにより、ＭＡＣメッセージを生成したＥＣＵ３０の場合、自身が送信するＭＡＣメッセージのうち、不正ＩＤとＩＤが一致するメッセージの生成を停止するなどの処理が可能となる。また、他のＥＣＵ３０は、不正ＩＤのＭＡＣメッセージを破棄するなどの処理が可能となる。
【００８１】
また、侵入検知部４３が、上記した認証ＯＫ判定に加えて、停止期間中の判定部４１による判定回数とＭＡＣメッセージの生成数に基づいた不正侵入検知も行う。具体的には、同じＥＣＵ３０のＩＤが付与されたＭＡＣメッセージについて、停止期間中の認証ＯＫ数及び認証ＮＧ数の合算値と生成数とを比較し、不正侵入検知を行う。不正機器から送信される不正メッセージは、認証ＯＫと判定されることもあれば、認証ＮＧと判定されることもあり得る。不正メッセージが認証ＯＫ、認証ＮＧいずれに判定されても、不正メッセージの分、生成数よりも判定数が多くなる。したがって、不正メッセージが認証ＮＧと判定される場合でも、不正侵入を検知することができる。
【００８２】
なお、停止期間中においてもＭＡＣ生成部３４がＭＡＣを生成し、生成されたＭＡＣをＭＡＣメッセージに設定しない構成としてもよい。これに対し、本実施形態では、ＭＡＣ生成部３４が、停止期間においてＭＡＣの生成を停止する。停止期間中は、ＭＡＣの生成が停止し、代わりにＭＡＣ記憶部３６に記憶された値が用いられる。これにより、マイコン３１の処理負荷を低減することができる。よって、処理負荷を低減しつつ、不正侵入を検知することができる。特に本実施形態では、ＭＡＣ記憶部３６に記憶された固定値をＭＡＣとして設定するため、これによってもマイコン３１の処理負荷を低減することができる。
【００８３】
上記したように、送信データ生成部３２が、停止条件の成立可否を判定する。このとき、停止条件として、ＥＣＵ３０（マイコン３１）の処理負荷が予め設定されたしきい値よりも高いときに成立する条件、たとえばエンジン回転数が所定回転数よりも高いときに成立する条件を採用するとよい。これによっても、マイコン３１の処理負荷を低減することができる。
【００８４】
また、停止条件として、一定周期ごとに成立する条件、たとえば１００ｓｅｃごとに１０ｓｅｃ間のみ成立する条件を採用してもよい。これによれば、定期的に不正侵入を検知することができる。
【００８５】
なお、本実施形態では、受信側カウントを送信し、ＭＡＣメッセージを生成したＥＣＵ３０の侵入検知部４３にて不正侵入を検知する例を示したが、これに限定されない。送信側カウントを送信部３８を介して送信し、ＭＡＣメッセージを受信したＥＣＵ３０の判定結果（受信側カウント）と、このＥＣＵ３０が受信した送信側カウントとに基づいて、受信側のＥＣＵ３０にて不正侵入を検知する構成としてもよい。
【００８６】
停止期間において、ＭＡＣメッセージとともに期間通知信号を生成し、送信する例を示したが、これに限定されない。たとえば停止期間の開始タイミングと非停止期間の開始タイミングのみ、期間通知信号を送信してもよい。また、ＭＡＣメッセージのデータフィールド内に、停止期間、非停止期間を示す期間情報を設定してもよい。その際、停止期間の開始タイミングと非停止期間の開始タイミングのみ、期間情報を設定してもよい。
【００８７】
停止期間から非停止期間に切り替わると、期間通知信号のＩＤにより、対応するＥＣＵ３０用の受信側カウンタ４２のみ、受信側カウントを送信し、次いでクリアする例を示した。これによれば、通信負荷を低減することができる。しかしながら、非停止期間に切り替わると、すべての受信側カウンタ４２の受信側カウントを送信し、次いでクリアしてもよい。これによれば、複数の受信側カウンタ４２の中からひとつを選択するトリガが不要となる。
【００８８】
自身を除く他のＥＣＵ３０それぞれに対応して受信側カウンタ４２を設ける例を示したが、これに限定されない。たとえば、ＩＤごとに受信側カウンタを設けてもよい。ただし、処理負荷等を考慮すると、ＥＣＵ３０単位で設けたほうが良い。
【００８９】
（第２実施形態）
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示した通信システム１０及びＥＣＵ３０と共通する部分についての説明は省略する。
【００９０】
本実施形態では、認証ＯＫ判定のみにより、不正侵入を検知する構成とされている。その一例を以下に示す。図８に示すように、ＥＣＵ３０のマイコン３１は、送信側カウンタ３７を備えていない。受信側カウンタ４２は、認証ＯＫカウンタのみを有している。そして、侵入検知部４３は、受信側カウント（認証ＯＫカウント）に基づいて、侵入検知を行う。
【００９１】
送信処理及び受信処理については、図示を省略する。送信処理は、図４に示した処理に対し、ステップＳ１４，Ｓ１７，Ｓ１８を省略したものとされる。すなわち、送信側カウントに関する処理を省略したものとされる。受信処理は、図５に示した処理と基本的に同じ処理とされる。ステップＳ３９において、受信側カウントの送信先が侵入検知部４３とされる。
【００９２】
図９は、侵入検知処理を示している。侵入検知部４３は、受信側カウントを取得する（ステップＳ６０）。ステップＳ６０は、ステップＳ５１に対応した処理である。侵入検知部４３は、受信側カウントとともに、認証ＯＫ数がゼロよりも大きい場合、認証ＯＫと判定したＭＡＣメッセージのＩＤ情報も取得する。
【００９３】
次いで、侵入検知部４３は、認証ＯＫ数がゼロ（０）よりも大きいか否かを判定する（ステップＳ６１）ステップＳ６１は、ステップＳ５２のうちの第２条件に相当する。
【００９４】
認証ＯＫ数がゼロよりも大きい場合、侵入検知部４３は、不正侵入ありと判定し（ステップＳ６２）する。そして、認証ＯＫと判定したＭＡＣメッセージのＩＤを、不正ＩＤとして記憶するとともに、送信部３８を介して他のＥＣＵ３０へ通知する（ステップＳ６３）。そして、一連の処理を終了する。ステップＳ６２，Ｓ６３は、ステップＳ５３，Ｓ５４に対応した処理である。
【００９５】
一方、ステップＳ６１において認証ＯＫ数がゼロの場合、侵入検知部４３は、不正侵入なしと判定し（ステップＳ６４）、一連の処理を終了する。ステップＳ６４は、ステップＳ５５に対応した処理である。
【００９６】
このように、上記した構成によれば、受信側のＥＣＵ３０での認証ＯＫ判定（一致判定）により、不正侵入を検知することができる。また、認証ＯＫありの場合、ＭＡＣメッセージのＩＤを記憶するとともに、他のＥＣＵ３０に通知する。これにより、不正ＩＤのＭＡＣメッセージの破棄や不正ＩＤと同じＩＤのＭＡＣメッセージの生成停止などの処理が可能となる。
【００９７】
なお、受信側のＥＣＵ３０での認証ＯＫ判定による侵入検知は上記例に限定されない。期間通知信号（期間情報）と同じＥＣＵ３０のＩＤにて、期間停止中に生成されたＭＡＣメッセージの判定結果（認証ＯＫ判定）に基づいて、侵入検知を行う構成であればよい。
【００９８】
この明細書の開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。たとえば、開示は、実施形態において示された要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものと解されるべきである。
【００９９】
通信プロコトルとしてＣＡＮの例を示したが、これに限定されない。電子制御装置３０は、互いに通信可能にネットワークに接続されるのであれば、ＣＡＮに限定されない。
【０１００】
第１条件である受信側カウントの総数と送信側カウントとの比較のみにより、不正侵入を検知する構成としてもよい。
【０１０１】
メッセージ生成部３５が送信側カウンタ３７をインクリメント及びクリアする例を示したが、これに限定されない。停止判定部である送信データ生成部３２がインクリメント及びクリアしてもよい。
【符号の説明】
【０１０２】
１０…通信システム、２０…ＣＡＮバス、３０…ＥＣＵ（電子制御装置）、３１…マイコン、３２…送信データ生成部、３３…共通鍵記憶部、３４…ＭＡＣ生成部、３５…メッセージ生成部、３６…ＭＡＣ記憶部、３７…送信側カウンタ、３８…送信部、３９…受信部、４０…メッセージ分解部、４１…判定部、４２…受信側カウンタ、４３…侵入検知部
【図１】
2019134262.tif 000003
【図２】
2019134262.tif 000004
【図３】
2019134262.tif 000005
【図４】
2019134262.tif 000006
【図５】
2019134262.tif 000007
【図６】
2019134262.tif 000008
【図７】
2019134262.tif 000009
【図８】
2019134262.tif 000010
【図９】
2019134262.tif 000011