(本発明の基礎となった知見等)
車両の先進運転者支援システムでは、車速又は車間距離を一定に保とうとする車速制御支援ECUは、車速等の検知を行うセンサECUを含む、ネットワーク上の他のECUからCANバス等の通信線を介して取得した情報等に基づいて、加速が必要な状況が発生したときに加速制御指示(つまり加速制御指示のフレーム)をCANバスに送信する。その加速制御指示に従って、アクセルECUがエンジン又はモーター等の原動機の出力を制御することで車両が加速する。なお、加速制御指示の内容として、加速のために原動機の出力を上げる指示の他に、例えば車速の維持のために原動機の出力を上げる又は抑える指示、加速度を調整するために原動機の出力を上げる又は抑える指示が含まれてもよい。実際にはこれらの指示は、例えばアクセル開度で表されてもよい。
攻撃者により、不正な加速制御指示の攻撃フレーム(不正なフレーム)が送信され、その不正な加速制御指示が、車速制御支援ECUが送信する適正な加速制御指示と相違する内容である場合においては、車両等の事故につながる可能性がある。適正な加速制御指示は、車両の実際の速度、車両速度に対するドライバーによる設定、若しくは車両で有効な運転支援機能等の車両の状況、又は走行中の場所での速度に関する規制、若しくは先行車両との車間距離等の車両の走行する外界の状況に対応した内容となるべきである。
そこで、CANバスに送信された加速制御指示が、これらのような車両の状況又は車両の外界の状況に応じた適正な加速制御指示か、これらの状況と不整合な内容の不正な加速制御指示かを、判定する方法に想到した。なお、車両はこの方法の適用対象の一例であり、その他の移動体にもこの方法を適用し得る。
本発明の一態様に係る監視装置を実現する電子制御装置等では、その方法を実行して不正な加速制御指示を特定する。また、不正な加速制御指示であればさらに無効化することで、その加速制御指示に従って加速制御を実行することを抑止する。これにより、不正な加速制御指示の攻撃フレームによって引き起こされる事故の防止が可能となる。
本発明の一態様に係る電子制御装置は、モビリティの状況と前記モビリティが移動する外界の状況との少なくとも一方を示す状況情報、及び、前記モビリティを加速させるための加速制御指示を取得する取得部と、取得された前記状況情報が示す状況と、取得された前記加速制御指示が示す制御内容とに基づいて、前記加速制御指示が不正な制御指示であるか否かを判定する判定部とを備える。これにより、車両の状況及び車両の外界の状況(以下、特に区別せずにまとめて車両等の状況ともいう)に照らして適切か否かに基づいて、ネットワークに送信された加速制御指示が不正な制御指示であるか否かが判定され、その判定結果を利用することができる。
また、例えば、前記判定部によって前記加速制御指示が不正な制御指示であると判定された場合に、前記加速制御指示を無効化又は破棄する無効化部をさらに備えてもよい。これにより、アクセルECUによる不正な加速制御指示に従っての加速制御の実行が抑止される。
また、例えば、前記判定部は、前記加速制御指示が、前記状況情報が示す状況と整合しない制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定してもよい。これにより、例えば車両等の状況と矛盾する加速制御指示は、不正な制御指示であると判定される。
また、例えば、前記判定部は、前記状況情報が示す状況が、前記モビリティの設定速度又は前記モビリティが移動する場所の規制速度を示し、かつ、前記加速制御指示が、前記モビリティを前記設定速度又は前記規制速度を超える速度で移動させる制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定してもよい。また、例えば、前記判定部は、前記状況情報が示す状況が、前記モビリティの先行モビリティから前記モビリティが移動すべき速度を示し、かつ、前記加速制御指示が、受信した前記モビリティが移動すべき速度を超える速度で移動させる制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定もよい。これにより、ドライバーが車両に対して設定している制限速度、又は公的な制限を超える速度で車両を走行させる加速制御指示は、不正な制御指示であると判定される。
また、例えば、前記判定部は、前記状況情報が示す状況が、前記モビリティの車速又は前記モビリティの進行方向にある物体との相対速度を示し、かつ、前記加速制御指示が、前記モビリティを、第1所定値を超える速度で移動させる制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定してもよい。また、例えば、前記判定部は、前記状況情報が示す状況が、前記モビリティの進行方向にある物体との距離を示し、かつ、前記加速制御指示が、前記モビリティを、前記物体との距離に対応する第1所定値を超える速度で移動させる制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定してもよい。これにより、例えば先行車両との車間距離を過度に詰めることになる速度で車両を走行させる加速制御指示は、不正な制御指示であると判定される。
また、例えば、前記判定部は、前記状況情報が示す状況が、前記モビリティを減速させるべき状況を示し、かつ、前記加速制御指示が、前記モビリティを、第2所定値を超える速度で移動させる制御内容を示す場合に、前記加速制御指示が不正な制御指示であると判定してもよい。これにより、減速が実行される状況で車両を加速させる加速制御指示は、不正な制御指示であると判定される。
また、例えば、前記判定部は、(1)前記状況情報が示す状況が、前記モビリティが備える先進運転者支援システムがオフであることを示し、かつ、前記加速制御指示が、第3所定値を超える速度で移動させる制御内容を示す場合、又は、(2)前記状況情報が示す状況が、前記モビリティが備える先進運転者支援システムがオフであることを示し、かつ、前記取得部が所定期間内に前記加速制御指示を取得した場合に、前記加速制御指示が不正な制御指示であると判定してもよい。これにより、ADAS機能が無効である状況で、ADAS機能からの加速制御指示を装った可能性のある加速制御指示は、不正な制御指示であると判定される。
また、本発明の一態様に係る監視方法は、電子制御装置による監視方法であって、モビリティの状況と前記モビリティが移動する外界の状況との少なくとも一方を示す状況情報、及び、前記モビリティを加速させるための加速制御指示を取得し、取得された前記状況情報が示す状況と、取得された前記加速制御指示が示す制御内容とに基づいて、前記加速制御指示が不正な制御指示であるか否かを判定する。これにより、車両等の状況に照らして適切か否かに基づいて、ネットワークに送信された加速制御指示が不正な制御指示であるか否かが判定され、その判定結果を利用することができる。
また、本発明の一態様に係るプログラムは、モビリティの状況と前記モビリティが移動する外界の状況との少なくとも一方を示す状況情報、及び、前記モビリティを加速させるための加速制御指示を取得する処理と、取得された前記状況情報が示す状況と、取得された前記加速制御指示が示す制御内容とに基づいて、前記加速制御指示が不正な制御指示であるか否かを判定する処理とをコンピュータに実行させるためのプログラムである。このプログラムが、プロセッサ(マイクロプロセッサ)を備えるコンピュータにインストールされ、そのコンピュータのプロセッサによって当該プログラムが実行されることで、バス上に現れた加速制御指示が不正であるか否か適切に判定される。
また、本発明の一態様に係るゲートウェイ装置は、モビリティの状況と前記モビリティが移動する外界の状況との少なくとも一方を示す状況情報、及び、前記モビリティを加速させるための加速制御指示を取得する取得部と、取得された前記状況情報が示す状況と、取得された前記加速制御指示が示す制御内容とに基づいて、前記加速制御指示が不正な制御指示であるか否かを判定する判定部と、前記判定部によって前記加速制御指示が不正な制御指示であると判定された場合に、前記加速制御指示を転送しない無効化部とを備える。これにより、車両等の状況に照らして適切か否かに基づいて、ネットワークに送信された加速制御指示が不正な制御指示であるか否かを、ゲートウェイ装置が判定し、その判定結果を利用することができる。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態に係る監視方法を実行する監視装置等について、図面を参照しながら説明する。ここで示す実施の形態は、本発明の一具体例を示すものである。したがって、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
なお、以下実施の形態では、自動車に搭載される車載ネットワークにおけるセキュリティ対策として説明するが、適用範囲はこれに限られない。自動車に限らず、建機、農機、船舶、鉄道、飛行機等の各種のモビリティが備えるモビリティネットワークに適用してもよい。
(実施の形態)
以下、本発明の実施の一態様として、モビリティの一例としての車両において車載ネットワークを構成するバス(CANバス)に送信された不正な加速制御指示に係るフレームを無効化するセキュリティECU(監視装置)を備える車載ネットワークシステムについて、図面を用いて説明する。なお、以下で説明する技術を船舶又は飛行機に適用する際には、走行は航行又は飛行、車線は移動経路等のように適宜読み替えて理解されたい。
[1.1 車載ネットワークシステム10の構成]
図1は、実施の形態に係る車載ネットワークシステム10の全体構成を示す図である。
車載ネットワークシステム10は、図1に例示するように、車両20に搭載された各種ECU(セキュリティECU100、アクセルECU310、センサECU320、ブレーキECU330、車速制御支援ECU350、及び通信ECU380)と、バス(CANバス)30とを含んで構成される。なお、車載ネットワークシステム10には、例えばステアリングの制御に関わるECU等の上記以外のECUも含まれ得るが、図示を省略する。また、車載ネットワークシステム10は、図示が省略されたものも含むいずれかのECUがインターネット等の通信ネットワークを通じて通信する車両外部のサーバ装置等とあわせて、車両20のための制御ネットワークシステムを構成してもよい。なお、外部との通信経路は、車載ネットワークシステム10への不正なフレームの注入(送信)又はいずれかのECUを乗っ取るための侵入経路として、車載ネットワークシステム10へのサイバー攻撃に利用され得る。
車載ネットワークシステム10上の各ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)等であり、プロセッサにより実行される制御プログラム(ソフトウェアとしてのコンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現する。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。これらのECUは、CANプロトコルに従ってバス30を介してフレームの授受を行い得る。
車載ネットワークシステム10上の一部のECUは、バス30以外の通信路によりセンサ、アクチュエータ、ユーザインタフェース装置等の各種機器と接続されている。例えば、アクセルECU310は、原動機311(のスロットル、燃料噴射装置、モーター駆動回路等)に接続され、原動機311を制御する。ブレーキECU330は、ブレーキ331(のアクチュエータ)に接続され、ブレーキ331を制御する。なお、図1では、上記の各構成要素を制御するアクチュエータ等の個別の図示を省略しており、以下では説明の簡単のために、アクチュエータ等に対する制御指示を、各構成要素に対する制御指示と表現することがある。また、通信ECU380は、アンテナ381に接続され、アンテナ381を介して車載ネットワークシステム10の外部との通信を行う。図1では、通信相手の例として他の車両21が示されている。つまり、通信ECU380によって、車車間通信が実現される。また、センサECU320は、物体検知センサ321及び速度センサ322に接続され、各センサで測定された測定情報を表すフレーム(データフレーム)を周期的にバス30に送信する。車載ネットワークシステム10において、個々のセンサに対応してセンサECU320が複数存在してもよいが、説明の便宜上、複数のセンサそれぞれで測定された測定情報を表すフレームを送信し得る1つのセンサECU320が存在する例を示す。ただし、センサECU320には車載ネットワークシステム10上の全てのセンサが接続される必要はなく、アクセルECU310又はエンジンECU340等の、センサECU320以外のECUに接続されるセンサが存在してもよい。物体検知センサ321は、車両20の進行方向又は周辺の車両、障害物、通行者、路面の区画線等の被検知物を検知する。また、車両20と被検知物との間の距離等を測定する。より具体的には、例えば前方、側方、後方又は全周囲を撮影するカメラなどのカメラ(イメージセンサ)、レーダー、若しくはライダー又はこれらの組合せで実現され得る。速度センサ322は、車両20の速度を検知するためのセンサである。ここでの車両20の速度とは、例えば車両20の絶対速度であるが、物体検知センサ321が検知した被検知物に対する車両20の相対速度であってもよい。なお、車両20の絶対速度は、移動していない被検知物に対する車両20の相対速度に等しい。
車速制御支援ECU350は、先進運転者支援システムの車速制御支援機能を担うECUである。車速制御支援ECU350は、アクセルECU310に加速制御を要求するために、センサECU320から取得した測定情報等、他のECUから取得した情報に基づいて決定した制御内容の加速制御指示のフレームをバス30に周期的に送信する。なお、車速制御支援ECU350は、例えばセンサECU320等の他のECUと統合又は直接接続されて、バス30を介さずに測定情報等の各種の情報を取得してもよい。また、車速制御支援ECU350と他のECUとの直接の接続は専用線を介して行われてもよい。
診断用ポート390は、OBD2(On-Board Diagnostics 2)等のバス30に接続された端子であり、診断用ポート390を介して、診断ツール(故障診断ツール)等の機器によるバス30へのアクセスが可能となる。
通信ECU380及び診断用ポート390もまた、車載ネットワークシステム10への攻撃に利用され得る。
セキュリティECU100は、車載ネットワークシステム10のセキュリティを確保するための機能を担う。本実施の形態では、セキュリティECU100は、バス30を流れるフレームを監視し、バス30上に現れた不正な加速制御指示に係るデータフレームをエラーフレームの送信によって無効化する装置であり、不正な加速制御指示の攻撃フレームに対処する監視装置として機能する。なお、セキュリティECU100は、不正な加速制御指示のフレームのみならず、バス30上のデータフレームが不正か否かをその他の一定条件を用いて判定し、不正なデータフレームを無効化する機能を有してもよい。
[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレーム(メッセージ)について説明する。
図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。
SOFは、1bitのドミナントで構成される。何らのメッセージも送信されていないアイドル状態のバスはレセシブであり、送信ノードであるECUは、バスをドミナントへ変更することでフレームの送信開始を通知する。
IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、IDが小さい値を持つフレームを優先させて通信調停が行われる。
RTRは、データフレームと、データフレームの要求に用いられるリモートフレームとを識別するための値であり、データフレームではドミナント1bitで構成される。
IDE及び「r」は、いずれもドミナント1bitで構成される。
DLCは、4bitで構成され、続くデータフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称される。
データフィールドは、最大64bitで構成される、フレームで送信されるデータの内容を含む。長さは8bit単位で可変である。CANプロトコルではデータの仕様については規定されておらず、設計者が決定できる。したがって、車載ネットワークシステムのデータの仕様は、車種、製造者(製造メーカ)等に依存する。
CRCシーケンスは15bitで構成される。送信ノードがSOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出した結果が入る。受信ノードは、これらのフィールドの受信から同様に算出した結果をCRCシーケンスの値と照らし合わせてフレームを正常に受信したか判断する。
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称される。
ACKスロットは1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットのタイミングでドミナントを確認応答として送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、CANバスに接続されるいずれかの受信ノードがフレームを正常に受信したことを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
[1.3 エラーフレームフォーマット]
図3は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタとから構成される。
エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために6bitのドミナントを連続で送信する。この送信は、CANプロトコルにおけるビットスタッフィングルール(同じ値を連続して6bit以上送信しない)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。
エラーフラグ(セカンダリ)は、エラーの発生を他のノードに知らせるために使用される連続した6ビットのドミナントで構成される。エラーフラグ(プライマリ)を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ(セカンダリ)を送信することになる。
エラーデリミタ「DEL」は、8bitの連続したレセシブであり、エラーフレームの終了を示す。
[1.4 アクセルECU310の構成]
図4は、アクセルECU310の構成例を示すブロック図である。原動機311を制御するためアクセルECU310は、通信部1310と、データバッファ2310と、制御処理部3310とを備える。
通信部1310は、バス30での通信の制御を担う集積回路(例えば通信回路、メモリ、プロセッサ等)である。通信部1310は、例えば、機能的な構成要素としてフレーム送受信機能部、受信フレーム解釈機能部等を含む。
フレーム送受信機能部は、例えば、バス30に対してCANプロトコルに従ってフレームの送受信(フレームの1bitずつの逐次送受信)を行う。
受信フレーム解釈機能部では、フレーム送受信機能部が受信したフレームの値を、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。受信フレーム解釈機能部では、IDフィールドと判断した値に基づいて、アクセルECU310が受信すべきデータフレーム(メッセージ)か否かを判別し、受信すべきIDでなければそのフレームの解釈を中止する。また、受信フレーム解釈機能部は、例えば、CRCの値が合わなかったり、ドミナント固定とされている項目がレセシブだったりする等、CANプロトコルに則っていないフレームと判断した場合は、フレーム送受信機能部にエラーフレームを送信させる。また、受信フレーム解釈機能部は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームであると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。受信したデータフレームのIDが車載ネットワークシステム10の仕様で予め定められている加速制御指示のフレームであることを示すIDの場合、通信部1310の受信フレーム解釈機能部において受信すべきデータフレームと判別される。受信フレーム解釈機能部は、受信すべきデータフレームと判別したフレームの内容(ID、データフィールドのデータ等)をデータバッファ2310に格納する。
データバッファ2310は、メモリ、レジスタ等といった記憶媒体の一記憶領域である。データバッファ2310には、通信部1310により受信されたデータフレームの内容としてのID、データフィールドの値が示す情報(例えば加速制御指示を示す情報)が格納される。バス30上への、複数ノードからのデータフレームの同時送信時にはIDによる通信調停が行われる。このため、アクセルECU310が、車速制御支援ECU350が送信する加速制御指示に係るデータフレームをバス30から受信するタイミングは、必ずしも一定周期(例えば50ms等)と正確に一致するとは限らず、その一定周期から多少ずれることもある。アクセルECU310では、このような通信調停の影響などによって生じる受信タイミングの変動にも対応して、受信したデータフレームを効率的に処理できるようデータバッファ2310が用いられる。
制御処理部3310は、データバッファ2310に格納されたフレームの内容(加速制御指示等を示す情報)を、周期的に又は一定条件(データバッファ2310へのフレーム格納に関連した条件等)が成立した場合等に取得し、その取得した情報が示す加速制御指示に従って、原動機311に制御信号を送信することで原動機311を制御する。
なお、ブレーキECU330等の、アクチュエータを制御し得るECUは、通信部、データバッファ、及びアクチュエータの制御のための制御処理部を備える。また、センサと接続されたセンサECU320については、センサでの測定結果を取得し、予め定められたメッセージIDを付してその測定結果を示す測定情報をデータフィールド内に含むデータフレームを生成する処理部と、そのデータフレームをCANプロトコルに従ってバス30に送信するための通信部等を備える。この測定情報は、例えば被検知物の認識結果、車両20と被検知物との距離、車両20の速度等に関する測定結果を示す。なお、センサECU320以外のECUであっても、センサと接続されている場合には、センサECU320が備えるこのような各構成要素を備え得る。また、アンテナと接続された通信ECU380については、車載ネットワークシステム10の外部から通信データを受信する無線通信部、受信した通信データから車載ネットワークシステム10に転送する情報を抽出し、その情報をデータフィールド内に含むデータフレームを、予め定められたメッセージIDを付して生成する処理部と、そのデータフレームをCANプロトコルに従ってバス30に送信するためのCAN通信部等を備える。データフレームに含めて送信される情報とは、例えば車両21の走行制御の状況、車両21のセンサによる測定で得られた測定結果等、車両20が走行する外界の状況を示す情報である。
[1.5 加速制御指示]
図5は、車速制御支援ECU350が送信する加速制御指示に係るフレームのデータフィールドの一例を示す図である。この例では、加速制御指示のフレームのデータフィールドには、原動機311に対する出力の指定が含まれ、図5では、データフィールドの値とアクセル開度との対応の例を示している。なお、ここでのアクセル開度は、ドライバーが操作するアクセルペダルの実際の位置に応じた開度ではなく、車速制御支援ECU350がアクセルECU310に、原動機311の出力制御のために指定して使用させるパラメータの一例である。加速制御指示のフレームのデータフィールドにはアクセル開度以外の情報が付加されていてもよいが、ここでは説明の便宜上、アクセル開度のみに注目して説明する。この例では、アクセル開度は8bit値で表され、値255(11111111)は、アクセル開度0を、値55(00110111)はアクセル開度の最大値(この例では100)を示し、その間の値は0.5刻みの出力を示す。
アクセルECU310では、車速制御支援ECU350から、アクセル開度の指定を含む加速制御指示を受信した場合に、このアクセル開度に従って原動機311を作動させる。より具体的な例で説明すると、加速制御指示のアクセル開度が最大量(この例では100)であるときには、アクセルECU310の制御処理部3310は、アクセルペダルが全行程踏み込まれた場合と同じ制御信号を送信して原動機311を作動させる。また、車速制御支援ECU350から、アクセル開度をゼロと指定する加速制御指示を受信したときには、アクセルECU310の制御処理部3310は、アクセルペダルが踏まれていない場合と同じ制御信号を原動機311へ送信する。なお、アクセルECU310では、車両20の加速の自動制御に関する設定等に応じて、ドライバーによるアクセルペダルの操作を反映した原動機311の制御と車速制御支援ECU350からの加速制御指示に従う原動機311の制御との間で一方を他方に優先させることがある。
[1.6 セキュリティECU100の構成]
図6は、セキュリティECU100の構成例を示すブロック図である。セキュリティECU100は、バス30に流れるフレームを監視し、バス30上に現れた不正な加速制御指示に係るデータフレームを、エラーフレームの送信により無効化する制御装置としての機能を有し、この機能の実現のために、通信部1100と、記憶部2100と、監視処理部3100とを備える。これらの各構成要素の各機能は、例えばセキュリティECU100における通信回路、メモリ等の記憶媒体、メモリに格納された制御プログラムを実行するプロセッサ又はデジタル回路等により実現される。
通信部1100は、通信回路、制御プログラムを実行するプロセッサ等により実現される。通信部1100は、CANプロトコルに従ってバス30との間のフレームの送受信(フレームの1bitずつの逐次送受信)を行うための受信部1101及び送信部1102を含む。受信部1101は、バス30からフレームを受信する。通信部1100は、受信部1101によってバス30からフレームが受信されると、フレームの値をCANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行うことでID(メッセージID)、DLC、データフィールドのデータのそれぞれを区別してフレームから抽出する。通信部1100は、抽出したIDが、車載ネットワークシステム10の仕様で予め定められているIDのうちの、セキュリティECU100が受信すべきフレームのIDであるか否かを判別する。通信部1100は、受信すべきフレームのIDでなければそのフレームの解釈を中止する。受信部1101は、本実施の形態における取得部の例である。また、通信部1100は、受信部1101が受信したフレームを解釈して取得した当該フレームの内容(ID、データ等)を、記憶部2100に格納する。また、通信部1100は、監視処理部3100からのエラーフレームの送信指示を受けて、送信部1102によりエラーフレームをバス30に送信する。
セキュリティECU100が受信すべきフレームには、車速制御支援ECU350から送信される加速制御指示のフレームが含まれる。また、車両20の状況を示す情報及び車両20が走行する外界の状況を示す情報(以下、これらの状況の少なくとも一方を示す情報を状況情報ともいう)の少なくとも一方を示すフレームもセキュリティECU100によって受信される。車両20の状況を示すフレームとは、例えば車速制御支援ECU350から送信される有効(オン)又は無効(オフ)な車速制御支援機能を示すデータフレームが挙げられる。また、車速制御支援機能以外も含めた先進運転者支援システムの各種の支援機能の有効(オン)又は無効(オフ)、ドライバー又は各種機能による設定値を示すデータフレームも挙げられる。また、アクセルECU310から送信される現在のアクセル開度を示すデータフレームも、車両20の状況である状況情報を示すフレームとしてセキュリティECU100によって受信され得る。また、セキュリティECU100は、センサECU320等の他のECUから送信された測定情報を含むデータフレームも受信する。測定情報には、その測定対象によって、車両20の状況を示すもの(例えば車速、水温、電圧)もあるし、外界の状況(例えば車外の気温、路面状況、物体認識の結果)を示すものもある。さらにセキュリティECU100は、通信ECU380が車両21との通信によって取得し、車載ネットワークシステム10に転送する情報(例えば車両21の走行制御の状況、車両21のセンサによる測定で得られた測定結果)も受信する。この情報は、車両20の外界の状況を示すものである。
記憶部2100は、受信部1101により受信されたフレームの内容を格納するためのメモリ等の記憶媒体の一記憶領域である。記憶部2100には、例えば、上述の状況情報、つまり、センサECU320等から送信される測定情報、車速制御支援ECU350から送信される有効又は無効な車速制御支援機能の情報、アクセルECU310から送信される現在のアクセル開度、又は通信ECU380から送信される車両21から提供された情報が格納される。
監視処理部3100は、制御プログラムを実行するプロセッサ等により実現され、バス30上の加速制御指示のデータフレームを無効化する無効化処理を一定条件下で行う機能を担う。監視処理部3100は、判定部3101及び無効化部3102を含む。
判定部3101は、受信部1101が加速制御指示のデータフレームを受信した際における車両20の状況及び車両20が走行する外界の状況の少なくとも一方と、当該加速制御指示とに基づいて、加速制御指示が不正か否か(つまりその加速制御指示のデータフレームは無効化されるべき不正なフレームであるか否か)を判定する。判定部3101は、受信部1101により受信され、記憶部2100に格納されている状況情報が示す状況と、受信部1101により受信された加速制御指示が示す制御内容とに基づいて、この判定を実行する。この判定は、加速制御指示のデータフレームの全体が受信部1101によってバス30から受信されるまで(つまりデータフレームの終了前であり、例えばデータフィールドの受信直後或いはCRCシーケンスの受信直後等)に行われる。判定部3101は、加速制御指示を不正であると判定した場合には、その結果を出力して無効化部3102に通知する。
無効化部3102は、判定部3101により、加速制御指示が不正であると判定された場合に、バス30に現れている加速制御指示のデータフレームを無効化するために、送信部1102に、バス30にエラーフレームを送信させることで無効化処理を行う。この無効化部3102による無効化処理は、加速制御指示のデータフレームの終了(EOF)の受信が完了するより前に、バス30にエラーフレームが送信されることで実現される。無効化処理がなされると、バス30上の加速制御指示のデータフレームは上書きされるので、アクセルECU310においては、不正な加速制御指示のデータフレームが破棄され、この加速制御指示に従った加速制御が回避される。
[1.7 加速制御指示の不正判別]
以下、上述のセキュリティECU100(監視装置)における監視処理部3100の判定部3101での加速制御指示が不正であるか否かの判定の方法について説明する。
判定部3101は、受信部1101によって受信されたデータフレームから取得された加速制御指示が示す制御内容と、記憶部2100に格納されている状況情報が示す状況とに基づくと、この加速制御指示が、状況情報が示す状況と整合しない制御内容を示す場合、つまり状況と制御内容とが不整合である場合に、この加速制御指示が不正な制御指示であると判定する。以下、この状況と制御内容との不整合について例を挙げて説明する。
[1.7.1 設定又は制限速度との不整合]
例えば、状況情報が示す状況が、車両20の設定速度を示し、かつ、加速制御指示が、車両20をこの設定速度を超える速度で走行させる制御内容を示す場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
ここでの設定速度とは、例えばドライバーが車速維持機能を有効にして設定した速度である。または、設定速度は、車両20において車間距離維持機能又は車間距離調整機能等の車速制御支援機能が有効なときに、車速制御支援機能によって設定された速度であってもよい。これらの設定速度は、車両20の状況の例である。セキュリティECU100は、この状況を示す状況情報を車速制御支援ECU350から送信される、車速制御支援機能の設定状況を示すデータフレームから取得し得る。
また、状況情報が示す状況が、車両20が走行する場所の規制速度を示し、かつ、加速制御指示が、車両20をこの規制速度を超える速度で走行させる制御内容を示す場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
ここでの規制速度とは、例えば関係法規で定められた速度、又は私有の土地又は建造物(例えば小売店舗の駐車場)においてその使用者が定めて掲示する上限速度である。これらの規制速度は、車両20の走行する外界の状況の例である。セキュリティECU100は、この状況を示す状況情報を、例えばセンサECU320から提供される、外界の物体(文字)認識の結果を示すデータフレームから取得し得る。または、セキュリティECU100は、車両20が備えるカーナビゲーションシステム又は自動運転システムが保持する地図情報、又は車両20の外部のサービスが提供する地図情報又は交通情報から抽出される規制速度を示す情報を取得して利用してもよい。この抽出は、送信側又はセキュリティECU100のいずれが行ってもよい。
[1.7.2 進行方向にある物体との距離との不整合]
この不整合について、進行方向にある物体の例として先行車両、物体との距離の例として車間距離を用いて説明する。例えば、状況情報が示す状況が、車両20の先行車両との車間距離を示し、かつ、加速制御指示が、車両20を、第1所定値を超える速度で走行させる制御内容を示す場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
ここでの第1所定値とは、例えば先行車両との車間距離に対して予め定められた車両20の絶対速度の値であり、例えば速度に対する停止距離に基づいて安全上必要とされている車間距離との関係で定められてもよい。この場合、また、車速制御支援ECU350による制御での車速と車間距離との関係に基づいて定められる速度の値であってもよい。図7は、このように定められる加速制御指示の不正判定の条件について説明するための図である。図7では、車両がサイバー攻撃を一切受けていない状態(つまり正常状態)で車速制御支援機能がした加速制御支援による車両の絶対速度と、その時の先行車両との車間距離とに基づいて黒い点がグラフエリアにプロットされている。つまりこれらの点は、先行車両との車間距離という状況と、加速制御支援指示による制御内容とが整合している場合を示す。したがって、これらの点に近似する線(図中の破線)から一定範囲の距離の領域に入る速度に至る加速制御はその内容が状況と整合するものとし、それ以外の領域に入る速度に至る加速制御はその内容が状況と不整合と扱うことができる。図7では、グラフエリア右下にある、斜線で網掛けを付した直角三角形の領域が、正常状態での加速制御支援では実行されない車間距離に対して速度が過大になる、状況と不整合の加速制御支援がプロットされる領域を示す。第1所定値は、当該直角三角形の斜辺上で、車間距離に基づく縦軸の値に対する、車速を示す横軸の値である。また、第1所定値は、先行車両に対する車両20の相対速度の値でもよい。例えば、各車間距離に応じて予め定められた相対速度の値である。この決定の手法としては、上記の絶対速度で例示したように、正常状態で車速制御支援機能がした加速制御支援指示による車両の先行車両に対する相対速度と車間距離との関係が利用されてもよい。また別の例としては、所定時間(例えば0.5秒)以内に車間距離が上記の安全上必要とされている車間距離未満になる相対速度の値であってもよい。
なお、先行車両との車間距離は、車両20の状況又は車両20の走行する外界の状況のいずれとも考え得る。セキュリティECU100は、この状況を示す状況情報を、例えばセンサECU320から送信される、物体認識の結果及び測距センサによる測定結果を示すデータフレームから取得し得る。また、車速は車両20の状況であり、セキュリティECU100は、この状況を示す状況情報を、例えばセンサECU320から送信される、速度センサによる測定結果を示すデータフレームから取得し得る。また、相対速度は、通信ECU380が車両21から受信した車両21の速度を示すデータフレームから判定部3101が算出してもよい。
なお、上述のとおり先行車両は進行方向にある物体の例、車間距離は物体との距離としての例である。進行方向にある物体は車両等のモビリティに限定されず、走行の時点で接触が意図されていない各種の物体であり得る。
[1.7.3 減速制御に関する不整合]
例えば、状況情報が示す状況が、車両20を減速させるべき状況を示し、かつ、加速制御指示が、車両20を、第2所定値を超える速度で走行させる制御内容を示す場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
ここでの車両20を減速させるべき状況とは、単純には車両20でドライバーの操作によってブレーキ制御が実行されている状況であるが、これに限定されない。他の例としては、先進運転者支援システムが提供するいずれかの機能によって車両20のブレーキ制御指示が出されている状況が挙げられる。なお、ここでのブレーキ制御とは、ブレーキパッドによる摩擦力でのブレーキングに限定されない。積極的なシフトダウンによるエンジンブレーキ又は排気ブレーキの制御も含まれる。また、原動機がモーターの車両で回生ブレーキが減速に積極的に利用されている場合には、回生ブレーキの制御も含まれる。また、ドライバー又は先進運転者支援システムによってブレーキ制御がなされるべき状況、より具体的には、例えば先行車両の減速又はブレーキ制御の発生時、車両20の進行方向の所定の距離未満の範囲に、停車中の車両、建物又は通行人等の人又は物が検知された時、車両20のカーブへの進入時、現在の車速よりも低い規制速度の区域への進入時も車両20を減速させるべき状況に含まれる。
上記のドライバー又は先進運転者支援システムによってブレーキ制御がなされている状況は車両20の状況であり、セキュリティECU100がブレーキECU330又は先進運転者支援システムを担うECUから送信されるブレーキの適用状況を示すデータフレームから取得し得る。先行車両の減速又はブレーキ制御の発生、進行方向の人又は物の検知、カーブへの進入、及び車速より低い規制速度の区域への進入は、車両20の走行する外界の状況であり、セキュリティECU100は、この状況を示す状況情報を、例えばセンサECU320から送信される、物体認識の結果等を示すデータフレームから取得し得る。また、先行車両の減速又はブレーキ制御の発生の状況情報は、通信ECU380が車両21から受信するデータフレームから取得されてもよい。また、カーブへの進入及び車速より低い規制速度の区域への進入の状況情報を、セキュリティECU100は、車両20が備えるカーナビゲーションシステムが保持する地図情報、又は車両20の外部のサービスが提供する地図情報又は交通情報から抽出される規制速度を示す情報を含むデータフレームから取得してもよい。
[1.7.4 外部からの情報に基づいて決定される車速との不整合]
例えば、状況情報が示す状況が、車両20の先行車両から車両20が走行すべき速度を示す情報を受信したことを示し、かつ、加速制御指示が、受信した情報が示す速度を超える速度で走行させる制御内容を示す場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
車車間通信が可能な車両同士では、車間距離維持機能又は車間距離調整機能の実行において先行車両から後続車両に走行すべき速度を直接又は間接に示す情報が送信されることが想定される。より具体的には、例えば後続車両が走行すべき絶対速度又は先行車両に対する相対速度の提示を含む情報が送信され得る。これらは後続車両である車両20が走行すべき速度を直接に示す情報の例である。これに対し、後続車両である車両20が走行すべき速度を間接に示す情報とは、車両20で車速の決定に用いられ得る先行車両から送信される情報である。具体的には、加速又は減速の指示、ブレーキ制御の実行の指示、当該先行車両の速度、当該先行車両でのブレーキングの有無若しくは強さ、現在の車間距離、又は取るべき車間距離の指示を含む情報である。セキュリティECU100は、車両20が走行すべき速度を示すこのような情報が受信されたという車両20の状況を示す状況情報を、通信ECU380がバス30に送信する、この情報の内容を含めたデータフレームを受信して、その内容から取得する。セキュリティECU100では、判定部3101が、これらの情報に基づいて、例えば車両20が現在の車速から加速、減速若しくは維持するのか、又は加減速であればさらにその大きさを判定する。そして、この判定の結果と、車速制御支援ECU350から送信された加速制御指示が示す制御内容との比較の結果に基づいて、この加速制御指示は状況情報が示す状況と不整合であるか否か判定する。
[1.7.5 先進運転者支援システムの稼働状態との不整合]
例えば、状況情報が示す状況が、車両20が備える先進運転者支援システムがオフであることを示し、かつ、加速制御指示が、第3所定値を超える速度で走行させる制御内容を示す、又は、受信部1101が所定期間内に加速制御指示を取得した場合に、判定部3101は、この加速制御指示は状況情報が示す状況と不整合であって不正な制御指示であると判定する。
先進運転者支援システムがオフの場合には、ある程度より大きな加速制御指示が車速制御支援ECU350から送信されない。第3所定値は、先進運転者支援システムがオフである車両20の状況とは不整合であるこのような加速制御指示を検出するための基準として判定部3101が用いる値である。また、先進運転者支援システムがオフからオンになって車速制御支援ECU350から加速制御指示が送信されるまでには最低限かかる時間がある。所定期間は、先進運転者支援システムがオフである車両20の状況とは不整合であるこのような加速制御指示を検出するための基準として判定部3101が用いる値である。
この例の場合、先進運転者支援システムがオフであるという車両20の状況を、セキュリティECU100は、例えば先進運転者支援システムに係るECUから送信されるデータフレームから取得する。車速制御支援ECU350は、先進運転者支援システムに係るECUの一例である。
[1.8 セキュリティECU100の制御処理]
図8は、車載ネットワークシステム10において、セキュリティECU100で実行される監視処理の手順の一例を示すフローチャートである。以下、同図に即して、不正な加速制御指示の攻撃フレームへの対処としてセキュリティECU100で実行される監視処理について説明する。
受信部1101が状況情報を含むデータフレームをバス30から受信した場合(ステップS11でYES)、受信された状況情報は記憶部2100に保存、つまり格納される(ステップS12)。状況情報を含むデータフレームは、センサECU320等から周期的に送信され、ステップS12での状況情報の受信及び保存は、繰り返し行われる。
受信部1101が加速制御指示のデータフレームをバス30から受信した場合(ステップS13でYES)、判定部3101が、記憶部2100に保存されている最新の状況情報が示す状況と、受信した加速制御指示が示す制御内容とを比較する(ステップS14)。そして、判定部3101はこの比較で、状況と制御内容とが不整合であるか否かを判定し(ステップS15)、不整合である場合には(ステップS15でYES)、ステップS13で受信されたデータフレームに係る加速制御指示が不正であると判定する。なお、受信部1101により加速制御指示のデータフレームのデータフィールドまでの受信が終了すれば、加速制御指示が示す制御内容を取得することができるので、判定部3101はステップS14以降を実行することができる。
ステップS16で不正と判定された加速制御指示のデータフレームに対しては、無効化部3102が、送信部1102にエラーフレームを送信させることで無効化する(ステップS17)。
[1.9 車載ネットワークシステム10における加速制御に係る処理シーケンス]
図9は、車載ネットワークシステム10における加速制御に係る処理シーケンスの一例を示す。以下、図9に即して、車載ネットワークシステム10における各ECUの動作について説明する。なお、ここでの不正ECUとは、車載ネットワークシステム10上のECU(不図示のものを含む)のいずれかであって、例えば攻撃者によって診断用ポート390に接続されたECU、又はファームウェアの書き換え等によって乗っ取られたECUである。また、対比的に図示する便宜上、処理シーケンスの前半(上半分)は、不正なデータフレームが送信されない場合、後半(下半分)は、不正なデータフレームが送信された場合を示す例としている。
センサECU320は、物体検知センサ321又は速度センサ322で測定された測定結果を示す状況情報を含むデータフレームをバス30に送信する(ステップS101A)。このデータフレームを、車速制御支援ECU350及びセキュリティECU100がバス30から受信する。また、車速制御支援ECU350は、各種の加速支援機能の有効又は無効を示す情報を含むデータフレームをバス30に送信する(ステップS101B)。このデータフレームを、セキュリティECU100がバス30から受信する。また、アクセルECU310は、現在のアクセル開度を示すデータフレームをバス30に送信する(ステップS101C)。このデータフレームを、セキュリティECU100がバス30から受信する。セキュリティECU100は、このようにして車両20の状況及び車両20が走行する外界の状況を示す状況情報を取得する。
車速制御支援ECU350は、ステップS101AでセンサECU320が送信した状況情報に基づいて、有効な加速支援機能のための加速制御指示、例えば車速維持のためのアクセル開度を制御内容として示すデータフレームをバス30に送信する(ステップS102)。このデータフレームを、アクセルECU310及びセキュリティECU100がバス30から受信する。
このデータフレームを受信して加速制御指示を取得したセキュリティECU100は、この加速制御指示が示す制御内容が、ステップS101Aから101Cで送信された状況情報が示す状況と不整合であるか判定する(ステップS103)。この例では不整合でないため、セキュリティECU100はステップS102で送信されたデータフレームに対する無効化処理を実行しない。アクセルECU310は、取得した加速制御指示に従って作動する(ステップS105)。
センサECU320、車速制御支援ECU350、及びアクセルECU310は、ステップS101AからS101Cと同様に、それぞれがより新しい状況情報を示すデータフレームをバス30に送信する(ステップS201A、S201B、S201C)。セキュリティECU100は、これらのより新しい状況情報を取得する。
不正ECUは、攻撃のための加速制御指示を含む不正なデータフレームを送信する(ステップS202)。この不正なデータフレームを、アクセルECU310及びセキュリティECU100がバス30から受信する。
このデータフレームを受信して加速制御指示を取得したセキュリティECU100は、この加速制御指示が示す制御内容が、ステップS201Aから201Cで送信された状況情報が示す状況と不整合であるか判定する(ステップS203)。この例では不整合であるため、セキュリティECU100はステップS202で送信されたデータフレームに対する無効化処理として、当該データフレームがバス30上に現れているうちにエラーフレームをバス30に送信する。エラーフレームを受信したアクセルECU310は、途中まで取得していた、ステップS202で送信されたデータフレームを破棄する(ステップS205)。
以上が車載ネットワークシステム10における加速制御に係る処理シーケンスの例を用いた説明であり、本実施の形態にかかるセキュリティECU100を含む車載ネットワークシステムの加速制御に係る処理シーケンスはこの例に限定されない。例えば、セキュリティECU100による不整合であるかの判定には、常に全種類の最新の状況情報が用いられなくてもよい。また、同じ状況情報を用いて複数回の不整合であるかの判定が実行されてもよい。例えば、上記の例では、説明を簡便にするために省略したが、ステップS201の後に車速制御支援ECU350からも加速制御指示のデータフレームが送信され、セキュリティECU100は、このデータフレームからも加速制御指示を取得して不整合であるかの判定を実行してもよい。CANプロトコルでは同一の制御対象に対する制御指示のデータフレームは周期的に送信され、攻撃のための不正なデータフレームは、周期のルールに従って弾かれないように正当なデータフレームとごく近い時刻に送信されることもある。このような攻撃に対しても、状況情報が示す状況と制御指示の内容とを突き合わせた結果に基づいて状況と不整合な制御を示すと判定された不正なデータフレームが適切に無効化される。
[1.10 実施の形態の効果]
実施の形態に係る車載ネットワークシステム10では、セキュリティECU(監視装置)100の監視処理部3100が、加速制御指示(つまり加速制御指示のデータフレーム)の受信部1101での受信が完了する直前に、センサECU320等、他の装置から取得した状況情報に基づいて、その加速制御指示の制御内容と状況情報が示す状況とが不整合であるかを所定の方法で判定する。不整合である場合には、エラーフレームの送信によりその加速制御指示を無効化する無効化処理を行う。所定の方法は、基準となる状況と制御内容との組合せを種々定めておくことができる。状況と不整合な加速制御内容を含む不正なデータフレームは、セキュリティECU100からのエラーフレームの送信によってバス30上で無効化されるので、アクセルECU310がこの不正なデータフレームの受信を完了し、そのデータフレームが含む加速制御指示に従って原動機311を制御することが防止され得る。つまり、車載ネットワークシステム10では、セキュリティECU100により加速制御指示に係る不正なフレーム(攻撃フレーム)への適切な対処がなされ、攻撃フレームによって引き起こされる事故の防止が可能となる。
(その他変形例)
以上のように、本発明に係る技術の例示として実施の形態を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
(1)上記実施の形態では、車載ネットワークシステム10のセキュリティを確保するための機能を担うセキュリティECU100によって実現されている監視装置は、アクセルECU310の一部として実現されてもよい。この場合、無効化部3102による無効化処理として、不正な加速制御指示を含むデータフレームの破棄が実行されてもよい。図10は、監視装置を一部に含むアクセルECUの構成例を示すブロック図である。
本変形例に係るアクセルECU310Bは、実施の形態におけるアクセルECU310の構成要素に加えて、記憶部2100B及び監視処理部3100Bを備える。また、アクセルECU310Bの通信部1310Bは、実施の形態における通信部1310とセキュリティECU100が備える通信部1100の両方の機能を担う。これらの機能のうち、通信部1100の受信部1101に相当する部分をアクセルECU310Bの説明では受信部1101Bとして示す。本変形例では、記憶部2100B、監視処理部3100B、及び受信部1101Bが、アクセルECU310B内で監視装置100Bを構成する。以下、監視装置100Bと実施の形態における監視装置であるセキュリティECU100との差異を中心に説明する。
受信部1101Bは上述のとおり、実施の形態におけるセキュリティECU100の通信部1100の受信部1101に相当する。記憶部2100Bは、セキュリティECU100の記憶部2100に相当する。監視処理部3100Bは、セキュリティECU100の監視処理部3100の判定部3101に相当する判定部3101B及び無効化部3102に相当する無効化部3102Bに加えて、転送部3103を備える。
受信部1101Bは、アクセルECU310が受信するデータフレームに加えて、他のECUからの状況情報を含むデータフレームも受信する。なお、実施の形態においてセキュリティECU100がアクセルECU310から受信する状況情報は、監視処理部3100BがアクセルECU310B内で取得する。
監視処理部3100Bにおいて、判定部3101Bは判定部3101と同様に、状況情報が示す状況と、車速制御支援ECU350からの加速制御指示が示す制御内容との比較による判定(図8、ステップS15)を実行し、判定の結果を出力する。ただし、状況と制御内容とが不整合ではないと判定した場合の処理が判定部3101と異なる。図11は、アクセルECU310Bの監視装置100Bで実行される、この差異を含む監視処理の手順の一例を示すフローチャートである。この場合(ステップS15でNO)、つまり加速制御指示を不正でないと判定した判定部3101Bは、その結果を転送部3103に通知する。この通知を受けた転送部3103は、この加速制御指示に係るデータフレームの内容(ID、データフィールドのデータ等)をデータバッファ2310に格納する(ステップS18)。
監視処理部3100Bにおいて、状況と制御内容とが不整合ではなく、不正な加速制御であると判定した場合(ステップS15でYES、ステップS16)、無効化部3102Bは、この加速制御指示に係るデータフレームを破棄する(ステップS17B)。
図12に、アクセルECU310Bを含む車載ネットワークシステム10における加速制御に係る処理シーケンスの一例を示す。図9に示した実施の形態の処理シーケンスとは、アクセルECU310Bが各状況情報を取得している点、不整合の判定を実行する点(ステップS103、S203)、不整合でない場合に加速制御指示転送を実行する点(ステップS104)が異なる。
なお、さらに無効化部3102Bは、無効化部3102と同様に、通信部1310Bにエラーフレームをバス30へ送信させてもよい。
(2)判定部3101及び3101Bによって加速制御指示の制御内容と比較される、状況情報が示す車両の状況又は車両が走行する外界の状況は、上記実施の形態に記載されたものに限定されない。例えば車両が走行している場所又は走行予定経路の道路標識又は道路標示の示す内容も状況情報が示す外界の状況に含まれてもよい。例えば加速制御指示の制御内容が、道路標識が示す速度に関する規制の状況と不整合であるか否か判定されてもよい。また例えば、天候、気温、路面状況、地形(勾配率)、積載荷重若しくはさらにそのバランス、車速の変化状況、又はタイヤの種類若しくは劣化の程度等の、安全な速度に影響し得る状況も、状況情報が示す車両又は外界の状況に含まれてもよい。このような情報は、例えば車載のセンサ、地図データ、VICS(登録商標)などの道路交通情報の提供システム、又はインターネット上でのサービスから取得され得る。判定部3101又は3101Bでは、車両の走行速度に加えこれらの状況に対して加速制御指示が示すアクセル開度による加速が安全に実行し得るか否かの基準を用いて不整合の判定を実行してもよい。例えば状況情報が示すこれらの状況に応じて異なる基準が用いられてもよいし、これらの状況情報を入力値とする識別関数又は識別モデルが用いられてもよい。
(3)上記実施の形態及びその変形例で示した加速制御指示が状況と不整合であるか否かについての判定のための基準は、車両20の車種毎に異なるものが用いられてもよい。ここでの車種とは、車両型式で識別される種類であってもよいし、さらに細かいグレードであってもよい。また、オプション等による所定の機能の有無でさらに区別されてもよい。
また、制御内容と比較される状況情報のうち、車速制御支援ECU350から送信される情報の内容は上記に限定されない。例えばドライバーによる加速制御に関連する設定の内容が含まれてもよい。例えば車間距離維持機能又は車間距離調整機能に対してドライバーが設定する先行車両との車間距離が含まれていてもよい。
(4)上記実施の形態として、CANプロトコルにおけるデータフレームについてのフォーマットとして図2に示す標準フォーマットが用いられる車載ネットワークシステムでの本発明の適用の例を説明したが、本発明が適用可能なネットワークシステムはこれに限定されない。例えば拡張フォーマットのデータフレームが流れるネットワークであってもよい。上記実施の形態で示したCANプロトコルは、TTCAN(Time-Triggered CAN)、CAN FD(CAN with Flexible Data Rate)等の派生的なプロトコルも包含する広義のものとして捉えられてもよい。また、Ethernet(登録商標)、FlexRay(登録商標)等の、CAN以外のプロトコルに準拠するネットワークシステム、又は複数のプロトコルが混在するネットワークシステムにも適用可能である。
(5)上記実施の形態又はその変形例で示した車載ネットワークシステム10上又はこれを含む制御ネットワークシステムが備える各種構成要素間の機能分担は一例であり、その分担を変更し得る。また、セキュリティECU100における監視処理部3100等、又はアクセルECU310Bにおける監視処理部3100Bの機能の一部が、セキュリティECU100と通信可能な装置、例えば車載ネットワークシステム10上の他のECU、又は車載ネットワークシステム10の外部のサーバ装置等によって担われてもよい。例えば、上記実施の形態において、車載ネットワークシステム10には、セキュリティECU100とは別の他のセキュリティECUが含まれ、監視処理部3100の機能のうち、無効化部3102の機能はこの他のセキュリティECUによって担われてもよい。この場合、判定部3101から出力された判定の結果は、データフレームとして送信部1102からバス30に送信されてもよいし、専用線で他のセキュリティECUに送信されてもよい。
(6)上記実施の形態における各ECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等のハードウェア構成要素を含んでいてもよい。また、上記実施の形態で示した各装置は、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能が実現されてもよい。
(7)上記実施の形態における各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。このROMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又は全部を含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続及び設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
(8)上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(9)本発明の一態様としては、例えば図8及び図9、図11及び図12、並びに本明細書中のこれらに関連する記載に含まれる処理手順の全部又は一部を含む監視方法であるとしてもよい。例えば、監視方法は、車両20の状況及び車両20が走行する外界の状況の少なくとも一つを示す状況情報、及び車載ネットワークシステム10で伝送されている加速制御指示を取得する取得ステップ(例えばステップS11及びS13)と、取得された状況情報が示す状況と、取得された加速制御指示が示す制御内容とを比較することで、加速制御指示が不正な制御指示であるか否かを判定する判定ステップ(例えばステップS14)と、判定ステップによる判定の結果を示す情報を出力する出力ステップ(例えばステップS15)とを含む。また、さらに判定ステップによって加速制御指示が不正な制御指示であると判定された場合に、この加速制御指示を無効化する無効化ステップ(例えばステップS17又はS17B)が含まれてもよい。このような方法は、例えば車載ネットワークシステム10で伝送される、車両20を加速するための加速制御指示を監視する監視装置として機能するECUによって実行される。
また、本発明の一態様としては、この監視方法に係る処理をコンピュータに実行させるコンピュータプログラムであってもよいし、このコンピュータプログラムからなるデジタル信号であるとしてもよい。この監視方法に係る処理は、車両20の状況及び車両20が走行する外界の状況の少なくとも一つを示す状況情報、及び車載ネットワークシステム10で伝送されている加速制御指示を取得する取得ステップ(例えばステップS11及びS13)と、取得された状況情報が示す状況と、取得された加速制御指示が示す制御内容とを比較することで、加速制御指示が不正な制御指示であるか否かを判定する判定ステップ(例えばステップS14)と、判定ステップによる判定の結果を示す情報を出力する出力ステップ(例えばステップS15)とを含む処理である。出力されたこの情報は、別のプログラムモジュール若しくはコンピュータプログラム、又は通信可能な他の装置への入力として用いられてもよい。この別のプログラムモジュール等によって、例えばデータフレームの無効化、車速制御支援ECUの無効化、緊急停止のための自動運転、攻撃の発生に関する通知のドライバーへの提示、エラーログの記録などが実行されてもよい。
また、本発明の一態様としては、このコンピュータプログラム又はデジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。また、本発明の一態様としては、コンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。また、プログラム若しくはデジタル信号を記録媒体に記録して移送することにより、又はプログラム若しくはデジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(10)上記実施の形態及びその変形例における無効化の処理は、エラーフレームのCANバスへの送出によるものに限定されない。上述のアクセルECU310Bにおいて実行されるデータフレームの破棄も無効化処理の一態様である。別の例として、ネットワークにおけるゲートウェイの一部として実現される監視装置が、不正な加速制御指示を含むデータフレームを転送しないこともまた無効化処理の一態様に含まれる。
(11)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。