(57)【要約】【課題】車両に搭載される、正当な送信元から送信されていないメッセージの判定能力を向上したネットワークシステムを提供する。【解決手段】ネットワークシステムは、車両に搭載され、メッセージおよびメッセージの送信時刻を含む送信履歴を送信する送信ＥＣＵと、メッセージおよび送信履歴を受信する受信ＥＣＵとを備える。受信ＥＣＵは、受信したメッセージの受信時刻と、受信した送信履歴に含まれる送信時刻とに基づいて、受信したメッセージが送信ＥＣＵから送信されたメッセージであるか否かを判定する。【選択図】図１
2020088798.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載されるネットワークシステムであって、
メッセージおよび前記メッセージの送信時刻を含む送信履歴を送信する送信ＥＣＵと、
メッセージおよび前記送信履歴を受信する受信ＥＣＵとを備え、
前記受信ＥＣＵは、受信したメッセージの受信時刻と、受信した前記送信履歴に含まれる送信時刻とに基づいて、受信した前記メッセージが前記送信ＥＣＵから送信されたメッセージであるか否かを判定する、ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両等に搭載されるネットワークシステムに関する。
【背景技術】
【０００２】
車両には、複数のバスを含むネットワークシステムが搭載されている。各バスにはそれぞれ１つ以上のＥＣＵ（Electronic Control Unit）と呼ばれる車載機器が接続されている。各ＥＣＵは、互いにバスを介してメッセージを送受信したり、車両が備えるセンサから情報を取得したりして、センサや車両が備えるアクチュエータの制御を行って、車両の各機能を分担して実行する。
【０００３】
このようなネットワークシステムへの不正な侵入によって、バスに不正なメッセージが送出されると、不正なメッセージを受信したＥＣＵの動作に支障が生じるおそれがある。そのため、ＥＣＵがバスから受信するメッセージが不正なメッセージであるか否か判定して、不正なメッセージについては破棄する等の対応を行うことが望まれる。特許文献１は、ＣＡＮ（Controller Area Network）規格に準拠したネットワークシステムにおいて、受信側の装置が、バスから順次受信するフレームの受信間隔を測定し、測定値が規定範囲から外れた場合に、そのフレームを不正と判断することを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５６６４７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法では、所定の送信元から一定周期で送信されることが想定される一連のメッセージを判定対象とし、前回の受信からの経過時間が規定範囲から外れた時刻にメッセージを受信した場合に、そのメッセージを不正メッセージであると判定する。そのため、一定周期で送信されないイベント系メッセージと呼ばれる、単発的なメッセージについては判定することができない。また、一定周期で送信されるメッセージであっても、前回の受信からの経過時刻が規定範囲内である時刻にメッセージを受信した場合は、そのメッセージが所定の送信元以外から送信された不正なメッセージであっても、不正ではないと誤判定されてしまう。
【０００６】
本発明は、上記課題を鑑みてなされたものであり、車両に搭載される、所定の送信元から送信されていないメッセージの判定能力を向上したネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一局面は、車両に搭載されるネットワークシステムであって、メッセージおよびメッセージの送信時刻を含む送信履歴を送信する送信ＥＣＵと、メッセージおよび送信履歴を受信する受信ＥＣＵとを備え、受信ＥＣＵは、受信したメッセージの受信時刻と、受信した送信履歴に含まれる送信時刻とに基づいて、受信したメッセージが送信ＥＣＵから送信されたメッセージであるか否かを判定する、ネットワークシステムである。
【発明の効果】
【０００８】
以上のように、本発明によれば、車両に搭載される、正当な送信元から送信されていないメッセージの判定能力を向上したネットワークシステムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るネットワークシステムの構成図
【図２】本発明の一実施形態に係る処理を示すシーケンス図
【図３】本発明の一実施形態に係る送信履歴の例を示す図
【図４】本発明の一実施形態に係る受信履歴の例を示す図
【図５】本発明の一実施形態に係る受信履歴と送信履歴との比較の例を示す図
【図６】本発明の一実施形態に係る処理を示すシーケンス図
【図７】本発明の一実施形態に係る送信履歴の例を示す図
【図８】本発明の一実施形態に係る受信履歴の例を示す図
【図９】本発明の一実施形態に係る受信履歴と送信履歴との比較の例を示す図
【発明を実施するための形態】
【００１０】
本発明に係るネットワークシステムにおいては、メッセージを送信する送信ＥＣＵが、メッセージの送信履歴も送信する。メッセージを受信する受信ＥＣＵは、送信履歴も受信し、自装置が生成する受信履歴と受信した送信履歴とに基づいて、メッセージが送信ＥＣＵから送信された正当なメッセージか、それ以外の不正なメッセージであるかを判定する。
【００１１】
（実施形態）
以下、本発明の一実施形態について、図面を参照しながら詳細に説明する。
【００１２】
＜構成＞
図１に、本実施形態に係るネットワークシステム１の構成の一部を示す。ネットワークシステム１は、一例として車両に搭載される、ＣＡＮ（Controller Area Network）規格に準拠したネットワークシステムである。ネットワークシステム１は、複数のＥＣＵ（Electronic Control Unit）を備える。各ＥＣＵは、バスに接続されており、バスを介して互いにメッセージを送受信したり、車両が備えるセンサから情報を取得したりして、センサや車両が備えるアクチュエータの制御を行って、車両の各機能を分担して実行する。図１には、ネットワークシステム１の一部として、バス３０と、バス３０に接続された送信ＥＣＵ１０および受信ＥＣＵ２０を示す。
【００１３】
送信ＥＣＵ１０は、第１制御部１１、第１記憶部１２、リアルタイムクロックである第１クロック１３を含む。第１制御部１１はメッセージを生成して、バス３０に送出する。第１制御部１１は、メッセージを送出した時、第１クロック１３を参照することで送信時刻を取得し、送信時刻を含むメッセージの送信履歴を生成して第１記憶部１２に記憶させる。
【００１４】
受信ＥＣＵ２０は、第２制御部２１、第２記憶部２２、リアルタイムクロックである第２クロック２３を含む。第２制御部２１は、バス３０からメッセージを受信する。第２制御部２１は、メッセージを受信した時、第２クロック２３を参照することで受信時刻を取得し、受信時刻を含む受信履歴を生成して第２記憶部２２に記憶させる。
【００１５】
また、送信ＥＣＵ１０の第１制御部１１は、第１記憶部１２から送信履歴を取得して、受信ＥＣＵ２０あてに送信する。送信経路はバス３０でもよいし、ネットワークシステム１が備える他のバスでもよいし、送信ＥＣＵ１０と受信ＥＣＵ２０との間に個別に設けられた通信線であってもよい。また、送信タイミングは、メッセージの送信から所定期間以内に、そのメッセージの送信時刻を含む送信履歴を送信できればよく、定期的に送信してもよいし、不定期的に送信してもよい。
【００１６】
受信ＥＣＵ２０の第２制御部２１は、メッセージをバス３０から受信した後、上述の所定期間、送信履歴が送信されるのを待機する。所定期間内に送信ＥＣＵ１０から送信履歴を取得できなかった場合、第２制御部２１は、メッセージを不正なメッセージと判断する。所定期間内に送信ＥＣＵ１０から送信履歴を取得した場合、第２制御部２１は、送信履歴を第２記憶部２２に記憶させる。第２制御部２１は、第２記憶部２２から受信履歴および送信履歴を取得し、これらを比較する。受信したメッセージに対応する受信時刻に一致するとみなせる送信時刻が送信履歴にあれば、受信したメッセージが送信ＥＣＵ１０から送信された正当なメッセージであると判定し、なければ不正なメッセージであると判定する。第２制御部２１は、メッセージを正当と判断した場合、このメッセージに基づいて、正当なメッセージに対する処理として定められた正常系の処理を行う。また、メッセージを不正と判断した場合、このメッセージを処理対象とはせずに破棄したり、不正なメッセージに対する処理として定められた攻撃対応処理を行ったりする。なお、送信履歴を待機する所定期間は、受信ＥＣＵ２０の処理上許容できる期間以内で設定すればよい。
【００１７】
＜処理＞
以下に、受信ＥＣＵ２０が受信したメッセージを、正当なメッセージであると判定するシーケンスと、不正なメッセージであると判定するシーケンスとを説明する。図２に示すシーケンスは、受信ＥＣＵ２０が受信したメッセージを正当なメッセージと判定するシーケンスである。まずこのシーケンスを説明する。
【００１８】
（ステップＳ１０１）：送信ＥＣＵ１０の第１制御部１１は、メッセージを生成して、バス３０に送信する。メッセージは、一例としてＣＡＮ＿ＩＤと呼ばれる識別子を含むフレームであり、ＣＡＮ＿ＩＤが、フレームの送信元のＥＣＵを表したり、メッセージの種別を表したりすることができる。
【００１９】
（ステップＳ１０２）：受信ＥＣＵ２０の第２制御部２１は、例えばバス３０を流れるメッセージに含まれるＣＡＮ＿ＩＤを参照して、メッセージが、自装置が処理すべきメッセージであると判定すれば、そのメッセージを受信する。本ステップでは、第２制御部２１はステップＳ１０１で送信されたメッセージを受信する。
【００２０】
（ステップＳ１０３）：送信ＥＣＵ１０の第１制御部１１は、ステップＳ１０１でメッセージを送出した時、第１クロック１３を参照することで送信時刻を取得する。第１制御部１１は、取得した送信時刻に基づいて送信履歴を更新して第１記憶部１２に記憶させる。送信履歴は、例えば、ＣＡＮ＿ＩＤごとにまとめられた、過去所定回数のメッセージを送信した各時刻のリストである。送信履歴の例を図３に示す。
【００２１】
（ステップＳ１０４）：受信ＥＣＵ２０の第２制御部２１は、ステップＳ１０２でメッセージを受信した時、第２クロック２３を参照することで受信時刻を取得する。第２クロック２３と第１クロック１３とは、同期されており、それぞれの時刻は所定の精度で一致している。第２制御部２１は、取得した受信時刻に基づいて受信履歴を更新して第２記憶部２２に記憶させる。受信履歴は、例えば、ＣＡＮ＿ＩＤごとにまとめられた、過去所定回数のメッセージの内容であるデータと、メッセージを受信した各時刻との組み合わせのリストである。受信履歴の例を図４に示す。
【００２２】
（ステップＳ１０５）：送信ＥＣＵ１０の第１制御部１１は、ステップＳ１０３で更新した送信履歴を、第１記憶部１２から取得し、受信ＥＣＵ２０あてに送信する。送信履歴を含むフレームのＣＡＮ＿ＩＤは、ステップＳ１０１で送信したメッセージのフレームのＣＡＮ＿ＩＤと同一にする。このように、第１制御部１１は、送信履歴が、いずれのＣＡＮ＿ＩＤのメッセージの送信履歴を表すかを特定可能にして送信履歴を送信することが好ましい。送信履歴は、送信の際、暗号化してもよいし、暗号化せず平文のままでもよい。なお、送信履歴の送信経路は上述したように限定されない。また、送信履歴のＣＡＮ＿ＩＤは、いずれのメッセージの送信履歴であるか特定する情報をさらに含んでいれば、メッセージのＣＡＮ＿ＩＤと異なっていてもよい。
【００２３】
（ステップＳ１０６）：本シーケンスでは、ステップＳ１０２でメッセージを受信してから所定期間内に、受信ＥＣＵ２０の第２制御部２１は、ステップＳ１０５で送信された送信履歴を受信する。第２制御部２１は、受信した送信履歴を、第２記憶部２２に記憶させる。
【００２４】
（ステップＳ１０７）：受信ＥＣＵ２０の第２制御部２１は、第２記憶部２２から送信履歴および受信履歴を取得し、これらを比較する。すなわちステップＳ１０２で受信したメッセージについて、そのメッセージと同じＣＡＮ＿ＩＤのメッセージについて、受信履歴に含まれる受信時刻に一致する送信時刻が送信履歴に含まれるか否かを判定する。本シーケンスでは、ステップＳ１０２で受信したメッセージは、ステップＳ１０１で、送信ＥＣＵ１０から送信された正当なメッセージであるので、図５に示すように、受信履歴に含まれる受信時刻に一致する送信時刻が送信履歴に含まれる。これにより、第２制御部２１は、ステップＳ１０２で受信したメッセージを正当なメッセージと判断する。なお、送信履歴の時刻と受信履歴の時刻とが完全に一致しなくても、第１クロック１３、第２クロック２３の同期誤差やバス３０を介したメッセージの送受信の遅延程度のごく小さな時間差であれば、一致するものとみなしてもよい。
【００２５】
図６に示すシーケンスは、受信ＥＣＵ２０が受信したメッセージを不正なメッセージと判定するシーケンスである。次にこのシーケンスを説明する。
【００２６】
（ステップＳ２０１）：例えば、ネットワークシステム１に取り付けられた不正装置が、メッセージを生成して、バス３０に送信する。不正装置は、送信ＥＣＵ１０に成りすますために、例えば送信ＥＣＵ１０が送信するメッセージと同じＣＡＮ＿ＩＤを有するメッセージを生成する。
【００２７】
（ステップＳ２０２）：受信ＥＣＵ２０の第２制御部２１は、例えばバス３０を流れるメッセージに含まれるＣＡＮ＿ＩＤを参照して、メッセージが、自装置が処理すべきメッセージであると判定すれば、そのメッセージを受信する。本ステップでは、第２制御部２１はステップＳ２０１で送信されたメッセージを受信する。
【００２８】
（ステップＳ２０３）：受信ＥＣＵ２０の第２制御部２１は、ステップＳ２０２でメッセージを受信した時、第２クロック２３を参照することで受信時刻を取得する。第２制御部２１は、取得した受信時刻に基づいて受信履歴を更新して第２記憶部２２に記憶させる。受信履歴の例を図７に示す。
【００２９】
（ステップＳ２０４）：送信ＥＣＵ１０の第１制御部１１は、送信履歴を、第１記憶部１２から取得し、受信ＥＣＵ２０あてに送信する。本シーケンスでは、送信ＥＣＵ１０は新たにメッセージの生成、送信を行っておらず、送信履歴は、例えば前回送信したものと同じである。送信履歴の例を図８に示す。
【００３０】
（ステップＳ２０５）：本シーケンスでは、ステップＳ１０２でメッセージを受信してから所定期間内に、受信ＥＣＵ２０の第２制御部２１は、ステップＳ２０４で送信された送信履歴を受信する。第２制御部２１は、受信した送信履歴を、第２記憶部２２に記憶させる。なお、ステップＳ２０４で送信ＥＣＵ１０が送信履歴を送信する処理は、ステップＳ２０１において不正装置がメッセージの送信を行うこととは独立的に実行されるものであり、本ステップにおいて、ステップＳ２０２でメッセージを受信してから所定期間内に、送信履歴を受信するのは必然ではない。ステップＳ２０２でメッセージを受信してから所定期間内に、送信ＥＣＵ１０から送信履歴を受信しない場合は、第２制御部２１は、上述したように、ステップＳ２０２で受信したメッセージを不正なメッセージである判断することができる。
【００３１】
（ステップＳ２０６）：受信ＥＣＵ２０の第２制御部２１は、第２記憶部２２から送信履歴および受信履歴を取得し、これらを比較する。すなわちステップＳ２０２で受信したメッセージについて、そのメッセージと同じＣＡＮ＿ＩＤのメッセージについて、受信履歴に含まれる受信時刻に一致する送信時刻が送信履歴に含まれるか否かを判定する。本シーケンスでは、ステップＳ２０２で受信したメッセージは、ステップＳ２０１で、不正装置から送信された不正なメッセージである。不正装置は、送信履歴を送信しないので、図９に示すように、第２記憶部２２から取得する送信履歴にはステップＳ２０２で受信したメッセージの送信履歴が反映されておらず、送信履歴にない受信時刻が受信履歴に含まれる。すなわち、受信履歴に含まれる受信時刻に一致する送信時刻が送信履歴に含まれない。これにより、第２制御部２１は、ステップＳ２０２で受信したメッセージを不正なメッセージと判断する。
【００３２】
以上の各シーケンスが繰り返し実行されることで、受信ＥＣＵ２０が受信する各メッセージについて正当なメッセージであるか不正なメッセージであるか判定される。このような判定は、受信ＥＣＵ２０が受信する全メッセージについて行ってもよいし、受信ＥＣＵ２０が所定のアプリケーションプログラムを実行している場合に行ってもよいし、あるいは、受信ＥＣＵ２０が、外部からの攻撃、侵入が発生していると考えられる何らかの異常を検出した場合に行ってもよい。
【００３３】
（変形例）
上述の実施形態においては、送信ＥＣＵ１０が自発的に送信履歴を送信するが、変形例として、代わりに、受信ＥＣＵ２０からの要求があれば送信履歴を送信するようにしてもよい。本例では、受信ＥＣＵ２０の第２制御部２１は、例えば、外部からの攻撃、侵入が発生していると考えられる何らかの異常を検出した場合、送信ＥＣＵ１０に送信履歴を送信することを要求するメッセージを送信する。このメッセージは例えば、送信ＥＣＵ１０が送信するメッセージとは異なるＣＡＮ＿ＩＤを有する。送信ＥＣＵ１０の第１制御部１１は、受信ＥＣＵ２０から、このメッセージを受信すると、第１記憶部１２から送信履歴を取得して、受信ＥＣＵ２０に送信する。
【００３４】
受信ＥＣＵ２０の第２制御部２１は、送信履歴を受信して、上述の実施形態と同様に、送信履歴と受信履歴とに基づいて、受信したメッセージが不正であるか否か判定することができる。
【００３５】
なお、本例においては、受信ＥＣＵ２０の第２制御部２１は、送信ＥＣＵ１０に送信履歴を送信することを要求するメッセージの代わりに、第２記憶部２２から受信履歴を取得して、受信履歴を含むメッセージを、送信ＥＣＵ１０に送信してもよい。この場合、送信ＥＣＵ１０の第１制御部１１は、受信した受信履歴に含まれる時刻と、第１記憶部１２から取得する送信履歴に含まれる時刻とを比較し、受信履歴に含まれる各時刻が送信履歴に含まれるか否かを表す情報を生成し、比較結果として受信ＥＣＵ２０に送信してもよい。受信ＥＣＵ２０の第２制御部２１は、比較結果を受信し、これに基づいて、受信したメッセージが不正であるか否か判定することができる。
【００３６】
＜効果＞
以上のように、本発明に係るネットワークシステムにおいては、メッセージを送信する送信ＥＣＵが、メッセージの送信履歴も送信する。メッセージを受信する受信ＥＣＵは、送信履歴も受信し、自装置が生成する受信履歴と受信した送信履歴とに基づいて、メッセージが送信ＥＣＵから送信された正当なメッセージか、それ以外の不正なメッセージであるかを判定する。この判定方法は、判定対象のメッセージが、一定周期で送信される一連のメッセージであることを前提としないので、単発的なメッセージも判定対象にできるし、一定周期で送信される一連のメッセージも判定対象にできる。またこの判定方法は、一定周期で送信される一連のメッセージであっても、前回の受信からの経過時刻に依存せず判定を行うので、前回の受信からの経過時刻に依存した判定を行う場合に比べて、メッセージの受信タイミングに起因する誤判定を抑制でき、判定能力を向上することができる。
【００３７】
本発明は、ネットワークシステムだけでなく、ネットワークシステムにおける送信ＥＣＵ、受信ＥＣＵが実行する不正メッセージ判定方法、送信ＥＣＵ、受信ＥＣＵの各コンピュータが実行する不正メッセージ判定プログラムおよびこれを記憶したコンピュータ読み取り可能な非一時的記憶媒体、ネットワークシステムを備えた車両等として捉えることが可能である。また、本発明は、車両に搭載されるネットワークシステム以外のネットワークシステムにも適用できる。
【産業上の利用可能性】
【００３８】
本発明は、車両等に搭載されるネットワークシステムに有用である。
【符号の説明】
【００３９】
１  ネットワークシステム
１０    送信ＥＣＵ
１１    第１制御部
１２    第１記憶部
１３    第１クロック
２０    受信ＥＣＵ
２１    第２制御部
２２    第２記憶部
２３    第２クロック
３０    バス
【図１】
2020088798.tif 000003
【図２】
2020088798.tif 000004
【図３】
2020088798.tif 000005
【図４】
2020088798.tif 000006
【図５】
2020088798.tif 000007
【図６】
2020088798.tif 000008
【図７】
2020088798.tif 000009
【図８】
2020088798.tif 000010
【図９】
2020088798.tif 000011