このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (WO2018211790) ECU
Document

明 細 書

発明の名称 ECU

技術分野

0001  

背景技術

0002   0003   0004   0005   0006   0007  

先行技術文献

特許文献

0008  

発明の概要

発明が解決しようとする課題

0009   0010   0011  

課題を解決するための手段

0012  

発明の効果

0013  

図面の簡単な説明

0014  

発明を実施するための形態

0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066  

符号の説明

0067  

請求の範囲

1   2   3   4   5   6   7   8  

図面

1   2   3   4  

明 細 書

発明の名称 : ECU

技術分野

[0001]
 本発明は、ECUに関し、特に車載ネットワーク上に配置されるECUに適用して好適なものである。

背景技術

[0002]
 近年、CAN(Controller Area Network)と呼ばれる通信規格を利用した車載ネットワーク(CANネットワーク)が普及している。このCANネットワークは、車両に設置された複数の電子制御装置(ECU:Electronic Control Unit)と、CANを利用した通信バス(CANバス)とが接続されて構成される。ECUは、このCANバスを介して、他のECUと互いに通信(CAN通信)することができる。
[0003]
 CANバスは、ECU同士を互いに通信可能に接続する一方で、データリンクコネクタ(DLC:Data Link Connector)を備える。このデータリンクコネクタに専用の機器を接続することで、ECUが備える自己診断機能(OBD:On Board Diagnostics)により生成される故障コードを読み取ることができる。故障コードを参照することで、例えばサービスエンジニアは故障箇所を容易に特定することができる。
[0004]
 ところで、このDLCが不正に利用された場合、具体的にはDLCを介して、正規のデータとIDが同一で中身が異なる不正なデータが外部からCANバスに送信された場合、CANバスに接続されているECUがこの不正なデータを受信して誤動作するおそれがある。よってセキュリティ保護の観点から、このような不正なデータを防御する技術が必要となる。
[0005]
 なお不正なデータは、DLCに有線で接続された機器からCANバスに送信される場合と、DLCに無線通信可能な機器が接続されて、この機器を介して無線でCANバスに送信される場合とが考えられる。
[0006]
 特許文献1には、CANバスに対して送信されたデータについて、前回の送信タイミングと、今回の送信タイミングとの間の差分を送信周期として算出し、この送信周期と、予め記憶する不正データ判定用の送信周期とを比較し、比較した結果、算出した送信周期が不正データ判定用の送信周期よりも短い場合、今回送信されたデータを不正データとして判定する技術が開示されている。
[0007]
 この特許文献1に記載の技術によれば、一のECUがCANバスを監視し、他のECUが不正データの受信を完了する前にこれを検出して無効化することができる。これにより正規なデータとIDが同一で中身が異なる不正なデータがCANバスに侵入し、CANバスに接続されているECUの誤動作を引き起こすなりすまし攻撃から、車載ネットワークに接続している全てのECUを防御することができるとしている。

先行技術文献

特許文献

[0008]
特許文献1 : 特開2014-236248号公報

発明の概要

発明が解決しようとする課題

[0009]
 しかしこの特許文献1に記載の技術では、CANバスに対して送信されたデータを常時監視するための追加の機器が必要になる。具体的には、ECUとCANバスとを接続する通常の通信線に加えて、これと並列にこのECUとCANバスとを接続する追加の通信線が更に必要となる。またCANバス上のデータを常時監視する処理、不正データか否かを判定する処理及び不正データである場合の無効化処理等の追加の処理が必要になる。
[0010]
 よって車載ネットワークのハードウェア構成及びソフトウェア構成が複雑化し、これに伴い、車載ネットワークを実現するための全体のコストが増加するという課題が生じる。
[0011]
 本発明は以上の点を考慮してなされたものであり、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現し得るECUを提案する。

課題を解決するための手段

[0012]
 かかる課題を解決するために、本発明においては、CANバス(20)に接続されているECU(10)において、ECU(10)のCPU(100)は、通信バス(20)を介して正規のデータ(D1)を受信した後、正規のデータ(D1)とIDが同一のデータ(D2~D8)を受信し、IDが同一のデータ(D2~D8)の一定期間内における受信回数が予め定められた規定回数(DC)以上である場合、異常な状態であると判断して、安全な制御状態に移行することを特徴とする。

発明の効果

[0013]
 本発明によれば、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現することができる。

図面の簡単な説明

[0014]
[図1] 車載ネットワークの全体構成図である。
[図2] ECUの内部構成図である。
[図3] 受信処理のフローチャートである。
[図4] 受信処理の概念図である。

