(57)【要約】【課題】攻撃者により移動体のネットワークのバスに送信される不正なブレーキ制御指示に係る攻撃フレームに対して適切に対処する制御装置を提供する。【解決手段】制御装置１００は、例えば車両等の移動体のブレーキを制御する指示を受信する受信部１１１と、受信部１１１が前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する判別部１３１とを備える。【選択図】図６
2019172261.tif 000002
【特許請求の範囲】
【請求項１】
移動体のブレーキを制御する指示を受信する受信部と、
前記受信部が前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する判別部と、を備えた、
制御装置。
【請求項２】
前記判別部によって前記指示が不正と判別された場合、前記指示による制御が実行されないように制御を行う制御部をさらに備えた、
請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記指示を無効化又は破棄することにより、前記指示による制御が実行されないように制御を行う、
請求項２に記載の制御装置。
【請求項４】
前記速度は、前記障害物に対する前記移動体の相対速度である、
請求項２又は３に記載の制御装置。
【請求項５】
前記判別部は、前記距離と前記速度とに基づく所定演算の結果と閾値とを比較することにより前記距離及び前記速度が前記所定条件を満たすか否かを判別する、
請求項２〜４のいずれか一項に記載の制御装置。
【請求項６】
前記指示は、前記ブレーキによる減速量を含み、
前記判別部は、
前記指示が最大の減速量を含む場合、前記所定演算の結果が第１閾値より大きいことを前記所定条件として用い、
前記指示が減速量としてゼロを含む場合、前記所定演算の結果が前記第１閾値以下の第２閾値より小さいことを前記所定条件として用いる、
請求項５に記載の制御装置。
【請求項７】
前記所定演算は、緊急ブレーキ電子制御ユニットからの正常な状態の前記指示が減速量としてゼロより大きい量を含む場合、前記所定演算の結果が、前記第１閾値以下かつ前記第２閾値以上となるように定められている、
請求項６に記載の制御装置。
【請求項８】
前記判別部は、前記移動体の前記ブレーキによる制動距離に影響を与える前記移動体の構成要素の変化に応じて、前記所定演算の内容を変更する、
請求項５〜７のいずれか一項に記載の制御装置。
【請求項９】
前記受信部は、前記移動体において検出された前記障害物の種別を示す障害物情報を受信し、
前記判別部は、前記障害物情報に応じて、前記所定演算の内容を変更する、
請求項５〜８のいずれか一項に記載の制御装置。
【請求項１０】
前記判別部は、前記指示が前記ブレーキの作動の指示である場合、前記速度に対する前記距離の比が閾値を超えることを前記所定条件として用いる、
請求項２〜４のいずれか一項に記載の制御装置。
【請求項１１】
前記所定条件は、前記移動体の車種に対応して定められている、
請求項２〜１０のいずれか一項に記載の制御装置。
【請求項１２】
前記受信部は、前記移動体において測定された、前記距離及び前記速度の測定結果を示す測定情報を受信し、
前記判別部は、前記測定情報から特定した前記距離及び前記速度が前記所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する、
請求項２〜１１のいずれか一項に記載の制御装置。
【請求項１３】
前記受信部は、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋプロトコルに従って、前記指示を含むデータフレームを受信し、
前記制御部は、前記受信部が前記データフレームを受信した際、前記判別部によって前記指示が不正と判別された場合、前記データフレームを無効化するエラーフレームを送信する制御を行う、
請求項２〜１２のいずれか一項に記載の制御装置。
【請求項１４】
前記受信部は、専用の通信線で接続されたセンサから、前記距離及び前記速度を受信する、
請求項２〜１３のいずれか一項に記載の制御装置。
【請求項１５】
前記制御装置は、１以上の電子制御ユニットに含まれる前記移動体の前記ブレーキを制御する電子制御ユニットであり、
前記制御部は、前記判別部によって前記指示が不正と判別された場合、前記指示を破棄することで前記指示に従った前記ブレーキの制御を抑止する制御を行う、
請求項２〜１４のいずれか一項に記載の制御装置。
【請求項１６】
前記移動体に含まれる１以上の電子制御ユニットは、記憶媒体と、前記記憶媒体に格納された情報に従って前記ブレーキを制御するブレーキ制御部とを有するブレーキ電子制御ユニットを含み、
前記制御装置は、前記ブレーキ電子制御ユニットに含まれ、
前記制御部は、前記判別部によって前記指示が不正と判別された場合、前記指示を示す情報を前記記憶媒体に格納しないことで前記指示を破棄する制御を行う、
請求項２〜１５のいずれか一項に記載の制御装置。
【請求項１７】
移動体に設けられるブレーキと、
前記移動体に対する障害物を検知する検知装置と、
制御装置と、を備え、
前記制御装置は、
前記移動体の前記ブレーキを制御する指示を受信し、
前記指示を受信した際、前記移動体と前記障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正か否かを判別する、
制御システム。
【請求項１８】
マイクロプロセッサを備える装置に不正検知処理を行わせるためのプログラムであって、
前記不正検知処理は、
移動体のブレーキを制御する指示を受信し、
前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば車両に搭載される電子制御ユニットが通信を行う車載ネットワークにおいて送信されるブレーキ制御指示メッセージについての不正に対処するためのセキュリティ技術に関する。
【背景技術】
【０００２】
近年、自動車の中のシステムには、電子制御ユニット（ＥＣＵ：Electronic Control Unit）と呼ばれる装置が多数配置されている。これらのＥＣＵをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ＩＳＯ１１８９８−１で規定されているＣＡＮ（Controller Area Network）という規格が存在する。
【０００３】
ＣＡＮでは、通信路は２本のワイヤで構成されたバス（ＣＡＮバス）であり、バスに接続されているＥＣＵはノードと呼ばれる。ＣＡＮバスに接続されている各ノードは、フレーム（メッセージ）を送受信する。フレームを送信する送信ノードは、２本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「１」の値と、ドミナントと呼ばれる「０」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを６ｂｉｔ連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
【０００４】
またＣＡＮでは、送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎に、メッセージＩＤと呼ばれるＩＤを付けて送信し（つまりバスに信号を送出し）、各受信ノードは予め定められたメッセージＩＤのみを受信する（つまりバスから信号を読み取る）。また、ＣＡＮでは、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance）方式を採用しており、複数ノードの同時送信時にはメッセージＩＤによる調停が行われ、メッセージＩＤの値が小さいフレームが優先的に送信される。自動車の中のシステムにおいては、多数のＥＣＵそれぞれは、様々なフレームの授受を行う。例えば、各ＥＣＵがフレームを授受して連携することで、先進運転者支援システム（ＡＤＡＳ：Advanced Driver Assistance System）の衝突回避支援機能等が実現される。衝突回避支援機能では、例えば、ブレーキを制御するブレーキＥＣＵ、障害物の検知等を行うセンサＥＣＵ、障害物に衝突する恐れを検知してブレーキ制御指示のフレームを出す緊急ブレーキＥＣＵ等が連携する。
【０００５】
ところで、ＣＡＮバスに不正なノードを接続すること、或いは、携帯情報端末、車外の通信装置等と通信する機能を有するＥＣＵ等を攻撃して不正なノードに変化させること等により、攻撃者が、攻撃フレームをＣＡＮバスに送信して、自動車を不正にコントロールする脅威が存在する。攻撃フレームは、不正な攻撃者によってＣＡＮバスに送信されたフレームであり、車載ネットワークの正常状態において本来は送信されないフレーム（不正なフレーム）である。例えば、攻撃者により、走行中の車両の前方に障害物がない状態で、急ブレーキを発動させるようなブレーキ制御指示のフレームがＣＡＮバスに送信されると、その車両の急停止により乗員の負傷、後続車両の衝突等の事故が生じ得る。
【０００６】
このような攻撃フレームを検知して防御する技術として、車載ネットワークにおいて周期的に送信されるべきメッセージＩＤのフレームについて、想定される周期を予め登録しておき、想定周期に基づいて不正か否かの判別を行う技術が知られている（特許文献１参照）。しかし、特許文献１の技術では、攻撃者が正規のＥＣＵのフレーム送信周期に合わせてフレームを送信するような場合に対応できない。例えば、不正なフレームが正規のフレームの直前に受信した場合に、不正なフレームを検出できず、直後に続く正規のフレームを不正と誤って検出してしまう。
【０００７】
また、従来、車載ネットワークで受信したフレームに係る車輪速の数値情報について、基準として定めた所定値より大きい場合には、異常であると判断する技術が知られている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−１４６８６８号公報
【特許文献２】特開２００８−１１４８０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献２の技術は、フレームの周期に依存せずに、受信したフレームに関して異常の判断を行うが、不正なブレーキ制御指示の攻撃フレームに適切に対処するためには有用ではない。
【００１０】
そこで、本発明は、攻撃者により移動体におけるネットワーク（例えば車載ネットワーク）のバスに送信される不正なブレーキ制御指示の攻撃フレームに適切に対処する制御装置を提供する。また、本発明は、ブレーキ制御指示に係る不正なフレームに適切に対処する制御システム、制御方法、及び、その制御システムでブレーキ制御指示に係る不正なフレームに適切に対処するために用いられる制御プログラムを提供する。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明の一態様に係る制御装置は、移動体のブレーキを制御する指示を受信する受信部と、前記受信部が前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する判別部と、を備えた、制御装置である。
【００１２】
また、上記課題を解決するために本発明の一態様に係る制御システムは、移動体に設けられるブレーキと、前記移動体に対する障害物を検知する検知装置と、制御装置と、を備え、前記制御装置は、前記移動体の前記ブレーキを制御する指示を受信し、前記指示を受信した際、前記移動体と前記障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正か否かを判別する、制御システムである。
【００１３】
また、上記課題を解決するために本発明の一態様に係る制御方法は、移動体において複数の電子制御ユニットが通信に用いるバスからブレーキ制御指示を受信し、前記ブレーキ制御指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たす場合、当該ブレーキ制御指示を無効化又は破棄する、制御方法である。
【００１４】
また、上記課題を解決するために本発明の一態様に係る制御プログラムは、マイクロプロセッサを備える装置に不正検知処理を行わせるための制御プログラムであって、前記不正検知処理は、移動体において複数の電子制御ユニットが通信に用いるバスからブレーキ制御指示を受信し、前記ブレーキ制御指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かにより、当該ブレーキ制御指示が不正であるか否かを検知する制御プログラムである。
【発明の効果】
【００１５】
本発明によれば、攻撃者によりブレーキ制御指示に係る不正なフレーム（攻撃フレーム）の無効化が可能となり得る。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１に係る制御システムの全体構成を示す図である。
【図２】ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。
【図３】ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。
【図４】実施の形態１に係るブレーキＥＣＵの構成図である。
【図５】緊急ブレーキＥＣＵが送信するブレーキ制御指示に係るフレームのデータフィールドの一例を示す図である。
【図６】実施の形態１に係るセキュリティＥＣＵ（制御装置）の構成図である。
【図７】ブレーキ制御指示の不正判別の条件について説明するための図である。
【図８】セキュリティＥＣＵにおける制御処理を示すフローチャートである。
【図９】実施の形態１におけるブレーキ制御に係る処理シーケンスの一例を示す図である。
【図１０】実施の形態１におけるブレーキ制御に係る処理シーケンスの一例を示す図である。
【図１１】実施の形態２に係る制御システムの全体構成を示す図である。
【図１２】実施の形態２に係るブレーキＥＣＵの構成図である。
【図１３】ブレーキＥＣＵにおける制御処理を示すフローチャートである。
【図１４】実施の形態２におけるブレーキ制御に係る処理シーケンスの一例を示す図である。
【図１５】実施の形態２におけるブレーキ制御に係る処理シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１７】
（本発明の基礎となった知見等）
車両の先進運転者支援システムでは、障害物に車両が衝突することを回避するための緊急ブレーキＥＣＵは、障害物の検知等を行うセンサＥＣＵから取得した情報等に基づいて、概ね衝突直前にブレーキ制御指示（つまりブレーキ制御指示のフレーム）をＣＡＮバスに送信する。そのブレーキ制御指示に従って、ブレーキＥＣＵがブレーキを制御することで、衝突の前に車両が停止する。なお、ブレーキ制御指示の内容として、例えばブレーキを作動させる指定の他に、ブレーキの作動を抑止させる指定等がある。
【００１８】
攻撃者により、不正なブレーキ制御指示の攻撃フレーム（不正なフレーム）が送信され、その不正なブレーキ制御指示が、緊急ブレーキＥＣＵが送信する適正なブレーキ制御指示と相違する内容である場合においては、車両等の事故につながる可能性がある。適正なブレーキ制御指示は、車両の進行方向における障害物と車両との距離、及び、車両の速度に対応した内容となるべきである。そこで、ＣＡＮバスに送信されたブレーキ制御指示が、車両の走行状況に応じた適正なブレーキ制御指示か、これと相違する内容の不正なブレーキ制御指示かを、車両の進行方向の障害物と車両との距離、及び、車両の速度（例えば車両と障害物との相対速度或いは絶対速度）に基づいて判別する方法に想到した。なお、車両は一例であり、車両その他を含む移動体にもこの方法を適用し得る。本発明の一態様に係る制御システム等では、その方法により不正なブレーキ制御指示を判別し、不正なブレーキ制御指示であれば無効化することで、そのブレーキ制御指示に従ってブレーキ制御がなされないようにする。これにより、攻撃フレームによって事故が引き起こされることの防止が可能となる。
【００１９】
本発明の一態様に係る制御装置は移動体のブレーキを制御する指示を受信する受信部と、前記受信部が前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する判別部と、を備えた、制御装置である。これにより、移動体（例えば車両）と障害物（例えば歩行者、他の車両、建築物等）との距離、及び、移動体の速度に基づいて、移動体のブレーキを制御する指示が不正であるか否かを判別することが可能となる。
【００２０】
また、例えば、前記制御装置は、前記判別部によって前記指示が不正と判別された場合、前記指示による制御が実行されないように制御を行う制御部をさらに備えても良い。より具体的な例としては、前記制御部は、前記指示を無効化又は破棄することにより、前記指示による制御が実行されないように制御を行っても良い。無効化は広義には移動体のブレーキを制御する指示（以下ではブレーキ制御指示ともいう）が有効に作用しないようにすることである。但し、ここではブレーキ制御指示をバス上において有効に作用しないようにする（例えば後述するエラーフレームによる上書きによって改変する）ことを無効化と称し、バスからブレーキ制御指示がＥＣＵに受信された後においてそのブレーキ制御指示を有効に作用しないようにすることを破棄と称する。破棄は、ブレーキ制御指示に従ったブレーキの制御を抑止することを含む。
【００２１】
また、例えば、前記速度は、前記障害物に対する前記移動体の相対速度であることとしても良い。これにより、障害物が移動している場合においても、ブレーキ制御指示が不正か否か（つまり無効化制御の対象であるか否か）を適切に判別可能となる。
【００２２】
また、例えば、前記判別部は、前記距離と前記速度とに基づく所定演算の結果と閾値とを比較することにより前記距離及び前記速度が前記所定条件を満たすか否かを判別することとしても良い。これにより、所定演算及び閾値を適切に定めておくことで、不正なブレーキ制御指示に対する適切な対処が可能となる。
【００２３】
また、例えば、前記指示は、前記ブレーキによる減速量を含み、前記判別部は、前記指示が最大の減速量を含む場合、前記所定演算の結果が第１閾値より大きいことを前記所定条件として用い、前記指示が減速量としてゼロを含む場合、前記所定演算の結果が前記第１閾値以下の第２閾値より小さいことを前記所定条件として用いることとしても良い。これにより、ブレーキを作動させるべき状況においてその作動の抑止を指示するような不正なブレーキ制御指示、或いは、ブレーキを作動させるべきでない状況においてブレーキの作動を指示するような不正なブレーキ制御指示を、無効化することが可能となる。
【００２４】
また、例えば、前記第２閾値は、前記第１閾値より小さいこととしても良い。これにより、ブレーキの作動を指示するブレーキ制御指示とブレーキの作動の抑止を指示するブレーキ制御指示との両方が必ずしも不正ではない状況（障害物と移動体の距離及び移動体の速度に係る状況）に適切に対応することが可能となる。
【００２５】
また、例えば、前記所定演算は、緊急ブレーキ電子制御ユニットからの正常な状態の前記指示が減速量としてゼロより大きい量を含む場合、前記所定演算の結果が、前記第１閾値以下かつ前記第２閾値以上となるように定められていることとしても良い。これにより、緊急ブレーキＥＣＵが正常な状態である場合（つまり攻撃者に支配された状態や故障した状態でない場合）において送信するブレーキ制御指示の無効化が、抑止される。
【００２６】
また、例えば、前記所定演算は、定められた係数と前記速度との積を前記距離から減算する演算であり、前記第１閾値は０であることとしても良い。これにより、比較的簡易な演算を用いて効率的に不正なブレーキ制御指示の無効化を実現することが可能となる。
【００２７】
また、例えば、前記所定演算は、係数が定められた一変数の多項式関数の変数に前記速度を代入した結果を前記距離から減算する演算であることとしても良い。これにより、多項式関数の係数を適切に定めておくことで、不正なブレーキ制御指示に対する適切な対処が可能となる。
【００２８】
また、例えば、前記判別部は、前記移動体の前記ブレーキによる制動距離に影響を与える前記移動体の構成要素の変化に応じて、前記所定演算の内容を変更することとしても良い。これにより、移動体の構成要素が変化した場合においても適切に不正なブレーキ制御指示を無効化することが可能となる。 
【００２９】
また、例えば、前記受信部は、前記移動体において検出された前記障害物の種別を示す障害物情報を受信し、前記判別部は、前記障害物情報に応じて、前記所定演算の内容を変更することとしても良い。これにより、人、物体等といった障害物の種別に応じて緊急ブレーキＥＣＵがブレーキを作動させるべきタイミング等を変化させるようなシステムにおいて、適切に不正なブレーキ制御指示を無効化することが可能となる。
【００３０】
また、例えば、前記判別部は、前記指示が前記ブレーキの作動の指示である場合、前記速度に対する前記距離の比が閾値を超えることを前記所定条件として用いることとしても良い。これにより、ブレーキの作動を指示するブレーキ制御指示が不正か否か（つまり無効化制御の対象であるか否か）を適切に判別可能となる。
【００３１】
また、例えば、前記所定条件は、前記移動体の車種に対応して定められていることとしても良い。これにより、車種毎のブレーキ性能等に応じて、ブレーキ制御指示が不正か否かを適切に判別することが可能となる。
【００３２】
また、例えば、前記受信部は、前記移動体において測定された、前記距離及び前記速度の測定結果を示す測定情報を受信し、前記判別部は、前記測定情報から特定した前記距離及び前記速度が前記所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別することとしても良い。これにより、制御装置は、バスから距離及び速度の取得が可能となるので、センサと専用の通信路で通信するための通信回路、或いは、センサを有する必要がなくなる。
【００３３】
また、例えば、前記受信部は、Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋプロトコルに従って、前記指示を含むデータフレームを受信し、前記制御部は、前記受信部が前記データフレームを受信した際、前記判別部によって前記指示が不正と判別された場合、前記データフレームを無効化するエラーフレームを送信する制御を行うこととしても良い。これにより、ブレーキＥＣＵの構成を新たなものにする必要がなくなり、例えば従来同様のブレーキＥＣＵが接続されたバスに制御装置を接続することで、不正なブレーキ制御指示によってブレーキＥＣＵが不正な制御を行うことが抑制される。
【００３４】
また、例えば、前記制御装置は、１以上の電子制御ユニットに含まれる前記移動体のブレーキを制御する電子制御ユニットであり、前記制御部は、前記判別部によって前記指示が不正と判別された場合、前記指示を破棄することで前記指示に従った前記ブレーキの制御を抑止する制御を行うこととしても良い。これにより、ブレーキＥＣＵにおいて不正なブレーキ制御指示に適切に対処することが可能となる。
【００３５】
また、例えば、前記移動体に含まれる１以上の電子制御ユニットは、記憶媒体と、前記記憶媒体に格納された情報に従って前記ブレーキを制御するブレーキ制御部とを有するブレーキ電子制御ユニットを含み、前記制御装置は、前記ブレーキ電子制御ユニットに含まれ、前記制御部は、前記判別部によって前記指示が不正と判別された場合、前記指示を示す情報を前記記憶媒体に格納しないことで前記指示を破棄する制御を行うこととしても良い。これにより、ブレーキＥＣＵにおいてブレーキ制御指示を適切にフィルタリングすることが可能となる。
【００３６】
また、本発明の一態様に係る制御システムは、移動体に設けられるブレーキと、前記移動体に対する障害物を検知する検知装置と、制御装置と、を備え、前記制御装置は、前記移動体の前記ブレーキを制御する指示を受信し、前記指示を受信した際、前記移動体と前記障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正か否かを判別する、制御システムである。これにより、移動体と障害物との距離、及び、移動体の速度に基づいて不正なブレーキ制御指示を無効化することが可能となる。
【００３７】
また、本発明の一態様に係る制御方法は、移動体において複数の電子制御ユニットが通信に用いるバスからブレーキ制御指示を受信し、前記ブレーキ制御指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たす場合、当該ブレーキ制御指示を無効化又は破棄する制御方法である。これにより、移動体と障害物との距離、及び、移動体の速度に基づいて不正なブレーキ制御指示を無効化することが可能となる。
【００３８】
また、本発明の一態様に係るプログラムは、マイクロプロセッサを備える装置に不正検知処理を行わせるためのプログラムであって、前記不正検知処理は、移動体のブレーキを制御する指示を受信し、前記指示を受信した際、前記移動体と障害物との距離及び前記移動体の速度が所定条件を満たすか否かに基づいて前記指示が不正であるか否かを判別する、プログラムである。このプログラムを、プロセッサ（マイクロプロセッサ）を備える装置にインストールすることにより、そのプロセッサがプログラムを実行することで、バス上に現れたブレーキ制御指示が不正であるか否かを適切に判別することが可能となる。
【００３９】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【００４０】
以下、実施の形態に係る制御方法を用いる制御システム等について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００４１】
（実施の形態１）
以下、本発明の実施の一態様として、移動体の一例としての車両において車載ネットワークを構成するバス（ＣＡＮバス）に送信された不正なブレーキ制御指示に係るフレームを無効化するセキュリティＥＣＵ（制御装置）を備える制御システムについて、図面を用いて説明する。
【００４２】
［１．１  制御システム１０の構成］
図１は、実施の形態１に係る制御システム１０の全体構成を示す図である。
【００４３】
制御システム１０は、主として車両２０における車載ネットワークシステムで構成され、図１に例示するように、車両２０に搭載された各種ＥＣＵ（セキュリティＥＣＵ１００、ブレーキＥＣＵ２００、緊急ブレーキＥＣＵ３１０、センサＥＣＵ３２０、及び、エンジンＥＣＵ３３０）と、バス（ＣＡＮバス）３０とを含んで構成される。なお、車両２０における車載ネットワークシステムには、セキュリティＥＣＵ１００、ブレーキＥＣＵ２００、緊急ブレーキＥＣＵ３１０、センサＥＣＵ３２０、及び、エンジンＥＣＵ３３０以外にいくつものＥＣＵが含まれ得るが、図１では省略して一部のＥＣＵのみを示している。また、制御システム１０が、車両２０におけるいずれかのＥＣＵと通信する車両外部のサーバ装置等を含んでも良い。
【００４４】
ＥＣＵは、例えば、プロセッサ（マイクロプロセッサ）、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行される制御プログラム（ソフトウェアとしてのコンピュータプログラム）を記憶することができる。例えばプロセッサが、制御プログラム（コンピュータプログラム）に従って動作することにより、ＥＣＵは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。ＥＣＵは、ＣＡＮプロトコルに従って車両内のバス３０を介してフレームの授受を行い得る。
【００４５】
一部のＥＣＵは、バス３０以外の通信路によりセンサ、アクチュエータ、ユーザインタフェース装置等の各種機器と接続されている。例えば、ブレーキＥＣＵ２００は、ブレーキ２０１に接続され、ブレーキ２０１を制御する。また、エンジンＥＣＵ３３０は、エンジン３３１に接続され、エンジン３３１を制御する。また、センサＥＣＵ３２０は、障害物センサ３２１及び速度センサ３２２に接続され、各センサで測定された測定情報を表すフレーム（データフレーム）を周期的にバス３０に送信する。車載ネットワークシステムにおいて、個々のセンサ毎に対応してセンサＥＣＵ３２０が複数存在しても良いが、ここでは便宜上、複数のセンサそれぞれで測定された測定情報を表すフレームを送信し得る１つのセンサＥＣＵ３２０が存在するものとして説明する。障害物センサ（検知装置）３２１は、車両２０の進行方向における障害物を検知し、車両２０と障害物との距離等を測定するセンサである。速度センサ３２２は、車両２０の速度を検知するセンサであり、例えば車両２０の絶対速度を検知し得るが、ここでは障害物センサ３２１が検知した障害物に対する車両２０の相対速度を検知するものとして説明する。なお、車両２０の絶対速度は、障害物が移動しない場合については、障害物に対する車両の相対速度に等しい。
【００４６】
緊急ブレーキＥＣＵ３１０は、先進運転者支援システムとしての衝突回避支援機能等を担うＥＣＵである。緊急ブレーキＥＣＵ３１０は、ブレーキＥＣＵ２００のブレーキ制御を要求するために、センサＥＣＵ３２０から取得した測定情報等に基づいて、ブレーキ制御指示のフレームをバス３０に周期的に送信する。なお、緊急ブレーキＥＣＵ３１０は、例えばセンサＥＣＵ３２０と一体化する等により、バス３０を介さずに各センサからの測定情報等を直接取得することとしてもよい。緊急ブレーキＥＣＵ３１０は、例えば、概ね衝突直前にはブレーキを作動させることを要求する指定を内容とするブレーキ制御指示のフレームをバス３０に送信する。
【００４７】
診断用ポート３９０は、ＯＢＤ２（On-Board Diagnostics２）等のバス３０に接続された端子であり、診断用ポート３９０を介して、診断ツール（故障診断ツール）等の機器によるバス３０へのアクセスが可能となる。攻撃者は、例えば診断用ポート３９０等を介して、不正なブレーキ制御指示のフレーム（データフレーム）をバス３０に注入（送信）する可能性がある。
【００４８】
セキュリティＥＣＵ１００は、車載ネットワークシステムのセキュリティを確保するための機能を担うＥＣＵである。セキュリティＥＣＵ１００は、バス３０に流れるフレームを監視し、バス３０上に現れた不正なブレーキ制御指示に係るデータフレームを、エラーフレームの送信により無効化する装置であり、不正なブレーキ制御指示の攻撃フレームに適切に対処する制御装置としての機能を有する。なお、セキュリティＥＣＵ１００は、不正なブレーキ制御指示のみならずその他の不正なデータフレームを一定条件下で無効化する機能を有してもよい。
【００４９】
［１．２  データフレームフォーマット］
以下、ＣＡＮプロトコルに従ったネットワークで用いられるフレームの１つであるデータフレーム（メッセージ）について説明する。
【００５０】
図２は、ＣＡＮプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、ＣＡＮプロトコルで規定される標準ＩＤフォーマットにおけるデータフレームを示している。データフレームは、ＳＯＦ（Start Of Frame）、ＩＤフィールド、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビット「ｒ」、ＤＬＣ（Data Length Code）、データフィールド、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ「ＤＥＬ」、ＡＣＫ（Acknowledgement）スロット、ＡＣＫデリミタ「ＤＥＬ」、及び、ＥＯＦ（End Of Frame）の各フィールドで構成される。
【００５１】
ＳＯＦは、１ｂｉｔのドミナントで構成される。バスがアイドルの状態はレセシブになっており、ＳＯＦによりドミナントへ変更することでフレームの送信開始を通知する。
【００５２】
ＩＤフィールドは、１１ｂｉｔで構成される、データの種類を示す値であるＩＤ（メッセージＩＤ）を格納するフィールドである。複数のノードが同時に送信を開始した場合、このＩＤフィールドで通信調停を行うために、ＩＤが小さい値を持つフレームが高い優先度となるよう設計されている。
【００５３】
ＲＴＲは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント１ｂｉｔで構成される。
【００５４】
ＩＤＥと「ｒ」とは、両方ドミナント１ｂｉｔで構成される。
【００５５】
ＤＬＣは、４ｂｉｔで構成され、データフィールドの長さを示す値である。なお、ＩＤＥ、「ｒ」及びＤＬＣを合わせてコントロールフィールドと称する。
【００５６】
データフィールドは、最大６４ｂｉｔで構成される送信するデータの内容を示す値である。８ｂｉｔ毎に長さを調整できる。送られるデータの仕様については、ＣＡＮプロトコルで規定されておらず、車載ネットワークシステムにおいて定められる。従って、車種、製造者（製造メーカ）等に依存した仕様となる。
【００５７】
ＣＲＣシーケンスは、１５ｂｉｔで構成される。ＳＯＦ、ＩＤフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【００５８】
ＣＲＣデリミタは、１ｂｉｔのレセシブで構成されるＣＲＣシーケンスの終了を表す区切り記号である。なお、ＣＲＣシーケンス及びＣＲＣデリミタを合わせてＣＲＣフィールドと称する。
【００５９】
ＡＣＫスロットは、１ｂｉｔで構成される。送信ノードはＡＣＫスロットをレセシブにして送信を行う。受信ノードはＣＲＣシーケンスまで正常に受信ができていればＡＣＫスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にＡＣＫスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【００６０】
ＡＣＫデリミタは、１ｂｉｔのレセシブで構成されるＡＣＫの終了を表す区切り記号である。
【００６１】
ＥＯＦは、７ｂｉｔのレセシブで構成されており、データフレームの終了を示す。
【００６２】
［１．３  エラーフレームフォーマット］
図３は、ＣＡＮプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ（プライマリ）と、エラーフラグ（セカンダリ）と、エラーデリミタとから構成される。
【００６３】
エラーフラグ（プライマリ）は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために６ｂｉｔのドミナントを連続で送信する。この送信は、ＣＡＮプロトコルにおけるビットスタッフィングルール（連続して同じ値を６ｂｉｔ以上送信しない）に違反し、他のノードからのエラーフレーム（セカンダリ）の送信を引き起こす。
【００６４】
エラーフラグ（セカンダリ）は、エラーの発生を他のノードに知らせるために使用される連続した６ビットのドミナントで構成される。エラーフラグ（プライマリ）を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ（セカンダリ）を送信することになる。
【００６５】
エラーデリミタ「ＤＥＬ」は、８ｂｉｔの連続したレセシブであり、エラーフレームの終了を示す。
【００６６】
［１．４  ブレーキＥＣＵ２００の構成］
図４は、ブレーキＥＣＵ２００の構成図である。ブレーキ２０１を制御するためのブレーキＥＣＵ２００は、通信部２１０と、データバッファ２２０と、制御処理部（ブレーキ制御部）２３０とを含んで構成される。
【００６７】
通信部２１０は、バス３０での通信の制御を担う集積回路（例えば通信回路、メモリ、プロセッサ等）である。通信部２１０は、例えば、機能的な構成要素としてフレーム送受信機能部、受信フレーム解釈機能部等を有する。フレーム送受信機能部では、例えば、バス３０に対してＣＡＮプロトコルに従ってフレームの送受信（フレームの１ｂｉｔずつの逐次送受信）を行う。また、受信フレーム解釈機能部では、フレーム送受信機能部で受信したフレームの値を、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。受信フレーム解釈機能部では、ＩＤフィールドと判断した値が、ブレーキＥＣＵ２００が受信すべきＩＤ（メッセージＩＤ）か否かを判別し、受信すべきＩＤでなければそのフレームの解釈を中止する。受信フレーム解釈機能部では、例えば、ＣＲＣの値が合わなかったり、ドミナント固定とされている項目がレセシブだったりする等、ＣＡＮプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するよう制御する。また、受信フレーム解釈機能部では、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。受信フレーム解釈機能部は、受信すべきＩＤと判別されたフレームの内容（ＩＤ、データフィールドのデータ等）を、データバッファ２２０に格納する。制御システム１０における車載ネットワークシステムで予め定められている、ブレーキ制御指示を示すデータフレームのＩＤは、通信部２１０の受信フレーム解釈機能部において受信すべきＩＤと判別される。
【００６８】
データバッファ２２０は、メモリ、レジスタ等といった記憶媒体の一記憶領域である。データバッファ２２０には、通信部２１０により受信された、受信すべきＩＤのフレームの内容としてのＩＤ、データフィールドのデータ等を示す情報（例えば、ブレーキ制御指示を示す情報）が格納される。バス３０上への複数ノードからのデータフレームの同時送信時にはＩＤによる通信調停が行われる。このため、緊急ブレーキＥＣＵ３１０が送信するブレーキ制御指示に係るデータフレームのブレーキＥＣＵ２００によるバス３０からの受信タイミングは、必ずしも一定周期（例えば５０ｍｓ等）と正確に一致するとは限らず、その一定周期から多少ずれることもある。ブレーキＥＣＵ２００において、このような通信調停での受信タイミングの変動に対応して、受信したデータフレームを効率的に処理すべく、データバッファ２２０が用いられる。
【００６９】
制御処理部２３０は、データバッファ２２０に格納されたフレームの内容（ブレーキ制御指示等を示す情報）を、周期的に或いは一定条件（データバッファ２２０へのフレーム格納に関連した条件等）が成立した場合等に取得し、その取得した情報が示すブレーキ制御指示に従って、ブレーキ２０１に対して制御信号を送信することでブレーキ２０１を制御する。
【００７０】
なお、ブレーキＥＣＵ２００以外の、アクチュエータを制御し得るＥＣＵ（例えばエンジンＥＣＵ３３０等）も、ブレーキＥＣＵ２００と同様に、通信部、データバッファ、及び、アクチュエータの制御のための制御処理部を備える。また、センサと接続されたセンサＥＣＵ３２０については、センサでの測定結果を取得して予め定められたメッセージＩＤを付してその測定結果を示す測定情報をデータフィールド内に含むデータフレームを生成する処理部と、そのデータフレームをＣＡＮプロトコルに従ってバス３０に送信するための通信部等を備える。この測定情報は、車両２０と障害物との距離、及び、車両２０の障害物に対する相対速度に関する測定結果を示す。
【００７１】
［１．５  ブレーキ制御指示］
図５は、緊急ブレーキＥＣＵ３１０が送信するブレーキ制御指示に係るフレームのデータフィールドの一例を示す図である。ブレーキ制御指示のフレームのデータフィールドには、ブレーキ２０１による減速量（つまりブレーキ２０１での減速を要求する減速要求量）の指定が含まれ、図５では、その減速量の内容の例を示している。なお、ブレーキ制御指示のフレームのデータフィールドには減速量以外の情報（例えば有効、無効の別を示すフラグ等）が付加されていても良いが、ここでは便宜上、減速量のみが含まれていることとして説明する。減速量自体がデータフィールド内の値（データ値）と必ずしも一致する必要はない。減速量は、例えば１Ｂｙｔｅで表され、値２５５により減速量ゼロ（０）が表され、値５５により、減速量の最大量（例えば１００）が表される。
【００７２】
緊急ブレーキＥＣＵ３１０から、ゼロ（０）より大きい減速量の指定を含むブレーキ制御指示が送信された場合に、ブレーキＥＣＵ２００では、ブレーキ制御指示の減速量に従ってブレーキ２０１を作動させる。即ち、ブレーキＥＣＵ２００では、ブレーキ制御指示の減速量が大きいほど強い効き（大きな制動力）となるようにブレーキ２０１を作動させる。具体的には、ブレーキ制御指示の減速量が最大量（例えば１００）である場合には、ブレーキＥＣＵ２００の制御処理部２３０は、所謂フルブレーキングに相当する最大の制動力でブレーキ２０１の作動がなされるようにブレーキ２０１を制御する。また、緊急ブレーキＥＣＵ３１０から、減速量としてゼロの指定を含むブレーキ制御指示が送信された場合に、ブレーキＥＣＵ２００の制御処理部２３０では、ブレーキ制御指示によってのブレーキ２０１の作動を抑止する。なお、ブレーキＥＣＵ２００において、例えば車両２０の運転者のブレーキペダルの操作に応じたブレーキ２０１の制御を行っている場合には、その操作に応じた制御を、ブレーキ２０１の作動の抑止の制御より優先させ得る。
【００７３】
［１．６  セキュリティＥＣＵ１００の構成］
図６は、セキュリティＥＣＵ１００の構成図である。セキュリティＥＣＵ１００は、バス３０に流れるフレームを監視し、バス３０上に現れた不正なブレーキ制御指示に係るデータフレームを、エラーフレームの送信により無効化する制御装置としての機能を有し、この機能の実現のために、通信部１１０と、記憶部１２０と、制御部１３０とを含んで構成される。これらの各構成要素の各機能は、例えばセキュリティＥＣＵ１００における通信回路、メモリ等の記憶媒体、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【００７４】
通信部１１０は、通信回路、制御プログラムを実行するプロセッサ等により実現される。通信部１１０は、ＣＡＮプロトコルに従ってバス３０に対するフレームの送受信（フレームの１ｂｉｔずつの逐次送受信）を行うための受信部１１１及び送信部１１２を含む。受信部１１１は、バス３０からフレーム（例えばブレーキ制御指示に係るデータフレーム、測定情報を含むデータフレーム等）を受信する。通信部１１０は、受信部１１１によりバス３０からフレームを受信すると、フレームからＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行うことでＩＤ（メッセージＩＤ）、ＤＬＣ、データフィールドのデータのそれぞれを区別して抽出する。通信部１１０は、抽出したＩＤが、制御システム１０における車載ネットワークシステムで予め定められている、ブレーキ制御指示を示すデータフレームのＩＤ、或いは、センサＥＣＵ３２０から送信される測定情報を示すデータフレームのＩＤ等の受信すべきＩＤであるか否かを判別する。通信部１１０は、受信すべきＩＤでなければそのフレームの解釈を中止する。通信部１１０は、受信部１１１が受信した、受信すべきＩＤであるフレームの内容（ＩＤ、データ等）を、記憶部１２０に格納する。また、通信部１１０は、制御部１３０からのエラーフレームの送信指示を受けて、送信部１１２によりエラーフレームをバス３０に送信する。
【００７５】
記憶部１２０は、受信部１１１により受信されたフレームの内容を格納するためのメモリ等の記憶媒体の一記憶領域である。記憶部１２０には、例えば、センサＥＣＵ３２０から逐次送信される測定情報が逐次格納される。測定情報は、車両２０におけるセンサにより測定された測定結果としての、車両２０と障害物との距離及び車両２０の障害物に対する相対速度を示す。
【００７６】
制御部１３０は、制御プログラムを実行するプロセッサ等により実現され、一定条件下でブレーキ制御指示のデータフレームを無効化する無効化制御を行う機能を担う。制御部１３０は、判別部１３１及びエラーフレーム送信制御部１３２を含む。
【００７７】
判別部１３１は、受信部１１１がブレーキ制御指示のデータフレームを受信した際における車両２０と障害物との距離、及び、車両２０の速度についての所定条件が満たされるか否かにより、ブレーキ制御指示が不正か否か（つまりそのブレーキ制御指示のデータフレームを無効化すべきか否か）を判別する。判別部１３１は、受信部１１１により受信された測定情報に基づいて車両２０と障害物との距離、及び、車両２０の速度を特定し、特定した距離及び速度に基づいて所定条件が満たされるか否かを判別する。この判別は、ブレーキ制御指示のデータフレームの全体が受信部１１１によりバス３０から受信されるまで（つまりデータフレームの終了前であり、例えばデータフィールドの受信直後或いはＣＲＣシーケンスの受信直後等）に行われる。判別部１３１は、ブレーキ制御指示を不正と判別した場合には、その旨をエラーフレーム送信制御部１３２に通知する。判別部１３１は、受信部１１１がブレーキ制御指示のデータフレームを受信した際における車両２０と障害物との距離、及び、車両２０の速度として、記憶部１２０に逐次格納された測定情報のうちそのブレーキ制御指示のデータフレームを受信した際における最新の測定情報が示す車両２０と障害物との距離、及び、車両２０の速度（障害物に対する相対速度）を用いる。
【００７８】
エラーフレーム送信制御部１３２は、判別部１３１により、ブレーキ制御指示が不正であると判別された場合において、バス３０に現れているブレーキ制御指示のデータフレームを無効化するために、送信部１１２に、バス３０にエラーフレームを送信させることで無効化制御を行う。このエラーフレーム送信制御部１３２による無効化制御は、ブレーキ制御指示のデータフレームの終了（ＥＯＦ）の受信が完了するより前に、バス３０にエラーフレームを送信することで実現される。無効化制御がなされると、ブレーキ制御指示のデータフレームの終了前のエラーフレームの送信により、バス３０上でブレーキ制御指示のデータフレームは上書きされるので、ブレーキＥＣＵ２００においては、そのブレーキ制御指示のデータフレームが破棄され、そのブレーキ制御指示に従ったブレーキ制御が実行されない。
【００７９】
［１．７  ブレーキ制御指示の不正判別］
以下、上述のセキュリティＥＣＵ１００（制御装置）における制御部１３０の判別部１３１でのブレーキ制御指示が不正か否かの判別の方法について説明する。
【００８０】
判別部１３１は、例えば、ブレーキ制御指示を受信した際における障害物と車両との距離Ｌ（ｍ）と、障害物と車両との相対速度Ｖ（ｋｍ／ｈ）とについての所定条件Ｃが満たされた場合に、ブレーキ制御指示が不正であると判別する。具体例としては、判別部１３１は、距離Ｌと、相対速度Ｖとに基づく所定演算Ｆ（Ｖ，Ｌ）の結果と閾値とを比較することにより所定条件Ｃが満たされるか否かを判別する。
【００８１】
より詳細な例としては、判別部１３１は、例えば、受信部１１１により受信されたブレーキ制御指示（つまり受信されたデータフレームに係るブレーキ制御指示）が減速量として最大量の指定を含む場合において、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａより大きいことを所定条件Ｃとして用い、受信部１１１により受信されたブレーキ制御指示が減速量としてゼロの指定を含む場合において、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａ以下の第２閾値ｂより小さいことを所定条件Ｃとして用いる。これは、減速量を最大とするようにブレーキを作動させる旨のブレーキ制御指示が不正となるような状況においては、ブレーキの作動を抑止させる（減速量をゼロにする）旨のブレーキ制御指示は不正とならず、また、ブレーキの作動を抑止させる旨のブレーキ制御指示が不正となるような状況においては、減速量を最大とするようにブレーキを作動させる旨のブレーキ制御指示が不正とならないこと等を示す。なお、例えば第２閾値ｂは第１閾値ａより小さいこととしても良い。
【００８２】
また、例えば、所定演算Ｆ（Ｖ，Ｌ）＝Ｌ−Ｇ（Ｖ）であるとしても良い。Ｇは、係数が定められた一変数の多項式関数である。多項式関数は１次関数であっても良いし、２次以上のｎ次関数であっても良い。この場合に、所定演算Ｆ（Ｖ，Ｌ）は、Ｇの変数に速度（相対速度Ｖ）を代入したＧ（Ｖ）を、距離Ｌからの減算したものとなる。
【００８３】
更に、単純化した一例としては、所定演算Ｆ（Ｖ，Ｌ）＝Ｌ−ｋＶであることとしても良い。ここでｋは定められた係数である。
【００８４】
図７は、ブレーキ制御指示の不正判別の条件について説明するための図である。同図では、正常な状態の緊急ブレーキＥＣＵ３１０が、減速量としてゼロより大きい量の指定を含むブレーキ制御指示のデータフレームをバス３０に送信した際における車両２０と障害物との距離Ｌ（ｍ）、及び、車両２０の障害物に対する相対速度Ｖ（ｋｍ／ｈ）を測定した実験結果の分布を、グラフ上の点（黒菱形）で表している。上述した所定演算Ｆ（Ｖ，Ｌ）は、このような正常な状態の緊急ブレーキＥＣＵ３１０から送信されて受信部１１１により受信されたブレーキ制御指示が減速量としてゼロより大きい量の指定を含む場合において所定演算Ｆ（Ｖ，Ｌ）の結果が、第１閾値ａ以下、かつ、第２閾値ｂ以上となるように、定められている。これにより、正常な状態の緊急ブレーキＥＣＵ３１０が送信するブレーキ制御指示については所定条件Ｃが満たされなくなる。
【００８５】
また、図７には、Ｌ−ｋＶ＝０の関係式を示す直線Ｆ０１と、Ｌ−ｋＶ＝−１の関係式を示す直線Ｆ０２とを付記している。ここでの係数ｋは、０．２５である。
【００８６】
一例としては、距離Ｌ及び相対速度Ｖの関係が、図７において直線Ｆ０１より上側部分である状況においては、減速量として最大量を指定するブレーキ制御指示（ブレーキを作動させる指示）がバス３０に送信された場合にそのブレーキ制御指示が不正であると判別することとしても良い。また、同様に、距離Ｌ及び相対速度Ｖの関係が、図７において直線Ｆ０２より下側部分である状況においては、減速量としてゼロを指定するブレーキ制御指示（ブレーキの作動を抑止させる指示）がバス３０に送信された場合にそのブレーキ制御指示が不正であると判別することとしても良い。この例は、所定演算Ｆ（Ｖ，Ｌ）＝Ｌ−ｋＶ、第１閾値ａ＝０、及び、第２閾値ｂ＝−１として、判別部１３１が、減速量として最大量の指定を含むブレーキ制御指示について、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａより大きいことを所定条件Ｃとして用い、減速量としてゼロの指定を含むブレーキ制御指示について、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａ以下の第２閾値ｂより小さいことを所定条件Ｃとして用いることとし、所定条件Ｃが満たされた場合にブレーキ制御指示が不正であると判別することに対応する。これは一例に過ぎないが、例えばこのように実験結果に基づいて、ブレーキ制御指示が不正か否かを判別するための所定条件Ｃを定めることは可能である。
【００８７】
なお、図７の実験結果と直線Ｆ０１との関係に鑑みて、判別部１３１は、受信部１１１により受信されたブレーキ制御指示がブレーキの作動の指示（例えば減速量をゼロ以外と指定したブレーキ制御指示）である場合において、距離Ｌの相対速度Ｖに対する比が予め定められた閾値を超えることを所定条件Ｃとして用いることとしても良い。また、不正なブレーキ制御指示であると判別するための所定条件は、例えば、相対速度Ｖが、複数の範囲区分のうち特定の１以上の区分（例えば８ｋｍ／ｈ〜１０ｋｍ／ｈ等）に属し、かつ、距離Ｌが複数の範囲区分のうち特定の１以上の区分（例えば３ｍ〜４ｍ）に属する場合に満たされるような条件であっても良い。
【００８８】
［１．８  セキュリティＥＣＵ１００の制御処理］
図８は、セキュリティＥＣＵ１００における制御処理の一例を示す。以下、同図に即して、セキュリティＥＣＵ１００において不正なブレーキ制御指示の攻撃フレームに適切に対処するために実行される制御処理について説明する。
【００８９】
セキュリティＥＣＵ１００は、受信部１１１で、センサＥＣＵ３２０が送信した、測定情報を含むデータフレームをバス３０から受信した場合には（ステップＳ１１）、測定情報を記憶部１２０に保存、つまり格納する（ステップＳ１２）。これにより、記憶部１２０に、障害物と車両との距離Ｌ（ｍ）と、障害物と車両との相対速度Ｖ（ｋｍ／ｈ）とを表す測定情報が保存される。センサＥＣＵ３２０は、周期的にセンサでの測定結果を示す測定情報を含むデータフレームを送信するので、このステップＳ１２での測定情報の保存は、繰り返し行われることになる。
【００９０】
セキュリティＥＣＵ１００は、受信部１１１で、ブレーキ制御指示のデータフレームをバス３０から受信した場合には（ステップＳ１３）、記憶部１２０に直近に保存されている最新の測定情報に基づいて、判別部１３１で、車両と障害物との距離Ｌ及び相対速度Ｖを特定する（ステップＳ１４）。そして、判別部１３１は、特定した距離Ｌと相対速度Ｖとについての所定条件Ｃが満たされるか否かを判別することで、ステップＳ１３で受信されたデータフレームに係るブレーキ制御指示が不正か否かを判別する（ステップＳ１５）。なお、受信部１１１によりブレーキ制御指示のデータフレームのデータフィールドまでの受信が終了すれば、ブレーキ制御指示における減速量の指定の内容を取得することができるので、判別部１３１は、減速量の指定が最大量であるか、ゼロであるか、その他であるか等を特定できる。例えば、判別部１３１は、減速量として最大量の指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａより大きいことを所定条件Ｃとして用い、減速量としてゼロの指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａ以下の第２閾値ｂより小さいことを所定条件Ｃとして用いる。また、判別部１３１は、例えば、減速量としてゼロより大きく最大量より小さい指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が、第１閾値ａより大きいことを所定条件Ｃとして用いることとしても良いし、他の予め定めた閾値より大きい或いは小さいことを所定条件Ｃとして用いることとしても良い。
【００９１】
ステップＳ１５で、判別部１３１が、所定条件Ｃが満たされると判別した場合には、ブレーキ制御指示を不正と判別したこととなる。この場合にエラーフレーム送信制御部１３２は、送信部１１２にエラーフレームを送信させることで、ブレーキ制御指示のデータフレームを無効化させる無効化制御を行う（ステップＳ１６）。
【００９２】
［１．９  制御システム１０におけるブレーキ制御に係る処理シーケンス］
図９及び図１０は、制御システム１０におけるブレーキ制御に係る処理シーケンスの一例を示す。
【００９３】
図９は、車両２０が障害物と衝突するおそれがない状況で、診断用ポート３９０に接続された装置（不正ＥＣＵと称する）がバス３０に不正なブレーキ制御指示（急ブレーキを作動させるような指示）のデータフレームを送信する例を示す。以下、図９に即して、制御システム１０における各ＥＣＵの動作について説明する。なお、ここでは不正ＥＣＵが、診断用ポート３９０に接続された装置である例を用いて説明するが、これはバス３０にアクセス可能な不正な装置の一例に過ぎず、例えば、バス３０に接続されているいずれかのＥＣＵが攻撃者に攻撃されて支配されている場合（例えばＥＣＵのファームウェア等を不正に書き換えられている場合）においては、そのＥＣＵが不正ＥＣＵとなり得る。
【００９４】
センサＥＣＵ３２０は、障害物センサ３２１及び速度センサ３２２で測定された測定結果を示す測定情報を含むデータフレームをバス３０に送信する（ステップＳ１０１）。これにより、バス３０に接続された各ＥＣＵ（緊急ブレーキＥＣＵ３１０、セキュリティＥＣＵ１００等）は、障害物と車両との距離及び障害物と車両との相対速度を表す測定情報を受信する。
【００９５】
ブレーキ制御指示を周期的に送信する緊急ブレーキＥＣＵ３１０は、障害物との衝突のおそれがない場合においては、減速量をゼロと指定したブレーキ制御指示のデータフレームをバス３０に送信する（ステップＳ１０２）。
【００９６】
例えば、緊急ブレーキＥＣＵ３１０がブレーキ制御指示のデータフレームを送信した直後等において、不正ＥＣＵが、減速量を最大量に指定したブレーキ制御指示（不正なブレーキ制御指示）のデータフレームをバス３０に送信する（ステップＳ１０３）。なお、緊急ブレーキＥＣＵ３１０によるブレーキ制御指示のデータフレームの送信周期と略一致するように不正ＥＣＵが不正なブレーキ制御指示のデータフレームを送信した場合には、不正か否かを送信周期に基づいては判別できない。
【００９７】
セキュリティＥＣＵ１００は、制御処理（図８参照）により、不正ＥＣＵが送信したブレーキ制御指示のデータフレームのデータフィールドまで受信した段階で、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図９の例では、ステップＳ１０２で緊急ブレーキＥＣＵ３１０から送信されたブレーキ制御指示のデータフレームの受信に際して、セキュリティＥＣＵ１００では、所定条件Ｃが満たされずにそのブレーキ制御指示が適正であると判別される。また、ステップＳ１０３で不正ＥＣＵから送信されたブレーキ制御指示のデータフレームの受信に際して、セキュリティＥＣＵ１００では、所定条件Ｃが満たされてそのブレーキ制御指示が不正であると判別される。
【００９８】
所定条件Ｃが満たされ、ステップＳ１０３に対応して受信されたデータフレームに係るブレーキ制御指示が不正であると判別すると、セキュリティＥＣＵ１００は、エラーフレームを送信する（ステップＳ１０４）。このエラーフレームの送信により、不正ＥＣＵから送信された不正なブレーキ制御指示のデータフレームは無効化され（つまり、バス３０上においてそのデータフレームの一部がエラーフレームで上書きされることで無効化され）、ブレーキＥＣＵ２００におけるブレーキ制御に利用されない。このため、ブレーキＥＣＵ２００では、制御処理部２３０が、ステップＳ１０２に対応して受信された緊急ブレーキＥＣＵ３１０からのブレーキ制御指示に従う。従って、ブレーキＥＣＵ２００の制御処理部２３０は、不正ＥＣＵからの不正なブレーキ制御指示に従ったブレーキ２０１の作動を行うことがない（ステップＳ１０５）。
【００９９】
なお、もしセキュリティＥＣＵ１００が存在しなければ、ステップＳ１０３で不正ＥＣＵが送信した不正なブレーキ制御指示のデータフレームは無効化されない。この場合には、不正なブレーキ制御指示のデータフレームがブレーキＥＣＵ２００で完全に受信され、ステップＳ１０２に対応してデータバッファ２２０に格納された緊急ブレーキＥＣＵ３１０からのブレーキ制御指示を、その不正なブレーキ制御指示が上書きする。そして、ブレーキＥＣＵ２００の制御処理部２３０は、不正ＥＣＵからの不正なブレーキ制御指示に従って、ブレーキ２０１を制御してしまう。
【０１００】
図１０は、車両２０が障害物と衝突する直前という状況で、不正ＥＣＵがバス３０に不正なブレーキ制御指示（ブレーキの作動を抑止させるような指示）のデータフレームを送信する例を示す。以下、図１０に即して、制御システム１０における各ＥＣＵの動作について説明する。
【０１０１】
センサＥＣＵ３２０は、障害物センサ３２１及び速度センサ３２２で測定された測定結果を示す測定情報を含むデータフレームをバス３０に送信する（ステップＳ２０１）。このステップＳ２０１は、上述の図９のステップＳ１０１と同様である。
【０１０２】
ブレーキ制御指示を周期的に送信する緊急ブレーキＥＣＵ３１０は、障害物との衝突の直前においては、減速量を最大量と指定したブレーキ制御指示のデータフレームをバス３０に送信する（ステップＳ２０２）。
【０１０３】
例えば、緊急ブレーキＥＣＵ３１０がブレーキ制御指示のデータフレームを送信した直後等において、不正ＥＣＵが、減速量をゼロに指定したブレーキ制御指示（不正なブレーキ制御指示）のデータフレームをバス３０に送信する（ステップＳ２０３）。
【０１０４】
セキュリティＥＣＵ１００は、制御処理（図８参照）により、不正ＥＣＵが送信したブレーキ制御指示のデータフレームのデータフィールドまで受信した段階で、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図１０の例では、ステップＳ２０２で緊急ブレーキＥＣＵ３１０から送信されたブレーキ制御指示のデータフレームの受信に際して、セキュリティＥＣＵ１００では、所定条件Ｃが満たされずにそのブレーキ制御指示が適正であると判別される。また、ステップＳ２０３で不正ＥＣＵから送信されたブレーキ制御指示のデータフレームの受信に際して、セキュリティＥＣＵ１００では、所定条件Ｃが満たされてそのブレーキ制御指示が不正であると判別される。
【０１０５】
所定条件Ｃが満たされ、ステップＳ２０３に対応して受信されたデータフレームに係るブレーキ制御指示が不正であると判別すると、セキュリティＥＣＵ１００は、エラーフレームを送信する（ステップＳ２０４）。このエラーフレームの送信により、不正ＥＣＵから送信された不正なブレーキ制御指示のデータフレームは無効化され、ブレーキＥＣＵ２００におけるブレーキ制御に利用されない。このため、ブレーキＥＣＵ２００では、制御処理部２３０が、ステップＳ２０２に対応して受信された緊急ブレーキＥＣＵ３１０からのブレーキ制御指示に従って、ブレーキ２０１を作動させる（ステップＳ２０５）。
【０１０６】
［１．１０  実施の形態１の効果］
実施の形態１に係る制御システム１０では、セキュリティＥＣＵ（制御装置）１００の制御部１３０が、ブレーキ制御指示（つまりブレーキ制御指示のデータフレーム）の受信部１１１での受信の直前にセンサＥＣＵ３２０から取得した測定情報に基づいて、そのブレーキ制御指示の受信の際における車両２０と障害物との距離Ｌ、及び、車両２０の障害物に対する相対速度Ｖを特定し、距離Ｌと相対速度Ｖとについての所定条件Ｃが満たされる場合に、エラーフレームの送信によりそのブレーキ制御指示を無効化する無効化制御を行う。所定条件Ｃは、ブレーキ制御指示が、減速量として最大量を指定するものか、減速量としてゼロを指定するものかにより相違し得る。所定条件Ｃは、正常状態の緊急ブレーキＥＣＵ３１０が送信するブレーキ制御指示については所定条件Ｃが満たされないように、定めておくことができる。不正ＥＣＵが、緊急ブレーキＥＣＵ３１０と相違するブレーキ制御指示（つまり不正なブレーキ制御指示のデータフレーム）をバス３０に送信した際に、セキュリティＥＣＵ１００は、所定条件Ｃが満たされるとそのブレーキ制御指示を不正と判別してエラーフレームの送信により無効化するので、ブレーキＥＣＵ２００が不正なブレーキ制御指示に従ってブレーキ２０１を制御してしまうことが防止され得る。即ち、制御システム１０では、セキュリティＥＣＵ１００によりブレーキ制御指示に係る不正なフレーム（攻撃フレーム）への適切な対処がなされ、攻撃フレームによって事故が引き起こされることが防止され得る。
【０１０７】
（実施の形態２）
以下、実施の形態１で示した制御システム１０における車両２０内の一部のＥＣＵを変形してなる制御システム１１について説明する。
【０１０８】
実施の形態１に係る制御システム１０では、セキュリティＥＣＵ１００が、バス３０を流れるブレーキ制御指示（ブレーキ制御指示のデータフレーム）を不正と判別した場合にエラーフレームの送信によりブレーキ制御指示のデータフレームを無効化する。これに対して、本実施の形態に係る制御システム１１は、セキュリティＥＣＵ１００を備えず、実施の形態１で示したブレーキＥＣＵ２００を部分的に変形したブレーキＥＣＵが、受信したブレーキ制御指示が不正か否かを判別し、不正と判別した場合にそのブレーキ制御指示に従ったブレーキ制御を行わない（つまりブレーキ制御指示を破棄する）例について説明する。
【０１０９】
［２．１  制御システム１１の構成］
図１１は、本実施の形態に係る制御システム１１の全体構成を示す図である。実施の形態１で示した制御システム１０（図１参照）と同様の構成については、図１１において図１と同一の符号を付しており、説明を省略する。
【０１１０】
制御システム１１は、主として車両２０における車載ネットワークシステムで構成され、図１１に例示するように、車両２０に搭載された各種ＥＣＵ（ブレーキＥＣＵ２２００、緊急ブレーキＥＣＵ３１０、センサＥＣＵ３２０、及び、エンジンＥＣＵ３３０）と、バス３０とを含んで構成される。ここで、特に説明しない事項については、制御システム１１は、実施の形態１で示した制御システム１０と同様である。
【０１１１】
［２．２  ブレーキＥＣＵ２２００の構成］
図１２は、ブレーキＥＣＵ２２００の構成図である。ブレーキＥＣＵ２２００は、実施の形態１で示したブレーキＥＣＵ２００を一部変形したものであり、ブレーキＥＣＵ２００（図４参照）と同様の構成については、図１２において図４と同一の符号を付しており、説明を適宜省略する。
【０１１２】
ブレーキ２０１に接続され、ブレーキ２０１を制御するためのブレーキＥＣＵ２２００は、通信部２１０と、データバッファ２２０と、制御処理部２３０と、制御部２１３０とを含んで構成される。
【０１１３】
通信部２１０の有するフレーム受信に係る機能構成を、図１２において受信部２１１１として表している。受信部２１１１は、バス３０からＣＡＮプロトコルに従ってフレームの受信（フレームの１ｂｉｔずつの逐次受信）を行う。受信部２１１１は、フレームの受信機能、及び、受信フレームの解釈機能を有し、バス３０から受信したフレームの値を、ＣＡＮプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。この解釈により、データフレームにおけるＩＤ（メッセージＩＤ）、ＤＬＣ、データフィールドのデータのそれぞれが区別して抽出される。受信部２１１１は、抽出したＩＤが、制御システム１１における車載ネットワークシステムで予め定められている、ブレーキ制御指示を示すデータフレームのＩＤ、或いは、センサＥＣＵ３２０から送信される測定情報を示すデータフレームのＩＤ等の受信すべきＩＤであるか否かを判別する。受信部２１１１は、受信すべきＩＤでなければそのフレームの解釈を中止する。
【０１１４】
通信部２１０では、受信部２１１１で受信したフレームのＣＲＣの値が合わなかったり、ドミナント固定とされている項目がレセシブだったりする等、ＣＡＮプロトコルに則っていないフレームと判断した場合は、バス３０にエラーフレームを送信するよう制御する。また、受信部２１１１では、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。受信部２１１１は、受信すべきＩＤと判別されたフレームの内容（ＩＤ、データフィールドのデータ等）を、制御部２１３０における記憶部１２０に格納する。
【０１１５】
制御部２１３０は、制御プログラムを実行するプロセッサ等により実現され、一定条件下でブレーキ制御指示を示す情報のデータバッファ２２０への転送を抑止するフィルタリング処理により、ブレーキ制御指示を破棄する制御を行う機能を担う。制御部２１３０は、記憶部１２０、判別部１３１及び転送部２１３３を含んで構成される。制御部２１３０における記憶部１２０は、実施の形態１で示したセキュリティＥＣＵ１００の記憶部１２０と同様であり、受信部２１１１により受信されたフレームの内容を格納するためのメモリ等の記憶媒体の一記憶領域である。記憶部１２０には、例えば、センサＥＣＵ３２０から逐次送信される測定情報に係るデータフレームの内容、及び、ブレーキ制御指示に係るデータフレームの内容（例えば減速量等）が逐次格納される。測定情報は、車両２０と障害物との距離及び車両２０の障害物に対する相対速度を示す。
【０１１６】
制御部２１３０における判別部１３１は、実施の形態１で示したセキュリティＥＣＵ１００の判別部１３１と概ね同様であり、受信部２１１１がブレーキ制御指示のデータフレームを受信した際における車両２０と障害物との距離Ｌ、及び、障害物に対する車両２０の速度（相対速度）Ｖについての所定条件Ｃが満たされるか否かにより、ブレーキ制御指示が不正か否かを判別する。判別部１３１は、受信部２１１１により受信された測定情報に基づいて車両２０と障害物との距離Ｌ、及び、障害物に対する車両２０の速度（相対速度）Ｖを特定し、特定した距離Ｌ及び速度Ｖに基づいて所定条件Ｃが満たされるか否かを判別する。判別部１３１は、ブレーキ制御指示についての不正か否かの判別結果を転送部２１３３に通知する。判別部１３１は、受信部２１１１がブレーキ制御指示のデータフレームを受信した際における車両２０と障害物との距離Ｌ、及び、車両２０の速度Ｖとして、記憶部１２０に逐次格納された測定情報のうちそのブレーキ制御指示のデータフレームを受信した際における最新の測定情報が示す車両２０と障害物との距離、及び、車両２０の速度（障害物に対する相対速度）を用いる。なお、ブレーキ制御指示を不正と判別するための所定条件Ｃとして、例えば、実施の形態１で説明したようにブレーキ制御指示において指定される減速量に応じて、複数の条件のうちの１つが選択され得る。
【０１１７】
転送部２１３３は、判別部１３１によりブレーキ制御指示が不正でないと判別された場合には、そのブレーキ制御指示に係るデータフレームの内容を記憶部１２０からデータバッファ２２０に転送し、ブレーキ制御指示が不正であると判別された場合には、そのブレーキ制御指示に係るデータフレームの内容を記憶部１２０からデータバッファ２２０に転送しない。
【０１１８】
データバッファ２２０には、不正でないと判別されたブレーキ制御指示のデータフレームの内容としてのＩＤ、データフィールドのデータ等を示す情報（つまりブレーキ制御指示を示す情報）が格納される。
【０１１９】
制御処理部２３０は、データバッファ２２０に格納されたフレームの内容（ブレーキ制御指示等を示す情報）を、周期的に或いは一定条件（データバッファ２２０へのフレーム格納に関連した条件等）が成立した場合等に取得し、その取得した情報が示すブレーキ制御指示に従って、ブレーキ２０１に対して制御信号を送信することでブレーキ２０１を制御する。
【０１２０】
なお、ブレーキＥＣＵ２２００の一部（例えば受信部２１１１及び制御部２１３０）は、不正なブレーキ制御指示の攻撃フレームに適切に対処する制御装置２１００として機能する。
【０１２１】
［２．３  ブレーキＥＣＵ２２００の制御処理］
図１３は、ブレーキＥＣＵ２２００における制御処理の一例を示す。以下、同図に即して、ブレーキＥＣＵ２２００において不正なブレーキ制御指示の攻撃フレームに適切に対処するために実行される制御処理について説明する。
【０１２２】
ブレーキＥＣＵ２２００は、受信部２１１１で、センサＥＣＵ３２０が送信した、測定情報を含むデータフレームをバス３０から受信した場合には（ステップＳ２１）、測定情報を記憶部１２０に保存、つまり格納する（ステップＳ２２）。これにより、記憶部１２０に、障害物と車両との距離Ｌ（ｍ）と、障害物と車両との相対速度Ｖ（ｋｍ／ｈ）とを表す測定情報が保存される。センサＥＣＵ３２０は、周期的にセンサでの測定結果を示す測定情報を含むデータフレームを送信するので、このステップＳ２２での測定情報の保存は、繰り返し行われることになる。
【０１２３】
ブレーキＥＣＵ２２００は、受信部２１１１で、ブレーキ制御指示のデータフレームをバス３０から受信した場合には（ステップＳ２３）、記憶部１２０に直近に保存されている最新の測定情報に基づいて、判別部１３１で、車両と障害物との距離Ｌ及び相対速度Ｖを特定する（ステップＳ２４）。そして、判別部１３１は、特定した距離Ｌと相対速度Ｖとについての所定条件Ｃが満たされるか否かを判別することで、ステップＳ２３で受信されたデータフレームに係るブレーキ制御指示が不正か否かを判別する（ステップＳ２５）。受信部２１１１によりブレーキ制御指示のデータフレームが受信された場合にブレーキ制御指示で指定された減速量等が受信部２１１１により記憶部１２０に格納されるので、判別部１３１は、減速量の指定が最大量であるか、ゼロであるか、その他であるか等を特定できる。本実施の形態においても判別部１３１は、実施の形態１で示したように、減速量として最大量の指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａより大きいことを所定条件Ｃとして用い、減速量としてゼロの指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が第１閾値ａ以下の第２閾値ｂより小さいことを所定条件Ｃとして用いる。また、判別部１３１は、例えば、減速量としてゼロより大きく最大量より小さい指定を含むブレーキ制御指示については、所定演算Ｆ（Ｖ，Ｌ）の結果が、第１閾値ａより大きいことを所定条件Ｃとして用いることとしても良いし、他の予め定めた閾値より大きい或いは小さいことを所定条件Ｃとして用いることとしても良い。
【０１２４】
ステップＳ２５で、判別部１３１が、所定条件Ｃが満たされると判別した場合には、ブレーキ制御指示を不正と判別したこととなる。ブレーキ制御指示が不正であると判別された場合には、転送部２１３３は、ブレーキ制御指示のデータフレームの内容を記憶部１２０からデータバッファ２２０に転送せず（ステップＳ２６）、ブレーキ制御指示が不正でないと判別された場合には、転送部２１３３は、ブレーキ制御指示のデータフレームの内容を記憶部１２０からデータバッファ２２０に転送する（ステップＳ２７）。このステップＳ２５〜Ｓ２７での処理により、ブレーキＥＣＵ２２００は、不正なブレーキ制御指示に従ったブレーキ２０１の制御を抑止し、適正なブレーキ制御指示に従ってブレーキ２０１の制御を行うことになる。
【０１２５】
［２．４  制御システム１１におけるブレーキ制御に係る処理シーケンス］
図１４及び図１５は、制御システム１１におけるブレーキ制御に係る処理シーケンスの一例を示す。
【０１２６】
図１４は、車両２０が障害物と衝突するおそれがない状況で、診断用ポート３９０に接続された装置（不正ＥＣＵ）がバス３０に不正なブレーキ制御指示（急ブレーキを作動させるような指示）のデータフレームを送信する例を示す。以下、図１４に即して、制御システム１１における各ＥＣＵの動作について説明する。
【０１２７】
センサＥＣＵ３２０は、障害物センサ３２１及び速度センサ３２２で測定された測定結果を示す測定情報を含むデータフレームをバス３０に送信する（ステップＳ３０１）。これにより、バス３０に接続された各ＥＣＵ（緊急ブレーキＥＣＵ３１０、ブレーキＥＣＵ２２００等）は、障害物と車両との距離及び障害物と車両との相対速度を表す測定情報を受信する。
【０１２８】
ブレーキ制御指示を周期的に送信する緊急ブレーキＥＣＵ３１０は、障害物との衝突のおそれがない場合においては、減速量をゼロと指定したブレーキ制御指示のデータフレームをバス３０に送信する（ステップＳ３０２）。
【０１２９】
ブレーキＥＣＵ２２００は、制御処理（図１３参照）により、緊急ブレーキＥＣＵ３１０が送信したブレーキ制御指示のデータフレームを受信した際に、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図１４の例では、所定条件Ｃが満たされずにそのブレーキ制御指示が適正であると判別され、転送部２１３３により、バス３０から受信されたブレーキ制御指示のデータフレームの内容が記憶部１２０からデータバッファ２２０へと転送される（ステップＳ３０３）。
【０１３０】
そして、例えば、緊急ブレーキＥＣＵ３１０がブレーキ制御指示のデータフレームを送信した直後等において、不正ＥＣＵが、減速量を最大量に指定したブレーキ制御指示（不正なブレーキ制御指示）のデータフレームをバス３０に送信する（ステップＳ３０４）。
【０１３１】
ブレーキＥＣＵ２２００は、制御処理により、不正ＥＣＵが送信したブレーキ制御指示のデータフレームを受信した際に、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図１４の例では、所定条件Ｃが満たされてそのブレーキ制御指示が不正であると判別され、この場合に転送部２１３３は、バス３０から受信されたブレーキ制御指示のデータフレームの内容を記憶部１２０からデータバッファ２２０へと転送しない（ステップＳ３０５）。
【０１３２】
そして、ブレーキＥＣＵ２２００の制御処理部２３０は、ステップＳ３０３でデータバッファ２２０に格納された情報が示すブレーキ制御指示に対応してブレーキ制御を行うので、不正なブレーキ制御指示に従ってブレーキ２０１の作動を行うことがない（ステップＳ３０６）。
【０１３３】
図１５は、車両２０が障害物と衝突する直前という状況で、不正ＥＣＵがバス３０に不正なブレーキ制御指示（ブレーキの作動を抑止させるような指示）のデータフレームを送信する例を示す。以下、図１５に即して、制御システム１１における各ＥＣＵの動作について説明する。
【０１３４】
センサＥＣＵ３２０は、障害物センサ３２１及び速度センサ３２２で測定された測定結果を示す測定情報を含むデータフレームをバス３０に送信する（ステップＳ４０１）。このステップＳ４０１は、上述の図１４のステップＳ３０１と同様である。
【０１３５】
ブレーキ制御指示を周期的に送信する緊急ブレーキＥＣＵ３１０は、障害物との衝突の直前においては、減速量を最大量と指定したブレーキ制御指示のデータフレームをバス３０に送信する（ステップＳ４０２）。
【０１３６】
ブレーキＥＣＵ２２００は、制御処理により、緊急ブレーキＥＣＵ３１０が送信したブレーキ制御指示のデータフレームを受信した際に、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図１５の例では、所定条件Ｃが満たされずにそのブレーキ制御指示が適正であると判別され、転送部２１３３により、バス３０から受信されたブレーキ制御指示のデータフレームの内容が記憶部１２０からデータバッファ２２０へと転送される（ステップＳ４０３）。
【０１３７】
そして、例えば、緊急ブレーキＥＣＵ３１０がブレーキ制御指示のデータフレームを送信した直後等において、不正ＥＣＵが、減速量をゼロに指定したブレーキ制御指示（不正なブレーキ制御指示）のデータフレームをバス３０に送信する（ステップＳ４０４）。
【０１３８】
ブレーキＥＣＵ２２００は、制御処理により、不正ＥＣＵが送信したブレーキ制御指示のデータフレームを受信した際に、受信済の最新の測定情報に基づいて車両と障害物との距離Ｌ及び相対速度Ｖを特定して、減速量の指定に応じて所定条件Ｃを選択し、ブレーキ制御指示が不正か否かを判別する。図１５の例では、所定条件Ｃが満たされてそのブレーキ制御指示が不正であると判別され、この場合に転送部２１３３は、バス３０から受信されたブレーキ制御指示のデータフレームの内容を記憶部１２０からデータバッファ２２０へと転送しない（ステップＳ４０５）。
【０１３９】
そして、ブレーキＥＣＵ２２００の制御処理部２３０は、ステップＳ４０３でデータバッファ２２０に格納された情報が示すブレーキ制御指示に対応してブレーキ２０１を作動させる制御を行うので、不正なブレーキ制御指示に従ってブレーキ２０１の作動を抑止してしまうことがない（ステップＳ４０６）。
【０１４０】
［２．５  実施の形態２の効果］
実施の形態２に係る制御システム１１では、ブレーキＥＣＵ２２００の一部としての制御装置２１００の制御部２１３０が、ブレーキ制御指示（つまりブレーキ制御指示のデータフレーム）の受信部２１１１での受信の直前にセンサＥＣＵ３２０から取得した測定情報に基づいて、そのブレーキ制御指示の受信の際における車両２０と障害物との距離Ｌ、及び、車両２０の障害物に対する相対速度Ｖを特定し、距離Ｌと相対速度Ｖとについての所定条件Ｃが満たされる場合に、データバッファ２２０へブレーキ制御指示が転送されないようにフィルタリングすることで、そのブレーキ制御指示を破棄する制御を行う。所定条件Ｃは、ブレーキ制御指示が、減速量として最大量を指定するものか、減速量としてゼロを指定するものかにより相違し得る。所定条件Ｃは、正常状態の緊急ブレーキＥＣＵ３１０が送信するブレーキ制御指示については所定条件Ｃが満たされないように、定めておくことができる。不正ＥＣＵが、緊急ブレーキＥＣＵ３１０と相違するブレーキ制御指示（つまり不正なブレーキ制御指示のデータフレーム）をバス３０に送信した際に、制御部２１３０は、所定条件Ｃが満たされるとそのブレーキ制御指示を不正と判別して、データバッファ２２０へそのブレーキ制御指示を示す情報が転送されないようにフィルタリングするので、制御処理部２３０が不正なブレーキ制御指示に従ってブレーキ２０１を制御してしまうことが防止され得る。即ち、制御システム１１では、ブレーキＥＣＵ２２００によりブレーキ制御指示に係る不正なフレーム（攻撃フレーム）への適切な対処がなされ、攻撃フレームによって事故が引き起こされることが防止され得る。
【０１４１】
（その他変形例）
以上のように、本発明に係る技術の例示として実施の形態１、２を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【０１４２】
（１）上記実施の形態１では、セキュリティＥＣＵ１００は、車両２０と障害物との距離、及び、車両２０の速度（障害物に対する相対速度）をバス３０経由で取得する例（測定情報を含むデータフレームの受信により取得する例）を示した。この他に、例えばセキュリティＥＣＵ１００と専用の通信線で接続した各センサを用いて、ブレーキ制御指示のデータフレームを受信した際に（つまりその受信の前後の一定期間内において）、車両２０と障害物との距離、及び、車両２０の速度（障害物に対する相対速度）を測定することで直接的に取得することとしても良い。また、上記実施の形態で示した車両２０と障害物との相対速度の代わりに、車両２０の絶対速度を速度センサ３２２で取得して、ブレーキ制御指示が不正であるか否かの判別のための所定条件として、車両２０と障害物との距離、及び、車両２０の絶対速度についての条件を用いることとしても良い。
【０１４３】
（２）上記実施の形態２では、ブレーキＥＣＵ２２００の一部が、不正なブレーキ制御指示の攻撃フレームに適切に対処する制御装置２１００として機能する例を示した。即ち、制御部２１３０が、ブレーキ制御指示が不正であることの判別のための所定条件が満たされない場合において、受信部２１１１により受信されたブレーキ制御指示を示す情報をデータバッファ２２０に格納し、所定条件が満たされる場合には、受信部２１１１により受信されたブレーキ制御指示を示す情報をデータバッファ２２０に格納しないことで、ブレーキ制御指示を破棄する制御を行うこととした。この他に、ブレーキＥＣＵ２２００が、不正なブレーキ制御指示の攻撃フレームに適切に対処する制御装置として機能することとしても良い。例えば、制御部２１３０に、制御処理部２３０の機能を含ませて、ブレーキ制御指示が不正であることの判別のための所定条件が満たされない場合において、受信部２１１１により受信されたブレーキ制御指示に従って、ブレーキ２０１の制御を行い、所定条件が満たされる場合には、受信部２１１１により受信されたブレーキ制御指示を破棄することでブレーキ制御指示に従ったブレーキ２０１の制御を抑止する制御を行うこととしても良い。
【０１４４】
（３）上記実施の形態で示したブレーキ制御指示が不正であることの判別のための所定条件は、車両２０の車種毎に対応して定められていることとしても良い。即ち、同一車種の複数の車両２０それぞれにおいて所定条件が同じように定められ、互いに相違する車種の複数の車両２０それぞれにおいて所定条件が相違するように定められ得る。ここでの車種が同一の車両は、例えば、型式（車両型式）が同一の車両である。一例としては、車種が同一の車両は、車台番号における型式の値、或いは、車両識別番号（ＶＩＮ：Vehicle Identification Number）における先頭からシリアル番号の前までの桁の値が、同一の車両である。
【０１４５】
（４）上記実施の形態で示した制御部１３０、２１３０は、ブレーキ制御指示が不正であることの判別のための所定条件Ｃに係る所定演算Ｆ（Ｖ，Ｌ）の内容を、車両２０のブレーキ２０１による制動距離に影響を与える車両２０の構成要素の変化に応じて変更しても良い。例えば、制御部１３０、２１３０は、所定演算Ｆ（Ｖ，Ｌ）＝Ｌ−Ｇ（Ｖ）とした場合における多項式関数Ｇの係数等を、車両２０のブレーキ２０１の部品、タイヤ等の交換或いは劣化等に応じて変更しても良い。なお、制御部１３０、２１３０は、例えばブレーキ２０１の部品、タイヤ等の情報を、通信その他のいかなる方法で取得しても良く、また、時計、走行距離の積算計等からの情報を用いて、ブレーキ２０１の部品、タイヤ等の劣化度合いを算定しても良い。また、上記多項式関数Ｇの係数等は、例えば路面状況（舗装路、砂利道）、天候（晴天、降雨、降雪）等に応じて変更しても良い。
【０１４６】
（５）上記実施の形態で示した障害物センサ３２１は、例えば障害物の種別（例えば人と、人以外の物体等とを区別する種別）を検出し、センサＥＣＵ３２０は、障害物の種別を示す障害物情報を含むデータフレームをバス３０に送信することとしても良い。そして、受信部１１１、２１１１は、バス３０から障害物情報を含むデータフレームを受信し、制御部１３０、２１３０は、受信部１１１、２１１１により受信された障害物情報が示す種別に応じて、ブレーキ制御指示が不正であることの判別のための所定条件Ｃに係る所定演算Ｆ（Ｖ，Ｌ）の内容を変更しても良い。
【０１４７】
（６）上記実施の形態では、ブレーキ制御指示のデータフレームが減速量の指定を含む例を示したが、必ずしも減速量の指定を含まなくても良い。例えば、ブレーキ制御指示のデータフレームは、ブレーキを作動させる旨の指定或いはブレーキの作動を抑止させる旨の指定を含むこととしても良い。この場合に、ブレーキ制御指示が不正か否かの判別においては、ブレーキを作動させる旨の指定を例えば減速量の最大の指定と同様に扱うこととしても良く、ブレーキの作動を抑止させる旨の指定を例えば減速量のゼロの指定と同様に扱うこととしても良い。
【０１４８】
（７）上記実施の形態では、ＣＡＮプロトコルにおけるデータフレームについてのフォーマットとして、標準ＩＤフォーマット（図２参照）を示したが、拡張ＩＤフォーマットであっても良く、データフレームのＩＤ（メッセージＩＤ）は、拡張ＩＤフォーマットでの拡張ＩＤ等であっても良い。また、上記実施の形態で示したＣＡＮプロトコルは、ＴＴＣＡＮ（Time-Triggered CAN）、ＣＡＮＦＤ（CAN with Flexible Data Rate）等の派生的なプロトコルも包含する広義の意味のものとしても良い。
【０１４９】
（８）上記実施の形態で示した制御システム１０、１１が備える各種構成要素の機能分担は、一例に過ぎず、その分担を変更し得る。また、セキュリティＥＣＵ１００における制御部１３０等の機能の一部を、セキュリティＥＣＵ１００と通信可能な装置（例えば車両２０外部のサーバ装置等）が分担することとしても良い。
【０１５０】
（９）上記実施の形態における各ＥＣＵは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等のハードウェア構成要素を含んでいても良い。また、上記実施の形態で示した各装置は、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路等）によりその機能を実現することとしても良い。
【０１５１】
（１０）上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしても良い。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全部を含むように１チップ化されても良い。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【０１５２】
（１１）上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしても良い。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしても良い。
【０１５３】
（１２）本発明の一態様としては、例えば図８〜図１０、図１３〜図１５等に示す処理手順の全部又は一部を含む制御方法であるとしても良い。例えば、制御方法は、車両２０において複数のＥＣＵが通信に用いるバス３０からブレーキ制御指示を受信する受信ステップ（例えばステップＳ１３、Ｓ２３）と、受信ステップでブレーキ制御指示を受信した際における車両２０と障害物との距離、及び、車両２０の速度についての所定条件が満たされる場合に、そのブレーキ制御指示を無効化又は破棄する制御を行う制御ステップ（例えばステップＳ１５〜Ｓ１６、Ｓ２５〜Ｓ２６）とを含む。また、本発明の一態様としては、この制御方法に係る処理をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。この制御方法に係る処理は、例えば、車両２０において複数のＥＣＵが通信に用いるバス３０からブレーキ制御指示を受信する受信ステップ（例えばステップＳ１３、Ｓ２３）と、受信ステップでブレーキ制御指示を受信した際における車両２０と障害物との距離、及び、車両２０の速度についての所定条件が満たされるか否かにより、そのブレーキ制御指示が不正であるか否かを判別（検知）する判別ステップ（例えばステップＳ１５、Ｓ２５）とを含む不正検知処理である。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【０１５４】
（１３）上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０１５５】
本発明は、ブレーキを要する車両等の移動体のネットワークに不正なブレーキ制御指示のフレームを送信する攻撃に対処するために利用可能である。
【符号の説明】
【０１５６】
１０、１１  制御システム
２０  車両
３０  バス
１００  セキュリティＥＣＵ（制御装置）
１１０  通信部
１１１、２１１１  受信部
１１２  送信部
１２０  記憶部
１３０、２１３０  制御部
１３１  判別部
１３２  エラーフレーム送信制御部
２００、２２００  ブレーキＥＣＵ
２０１  ブレーキ
２１０  通信部
２２０  データバッファ
２３０  制御処理部（ブレーキ制御部）
３１０  緊急ブレーキＥＣＵ
３２０  センサＥＣＵ
３２１  障害物センサ（検知装置）
３２２  速度センサ
３３０  エンジンＥＣＵ
３３１  エンジン
３９０  診断用ポート
２１００  制御装置
２１１１  受信部
２１３０  制御部
２１３３  転送部
【図１】
2019172261.tif 000003
【図２】
2019172261.tif 000004
【図３】
2019172261.tif 000005
【図４】
2019172261.tif 000006
【図５】
2019172261.tif 000007
【図６】
2019172261.tif 000008
【図７】
2019172261.tif 000009
【図８】
2019172261.tif 000010
【図９】
2019172261.tif 000011
【図１０】
2019172261.tif 000012
【図１１】
2019172261.tif 000013
【図１２】
2019172261.tif 000014
【図１３】
2019172261.tif 000015
【図１４】
2019172261.tif 000016
【図１５】
2019172261.tif 000017