(57)【要約】【課題】ネットワークでの不正なフレームの送信を検知する不正検知方法であって、不正フレームが送信された場合に適正なフレームを不正と誤検知する可能性を低減させた不正検知電子制御ユニットを提供する。【解決手段】ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニット１００は、ネットワーク上で送信されたデータフレームを受信する受信ステップを行うトランシーバ部１３０と、第１識別子を有するデータフレームである対象データフレームの不正検知として、第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルールに基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価を行う検知ステップを行う不正検知処理部１５２とを備える。【選択図】図４
2020005289.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットにおいて用いられる不正検知方法であって、
前記ネットワーク上で送信されたデータフレームを受信する受信ステップと、
第１識別子を有するデータフレームである対象データフレームの不正検知として、当該第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む
不正検知方法。
【請求項２】
前記検知ステップでは、前記対象データフレームの受信タイミングと前記基準データフレームの受信タイミングとの関係が前記所定ルールに適合する場合に前記対象データフレームが不正でないと評価し、前記関係が前記所定ルールに適合しない場合に前記対象データフレームが不正であると評価する
請求項１記載の不正検知方法。
【請求項３】
前記所定ルールは、前記受信間隔の適正範囲を規定し、
前記検知ステップでは、前記対象データフレームの受信タイミングと、当該受信タイミングに先行する前記基準データフレームの受信タイミングとの差が前記適正範囲内である場合に前記所定ルールに適合するとして前記評価を行う
請求項１又は２記載の不正検知方法。
【請求項４】
前記不正検知方法は更に、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングと、当該受信タイミングに先行する前記対象データフレームの受信タイミングとの間隔に応じて、当該対象データフレームが不正であるか否かを評価する初期検知ステップを含み、
前記不正検知方法は、前記検知ステップでの前記不正検知に先行して、前記初期検知ステップでの前記不正検知を行い、前記初期検知ステップで前記対象データフレームが不正であると評価された後に、前記初期検知ステップでの前記不正検知を停止して、前記検知ステップでの前記不正検知を開始する
請求項１〜３のいずれか一項に記載の不正検知方法。
【請求項５】
前記初期検知ステップでは、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングが、当該受信タイミングに先行する前記対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、当該対象データフレームの受信タイミングが前記適正時間帯内でありかつ当該適正時間帯内のタイミングで別の前記対象データフレームが受信されていた場合には、不正であると評価する
請求項４記載の不正検知方法。
【請求項６】
前記不正検知方法は更に、
前記基準データフレームの不正検知を行う基準検知ステップと、
前記対象データフレームの不正検知として、前記第１識別子及び前記第２識別子と異なる第３識別子を有するデータフレームである別基準データフレームと当該対象データフレームとの受信間隔を規定するルールに基づいて、前記別基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う後続検知ステップとを含み、
前記不正検知方法は、前記基準検知ステップで前記基準データフレームが不正と検知された場合には、前記検知ステップでの前記不正検知を停止して、前記後続検知ステップでの前記不正検知を開始する
請求項１〜５のいずれか一項に記載の不正検知方法。
【請求項７】
前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち予め定められた選択基準に従って選択した１つの識別子を前記第２識別子と定めてから、前記検知ステップでの前記不正検知を開始し、前記第１識別子及び前記第２識別子と異なる複数の識別子のうち予め定められた前記選択基準に従って選択した１つの識別子を前記第３識別子と定めてから、前記後続検知ステップでの前記不正検知を開始する
請求項６記載の不正検知方法。
【請求項８】
前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち、１つの識別子を有するデータフレームについて未だ不正が検知されていない当該識別子を、前記第２識別子として選択してから、前記検知ステップでの前記不正検知を行う
請求項１〜６のいずれか一項に記載の不正検知方法。
【請求項９】
前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち、前記複数の電子制御ユニットが搭載される車両の状態に応じて１つの識別子を前記第２識別子として選択してから、前記検知ステップでの前記不正検知を行う
請求項１〜６のいずれか一項に記載の不正検知方法。
【請求項１０】
前記検知ステップでは、前記第１識別子及び前記第２識別子と異なる１つ以上の識別子それぞれを１対１に有する１つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群に基づいて、前記集合におけるデータフレーム毎に当該データフレームの受信タイミングと前記対象データフレームの受信タイミングとに応じて当該対象データフレームが不正か否かの評価を行い、各評価の結果に基づいて当該対象データフレームが不正か否かを決定する
請求項１〜３のいずれか一項に記載の不正検知方法。
【請求項１１】
前記検知ステップでは、前記第１識別子及び前記第２識別子と異なる１つ以上の識別子それぞれを１対１に有する１つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群と、前記集合における各データフレームの受信タイミングと、前記対象データフレームの受信タイミングとに基づく所定演算により、当該対象データフレームが不正である確度を算定することで前記評価を行う
請求項１記載の不正検知方法。
【請求項１２】
前記不正検知方法は更に、前記検知ステップでの前記評価の結果を記憶媒体に記録する記録ステップを含む
請求項１〜１１のいずれか一項に記載の不正検知方法。
【請求項１３】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、
前記ネットワーク上で送信されたデータフレームを受信する受信部と、
第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、
前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える
不正検知電子制御ユニット。
【請求項１４】
ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、
前記ネットワーク上で送信されたデータフレームを受信する受信部と、
第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、
前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える
不正検知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御ユニットが通信を行う車載ネットワークにおける不正なフレームの送信を検知する技術に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Electronic Control Unit）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ＩＳＯ１１８９８−１で規定されているＣＡＮ（Controller Area Network）という規格が存在する。
【０００３】
ＣＡＮでは、通信路は２本のバスで構成され、バスに接続されているＥＣＵはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、２本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「１」の値と、ドミナントと呼ばれる「０」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを６ｂｉｔ連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
【０００４】
またＣＡＮでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にＩＤを付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたＩＤのフレームのみを受信する（つまりバスから信号を読み取る）。また、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式を採用しており、複数ノードの同時送信時にはメッセージＩＤによる調停が行われ、メッセージＩＤの値が小さいフレームが優先的に送信される。
【０００５】
ＣＡＮの車載ネットワークシステムについては、攻撃者がバスにアクセスして不正なフレームを送信することでＥＣＵを不正に制御するといった脅威が存在し、セキュリティ対策が検討されている。
【０００６】
例えば特許文献１に記載された車載ネットワーク監視装置は、ＣＡＮのバスに送信されたフレームについて測定される受信間隔と予め規定された通信間隔との差が規定された基準範囲から外れる場合にそのフレームを不正と判断する不正検知方法を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５６６４７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の不正検知方法によれば、予め規定された通信間隔に基づく基準範囲内に複数のフレームを受信した場合において、その複数のフレームに攻撃者による不正なフレームが含まれている可能性がある。基準範囲内のその不正なフレームの受信タイミングを基にして、次回に受信するフレームの判断のために規定の通信間隔に基づく基準範囲を定めると、結果的に、適正なフレームが不正と判断され得るようになってしまう。
【０００９】
そこで、本発明は、予め規定された通信間隔の誤差範囲内に不正なフレームを受信した場合にも適正なフレームを不正と誤検知する可能性を低減させ、適切に不正検知を行い得る不正検知方法を提供する。また、本発明は、その不正検知方法を実現可能なＥＣＵである不正検知電子制御ユニット（不正検知ＥＣＵ）、及び、その不正検知方法を実現する不正検知システムを提供する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明の一態様に係る不正検知方法は、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットにおいて用いられる不正検知方法であって、前記ネットワーク上で送信されたデータフレームを受信する受信ステップと、第１識別子を有するデータフレームである対象データフレームの不正検知として、当該第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む。
【００１１】
また、上記課題を解決するために本発明の一態様に係る不正検知電子制御ユニットは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記ネットワーク上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える。
【００１２】
また、上記課題を解決するために本発明の一態様に係る不正検知システムは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記ネットワーク上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える。
【００１３】
上記課題を解決するために本発明の他の一態様に係る不正検知方法は、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、第１識別子を有するデータフレームである対象データフレームの不正検知として、当該第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む不正検知方法である。
【００１４】
また、上記課題を解決するために本発明の他の一態様に係る不正検知電子制御ユニット（不正検知ＥＣＵ）は、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知電子制御ユニットである。
【００１５】
また、上記課題を解決するために本発明の他の一態様に係る不正検知システムは、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記バス上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知システムである。
【発明の効果】
【００１６】
本発明によれば、ＣＡＮのバスに不正なノードが接続されて不正フレームが送信されたとしても適正なフレームを不正と誤検知する可能性が低減され、適切に不正なフレームの送信を検知し得るようになる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に係る車載ネットワークシステムの全体構成を示す図である。
【図２】ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。
【図３】ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。
【図４】実施の形態１に係る不正検知ＥＣＵの構成図である。
【図５】実施の形態１に係る不正検知ＥＣＵのルール保持部が保持するルール情報の一例を示す図である。
【図６】実施の形態１に係る不正検知ＥＣＵの受信タイミング保持部に格納される受信タイミング情報の一例を示す図である。
【図７】実施の形態１に係るＥＣＵの構成図である。
【図８】実施の形態１に係るＥＣＵが送信するデータフレームの一例を示す図である。
【図９】実施の形態１に係る不正検知ＥＣＵによるデータフレームの不正検知動作の一例を示す図である。
【図１０】実施の形態１に係る不正検知ＥＣＵによるデータフレームの受信時の不正検知処理を示すフローチャートである。
【図１１】実施の形態２に係る車載ネットワークシステムの全体構成を示す図である。
【図１２】実施の形態２に係る不正検知ＥＣＵの構成図である。
【図１３】実施の形態２に係る不正検知ＥＣＵのルール保持部が保持するルール情報の一例を示す図である。
【図１４】実施の形態２に係る不正検知ＥＣＵの受信状態保持部が保持する受信状態情報の一例を示す図である。
【図１５】実施の形態２に係るＥＣＵが送信するデータフレームの一例を示す図である。
【図１６】実施の形態２に係る不正検知ＥＣＵによるデータフレームの不正検知動作の一例を示す図である。
【図１７】実施の形態２に係る不正検知ＥＣＵによるデータフレームの不正検知動作の別の一例を示す図である。
【図１８】実施の形態２に係る不正検知ＥＣＵによるデータフレームの受信時の不正検知処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本発明の一態様に係る不正検知方法は、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットにおいて用いられる不正検知方法であって、前記ネットワーク上で送信されたデータフレームを受信する受信ステップと、第１識別子を有するデータフレームである対象データフレームの不正検知として、当該第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む。
【００１９】
また、本発明の一態様に係る不正検知電子制御ユニットは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記ネットワーク上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える。
【００２０】
また、本発明の一態様に係る不正検知システムは、ネットワークを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記ネットワーク上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える。
【００２１】
本発明の一態様に係る不正検知方法は、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる不正検知方法であって、前記バス上で送信されたデータフレームを受信する受信ステップと、第１識別子を有するデータフレームである対象データフレームの不正検知として、当該第１識別子と異なる第２識別子を有するデータフレームである基準データフレームと当該対象データフレームとの受信間隔を規定する所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知ステップとを含む不正検知方法である。これにより、不正検知対象の識別子（ＩＤ）のデータフレームと異なるＩＤのデータフレームを受信間隔の基準とするので、バスに不正なノードが接続されて不正なデータフレームが送信されたとしても適正なデータフレームを不正と誤検知する可能性が低減され、適切に不正なデータフレームの送信を検知し得るようになる。
【００２２】
また、前記検知ステップでは、前記対象データフレームの受信タイミングと前記基準データフレームの受信タイミングとの関係が前記所定ルールに適合する場合に前記対象データフレームが不正でないと評価し、前記関係が前記所定ルールに適合しない場合に前記対象データフレームが不正であると評価することとしても良い。これにより、不正検知対象のデータフレームが不正であるか否かについて択一評価による検査が可能となる。なお、この評価結果単独又は他の評価等との組み合わせにより、不正検知対象のデータフレームが不正か否かの決定が可能となる。
【００２３】
また、前記所定ルールは、前記受信間隔の適正範囲を規定し、前記検知ステップでは、前記対象データフレームの受信タイミングと、当該受信タイミングに先行する前記基準データフレームの受信タイミングとの差が前記適正範囲内である場合に前記所定ルールに適合するとして前記評価を行うこととしても良い。これにより、データフレームの受信間隔が許容誤差の範囲内であれば不正としないような評価が可能となる。
【００２４】
また、前記不正検知方法は更に、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングと、当該受信タイミングに先行する前記対象データフレームの受信タイミングとの間隔に応じて、当該対象データフレームが不正であるか否かを評価する初期検知ステップを含み、前記不正検知方法は、前記検知ステップでの前記不正検知に先行して、前記初期検知ステップでの前記不正検知を行い、前記初期検知ステップで前記対象データフレームが不正であると評価された後に、前記初期検知ステップでの前記不正検知を停止して、前記検知ステップでの前記不正検知を開始することとしても良い。これにより、不正検知対象のデータフレーム同士の受信間隔に基づく不正検知を継続することが適切でない状態の発生に対応して、不正検知のための受信間隔の基準を切り替えるので、適切な不正検知が可能となる。
【００２５】
また、前記初期検知ステップでは、前記対象データフレームの不正検知として、当該対象データフレームの受信タイミングが、当該受信タイミングに先行する前記対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、当該対象データフレームの受信タイミングが前記適正時間帯内でありかつ当該適正時間帯内のタイミングで別の前記対象データフレームが受信されていた場合には、不正であると評価することとしても良い。これにより、不正検知対象のデータフレーム同士の受信間隔に基づく不正検知を継続することが適切でない状態の発生から、不正検知のための受信間隔の基準が切り替えられるようになる。
【００２６】
また、前記不正検知方法は更に、前記基準データフレームの不正検知を行う基準検知ステップと、前記対象データフレームの不正検知として、前記第１識別子及び前記第２識別子と異なる第３識別子を有するデータフレームである別基準データフレームと当該対象データフレームとの受信間隔を規定するルールに基づいて、前記別基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う後続検知ステップとを含み、前記不正検知方法は、前記基準検知ステップで前記基準データフレームが不正と検知された場合には、前記検知ステップでの前記不正検知を停止して、前記後続検知ステップでの前記不正検知を開始することとしても良い。これにより、不正検知のための受信間隔の基準となるデータフレームについての不正が検知された時から、基準となるデータフレームを変更して適切な不正検知を続行できるようになる。
【００２７】
また、前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち予め定められた選択基準に従って選択した１つの識別子を前記第２識別子と定めてから、前記検知ステップでの前記不正検知を開始し、前記第１識別子及び前記第２識別子と異なる複数の識別子のうち予め定められた前記選択基準に従って選択した１つの識別子を前記第３識別子と定めてから、前記後続検知ステップでの前記不正検知を開始することとしても良い。これにより、選択基準を予め適切に定めておけば、不正検知のための受信間隔の基準となるデータフレームについて不正が検知された場合に、基準を適切なデータフレームに変更して不正検知を続行できるようになる。
【００２８】
また、前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち、１つの識別子を有するデータフレームについて未だ不正が検知されていない当該識別子を、前記第２識別子として選択してから、前記検知ステップでの前記不正検知を行うこととしても良い。これにより、不正が検知されたことのあるデータフレームを不正検知のための受信間隔の基準として用いる場合に比べて、不正検知を適切に行うことが可能となる。
【００２９】
また、前記不正検知方法は、前記第１識別子と異なる複数の識別子のうち、前記複数の電子制御ユニットが搭載される車両の状態に応じて１つの識別子を前記第２識別子として選択してから、前記検知ステップでの前記不正検知を行うこととしても良い。これにより、不正検知のための受信間隔の基準として車両の状態に適した基準を用いて適切に不正検知を行うことが可能となる。
【００３０】
また、前記検知ステップでは、前記第１識別子及び前記第２識別子と異なる１つ以上の識別子それぞれを１対１に有する１つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群に基づいて、前記集合におけるデータフレーム毎に当該データフレームの受信タイミングと前記対象データフレームの受信タイミングとに応じて当該対象データフレームが不正か否かの評価を行い、各評価の結果に基づいて当該対象データフレームが不正か否かを決定することとしても良い。これにより、複数の受信間隔に係るルールそれぞれによる評価結果を用いて総合的にデータフレームが不正か否かについて精度良く判定を行うことが可能となり得る。
【００３１】
また、前記検知ステップでは、前記第１識別子及び前記第２識別子と異なる１つ以上の識別子それぞれを１対１に有する１つ以上のデータフレームと前記基準データフレームとの集合における各データフレームについて当該データフレームと前記対象データフレームとの受信間隔を規定する、前記所定ルールを含むルール群と、前記集合における各データフレームの受信タイミングと、前記対象データフレームの受信タイミングとに基づく所定演算により、当該対象データフレームが不正である確度を算定することで前記評価を行うこととしても良い。これにより、データフレームが不正である確度が得られるようになる。
【００３２】
また、前記不正検知方法は更に、前記検知ステップでの前記評価の結果を記憶媒体に記録する記録ステップを含むこととしても良い。これにより、データフレームについての不正検知に係る評価結果を活用した処理を実現し得る。
【００３３】
また、本発明の一態様に係る不正検知電子制御ユニットは、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知電子制御ユニットであって、前記バス上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知電子制御ユニットである。これにより、バスに不正なノードが接続されて不正なデータフレームが送信されたとしても適正なデータフレームを不正と誤検知する可能性が低減され、適切に不正なデータフレームの送信を検知し得るようになる。
【００３４】
また、本発明の一態様に係る不正検知システムは、ＣＡＮ（Controller Area Network）プロトコルに従ってバスを介して通信を行う複数の電子制御ユニットを備える車載ネットワークシステムにおける不正検知のための不正検知システムであって、前記バス上で送信されたデータフレームを受信する受信部と、第１識別子を有するデータフレームである対象データフレームと、前記第１識別子と異なる第２識別子を有するデータフレームである基準データフレームとの受信間隔を規定する所定ルールを示すルール情報を保持するルール保持部と、前記対象データフレームの不正検知として、前記所定ルールに基づき、前記基準データフレームの受信タイミングと当該対象データフレームの受信タイミングとに応じて、評価を行う検知部とを備える不正検知システムである。これにより、適切に不正なデータフレームの送信を検知し得るようになる。
【００３５】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【００３６】
以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００３７】
（実施の形態１）
以下、本発明の実施の形態として、複数の電子制御ユニット（ＥＣＵ）がバスを介して通信する車載ネットワークシステム１０において用いられる不正検知方法について、図面を用いて説明する。
【００３８】
不正検知方法は、ＣＡＮのバスに不正なノードが接続されて不正なフレームが送信されることを検知する方法であり、主としてバスに接続された不正検知ＥＣＵにより実行される。車載ネットワークシステム１０における不正検知ＥＣＵ１００は、互いに異なる２つの識別子（メッセージＩＤ）を有するデータフレーム（メッセージ）間の受信間隔を基にして不正なデータフレームを検知する。これにより、不正なデータフレームが送信された場合にその不正なデータフレームと同じ識別子（メッセージＩＤ）を有する適正なデータフレームを不正と誤検知する可能性を低減する。
【００３９】
［１．１  車載ネットワークシステム１０の全体構成］
図１は、実施の形態１に係る車載ネットワークシステム１０の全体構成を示す図である。
【００４０】
車載ネットワークシステム１０は、ＣＡＮプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ、アクチュエータ、ユーザインタフェース装置等の各種機器が搭載された車両におけるネットワーク通信システムである。車載ネットワークシステム１０は、バスを介してフレームに係る通信を行う複数の装置を備え、不正検知方法を用いる。具体的には図１に示すように車載ネットワークシステム１０は、バス３００と、不正検知ＥＣＵ１００、各種機器に接続されたＥＣＵ（自動駐車ＥＣＵ）２００ａ、ＥＣＵ（パワステＥＣＵ）２００ｂ、ＥＣＵ（ギアＥＣＵ）２００ｃ等の各ＥＣＵといったバス３００に接続された各ノードとを含んで構成される。なお、車載ネットワークシステム１０には、不正検知ＥＣＵ１００及びＥＣＵ２００ａ、２００ｂ、２００ｃ以外にもいくつものＥＣＵが含まれ得るが、ここでは、便宜上不正検知ＥＣＵ１００及びＥＣＵ２００ａ、２００ｂ、２００ｃに注目して説明を行う。ＥＣＵは、例えば、プロセッサ（マイクロプロセッサ）、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行される制御プログラム（コンピュータプログラム）を記憶することができる。例えばプロセッサが、制御プログラム（コンピュータプログラム）に従って動作することにより、ＥＣＵは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【００４１】
自動駐車ＥＣＵ２００ａ、パワステＥＣＵ２００ｂ、ギアＥＣＵ２００ｃは、バス３００と接続され、それぞれカメラ２１０、ハンドル（ステアリングホイール）２２０、ギア（変速機構）２３０に接続されている。また自動駐車ＥＣＵ２００ａはタッチパネル２４０に接続されており、搭乗者の操作を受け付ける。自動駐車ＥＣＵ２００ａは、周期的にバス３００へ、データフレームを送信する。また搭乗者によるタッチパネル２４０の操作により、自動駐車モードへ移行し、カメラ２１０の情報を取得しながら、ハンドル２２０の操舵角を指示する信号をバス３００に送信する。パワステＥＣＵ２００ｂは、バス３００上のデータフレームを受信し、ハンドル操舵指示がある場合には、ハンドル２２０を指定された角度へ曲げる。ギアＥＣＵ２００ｃはギア２３０の状態を取得し、バス３００へ、周期的にギア２３０の状態を通知するデータフレームを送信する。
【００４２】
不正検知ＥＣＵ１００は、バス３００に接続される一種のＥＣＵであり、バス上に流れるデータフレーム（つまりバス上に現れるデータフレーム）を監視して、不正なデータフレーム（つまり予め定められたルールに適合しないデータフレーム）が流れているか否かを判別するための不正検知処理を行う機能を有する。
【００４３】
車載ネットワークシステム１０においてはＣＡＮプロトコルに従って、各ＥＣＵがフレームの授受を行う。ＣＡＮプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。ここではデータフレームを中心に説明する。
【００４４】
［１．２  データフレームフォーマット］
以下、ＣＡＮプロトコルに従ったネットワークで用いられるフレームの１つであるデータフレームについて説明する。
【００４５】
図２は、ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、ＣＡＮプロトコルで規定される標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、ＳＯＦ（Start Of Frame）、ＩＤフィールド、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビット「ｒ」、ＤＬＣ（Data Length Code）、データフィールド、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ「ＤＥＬ」、ＡＣＫ（Acknowledgement）スロット、ＡＣＫデリミタ「ＤＥＬ」、及び、ＥＯＦ（End Of Frame）の各フィールドで構成される。
【００４６】
ＳＯＦは、１ｂｉｔのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ＳＯＦによりドミナントへ変更することでフレームの送信開始を通知する。
【００４７】
ＩＤフィールドは、１１ｂｉｔで構成される、データの種類を示す値であるＩＤ（メッセージＩＤ）を格納するフィールドである。複数のノードが同時に送信を開始した場合、このＩＤフィールドで通信調停を行うために、ＩＤが小さい値を持つフレームが高い優先度となるよう設計されている。
【００４８】
ＲＴＲは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント１ｂｉｔで構成される。
【００４９】
ＩＤＥと「ｒ」とは、両方ドミナント１ｂｉｔで構成される。
【００５０】
ＤＬＣは、４ｂｉｔで構成され、データフィールドの長さを示す値である。ここでは、データフレームにおけるＤＬＣの値を格納する４ｂｉｔをＤＬＣのフィールドとも称する。
【００５１】
データフィールドは、最大６４ｂｉｔで構成される送信するデータの内容を示す値である。８ｂｉｔ毎に長さを調整できる。送られるデータの仕様については、ＣＡＮプロトコルで規定されておらず、車載ネットワークシステム１０において定められる。従って、車種、製造者（製造メーカ）等に依存した仕様となる。
【００５２】
ＣＲＣシーケンスは、１５ｂｉｔで構成される。ＳＯＦ、ＩＤフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【００５３】
ＣＲＣデリミタは、１ｂｉｔのレセシブで構成されるＣＲＣシーケンスの終了を表す区切り記号である。なお、ＣＲＣシーケンス及びＣＲＣデリミタを合わせてＣＲＣフィールドと称する。
【００５４】
ＡＣＫスロットは、１ｂｉｔで構成される。送信ノードはＡＣＫスロットをレセシブにして送信を行う。受信ノードはＣＲＣシーケンスまで正常に受信ができていればＡＣＫスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にＡＣＫスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【００５５】
ＡＣＫデリミタは、１ｂｉｔのレセシブで構成されるＡＣＫの終了を表す区切り記号である。
【００５６】
ＥＯＦは、７ｂｉｔのレセシブで構成されており、データフレームの終了を示す。
【００５７】
［１．３  エラーフレームフォーマット］
図３は、ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ（プライマリ）と、エラーフラグ（セカンダリ）と、エラーデリミタとから構成される。
【００５８】
エラーフラグ（プライマリ）は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために６ｂｉｔのドミナントを連続で送信する。この送信は、ＣＡＮプロトコルにおけるビットスタッフィングルール（連続して同じ値を６ｂｉｔ以上送信しない）に違反し、他のノードからのエラーフレーム（セカンダリ）の送信を引き起こす。
【００５９】
エラーフラグ（セカンダリ）は、エラーの発生を他のノードに知らせるために使用される連続した６ビットのドミナントで構成される。エラーフラグ（プライマリ）を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ（セカンダリ）を送信することになる。
【００６０】
エラーデリミタ「ＤＥＬ」は、８ｂｉｔの連続したレセシブであり、エラーフレームの終了を示す。
【００６１】
［１．４  不正検知ＥＣＵ１００の構成］
図４は、不正検知ＥＣＵ１００の構成図である。不正検知ＥＣＵ１００は、トランシーバ部１３０と、コントローラ部１４０と、マイコン部１５０とを含んで構成される。
【００６２】
トランシーバ部１３０は、通信回路等の電子回路である。トランシーバ部１３０は、コントローラ部１４０から通知されたフレームをバス３００に送信可能な電気信号に変換し送信し、また、バス３００に現れる電気信号を受信することで、受信したフレームの内容をコントローラ部１４０へ通知する。トランシーバ部１３０は、バス３００上で送信されたデータフレームを受信する受信部として機能する。
【００６３】
コントローラ部１４０は、マイコン部１５０及びトランシーバ部１３０と信号の授受を行う、デジタル回路及びメモリ等の記憶媒体を含む半導体集積回路である。コントローラ部１４０は、プロトコル処理部１４１を有する。
【００６４】
プロトコル処理部１４１は、トランシーバ部１３０と通信を行い、プロトコル（ＣＡＮプロトコル等）に従った処理を行う。プロトコル処理部１４１は、例えば受信中のフレームについてエラーを検知した場合は、トランシーバ部１３０にエラーフレームを送信させるべく、エラーフレームの送信（つまり送信要求）をトランシーバ部１３０に通知する。プロトコル処理部１４１は、データフレームの受信が完了した場合は、データフレームの受信完了をマイコン部１５０に通知する。プロトコル処理部１４１は、マイコン部１５０からのデータフレーム送信要求に対して、プロトコルに従ってデータフレームを送信できるようにトランシーバ部１３０に通知する。また、プロトコル処理部１４１は、トランシーバ部１３０を介して取得した、バス３００に現れたデータフレームの内容（ＩＤ、ＤＬＣ、データ等）をマイコン部１５０に与える。
【００６５】
マイコン部１５０は、コントローラ部１４０と信号の授受を行う、プログラムを実行するプロセッサ（マイクロプロセッサ）及びメモリを含む半導体集積回路である。マイコン部１５０は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部１５１と、不正検知処理部１５２と、フレーム生成部１５３と、ルール保持部１５４と、タイマ保持部１５５と、受信タイミング保持部１５６とを有する。
【００６６】
コントローラ通信部１５１は、コントローラ部１４０から受信したデータフレームを、不正検知処理部１５２へ通知する。コントローラ通信部１５１は、フレーム生成部１５３から通知されたデータフレームを、コントローラ部１４０へ通知し、データフレーム送信要求を行う。
【００６７】
不正検知処理部１５２は、コントローラ通信部１５１から通知されたデータフレームについて不正検知処理を行う検知部として機能する。不正検知処理は、バス３００で送信されたデータフレームつまりバス３００に現れたデータフレームの不正に関して評価する処理である。このデータフレームの不正に関する評価は、具体例としては、バス３００で送信されたデータフレームつまりバス３００に現れたデータフレームが不正であるか否かの評価、つまり予め定められたルールに適合しないか否かを判別することである。この不正検知処理においてルール保持部１５４に格納されている不正検知ルールを示すルール情報と、タイマ保持部１５５に格納されている現在タイミングの情報と、受信タイミング保持部１５６に格納されている、データフレームの過去の受信タイミングを示す受信タイミング情報とを参照して、現在受信したデータフレームが不正であるか否かを判別する。なお、ここでは説明の便宜上、不正検知ルールとして主に受信間隔に係るルールについて説明するが、不正検知ルールは、受信間隔以外のルールを含み得る。不正検知処理部１５２は、不正検知処理として、受信中のデータフレームのＩＤ（メッセージＩＤ）が、ルール保持部１５４のルール情報で不正検知ルールの対象として定められている場合に、その受信タイミングが、受信間隔の基準となる別のデータフレームの受信タイミングからの受信間隔及びマージンで定まる範囲内であるか否かを判別する検査を行う。受信したデータフレームの受信タイミングが、ルール情報が示す受信間隔及びマージンに基づく範囲内であれば、適正であり、この範囲外であれば不正となる。つまりデータフレーム間の両受信タイミングの関係が、ルール情報が示す受信間隔及びマージンに係る不正検知ルールに適合すれば適正であり、適合しなければ不正となる。なお、受信したデータフレームが不正であると判別（判定）した場合には、不正検知処理部１５２は、不正の発生（不正なデータフレームが送信されたこと）を各ＥＣＵに通知するために、フレーム生成部１５３に、その不正なデータフレームに関する情報を通知し得る。不正検知処理部１５２は、不正なデータフレームを検知した場合に、データフレームのＩＤ毎に不正が検知された累積回数をカウントして記録し、各ＩＤのデータフレームについての総合的な不正の判断等に用いることとしても良い。また不正検知処理部１５２は、記録媒体（記憶媒体）等に、不正なデータフレームに関するログ情報（例えば不正なデータフレームのＩＤその他の内容、受信日時等）を記録することとしても良いし、不正を報知するための制御（表示、車両外部に所在するサーバ装置への情報送信等）を行っても良い。
【００６８】
フレーム生成部１５３は、例えば不正検知処理部１５２から不正と判定したデータフレームに関する情報を通知された場合には、コントローラ通信部１５１に不正なデータフレームに関する情報を含むデータフレームの送信要求を通知する。
【００６９】
ルール保持部１５４は、不正検知処理部１５２が参照する、データフレーム間の通信間隔（受信間隔）の規則（ルール）である不正検知ルールを示すルール情報（図５参照）を保持する。
【００７０】
タイマ保持部１５５は、カウンタ等の計時機構に基づいて計時される現在タイミング（現在時刻）を示す情報を保持し、データフレームを受信したタイミングを取得するために不正検知処理部１５２により参照される。なお、現在タイミングは何時を基準として計時されても良く、例えば、不正検知ＥＣＵ１００に電力供給が開始された時等をゼロとして計時され得る。
【００７１】
受信タイミング保持部１５６は、過去に受信したデータフレームの受信タイミングをＩＤ毎に記録してなる受信タイミング情報を保持する。受信タイミング情報（図６参照）は、不正検知処理部１５２から参照され、現在受信したデータフレームが不正であるか否かの判別に用いられる。
【００７２】
［１．５  不正検知ルール］
図５は、ルール保持部１５４が保持する、不正検知ルールを示すルール情報の一例を示す図である。同図の例は、ＩＤ（メッセージＩＤ）が０ｘ１００のデータフレームに関する受信間隔について示している。不正検知ＥＣＵ１００は、検査（不正検知）の対象でないデータフレーム（基準データフレームと称する）と、不正検知の対象であるデータフレーム（対象データフレームと称する）との受信間隔を基にして不正検知を行う。同図の例のルール情報によれば、不正検知ＥＣＵ１００は、ＩＤが０ｘ２００の基準データフレームと、ＩＤが０ｘ１００の対象データフレームの受信間隔によって、ＩＤが０ｘ１００である対象データフレームの不正検知を行うことになる。ＩＤが０ｘ１００の対象データフレームの受信タイミングが、基準データフレーム（この例ではＩＤが０ｘ２００のデータフレーム）の受信タイミングから、２５ｍｓという受信間隔が経過した後であれば、ＩＤが０ｘ１００の対象データフレームは適正である。
【００７３】
バス３００でデータフレーム間の衝突が生じた場合の調停（再送制御）による受信間隔のゆらぎを考慮して、２５ｍｓという受信間隔についてプラスマイナス３ｍｓのマージンが定められている。なお、バス３００でデータフレーム間の衝突が生じた場合の１回の再送間隔は例えば１ｍｓより短い。図５の例では、ＩＤが０ｘ２００の基準データフレームと０ｘ１００の対象データフレームとの受信間隔が２２ｍｓ〜２８ｍｓの範囲内であれば対象データフレームが適正であると判定され、その範囲外であれば不正であると判定される。
【００７４】
この例では、ＩＤが０ｘ１００のデータフレームのみに関する不正検知ルールの例を示したが、複数のＩＤそれぞれのデータフレームを対象とする不正検知ルールを定めておいても良い。また、ルール情報が、ＩＤが０ｘ１００の対象データフレームに関して、１つのＩＤ（０ｘ２００）の基準データフレームに係る受信間隔を規定した不正検知ルールを表す例を示したが、基準データフレームとするデータフレームのＩＤは、１つに限られず、２つでも良いし、３つ以上あっても良い。また、ルール情報が、複数の基準データフレームそれぞれについてのＩＤ及び受信間隔に係るルールを示す場合に、不正検知処理部１５２は、任意の個数のルールを不正検知に用い得る。例えば、受信間隔に係るルールが５つあり、そのうち３つのルール（互いに異なる３つのＩＤの各データフレームを各基準データフレームとして各受信間隔を規定したルール）を不正検知に用いた場合に、３つのルールのいずれかを満たさない場合に、総合的に不正と判断しても良いし、３つのルールのいずれかが満たされると、総合的に適正であると判断しても良い。また、多数決により、不正検知に用いた３つのルールのうち２つ以上のルールに基づいて不正と判定した場合（２つ以上のルールに適合しない場合）に、総合的に不正であると判断し、２つ以上のルールに基づいて適正と判定した場合（２つ以上のルールに適合した場合）に、総合的に適正であると判断しても良い。また、図５の例では、ＩＤが０ｘ１００の対象データフレーム同士の受信間隔を不正検知ルールに含めていないが、例えば、ＩＤが０ｘ１００のデータフレームの受信間隔（例えば５０ｍｓ）についても、不正検知ルールに含めても良い。なお、また、ルール情報の内容は、暗号化されて保持されても良い。
【００７５】
［１．６  受信タイミング情報］
図６は、受信タイミング保持部１５６に格納される、受信タイミング情報の一例を示す図である。この受信タイミング情報は、不正検知ＥＣＵ１００が過去に受信したデータフレームについての受信タイミングを、タイマ保持部１５５の現在タイミングを参照してＩＤ毎に記録したものである。図６の例は、ＩＤ（メッセージＩＤ）が０ｘ１００であるデータフレームを前回受信したタイミングは２０１ｍｓであり、ＩＤが０ｘ２００であるデータフレームを前回受信したタイミングは１７６ｍｓであることを示している。
【００７６】
［１．７  自動駐車ＥＣＵ２００ａの構成］
図７は、ＥＣＵ（自動駐車ＥＣＵ）２００ａの構成図である。ＥＣＵ２００ａは、トランシーバ部１３０と、コントローラ部１４０と、マイコン部２５０とを含んで構成される。
【００７７】
トランシーバ部１３０及びコントローラ部１４０は、不正検知ＥＣＵ１００（図４参照）におけるトランシーバ部１３０及びコントローラ部１４０と、同様であるため説明を省略する。
【００７８】
マイコン部２５０は、コントローラ部１４０と信号の授受を行う、プログラムを実行するプロセッサ及びメモリを含む半導体集積回路である。マイコン部２５０は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部１５１と、フレーム処理部２５２と、フレーム生成部２５３と、外部機器入出力部２５４とを有する。
【００７９】
コントローラ通信部１５１は、不正検知ＥＣＵ１００（図４参照）におけるコントローラ通信部１５１と同様である。但し、ＥＣＵ２００ａのコントローラ通信部１５１は、コントローラ部１４０から受信したデータフレームを、フレーム処理部２５２へ通知する。コントローラ通信部１５１は、フレーム生成部２５３から通知されたデータフレームを、コントローラ部１４０へ通知し、データフレーム送信要求を行う。
【００８０】
フレーム処理部２５２は、コントローラ通信部１５１から通知されたデータフレームを処理して結果を外部機器入出力部２５４へ通知する。
【００８１】
フレーム生成部２５３は、外部機器入出力部２５４から通知された値に基づいてデータフレーム（図８参照）を生成し、コントローラ通信部１５１に、データフレームを通知する。
【００８２】
外部機器入出力部２５４は、ＥＣＵ２００ａに接続される外部機器と、通信を行う。即ち、外部機器入出力部２５４は、タッチパネル２４０から操作に応じて自動駐車モードへの移行指示を受け付けて、カメラ２１０から撮影した車両周辺を示す情報を取得してフレーム生成部２５３に通知する。
【００８３】
パワステＥＣＵ２００ｂ及びギアＥＣＵ２００ｃも上述の自動駐車ＥＣＵ２００ａと同様の構成を備える。但し、パワステＥＣＵ２００ｂにおける外部機器入出力部２５４は、パワステＥＣＵ２００ｂに接続されるハンドル２２０へ、フレーム処理部２５２から通知された値に基づいた制御信号（操舵を行うための信号）を通知する。また、ギアＥＣＵ２００ｃにおける外部機器入出力部２５４は、ギア２３０の状態を取得してフレーム生成部２５３に通知する。
【００８４】
［１．８  データフレーム例］
図８は、送信されるデータフレームについてのＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。
【００８５】
図８で（ａ）は、自動駐車ＥＣＵ２００ａが送信するデータフレームの例であり、（ｂ）は、ギアＥＣＵ２００ｃが送信するデータフレームの例である。
【００８６】
自動駐車ＥＣＵ２００ａが送信するデータフレームのメッセージＩＤは「０ｘ１００」であり、ＤＬＣは「４」（４バイト）である。データフィールドの１バイト目はモードを示しており、自動駐車モードのときに値が１になる。自動駐車モードでないときには、２バイト目以降のデータフィールドの値は無効になる。データフィールドの２バイト目は自動駐車モードのときにハンドル２２０をどの方向に曲げるかを示す。この値が０の時は、ハンドル２２０を右に曲げ、この値が１の時は、ハンドル２２０を左に曲げる。データフィールドの３バイト目と４バイト目とを合わせた、２バイトでハンドル２２０を曲げるときの角度を表す。図８の（ａ）の例は、自動駐車モードであり、ハンドル２２０を右に２５６（０ｘ１００）度曲げることを示している。
【００８７】
ギアＥＣＵ２００ｃが送信するデータフレームのメッセージＩＤは「０ｘ２００」であり、ＤＬＣは「１」（１バイト）である。データフィールドには、ギア２３０の状態を示す値が含まれる。この値は、ギア２３０がニュートラル状態であれば「０」となり、ギア２３０がリバース状態であれば「１」となり、ギア２３０がドライブ状態であれば「２」となる。図８の（ｂ）の例は、ギア２３０がリバース状態であることを示している。
【００８８】
［１．９  不正検知ＥＣＵ１００のデータフレームの不正検知の動作例］
図９は、バス３００に逐次現れるデータフレームを不正検知ＥＣＵ１００が受信して不正検知を行う例を示す図である。図９では、自動駐車ＥＣＵ２００ａが周期的に送信する、ＩＤが０ｘ１００のデータフレームＦ２、Ｆ５、Ｆ８と、ギアＥＣＵ２００ｃが周期的に送信する、ＩＤが０ｘ２００のデータフレームＦ１、Ｆ４、Ｆ７とがバス３００へ逐次現れる様子を表している。また、図９では、バス３００にアクセス可能な攻撃者（不正ＥＣＵ）が、バス３００にＩＤが０ｘ１００の不正なデータフレームＦ３、Ｆ６、Ｆ９を周期的に送信して、ハンドル２２０の不正制御を試みている状況を表している。この例では、不正検知ＥＣＵ１００は不正検知（検査）として、ＩＤが０ｘ１００のデータフレームについて不正に関する評価（具体的には不正か否かの判別）を行う。なお、図９では示さないが、不正検知ＥＣＵ１００は、ＩＤが０ｘ１００以外のデータフレームを対象とした不正検知（不正に関する評価）を行い得る。
【００８９】
不正検知ＥＣＵ１００は、ＩＤが０ｘ２００のデータフレームＦ１を受信したタイミングを、受信タイミング情報として、保持する。次に不正検知ＥＣＵ１００は、ルール保持部１５４が保持するルール情報の不正検知ルールに基づき、ＩＤが０ｘ１００のデータフレームＦ２の受信タイミングが、ＩＤが０ｘ２００のデータフレームＦ１の受信タイミング（受信タイミング情報が示すタイミング）から２２ｍｓ〜２８ｍｓの範囲Ｔ１内であるかを検査する。範囲Ｔ１は、データフレームＦ１の受信タイミングを基準として、ルール情報（図５参照）が示す受信間隔２５ｍｓを中心として前後にマージン３ｍｓをとった時間帯を表す。自動駐車ＥＣＵ２００ａが送信した、ＩＤが０ｘ１００のデータフレームＦ２は、範囲Ｔ１内のタイミングで受信しているため、適正なデータフレームであると判定する。また、次に受信する攻撃者（不正ＥＣＵ）が送信する、ＩＤが０ｘ１００のデータフレームＦ３については、範囲Ｔ１内外の判別（つまり不正か否かの判別）の結果として範囲Ｔ１外であるため不正と判定する。
【００９０】
また、同様に、不正検知ＥＣＵ１００は、ＩＤが０ｘ２００のデータフレームＦ４を受信したタイミングを保持し、ＩＤが０ｘ１００のデータフレームＦ５の受信タイミングが、データフレームＦ４の受信タイミングから２２ｍｓ〜２８ｍｓの範囲Ｔ２内であるか否かを検査して、範囲Ｔ２内なのでデータフレームＦ５を適正と判定し、次に受信するＩＤが０ｘ１００のデータフレームＦ６については、範囲Ｔ２外であるため不正と判定する。
【００９１】
以降も同様に、不正検知ＥＣＵ１００は、ＩＤが０ｘ２００のデータフレームＦ７の受信タイミングからの受信間隔に基づいて、範囲Ｔ３内に受信したＩＤが０ｘ１００のデータフレームＦ８を適正と判定し、範囲Ｔ３外に受信したＩＤが０ｘ１００のデータフレームＦ９を不正と判定する。
【００９２】
［１．１０  不正検知ＥＣＵ１００による不正検知処理］
以下、不正検知ＥＣＵ１００が、不正検知処理としてデータフレームの受信に際して行う処理について図１０のフローチャートに即して説明する。
【００９３】
不正検知ＥＣＵ１００は、バス３００からデータフレームを受信する（ステップＳ１１０１）。
【００９４】
不正検知ＥＣＵ１００は、ルール保持部１５４が保持するルール情報に基づき、受信したデータフレームのＩＤが０ｘ１００であるか否かを確認し（ステップＳ１１０２）、受信したデータフレームのＩＤが０ｘ１００でない場合には０ｘ２００であるか否かを確認する（ステップＳ１１０３）。
【００９５】
ステップＳ１１０３でＩＤが０ｘ２００であると確認した場合には、不正検知ＥＣＵ１００は、タイマ保持部１５５を参照して現在タイミングを得て、受信タイミング保持部１５６に格納されている、ＩＤが０ｘ２００に関するデータフレームの受信タイミングを示す受信タイミング情報を、現在タイミングを示すように更新して（ステップＳ１１０４）、処理を終了する。
【００９６】
ステップＳ１１０３でＩＤが０ｘ２００でないと確認した場合には、不正検知ＥＣＵ１００は、１つのデータフレームの受信に対応する処理を終える。
【００９７】
不正検知ＥＣＵ１００は、ステップＳ１１０１で受信したデータフレームのＩＤが０ｘ１００である場合には（ステップＳ１１０２）、その受信タイミングが、ＩＤが０ｘ２００のデータフレームの受信から２２ｍｓ〜２８ｍｓ経過後の範囲内であるか否かを判別する（ステップＳ１１０５）。即ち、不正検知ＥＣＵ１００は、タイマ保持部１５５の参照による現在タイミングが、受信タイミング保持部１５６に格納されている受信タイミング情報が示す、ＩＤが０ｘ２００のデータフレーム（基準データフレーム）の受信タイミングと、ルール情報が示すＩＤが０ｘ２００のデータフレームとの受信間隔（２５ｍｓ）を加算したタイミングに、マージン（３ｍｓ）を減算した値からマージンを加算した値までの範囲内であるかを検査する。ＩＤが０ｘ１００のデータフレーム（対象データフレーム）の受信タイミングが、基準データフレームの受信タイミングに基づくその範囲内に収まっていなければ、不正検知ＥＣＵ１００は、その対象データフレームを不正であると判定して、１つのデータフレームの受信に対応する処理を終える（ステップＳ１１０６）。
【００９８】
ステップＳ１１０５で、ＩＤが０ｘ１００の対象データフレームの受信タイミングが、基準データフレームの受信タイミングに基づき規定の受信間隔及びマージンで定まる範囲内に収まっていれば、不正検知ＥＣＵ１００は、対象データフレームは適正であると判定する。即ち、不正検知ＥＣＵ１００は、受信間隔の適正範囲を規定した不正検知ルールに適合する場合に対象データフレームは適正であり、適合しない場合に不正であると判定する。そして、不正検知ＥＣＵ１００は、タイマ保持部１５５を参照して、受信タイミング保持部１５６に格納されている、ＩＤが０ｘ１００のデータフレームの受信タイミングを示す受信タイミング情報を、現在タイミングを示すように更新して（ステップＳ１１０７）、１つのデータフレームの受信に対応する処理を終える。
【００９９】
図１０では、主にＩＤが０ｘ１００のデータフレームを対象として不正検知を行う例を示しているが、不正検知ＥＣＵ１００は、不正検知処理として、他のＩＤのデータフレームを対象とした不正検知も行い得る。なお、ステップＳ１１０７で更新された、ＩＤが０ｘ１００のデータフレームの受信タイミングを示す受信タイミング情報は、例えば、図１０の例以外における不正検知（例えばＩＤが０ｘ１００のデータフレーム同士の受信間隔に係る検査或いはその他のＩＤのデータフレームの検査）に基準として用いるために利用され得る。
【０１００】
このように不正検知ＥＣＵ１００による不正検知処理は、バス３００上で送信されたデータフレームを受信する受信ステップ（ステップＳ１１０１）を含む。また不正検知処理は、第１識別子（例えば０ｘ１００というＩＤ）を有するデータフレームである対象データフレームの不正検知として、その第１識別子と異なる第２識別子（例えば０ｘ２００というＩＤ）を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルール（つまりルール情報が示す不正検知ルール）に基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価（不正か否かの判別等）を行う検知ステップ（例えばステップＳ１１０２、Ｓ１１０５、Ｓ１１０６等）を含む。また、不正検知処理は、検知ステップでの評価の結果を記憶媒体に記録する記録ステップを含み得る。
【０１０１】
［１．１１  実施の形態１の効果］
実施の形態１に係る車載ネットワークシステム１０では、不正検知ＥＣＵ１００が、データフレームの不正に関する評価（不正か否かの判別等）の対象とするデータフレームと、そのデータフレームとは異なるＩＤ（メッセージＩＤ）を有するデータフレームとの受信間隔に基づいて、その評価を行う。
【０１０２】
これにより、攻撃者（バス３００にアクセスする不正ＥＣＵ等）による不正なデータフレームの送信が検知され得る。
【０１０３】
ところで例えば、自動駐車ＥＣＵ２００ａが周期的に送信するＩＤが０ｘ１００の正規なデータフレームについての受信間隔（同じＩＤのデータフレーム同士の間の受信間隔）に基づいてデータフレームの不正に関する評価を行う場合には、攻撃者によるＩＤが０ｘ１００の不正なデータフレームの送信の結果として、正規なデータフレームが不正と判定され得る。例えば、データフレームが適正と判定される時間帯（受信間隔に基づく範囲）に複数のデータフレームが受信された場合に、その複数のうちに攻撃者が送信した不正なデータフレームが存在してその攻撃者により送信されたデータフレームが次回の受信間隔に基づく評価の基準となり得るからである。
【０１０４】
これに対し、車載ネットワークシステム１０においては、ＩＤが０ｘ２００のデータフレーム（基準データフレーム）からの受信間隔によってＩＤが０ｘ１００のデータフレームの不正に関する評価を行うので、正規なデータフレームが不正と判定される可能性が低減されている。例えば、不正な攻撃の対象でない可能性の高いと推定されるデータフレームが、受信間隔の基準となる基準データフレームとして定められることが有用である。また、あるＩＤの対象データフレームの不正に関する評価を行うために、複数の不正検知ルールを設けて、複数の基準データフレームそれぞれと対象データフレームとの各受信間隔に基づいて、総合的に評価（不正か否かの判別等）すると、対象データフレームの不正に関する評価をより精度良く行える可能性がある。
【０１０５】
（実施の形態２）
以下、実施の形態１で示した車載ネットワークシステム１０を一部変形してなる車載ネットワークシステム１１について説明する。
【０１０６】
本実施の形態に係る車載ネットワークシステム１１は、不正検知の対象のデータフレームに対する受信間隔の基準となるデータフレームを切り替える不正検知方法を用いる。車載ネットワークシステム１１における不正検知ＥＣＵ２１００は、まず、同一のＩＤを有するデータフレーム同士の受信間隔を基にして不正か否かの判別を行い、不正と判定すると、不正が検知されていない、別のＩＤを有するデータフレームを基準として受信間隔を基にして不正か否かの判別を行う。
【０１０７】
［２．１  車載ネットワークシステム１１の全体構成］
図１１は、本実施の形態に係る車載ネットワークシステム１１の全体構成を示す図である。
【０１０８】
車載ネットワークシステム１１は、図１１に示すように、バス３００と、不正検知ＥＣＵ２１００、各種機器に接続されたＥＣＵ（自動駐車ＥＣＵ）２００ａ、ＥＣＵ（パワステＥＣＵ）２００ｂ、ＥＣＵ（ギアＥＣＵ）２００ｃ、ＥＣＵ（車速ＥＣＵ）２２００ｄ等の各ＥＣＵといったバスに接続された各ノードとを含んで構成される。本実施の形態において、実施の形態１と同様の機能を有する構成要素については、同じ符号を付して説明を省略する。また、車載ネットワークシステム１１は、本実施の形態で特に示さない点については車載ネットワークシステム１０と同様である。
【０１０９】
車速ＥＣＵ２２００ｄは、バス３００と接続され、車速センサ２２５０に接続されている。車速ＥＣＵ２２００ｄは、自動駐車ＥＣＵ２００ａと同様の構成を備える（図７参照）。但し、車速ＥＣＵ２２００ｄにおける外部機器入出力部２５４は、車速センサ２２５０から通知される信号を基にして、車の現在の速度を通知するデータフレームを生成するようにフレーム生成部２５３に通知する。これにより、車速ＥＣＵ２２００ｄは、車両の現在の速度を通知するデータフレームを、周期的にバス３００に送信することになる。
【０１１０】
不正検知ＥＣＵ２１００は、バス３００に接続される一種のＥＣＵであり、バス３００上に流れるデータフレームを監視して、不正なデータフレームが流れているか否かを判別するための不正検知処理を行う機能を有する。
【０１１１】
［２．２  不正検知ＥＣＵ２１００の構成］
図１２は、不正検知ＥＣＵ２１００の構成図である。不正検知ＥＣＵ２１００はトランシーバ部１３０と、コントローラ部１４０と、マイコン部２１５０とを含んで構成される。実施の形態１と同様の機能を有する構成要素は、同じ符号を付して説明を省略する。
【０１１２】
マイコン部２１５０は、コントローラ部１４０と信号の授受を行う、プログラムを実行するプロセッサ及びメモリを含む半導体集積回路である。マイコン部２１５０は、プログラムを実行するプロセッサ、メモリ等により実現される構成要素として、コントローラ通信部１５１と、フレーム生成部１５３と、不正検知処理部２１５２と、ルール保持部２１５４と、タイマ保持部１５５と、受信状態保持部２１５６とを有する。
【０１１３】
コントローラ通信部１５１は、コントローラ部１４０から受信したデータフレームを、不正検知処理部２１５２へ通知する。
【０１１４】
不正検知処理部２１５２は、コントローラ通信部１５１から通知されたデータフレームについて不正検知処理を行う。不正検知処理部２１５２は、この不正検知処理においてルール保持部２１５４に格納されている不正検知ルールを示すルール情報と、タイマ保持部１５５に格納されている現在タイミングの情報と、受信状態保持部２１５６に格納されている、データフレームの過去の受信状態等を示す受信状態情報とを参照して、現在受信したデータフレームが不正であるか否かを判別する。
【０１１５】
不正検知処理部２１５２は、不正検知処理として、受信中のデータフレームのＩＤ（メッセージＩＤ）が、ルール保持部１５４のルール情報で不正検知ルールの対象として定められている場合に、その受信タイミングが、受信間隔の基準となるデータフレームの受信タイミングからの受信間隔及びマージンで定まる範囲内であるか否かを判別する検査を行う。受信したデータフレームの受信タイミングが、ルール情報が示す受信間隔及びマージンに基づく範囲内であれば、適正であり、この範囲外であれば不正となる。この範囲は、受信に係る適正時間帯であり、受信適正時間帯と称する。なお、受信したデータフレームが不正であると判定した場合には、不正検知処理部２１５２は、不正の発生を各ＥＣＵに通知するために、フレーム生成部１５３に、その不正なデータフレームに関する情報を通知し得る。不正検知処理部２１５２は、不正なデータフレームを検知した場合に、データフレームのＩＤ毎に不正が検知された累積回数をカウントして記録し、各ＩＤのデータフレームについての総合的な不正の判断等に用いることとしても良い。また不正検知処理部２１５２は、記録媒体（記憶媒体）等に、不正なデータフレームに関するログ情報（例えば不正なデータフレームのＩＤその他の内容、受信日時等）を記録することとしても良いし、不正を報知するための制御（表示、車両外部に所在するサーバ装置への情報送信等）を行っても良い。
【０１１６】
ルール保持部２１５４は、不正検知処理部２１５２が参照する、データフレーム間の通信間隔（受信間隔）の規則（ルール）である不正検知ルールを示すルール情報（図１３参照）を保持する。不正検知処理部２１５２では、この不正検知ルールに基づいて、受信適正時間帯を特定して、不正検知対象となるデータフレームがその受信適正時間帯の範囲内か否かによりそのデータフレームが不正か否かを判別する。不正検知処理部２１５２は、受信適正時間帯の特定を、受信状態保持部２１５６に格納されている受信状態情報を参照して行う。
【０１１７】
受信状態保持部２１５６は、受信状態情報（図１４参照）を保持する。即ち、受信状態保持部２１５６は、データフレームのＩＤ毎に過去に受信したデータフレームの受信タイミングを保持する。また、受信状態保持部２１５６は、不正検知処理のために、ルール保持部２１５４に格納されている受信間隔に係る不正検知ルールを満たすようなデータフレーム（受信適正時間帯内に受信したデータフレーム）を受信したタイミングについて、タイマ保持部１５５を参照して現在タイミングを取得して、次回受信タイミング候補として一時的に保持する。また、受信状態保持部２１５６は、データフレームのＩＤ毎に、不正が発生したか否かを示す不正発生状態を保持する。例えば、受信適正時間帯の終期が経過する度に次回受信タイミング候補を、候補がない状態に設定すると、次回受信タイミング候補としてタイミング値が既に保持されている受信適正時間帯内において複数のデータフレームを受信した場合に不正が発生したと判別して、不正発生状態を更新し得る。また、受信状態保持部２１５６は、基準としたデータフレームのＩＤ毎に、基準のデータフレームからの前回の受信間隔についての情報も保持する。受信状態保持部２１５６が保持する受信状態情報は、不正検知処理部２１５２から参照又は更新され、現在受信したデータフレームが不正であるか否かの判別に用いられる。
【０１１８】
［２．３  不正検知ルール］
図１３は、ルール保持部２１５４が保持する、不正検知ルールを示すルール情報の一例を示す図である。同図の例は、実施の形態１で図５により示したルール情報が１つの受信間隔を示したのに対して、複数のＩＤそれぞれを有するデータフレーム相互間について規定された受信間隔とマージンとを示している。
【０１１９】
図１３のルール情報は、例えば、ＩＤが０ｘ１００であるデータフレームについては、ＩＤが０ｘ１００のデータフレームとの受信間隔が５０ｍｓであること、つまり同じＩＤのデータフレーム同士の受信間隔が５０ｍｓであることを示している。このＩＤが０ｘ１００のデータフレーム同士では、直前のデータフレームの受信タイミングに受信間隔（５０ｍｓ）を加算してマージンの値を減算した４７ｍｓから、マージンの値を加算した５３ｍｓまでを受信適正時間帯とすることになる。この受信適正時間帯にデータフレームを受信すれば、受信したデータフレームは基本的に適正と判定される。但し、その受信適正時間帯内に複数のデータフレームを受信した場合には、不正なデータフレームが送信されたと判定されることになる。
【０１２０】
また、図１３のルール情報は、ＩＤが０ｘ１００であるデータフレームを不正検知の対象（対象データフレーム）としたときに、ＩＤが０ｘ２００のデータフレームを基準データフレームとして、基準データフレームの受信から、対象データフレームを受信するまでの受信間隔が２５ｍｓであることを示している。同様に、ＩＤが０ｘ２００の基準データフレームを受信してから、２２ｍｓ〜２８ｍｓの間が、ＩＤが０ｘ１００の対象データフレームについての受信適正時間帯となる。
【０１２１】
また、図１３のルール情報は、ＩＤが０ｘ１００であるデータフレームを不正検知の対象（対象データフレーム）としたときに、ＩＤが０ｘ３００のデータフレームを基準データフレームとして、基準データフレームの受信から、対象データフレームを受信するまでの受信間隔が、前回の受信間隔より２ｍｓ加算した値となることを、「＋２」の表記で、表している。つまり、受信間隔が受信の都度変化し、この例では、前回の受信間隔に２ｍｓを加算した結果がその次の受信間隔として定まる。例えば、ＩＤが０ｘ３００のデータフレームを受信してから、ＩＤが０ｘ１００のデータフレームを受信するまでの間隔が、１０ｍｓであった場合に、次のＩＤが０ｘ１００のデータフレームの受信適正時間帯は、ＩＤが０ｘ３００のデータフレームの受信タイミングから、１０ｍｓに２ｍｓ加算してなる１２ｍｓにプラスマイナス３ｍｓのマージンを含んだ９ｍｓ〜１５ｍｓ経過後と計算される。この計算される９ｍｓ〜１５ｍｓという受信間隔の範囲が、０より小さくなるか、基準となるデータフレーム同士について規定された間隔（図１３に示すようにＩＤが０ｘ３００のデータフレームについては４８ｍｓ）よりも大きくなった場合は、受信間隔の範囲を、０〜その規定された受信間隔までの値の間に収まるように正規化する。この正規化により、ＩＤが０ｘ１００のデータフレームの直前に受信された基準となるデータフレームに対する受信間隔となるように調整される。例えば、ＩＤが０ｘ１００のデータフレームの不正検知のために、ＩＤが０ｘ３００のデータフレームを基準データフレームとして受信間隔を検査するときにおいては、前回の受信間隔が４７ｍｓであったとき、その次の受信間隔は４７ｍｓに２ｍｓを加えた、４９ｍｓであるが、これは、ＩＤが０ｘ３００のデータフレーム同士の間隔である４８ｍｓを超えてしまっている。そのため、次の受信間隔は、４９から４８を引いた、１ｍｓとする。これにマージンのプラスマイナス３ｍｓの範囲が許容されるため、最終的な受信適正時間帯は、０ｘ３００のデータフレームの受信タイミングから、０〜４ｍｓ経過後の範囲と４６ｍｓ〜４８ｍｓ経過後の範囲とになる。
【０１２２】
ＩＤが０ｘ２００のデータフレーム、ＩＤが０ｘ３００のデータフレームのそれぞれを不正検知の対象としたときの、不正検知に用いられる受信間隔とマージンとについても、同様にルール情報により規定されている。
【０１２３】
［２．４  受信状態情報］
図１４は、受信状態保持部２１５６に格納される、受信状態情報の一例を示す図である。この受信状態情報は、データフレームのＩＤ毎に、不正検知ＥＣＵ２１００が過去に受信したデータフレームについての受信タイミング等を記録したものである。
【０１２４】
図１４の例は、ＩＤが０ｘ１００であるデータフレームについて、前回の受信タイミングは１５１ｍｓであり、次回受信タイミング候補は２０１ｍｓであり、受信適正時間帯に複数のデータフレームを受信した等により不正が発生した状態（つまり不正発生状態が「不正あり」）であることを示している。また、図１４の例は、前回受信間隔として、ＩＤが０ｘ１００のデータフレーム同士の受信間隔が５１ｍｓで、ＩＤが０ｘ２００のデータフレームとＩＤが０ｘ１００のデータフレームとの受信間隔が２５ｍｓ、ＩＤが０ｘ３００のデータフレームとＩＤが０ｘ１００のデータフレームとの受信間隔が１０ｍｓであったことを示している。
【０１２５】
ＩＤが０ｘ２００のデータフレームとＩＤが０ｘ３００のデータフレームとに関しても同様に、受信タイミングと、次回受信タイミング候補と、不正発生状態と、前回受信間隔とが保持されている。次回受信タイミング候補が「なし」の状態であるということは、現状では、受信適正時間帯に、該当するＩＤのデータフレームを受信していないことを示す。また、不正検知処理部２１５２は、受信適正時間帯を過ぎると、受信状態情報の次回受信タイミング候補の値で受信タイミングを更新してから、次回受信タイミング候補を「なし」を示すように更新する。
【０１２６】
［２．５  データフレーム例］
図１５は、車速ＥＣＵ２２００ｄが送信するデータフレームについてのＩＤ（メッセージＩＤ）及びデータフィールド（データ）の一例を示す図である。
【０１２７】
同図に示すように、車速ＥＣＵ２２００ｄが送信するデータフレームのメッセージＩＤは「０ｘ３００」であり、ＤＬＣは「１」（１バイト）である。データフィールドには、車速を示す値が含まれ、図１５の例は、車速が１６（０ｘ１０）ｋｍ／ｈであることを示している。
【０１２８】
［２．６  不正検知ＥＣＵ２１００のデータフレームの不正検知の動作例１］
図１６は、バス３００に逐次現れるデータフレームを不正検知ＥＣＵ２１００が受信して不正検知を行う例を示す図である。
【０１２９】
図１６では、自動駐車ＥＣＵ２００ａが周期的に送信する、ＩＤが０ｘ１００のデータフレームＦ１１、Ｆ１３、Ｆ１６、Ｆ１９と、ギアＥＣＵ２００ｃが周期的に送信する、ＩＤが０ｘ２００のデータフレームＦ１２、Ｆ１５、Ｆ１８とがバス３００へ逐次現れる様子を表している。また、図１６では、バス３００にアクセス可能な攻撃者（不正ＥＣＵ）が、バス３００にＩＤが０ｘ１００の不正なデータフレームＦ１４、Ｆ１７、Ｆ２０を周期的に送信して、ハンドル２２０の不正制御を試みている状況を表している。この例では、不正検知ＥＣＵ２１００は不正検知（検査）として、ＩＤが０ｘ１００のデータフレームについて不正に関する評価（具体的には不正か否かの判別）を行う。図１６では、不正検知ＥＣＵ２１００が、ＩＤが０ｘ１００のデータフレームの不正に関する評価を行う際に、不正の発生状況（不正発生状態）に応じて、受信間隔の基準とするデータフレームを不正が発生していないＩＤを有するデータフレームに切り替える例を示している。なお、図１６では示さないが、不正検知ＥＣＵ２１００は、ＩＤが０ｘ１００以外のデータフレームを対象とした不正検知（不正に関する評価）を行い得る。前提として、受信状態保持部２１５６が保持する受信状態情報は、最初に、各ＩＤに対応した不正発生状態が「不正なし」となっているものとして説明する。
【０１３０】
不正検知ＥＣＵ２１００は、不正検知の対象とするＩＤが０ｘ１００のデータフレームに関して、まず不正が発生していない状況（つまり受信状態情報の各ＩＤについての不正発生状態が「不正なし」の状態）では対象と同じＩＤ（０ｘ１００）のデータフレームの受信タイミングを基準とした受信間隔を基に、不正を検知する。なお、この例では、基準とするデータフレームのＩＤを選択する順序は、０ｘ１００、０ｘ２００、０ｘ３００の順とする。
【０１３１】
不正検知ＥＣＵ２１００は、ＩＤが０ｘ１００のデータフレームＦ１１を受信したタイミングを、受信状態情報における受信タイミングとして、保持する。
【０１３２】
次に、不正検知ＥＣＵ２１００は、自動駐車ＥＣＵ２００ａが送信した、２回目のＩＤが０ｘ１００のデータフレームＦ１３を受信する。不正検知ＥＣＵ２１００は、ルール情報が示す不正検知ルール（図１３参照）に基づいて、ＩＤが０ｘ１００のデータフレームＦ１１の受信のタイミングから、４７ｍｓ〜５３ｍｓ経過した範囲を受信適正時間帯Ｔ１１として特定し、データフレームＦ１３の受信タイミングは、受信適正時間帯Ｔ１１の範囲内であるので、データフレームＦ１３は適正（不正でない）と判定する。
【０１３３】
このとき、３回目のＩＤが０ｘ１００のデータフレームＦ１４が攻撃者により送信される。このデータフレームＦ１４の受信タイミングは、受信適正時間帯Ｔ１１の範囲内であるので一応適正である。しかし、不正検知ＥＣＵ２１００は、受信適正時間帯Ｔ１１の範囲内に、同じ０ｘ１００というＩＤを有するデータフレームＦ１３を既に受信していることから、データフレームＦ１３及びデータフレームＦ１４のいずれかが不正であるので、０ｘ１００というＩＤを有するデータフレームについて不正が発生したと判定し、受信状態保持部２１５６が保持する受信状態情報におけるＩＤが０ｘ１００のデータフレームの不正発生状態を「不正あり」に更新する。これ以後は、不正検知ＥＣＵ２１００は、基準とするデータフレームとして、ＩＤが０ｘ１００の代わりに、次の順序の、ＩＤが０ｘ２００のデータフレームを選択する。これにより、不正な可能性のある０ｘ１００というＩＤを有するデータフレームを基準として受信適正時間帯を定めなくなり、データフレームを不正と誤検知する可能性が低減される。
【０１３４】
不正検知ＥＣＵ２１００は、ＩＤが０ｘ２００のデータフレームＦ１５を受信したタイミングを、受信状態情報における受信タイミングとして、保持する。
【０１３５】
次に、不正検知ＥＣＵ２１００は、自動駐車ＥＣＵ２００ａが送信した、４回目のＩＤが０ｘ１００のデータフレームＦ１６を受信する。不正検知ＥＣＵ２１００は、不正検知ルール（図１３参照）に基づいて、ＩＤが０ｘ２００のデータフレームＦ１５の受信のタイミングから、２２ｍｓ〜２８ｍｓ経過した範囲を受信適正時間帯Ｔ１２として特定し、データフレームＦ１６の受信タイミングは、受信適正時間帯Ｔ１２の範囲内であるので、データフレームＦ１６は適正と判定する。
【０１３６】
次に、不正検知ＥＣＵ２１００は、攻撃者が送信した、５回目のＩＤが０ｘ１００のデータフレームＦ１７を受信する。不正検知ＥＣＵ２１００は、このデータフレームＦ１７の受信タイミングは、受信適正時間帯Ｔ１２の範囲外であるので、データフレームＦ１７は不正であると判定する。
【０１３７】
以降同様に、不正検知ＥＣＵ２１００は、ＩＤが０ｘ２００のデータフレームＦ１８の受信タイミングを基準として受信適正時間帯Ｔ１３を特定して、自動駐車ＥＣＵ２００ａが送信した、受信適正時間帯Ｔ１３内に受信したデータフレームＦ１９を適正と判定し、攻撃者が送信した、受信適正時間帯Ｔ１３外に受信したデータフレームＦ２０を、不正と判定する。
【０１３８】
［２．７  不正検知ＥＣＵ２１００のデータフレームの不正検知の動作例２］
図１７は、バス３００に逐次現れるデータフレームを不正検知ＥＣＵ２１００が受信して不正検知を行う別の例を示す図である。
【０１３９】
図１７では、自動駐車ＥＣＵ２００ａが周期的に送信する、ＩＤが０ｘ１００のデータフレームＦ２１、Ｆ２６、Ｆ３１、Ｆ３６と、ギアＥＣＵ２００ｃが周期的に送信する、ＩＤが０ｘ２００のデータフレームＦ２４、Ｆ２９、Ｆ３４と、車速ＥＣＵ２２００ｄが周期的に送信する、ＩＤが０ｘ３００のデータフレームＦ２３、Ｆ２８、Ｆ３２、Ｆ３７とがバス３００へ逐次現れる様子を表している。また、図１７では、バス３００にアクセス可能な攻撃者（不正ＥＣＵ）が、バス３００にＩＤが０ｘ１００の不正なデータフレームＦ２２、Ｆ２７、Ｆ３３、Ｆ３８と、ＩＤが０ｘ２００の不正なデータフレームＦ２５、Ｆ３０、Ｆ３５とを送信して、ハンドル２２０等の不正制御を試みている状況を表している。この例では、不正検知ＥＣＵ２１００は不正検知として、ＩＤが０ｘ１００のデータフレームについて不正に関する評価（具体的には不正か否かの判別）を行う。図１７では、不正検知ＥＣＵ２１００が、ＩＤが０ｘ１００のデータフレームの不正に関する評価を行う際に、不正の発生状況に応じて、受信間隔の基準とするデータフレームを不正が発生していないＩＤを有するデータフレームに切り替える例を示している。なお、図１７では示さないが、不正検知ＥＣＵ２１００は、ＩＤが０ｘ１００以外のデータフレームを対象とした不正検知を行い得る。
【０１４０】
前提として、受信状態保持部２１５６が保持する受信状態情報は、最初に、各ＩＤに対応した不正発生状態が「不正なし」となっているものとして説明する。
【０１４１】
不正検知ＥＣＵ２１００は、１回目及び２回目のＩＤが０ｘ１００であるデータフレームＦ２１、Ｆ２２を受信した時に、ＩＤが０ｘ１００のデータフレームに関して、受信適正時間帯に複数のデータフレームを受信して不正が発生していると判定し、受信状態保持部２１５６が保持する受信状態情報におけるＩＤが０ｘ１００のデータフレームの不正発生状態を「不正あり」に更新する。これにより、以降、受信間隔に係る受信適正時間帯を定めるための基準とするデータフレームとして、ＩＤが０ｘ１００のデータフレームは用いられなくなる。この例では、基準とするデータフレームのＩＤを選択する順序は、０ｘ１００、０ｘ２００、０ｘ３００の順とする。また更に、不正検知ＥＣＵ２１００は、１回目及び２回目のＩＤが０ｘ２００であるデータフレームＦ２４、Ｆ２５を受信した時に、ＩＤが０ｘ２００のデータフレームに関して、受信適正時間帯に複数のデータフレームを受信して不正が発生していると判定し、受信状態保持部２１５６が保持する受信状態情報におけるＩＤが０ｘ２００のデータフレームの不正発生状態を「不正あり」に更新する。これにより、以降、受信間隔に係る受信適正時間帯を定めるための基準とするデータフレームとして、ＩＤが０ｘ２００のデータフレームは用いられなくなり、次にはＩＤが０ｘ３００のデータフレームが基準として選択されることとなる。
【０１４２】
不正検知ＥＣＵ２１００は、ＩＤが０ｘ３００のデータフレームＦ２３を基準としてその受信タイミングに基づいて受信適正時間帯Ｔ２１を特定して、３回目のＩＤが０ｘ１００であるデータフレームＦ２６について、受信適正時間帯Ｔ２１内に受信したか否かで、不正か否かを判別する。データフレームＦ２６は受信適正時間帯Ｔ２１内に受信されたので適正と判定される。
【０１４３】
以降同様に、不正検知ＥＣＵ２１００は、ＩＤが０ｘ３００のデータフレームＦ２８を基準としてその受信タイミングに基づいて受信適正時間帯Ｔ２２を特定して、ＩＤが０ｘ１００であるデータフレームＦ３１について、受信適正時間帯Ｔ２２内に受信したので適正と判定し、データフレームＦ３３について受信適正時間帯Ｔ２２外に受信したので不正と判定する。また、不正検知ＥＣＵ２１００は、ＩＤが０ｘ３００のデータフレームＦ３２を基準としてその受信タイミングに基づいて受信適正時間帯Ｔ２３を特定して、ＩＤが０ｘ１００であるデータフレームＦ３６について、受信適正時間帯Ｔ２３内に受信したので適正と判定し、データフレームＦ３８について受信適正時間帯Ｔ２３外に受信したので不正と判定する。なお、不正検知ルール（図１３参照）に基づいて、受信適正時間帯を特定するための基準となる、ＩＤが０ｘ３００のデータフレームＦ２３、Ｆ２８、Ｆ３２と、不正検知の対象であるＩＤが０ｘ１００のデータフレームとの受信間隔は、ＩＤが０ｘ１００のデータフレームの受信の都度変化（３６ｍｓから２ｍｓずつ増加）している。
【０１４４】
［２．８  不正検知ＥＣＵ２１００による不正検知処理］
以下、不正検知ＥＣＵ２１００が、不正検知処理としてデータフレームの受信に際して行う処理について図１８のフローチャートに即して説明する。
【０１４５】
不正検知ＥＣＵ２１００は、バス３００からデータフレームを受信する（ステップＳ２１０１）。
【０１４６】
不正検知ＥＣＵ２１００は、ルール保持部２１５４が保持するルール情報（図１３参照）に基づき、受信したデータフレームのＩＤに関連する不正検知ルールが規定されているかについて確認し（ステップＳ２１０２）、受信したデータフレームのＩＤに関連する不正検知ルールが規定されていない場合は、１つのデータフレームの受信に対応する処理を終える。
【０１４７】
ステップＳ２１０２で、受信したデータフレームのＩＤに関連する不正検知ルールが規定されていると確認した場合には、不正検知ＥＣＵ２１００は、受信状態情報（図１４参照）における受信タイミング及び次回受信タイミング候補の更新を行う（ステップＳ２１０３）。ステップＳ２１０３では、具体的には、受信状態情報における次回受信タイミング候補が「なし」でない全てのＩＤのうち、タイマ保持部１５５から得た現在タイミングが、そのＩＤに対応する受信適正時間帯の終期を経過しているＩＤについて、不正検知ＥＣＵ２１００は、次回受信タイミング候補の値を、受信状態情報における受信タイミングに設定し（つまり次回受信タイミング候補の値で受信タイミングを更新し）、「なし」を示すように次回受信タイミング候補を更新する。また、ステップＳ２１０３では、受信状態情報における次回受信タイミング候補が「なし」でない全てのＩＤのうち、タイマ保持部１５５から得た現在タイミングが、そのＩＤに対応する受信適正時間帯の終期を経過しているＩＤが存在しなければ、何もしない。
【０１４８】
ステップＳ２１０３に続いて、不正検知ＥＣＵ２１００は、受信適正時間帯を特定するための基準となるデータフレームのＩＤとして、まだ不正が発生していないＩＤ（受信状態情報の不正発生状態が「不正なし」であるＩＤ）を選択する（ステップＳ２１０４）。この選択は、例えば、ルール情報（図１３参照）が示す不正検知ルールに係るデータフレームのＩＤの値の小さい順という選択基準（選択順等）に基づいて行われ、この場合には、ＩＤは０ｘ１００、０ｘ２００、０ｘ３００の順に選択され得る。
【０１４９】
不正検知ＥＣＵ２１００は、受信状態保持部２１５６が保持する受信状態情報を参照することで、選択したＩＤを有するデータフレームの受信タイミングを取得する。そして不正検知ＥＣＵ２１００は、ルール保持部２１５４が保持するルール情報が示す不正検知ルールを参照し、選択したＩＤを有する基準となるデータフレームの受信タイミングと受信したデータフレームのＩＤとにより定められた受信間隔及びマージンに応じた計算により受信適正時間帯を特定する（ステップＳ２１０５）。
【０１５０】
続いて、不正検知ＥＣＵ２１００は、データフレームを受信したタイミング（つまりタイマ保持部１５５から得た現在タイミング）が、受信適正時間帯の範囲内であるかを判別する。データフレームを受信したタイミングが受信適正時間帯の範囲内でない場合には、不正検知ＥＣＵ２１００は、受信したデータフレームを不正と判定し（ステップＳ２１０７）、受信状態情報における、そのデータフレームのＩＤについての不正発生状態を「不正あり」を示すように更新して（ステップＳ２１０８）、処理を終える。
【０１５１】
ステップＳ２１０６で、データフレームを受信したタイミングが受信適正時間帯の範囲内であると判定した場合には、不正検知ＥＣＵ２１００は、受信状態情報における、受信したデータフレームのＩＤに対応する、次回受信タイミング候補が「なし」であるか否かを確認する（ステップＳ２１０９）。次回受信タイミング候補が「なし」でない場合には、不正検知ＥＣＵ２１００は、受信したデータフレームのＩＤについて不正と判定し（ステップＳ２１０７）、受信状態情報における、そのデータフレームのＩＤについての不正発生状態を「不正あり」を示すように更新して（ステップＳ２１０８）、処理を終える。次回受信タイミング候補が「なし」でない場合においては、受信したデータフレーム或いはその直前に受信したデータフレームのいずれかが不正である。なお、データフレームについての不正か否かの判定において、個別のデータフレームの不正の発生と、同じＩＤの１以上のデータフレームにおける不正の発生とを区別しても良いし、区別しなくても良い。しかし、いずれの場合であっても、不正検知ＥＣＵ２１００は、受信状態情報における不正発生状態が「不正あり」を示すように更新し、その不正に係るデータフレームのＩＤと同じＩＤのデータフレームを受信適正時間帯の特定のための基準としないようにする。
【０１５２】
ステップＳ２１０９で、受信状態情報における、受信したデータフレームのＩＤに対応する、次回受信タイミング候補が「なし」であると確認した場合には、不正検知ＥＣＵ２１００は、受信したデータフレームについて適正と判定して、受信状態情報における、そのデータフレームのＩＤについての次回受信タイミング候補に現在タイミングを設定して（ステップＳ２１１０）、処理を終える。つまりステップＳ２１１０では、不正検知ＥＣＵ２１００は、タイマ保持部１５５から得た現在タイミングで次回受信タイミング候補を更新し、１つのデータフレームの受信に対応する処理を終える。
【０１５３】
このように不正検知ＥＣＵ２１００による不正検知処理は、バス３００上で送信されたデータフレームを受信する受信ステップ（ステップＳ２１０１）を含む。また、不正検知処理は、第１識別子（例えば０ｘ１００というＩＤ）を有するデータフレームである対象データフレームの不正検知として、その対象データフレーム同士の受信タイミングの間隔に応じてその対象データフレームであるか否かを評価する初期検知ステップ（例えばステップＳ２１０２〜Ｓ２１０６）を含む。この初期検知ステップでは、対象データフレームの不正検知として、その対象データフレームの受信タイミングが、その受信タイミングに先行する対象データフレームの受信タイミングを基準として予め定められた適正時間帯外である場合、及び、その対象データフレームの受信タイミングが受信適正時間帯内でありかつ受信適正時間帯内のタイミングで別の対象データフレームが受信されていた場合には、不正であると評価する（ステップＳ２１０９、Ｓ２１０７、Ｓ２１０８）。そして、初期検知ステップで対象データフレームが不正であると評価された後に、初期検知ステップでの不正検知を停止して、受信適正時間帯の基準を切り替えた検知ステップで不正検知を開始する。この検知ステップでは、第１識別子と異なる第２識別子（例えば０ｘ２００というＩＤ）を有するデータフレームである基準データフレームと対象データフレームとの受信間隔を規定する所定ルール（つまりルール情報が示す不正検知ルール）に基づいて、基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価（不正か否かの判別等）を行う（例えばステップＳ２１０２〜Ｓ２１１０等）。また、不正検知処理は、基準データフレームの不正検知を行う基準検知ステップ（例えばステップＳ２１０６、Ｓ２１０９等）を含み、不正検知処理では、基準検知ステップで基準データフレームが不正と検知された場合には、検知ステップでの不正検知を停止して、後続検知ステップでの不正検知を開始する。この後続検知ステップでは、対象データフレームの不正検知として、第１識別子及び第２識別子と異なる第３識別子（例えば０ｘ３００というＩＤ）を有するデータフレームである別基準データフレームと対象データフレームとの受信間隔を規定するルール（不正検知ルール）に基づいて、別基準データフレームの受信タイミングと対象データフレームの受信タイミングとに応じて、評価を行う（例えばステップＳ２１０２〜Ｓ２１０７等）。また、不正検知処理は、検知ステップでの評価の結果を記憶媒体に記録する記録ステップを含み得る。
【０１５４】
［２．９  実施の形態２の効果］
実施の形態２に係る車載ネットワークシステム１１では、不正検知ＥＣＵ２１００が、データフレームの不正に関する評価（不正か否かの判別等）の対象とするデータフレームと、不正の発生がまだ検知されていない、基準となるデータフレームとの受信間隔に基づいて、その評価を行う。そして、基準となるデータフレームについて不正が発生した後には、別のデータフレームを選択して基準として用いる。即ち、不正検知ＥＣＵ２１００は、不正が発生していないデータフレームと、不正検知の対象となるデータフレームとの受信間隔に基づいて、データフレームの不正に係る判定等を行う。
【０１５５】
これにより、攻撃者（バス３００にアクセスする不正ＥＣＵ等）による不正なデータフレームの送信が検知され得るし、正規なデータフレームが不正と判定される可能性が低減されている。
【０１５６】
（他の実施の形態）
以上のように、本発明に係る技術の例示として実施の形態１、２を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１５７】
（１）上記実施の形態では、不正検知処理部１５２、２１５２は、不正検知ＥＣＵ１００、２１００の構成要素として説明したが、その他のＥＣＵの構成要素としても良く、データフレームの不正検知（不正に関する評価等）をどのＥＣＵが行っても良い。
【０１５８】
（２）上記実施の形態では、ＣＡＮプロトコルにおけるデータフレームを標準ＩＤフォーマットで記述しているが、拡張ＩＤフォーマットで合っても良い。拡張ＩＤフォーマットの場合には、標準ＩＤフォーマットにおけるＩＤ位置のベースＩＤと、拡張ＩＤとを合わせて２９ビットで、データフレームのＩＤを表す。
【０１５９】
（３）上記実施の形態の不正検知ＥＣＵ１００、２１００は、データフレームについての不正検知を、データフレームの受信完了時に行っても、データフレームの受信中（具体的にはＩＤフィールドの受信後の任意の時点）に行っても良い。
【０１６０】
（４）上記実施の形態では、不正検知ＥＣＵ１００、２１００は、データフレームの受信タイミングを保持して、その受信タイミングからマージン付きの受信間隔が経過したことの確認を行ったが、必ずしもデータフレームの受信タイミングを保持していなくても良く、例えば、データフレームの受信時に受信間隔を、ダウンカウントするタイマにセットする等で、受信間隔の経過の確認を行うこととしても良い。
【０１６１】
（５）上記実施の形態では、不正検知ＥＣＵ１００、２１００が、データフレームが不正であることを検知した場合に、不正の発生を各ＥＣＵに通知すること、不正が検知された累積回数をカウントして記録すること、ログ情報を記録すること、不正を報知すること等を示したが、他にいかなる処理を行っても良い。例えば、データフレームの受信中に不正であることを検知した場合に、バス３００にエラーフレームを送信することで、不正なデータフレームを無効化し、各ＥＣＵに不正なデータフレームを正常に処理させないようにしても良い。
【０１６２】
（６）上記実施の形態では、不正検知の対象となるデータフレームについて不正に関する評価として、そのデータフレームが不正であるか否かという判別（つまり択一的な判定）を行う例を示したが、不正に関する評価は、判別に限られず、例えば、不正である確度（例えば確率）を算定することを内容とする評価を行っても良い。データフレームが不正である確度の算定は、例えば次の方法で実現できる。実施の形態２では、不正検知処理として、受信適正時間帯を求める基準となるデータフレーム（或いはそのデータフレームのＩＤ）を順に選択していたが、選択するのではなく、不正検知ルール（図１３参照）に含まれる全てのＩＤのデータフレームを基準としてそれぞれ受信適正時間帯を求める。そして、不正検知対象のデータフレームの受信タイミングを、全ての受信適正時間帯を重ね合わせた受信適正時間帯群と比較する。不正検知ＥＣＵでは、不正検知対象のデータフレームの受信タイミングが、受信適正時間帯群における受信適正時間帯の重複度合いの高い時刻ほど不正である確度が低く、重複度合いが低い又はいずれの受信適正時間帯でもない時刻ほど、不正である確度が高いと評価し得る。例えば、この評価は、複数のＩＤの各データフレームと不正検知対象のデータフレームとの受信間隔を規定するルール群としての不正検知ルール（図１３参照）と、その各データフレームの受信タイミングと、不正検知対象のデータフレームの受信タイミングに基づく所定演算により、不正の確度を算定する評価である。不正の確度を算定するための所定演算の内容は任意に定め得る。なお、不正の確度を閾値と比較することで不正であるか否かという択一的な判定を行うこととしても良い。また、データフレームが不正であるか否かという判別についても、不正検知ルール（図１３参照）に含まれる複数のＩＤのデータフレームを基準としてそれぞれ受信適正時間帯を求めて行っても良く、各受信適正時間帯に不正検知対象のデータフレームの受信タイミングが含まれるか否かの評価結果（つまりそのデータフレームが不正か否かの評価結果）を総合して、例えば多数決等により、最終的に不正検知対象のデータフレームが不正か否かを決定することとしても良い。なお、多数決の他、例えば、不正検知対象のデータフレームの受信タイミングがその複数の受信適正時間帯全てに含まれない場合に不正であると決定しても良い。
【０１６３】
（７）上記実施の形態では、不正検知処理において受信適正時間帯を特定するための基準となるデータフレーム（つまりデータフレームのＩＤ）の選択順として、ＩＤの値の小さい順を例示したが、この順序は他の方法で定めても良い。例えば、不正が発生していないＩＤの中から、ＩＤの値の大きい順に選択しても良い。また、ＩＤの値が不正検知対象のデータフレームのＩＤよりも大きいこと或いは小さいこと等の条件を付けて選択しても良い。また、ＩＤの値が、不正検知対象のデータフレームのＩＤの値に近い順に選択しても良い。また、基準となるデータフレーム同士について規定されている受信間隔が、不正検知対象のデータフレーム同士の受信間隔に近い順に選択しても良い。
【０１６４】
（８）上記実施の形態では、不正検知処理において受信適正時間帯を特定するための基準となるデータフレーム（つまりデータフレームのＩＤ）の選択順として、ＩＤの値の小さい順を例示したが、順序を付けなくても良い。例えば、ランダムにＩＤを選択しても良く、また、選択したＩＤを定期的に変更（例えばランダムに選択したＩＤに変更）しても良い。また、現在の車両（各ＥＣＵが搭載される車両）の状態に応じて、選択するＩＤを切り替えても良い。即ち、車両の状態毎に選択されるべきデータフレームのＩＤを予め定めた選択基準に基づいて、車両の状態が変化した際にＩＤの選択の切り替えを行っても良い。車両の状態は、停車状態、走行状態等である。車両に搭載されたセンサ、機器等で識別できる各種状態を、車両の状態として用い得る。例えば、イグニッションキーがイグニッションキーシリンダに差し込まれた状態、エンジンを始動した状態、ギアポジション（例えばパーキング、ニュートラル、１速、２速等）の状態、バス３００等のネットワーク負荷の状態等を、車両の状態として用い得る。また、バス３００に流れるデータフレームの内容の変化や、不正検知の必要性の高さ等に基づいて車両の状態を区別しても良い。
【０１６５】
（９）上記実施の形態では、受信状態保持部２１５６が保持する受信状態情報の次回受信タイミング候補として、受信適正時間帯に受信したデータフレームの中で最初に受信したデータフレームの受信タイミングが格納され、次回受信タイミング候補の値が受信適正時間帯の経過後に受信状態情報における受信タイミングに設定される例を示した。しかし、これは一例に過ぎない。次回の受信適正時間帯の基準となる、受信状態情報における受信タイミングとして、例えば、受信適正時間帯に受信したデータフレームの中で、最後に受信したデータフレームの受信タイミングが設定されるようにしても良いし、不正検知ルールで示される受信間隔の経過時に最も近いタイミングで受信したデータフレームの受信タイミングが設定されるようにしても良い。なお、上記実施の形態では、受信適正時間帯内に複数のデータフレームを受信した場合に受信状態情報における不正発生状態を「不正あり」としたが、受信適正時間帯内に予め定めた所定数以上のデータフレームを受信した場合にのみ不正発生状態を「不正あり」にすることとしても良い。
【０１６６】
（１０）上記実施の形態では、受信状態保持部２１５６に保持される受信状態情報における不正発生状態は、一度「不正あり」に設定された後には変更されない例を示したが、不正発生状態を一定条件下で「不正なし」に変更することとしても良い。例えば、受信適正時間帯に該当するＩＤを有するデータフレームを１つしか受信しなくなったことを一定回数確認した場合に不正発生状態を「不正なし」に変更することとしても良いし、定期的に不正発生状態を「不正なし」にリセットすることとしても良い。
【０１６７】
（１１）上記実施の形態でルール保持部１５４、２１５４に保持されるルール情報が示す不正検知ルールは、複数のＩＤそれぞれについて受信間隔に係るルールを含んでいたが、バス３００で送受されるデータフレームで用いられ得るＩＤの全てについて受信間隔に係るルールを規定している必要はない。また、不正検知ルールは、全てのＩＤ又は一部のＩＤを有する各データフレームについて、受信間隔に係るルール以外の、データフレームの不正に関する評価（不正か否かの判別等）の基準となるルール（例えばデータ長、データフィールドの内容の制約等）を含んでいても良い。
【０１６８】
（１２）上記実施の形態では、受信状態保持部２１５６に保持される受信状態情報における不正発生状態を、受信適正時間帯に複数の該当するＩＤのデータフレームを受信した場合、及び、受信適正時間帯以外に該当するＩＤのデータフレームを受信した場合に「不正あり」に更新する例を示した。これは一例に過ぎず、例えば、受信間隔以外のルールに適合しないデータフレームが送信されたことを検知した場合に、該当するＩＤの不正発生状態を「不正あり」に更新しても良い。
【０１６９】
（１３）上記実施の形態では、マイコン部１５０、２１５０で不正検知処理を行ったが、コントローラ部１４０において不正検知処理の全部又は一部を行っても良い。
【０１７０】
（１４）上記実施の形態では、受信間隔に基づくデータフレームの適正、不正の判別のために、受信適正時間帯を経過するまで、受信状態情報における受信タイミングの更新を行わなかったが、受信適正時間帯内で、データフレームを受信したタイミングで受信状態情報における受信タイミングの更新を行っても良い。また受信タイミングの更新を、受信適正時間帯内のデータフレームの受信毎に行わなくても良い。例えば、受信回数を保持しておき、ルール情報が示す不正検知ルールに係る受信間隔と受信回数とを乗算することにより、受信適正時間帯を算定しても良い。このときの受信回数のリセットと受信タイミングの更新とは任意のタイミングで行い得る。
【０１７１】
（１５）上記実施の形態では、マイコン部１５０或いはマイコン部２１５０が、ルール保持部１５４、２１５４、タイマ保持部１５５、受信タイミング保持部１５６、受信状態保持部２１５６を含む例を示したが、コントローラ部１４０が、ルール保持部１５４、２１５４、タイマ保持部１５５、受信タイミング保持部１５６、受信状態保持部２１５６のうちの１つ以上を含んでも良い。
【０１７２】
（１６）上記実施の形態では、受信適正時間帯の特定の方法として、ルール保持部２１５４のルール情報が示す受信間隔からマージンを引いた値から受信間隔からマージンを足した値までを受信適正時間帯としていたが、これに限らない。例えばルール情報が示す受信間隔からマージンを減算した値以降全ての時間範囲を受信適正時間帯としても良い。
【０１７３】
（１７）上記実施の形態では、不正検知対象のＩＤを有するデータフレームとの受信間隔を確認するための基準となる、そのＩＤと異なるＩＤを有するデータフレームとして、バス３００上に流れるデータフレームを用いた。この基準となるデータフレームは、バス３００上に流されるべき制御用或いは状態通知用のデータフレームであっても良いし、不正検知以外の用途のないダミーのデータフレームであっても良い。ダミーのデータフレームは、いずれかのＥＣＵにより周期的に送信され、不正検知ＥＣＵにより受信され、不正検知ＥＣＵ以外では受信の必要がない。不正検知ＥＣＵでは、ダミーのデータフレームの受信タイミングを基準として、不正検知対象のＩＤのデータフレームの受信適正時間帯を特定して、不正検知を行い得る。また、不正検知ＥＣＵは、不正検知のための基準となるデータフレームとして、不正検知対象のＩＤのデータフレームを送信するＥＣＵが別途送信する、不正検知対象のＩＤと異なるＩＤのデータフレームを利用することとしても良い。
【０１７４】
（１８）上記実施の形態における不正検知ＥＣＵ及び他のＥＣＵは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路等）によりその機能を実現することとしても良い。
【０１７５】
（１９）上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全部を含むように１チップ化されても良い。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１７６】
（２０）上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしても良い。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【０１７７】
（２１）上記実施の形態で示した各種処理の手順（例えば図１０、図１８に示した処理手順等）の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
【０１７８】
（２２）本発明の一態様としては、例えば図１０或いは図１８に示す不正検知処理等の全部又は一部を含む不正検知方法であるとしても良い。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０１７９】
（２３）本発明の一態様としては、例えば上述の不正検知ＥＣＵの一部又は全部の機能を備える不正検知システムであっても良い。不正検知システムは、例えばバスに接続されたＥＣＵ（不正検知ＥＣＵでもその他のＥＣＵでも良い）、そのＥＣＵと通信可能な装置（例えば車両外部に所在するサーバ装置等）等により構成され得る。
【０１８０】
（２４）上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０１８１】
本発明は、ＣＡＮに従った車載ネットワークにおいて、バス上への不正なフレームの送信の検知を適切に行うために利用可能である。
【符号の説明】
【０１８２】
１０、１１  車載ネットワークシステム
１００、２１００  不正検知電子制御ユニット（不正検知ＥＣＵ）
１３０  トランシーバ部
１４０  コントローラ部
１４１  プロトコル処理部
１５０、２５０、２１５０  マイコン部
１５１  コントローラ通信部
１５２、２１５２  不正検知処理部
１５３、２５３  フレーム生成部
１５４、２１５４  ルール保持部
１５５  タイマ保持部
１５６  受信タイミング保持部
２００ａ  電子制御ユニット（自動駐車ＥＣＵ）
２００ｂ  電子制御ユニット（パワステＥＣＵ）
２００ｃ  電子制御ユニット（ギアＥＣＵ）
２１０  カメラ
２２０  ハンドル（ステアリングホイール）
２３０  ギア（変速機構）
２４０  タッチパネル
２５２  フレーム処理部
２５４  外部機器入出力部
３００  バス
２１５６  受信状態保持部
２２００ｄ  電子制御ユニット（車速ＥＣＵ）
２２５０  車速センサ
【図１】
2020005289.tif 000003
【図２】
2020005289.tif 000004
【図３】
2020005289.tif 000005
【図４】
2020005289.tif 000006
【図５】
2020005289.tif 000007
【図６】
2020005289.tif 000008
【図７】
2020005289.tif 000009
【図８】
2020005289.tif 000010
【図９】
2020005289.tif 000011
【図１０】
2020005289.tif 000012
【図１１】
2020005289.tif 000013
【図１２】
2020005289.tif 000014
【図１３】
2020005289.tif 000015
【図１４】
2020005289.tif 000016
【図１５】
2020005289.tif 000017
【図１６】
2020005289.tif 000018
【図１７】
2020005289.tif 000019
【図１８】
2020005289.tif 000020