発明を実施するための形態

[0015]
 以下本発明について、図面を参照しながら本発明の一実施の形態を詳述する。なお以下の説明はあくまで本発明の一実施の形態にすぎず、本発明の技術的範囲がこれに限定されるものではない。
[0016]
 図1は、車両1における車載ネットワークN1の全体構成を示す。車載ネットワークN1は、CAN(Controller Area Network)と呼ばれる通信規格を利用したネットワークであり、電子制御装置(ECU:Electronic Control Unit)10及びCANバス20を備えて構成される。
[0017]
 ECU10は、車両1の各種動作を制御する制御装置である。ECU10は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)及び入出力インタフェース等を備えて構成される。各ECU10は、それぞれCANバス20に接続される。これにより各ECU10は、CANバス20を介して互いに通信可能に接続される。
[0018]
 なおCANバス20に接続されるECU10のうち、エンジンECUと呼ばれるECU10は、車両1の動作を統括的に制御する。そのため本実施の形態においては、このエンジンECUに本発明を適用することで、特に走行に関する制御についてセキュリティの保護を実現しようとするものである。
[0019]
 CANバス20は、CANを利用した通信バスであり、各ECU10を互いに通信可能に接続する。またCANバス20は、データリンクコネクタ(DLC:Data Link Connector)30を備える。DLC30は、スキャンツール40を有線又は無線によりCANバス20に接続するための接続コネクタである。
[0020]
 DLC30にスキャンツール40を接続し、スキャンツール40上で特定の操作を行うと、ECU10が備える自己診断機能(OBD:On Board Diagnostics)により生成される故障コードを読み取ることができる。例えばサービスエンジニアは、スキャンツール40の表示画面上に表示される故障コードを参照して、車両1の故障箇所を特定することができる。
[0021]
 ここで、DLC30を介して車両1の外部から不正なデータがCANバス20に送信される場合が考えられる。ここでいう不正なデータとは、少なくともCANバス20に送信されるタイミングが正規のデータとは異なるデータをいう。
[0022]
 例えば一の正規のデータのIDが「1」で、「100ms」ごとにCANバス20に送信される場合、IDが「1」で、「120ms」ごとにCANバス20に送信されるデータは本実施の形態においては不正なデータとして取り扱われる。またこのIDが「1」のデータとの関係において、IDが異なるデータ、或いは、IDが同一であっても内容が異なるデータも当然に不正なデータとなる。
[0023]
 このような不正なデータがDLC30を介してCANバス20に送信された場合であって何らの防御手段もない場合、CANバス20に接続されているECU10がこれを受信して演算処理してしまう。特にエンジンECUが不正なデータを受信して演算処理すると、走行に関する制御が不能になるおそれがある。
[0024]
 本実施の形態においては、たとえ不正なデータがCANバス20に送信された場合であっても、ECU10においてこの不正なデータは演算処理の対象から除外し、正規のデータだけを演算処理の対象とするようにしている。またECU10がCANバス20を介して、不正なデータを受信する受信回数が増加した場合、これを異常な状態と判断し、安全な制御状態に移行するようにしている。
[0025]
 安全な制御状態には、エンジンを停止させた状態(エンストさせた状態)、CANバス20からのデータの受信を拒否した状態、最小のギア段による走行を維持するリンプホームモードに移行した状態などがある。
[0026]
 図2は、ECU10の内部構成を示す。ECU10は、ここでは図示しないRAM及びROM等のメモリや入出力インタフェースを備えるとともに、CPU100を備える。CPU100は、データ送受信部101、受信データ監視部102、CANバッファ103及び制御判断部104及び演算部105等のプログラム又はメモリを備える。
[0027]
 データ送受信部101は、CANバス20からの正規又は不正なデータD0~D8を受信して、受信データ監視部102に出力する。またデータ送受信部101は、これらのデータD0~D8のうちの正規のデータに対する演算結果D21、D22又は安全な制御状態に移行するためのフェールセーフデータD23をCANバス20に送信する。
[0028]
 演算結果D21、D22、フェールセーフデータD23は、その後他のECU10や他の機器の動作に用いられる。他のECU10や他の機器がフェールセーフデータD23を受信した場合、安全な制御がドライバの操作によらずに実行されることになる。
[0029]
 受信データ監視部102は、データ送受信部101からの正規又は不正なデータD0~D8を入力すると、これらのデータをCANバッファ103に出力するとともに、これらのデータD0~D8の受信回数をカウントして異常な状態であるか否かを判断する。
