(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024033325
(43)【公開日】2024-03-13
(54)【発明の名称】装置及び方法
(51)【国際特許分類】
H04L 12/46 20060101AFI20240306BHJP
【FI】
H04L12/46 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022136847
(22)【出願日】2022-08-30
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】504182255
【氏名又は名称】国立大学法人横浜国立大学
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】前川 陽介
(72)【発明者】
【氏名】カミーユ ゲ
(72)【発明者】
【氏名】松本 勉
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA05
5K033DA05
5K033DA13
5K033DB16
5K033EA02
(57)【要約】
【課題】CANのセキュリティレベルを向上させる。
【解決手段】第1のCAN(Controller Area Network)バスに接続する第1のインタフェース部と、第2のCANバスに接続する第2のインタフェース部と、CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態が検知された第1のCANバス又は第2のCANバスを、当該CANフレームの送信元装置が接続しているCANバスとして特定することを実行する制御部と、を備える装置である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1のCAN(Controller Area Network)バスに接続する第1のインタフェース部と、
第2のCANバスに接続する第2のインタフェース部と、
CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態が検知された前記第1のCANバス又は前記第2のCANバスを、前記CANフレームの送信元装置が接続しているCANバスとして特定することを実行する制御部と、を備える装置。
【請求項2】
前記第1のインタフェース部と前記第2のインタフェース部間の接続及び切断を行う接続部をさらに備え、
前記制御部は、
前記CANフレームの送信が開始された場合に、前記接続部へ接続指示を出力し、
前記アービトレーションの終了が検出された場合に、前記接続部へ切断指示を出力し、
その後、前記第1のCANバス又は前記第2のCANバスのドミナント状態が検知された場合に、前記接続部へ接続指示を出力する、
請求項1に記載の装置。
【請求項3】
前記制御部は、前記CANフレームの送信の開始の検出後、13ビット分に相当する時間長の経過によって、前記CANフレームのアービトレーションの終了を検出する、
請求項1に記載の装置。
【請求項4】
前記制御部は、第1のCANフレームの送信元装置が接続しているCANバスとして特定した前記第1のCANバス又は前記第2のCANバスが、前記第1のCANフレームが送信される正規のCANバスとして登録されていない場合に、前記接続部へ切断指示を出力する、
請求項2に記載の装置。
【請求項5】
第1のCAN(Controller Area Network)バスと第2のCANバスとに接続する装置が、
CANフレームの送信の開始を検出することと、
前記CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態が検知された前記第1のCANバス又は前記第2のCANバスを、前記CANフレームの送信元装置が接続しているCANバスとして特定する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、CAN(Controller Area Network)に関する。
【背景技術】
【0002】
フレームの送信経路を登録しているルート情報を用いて受信フレームの送信経路先のアドレスを算出し、算出したアドレスの示すアドレス変換テーブルに登録されているルート情報が示す送信経路に受信フレームを送信する、LAN間接続装置が開示されている(例えば、特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、CANのセキュリティレベルを向上可能な装置及び方法を提供することを課題とする。
【課題を解決するための手段】
【0005】
本開示の態様の一つは、
第1のCANバスに接続する第1のインタフェース部と、
第2のCANバスに接続する第2のインタフェース部と、
CANフレームの送信が発生した場合に、アービトレーションの終了後初めてドミナント状態が検知された前記第1のCANバス又は前記第2のCANバスを、前記CANフレームの送信元装置が接続しているCANバスとして特定することを実行する制御部と、
を備える装置である。
【0006】
本開示の他の態様の一つは、
第1のCANバスと第2のCANバスとに接続する装置が、
CANフレームの送信の開始を検出することと、
前記CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態が検知された前記第1のCANバス又は前記第2のCANバスを、前記CANフレームの送信元装置が接続しているCANバスとして特定する、
方法である。
【発明の効果】
【0007】
本開示によれば、CANのセキュリティレベルを向上させることができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1実施形態に係る送信元検知装置の構成の一例を示す図である。
【
図2】
図2は、インタフェース部、通信状態検知部、及び、アービトレーション終了判定部の回路図の一例である。
【
図3】
図3は、バス接続制御部及び送信方向判定部の回路図の一例である。
【
図4】
図4は、制御部の処理のフローチャートの一例である。
【
図5】
図5は、送信元CANバスの検知結果を応用する送信元検知装置の構成の一例である。
【
図6】
図6は、CAN IDと送信元CANバスに関する情報とを紐づけたデータベースの一例である。
【発明を実施するための形態】
【0009】
CANでは、メッセージに送信元を特定可能な情報が含まれていないため、CANフレームの送受信方向を特定することが困難である。このため、例えば、CANバスに接続された悪意のある機器からの成りすましメッセージが送信される等の攻撃を防ぐことは困難である。
【0010】
本開示の態様の一つは、第1のCANバスに接続する第1のインタフェース部と、第2のCANバスに接続する第2のインタフェース部と、制御部とを備える装置である。当該制御部は、CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態が検知された第1のCANバス又は第2のCANバスを、CANフレームの送信元装置が接続しているCANバスとして特定することを実行する。
【0011】
CANバスでは、複数の装置によって同時にCANフレームの送信が行われた場合には、CAN IDの優先度によってメッセージ送信を行う装置が決定される。CANフレーム送信を行う装置は、CANフレーム送信開始後のアービトレーションの期間を経て決定される。通信がない場合のCANバスの状態はリセッシブ状態であり、ドミナント状態はCANフレームの送信中にのみ発生する状態である。したがって、本開示の態様の一つでは、CANフレームの送信が開始された場合に、アービトレーションの終了後初めてドミナント状態となるCANバスを特定することで、CANフレームの送信元装置が接続されているCANバスを特定可能にする。
【0012】
本開示の態様の一つに係る当該装置は、第1のインタフェース部と第2のインタフェース部間の接続及び切断を行う接続部をさらに備えてもよい。当該制御部は、CANフレームの送信が開始された場合に、接続部へ接続指示を出力してもよい。当該制御部は、アービトレーションの終了が検出された場合に、接続部へ切断指示を出力し、その後、第1のCANバス又は第2のCANバスのドミナント状態が検知された場合に、接続部へ接続指示を出力してもよい。
【0013】
1本のCANバスを第1のCANバスと第2のCANバスとに分断することで、いずれかのCANバスからCANフレームを受信した場合の電気的な変化をとらえることができる。CANフレームの送信が開始されると第1のCANバスと第2のCANバスとが接続されるので、第1のCANバスと第2のCANバスとの電気的特性を同一にすることができ、CANバス内の通信を妨げることを抑制できる。また、アービトレーションの終了後、一旦、第1のCANバスと第2のCANバスとの接続を切断することによって、CANフレームの送信が確定した装置からのCANフレームの送信による電気的な変化が発生したCANバスを特定することができる。これによって、CANフレームの送信元装置が接続されているCANバスを特定することができる。
【0014】
本開示の態様の一つにおいて、当該制御部は、CANフレームの送信の開始の検出後、13ビット分に相当する時間長の経過によって、CANフレームのアービトレーションの終了を検出してもよい。CANフレームのフォーマットにおいて、先頭から1ビットがSOF(Start Of Frame)のフィールドであり、続いて11ビットがCAN IDのフィールドであり、続いて1ビットがRTRのフィールドである。アービトレーションはCAN
IDとRTRとに基づいて行われる。したがって、CANフレームの送信の開始の検出後、13ビット分に相当する時間長の経過を待つことによって、より正確に、より簡易な構成で、アービトレーションの終了を検出することができる。
【0015】
本開示の態様の一つにおいて、当該制御部は、第1のCANフレームの送信元装置が接
続しているCANバスとして特定した第1のCANバス又は第2のCANバスが、第1のCANフレームが送信される正規のCANバスとして登録されていない場合に、接続部へ切断指示を出力するようにしてもよい。例えば、第1のバスにはCANフレームを送信するような装置が接続されていない場合、CANバスと当該CANバスから送信されるCANフレームとの対応付けに、第1のCANバスと第1のCANフレームとの対応付けが含まれていない場合、及び、これまで第1のCANバスから第1のCANフレームの送信が検出されていない場合に、第1のCANバスから第1のCANフレームが受信されたことを検出すると、第1のCANバスと第2のCANバスとが切断される。これによって、不審なCANフレームが、送信元装置が接続されているCANバスから他方のCANバスへ送信されることを抑制することができ、不審なCANフレームの送信による影響の範囲を抑えることができる。
【0016】
本開示の他の態様の一つは、上記装置が上記処理を実行する方法として特定することも可能である。本開示は、他の態様の一つとして、上記装置の処理をコンピュータに実行させるためのプログラム、及び、当該プログラムを記録した非一時的でコンピュータ読み取り可能な記録媒体としても特定することができる。
【0017】
以下、図面に基づいて、本開示の実施の形態を説明する。以下の実施形態の構成は例示であり、本開示は実施形態の構成に限定されない。
【0018】
<第1実施形態>
図1は、第1実施形態に係る送信元検知装置1の構成の一例を示す図である。送信元検知装置1は、車両に搭載されている装置であって、CANバスに接続されている。CANバスには、当該車両に搭載されたECU(Electronic Control Unit)等の他の装置も接続されている。送信元検知装置1は、当該CANバスを2本に分断し、分断されたCANバス#1とCANバス#2とに接続している。送信元検知装置1は、CANフレームが、CANバス#1又はCANバス#2のどちらに接続している装置から送信されたか、を検出する装置である。以下、CANフレームの送信元装置が接続しているCANバスを、送信元CANバス、と称する。
【0019】
送信元検知装置1は、制御部10、インタフェース部11、及び、バス接続部15を備える。制御部10は、通信状態検知部12、アービトレーション終了判定部13、バス接続制御部14、及び、送信方向判定部16を備える。インタフェース部11、通信状態検知部12、アービトレーション終了判定部13は、CANバスごとに備えられる。
図1では、CANバス#1について備えられている構成要素の符号の末尾には“A”が付属している。CANバス#2について備えられている構成要素の符号の末尾には“B”が付属している。各CANバスについて備えられている共通の符号を有する構成要素どうしは、それぞれ、同じ構成である。そのため、両者を区別しない場合には、符号の末尾に“A”又は“B”を付けないで表記する。以下、区別せずに表記する場合には、それぞれの構成要素が処理の対象とするCANバスを、対象CANバス、と称する。
【0020】
インタフェース部11は、対象CANバスに接続するインタフェースである。CANバスは2本の信号線で構成されており、それぞれの信号線には異なる電圧の信号が流れる。ドミナント状態で電圧が高い信号が流れる信号線は、図中「H」と表記されている。ドミナント状態で電圧が低い信号が流れる信号線は、図中「L」と表記されている。この2本の信号線の電圧差で、対象CANバスが、リセッシブ状態又はドミナント状態であるかが判定される。インタフェース部11は、対象CANバスが、リセッシブ状態であるかドミナント状態であるかを通信状態検知部12と送信方向判定部16とに通知する。
【0021】
通信状態検知部12は、インタフェース部11からの対象CANバスの状態に基づいて
、対象CANバスにおいて、CANフレームの送信開始、及び、CANフレームの送信終了を検知する。より具体的には、通信状態検知部12は、対象CANバスがドミナント状態になった場合にCANフレームの送信開始を検知する。また、通信状態検知部12は、対象CANバスのリセッシブ状態が7ビット相当の時間長継続した場合に、CANフレームの送信終了又はエラーフレームの送信終了を検出する。通信状態検知部12は、CANフレームの送信開始及び送信終了を、アービトレーション終了判定部13、バス接続制御部14、及び送信方向判定部16に通知する。
【0022】
アービトレーション終了判定部13は、通信状態検知部12からCANフレームの送信開始が通知されると、タイマを開始させ、タイマの満了とともにアービトレーションの終了を検知する。当該タイマの時間長は、CANフレームにおけるSOF(1ビット)とCAN ID(11ビット)とRTR(1ビット)のフィールドの合計ビット長(13ビット)に相当する時間長である。アービトレーション終了判定部13は、アービトレーションの終了を検知すると、アービトレーション終了をバス接続制御部14と送信方向判定部16とに通知する。
【0023】
送信方向判定部16は、CANバス#1及びCANバス#2それぞれについての、CANバスの状態、CANフレームの送信終了、及び、アービトレーション終了の通知に基づいて、CANフレームの送信元CANバスを特定する。具体的には、送信方向判定部16は、CANバス#1又はCANバス#2についてアービトレーションの終了後、初めてドミナント状態が検知されたCANバスを、送信元CANバスとして特定する。送信方向判定部16は、送信元CANバスの情報をバス接続制御部14へ出力する。
【0024】
バス接続制御部14は、CANバス#1及びCANバス#2夫々についての、CANフレームの送信開始の通知、アービトレーション終了の通知、及び、送信元CANバスに関する情報に基づいて、バス接続部15に、CANバス#1とCANバス#2との接続指示又は切断指示を出力する。より具体的には、バス接続制御部14は、CANフレームの送信開始の通知が入力されると、バス接続部15に、接続指示を出力する。バス接続制御部14は、CANフレームの送信完了の通知が入力されると、バス接続部15に、切断指示を出力する。バス接続制御部14は、アービトレーション終了の通知が入力されると、バス接続部15に、切断指示を出力する。バス接続制御部14は、アービトレーション終了後に、CANバス#1又はCANバス#2のいずれかからドミナント状態の通知が入力されると、バス接続部15に、接続指示を出力する。
【0025】
バス接続部15は、2本の信号線それぞれについて、CANバス#1とCANバス#2を接続するスイッチを備える。バス接続部15に備えられるスイッチは、例えば、ノーマリーオープンでDPST(Double Pole Single Throw)型のCMOS(Complementary Metal Oxide Semiconductor)アナログスイッチである。バス接続部15は、バス接続制御部14からの接続指示又は切断指示の入力を受けて、当該2つのスイッチをON又はOFFにし、CANバス#1とCANバス#2とを接続又は切断する。
【0026】
制御部10、インタフェース部11、及び、バス接続部15は、それぞれ、電子回路によって実現されてもよい。ただし、これに限定されず、制御部10は、例えば、CPU(Central Processing Unit)等のプロセッサであり、通信状態検知部12、アービトレーション終了判定部13、バス接続制御部14、及び、送信方向判定部16は、当該プロセッサが所定のプログラムを実行することによって達成される機能モジュールであってもよい。以下は、制御部10が電子回路によって実現される場合について説明される。
【0027】
図2は、インタフェース部11A、通信状態検知部12A、及び、アービトレーション終了判定部13Aの回路図の一例である。インタフェース部11Aは、CANバス#1を
構成する2本の信号線に接続するトランシーバを含む。2本の信号線の電圧差が所定未満の場合には、CANバス#1はリセッシブ状態である。当該2本の信号線の電圧差が所定値以上の場合には、CANバス#1はドミナント状態である。インタフェース部11AのトランシーバのRx端子からは、ドミナント状態の場合にHigh信号が出力され、リセッシブ状態の場合にLow信号が出力される。インタフェース部11AのトランシーバのRx端子のHigh信号の出力は、CANバス#1におけるドミナント状態の検知の通知を示す(図中、「ドミナント検知#1」)。
【0028】
通信状態検知部12Aは、開始検知部121Aと終了検知部122Aとを含む。開始検知部121Aは、CANバス#1におけるCANフレームの送信の開始を検知する。開始検知部121Aは、Dフリップフロップ回路(以下、D-FF)を備える。第1実施形態において、
図2以降に登場する当該D-FFでは、D端子には常にHigh信号が入力されており、クロック端子(図中、「CLK」)の入力がLow信号からHigh信号に立ち上がると、以降、クロック端子の入力値にかかわらず、Q端子からHigh信号が出力される。当該D-FFでは、クリア端子(図中「CLR」)にHigh信号が入力されると、Q端子の出力値が初期状態のLow信号に戻る。
【0029】
開始検知部121AのD-FFは、クロック端子の入力をインタフェース部11Aの出力信号としている。したがって、開始検知部121AのD-FFは、CANバス#1においてリセッシブ状態からドミナント状態へ移行すると、Q端子からHigh信号を出力する。開始検知部121AのD-FFのQ端子からのHigh信号の出力は、CANバス#1におけるCANフレームの送信開始の通知(図中、「通信開始#1」)に対応させることができる。
【0030】
終了検知部122Aは、CANバス#1におけるCANフレームの送信終了を検知する。終了検知部122Aは、発振器とバイナリカウンタとAND回路とを含む。終了検知部122Aのバイナリカウンタは、クロック端子の入力を発信器のクロック信号とし、クリア端子の入力をインタフェース部11Aの出力信号としている。また、終了検知部122Aのバイナリカウンタは、CANフレームの送信終了及びエラーフレームを検出するために、7ビットに相当する時間におけるクロック数をカウントするように設定されている。すなわち、終了検知部122Aのバイナリカウンタは、7ビットに相当する時間長のタイマとして機能する。
【0031】
例えば、発信器が16MHzのクロックであり、CANバスの通信速度が500kbpsである場合には、1ビットの相当時間におけるクロック信号のカウント数は32回になる。したがって、この場合には、終了検知部122Aのバイナリカウンタは、7ビットに相当する時間におけるクロック数として、32回×7ビット=224回(0b11100000)カウントするように構成されている。
【0032】
したがって、終了検知部122Aでは、CANバス#1がリセッシブ状態になると、バイナリカウンタがクロックのカウントを開始し、カウント数が7ビット分に達すると、AND回路からHigh信号が出力される。AND回路からのHigh信号の出力は、CANバス#1におけるCANフレームの送信終了の通知(図中、「通信終了#1」)に対応させることができる。
【0033】
ここで、終了検知部122Aからの「通信終了#1」に対応するHigh信号は、開始検知部121AのD-FFのクリア端子に入力されている。そのため、開始検知部121Aは、CANバス#1においてCANフレームの送信開始が検知されると、以降、CANフレームの送信開始の通知を示すHigh信号の出力を継続し、CANバス#1においてCANフレームの送信終了が検知されるとLow信号を出力する。
【0034】
次に、アービトレーション終了判定部13Aは、発信器とバイナリカウンタとAND回路とD-FFとを含む。アービトレーション終了判定部13Aのバイナリカウンタは、クロック端子の入力を発信器からのクロック信号とし、クリア端子の入力の反転を開始検知部121AのQ端子の出力の反転信号としている。また、アービトレーション終了判定部13Aのバイナリカウンタは、アービトレーションの終了を検知するために、13ビットに相当する時間におけるクロック数をカウントするように設定されている。すなわち、アービトレーション終了判定部13Aのバイナリカウンタは、アービトレーションタイマとして機能する。例えば、発信器が16MHzのクロックであり、CANバスの通信速度が500kbpsである場合には、アービトレーション終了判定部13Aのバイナリカウンタは、13ビットに相当する時間におけるクロック数として、32回×13ビット=416回(0b110100000)カウントするように構成されている。すなわち、アービトレーション終了判定部13Aのバイナリカウンタは、CANバス#1においてCANフレームの送信開始が検知されるとカウントを開始し、13ビット分のカウント数に達するとAND回路からHigh信号が出力される。
【0035】
また、アービトレーション終了判定部13AのD-FFは、クロック端子の入力をAND回路の出力信号とし、クリア端子の入力を終了検知部122Aの出力信号とする。すなわち、アービトレーション終了判定部13AのD-FFは、CANバス#1においてCANフレームの送信開始が検知されてから13ビット分に相当する時間の経過後にQ端子からHigh信号の出力を開始し、当該CANフレームの送信終了が検知されるとQ端子からLow信号を出力する。アービトレーション終了判定部13AのD-FFのQ端子からのHigh信号の出力は、CANバス#1において送信されたCANフレームのアービトレーション終了の通知(図中、「ARB終了#1」)に対応させることができる。
【0036】
以上より、アービトレーション終了判定部13Aは、CANバス#1においてCANフレームの送信開始が検知されてから13ビット分に相当する時間待機して、CANバス#1において送信されたCANフレームのアービトレーション終了の通知を出力するように動作する。
【0037】
図3は、バス接続制御部14及び送信方向判定部16の回路図の一例である。
図3に示される回路図は、バス接続制御部14及び送信方向判定部16のCANバス#1についての構成であって、バス接続制御部14及び送信方向判定部16には、同様の構成がCANバス#2についても備えられている。
【0038】
送信方向判定部16は、CANバス#1についての構成として、OR回路とD-FFとを備える。送信方向判定部16のOR回路は、終了検知部122Aの出力信号と、アービトレーション終了判定部13のD-FFのQ端子の出力の反転信号と、CANバス#2を送信元CANバスとして検知したことを通知する信号(図中、「送信検知#2」)と、を入力とする。送信方向判定部16のD-FF回路は、クロック端子の入力をインタフェース部11Aの出力信号とし、クリア端子の入力をOR回路の出力信号とする。
【0039】
すなわち、送信方向判定部16のD-FFは、CANバス#1においてCANフレームのアービトレーションが終了してから当該CANフレームの送信終了が検出されるまでの間で、且つ、CANバス#2が送信元CANバスとして検知されていない場合に、CANバス#1がドミナント状態となると、Q端子からHigh信号を出力する。送信方向判定部16のD-FFのQ端子から出力されるHigh信号は、CANバス#1を送信元CANバスとして検知したことの通知(図中、「送信検知#1」)に対応させることができる。
【0040】
以上より、送信方向判定部16は、CANバス#1について、CANフレームのアービトレーション終了後に初めてドミナント状態となったCANバスがCANバス#1である場合に、CANバス#1を送信元CANバスとして特定するように動作する。送信方向判定部16は、CANバス#2についても同様の構成を有し、CANバス#2について、CANフレームのアービトレーション終了後に初めてドミナント状態となったCANバスがCANバス#2である場合に、CANバス#2を送信元CANバスとして特定するように動作する。
【0041】
次に、バス接続制御部14は、CANバス#1についての構成として、AND回路とOR回路とを備える。バス接続制御部14のAND回路は、開始検知部121Aの出力信号と、アービトレーション終了判定部13のD-FFのQ端子の出力の反転信号と、を入力とする。バス接続制御部14のOR回路は、送信方向判定部16のCANバス#1についてD-FFのQ端子の出力信号と、送信方向判定部16のAND回路の出力信号と、を入力信号とする。すなわち、バス接続制御部14のOR回路は、CANバス#1においてCANフレーム送信開始からアービトレーション終了までの間と、CANバス#1が送信元CANバスとして特定されてからCANフレームの送信が終了するまでの間とに、High信号を出力する。バス接続制御部14のOR回路のHigh信号の出力は、バス接続部15への接続指示に対応させることができる。一方、バス接続制御部14のOR回路のLow信号の出力は、バス接続部15へのバス切断指示に対応させることができる。
【0042】
以上より、バス接続制御部14は、CANバス#1について、CANフレームの送信開始の検知後に接続指示を出力し、アービトレーションの終了が検知されるとバス切断指示を出力し、その後、ドミナント状態が検知されると接続指示を出力するように動作する。バス接続制御部14は、CANバス#2についても同様の構成を有し、CANバス#2についても同様に動作する。
【0043】
図4は、制御部10の処理のフローチャートの一例である。制御部10の処理は、所定の周期で繰り返し実行される。
図4に示される処理は、制御部10が
図2及び
図3で示される電子回路で構成される場合に制御部10において行われる処理である。また、制御部10がCPU等のプロセッサである場合にも、
図4に示される処理は、制御部10が所定のプログラムを実行することによって行われる処理であると言える。
【0044】
OP101では、制御部10は、いずれかのインタフェース部11から、対象CANバスのドミナント状態の検知の通知が入力されたか否かを判定する。OP101の判定は、CANフレームの送信が開始されたか否かを判定することを意味する。OP101の判定が肯定判定の場合には、処理がOP102へ進む。OP101の判定が否定判定の場合には、
図4に示される処理が終了する。
【0045】
OP102では、制御部10は、バス接続部15へ接続指示を出力する。これによって、バス接続部15によってCANバス#1とCANバス#2とが接続され、いずれかのCANバスに接続する装置から送信されたCANフレームの信号がCANバス#1及びCANバス#2に送信される。
【0046】
OP103では、制御部10は、アービトレーションタイマ(13ビット分相当時間)を始動させる。OP104では、アービトレーションタイマが満了したか否かが判定される。アービトレーションタイマが満了すると(OP104:YES)、処理がOP106へ進む。アービトレーションタイマが満了するまでの間は(OP104:NO)、処理がOP105へ進む。
【0047】
OP105では、リセッシブ状態が7ビットに相当する時間長継続したか否かが判定さ
れる。OP105の処理は、例えば、
図2における終了検知部122Aのバイナリカウンタの動作に相当する。リセッシブ状態が7ビットに相当する時間長継続した場合には(OP105:YES)、処理がOP114へ進む。リセッシブ状態の継続時間が7ビットに相当する時間長に達していない場合には(OP105:NO)、処理がOP104へ進む。
【0048】
OP106では、制御部10は、アービトレーションの終了を検知し、バス接続部15へ切断指示を出力する。これによって、バス接続部15によって、CANバス#1とCANバス#2とが切断される。
【0049】
OP107では、制御部10は、インタフェース部11AからCANバス#1のドミナント状態の検知の通知が入力されたか否かを判定する。OP107の判定が肯定判定の場合には、処理がOP108へ進む。OP108では、制御部10は、CANバス#1をCANフレームの送信元CANバスとして特定する。OP107の判定が否定判定である場合には、処理がOP109へ進む。
【0050】
OP109では、制御部10は、インタフェース部11BからCANバス#2のドミナント状態の検知の通知が入力されたか否かを判定する。OP109の判定が肯定判定である場合には、処理がOP110へ進む。OP110では、制御部10は、CANバス#2をCANフレームの送信元CANバスとして特定する。OP109の判定が否定判定である場合には、処理がOP111へ進む。
【0051】
OP111では、制御部10は、リセッシブ状態が7ビットに相当する時間長継続したか否かを判定する。リセッシブ状態が7ビットに相当する時間長継続した場合には(OP111:YES)、処理がOP114へ進む。リセッシブ状態の継続時間が7ビットに相当する時間長に達していない場合には(OP111:NO)、処理がOP107へ進む。
【0052】
OP112では、制御部10は、バス接続部15へ接続指示を出力する。これによって、OP106においてアービトレーション終了後に切断されたCANバス#1とCANバス#2とが再度接続される。OP113では、制御部10は、リセッシブ状態が7ビットに相当する時間長継続したか否かを判定する。リセッシブ状態が7ビットに相当する時間長継続した場合には(OP113:YES)、処理がOP114へ進む。リセッシブ状態の継続時間が7ビットに相当する時間長に達していない場合には(OP113:NO)、再度OP113の処理が繰り返される。
【0053】
OP114では、制御部10は、CANフレーム送信終了又はエラーフレーム送信終了が検知されたので、制御部10の内部状態をリセットする。OP114では、例えば、
図2及び
図3における各D-FFの状態がリセットされる。OP115では、制御部10は、バス接続部15へ、切断指示を出力する。これによって、CANバス#1とCANバス#2とが切断される。
【0054】
<第1実施形態の作用効果>
第1実施形態では、CANバス#1とCANバス#2とに接続する送信元検知装置1が、CANフレームの送信が開始されてからアービトレーション終了後に最初にドミナント状態が検知されたCANバスを送信元CANバスとして特定する。これによって、CANフレームの送信元装置が接続されているCANバスが、CANバス#1又はCANバス#2のいずれであるかを特定することができる。
【0055】
第1実施形態では、送信元検知装置1は、いずれかのCANバスのドミナント状態が検知さると、CANバス#1とCANバス#2とを接続する。これによって、いずれかのC
ANバスに接続する装置から送信されたCANフレームは、他方のCANバスにも伝送される。また、アービトレーション終了後にCANバス#1とCANバス#2との接続が一旦接続されるが、その後初めていずれかのCANバスがドミナント状態となったことが検知されると、再度CANバス#1とCANバス#2とは接続される。これによって、送信元検知装置1は、CANバス内のCAN通信を妨げることなく、CANフレームの送信元装置が接続されているCANバスを特定することができる。
【0056】
CANバスをCANバス#1とCANバス#2とに分断し、送信元検知装置1を、CANバス#1及びCANバス#2それぞれに接続させ、
図2及び
図3に示されるような電子回路で構成することによって、簡易な構成で、且つ、磁界ノイズに対する耐性の強い装置とすることができる。また、例えば、アービトレーション終了後にCANバス#1とCANバス#2とを接続したままにし、電流を測定することで送信元CANバスを特定しようとすると、電流の測定が電気信号の伝搬速度に追いつかず、CANバス#1とCANバス#2との両方でドミナント状態を検知してしまうおそれがある。第1実施形態では、アービトレーション終了後に一旦CANバス#1とCANバス#2とを切断することで、より簡易な構成で、より正確に送信元CANバスを特定することを可能にする。
【0057】
<送信元CANバスの検知結果の応用例1>
図5は、送信元CANバスの検知結果を応用する送信元検知装置1Bの構成の一例である。送信元検知装置1Bは、送信元検知装置1の構成に加えて、攻撃検知部17をさらに備える。なお、
図5では、送信元検知装置1Bは、CAN ID認識部18及びメッセージコンテンツ保持部19もさらに備えているが、これらは、後述の応用例において採用される構成である。
【0058】
攻撃検知部17は、送信方向判定部16から、送信元CANバスに関する情報の入力を受ける。攻撃検知部17は、送信元CANバスに関する情報に基づいて、送信されたCANフレームが攻撃性のものであるか否かを判定する。例えば、送信元CANバスに関する情報が、CANフレームの送信が発生するはずのないCANバスを送信元CANバスとして示す場合には、攻撃検知部17は、当該CANフレームが攻撃性のものであることを判定する。
【0059】
攻撃検知部17は、送信されたCANフレームが攻撃性のCANフレームであることを判定した場合に、バス接続制御部14に攻撃発生の通知を出力する。バス接続制御部14は、攻撃検知部17から攻撃発生の通知を受信すると、バス接続部15へ切断指示を出力する。なお、攻撃発生の通知に応じた切断指示の出力は、バス接続制御部14の他の機能に優先して実行される。これによって、CANバス#1とCANバス#2との接続を切断して更なる攻撃を阻止することができる。
【0060】
当該応用例1について想定される脅威シナリオの一例として、CANバスをモニタするECU及びデバッグ等のモード以外でCANフレームを送信しないECUを含む車載システムにおいて、当該ECUが攻撃された結果、当該ECUから攻撃性のCANフレームを送信させるケースが挙げられる。この場合、送信元検知装置1Bは、当該ECUからのCANフレームの送信を検知し、さらなる攻撃の継続を阻止することができる。
【0061】
<送信元CANバスの検知結果の応用例2>
送信元CANバスの検知結果の応用例2では、送信元検知装置1Bは、攻撃検知部17とCAN ID認識部18とをさらに有する。CAN ID認識部18は、インタフェース部11A及びインタフェース部11Bそれぞれから、CANフレームの内容を取得する。また、CAN ID認識部18は、取得したCANフレームからCAN IDを取得し、攻撃検知部17に出力する。
【0062】
攻撃検知部17は、CAN IDと当該CAN IDを含むCANフレームの送信元CANバスに関する情報とを紐づけたデータベースを備える。
図6は、CAN IDと送信元CANバスに関する情報とを紐づけたデータベースの一例である。当該データベースは、攻撃検知部17に備えられるメモリ内、又は、制御部10がプロセッサである場合には送信元検知装置1に備えられるメモリまたは補助記憶装置内に保持される。
【0063】
攻撃検知部17は、CAN ID認識部18から取得したCAN IDと、送信方向判定部16から取得した送信元CANバスに関する情報と、を紐づけた情報が、攻撃検知部17が保持するデータベースに存在するか否かを判定する。CAN ID認識部18から取得したCAN IDと、送信方向判定部16から取得した送信元CANバスに関する情報と、を紐づけた情報が、攻撃検知部17が保持するデータベースに存在しない場合には、攻撃検知部17は、送信開始が検知されたCANフレームが攻撃性のCANフレームであることを判定して、バス接続制御部14に攻撃発生の通知を出力する。バス接続制御部14は、応用例1と同様に、攻撃発生の通知を受信して、バス接続部15に切断指示を出力する。
【0064】
応用例2によれば、CANフレームのCAN IDと送信元CANバスとに基づいた攻撃判定が可能な攻撃について、CANバスを切断して更なる攻撃を阻止することができる。
【0065】
当該応用例2について想定される脅威シナリオの一例として、車両運行に係る第1のECU群と、第1のECU群のECUをサポートする第2のECU群と、が1つのCANバスに接続されている車載システムにおいて、第2のECU群側から攻撃を行うケースが挙げられる。この場合、第1のECU群と第2のECU群との間のCANバス上に送信元検知装置1Bを配置する。送信元検知装置1Bが、第2のECU群側からの攻撃性のCANフレームを検知した際に、第2のECU群側からのすべてのCANフレームを遮断することで、第1のECU群を第2のECU群側からのさらなる攻撃から守ることができる。
【0066】
当該応用例2について想定される脅威シナリオの一例として、車載システム外との通信機能を持つ通信ECUが、車載システム外からの攻撃の結果、車載システム内に対して攻撃性のCANフレームを送信するケースが挙げられる。この場合は、通信ECUと他のECUとの間のCANバス上に送信元検知装置1Bを配置する。送信元検知装置1Bが、通信ECU側からの攻撃性のCANフレームを検知した際に、通信ECU側からのすべてのCANフレームを遮断することで、CANバスに接続された他のECUをさらなる攻撃から守ることができる。
【0067】
なお、応用例1及び2において、攻撃検知部17は、CANフレームの送信が完了するたびに、攻撃発生の通知の出力を終了してもよい。これにより、攻撃性のCANフレームを受信している間に限りCANバスを遮断することとなり、攻撃性のCANフレームに限定してCANフレームの送信元検知装置1Bの通過を妨げることができる。さらに、攻撃者にとっては攻撃性のCANフレーム送信自体は成功しているように見えるため、攻撃失敗を攻撃者に悟られることなく攻撃の阻止をすることもできる。
【0068】
または、応用例1及び2において、攻撃検知部17は、攻撃性のCANフレームを検知した際に、CANバスに対してエラーフレームを送信してもよい。これにより、攻撃性のCANフレームの送信元装置が接続しているCANバスに対しても、攻撃性のCANフレームの流通を妨げることができる。
【0069】
<送信元CANバスの検知結果の応用例3>
送信元CANバスの検知結果の応用例3では、送信元検知装置1Bは、攻撃検知部17とCAN ID認識部18とメッセージコンテンツ保持部19をさらに有する。
【0070】
メッセージコンテンツ保持部19は、攻撃検知部17によって攻撃性のCANフレームであると判定されたCANフレームのCAN IDと、当該CANフレームの送信元CANバスに関する情報とを紐づけて、メモリに保存する。これによって、過去に発生した攻撃性のCANフレームの送信元装置に繋がり得る情報を保持して、攻撃を調査する際に役立つ情報を得ることができる。
【0071】
<その他の実施形態>
上記の実施形態はあくまでも一例であって、本開示はその要旨を逸脱しない範囲内で適宜変更して実施しうる。
【0072】
第1実施形態では、送信元検知装置1は、CANバスをCANバス#1とCANバス#2との2つに分断する例が示されたが、送信元検知装置1によってCANバスは3つ以上に分断されてもよい。すなわち、送信元検知装置1は、3つ以上のCANバスに接続してもよい。この場合には、送信元検知装置1は、接続する各CANバスについてインタフェース部11、通信状態検知部12、及び、アービトレーション終了判定部13のセットを備える。
【0073】
本開示において説明した処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【0074】
また、1つの装置が行うものとして説明した処理が、複数の装置によって分担して実行されてもよい。あるいは、異なる装置が行うものとして説明した処理が、1つの装置によって実行されても構わない。コンピュータシステムにおいて、各機能をどのようなハードウェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
【0075】
本開示は、上記の実施形態で説明した機能を実装したコンピュータプログラムをコンピュータに供給し、当該コンピュータが有する1つ以上のプロセッサがプログラムを読み出して実行することによっても実現可能である。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な非一時的なコンピュータ可読記憶媒体によってコンピュータに提供されてもよいし、ネットワークを介してコンピュータに提供されてもよい。非一時的なコンピュータ可読記憶媒体は、例えば、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ(HDD)等)、光ディスク(CD-ROM、DVDディスク、ブルーレイディスク等)など任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体を含む。
【符号の説明】
【0076】
1・・送信元検知装置
10・・制御部
11・・インタフェース部
12・・通信状態検知部
13・・アービトレーション終了判定部
14・・バス接続制御部
15・・バス接続部
16・・送信方向判定部
17・・攻撃検知部
18・・CAN ID認識部
19・・メッセージコンテンツ保持部
121・・開始検知部
122・・終了検知部