(57)【要約】  車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現し得る電子制御装置を提案する。  ＣＡＮバス（２０）に接続されているＥＣＵ（１０）において、ＥＣＵ（１０）のＣＰＵ（１００）は、ＣＡＮバス（２０）を介して基準となる正規のデータ（Ｄ０）を受信した場合、正規のデータ（Ｄ０）を受信した後にＩＤが同一のデータ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）を受信する場合の該データ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）の受け入れ期間を制限し、定期的に設けるウインドウ（Ｗ）外で受信したデータ（Ｄ１、Ｄ２、Ｄ４）についてはブロックして演算処理の対象から除外し、ウインドウ（Ｗ）内で受信したデータ（Ｄ３）のみを演算処理の対象とすることを特徴とする。
2018198545.tif 000002
【特許請求の範囲】
【請求項１】
通信バス（２０）に接続されているＥＣＵ（１０）において、
前記ＥＣＵ（１０）のＣＰＵ（１００）は、
前記通信バス（２０）を介して基準となる正規のデータ（Ｄ０）を受信した場合、
前記正規のデータ（Ｄ０）を受信した後にＩＤが同一のデータ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）を受信する場合の該データ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）の受け入れ期間を制限する
ことを特徴とするＥＣＵ。
【請求項２】
前記ＣＰＵ（１００）は、
前記ＩＤが同一のデータ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）の受け入れ期間の制限について、
定期的に設けるウインドウ（Ｗ）外で受信したデータ（Ｄ１、Ｄ２、Ｄ４）についてはブロックして演算処理の対象から除外し、前記ウインドウ（Ｗ）内で受信したデータ（Ｄ３）のみを演算処理の対象とする
ことを特徴とする請求項１に記載のＥＣＵ。
【請求項３】
前記ＣＰＵ（１００）は、
前記正規のデータ（Ｄ０）のＩＤに予め対応付けられている規定時間（ＤＴ）が経過するごとに前記ウインドウ（Ｗ）を定期的に設ける
ことを特徴とする請求項２に記載のＥＣＵ。
【請求項４】
前記ＣＰＵ（１００）は、
前記正規のデータ（Ｄ０）を受信した時点（ｔ０）から前記規定時間（ＤＴ）が経過するまでの間に受信した前記データ（Ｄ１、Ｄ２）をブロックし、
前記規定時間（ＤＴ）が経過した時点（ｔ１）から所定時間が経過するまでの間に受信した前記データ（Ｄ３）のみを演算処理し、
前記所定時間が経過した時点（ｔ２）から前記規定時間（ＤＴ）が経過するまでの間に受信した前記データ（Ｄ４）をブロックする
ことを特徴とする請求項３に記載のＥＣＵ。
【請求項５】
前記規定時間（ＤＴ）は、
前記基準となる正規のデータ（Ｄ０）のＩＤごとに異なる
ことを特徴とする請求項３又は４に記載のＥＣＵ。
【請求項６】
前記ウインドウ（Ｗ）は、
前記基準となる正規のデータ（Ｄ０）のＩＤごとに幅が異なる
ことを特徴とする請求項３〜５の何れか一項に記載のＥＣＵ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＣＵに関し、特に車載ネットワーク上に配置されるＥＣＵに適用して好適なものである。
【背景技術】
【０００２】
近年、ＣＡＮ（Controller  Area  Network）と呼ばれる通信規格を利用した車載ネットワーク（ＣＡＮネットワーク）が普及している。このＣＡＮネットワークは、車両に設置された複数の電子制御装置（ECU：Electronic  Control  Unit）と、ＣＡＮを利用した通信バス（ＣＡＮバス）とが接続されて構成される。ＥＣＵは、このＣＡＮバスを介して、他のＥＣＵと互いに通信（ＣＡＮ通信）することができる。【０００３】
ＣＡＮバスは、ＥＣＵ同士を互いに通信可能に接続する一方で、データリンクコネクタ（DLC：Data  Link  Connector）を備える。このデータリンクコネクタに専用の機器を接続することで、ＥＣＵが備える自己診断機能（OBD：On  Board  Diagnostics）により生成される故障コードを読み取ることができる。故障コードを参照することで、例えばサービスエンジニアは故障箇所を容易に特定することができる。【０００４】
ところで、このＤＬＣが不正に利用された場合、具体的にはＤＬＣを介して、正規のデータとＩＤが同一で中身が異なる不正なデータが外部からＣＡＮバスに送信された場合、ＣＡＮバスに接続されているＥＣＵがこの不正なデータを受信して誤動作するおそれがある。よってセキュリティ保護の観点から、このような不正なデータを防御する技術が必要となる。【０００５】
なお不正なデータは、ＤＬＣに有線で接続された機器からＣＡＮバスに送信される場合と、ＤＬＣに無線通信可能な機器が接続されて、この機器を介して無線でＣＡＮバスに送信される場合とが考えられる。【０００６】
特許文献１には、ＣＡＮバスに対して送信されたデータについて、前回の送信タイミングと、今回の送信タイミングとの間の差分を送信周期として算出し、この送信周期と、予め記憶する不正データ判定用の送信周期とを比較し、比較した結果、算出した送信周期が不正データ判定用の送信周期よりも短い場合、今回送信されたデータを不正データとして判定する技術が開示されている。【０００７】
この特許文献１に記載の技術によれば、一のＥＣＵがＣＡＮバスを監視し、他のＥＣＵが不正データの受信を完了する前にこれを検出して無効化することができる。これにより正規なデータとＩＤが同一で中身が異なる不正なデータがＣＡＮバスに侵入し、ＣＡＮバスに接続されているＥＣＵの誤動作を引き起こすなりすまし攻撃から、車載ネットワークに接続している全てのＥＣＵを防御することができるとしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−２３６２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしこの特許文献１に記載の技術では、ＣＡＮバスに対して送信されたデータを常時監視するための追加の機器が必要になる。具体的には、ＥＣＵとＣＡＮバスとを接続する通常の通信線に加えて、これと並列にこのＥＣＵとＣＡＮバスとを接続する追加の通信線が更に必要となる。またＣＡＮバス上のデータを常時監視する処理、不正データか否かを判定する処理及び不正データである場合の無効化処理等の追加の処理が必要になる。【００１０】
よって車載ネットワークのハードウェア構成及びソフトウェア構成が複雑化し、これに伴い、車載ネットワークを実現するための全体のコストが増加するという課題が生じる。【００１１】
本発明は以上の点を考慮してなされたものであり、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現し得るＥＣＵを提案する。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために、本発明においては、ＣＡＮバス（２０）に接続されているＥＣＵ（１０）において、ＥＣＵ（１０）のＣＰＵ（１００）は、ＣＡＮバス（２０）を介して基準となる正規のデータ（Ｄ０）を受信した場合、正規のデータ（Ｄ０）を受信した後にＩＤが同一のデータ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）を受信する場合の該データ（Ｄ１、Ｄ２、Ｄ３、Ｄ４）の受け入れ期間を制限することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】車載ネットワークの全体構成図である。
【図２】ＥＣＵの内部構成図である。
【図３】受信処理のフローチャートである。
【図４】受信処理の概念図である。
【発明を実施するための形態】
【００１５】
以下本発明について、図面を参照しながら本発明の一実施の形態を詳述する。なお以下の説明はあくまで本発明の一実施の形態にすぎず、本発明の技術的範囲がこれに限定されるものではない。
【００１６】
図１は、車両１における車載ネットワークＮ１の全体構成を示す。車載ネットワークＮ１は、ＣＡＮ（Controller  Area  Network）と呼ばれる通信規格を利用したネットワークであり、電子制御装置（ECU：Electronic  Control  Unit）１０及びＣＡＮバス２０を備えて構成される。
【００１７】
ＥＣＵ１０は、車両１の各種動作を制御する制御装置である。ＥＣＵ１０は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）及び入出力インタフェース等を備えて構成される。各ＥＣＵ１０は、それぞれＣＡＮバス２０に接続される。これにより各ＥＣＵ１０は、ＣＡＮバス２０を介して互いに通信可能に接続される。
【００１８】
なおＣＡＮバス２０に接続されるＥＣＵ１０のうち、エンジンＥＣＵと呼ばれるＥＣＵ１０は、車両１の動作を統括的に制御する。そのため本実施の形態においては、このエンジンＥＣＵに本発明を適用することで、特に走行に関する制御についてセキュリティの保護を実現しようとするものである。
【００１９】
ＣＡＮバス２０は、ＣＡＮを利用した通信バスであり、各ＥＣＵ１０を互いに通信可能に接続する。またＣＡＮバス２０は、データリンクコネクタ（DLC：Data  Link  Connector）３０を備える。ＤＬＣ３０は、スキャンツール４０を有線又は無線によりＣＡＮバス２０に接続するための接続コネクタである。
【００２０】
ＤＬＣ３０にスキャンツール４０を接続し、スキャンツール４０上で特定の操作を行うと、ＥＣＵ１０が備える自己診断機能（OBD：On  Board  Diagnostics）により生成される故障コードを読み取ることができる。例えばサービスエンジニアは、スキャンツール４０の表示画面上に表示される故障コードを参照して、車両１の故障箇所を特定することができる。
【００２１】
ここで、ＤＬＣ３０を介して車両１の外部から不正なデータがＣＡＮバス２０に送信される場合が考えられる。ここでいう不正なデータとは、少なくともＣＡＮバス２０に送信されるタイミングが正規のデータとは異なるデータをいう。
【００２２】
例えば一の正規のデータのＩＤが「１」で、「１００ｍｓ」ごとにＣＡＮバス２０に送信される場合、ＩＤが「１」で、「１２０ｍｓ」ごとにＣＡＮバス２０に送信されるデータは本実施の形態においては不正なデータとして取り扱われる。またこのＩＤが「１」のデータとの関係において、ＩＤが異なるデータ、或いは、ＩＤが同一であっても内容が異なるデータも当然に不正なデータとなる。
【００２３】
このような不正なデータがＤＬＣ３０を介してＣＡＮバス２０に送信された場合であって何らの防御手段もない場合、ＣＡＮバス２０に接続されているＥＣＵ１０がこれを受信して演算処理してしまう。特にエンジンＥＣＵが不正なデータを受信して演算処理すると、走行に関する制御が不能になるおそれがある。
【００２４】
本実施の形態においては、たとえ不正なデータがＣＡＮバス２０に送信された場合であっても、ＥＣＵ１０においてこの不正なデータは演算処理の対象から除外し、正規のデータだけを演算処理の対象とするようにしている。処理の詳細については後述する（図２〜図４）。
【００２５】
図２は、ＥＣＵ１０の内部構成を示す。ＥＣＵ１０は、ここでは図示しないＲＡＭ及びＲＯＭ等のメモリや入出力インタフェースを備えるとともに、ＣＰＵ１００を備える。ＣＰＵ１００は、データ送受信部１０１、受信データ規制部１０２、ＣＡＮバッファ１０３及び制御演算部１０４等のプログラム又はメモリを備える。
【００２６】
データ送受信部１０１は、ＣＡＮバス２０からの正規又は不正なデータＤ０〜Ｄ４を受信して、受信データ規制部１０２に出力する。またデータ送受信部１０１は、これらのデータＤ０〜Ｄ４のうちの正規のデータに対する演算結果Ｄ２１、Ｄ２２をＣＡＮバス２０に送信する。演算結果Ｄ２１、Ｄ２２は、その後他のＥＣＵ１０や他の機器の動作に用いられる。
【００２７】
受信データ規制部１０２は、データ送受信部１０１からの正規又は不正なデータＤ０〜Ｄ４を入力すると、これらのデータＤ０〜Ｄ４のうちの正規のデータのみをＣＡＮバッファ１０３に出力し、正規のデータ以外の不正なデータはブロックするようにして、ＣＡＮバッファ１０３に出力するデータを規制する。
【００２８】
具体的に、受信データ規制部１０２は、基準となる一の正規のデータＤ０を受信すると、これをＣＡＮバッファ１０３に出力するとともに、ＣＰＵ１００の内部に保持するタイマＴを起動して時間のカウントを開始する。
【００２９】
一方で受信データ規制部１０２は、ＩＤごとに予め対応付けられた規定時間ＤＴを参照し、規定時間経過後で所定時間内（ウインドウ内）に受信したデータだけをＣＡＮバッファ１０３に出力する。
【００３０】
例えば受信データ規制部１０２は、データＤ０のＩＤが「１」であり、ＩＤが「１」に予め対応付けられている規定時間ＤＴが「１００ｍｓ」である場合、ＩＤが「１」のデータについては、データＤ０を受信してから１００ｍｓ〜１１０ｍｓ、或いは、９５ｍｓ〜１０５ｍｓの間のウインドウ内に受信したデータのみをＣＡＮバッファ１０３に出力する。
【００３１】
ＣＡＮバッファ１０３は、演算処理待ちのデータを格納するメモリである。制御演算部１０４は、ＣＡＮバッファ１０３に格納されたデータを演算処理して演算結果Ｄ２１、Ｄ２２を生成し、これらの演算結果Ｄ２１、Ｄ２２をデータ送受信部１０１に出力する。
【００３２】
図３は、本実施の形態における受信処理のフローチャートを示す。受信処理は、ＥＣＵ１０のＣＰＵ１００により、基準となる一の正規のデータを受信した時点から開始され、それ以後は常時実行される。
【００３３】
ここでは、基準となる一の正規のデータを受信して処理するまでの間に限って説明する。ここで説明するデータのＩＤは全て同一である（例えば「１」）。すなわちＩＤごとに本処理が行われる。説明の便宜上、処理主体をＣＰＵ１００として説明する。
【００３４】
まずＣＰＵ１００は、ＣＡＮバス２０からの正規のデータを受信すると（Ｓ１）、タイマＴを起動して時間のカウントを開始し（Ｓ２）、ブロックの設定を「有効」にする（Ｓ３）。ＣＰＵ１００は、ブロックの設定が有効に設定されている場合にデータを受信すると、そのデータをブロック（隔離又は破棄）する。
【００３５】
次いでＣＰＵ１００は、ステップＳ１で受信した正規のデータのＩＤに対応付けられている規定時間ＤＴと、ステップＳ２でカウントしているカウント時間とを参照して、カウント時間が規定時間ＤＴを経過したか否かを判断する（Ｓ４）。
【００３６】
ＣＰＵ１００は、ステップＳ４の判断で否定結果を得ると（Ｓ４：Ｎ）、カウント時間が規定時間ＤＴを経過するまでの間に受信した同一のＩＤのデータを不正なデータとみなして、この不正なデータがＣＡＮバッファ１０３に出力されないようにブロックする（Ｓ５）。
【００３７】
これに対し、ＣＰＵ１００はステップＳ４の判断で肯定結果を得ると（Ｓ４：Ｙ）、ブロックの設定を「無効」にする（Ｓ６）。ＣＰＵ１００は、ブロックの設定が無効に設定されている場合に限って、受信したデータをＣＡＮバス２０に出力する。この状態でＣＰＵ１００は、規定時間ＤＴ経過後から所定時間内（ウインドウ内）に受信したデータがあるか否かを判断する（Ｓ７）。
【００３８】
ＣＰＵ１００は、ステップＳ７の判断で否定結果を得ると（Ｓ７：Ｎ）、ステップＳ９に移行する。これに対し、ＣＰＵ１００は肯定結果を得ると（Ｓ７：Ｙ）、受信したデータをＣＡＮバッファ１０３に出力する（Ｓ８）。ＣＰＵ１００は、規定時間ＤＴが経過した後はタイマＴを停止してカウント時間をリセットし、再びタイマＴを起動する（Ｓ９）。
【００３９】
次いでＣＰＵ１００は、所定時間経過した（ウインドウ外）か否かを判断する（Ｓ１０）。ＣＰＵ１００は、ステップＳ１０の判断で否定結果を得ると（Ｓ１０：Ｎ）、ステップＳ７に移行して引き続き受信したデータの有無を判断する。これに対し、ＣＰＵ１００は肯定結果を得ると（Ｓ１０：Ｙ）、ブロックの設定を再度「有効」にする（Ｓ１１）。
【００４０】
そしてＣＰＵ１００は、これ以降に受信するＩＤが同一のデータについて再びブロックする一方で、ステップＳ８でＣＡＮバッファ１０３に格納されたデータを演算処理して（Ｓ１２）、本処理を終了する。なおこれ以後、ＣＰＵ１００はステップＳ４に移行して再び上述してきた処理を実行することになる。
【００４１】
図４は、図３で説明した受信処理の概念図を示す。以下時系列に沿って、データＤ０〜Ｄ４の処理について説明する。
【００４２】
時間ｔがｔ＝ｔ０は、基準となる正規のデータＤ０がＣＰＵ１００において受信されたタイミングを示す。この時間ｔ０のタイミングで、データＤ０はデータ送受信部１０１により受信される。また受信データ規制部１０２により、タイマＴが起動されるとともに規定時間ＤＴが参照される。
【００４３】
その後データＤ０は、ＣＡＮバッファ１０３に出力される。ＣＡＮバッファ１０３に格納されたデータＤ０は、制御演算部１０４により演算処理される。その結果、演算結果Ｄ２１が生成される。
【００４４】
時間ｔがｔ０＜ｔ≦ｔ１の間は、受信データ規制部１０２によりブロックの設定が「有効」に設定されていることを示す。よってこの間に受信されるデータのうち、データＤ０と同一のＩＤを有するデータＤ１、Ｄ２は不正なデータとみなされ、受信データ規制部１０２によりＣＡＮバッファ１０３に出力されないようにブロックされる。
【００４５】
時間ｔがｔ１＜ｔ≦ｔ２の間は、受信データ規制部１０２によりブロックの設定が「無効」に設定されていることを示す。この間の時間をここではウインドウＷと呼んでいる。このウインドウＷ内で受信されたデータＤ３は、正規のデータとみなされ、受信データ規制部１０２によりＣＡＮバッファ１０３に出力される。
【００４６】
ＣＡＮバッファ１０３に格納されたデータＤ３は、制御演算部１０４により演算処理される。その結果、演算結果Ｄ２２が生成される。
【００４７】
時間ｔがｔ２＜ｔ≦ｔ３の間は、再び受信データ規制部１０２によりブロックの設定が「有効」に設定されていることを示す。よってこの間に受信されるデータのうち、データＤ０と同一のＩＤを有するデータＤ４は、不正なデータとみなされ、受信データ規制部１０２によりＣＡＮバッファ１０３に出力されないようにブロックされる。
【００４８】
以上のように本実施の形態によれば、基準となる正規のデータＤ０を受信した場合、その後に受信するデータのうち、データＤ０と同一のＩＤのデータの受け入れ期間をソフトウェアの動作により制限し、定期的に設けるウインドウＷ内で受信したデータＤ３のみを演算処理するようにした。
【００４９】
より具体的には、正規のデータＤ０を受信した時点でタイマＴを起動し、カウント時間が規定時間ＤＴを経過するまでの間に受信したデータＤ１、Ｄ２、Ｄ４を不正なデータとみなしてブロックし、カウント時間が規定時間ＤＴを経過した後であって、所定時間経過前のウインドウＷ内で受信したデータＤ３のみを演算処理するようにした。
【００５０】
これにより、なりすまし攻撃に対する防御手段として追加の機器を必要とすることなく、また不正な受信データを監視、判定及び無効化する等の煩雑な処理を必要とすることなく、単にソフトウェアの制御によって不正なデータを防御することができる。よって本実施の形態によれば、車載ネットワークの複雑化及びコストの増加を回避しつつ、セキュリティの保護を実現することができる。
【００５１】
なお本実施の形態において、ＩＤと規定時間ＤＴとが予め対応付けられているが、これに加えて規定時間ＤＴとウインドウ幅（図４においては時間ｔ１とｔ２との間の時間）とが対応付けられているとしてもよい。
【００５２】
例えばＩＤが「１」については、規定時間ＤＴが「１００ｍｓ」、ウインドウ幅が「１０ｍｓ」が予め対応付けられており、ＩＤが「２」については、規定時間ＤＴが「５０ｍｓ」、ウインドウ幅が「５ｍｓ」が予め対応付けられているとしてもよい。すなわち単位時間当たりの受信回数に応じてウインドウ幅を可変にしてもよい。
【００５３】
この場合、単位時間当たりの受信回数が多いデータについてはウインドウ幅を短くするようにして、不正なデータをブロックし易くすることができる。よってより確実にセキュリティの保護を実現することができる。
【符号の説明】
【００５４】
１      車両
１０    ＥＣＵ
２０    ＣＡＮバス
３０    ＤＬＣ
４０    スキャンツール
１００  ＣＰＵ
１０１  データ送受信部
１０２  受信データ規制部
１０３  ＣＡＮバッファ
１０４  制御演算部
【図１】
2018198545.tif 000003
【図２】
2018198545.tif 000004
【図３】
2018198545.tif 000005
【図４】
2018198545.tif 000006
【国際調査報告】
2018198545.tif 000007
2018198545.tif 000008
2018198545.tif 000009