[0030]
 具体的に、受信データ監視部102は、基準となる一の正規のデータD0を受信すると、これをCANバッファ103に出力するとともに、CPU100の内部に保持するタイマTを起動して時間のカウントを開始する。
[0031]
 受信データ監視部102は、IDごとに予め対応付けられた規定時間DTを参照して、この規定時間DTが経過するまでの間に受信したデータD0~D8をCANバッファ103に出力する。またこれらのデータD0~D8の受信回数をカウンタCによりカウントする。すなわち受信データ監視部102は、単位時間当たりのデータの受信回数をカウントする。
[0032]
 そして受信データ監視部102は、予め定められた規定回数DCを参照して、カウンタCによりカウントされた受信回数が規定回数DC以上であるか否かを判断する。受信回数が規定回数DC以上になった場合、受信データ監視部102は異常な状態であるものと判断する。そして受信データ監視部102は、異常な状態であることを示す監視結果を制御判断部104に出力する。
[0033]
 CANバッファ103は、演算処理待ちのデータを格納するメモリである。
 制御判断部104は、受信データ監視部102からの監視結果に基づいて、CANバッファ103に格納されているデータを演算対象とするか、或いは、演算対象から除外するかを判断する。そして制御判断部104は、判断結果を演算部105に出力する。
[0034]
 演算部105は、制御判断部104からの判断結果に基づいて、CANバッファ103に格納されたデータD0~D8のうちの規定時間DTの経過後で所定時間内(ウインドウ内)に受信したデータを演算処理して、演算結果D21、D22を生成する。或いは、演算処理の対象から除外してフェールセーフデータD23を生成する。
[0035]
 例えば演算部105は、データD0のIDが「1」であり、このIDに予め対応付けられている規定時間DTが「100ms」である場合、IDが「1」のデータについてはデータD0を受信してから100ms~110ms、或いは、95ms~105msの間のウインドウ内に受信したデータを演算処理して、演算結果D21、D22を生成する。
[0036]
 一方で演算部105は、異常な状態である場合、CANバッファ103に格納されたデータD0~D8を演算対象から除外し、安全な制御状態に移行するためのフェールセーフデータD23を生成する。演算部105は、生成した演算結果D21、D22又はフェールセーフデータD23をデータ送受信部101に出力する。
[0037]
 図3は、本実施の形態における受信処理のフローチャートを示す。受信処理は、ECU10のCPU100により、カウンタCが起動された時点から開始され、それ以後は常時実行される。カウンタCの起動タイミングは、ECU10の電源ON時であることを想定しているが、必ずしもこれに限られない。
[0038]
 またここでは、基準となる一の正規のデータを受信した後の一定期間に限って説明する。ここで説明するデータのIDは全て同一である(例えば「1」)。すなわちIDごとに本処理が行われる。説明の便宜上、処理主体をCPU100として説明する。
[0039]
 まずCPU100は、カウンタCを起動して受信回数のカウントを開始する(S1)。その後CPU100は、CANバス20から一の正規のデータを受信すると(S2)、タイマTを起動して時間のカウントを開始する(S3)。
[0040]
 CPU100は、タイマTを起動した後、ステップS2で正規のデータを受信しているので受信回数iを+1だけカウントアップする(S4)。そしてCPU100は、受信回数iがi≧規定回数DCであるか否かを判断する(S5)。
[0041]
 例えば規定回数DCが「6」回であるものとして定められている場合、一の正規のデータを受信した時点では受信回数iは「1」回であるため受信回数i<規定回数DCであり、ステップS5の判断では否定結果を得ることになる。
[0042]
 CPU100は、ステップS5の判断で否定結果を得ると(S5:N)、受信した正規のデータをCANバッファ103に出力する(S6)。そしてCPU100は、タイマTを起動した以後で他に受信したデータがあるか否かを判断する(S7)。CPU100は、ステップS7の判断で肯定結果を得ると(S7:Y)、ステップS4に移行して上述の処理を繰り返す。
[0043]
 これに対しCPU100は、ステップS7の判断で否定結果を得ると(S7:N)、ステップS2で受信した正規のデータのIDに対応付けられている規定時間DTと、ステップS3でカウントを開始したカウント時間とを参照して、カウント時間が規定時間DTを経過したか否かを判断する(S8)。
[0044]
 CPU100は、ステップS8の判断で否定結果を得ると(S8:N)、カウント時間が規定時間DTを経過するまでステップS4に移行して、上述の処理を繰り返す。そしてCPU100は、ステップS5の判断で肯定結果を得ると(S5:Y)、異常な状態であるものと判断する(S9)。そしてCPU100は、安全な制御状態に移行して(S10)、本処理を終了する。
