(57)【要約】【課題】メッセージ認証コードを添付されたメッセージに基づく制御処理の遅延を低減する。【解決手段】本開示の一態様の電子制御装置は、通信部と、認証部と、制御部と、を備える。通信部は他の装置と通信する。認証部は、通信部が受信するメッセージがメッセージ認証の対象である場合、メッセージに対する認証処理を行う。Ｓ４１０〜Ｓ４１８において制御部は、認証部による認証処理とは異なる処理系統により、メッセージに基づく制御処理を実行する。【選択図】図４
2018085639.tif 000002
【特許請求の範囲】
【請求項１】
他の装置と通信するように構成された通信部（２０）と、
前記通信部が受信するメッセージがメッセージ認証の対象である場合、前記メッセージに対する認証処理を行うように構成された認証部（３０、Ｓ４００〜Ｓ４０６）と、
前記認証部による前記認証処理とは異なる処理系統により、前記メッセージに基づく制御処理を実行するように構成された制御部（３０、Ｓ４１０〜Ｓ４１８）と、
を備える電子制御装置（１０）。
【請求項２】
請求項１に記載の電子制御装置において、
前記制御部は、前記メッセージのそれぞれについて、前記認証部が前記認証処理を終了しているか否かに拘らず前記制御処理を実行する、
電子制御装置。
【請求項３】
請求項１または２に記載の電子制御装置において、
前記制御部は、前記メッセージのそれぞれについてか、異なる前記メッセージ同士についてかに拘らず、前記認証処理よりも前記制御処理を優先して実行する、
電子制御装置。
【請求項４】
請求項１から３のいずれか一項に記載の電子制御装置において、
前記通信部は、メッセージ認証コードが添付された前記メッセージをメッセージ認証の対象として受信し、
前記認証部は、受信した前記メッセージからハッシュ関数を用いてメッセージ認証コードを生成し、生成した前記メッセージ認証コードと、受信した前記メッセージ認証コードとが一致するか否かに基づいて前記認証処理を実行する、
電子制御装置。
【請求項５】
請求項１から４のいずれか一項に記載の電子制御装置において、
前記制御部（Ｓ４１０）は、今回の前記制御処理の前に実行された前記認証処理の認証結果を参照する、
電子制御装置。
【請求項６】
請求項５に記載の電子制御装置において、
前記制御部（Ｓ４１２、Ｓ４１６、Ｓ４１８）は、前記認証結果が正常の場合、前記メッセージに基づく通常時の前記制御処理を実行し、前記認証結果が異常の場合、異常結果に対する異常時の制御処理を実行する、
電子制御装置。
【請求項７】
請求項１から６のいずれか一項に記載の電子制御装置において、
前記認証部は、前記メッセージのそれぞれに対し所定期限までに前記認証処理を終了する、
電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、メッセージ認証の必要なメッセージ受信して認証処理をする技術に関する。
【背景技術】
【０００２】
複数の電子制御装置の間でメッセージを送受信する場合、不正なメッセージではないことを認証するために、メッセージ認証コードをメッセージに添付する技術が知られている（例えば、特許文献１参照）。
【０００３】
メッセージ認証コードを添付されたメッセージを受信すると、受信側の電子制御装置では、受信したメッセージから送信側と共通のアルゴリズムでメッセージ認証コードを生成する。そして、生成したメッセージ認証コードと、受信したメッセージ認証コードとが一致するか否かに基づいて、受信したメッセージに対する認証処理が実行される。
【０００４】
従来の電子制御装置では、認証処理によって正当なメッセージであると認証すると、メッセージに基づいた制御処理を、認証処理と同じ処理系統で認証処理に続いて実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１２−５３３２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メッセージに対する認証処理を実行し、正当なメッセージであることを認証してからメッセージに基づく制御処理を実行する場合、認証処理のために制御処理の実行が遅れることがある。そのため、例えば、定期的にメッセージを受信して制御処理を実行する場合、今回受信したメッセージに基づく制御処理を、次に受信するメッセージに基づく制御処理の実行前に終了できないおそれがある。
【０００７】
本開示の一側面は、メッセージ認証コードを添付されたメッセージに基づく制御処理の遅延を低減する。
【課題を解決するための手段】
【０００８】
本開示の一態様は、通信部（２０）と、認証部（３０、Ｓ４００〜Ｓ４０６）と、制御部（３０、Ｓ４１０〜Ｓ４１８）と、を備える。
通信部は他の装置と通信する。認証部は、通信部が受信するメッセージがメッセージ認証の対象である場合、メッセージに対する認証処理を行う。制御部は、認証部による認証処理とは異なる処理系統により、メッセージに基づく制御処理を実行する。
【０００９】
この構成によれば、認証処理でメッセージが正当であることを認証してから制御処理を実行する必要がないので、実行可能な時間で制御処理を極力早く実行できる。これにより、制御処理の遅延を低減できる。また、実行可能な時間でメッセージに対する認証処理も実行できる。
【００１０】
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１１】
【図１】本通信システムを示す構成図。
【図２】制御処理と認証処理とを示すタイムチャート。
【図３】認証処理を示すフローチャート。
【図４】制御処理を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本開示の実施形態を図に基づいて説明する。
［１．構成］
図１に示す通信システム２は、例えば車載のシステムであり、複数の電子制御装置１０がネットワーク１００により通信する。以下、電子制御装置をＥＣＵとも言う。ネットワーク１００は、例えばＣＡＮバスで構成されている。ＣＡＮは、Controller Area Networkの略であり、登録商標である。
【００１３】
ＥＣＵ１０は、ネットワークインタフェース２０と制御ユニット３０とを備えている。ネットワークインタフェース２０は、制御ユニット３０がネットワーク１００を介して他のＥＣＵ１０とデータ通信を行うための通信インタフェースである。
【００１４】
制御ユニット３０は、ＣＰＵ３２と、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の半導体メモリ３４とを備える周知のマイクロコンピュータを搭載している。以下、半導体メモリを単にメモリとも言う。制御ユニット３０を構成するマイクロコンピュータの数は一つでも複数でもよい。
【００１５】
ＥＣＵ１０の各種機能は、制御ユニット３０のＣＰＵ３２が非遷移的実体的記録媒体に記憶されているプログラムを実行することにより実現される。この例では、メモリ３４が、プログラムを格納した非遷移的実体的記録媒体に該当する。このプログラムをＣＰＵ３２が実行することで、プログラムに対応する方法が実行される。
【００１６】
ＥＣＵ１０の各種機能を実現する手法は、ソフトウェアに限るものではなく、その一部または全部の要素を、論理回路やアナログ回路等を組み合わせたハードウェアを用いてもよい。
【００１７】
［２．処理］
（１）処理の実行順序
ＥＣＵ１０が他のＥＣＵ１０からメッセージを定期的に受信するときの、各処理の実行順序を図２に示す。図２には、ＥＣＵ１０が受信するメッセージとして、メッセージ認証コードが添付されていないものとメッセージ認証コードが添付されているものとが示されている。以下、メッセージ認証コードをＭＡＣとも言う。
【００１８】
ＥＣＵ１０は、ＭＡＣが添付されていないメッセージの制御データに基づいて制御処理Ａを実行し、メッセージに対する認証処理は実行しない。制御処理Ａを実行するメッセージは不定期に発生する。ＥＣＵ１０は、ＭＡＣが添付されているメッセージの制御データに基づいて制御処理Ｂを実行し、メッセージに対する認証処理Ｂを実行する。
【００１９】
ＥＣＵ１０は、制御処理Ｂを実行するメッセージを、例えば８ｍｓ周期で受信する。したがって、制御処理Ｂには、次のメッセージを受信するまでの８ｍｓの実行周期の間に実行を終了するリアルタイム性が要求される。
【００２０】
ＥＣＵ１０は、制御処理Ｂと認証処理Ｂとを異なる処理系統で分離して実行する。制御処理Ｂと認証処理Ｂとを異なる処理系統で分離して実行するということは、制御処理Ｂと認証処理Ｂとの実行順序に拘らず、実行可能な時間で制御処理Ｂと認証処理Ｂとをそれぞれ実行することを表す。
【００２１】
さらに、図２に示す本開示の処理系統のように、メッセージのそれぞれについてか、異なるメッセージ同士についてかに拘らず、制御処理Ｂの優先度は認証処理Ｂよりも高い。制御処理Ａの優先度は制御処理Ｂよりも高い。さらに、ＥＣＵ１０は、メッセージのそれぞれについて、認証処理Ｂが終了しているか否かに拘らず制御処理Ｂを実行する。
【００２２】
ＥＣＵ１０は、各制御処理Ｂにおいて、今回の制御処理Ｂの前に実行された認証処理Ｂで、不正を検出したか否かを判定する。
図２においてＥＣＵ１０は、メッセージ１を受信すると、メッセージ１に基づく制御処理Ｂ１を実行する。ＥＣＵ１０は、制御処理Ｂ１が終了すると、メッセージ１に対する認証処理Ｂ１を実行する。
【００２３】
ＥＣＵ１０は、次の周期でメッセージ２を受信すると、メッセージ２に基づく制御処理Ｂ２を実行する。制御処理Ｂ２の実行中に制御処理Ａの実行が要求されると、制御処理Ａの方が制御処理Ｂ２よりも優先度が高いので、ＥＣＵ１０は、制御処理Ｂ２の実行を中断して制御処理Ａを実行する。
【００２４】
制御処理Ａが終了すると、ＥＣＵ１０は中断していた制御処理Ｂ２の実行を再開する。制御処理Ｂ２が終了すると、ＥＣＵ１０は、メッセージ２に対する認証処理Ｂ２を実行する。図２では、ＥＣＵ１０は、認証処理Ｂ２の実行中に次の周期のメッセージ３を受信するので、認証処理Ｂ２の実行を中断してメッセージ３に基づく制御処理Ｂ３を実行する。
【００２５】
このように、メッセージを受信すると認証処理Ｂが終了しているか否かに拘らず、認証処理Ｂとは異なる処理系統で制御処理Ｂを実行するので、８ｍｓの実行周期の間に制御処理Ｂの実行を終了できる。
【００２６】
これに対し、図２に示す従来例の処理系統のように、メッセージを受信すると、同じ処理系統で認証処理Ｂが終了してから制御処理Ｂを実行すると、制御処理Ｂの実行が遅れ、次の周期までずれてしまうことがある。
【００２７】
制御処理Ｂ３が終了すると、ＥＣＵ１０は中断していた認証処理Ｂ２の実行を再開する。ここで、メッセージ２が不正データの場合、認証処理Ｂ２においてメッセージ２が不正データであることが検出される。ＥＣＵ１０は、メッセージ２が不正であることをフラグ等で記憶しておく。以下、このフラグを異常フラグとも言う。異常フラグがオンであると、不正なメッセージを受信したことを示す。
【００２８】
認証処理Ｂ２が終了すると、ＥＣＵ１０は、メッセージ３に対して認証処理Ｂ３を実行する。ＥＣＵ１０は、認証処理Ｂ３の実行中に次の周期のメッセージ４を受信するので、認証処理Ｂ３の実行を中断してメッセージ４に基づく制御処理Ｂ４を実行する。ＥＣＵ１０は、制御処理Ｂ４において、異常フラグがオンになっているので、制御処理Ｂ４の前に実行された認証処理Ｂで不正が検出されたと判定する。
【００２９】
この場合、ＥＣＵ１０は、制御処理Ｂ４において、異常フラグがオフの場合の通常時の制御処理Ｂ４に代えて、不正なメッセージを受信したという認証処理による異常結果に対する異常時の制御処理を実行する。
【００３０】
不正なメッセージ２を受信してからメッセージ４に基づく制御処理Ｂ４で不正が検出されたと判定し、異常時の制御処理を実行するまでに１６ｍｓの異常状態が継続している。しかし、不正なメッセージ２に基づく制御処理Ｂ２を実行してから制御対象が異常な挙動を起こすまでの時間が１６ｍｓよりもはるかに長い場合には、制御対象が異常な挙動を起こすことを、制御処理Ｂ４で実行する異常時の制御処理により防ぐことができる。
【００３１】
そのためには、不正な制御処理Ｂ２の実行が開始されてから制御対象が異常な挙動を起こす前の所定期限までに、認証処理Ｂ２が認証処理を終了すればよい。
ＥＣＵ１０は、異常時の制御処理を実行した後もメッセージの受信は継続する。ただし、不正データを受信したので、ＥＣＵ１０は、メッセージに基づく通常時の制御処理Ｂは実行せず、異常時の制御処理を実行する。ＥＣＵ１０は、メッセージに対する認証処理Ｂは実行する。
【００３２】
そして、認証処理Ｂで正当なメッセージであると認証した回数の合計が所定回数以上、あるいは認証処理Ｂで正当なメッセージであると認証した回数が連続して所定回数以上になると、ＥＣＵ１０は、不正データの受信は一時的で偶発的なものであったと判定する。この場合、ＥＣＵ１０は、次に受信するメッセージから通常時の制御処理Ｂを再開してもよい。
【００３３】
（２）認証処理
図３に示す認証処理のフローチャートは、制御処理が実行されていないときに実行される。Ｓ４００においてＥＣＵ１０は、受信したメッセージからＭＡＣを参照する。
【００３４】
Ｓ４０２においてＥＣＵ１０は、正当なＥＣＵ１０がメッセージを送信する場合に使用するのと同じハッシュ関数により、受信したメッセージからＭＡＣを生成する。ハッシュ関数の代わりに、ブロック暗号によりＭＡＣを生成してもよい。そして、ＥＣＵ１０は、メッセージに添付されているＭＡＣと、Ｓ４００で参照したＭＡＣとが一致するか否かに基づいて、受信したメッセージが正当か不正かを判定する認証処理を実行する。
【００３５】
Ｓ４０４の判定がＹｅｓであり、認証結果が正常で、受信したメッセージが正当であれば、ＥＣＵ１０は本処理を終了する。Ｓ４０４の判定がＮｏであり、認証結果が異常で、不正なメッセージを受信した場合、Ｓ４０６においてＥＣＵ１０は、異常フラグをオンにする。
【００３６】
尚、一時的なノイズ等によりメッセージの一部のビットが反転し、認証処理により不正なメッセージを受信したと判定されることがある。この場合、ノイズが発生しなければ、認証処理により正当なメッセージを受信したと判定される。
【００３７】
そこで、認証処理において、不正なメッセージを受信したと１回判定するだけで異常フラグをオンにするのではなく、不正を検出した回数の合計が所定回数以上、あるいは不正を検出した回数が連続して所定回数以上になると、異常フラグをオンにしてもよい。
【００３８】
不正を検出した回数の合計が所定回数以上、あるいは不正を検出した回数が連続して所定回数以上におけるそれぞれの所定回数は、不正なメッセージの受信が一時的で偶発的なものではなく、意図的に繰り返し行われていると判定できる回数に設定される。
【００３９】
また、異常フラグがオンであっても、認証処理で正当なメッセージであると認証した回数の合計が所定回数以上、あるいは正当なメッセージであると認証した回数が連続して所定回数以上になると、ＥＣＵ１０は、不正データの受信は一時的で偶発的なものであったと判定する。この場合、ＥＣＵ１０は、異常フラグをオフにしてもよい。
【００４０】
（３）制御処理
図４に示す制御処理のフローチャートは、他に優先度の高い制御処理が実行されていないときに実行される。
【００４１】
ＥＣＵ１０は、Ｓ４１０において異常フラグを参照し、Ｓ４１２において異常フラグがオンであるか否かを判定する。
Ｓ４１２の判定がＮｏであり、異常フラグがオフの場合、ＥＣＵ１０は、今回、メッセージに基づく制御処理を実行するまでに、認証処理において不正は検出されていないと判断する。この場合、ＥＣＵ１０は、Ｓ４１４において今回受信したメッセージから制御データを参照し、Ｓ４１６において、正当なメッセージの制御データに基づく通常時の制御処理を実行する。
【００４２】
Ｓ４１２の判定がＹｅｓであり、異常フラグがオンの場合、ＥＣＵ１０は、今回、メッセージに基づく制御処理を実行するまでに、認証処理において不正が検出されたと判断する。この場合、Ｓ４１８においてＥＣＵ１０は、制御対象に対する通常時の制御処理を中止するか、あるいは制御対象に対する制御量を低減するなどの異常結果に対する異常時の制御処理を実行する。
【００４３】
［３．効果］
以上説明した上記実施形態によると、以下の効果を得ることができる。
（１）ＭＡＣを添付されたメッセージに基づく制御処理と、メッセージに対する認証処理とを異なる処理系統で分離して実行するので、制御処理と認証処理とを実行可能な時間で適宜実行できる。
【００４４】
これにより、上記実施形態のようにリアルタイム性を要求される制御処理であれば、制御処理の実行周期において、実行可能な時間で制御処理を極力早く実行し、制御処理の遅延を低減できる。さらに、実行可能な時間でメッセージに対する認証処理も実行できる。
【００４５】
（２）ＭＡＣを添付されたメッセージのそれぞれについて、メッセージに基づく制御処理を、メッセージに対する認証処理が終了しているか否かに拘らず実行するので、リアルタイム性を要求される制御処理を極力早く実行できる。
【００４６】
（３）ＭＡＣを添付されたメッセージのそれぞれについてか、異なるメッセージ同士についてかに拘らず、メッセージに基づく制御処理を、メッセージに対する認証処理よりも優先して実行する。これにより、リアルタイム性を要求される制御処理を極力早く実行できる。
【００４７】
（４）認証処理は制御処理が実行されていないときにしか実行できないが、不正なメッセージに基づく制御処理により、制御対象に異常な挙動が生じる前に不正なメッセージであることが検出できればよい。不正なメッセージを検出して、不正な制御処理に対応する適切な異常時の制御処理を実行することにより、制御対象に異常な挙動が生じることを防止できる。
【００４８】
以上説明した上記実施形態において、ＥＣＵ１０が電子制御装置に対応し、ネットワークインタフェース２０が通信部に対応し、制御ユニット３０が制御部と認証部とに対応する。
【００４９】
また、Ｓ４００〜Ｓ４０６が認証部の処理に対応し、Ｓ４１０〜Ｓ４１８が制御部の処理に対応する。
［４．他の実施形態］
（１）上記実施形態では、メッセージに基づく制御処理をメッセージに対する認証処理よりも優先して実行した。これに対し、制御処理を実行する周期に、制御処理と認証処理とを実行する時間的な余裕があれば、制御処理と認証処理とのいずれを先に実行してもよい。
【００５０】
（２）上記実施形態では、マイクロコンピュータを搭載した複数のＥＣＵ１０の間で通信を行った。これ以外にも、複数のマイクロコンピュータのそれぞれを電子制御装置として、マイクロコンピュータの間で通信を行ってもよい。
【００５１】
（３）上記実施形態における一つの構成要素が有する複数の機能を複数の構成要素によって実現したり、一つの構成要素が有する一つの機能を複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を一つの構成要素によって実現したり、複数の構成要素によって実現される一つの機能を一つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【００５２】
（４）上述した電子制御装置の他、当該電子制御装置を構成要素とする通信システム、当該電子制御装置としてコンピュータを機能させるための電子制御プログラム、この電子制御プログラムを記録した記録媒体、電子制御方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【００５３】
２：通信システム、１０：ＥＣＵ（電子制御装置）、２０：ネットワークインタフェース（通信部）、３０：制御ユニット（制御部、認証部）
【図１】
2018085639.tif 000003
【図２】
2018085639.tif 000004
【図３】
2018085639.tif 000005
【図４】
2018085639.tif 000006