(57)【要約】【課題】送信時刻のばらつきに起因する不正なメッセージの検知率低下を防止すると共に、正規のメッセージを不正なメッセージと誤認する確率を低減すること。【解決手段】受信した対象メッセージＭｘ１の周期性に基づいて正規の周期メッセージと攻撃とを区別する際に、この対象メッセージＭｘ１の送信時刻を影響した可能性のある影響メッセージを受信履歴から抽出し、この影響メッセージに基づき対象メッセージＭｘ１の本来の送信基準時刻ｔｓｒ１が含まれる送信時刻範囲ｔｓ１〜ｔｓ２を推定し、この送信時刻範囲を利用して周期性の一致／不一致を識別する。各受信メッセージの送信優先度を考慮して各影響メッセージおよび送信時刻範囲を特定する。尤もらしい送信時刻を検出した時に送信時刻の記録を更新する。送信時刻のばらつき範囲を正確に限定できるので、比較の際の精度が向上する。【選択図】図３
2019205089.tif 000002
【特許請求の範囲】
【請求項１】
複数の送信元が共通の通信バスにそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージと、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別する通信メッセージ識別装置であって、
前記第１のメッセージの前に受信した他のメッセージの中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出する影響メッセージ検出部と、
前記メッセージの受信時刻と、前記影響メッセージ検出部が検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲を推定する送信時刻推定部と、
前記第１のメッセージの基準周期と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する攻撃検知部と、
を備えたことを特徴とする通信メッセージ識別装置。
【請求項２】
前記送信時刻推定部は、受信した複数のメッセージの相互の優先度の違いを加味して、前記第１のメッセージの送信時刻範囲を推定する、
請求項１に記載の通信メッセージ識別装置。
【請求項３】
前記第１のメッセージの識別子を保持する識別子情報保持部と、
受信した前記メッセージの履歴情報を識別子毎に保持する履歴情報保持部と、
受信した前記メッセージの周期情報を識別子毎に保持する周期情報保持部と、
を更に備えた、請求項１または請求項２に記載の通信メッセージ識別装置。
【請求項４】
前記第１のメッセージの受信を検知した場合に、前記送信時刻推定部が推定した前記送信時刻範囲に基づいて、前記周期情報保持部が保持する送信時刻情報を更新する周期情報更新部、
を更に備えた、請求項３に記載の通信メッセージ識別装置。
【請求項５】
複数の送信元が共通の通信バスにそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージと、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別するための通信メッセージ識別方法であって、
前記第１のメッセージの前に受信した他のメッセージの中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出し、
前記メッセージの受信時刻と、検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲を推定し、
前記第１のメッセージの基準周期と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する、
ことを特徴とする通信メッセージ識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信メッセージ識別装置および通信メッセージ識別方法に関し、特に周期性のあるメッセージとそれに対する攻撃とを区別するための技術に関する。
【背景技術】
【０００２】
例えば、特許文献１は、多様で変化し得る攻撃に適応して攻撃フレームを検知し得るセキュリティ装置を開示している。具体的には、バスを介してＣＡＮプロトコルに従ってデータフレームを授受する複数の電子制御ユニットと接続されるゲートウェイは、バスからフレームを受信する受信部と、フレームのデータフィールド内のデータの値の検査に係るパラメータを保持する保持部と、受信されたフレームの送信周期判定においてＩＤが同値の２つのフレームの受信間隔が所定の許容範囲から外れる場合に、保持部が保持するパラメータを更新する更新部と、保持部が保持するパラメータに基づいて、受信されたフレームが攻撃フレームか否かの判定に係る検査を行う検査部を備える。
【０００３】
また、特許文献２は、車載ネットワークなどのネットワークシステムにおいて、不正なデータを侵入させて誤動作させる攻撃を検知し防御するため、ネットワークの周期情報に基づく不正の検出および不正なデータ転送の防止の技術を開示している。具体的には、データを受信する通信部と、データを受信した受信時間を管理する時間管理部と、データを処理する制御部とを有し、制御部は基準とする受信データに対して、同じ識別子を持ち受信間隔が所定周期より短い第１のデータを受信した場合には、基準とする受信データの受信時間から所定周期経過するまでに第１のデータと同一の識別子を持つデータの受信を待ち、この間に第１のデータと同一の識別子を持つ第２のデータを受信したときに、不正が発生したと判断して周期異常検出時処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−８５６６３号公報
【特許文献２】特開２０１４−１４６８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば車載通信システムにおいては、標準的な通信プロトコルとしてＣＡＮ (Controller Area Network)が利用される場合が多い。このような通信システムでは、バス型構成の共通の通信線に対して、複数の電子制御ユニット（ＥＣＵ）のそれぞれがメッセージをブロードキャストで送信する。送信される各メッセージには、それを特定する識別子（ＩＤ）が送信側で付与される。また、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access with Collision Avoidance）を用いた優先制御が実施される。
【０００６】
しかし、ＣＡＮのプロトコルを採用する場合には、受信側で受信したメッセージからそれの送信元を検証することができない。したがって、受信側は受信したメッセージのＩＤから送信元を特定することになる。
【０００７】
そのため、特定の送信元以外の不正な装置が、正規の送信元と同じＩＤを用いてそれになりすました不正なメッセージを送信すると、受信側ではこれを正規の送信元から送信されたメッセージとみなして受信してしまう。つまり、不正な装置が不正なメッセージを用いて正規なシステムを攻撃することが可能になる。
【０００８】
そこで、特許文献２の技術では、送信されるメッセージの周期性を利用して、不正な周期で送出されるメッセージの検知を可能にしている。すなわち、正規のメッセージと同じＩＤを用いてなりすましたメッセージを受信した場合に、その受信タイミングが正規のメッセージの周期に対してずれることを利用して、なりすましを識別している。
【０００９】
しかしながら、周期性を有する正規のメッセージは、常に一定の周期で送信されるわけではない。すなわち、複数の電子制御ユニットは、バス構成の共通の通信線を共有しているので、通信線上での信号の衝突を防止するためにＣＳＭＡ／ＣＡを適用して、状況に応じて各送信装置が送信タイミングをずらしている。
【００１０】
つまり、周期性を有する正規のメッセージを受信する場合でも、受信側が各メッセージを受信するタイミングにばらつきが発生するので、正規のメッセージと不正なメッセージとを識別する際に誤りが発生する可能性がある。したがって、正規のメッセージを不正なメッセージと誤認するのを避けるためには、実際の受信タイミングと基準タイミングとを比較する時の閾値の余裕を大きくせざるを得ない。しかし、この余裕を大きくすると、不正なメッセージの検知率が低下し、攻撃の被害を受けやすくなる。
【００１１】
本発明は、上述した事情に鑑みてなされたものであり、その目的は、不正なメッセージの検知率低下を防止すると共に、正規のメッセージを不正なメッセージと誤認する確率を低減することが可能な通信メッセージ識別装置および通信メッセージ識別方法を提供することにある。
【課題を解決するための手段】
【００１２】
前述した目的を達成するために、本発明に係る通信メッセージ識別装置および通信メッセージ識別方法は、下記（１）〜（５）を特徴としている。
（１）  複数の送信元が共通の通信バスにそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージと、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別する通信メッセージ識別装置であって、
前記第１のメッセージの前に受信した他のメッセージの中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出する影響メッセージ検出部と、
前記メッセージの受信時刻と、前記影響メッセージ検出部が検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲を推定する送信時刻推定部と、
前記第１のメッセージの基準周期と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する攻撃検知部と、
を備えたことを特徴とする通信メッセージ識別装置。
【００１３】
上記（１）の構成の通信メッセージ識別装置によれば、第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出してその影響を考慮するので、送信時刻範囲を正確に推定できる。したがって、第１のメッセージのタイミングを比較する際に、必要以上に大きな余裕を持たせなくても、第１のメッセージを第２のメッセージと誤認するのを避けることができ、第２のメッセージの検知率の低下も防ぐことができる。
【００１４】
（２）  前記送信時刻推定部は、受信した複数のメッセージの相互の優先度の違いを加味して、前記第１のメッセージの送信時刻範囲を推定する、
上記（１）に記載の通信メッセージ識別装置。
【００１５】
上記（２）の構成の通信メッセージ識別装置によれば、各メッセージの優先度の違いを考慮するので、受信した第１のメッセージの送信時刻に影響を及ぼさなかったメッセージと、影響を及ぼした可能性のあるメッセージとを確実に区別できる。したがって、送信時刻範囲を正確に推定できる。
【００１６】
（３）  前記第１のメッセージの識別子を保持する識別子情報保持部と、
受信した前記メッセージの履歴情報を識別子毎に保持する履歴情報保持部と、
受信した前記メッセージの周期情報を識別子毎に保持する周期情報保持部と、
を更に備えた、上記（１）または（２）に記載の通信メッセージ識別装置。
【００１７】
上記（３）の構成の通信メッセージ識別装置によれば、識別子情報保持部が保持している識別子により第１のメッセージを特定できる。また、履歴情報保持部が保持する履歴情報に基づき、影響メッセージを特定できる。また、周期情報保持部が保持する周期情報により、第１のメッセージのタイミングの基準値を特定できる。
【００１８】
（４）  前記第１のメッセージの受信を検知した場合に、前記送信時刻推定部が推定した前記送信時刻範囲に基づいて、前記周期情報保持部が保持する送信時刻情報を更新する周期情報更新部、
を更に備えた、上記（３）に記載の通信メッセージ識別装置。
【００１９】
上記（４）の構成の通信メッセージ識別装置によれば、第１のメッセージの送信タイミングにジッタや偏差などのずれの影響が存在する場合であっても、そのずれが累積するのを防止できる。
【００２０】
（５）  複数の送信元が共通の通信バスにそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージと、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別するための通信メッセージ識別方法であって、
前記第１のメッセージの前に受信した他のメッセージの中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出し、
前記メッセージの受信時刻と、検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲を推定し、
前記第１のメッセージの基準周期と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する、
ことを特徴とする通信メッセージ識別方法。
【００２１】
上記（５）の構成の通信メッセージ識別方法によれば、第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出してその影響を考慮するので、送信時刻範囲を正確に推定できる。したがって、第１のメッセージのタイミングを比較する際に、必要以上に大きな余裕を持たせなくても、第１のメッセージを第２のメッセージと誤認するのを避けることができ、第２のメッセージの検知率の低下も防ぐことができる。
【発明の効果】
【００２２】
本発明の通信メッセージ識別装置および通信メッセージ識別方法によれば、不正なメッセージの検知率低下を防止すると共に、正規のメッセージを不正なメッセージと誤認する確率を低減することが可能である。
【００２３】
以上、本発明について簡潔に説明した。更に、以下に説明される発明を実施するための形態（以下、「実施形態」という。）を添付の図面を参照して通読することにより、本発明の詳細は更に明確化されるであろう。
【図面の簡単な説明】
【００２４】
【図１】図１は、通信メッセージ識別装置の構成例を示すブロック図である。
【図２】図２は、共通の通信バスに現れる複数のメッセージの例−１を示すタイムチャートである。
【図３】図３は、共通の通信バスに現れる複数のメッセージの例−２を示すタイムチャートである。
【図４】図４（ａ）および図４（ｂ）は、それぞれ対象メッセージおよび他メッセージと、送信時刻範囲との関係の例を示すタイムチャートである。
【図５】図５は、共通の通信バスに現れる複数のメッセージの例−３を示すタイムチャートである。
【図６】図６は、共通の通信バスに現れる複数のメッセージの例−４を示すタイムチャートである。
【図７】図７は、共通の通信バスに現れる複数のメッセージの例−５を示すタイムチャートである。
【図８】図８は、通信メッセージ識別装置の動作例を示すフローチャートである。
【図９】図９は、図８のステップＳ１７の詳細を示すフローチャートである。
【図１０】図１０は、図８のステップＳ１８の詳細を示すフローチャートである。
【発明を実施するための形態】
【００２５】
本発明に関する具体的な実施形態について、各図を参照しながら以下に説明する。
【００２６】
＜通信メッセージ識別装置の構成＞
図１は、通信メッセージ識別装置１０の構成例を示すブロック図である。
通信メッセージ識別装置１０は、ＣＡＮ規格のプロトコルを用いて通信を行う車載システムの一部分としての利用を想定した構成を有している。したがって、通信メッセージ識別装置１０は、ＣＡＮインタフェース（Ｉ／Ｆ）２２を介して車両上に搭載されるＣＡＮ規格の通信バス２１と接続されている。
【００２７】
通信メッセージ識別装置１０は、例えば１つの電子制御ユニット（ＥＣＵ）の一部分として構成され、通信バス２１から受信したメッセージを、正規のメッセージと、不正なメッセージとに振り分けるフィルタとして利用することができる。
【００２８】
通信バス２１は、同じ車両に搭載された様々な電子制御ユニットが共通の通信線として使用する。したがって、これらの電子制御ユニットは、通信バス２１を介して互いに情報を送受信することができる。但し、通信バス２１には、不正な電子制御ユニットが接続される可能性や、無線通信機能を持つＥＣＵを介して車両外部から不正なメッセージが送り込まれる可能性がある。
【００２９】
また、ＣＡＮプロトコルを利用する場合には、受信した各メッセージの送信元を検証することができない。したがって、正規の送信元と同じ識別子を用いて、正規の送信元になりすました不正なメッセージが通信バス２１に送り込まれた場合に、受信側の各電子制御ユニットは正規のメッセージと、不正なメッセージとを区別することが困難である。
【００３０】
そこで、一定の周期で定期的に送信される周期性のメッセージについては、この周期性を利用して、受信タイミングの違いにより受信側で正規のメッセージと、不正なメッセージとを区別する。但し、複数の電子制御ユニットが同じ通信バス２１を共有しているので、送信した複数のメッセージが通信バス２１上で衝突するのを避ける必要があり、ＣＳＭＡ／ＣＡプロトコルに従い状況に応じて送信タイミングを調整することになる。そのため、周期性のメッセージであっても、その送信タイミングに状況に応じたばらつきが発生する。このタイミングのばらつきの影響により、正規のメッセージと、不正なメッセージとの判別が困難になる。
【００３１】
図１に示した通信メッセージ識別装置１０は、正規のメッセージと、不正なメッセージとの判別性能を改善するための機能を有している。
図１に示したように、通信メッセージ識別装置１０は、メッセージ受信部１１、影響メッセージ抽出部１２、送信時刻計算部１３、攻撃判定部１４、周期メッセージ情報保持部１５、履歴情報保持部１６、および周期情報保持部１７を備えている。
【００３２】
メッセージ受信部１１、影響メッセージ抽出部１２、送信時刻計算部１３、および攻撃判定部１４の各機能は、この電子制御ユニット内のコンピュータが実行可能なソフトウェア、又は専用のハードウェアにより構成される。また、周期メッセージ情報保持部１５、履歴情報保持部１６、および周期情報保持部１７は所定の記憶装置上に配置される。
【００３３】
メッセージ受信部１１は、通信バス２１に現れたメッセージをＣＡＮインタフェース２２を介して受信する機能を持つ。なお、メッセージ受信部１１が独立した複数の通信バス２１とそれぞれ接続されている場合には、それぞれのメッセージを受信したバスの情報も把握する。
【００３４】
履歴情報保持部１６は、メッセージ受信部１１がそれまでに受信した各メッセージの履歴情報として、識別子情報１６ａ、優先度情報１６ｂ、受信時刻情報１６ｃ、および伝送遅延時間の情報１６ｄをそれぞれ保持する。
【００３５】
識別子情報１６ａは、メッセージの種別を特定するための情報、すなわち該当するメッセージのＩＤである。優先度情報１６ｂは、該当するメッセージの通信バス２１における送信優先度を表す。受信時刻情報１６ｃは、該当するメッセージの受信が完了した時刻を表す。伝送遅延時間の情報１６ｄは、該当するメッセージの転送に要する時間を表す。
【００３６】
なお、各メッセージのバスにおける送信優先度の情報は、各メッセージの中に含めて送信してもよいし、事前に定めた優先度と識別子との関係に基づいて識別子から特定してもよい。
【００３７】
周期メッセージ情報保持部１５は、通信バス２１に接続された送信側の装置により周期的に送信されることが事前に決められている各メッセージ、すなわち周期メッセージの識別子の一覧を予め保持している。
【００３８】
影響メッセージ抽出部１２は、メッセージ受信部１１が受信した特定の周期メッセージの送信時刻に影響を及ぼした可能性のある各メッセージ、すなわち影響メッセージ（数は任意）を履歴情報保持部１６が保持している情報の中から抽出する。
【００３９】
送信時刻計算部１３は、特定の周期メッセージが影響メッセージの影響を受けなかった場合の本来の送信時刻、またはその時刻を含む時刻範囲を、履歴情報保持部１６が保持している情報と、抽出された影響メッセージ（数は任意）とに基づいて算出する機能を有する。
【００４０】
周期情報保持部１７は、周期メッセージ毎に、それを表す識別子情報１７ａ、直前送信時刻情報１７ｂ、及び周期情報１７ｃを保持する。
周期情報１７ｃは、受信される各周期メッセージの周期時間の長さを表す。例えば、図１に示した周期情報保持部１７の例では、「識別子Ａ」の周期メッセージは、１２秒の一定の周期で繰り返し送信される予定であることを表している。また、直前送信時刻情報１７ｂは、直前に受信した同一識別子を持つメッセージの計算上の送信開始時刻を表している。
【００４１】
攻撃判定部１４は、本来の送信時刻または送信時刻範囲と、直前送信時刻情報１７ｂとを利用して、受信メッセージの周期性の有無について判定する機能を持つ。
＜メッセージおよびタイミングの具体例＞
−＜具体例−１＞
図２は、共通の通信バス２１に現れる複数のメッセージの例−１を示すタイムチャートである。
図２に示した例では、対象メッセージ（ｍｓｇ）Ｍｘ０、他メッセージＭｙ１、Ｍｙ２、Ｍｙ３、および対象メッセージＭｘ１が順次に通信バス２１上に現れる場合を想定している。ここで、対象メッセージＭｘ０、およびＭｘ１は、同じ送信元から送出される同じ種類のメッセージを表し、一定の送信周期Ｔ０で周期的に繰り返し送信される周期メッセージである。また、これらの対象メッセージＭｘ０、Ｍｘ１は同一の識別子を有している。
【００４２】
一方、他メッセージＭｙ１〜Ｍｙ３の各々は周期メッセージではないので、任意の時刻にそれぞれ個別に送信される。
また、本来であれば、対象メッセージＭｘ０が送信基準時刻ｔｓｒ０のタイミングで送信側から送信され、次の対象メッセージＭｘ１は送信基準時刻ｔｓｒ０から送信周期Ｔ０を経過した後の送信基準時刻ｔｓｒ１のタイミングで送信される。しかし、実際の対象メッセージＭｘ１の送信タイミングは、図２中に破線で示したタイミングから遅延し、実線で示したタイミングで現れる。
【００４３】
したがって、受信側の通信メッセージ識別装置１０は、対象メッセージＭｘ０を受信時刻ｔｒ０で受信し、対象メッセージＭｘ１を受信時刻ｔｒ１で受信する。ここで、これらの受信時刻ｔｒ０、ｔｒ１の時間間隔は、破線で示した対象メッセージＭｘ１の送信遅延の影響を受け、送信周期Ｔ０に対して大きくずれることになる。このような時刻のばらつきの影響により、受信側で対象メッセージＭｘ０、Ｍｘ１の時間間隔（ｔｒ０−ｔｒ１）と送信周期Ｔ０とを単純に比較すると誤判定が生じる。つまり、実線で示した対象メッセージＭｘ１の受信時刻ｔｒ１が遅延したことにより、対象メッセージＭｘ１が外部からの攻撃などの不正なメッセージと誤認され、破棄される可能性がある。
【００４４】
図２に示した対象メッセージＭｘ１の送信遅延は、複数のメッセージの衝突を防止するＣＳＭＡ／ＣＡ制御によるものである。すなわち、対象メッセージＭｘ１の送信基準時刻ｔｓｒ１より前のタイミングで他メッセージＭｙ１、Ｍｙ２が現れ、更にその後に優先順位が高い他メッセージＭｙ３が現れたため、対象メッセージＭｘ１の送信は、他メッセージＭｙ３の送信が終了するまで待機されていた。
【００４５】
−＜具体例−２＞
図３は、共通の通信バス２１に現れる複数のメッセージの例−２を示すタイムチャートである。
図３に示した例では、図２の場合と同様に、対象メッセージＭｘ０、他メッセージＭｙ１、Ｍｙ２、Ｍｙ３、および対象メッセージＭｘ１が順番に現れる場合を想定している。また、各メッセージの送信優先度が以下のようになっている場合を想定している。
「Ｍｙ２の優先度」＞「Ｍｙ３の優先度」＞「Ｍｘ１の優先度」＞「Ｍｙ１の優先度」
【００４６】
通信メッセージ識別装置１０は、受信した対象メッセージＭｘ１がＭｘ０と同じ周期メッセージであるか否かを識別する際に、影響メッセージとして、他メッセージＭｙ１、Ｍｙ２、およびＭｙ３の影響を考慮することができる。
【００４７】
すなわち、対象メッセージＭｘ１を受信した受信時刻ｔｒ１の直前で現れた他メッセージＭｙ３は対象メッセージＭｘ１よりも優先度が高いので、対象メッセージＭｘ１の実際の送信時刻に影響したと考えられる。また、他メッセージＭｙ３の直前で現れた他メッセージＭｙ２の優先度がＭｙ３より高いので、他メッセージＭｙ２も対象メッセージＭｘ１の実際の送信時刻に影響したと考えられる。更に、他メッセージＭｙ２の直前で現れた他メッセージＭｙ１の優先度はＭｙ２、Ｍｘ１よりも低いが、他メッセージＭｙ１が時間的に早く現れた場合を想定すれば他メッセージＭｙ１も対象メッセージＭｘ１の実際の送信時刻に影響を与えた可能性がある。
【００４８】
したがって、図３の例では、通信メッセージ識別装置１０は、対象メッセージＭｘ１の送信基準時刻ｔｓｒ１が、先端時刻ｔｓ１と後端時刻ｔｓ２との間の時刻範囲内にあった可能性があると推定する。つまり、通信メッセージ識別装置１０は、送信基準時刻ｔｓｒ０、Ｔｓｒ１の送信周期Ｔ０と、受信時刻ｔｒ０、Ｔｒ１の時間間隔とを比較する際に、推定した時刻範囲（ｔｓ１−ｔｓ２）内の送信時刻の変動の可能性を考慮して、対象メッセージＭｘ１の周期性を判定する。
【００４９】
−＜送信時刻範囲の導出例＞
図４（ａ）および図４（ｂ）は、それぞれ対象メッセージおよび他メッセージと、送信時刻範囲との関係の例を示すタイムチャートである。
【００５０】
図４（ａ）に示した例では、対象メッセージＭｘ１の直前に他メッセージＭｙ２が現れ、他メッセージＭｙ２の直前に他メッセージＭｙ１が現れた場合を想定している。また、他メッセージＭｙ１の優先度が「低」、他メッセージＭｙ２の優先度が「高」、対象メッセージＭｘ１の優先度が「普通」である。
【００５１】
図４（ａ）において、他メッセージＭｙ２が現れている時間帯では、対象メッセージＭｘ１の優先度が他メッセージＭｙ２の優先度より低いため、対象メッセージＭｘ１の送信が待機されていた可能性がある。
【００５２】
また、他メッセージＭｙ１が現れている時間帯では、他メッセージＭｙ１の送信開始直後から対象メッセージＭｘ１の送信が待機されていた可能性がある。更に、他メッセージＭｙ１よりも対象メッセージＭｘ１の優先度が優っているので、他メッセージＭｙ１の送信開始時には、対象メッセージＭｘ１が送信待機状態でなかったことが分かる。
【００５３】
したがって、図４（ａ）の例では、他メッセージＭｙ１の送信開始直後を時刻範囲の先端時刻ｔｓ１に定め、他メッセージＭｙ２の送信完了時を時刻範囲の後端時刻ｔｓ２に定める。つまり、対象メッセージＭｘ１の送信基準時刻ｔｓｒ１が、先端時刻ｔｓ１と後端時刻ｔｓ２の間の時刻範囲内にあったものと推定する。
【００５４】
図４（ｂ）に示した例では、対象メッセージＭｘ１の直前に他メッセージＭｙ１が現れ、他メッセージＭｙ１の直前に他メッセージＭｙ２が現れた場合を想定している。また、他メッセージＭｙ１の優先度が「低」、他メッセージＭｙ２の優先度が「高」、対象メッセージＭｘ１の優先度が「普通」である。
【００５５】
図４（ｂ）において、他メッセージＭｙ１が現れている時間帯では、他メッセージＭｙ１の送信開始直後から対象メッセージＭｘ１の送信が待機されていた可能性がある。更に、他メッセージＭｙ１よりも対象メッセージＭｘ１の優先度が優っているので、他メッセージＭｙ１の送信開始時には、対象メッセージＭｘ１が送信待機状態でなかったことが分かる。
【００５６】
したがって、図４（ｂ）の例では、他メッセージＭｙ１の送信開始直後を時刻範囲の先端時刻ｔｓ１に定め、他メッセージＭｙ１の送信完了時を時刻範囲の後端時刻ｔｓ２に定める。つまり、対象メッセージＭｘ１の送信基準時刻ｔｓｒ１が、先端時刻ｔｓ１と後端時刻ｔｓ２の間の時刻範囲内にあったものと推定する。
【００５７】
−＜送信周期のジッタや偏差の考慮＞
図５〜図７は、それぞれ共通の通信バスに現れる複数のメッセージの例−３〜例−５を示すタイムチャートである。
【００５８】
送信側の電子制御ユニット等が周期的に送信するメッセージの送信周期には、ジッタや偏差が含まれる場合がある。このような送信時刻のずれは累積されるので、長時間が経過すると、本来の周期から大きくずれたタイミングでメッセージを送信する可能性がある。そのため、受信側の通信メッセージ識別装置１０が周期メッセージの周期性を識別する際に、送信側における送信周期のジッタや偏差の影響が現れる。
【００５９】
そこで、図１に示した通信メッセージ識別装置１０は送信側における送信周期のジッタや偏差の影響を考慮して、対象メッセージＭｘ１の本来の送信時刻を推定する。
例えば、図５、図６、図７にそれぞれ示した例のように、対象メッセージＭｘ１に対する送信側の実際の送信基準時刻は、ジッタや偏差の影響で送信基準時刻ｔｓｒ１からずれて、時刻ｔｓ０１〜ｔｓ０２の範囲になる可能性がある。
【００６０】
図５に示した例では、対象メッセージＭｘ１を送信した可能性のある時刻範囲（ｔｓ１−ｔｓ２）の中に、時刻ｔｓ０１〜ｔｓ０２の範囲の全体が含まれている。したがって、時刻範囲（ｔｓ１−ｔｓ２）内の送信時刻を考慮して対象メッセージＭｘ１の周期性を判定すれば、送信側における送信周期のジッタや偏差の影響を受けることはない。
【００６１】
一方、図６に示した例では、送信基準時刻ｔｓｒ１が、時刻範囲（ｔｓ１−ｔｓ２）の範囲外にある。しかし、送信周期のジッタや偏差の影響により、送信基準時刻ｔｓｒ１が時刻ｔｓ０１〜ｔｓ０２の範囲内でずれている可能性がある。そして、図６における時刻ｔｓ０２は、時刻範囲（ｔｓ１−ｔｓ２）の範囲内にある。つまり、送信周期のジッタや偏差の影響分を補正できれば、推定した時刻範囲（ｔｓ１−ｔｓ２）に基づいて、対象メッセージＭｘ１の周期性を正しく判定することが可能になる。
【００６２】
また、図７に示した例では、送信基準時刻ｔｓｒ１が、時刻範囲（ｔｓ１−ｔｓ２）の範囲外にある。しかし、送信周期のジッタや偏差の影響により、送信基準時刻ｔｓｒ１が時刻ｔｓ０１〜ｔｓ０２の範囲内でずれている可能性がある。そして、図７における時刻ｔｓ０１は、時刻範囲（ｔｓ１−ｔｓ２）の範囲内にある。つまり、送信周期のジッタや偏差の影響分を補正できれば、推定した時刻範囲（ｔｓ１−ｔｓ２）に基づいて、対象メッセージＭｘ１の周期性を正しく判定することが可能になる。
【００６３】
＜通信メッセージ識別装置の具体的な動作＞
図８は、通信メッセージ識別装置１０の動作例を示すフローチャートである。また、図９および図１０は、図８の各ステップＳ１７およびＳ１８の詳細を示すフローチャートである。
【００６４】
まず、図８に示した動作について説明する。
メッセージ受信部１１は、通信バス２１で流通しているメッセージをＳ１１で受信すると、このメッセージを受信したバスを特定する情報と、受信時刻の情報を履歴情報保持部１６に記録する（Ｓ１２）。
【００６５】
また、メッセージ受信部１１は受信したメッセージの識別子、および送信優先度の情報を取得すると共に、このメッセージの伝送遅延時間を算出する（Ｓ１３）。そして、これらの情報を受信時刻と関連付けて履歴情報保持部１６に記録する（Ｓ１４）。
【００６６】
また、メッセージ受信部１１は、周期メッセージ情報保持部１５が予め保持している周期メッセージの識別子の情報をＳ１５で取得する。また、メッセージ受信部１１は、Ｓ１１で受信した受信メッセージの識別子と、Ｓ１５で取得した周期メッセージの識別子とをＳ１６で比較する。つまり、識別子の比較により、最新の受信メッセージが周期メッセージか否かを識別する。受信メッセージが周期メッセージの場合はＳ１７に進み、周期メッセージでない場合はこの処理を終了する。
【００６７】
影響メッセージ抽出部１２は、メッセージ受信部１１が受信した受信メッセージのうち、識別子により周期メッセージであることを確認したものについて、この受信メッセージの送信時に影響を受けた可能性がある他の受信メッセージを「影響メッセージ」として抽出する（Ｓ１７）。ここで、「他の受信メッセージ」とは、該当する周期メッセージより前に受信した受信メッセージであり、履歴情報保持部１６がそのとき保持している情報の中に含まれている可能性がある。詳細については後述するが、受信時刻および優先度に基づいて、「他の受信メッセージ」が「影響メッセージ」か否かを識別できる。
【００６８】
送信時刻計算部１３は、影響メッセージ抽出部１２が抽出した「影響メッセージ」の情報に基づき、受信した周期メッセージの本来の送信時刻が含まれる可能性がある送信時刻範囲を算出する（Ｓ１８）。詳細については後述するが、例えば図３〜図７中に示した各送信時刻範囲（ｔｓ１〜ｔｓ２の幅および時刻）を特定する。また、この送信時刻範囲を計算する際に、ＣＳＭＡ／ＣＡを用いた調停（アービトレーション）やエラーなど通信バス２１の仕様による影響を加えることで更に計算精度が向上する。
【００６９】
攻撃判定部１４は、Ｓ１８で算出した送信時刻範囲と、Ｓ１１で受信した今回の周期メッセージの受信時刻情報１６ｃと、直前送信時刻情報１７ｂと、周期情報１７ｃと、伝送遅延時間の情報１６ｄと、を利用して、今回受信した周期メッセージが攻撃メッセージであるか否かを判定する（Ｓ１９〜Ｓ２３）。
【００７０】
すなわち、攻撃判定部１４はＳ１９で周期情報保持部１７から周期情報１７ｃおよび直前送信時刻情報１７ｂを取得し、Ｓ２０で直前送信時刻情報１７ｂを判定する。
そして、周期情報保持部１７で該当する直前送信時刻情報１７ｂを保有していないとき、及び送信時刻範囲の幅と、周期情報保持部１７で保有している当該受信メッセージの直前送信時刻情報１７ｂとの差が極端に大きいときにはＳ２０からＳ２４に進み、初めての受信として攻撃判定部１４による判定の対象外とする。
【００７１】
また、周期情報保持部１７が該当する直前送信時刻情報１７ｂを保有し、且つ直前送信時刻情報１７ｂが現実的な直近の時刻である場合には、Ｓ２０からＳ２１に進む。そして、攻撃判定部１４は送信時刻範囲の幅と、直前送信時刻情報１７ｂとの差と、周期情報１７ｃとを比較する。
【００７２】
送信時刻範囲の幅と、直前送信時刻情報１７ｂとの差と、周期情報１７ｃとが妥当な範囲で一致する場合は、Ｓ２１からＳ２３に進み、今回受信した周期メッセージが「攻撃ではない可能性が高い」と攻撃判定部１４が判定する。
【００７３】
また、送信時刻範囲の幅と、直前送信時刻情報１７ｂとの差と、周期情報１７ｃとが妥当な範囲で一致しない場合は、Ｓ２１からＳ２２に進み、今回受信した周期メッセージが「攻撃である可能性が高い」と攻撃判定部１４が判定する。
【００７４】
また、攻撃判定部１４による処理が終了した後、送信時刻範囲の幅のうちで、もっとも送信した可能性が高いと思われる時刻を送信時刻計算部１３が計算し（Ｓ２４）、この時刻を周期情報保持部１７の直前送信時刻情報１７ｂとして、それまで保存されていた情報を上書きし保持する（Ｓ２５）。これにより、メッセージの送信側における送信周期のジッタや偏差の累積（図５〜図７中のｔｓ０１〜ｔｓ０２）を補正し、この影響を避けることが可能になる。
【００７５】
次に図９に示した動作、すなわち影響メッセージを抽出するための処理の詳細について説明する。
影響メッセージ抽出部１２は、履歴情報保持部１６に保持されている各受信メッセージの情報を参照し、各メッセージを受信したバスを特定する情報（図示せず）をＳ３１で取得する。そして、図８中のＳ１１で受信した今回の受信メッセージ（対象メッセージＭｘ）と同じバスから受信した他の受信メッセージの情報が履歴情報保持部１６に存在するか否かをＳ３２で識別する。この条件に該当する受信メッセージが存在する場合はＳ３３に進み、存在しない場合はこの処理を終了する。また、Ｓ３３以降の処理においては、Ｓ３２の条件に該当する受信メッセージのみを処理対象とする。
【００７６】
影響メッセージ抽出部１２は、各受信メッセージの受信時刻情報１６ｃを履歴情報保持部１６から取得し、今回の受信メッセージ（対象メッセージＭｘ）の直前に受信した他のメッセージＭｙの情報が履歴情報保持部１６に存在するか否かをＳ３４で識別する。この条件を満たす場合はＳ３５に進み、条件を満たさない場合はこの処理を終了する。
【００７７】
影響メッセージ抽出部１２は、Ｓ３４で検出した１つの他メッセージＭｙを、Ｓ３５で影響メッセージリスト２５に追加する。
また、影響メッセージ抽出部１２は他メッセージＭｙの優先度情報１６ｂを履歴情報保持部１６から取得し（Ｓ３６）する。
【００７８】
影響メッセージ抽出部１２は、現在処理中の他メッセージＭｙと、これの直前に受信した更に前の受信メッセージである他メッセージＭｙ２とをＳ３７で比較する。そして、他メッセージＭｙの送信優先度よりも前の他メッセージＭｙ２の送信優先度が高い場合はＳ３８に進み、高くない場合はＳ４０に進む。
【００７９】
影響メッセージ抽出部１２は、Ｓ３７で検出した他メッセージＭｙ２の情報を影響メッセージリスト２５に追加し（Ｓ３８）、この「他メッセージＭｙ２」を「他メッセージＭｙ」に置き換え（Ｓ３９）、その後Ｓ３６に戻って上記と同様の処理を繰り返す。
【００８０】
影響メッセージ抽出部１２は、Ｓ３７で検出した他メッセージＭｙ２の情報を影響メッセージリスト２５に追加して（Ｓ４０）、この処理を終了する。
したがって、図９に示した処理を影響メッセージ抽出部１２が実行することにより、例えば図３に示した状況では、通信メッセージ識別装置１０が最後に受信した対象メッセージＭｘ１に対して、他メッセージＭｙ３、Ｍｙ２、およびＭｙ１を順番に影響メッセージリスト２５に追加することができる。
【００８１】
次に図１０に示した動作、すなわち送信時刻範囲の幅や時刻を算出するための処理の詳細について説明する。
送信時刻計算部１３は、図８のＳ１１で今回受信した受信メッセージ（周期メッセージ）の受信時刻ｔｒ１から、それ自身の転送の際に生じる伝送遅延時間（１６ｄ）だけ遡った送信推定時刻を、送信時刻範囲の後端時刻ｔｓ２として算出する（Ｓ５１）。
【００８２】
送信時刻計算部１３は、影響メッセージ抽出部１２が記録した影響メッセージリスト２５に保持されている各々の影響メッセージについて、その伝送遅延時間の情報を履歴情報保持部１６から取得する（Ｓ５２）。
【００８３】
送信時刻計算部１３は、Ｓ５２で取得した各影響メッセージの伝送遅延時間を互いに加算してその総和を影響伝送遅延時間Ｔｉとして算出する（Ｓ５３）。
送信時刻計算部１３は、Ｓ５１で推定した「送信時刻範囲の後端時刻ｔｓ２」からＳ５３で算出した影響伝送遅延時間Ｔｉだけ遡った時刻を、送信時刻範囲の先端時刻ｔｓ１として算出する（Ｓ５４）。
【００８４】
したがって、図１０に示した処理を送信時刻計算部１３が実行することにより、例えば図３〜図７に示した各送信時刻範囲（ｔｓ１〜ｔｓ２）の時刻および幅（Ｔｉ）を特定できる。
【００８５】
図１０の処理により特定される送信時刻範囲の先端時刻ｔｓ１は、例えば図３に示した対象メッセージＭｘ１に対する影響メッセージ群（Ｍｙ１〜Ｍｙ３）の中で最初に受信したメッセージ（Ｍｙ１）の受信時刻から、最初のメッセージ（Ｍｙ１）の伝送遅延時間を引いた時刻となる。
【００８６】
また、図１０の処理により特定される送信時刻範囲の後端時刻ｔｓ２は、例えば図３に示した対象メッセージＭｘ１の受信時刻ｔｒ１から、対象メッセージＭｘ１の伝送遅延時間を引いた時刻となる。
【００８７】
＜攻撃判定の具体例＞
攻撃判定部１４は、例えば図３に示した対象メッセージＭｘ１を図８のＳ２１で判定する際には、この対象メッセージＭｘ１の直前送信時刻情報１７ｂの時刻に、周期情報１７ｃが示す時刻を足した送信予定時刻ｔｓｘと、送信時刻計算部１３が算出した送信時刻範囲（ｔｓ１〜ｔｓ２）とを比較する。そして、送信予定時刻ｔｓｘが送信時刻範囲（ｔｓ１〜ｔｓ２）に含まれる場合は対象メッセージＭｘ１が正規の周期メッセージであるとみなす（Ｓ２３）。また、送信予定時刻ｔｓｘが送信時刻範囲（ｔｓ１〜ｔｓ２）に含まれない場合は、対象メッセージＭｘ１が攻撃メッセージであると判定する（Ｓ２２）。
【００８８】
また、もしも影響メッセージが存在しない場合には、対象メッセージＭｘ１の直前送信時刻情報１７ｂの時刻に、周期情報１７ｃが示す時刻を足した送信予定時刻ｔｓｘと、受信時刻ｔｒ１から伝送遅延時間を引いた時刻（ｔｓ２）とをＳ２１で比較する。そして、これらの時刻がほぼ一致する場合は対象メッセージＭｘ１を正規の周期メッセージとみなし（Ｓ２３）、異なる場合は攻撃メッセージであると判定する（Ｓ２２）。
また、対象メッセージＭｘ１に対応する直前送信時刻情報１７ｂが存在しない場合には、その周期性を判定できないため攻撃判定不可とする（Ｓ２０）。
【００８９】
＜通信メッセージ識別装置１０の利点＞
図１に示した通信メッセージ識別装置１０においては、周期性判定の対象となる対象メッセージＭｘ１の送信時刻に影響を及ぼした可能性のある影響メッセージを影響メッセージ抽出部１２が抽出する。また、この影響メッセージに基づいて対象メッセージＭｘ１の送信時刻範囲（ｔｓ１〜ｔｓ２）を送信時刻計算部１３が推定する。したがって、攻撃判定部１４が送信時刻範囲（ｔｓ１〜ｔｓ２）を考慮して対象メッセージＭｘ１の周期性を判定することにより、通信バス２１の状況に応じて変動する対象メッセージＭｘ１の送信時刻のばらつきにより誤判定が生じる確率を減らすことができる。すなわち、対象メッセージＭｘ１が正規の周期メッセージである場合に、これを攻撃メッセージであると誤認するのを防止することができる。また、周期性を比較する際に、閾値等に必要以上の余裕分を持たせる必要がないので、対象メッセージＭｘ１が攻撃メッセージである場合に、この攻撃の検出率が低下するのを避けることが可能になる。
【００９０】
特に、影響メッセージ抽出部１２が履歴情報保持部１６に記録した各受信メッセージの送信優先度を考慮して影響メッセージを特定するので、対象メッセージＭｘ１が本来送信されるべき送信基準時刻ｔｓｒ１が含まれる送信時刻範囲（ｔｓ１〜ｔｓ２）を正確に推定することが可能になる。
【００９１】
また、送信時刻計算部１３が尤もらしい送信時刻を検出した時に、周期情報保持部１７の直前送信時刻情報１７ｂの内容を更新する（Ｓ２４、Ｓ２５）ので、送信側の装置が周期メッセージを送信する際に発生する周期のジッタや偏差の影響が累積して誤判定の要因になるのを避けることができる。
【００９２】
なお、本発明の通信メッセージ識別装置１０を実際の車載システム等に組み込む場合には、上記以外の公知技術を組み合わせ、攻撃の不正な受信メッセージに対する検出性能を更に高めることが想定される。なお、上述の実施形態では本発明を車載システムに適用する場合を想定しているが、これ以外の用途であっても、同じように受信メッセージの送信元の検証ができない状況であれば、正規の周期メッセージと攻撃メッセージとを区別するためのフィルタとして本発明を利用する価値がある。
【００９３】
ここで、上述した本発明の実施形態に係る通信メッセージ識別装置および通信メッセージ識別方法の特徴をそれぞれ以下［１］〜［５］に簡潔に纏めて列記する。
［１］  複数の送信元が共通の通信バス（２１）にそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージ（対象メッセージＭｘ１）と、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別する通信メッセージ識別装置（１０）であって、
前記第１のメッセージの前に受信した他のメッセージ（他メッセージＭｙ１〜Ｍｙ３）の中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージ（例えば図３中の他メッセージＭｙ１〜Ｍｙ３）を検出する影響メッセージ検出部（影響メッセージ抽出部１２）と、
前記メッセージの受信時刻（ｔｒ１）と、前記影響メッセージ検出部が検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲（ｔｓ１〜ｔｓ２）を推定する送信時刻推定部（送信時刻計算部１３）と、
前記第１のメッセージの基準周期（送信周期Ｔ０、周期情報１７ｃ）と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する攻撃検知部（攻撃判定部１４）と、
を備えたことを特徴とする通信メッセージ識別装置。
【００９４】
［２］  前記送信時刻推定部は、受信した複数のメッセージの相互の優先度（優先度情報１６ｂ）の違いを加味して、前記第１のメッセージの送信時刻範囲を推定する（図１０参照）、
上記［１］に記載の通信メッセージ識別装置。
【００９５】
［３］  前記第１のメッセージの識別子を保持する識別子情報保持部（周期メッセージ情報保持部１５）と、
受信した前記メッセージの履歴情報を識別子毎に保持する履歴情報保持部（１６）と、
受信した前記メッセージの周期情報を識別子毎に保持する周期情報保持部（１７）と、
を更に備えた、上記［１］または［２］に記載の通信メッセージ識別装置。
【００９６】
［４］  前記第１のメッセージの受信を検知した場合に、前記送信時刻推定部が推定した前記送信時刻範囲に基づいて、前記周期情報保持部が保持する送信時刻情報を更新する周期情報更新部（Ｓ２４、Ｓ２５）、
を更に備えた、上記［３］に記載の通信メッセージ識別装置。
【００９７】
［５］  複数の送信元が共通の通信バスにそれぞれ送出したメッセージを前記通信バス上で監視し、周期性を有する第１のメッセージと、前記第１のメッセージに対する攻撃に区分される第２のメッセージとを識別するための通信メッセージ識別方法であって、
前記第１のメッセージの前に受信した他のメッセージの中で、前記第１のメッセージの送信時刻に影響を及ぼす影響メッセージを検出し（Ｓ１７）、
前記メッセージの受信時刻と、検出した前記影響メッセージの影響を加味して、前記第１のメッセージの送信時刻範囲を推定し（Ｓ１８）、
前記第１のメッセージの基準周期と、前記送信時刻範囲とに基づいて前記第２のメッセージを検知する（Ｓ２１）、
ことを特徴とする通信メッセージ識別方法。
【符号の説明】
【００９８】
１０  通信メッセージ識別装置
１１  メッセージ受信部
１２  影響メッセージ抽出部
１３  送信時刻計算部
１４  攻撃判定部
１５  周期メッセージ情報保持部
１６  履歴情報保持部
１７  周期情報保持部
２１  通信バス
２２  ＣＡＮインタフェース
２５  影響メッセージリスト
Ｍｘ０，Ｍｘ１  対象メッセージ
Ｍｙ１，Ｍｙ２，Ｍｙ３  他メッセージ
Ｔ０  送信周期
ｔｒ０，ｔｒ１  受信時刻
ｔｓｒ０，ｔｓｒ１  送信基準時刻
ｔｓ１  時刻範囲の先端時刻
ｔｓ２  時刻範囲の後端時刻
【図１】
2019205089.tif 000003
【図２】
2019205089.tif 000004
【図３】
2019205089.tif 000005
【図４】
2019205089.tif 000006
【図５】
2019205089.tif 000007
【図６】
2019205089.tif 000008
【図７】
2019205089.tif 000009
【図８】
2019205089.tif 000010
【図９】
2019205089.tif 000011
【図１０】
2019205089.tif 000012