[0045]
 これに対しCPU100は、ステップS8の判断で肯定結果を得ると(S8:Y)、カウンタCを停止及び再起動することにより、カウント回数を一旦リセットして受信回数のカウントを再度開始する(S12)。
[0046]
 次いでCPU100は、CANバッファ103に格納されているデータのうち、規定時間DTの経過後から所定時間内(ウインドウ内)に受信したデータがあるか否かを判断する(S13)。
[0047]
 CPU100は、ステップS13の判断で否定結果を得ると(S13:N)、CANバッファ103に格納されているデータを演算処理せずに本処理を終了する。これに対しCPU100は、肯定結果を得ると(S13:Y)、CANバッファ103に格納されているデータのうち、ウインドウ内に受信したデータを演算処理して(S14)、本処理を終了する。
[0048]
 なおCPU100は、これ以降に受信するIDが同一のデータについてはステップS4に移行して上述の処理を繰り返すことになる。
[0049]
 図4は、図3で説明した受信処理の概念図を示す。以下時系列に沿って、データD0~D8の処理について説明する。
[0050]
 時間t=t0のタイミングで、基準となる正規のデータD0がデータ送受信部101により受信される。また受信データ監視部102により、タイマTが起動されるとともに規定時間DTが参照される。またカウンタCの受信回数が+1だけカウントアップされる。
[0051]
 その後データD0は、CANバッファ103に出力される。CANバッファ103に格納されたデータD0は、制御判断部104により演算対象であると判断された後、演算部105により演算処理される。その結果、演算結果D21が生成される。
[0052]
 時間tがt0≦t<t1の間では、受信されるデータの監視が受信データ監視部102により行われる。具体的にはタイマTにより時間がカウントされ、カウンタCにより受信回数がカウントされる。ここではデータD0のみが受信されただけであるため、受信回数は1回である。
[0053]
 時間t=t1のタイミングで、タイマT及びカウンタCが受信データ監視部102により停止及び再起動されて、カウント時間及び受信回数がリセットされる。リセットされた後はカウントが再開される。ここでのタイマTは、時間t=t2のタイミングで時間のカウントを再開し、カウンタCはリセットされた後すぐにデータのカウントを再開する。
[0054]
 時間tがt1<t≦t3の間は、受信したデータを演算処理の対象とする期間を示す。この期間をここではウインドウWと呼ぶ。正規のデータD1は、時間t=t2のタイミングで受信されたデータであり、このウインドウW内で受信されたデータである。
[0055]
 よってデータD1は、その後CANバッファ103に出力されて、制御判断部104により演算対象と判断された後、演算部105により演算処理される。その結果、演算結果D22が生成される。
[0056]
 時間tがt2≦t<t5の間は、受信されるデータの監視が再び行われる。ここではこの間に複数の不正なデータD2~D7が受信されている。カウンタCにより不正なデータD2~D7が受信されるたびに受信回数が+1だけカウントアップされる。
[0057]
 時間t=t4のタイミングで、受信回数が規定回数DCに到達していることが示されている。この場合、受信データ監視部102からの監視結果が制御判断部104に出力され、制御判断部104により以降に受信するデータは演算処理の対象から除外される。
[0058]
 時間tがt5<t≦t7の間は、ここでは2回目のウインドウWが設定されている。このようにウインドウWは規定時間DTが経過するたびに定期的に設けられる。正規のデータD8は、時間t=t6のタイミングで受信されたデータであり、このウインドウW内で受信されたデータであるが、演算処理の対象から除外される。そしてこれに代えてフェールセーフデータD23が生成される。
[0059]
 以上のように本実施の形態によれば、基準となる正規のデータD0を受信した場合、その後に受信するデータのうち、データD0と同一のIDのデータの受信回数をカウントし、一定期間内における受信回数が規定回数DCに到達しない場合はその後に受信するデータD1を演算処理し、受信回数が規定回数DC以上になる場合は異常な状態であると判断して、安全な制御状態に移行するようにした。
[0060]
 より具体的には、正規のデータD0を受信した時点でタイマTを起動し、カウント時間が規定時間DTを経過するまでの間に受信したデータの受信回数をカウントし、受信回数が規定回数DCに到達しない場合はその後にウインドウW内で受信した正規のデータD1を演算処理するようにする一方で、受信回数が規定回数DCに到達した場合は正規のデータD8を演算処理の対象から除外し、代わりにフェールセーフデータD23を生成し、これに基づいて安全な制御状態に移行するようにした。
[0061]
 これにより、なりすまし攻撃に対する防御手段として追加の機器を必要とすることなく、また不正な受信データを監視、判定及び無効化する等の煩雑な処理を必要とすることなく、単にソフトウェアの制御によって不正なデータを防御することができる。よって本実施の形態によれば、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現することができる。
[0062]
 なお本実施の形態においては、IDと規定時間DTとが予め対応付けられているが、これに加えて規定時間DTとウインドウ幅(図4においては時間t1とt3との間の時間)とが対応付けられているとしてもよい。
[0063]
 例えばIDが「1」については、規定時間DTが「99ms」、ウインドウ幅が「10ms」が予め対応付けられており、IDが「2」については、規定時間DTが「50ms」、ウインドウ幅が「5ms」が予め対応付けられているとしてもよい。すなわち単位時間当たりの受信回数に応じてウインドウ幅を可変にしてもよい。
[0064]
 この場合、単位時間当たりの受信回数が多いデータについてはウインドウ幅を短くするようにして、不正なデータを演算処理の対象から除外し易くすることができる。よってより確実にセキュリティの保護を実現することができる。
[0065]
 また本実施の形態においては、カウント時間が規定時間DTを経過した時点で受信回数を一旦リセットするとしているが、これに限らず、受信回数の累計が規定回数DCに到達するまでリセットしないとしてもよい。すなわちカウンタCが受信回数のカウントを開始してから、定期的に設けるウインドウWの範囲外で受信したデータの受信回数の累計が規定回数DCに到達したタイミングで、受信回数をリセットするとしてもよい。
[0066]
 この場合、カウント時間が規定時間DTを経過するたびに受信回数をリセットする必要がなくなるため処理の簡素化を図ることができる。また異常な状態と判断されるほどに不正なデータを受信していなくとも、定常的に不正なデータを受信している場合、これを異常な状態と判断することができる。

符号の説明

[0067]
1   車両
10  ECU
20  CANバス
30  DLC
40  スキャンツール
100 CPU
101 データ送受信部
102 受信データ監視部
103 CANバッファ
104 制御判断部
105 演算部

請求の範囲

[請求項1]
 通信バス(20)に接続されているECU(10)において、
 前記ECU(10)のCPU(100)は、
 前記通信バス(20)を介して正規のデータ(D1)を受信した後、前記正規のデータ(D1)とIDが同一のデータ(D2~D8)を受信し、前記IDが同一のデータ(D2~D8)の一定期間内における受信回数が予め定められた規定回数(DC)以上である場合、異常な状態であると判断して、安全な制御状態に移行する
 ことを特徴とするECU。
[請求項2]
 前記CPU(100)は、
 前記IDが同一のデータ(D2~D8)の一定期間内における受信回数が前記規定回数(DC)未満である場合、定期的に設けるウインドウ(W)内で受信したデータ(D1)を演算処理の対象とする
 ことを特徴とする請求項1に記載のECU。
[請求項3]
 前記CPU(100)は、
 異常な状態であると判断した場合、
 定期的に設けるウインドウ(W)内で受信したデータ(D8)を演算処理の対象から除外し、安全な制御状態に移行するためのフェールセーフデータを生成する
 ことを特徴とする請求項1又は2に記載のECU。
[請求項4]
 前記CPU(100)は、
 前記正規のデータ(D1)のIDに予め対応付けられている規定時間(DT)が経過するごとに前記ウインドウ(W)を定期的に設ける
 ことを特徴とする請求項2又は3に記載のECU。
[請求項5]
 前記CPU(100)は、
 前記正規のデータ(D1)の受信時に時間のカウントを開始し、カウント時間が予め定められる規定時間(DT)を経過した時点(t5)から所定時間が経過するまで(t7)の間に前記ウインドウ(W)を設定することにより、前記ウインドウ(W)を定期的に設ける
 ことを特徴とする請求項2~4の何れか一項に記載のECU。
[請求項6]
 前記規定時間(DT)は、
 前記正規のデータ(D1)のIDごとに異なる
 ことを特徴とする請求項4又は5に記載のECU。
[請求項7]
 前記ウインドウ(W)は、
 前記正規のデータ(D1)のIDごとに幅が異なる
 ことを特徴とする請求項2~6の何れか一項に記載のECU。
[請求項8]
 前記CPU(100)は、
 異常な状態であると判断した場合、
 エンジンを停止させる制御、前記通信バス(20)からのデータの受信を拒否する制御又は最小のギア段による走行を維持する制御のうち、何れかの制御を実行することより、安全な制御状態に移行する
 ことを特徴とする請求項1~7の何れか一項に記載のECU。


図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]