[発明者の知見]
自動車の内部に搭載されている車載ネットワークは、年々進歩を続けている。例えば、従来のコントローラエリアネットワーク(Controller Area Network、以下「CAN」とも記載)等の車載ネットワークに加え、最近では車載イーサネット(登録商標)(Ethernet)を一部適用した自動車も市場に出ている。今後、車載ネットワークに占めるイーサネット(登録商標)の割合が増加することが予想されている。加えて、携帯電話ネットワーク等の外部ネットワークと車載ネットワークとが接続されるケースも増えている。来る自動運転車においては、道路状況及び高精度地図情報等の送受信のために、車載ネットワークと外部ネットワークとの接続が必須になるものと考えられる。
また、ブレーキアシスト、自動駐車及びレーンキープアシストに代表される先進運転支援システム(Advanced Driver Assistance System、以下「ADAS」とも記載)の普及に伴い、ブレーキECU等の車体制御ECUが、車載ネットワーク経由で送られてくる制御データにより制御されるようになってきている。
このように、外部ネットワークへの接続の増加及びネットワーク経由での車体制御の増加に伴い、自動車へのサイバー攻撃のリスクが高まっている。例えば、携帯電話ネットワークから走行中の車のハンドル又はブレーキを操作する攻撃の実例も発表されている。このため、自動車におけるセキュリティ対策が求められ、車載ネットワークにおいてもセキュリティ対応が必要になると考えられる。
従来の車載中継装置は、特許文献1に開示されるように、データ送信対象となるECUの状態又は電圧を監視して伝送を制御するように構成されている。特許文献1に開示されるゲートウェイからなる車載中継装置は、電圧検出部でバッテリ電圧を監視する。この車載中継装置は、電圧の低下が検出された場合に、特定のECUを送信先としたデータ送信について、その制御部で送信の停止又は送信先の変更を行う。例えば、車載中継装置は、電源ラインの電圧の低下が検出されたECUの動作に支障があると判断すると、そのECUを送信先とするデータの転送を停止する。
しかしながら、データを送信する任意の車載機器が攻撃を受けて、不正なデータを送信する場合、上記のような従来の車載中継装置は、データの送信元の車載機器を監視していないため、攻撃及び不正を検知できない。そのため、車載中継装置は、不正なデータを送信する車載機器による制御を止めることができない。
また、従来の車載中継装置では、転送の停止判定が送信先IDのみを用いて行われるため、転送の停止が決定された送信先IDの車載機器に対して、全てのデータの転送が停止される。このため、転送停止が決定された送信先IDの車載機器に対して、診断装置又は診断サーバによる診断コマンドの転送も復旧に必要なコマンドの転送もできなくなる。
また、従来の車載中継装置では、不正な車載機器からデータを転送する場合、データの転送が停止された車載機器にはデータの転送がされないが、データの転送が停止されていない車載機器にはデータの転送がされるという状況が起こりうる。そのため、不正な車載機器を送信元とする不正なデータによる攻撃を確実に防ぐことができない。
そこで、本発明者らは、車載ネットワークにおいて、任意の車載機器が攻撃を受け、不正なデータを送信している可能性があることが検知された際に、その車載機器からの不正な制御を停止する技術を検討した。例えば、本発明者らは、攻撃により任意の車載機器が攻撃を受け、不正なデータを送信している場合に、解析又は復旧を可能にしながら他の車載機器への影響を抑える技術を検討した。そして、本発明らは、以下に示すような技術を創案した。
本開示の一態様に係る車載中継装置は、車両に搭載され且つ車載機器間のデータの送受信を中継する車載中継装置であって、第1の車載機器とデータを送受信する第1の通信部と、第2の車載機器とデータを送受信する第2の通信部と、前記第1の通信部と前記第2の通信部との間でのデータの中継を制御する制御部とを備え、前記制御部は、前記第1の通信部又は前記第2の通信部から受信された受信データに不正がある場合、前記車両の走行状態に応じて、前記中継を停止する。
上記態様によると、車載中継装置は、受信データに不正がある場合、第1の通信部と第2の通信部との間でのデータの中継を停止することにより、不正のある車載機器から送信されたデータの転送を停止し、不正のある車載機器による不正制御を抑えることができる。さらに、車載中継装置は、中継の停止を、車両の走行状態に応じて行う。これにより、中継が停止されることにより、車両の走行が不安定になることが抑えられる。
本開示の一態様に係る車載中継装置において、前記第1の通信部及び前記第2の通信部の少なくとも1つは、ネットワークを介して、前記車載機器と送受信してもよい。
上記態様によると、ネットワークを介することによって、1つの通信部に複数の車載機器を接続することできる。車載中継装置が中継する車載機器の数量を増加することが可能になる。
本開示の一態様に係る車載中継装置は、前記第1の通信部と前記第1の車載機器とを接続するための第1のポートと、前記第2の通信部と前記第2の車載機器とを接続するための第2のポートとをさらに備え、前記制御部は、前記第1のポートと前記第2のポートとの間の接続を遮断することによって、前記中継を停止してもよい。
上記態様によると、車載中継装置は、受信データに不正がある場合、ポート間におけるデータの中継を停止し、不正化した車載機器とのデータの転送を停止する。これにより、車載中継装置は、不正化した車載機器による不正制御を抑え、且つ、不正化した車載機器から他の車載機器への影響を抑える。例えば、ポート間におけるデータの中継を停止は、CANのようなバス型ネットワークに接続された車載機器とのデータの転送の停止を可能にする。
本開示の一態様に係る車載中継装置において、前記制御部は、不正がある前記受信データの送信元の前記車載機器を宛先又は送信元とするMACアドレスを含むデータの中継を停止することによって、前記中継を停止してもよい。
上記態様によると、車載中継装置は、受信データに不正がある場合、不正がある受信データの送信元の車載機器を宛先又は送信元とするMACアドレスを含むデータの中継を停止する。これにより、車載中継装置は、不正化した車載機器とのデータの転送を停止することできる。例えば、このような中継の停止は、イーサネット(登録商標)に接続された車載機器とのデータの転送の停止を可能にする。
本開示の一態様に係る車載中継装置において、前記制御部は、不正がある前記受信データの送信元の前記車載機器を宛先又は送信元とするIPアドレスを含むデータの中継を停止することによって、前記中継を停止してもよい。
上記態様によると、車載中継装置は、受信データに不正がある場合、不正がある受信データの送信元の車載機器を宛先又は送信元とするIPアドレスを含むデータの中継を停止する。これにより、車載中継装置は、不正化した車載機器とのデータの転送を停止することできる。例えば、このような中継の停止は、イーサネット(登録商標)に接続された車載機器とのデータの転送の停止を可能にする。さらに、1つの通信部に複数の車載機器が接続されていても、IPアドレスは、データの送信元の特定を可能にする。よって、個別の車載機器とのデータの転送の停止が可能になる。
本開示の一態様に係る車載中継装置において、前記制御部は、前記受信データに不正があることを通知する不正検知データを、前記第1の通信部又は前記第2の通信部から受信し、前記不正検知データの受信後、所定時間経過後に前記中継を停止してもよい。
上記態様によると、車載中継装置が不正検知データを受信してから中継を停止するまでに、所定時間ある。このため、車載中継装置が搭載されている車両の操作者は、車両の制御を切り替えることができる。例えば、操作者は、車両の自動運転機能等をオフして手動運転に切り替えることができる。例えば、不正な車載機器が、自動運転機能に関連するECUであるような場合に、そのECUからのデータの中継が突然停止してしまうと、車両が無制御の状態になってしまう可能性がある。車載中継装置は、車両の無制御の状態を抑制することができる。
本開示の一態様に係る車載中継装置において、前記車両は、自動運転機能を備え、前記制御部は、前記受信データに不正があることを通知する不正検知データを、前記第1の通信部又は前記第2の通信部から受信し、前記不正検知データの受信後、前記車両の走行状態として、前記自動運転機能がオフ状態であることを通知するデータを受信すると前記中継を停止してもよい。
上記態様によると、車載中継装置は、自動運転機能がオフ状態であることを通知するデータを受信すると中継を停止する。例えば、不正な車載機器が、自動運転機能に関連するECUであるような場合に、そのECUからのデータの中継を突然停止してしまうと、車両が無制御の状態になってしまう可能性がある。車載中継装置は、車両の無制御の状態を抑制することができる。
本開示の一態様に係る車載中継装置において、前記不正検知データは、不正が検出されたデータの情報と、前記不正が検出されたデータの送信元の情報とを含んでもよい。
上記態様によると、車載中継装置は、不正検知データを受信することによって、不正が検出された車載機器を特定することができる。
本開示の一態様に係る車載中継装置は、前記不正が検出されたデータの情報と、前記不正が検出されたデータの送信元の情報とを対応付けて格納する記憶部をさらに備え、前記制御部は、前記記憶部の前記不正が検出されたデータの情報と前記不正が検出されたデータの送信元の情報とに基づき、前記不正が検出されたデータの送信元を特定してもよい。
上記態様によると、車載中継装置は、記憶部を参照することによって、過去に遡って不正が検出された車載機器を特定することができる。
本開示の一態様に係る車載中継装置は、第3の車載機器とデータを送受信する第3の通信部をさらに備え、前記制御部は、前記第1の通信部から受信された受信データに不正がある場合、前記第1の通信部と前記第2の通信部との間でのデータの中継を停止し、前記第1の通信部と前記第3の通信部との間でのデータの中継を継続してもよい。
上記態様によると、第1の通信部と第2の通信部との間でのデータの中継が停止された状態において、受信データに不正がある第1の通信部と第3の通信部との間でのデータの中継を利用することで、不正な車載機器の解析又はソフトウェア・ファームウェアの更新による対応が容易になる。
本開示の一態様に係る車載中継装置において、前記第3の車載機器には、前記第1の車載機器の状態を診断する診断機器が接続されてもよい。
上記態様によると、中継の停止後も、不正化したと考えられる車載機器に対して診断機器による診断又はソフトウェアの更新が可能となる。
本開示の一態様に係る車載中継装置において、前記第3の車載機器は、外部と通信可能な通信ユニットであってもよい。
上記態様によると、中継の停止後も、不正化したと考えられる車載機器に対して外部通信による診断又はソフトウェア更新が可能となる。
本開示の一態様に係る車載中継装置において、前記制御部は、前記第1の通信部又は前記第2の通信部から受信された受信データに不正がある場合、前記第1の通信部又は前記第2の通信部から前記中継の停止の解除を要求するデータを受信すると、停止している前記中継を再開してもよい。
上記態様によると、車載中継装置は、受信データに不正がある場合、不正な車載機器に対して適切な対応が行われた後、中継を再開することで、不正が検知される前の正常な状態に戻ることができる。
本開示の一態様に係る車載中継装置は、前記第1の車載機器と前記第2の車載機器との中継状況を記憶する記憶部をさらに備え、前記制御部は、前記車載中継装置の電源投入時に、前記記憶部に記憶されている前記中継状況に基づいて、前記第1の車載機器と前記第2の車載機器との中継を維持又は停止してもよい。
上記態様によると、車載中継装置は、電源オフの後に電源オンされた場合、中継状態を電源オフ前と同じ状態にすることができ、電源オフ前と同様に中継維持又は中継停止にすることができる。車載中継装置は、電源のオン及びオフによって、中継を停止していた不正データの中継が意図せず再開されることを防ぐことができる。
本開示の一態様に係る中継方法は、車載機器間のデータの送受信を中継する中継方法であって、第1の車載機器とデータを送受信し、第2の車載機器とデータを送受信し、前記第1の車載機器と前記第2の車載機器との間でデータを中継し、前記第1の車載機器又は前記第2の車載機器のデータに不正がある場合、前記車載機器を搭載する車両の走行状態に応じて、前記中継を停止する。上記態様によると、本開示の一態様に係る車載中継装置と同様の効果が得られる。
本開示の一態様に係るプログラムは、第1の車載機器とデータを送受信し、第2の車載機器とデータを送受信し、前記第1の車載機器と前記第2の車載機器との間でデータを中継し、前記第1の車載機器又は前記第2の車載機器のデータに不正がある場合、前記車載機器を搭載する車両の走行状態に応じて、前記中継を停止することをコンピュータに実行させる。上記態様によると、本開示の一態様に係る車載中継装置と同様の効果が得られる。
本開示の別の一態様に係る車載中継装置は、第1のネットワークからデータを受信する第1の受信部と、前記第1のネットワークへデータを送信する第1の送信部と、第2のネットワークからデータを受信する第2の受信部と、前記第2のネットワークへデータを送信する第2の送信部と、前記第1のネットワークと前記第2のネットワークのデータとの中継を制御する制御部と、を備え、前記第1の受信部から受信した第1のデータが不正を検知したことを通知するための不正検知データである場合、前記制御部は、前記第1のネットワークと前記第2のネットワークとの中継を停止する。
上記構成によれば、車載中継装置は、不正検知データ受信した際に、不正検知データを受信したネットワークとのデータの中継を停止することにより、そのネットワークに含まれる不正なECU等の車載機器から送信されたデータの転送を停止し、不正な車載機器による不正制御を抑えることができる。
本開示の別の一態様に係る車載中継装置において、前記第1のデータが前記不正検知データである場合、前記制御部は、前記第1のデータを受信した後、所定時間経過後に前記第1のネットワークと前記第2のネットワークとの中継を停止してもよい。
上記構成によれば、不正検知データを受信してから、不正検知データを受信したネットワークとのデータの中継を停止するまでの所定時間で、車載中継装置が搭載されている車両の操作者は自動運転機能等をオフして手動運転に切り替えることが可能になる。例えば、不正検知データを受信したネットワークに含まれる不正な車載機器が、自動運転機能に関連するECUであるような場合に、そのECUからのデータの中継を突然停止してしまうと、車両が無制御の状態になってしまう可能性を低減できる。
本開示の別の一態様に係る車載中継装置において、前記第1のデータが前記不正検知データである場合、前記第1のデータを受信した後、前記第1の受信部または前記第2の受信部から自動運転機能がオフ状態であることを通知する第2のデータを受信した場合、前記制御部は、前記第1のネットワークと前記第2のネットワークとの中継を停止してもよい。
本開示の別の一態様に係る車載中継装置は、第3のネットワークからデータを受信する第3の受信部と、前記第3のネットワークへデータを送信する第3の送信部と、を更に備え、前記第1のデータが前記不正検知データである場合、前記第1のデータを受信した後、前記第3の受信部から自動運転機能がオフ状態であることを通知する第2のデータを受信した場合、前記制御部は、前記第1のネットワークと前記第2のネットワークとの中継を停止してもよい。
上記構成によれば、自動運転機能がオフ状態であることを通知する第2のデータを受信した後に第1のネットワークと第2のネットワークとの中継を停止するので、例えば、不正検知データを受信したネットワークに含まれる不正な車載機器が、自動運転機能に関連するECUであるような場合に、そのECUからのデータの中継を突然停止してしまうと、車両が無制御の状態になってしまう可能性を低減できる。
本開示の別の一態様に係る車載中継装置は、第3のネットワークからデータを受信する第3の受信部と、前記第3のネットワークへデータを送信する第3の送信部と、を更に備え、前記第1のデータが前記不正検知データである場合、前記制御部は、前記第1のネットワークと前記第2のネットワークとの中継を停止し、前記第1のネットワークと前記第3のネットワークとの中継は継続してもよい。
本構成によれば、接続制限後の解析やソフトウェア・ファームウェアの更新による対応が容易になる。
本開示の別の一態様に係る車載中継装置において、前記第3のネットワークには、前記第1のネットワークに接続された車載機器と通信を行い、前記車載機器の状態を診断する診断機器が接続されてもよい。
上記構成によると、第1のネットワークと第2のネットワークとの中継を停止した後も、不正化したと考えられる車載機器に対して診断機器による診断やソフトウェアの更新が可能となる。
本開示の別の一態様に係る車載中継装置において、前記第3のネットワークには外部と通信可能な通信ユニットが接続されてもよい。
上記構成によれば、第1のネットワークと第2のネットワークとの中継を停止した後も、不正化したと考えられる車載機器に対して外部通信による診断やソフトウェア更新が可能となる。
本開示の別の一態様に係る車載中継装置において、前記第1のデータを受信した後、前記第1の受信部または前記第2の受信部から前記第1のネットワークと前記第2のネットワークとの中継停止の解除を要求する第3のデータを受信した場合、前記制御部は、前記第1のネットワークと前記第2のネットワークとの中継を再開してもよい。
上記構成によれば、不正検知データの受信後に不正な車載機器に対して適切な対応が行われた後、第1のネットワークと第2のネットワークとの中継を再開することで、不正検知データを受信する前の正常な状態に戻ることができる。
本開示の別の一態様に係る車載中継装置において、前記第1のネットワークと前記第2のネットワークとの中継状況を記憶する記憶部を更に備え、前記制御部は、前記車載中継装置の電源投入時に、前記記憶部に記憶されている前記中継状況に基づいて、前記第1のネットワークと前記第2のネットワークとの中継を維持または停止してもよい。
上記構成によれば、電源オフの後電源オンされた場合に、第1のネットワークと第2のネットワークとの中継状況を電源オフ前と同じ、中継維持又は中継停止にすることができ、不正データが中継されることを防ぐことができる。
本開示の別の一態様に係る車載中継装置は、前記第1の受信部と前記第1の送信部とを前記第1のネットワークに接続するための第1のポートと、前記第2の受信部と前記第2の送信部とを前記第2のネットワークへ接続するための第2のポートと、を更に備え、前記第1のネットワークと前記第2のネットワークとのデータの中継の停止は、前記第1のポートと前記第2のポートとの中継の停止であってもよい。
上記構成によれば、不正検知データを受信した際に、不正検知データを送信したポートに対してデータの中継を停止することにより、不正化した車載機器とのデータの転送を停止し、不正化した車載機器による不正制御を抑えることが可能となると共に、他の車載機器への影響を抑えることができる。
本開示の別の一態様に係る車載中継装置において、前記第1のネットワークと前記第2のネットワークとのデータの中継の停止は、前記第1のネットワークを介して接続される第1のMACアドレスで示される車載機器と、前記第2のポートとの中継の停止であってもよい。
上記構成によれば、不正検知データを受信した際に、不正検知データを送信したMACアドレスで示される車載機器に対してデータの中継を停止することにより、不正化した車載機器とのデータの転送を停止し、不正化した車載機器による不正制御を抑えることが可能となると共に、他の車載機器への影響を抑えることができる。
本開示の別の一態様に係る車載中継装置において、前記第1のネットワークと前記第2のネットワークとのデータの中継の停止は、前記第1のネットワークを介して接続される第1のIPアドレスで示される車載機器と、前記第2のポートとの中継の停止であってもよい。
上記構成によれば、不正検知データを受信した際に、不正検知データを送信したIPアドレスで示される車載機器に対してデータの中継を停止することにより、不正化した車載機器とのデータの転送を停止し、不正化した車載機器による不正制御を抑えることが可能となると共に、他の車載機器への影響を抑えることができる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM等の不揮発性の記録媒体を含む。また、装置は、1つ以上の装置で構成されてもよい。装置が2つ以上の装置で構成される場合、当該2つ以上の装置は、1つの機器内に配置されてもよく、分離した2つ以上の機器内に分かれて配置されてもよい。本明細書及び特許請求の範囲では、「装置」とは、1つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
以下、本開示に係る車載中継装置等について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、並びにステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
(実施の形態1)
以下の実施の形態において、車載中継装置及び車載ネットワークは、自動運転機能を備える自動車に搭載されるとして説明する。自動運転機能は、運転支援に該当する自動運転レベル1から完全自動運転に該当する自動運転レベル5までのいかなる自動運転レベルであってもよい。
図1は、実施の形態1に係る車載中継装置100を備える車載ネットワーク1000の機能的な構成の一例を示すブロック図である。図1に示すように、実施の形態1に係る車載ネットワーク1000は、車載中継装置100、120a、120b及び120cと、IVI(車載インフォテインメント、In-Vehicle Infotainment)機器124と、センサ126と、カメラ128と、ADASECU130と、ブレーキECU132と、ステアリングECU134と、通信ユニット136と、解析インタフェース(以下、「I/F」とも記載)138と、不正検知装置140とを、構成要素として含む。さらに、車載ネットワーク1000は、上記構成要素間を接続するネットワークとして、CAN142と、イーサネット(登録商標)144、146、148及び150とを含む。
以下において、車載中継装置100を「第一車載中継装置」とも呼び、車載中継装置120a、120b及び120cを「第二車載中継装置」とも呼ぶ。以下の実施の形態において、第二車載中継装置は、従来技術の車載中継装置であり、第一車載中継装置は、本開示の新規な車載中継装置である。なお、第二車載中継装置に第一車載中継装置が適用されてもよい。第一車載中継装置100及び第二車載中継装置120a、120b及び120cの例は、ゲートウェイ、Switch、ルータ又はこれらの機能を内蔵した装置である。
実施の形態1に係る第一車載中継装置100は、ポートA102、ポートB104、ポートC106、ポートD108及びポートE110の5つのポートを備える。
ポートA102は、イーサネット(登録商標)144を介して、第二車載中継装置120cと接続される。第二車載中継装置120cは、通信ユニット136及び解析I/F138と接続される。通信ユニット136は、TCU(テレマティクス・コントロール・ユニット、Telematics Communication Unit)であり、携帯電話網又はWi-Fi(Wireless Fidelity)等の外部ネットワーク網との接続を行う機器である。解析I/F138は、車内機器のテスト又は解析を行うために外部機器と接続するためのI/Fである。
ポートB104は、CAN142を介して、不正検知装置140、ブレーキECU132及びステアリングECU134と接続される。不正検知装置140は、CAN142を介して受信されたデータに対して不正検知する機能を有し、且つ、エラーフレームによる不正データの無効化を行う機能を有している。ブレーキECU132は、CAN142を介して受信されたデータに基づいてブレーキ制御を行う車載機器である。ステアリングECU134は、CAN142を介して受信されたデータに基づきステアリング制御を行う車載機器である。CAN142上では、車体制御に関するデータ、車速及び加速度等の自車の車両状態に関するデータが送受信される。
ポートC106は、イーサネット(登録商標)146を介して、第二車載中継装置120aと接続される。第二車載中継装置120aは、IVI機器124と接続されている。IVI機器124は、ナビゲーション機能、並びに音楽及び動画などのマルチメディア再生機能等の機能を備える。IVI機器124はさらに、ADASECU130に関する機能設定のためのインタフェースを備える。ADASECU130に対して自動運転機能のオン又はオフが設定されると、IVI機器124は、ADASECU130へ自動運転機能オンの通知又は自動運転機能オフの通知を送信する。また、不正を検知したことを通知するデータが受信された場合に、IVI機器124は、自動車の運転者に不正の検知を通知し、ADASECU130に対して自動運転機能のオフの設定を促すことができる。
ポートD108は、イーサネット(登録商標)148を介して、第二車載中継装置120bと接続される。第二車載中継装置120bは、センサ126及びカメラ128と接続されている。センサ126及びカメラ128は、自車の周辺環境に関する情報を収集し、収集した情報を第二車載中継装置120bからイーサネット(登録商標)148へ送信する機器である。センサ126の例は、LIDAR(Light Detection and Ranging)などのレーザ光センサ、磁気センサ及び超音波センサ等である。
ポートE110は、イーサネット(登録商標)150を介して、ADASECU130と接続される。ADASECU130は、以下のような機能を備えた車載機器である。つまり、ADASECU130は、センサ126及びカメラ128から得られる情報、IVI機器124から得られる地図情報、並びに、CAN142から得られる制御情報を元に、自車の周辺状況及び自車の状況を認識し、次に行うべき車両制御を決定する。さらに、ADASECU130は、車両制御データをブレーキECU132及びステアリングECU134等の車両制御用のECUに送信する。ADASECU130は、自動運転機能がオンに設定されている際に車両制御データを送信する。
車載ネットワーク1000において、不正検知装置140は、CAN142上のデータに対して、データの不正検知を行う。不正検知装置140は、CAN142上で送受信される全てのデータについて、データのID、データの周期及びデータの値等の監視を行う。不正検知装置140は、データに対して不正を検知した場合、不正と判定されたデータに付与されているIDを、不正検知の通知と共に第一車載中継装置100に送信する。
不正検知装置140は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)等のプロセッサ、並びに、RAM(Random Access Memory)及びROM(Read-Only Memory)等のメモリなどからなるコンピュータシステム(図示せず)により構成されてもよい。不正検知装置140の一部又は全部の機能は、CPU又はDSPがRAMを作業用のメモリとして用いてROMに記録されたプログラムを実行することによって達成されてもよい。また、不正検知装置140の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。不正検知装置140の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。
第一車載中継装置100の構成を説明する。図2は、実施の形態1に係る第一車載中継装置100の機能的な構成の一例を示すブロック図である。図2に示すように、車載中継装置100は、ポートA102、ポートB104、ポートC106、ポートD108及びポートE110に加えて、以下の構成要素を備える。車載中継装置100は、ポートA102の受信部400及び送信部416と、ポートB104の受信部402及び送信部418と、ポートC106の受信部404及び送信部420と、ポートD108の受信部406及び送信部422と、ポートE110の受信部408及び送信部424と、記憶部410と、接続制御部414とを備える。
受信部400、402、404、406及び408、並びに送信部416、418、420、422及び424は、例えば、通信回路で構成される。ポートA102の受信部400及び送信部416と、ポートB104の受信部402及び送信部418と、ポートC106の受信部404及び送信部420と、ポートD108の受信部406及び送信部422と、ポートE110の受信部408及び送信部424とはそれぞれ、通信部の一例である。
記憶部410は、データを格納する。記憶部410は、例えば、ROM、RAM、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又はSSD(Solid State Drive)等の記憶装置によって実現される。記憶部410は、データを一時保管する揮発性記憶装置及び電源オフ時にもデータの保持が可能である不揮発性記憶装置で構成されてもよい。
接続制御部414は、ポート間の中継制御及び接続制御、受信データの宛先確認、データのフォーマット変更、不正検知データの受信、自動運転機能オン/オフデータの受信、並びに、ポートの制限解除の要求データの受信等を行う。接続制御部414は、CPU又はDSP等のプロセッサ、並びに、RAM及びROM等のメモリなどからなるコンピュータシステム(図示せず)により構成されてもよい。接続制御部414の一部又は全部の機能は、CPU又はDSPがRAMを作業用のメモリとして用いてROMに記録されたプログラムを実行することによって達成されてもよい。また、接続制御部414の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。接続制御部414の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。接続制御部414は、制御部の一例である。
次に、図3を参照しつつ、実施の形態1に係る第一車載中継装置100の動作を説明する。なお、図3は、実施の形態1に係る第一車載中継装置100の処理の一例を示すフローチャートである。
まず、ステップS500において、第一車載中継装置100は、ポートA102の受信部400、ポートB104の受信部402、ポートC106の受信部404、ポートD108の受信部406、及び、ポートE110の受信部408のいずれかのポートからデータを受信する。
次いで、ステップS502において、接続制御部414は、受信されたデータである受信データのMAC(Media Access Control)アドレス又はCANのIDから、受信データが自己宛、すなわち、第一車載中継装置100宛のデータか否かを判定する。自己宛のデータでない場合(ステップS502でNo)、接続制御部414は、ステップS504の処理を行う。自己宛のデータである場合(ステップS502でYes)、接続制御部414は、ステップS506の処理を行う。
ステップS504において、接続制御部414は、通常の転送処理である後述する通常転送処理を行う。
ステップS506において、接続制御部414は、受信データが不正を検知したことを通知するための不正検知データであるか否かを判定する。不正検知データは、不正検知の通知と、不正と判定されたデータに付与されているIDとを含む。受信データが不正検知データである場合(ステップS506でYes)、接続制御部414は、ステップS508の処理を行う。受信データが不正検知データでない場合(ステップS506でNo)、接続制御部414は、ステップS510の処理を行う。
なお、不正検知データは、ポートA102~ポートE110それぞれに接続された、車載機器、第二車載中継装置120a~120c又は不正検知装置140によって、第一車載中継装置100に送られ得る。例えば、第二車載中継装置120a~120cは、データの不正検知を行う不正検知機能を備え、不正検知データを送信するように構成されてもよい。IVI機器124等のイーサネット(登録商標)144、146、148若しくは150又はCAN142に接続された車載機器は、不正検知機能を備え、不正検知データを送信するように構成されてもよい。
ステップS508において、接続制御部414は、ポート間の接続関係を変更するための後述するポート接続変更処理を行う。
ステップS510において、接続制御部414は、受信データが所定のポートに対する接続遮断の制限の解除を要求するための制限解除要求データであるか否かを判定する。受信データが制限解除要求データである場合(ステップS510でYes)、接続制御部414は、ステップS512の処理を行う。受信データが制限解除要求データでない場合(ステップS510でNo)、接続制御部414は、ステップS514の処理を行う。
ステップS512において、接続制御部414は、制限解除要求データに指定されているポートに対して、他のポートへの接続遮断の制限を解除する。接続制御部414は、記憶部410に記憶されている後述する受信ポート記憶テーブルを更新する。
ステップS514において、接続制御部414は、受信データが自動運転の機能がオフ状態であることを示す自動運転機能オフデータであるか否かを判定する。つまり、接続制御部414は、自動運転機能がオフ状態であるか否かを判定する。自動運転機能オフデータは、自動運転の機能をオフにするための指令等の自動運転の機能をオフにするためデータも含み得る。受信データが自動運転機能オフデータである場合(ステップS514でYes)、接続制御部414は、ステップS516の処理を行う。受信データが自動運転機能オフデータでない場合(ステップS514でNo)、接続制御部414は、ステップS518の処理を行う。
ステップS516において、接続制御部414は、自動運転機能がオフ状態であることを接続制御部414の内部に通知する。
ステップS518において、受信データは、通常の制御パケットであるので、接続制御部414は、受信データの制御内容に応じた処理を行う。
次に、図4を参照しつつ、ステップS508のポート接続変更処理の詳細を説明する。図4は、実施の形態1に係る第一車載中継装置100のポート接続変更処理の一例を示すフローチャートである。
まず、ステップS2102において、接続制御部414は、第一車載中継装置100が備える図示しないタイマである変更待ちタイマをスタートし計時を開始する。
次いで、ステップS2104において、接続制御部414は、不正検知データに含まれるIDから、検知された不正データを受信したポートを特定する。具体的には、接続制御部414は、記憶部410に記憶されている受信ポート記憶テーブルを用いて、検知された不正データを受信したポートを特定する。受信ポート記憶テーブルでは、データのIDと、受信ポートと、送信ポートとが対応付けられている。受信ポートは、当該データが第一車載中継装置100に受信されるポートである。送信ポートは、受信された当該データが第一車載中継装置100から送信されるポートである。受信ポート記憶テーブルは、様々なIDのデータの受信ポートから送信ポートへの流れを示す。受信ポート記憶テーブルは、接続制御部414によって記録される。
ここで、図5は、実施の形態1に係る第一車載中継装置100の記憶部410に記憶されている受信ポート記憶テーブルの一例を示す。図5に示すように、受信ポート記憶テーブル600は、受信データに含まれるIDと、受信データを受信したポート(受信ポート)と、受信データを送信するポート(送信ポート)との組を列挙しているテーブルである。例えば、不正検知データに含まれるIDが「0x1A」である場合、受信ポート記憶テーブル600において、IDが「0x1A」である受信ポートは、「ポートE」であると特定できる。つまり、検知された不正データの受信ポートは、ポートE110であると特定できる。
図4に戻り、接続制御部414は、検知された不正データを受信したポートの特定後、当該ポートと他のポートとの接続を遮断する。つまり、当該ポートの受信部及び送信部と、他のポートの受信部及び送信部との接続が遮断される。この接続の遮断の処理は、以下のステップS2106、S2108及びS2110の処理である。後述するように、接続制御部414は、接続の遮断を、所定時間経過後のタイミング又は自動運転機能オフデータを受信したタイミングで実施する。
ステップS2106において、接続制御部414は、変更待ちタイマによって計時された時間であるタイマ値が所定値よりも大きい(タイマ値>所定値)か否かを判定する。判定の結果、タイマ値が所定値よりも大きい場合(ステップS2106でYes)、接続制御部414は、ステップS2110の処理を行う。判定の結果、タイマ値が所定値以下の場合(ステップS2106でNo)、接続制御部414は、ステップS2108の処理を行う。
ステップS2108において、接続制御部414は、自動運転機能オフデータを受信したか否かを判定する。判定の結果、自動運転機能オフデータを受信した場合(ステップS2108でYes)、接続制御部414は、ステップS2110の処理を行う。判定の結果、自動運転機能オフデータを受信していない場合(ステップS2108でNo)、接続制御部414は、ステップS2106の処理に戻る。なお、自動運転機能がオフされるタイミングは、不正検知データの受信後であっても受信前であってもよい。
ステップS2110において、接続制御部414は、検知された不正データを受信したポートとそれ以外のポートとの接続を遮断する。例えば、検知された不正データを受信したポートが「ポートE」である場合、接続制御部414は、ポートEとポートA、B、C及びDとの接続を遮断する。
ここで、図6Aは、実施の形態1に係る第一車載中継装置100の記憶部410に記憶されているポート接続記憶テーブルの一例を示す。図6Aは、ステップS2110の処理後のポート接続記憶テーブルの一例を示す。図6Aに示すように、ポート接続記憶テーブル2300は、ポート間の接続可否を示すテーブルである。言い換えれば、ポート接続記憶テーブル2300は、ポート間の接続関係を示す。接続制御部414は、ポート接続記憶テーブルに従って、ポート間を接続する。ポート接続記憶テーブル2300において、縦軸は、第一車載中継装置100の受信ポートを示し、横軸は、受信ポートの送信先の第一車載中継装置100のポートを示す。受信ポート及び送信先のポートの間において、接続可能な状態である場合、「〇」で示され、接続不可能な状態である場合、「×」で示されている。
接続制御部414は、上述のようにポート間の接続を遮断すると、記憶部410に記憶されているポート接続記憶テーブル2300を更新する。例えば、ポートEとポートA、B、C及びDとの接続を遮断する場合、接続制御部414は、ポート接続記憶テーブル2300において、ポートEとポートA、B、C及びDとが接続可であることを示す「○」から接続不可であることを示す「×」に変更して更新する。図6Aにおいて、ポート接続記憶テーブル2300の破線で囲まれた部分が更新されている。
図4に戻り、ステップS2112において、接続制御部414は、変更待ちタイマをストップし、変更待ちタイマのタイマ値をクリアし、例えば「0」にする。
次いで、ステップS2114において、接続制御部414は、特定ポートの接続設定の有無を確認する。特定ポートとは、不正化したECUなどの構成要素を解析する等の目的で準備されたポートである。本実施の形態では、解析I/F138が接続されたポートAが特定ポートである。特定ポートの接続設定が有る、つまり特定ポートへの接続が設定されている場合(ステップS2114でYes)、接続制御部414は、ステップS2116の処理を行う。特定ポートの接続設定が無い、つまり特定ポートへの接続が設定されていない場合(ステップS2114でNo)、接続制御部414は、処理を終了する。
なお、特定ポートの接続設定を示す情報は、接続される特定ポートの有無の情報、及び、ポート番号などの接続される特定ポートを指定する情報等である。このような情報は、予め設定され、例えば、第一車載中継装置100又は第一車載中継装置100を備える装置若しくはシステムの工場出荷時又は自動車への搭載時等に、記憶部410等に書き込まれてもよい。
ステップS2116において、接続制御部414は、検知された不正データを受信したポートと特定のポートとを接続し、ポート接続記憶テーブル2300を更新する。本実施の形態では、接続制御部414は、ポートEとポートAとを接続する。
ここで、図6Bは、実施の形態1に係る車載中継装置100の記憶部410に記憶されているポート接続記憶テーブルの別の一例を示す。図6Bは、ステップS2116の処理後のポート接続記憶テーブルの一例を示す。図6Bに示すように、ポート接続記憶テーブル2300では、図6Aのポート接続記憶テーブル2300に対して、破線で囲まれた部分が更新されている。
上記の接続により、接続制御部414は、ポートEから受信されたデータの中継先を通信ユニット136又は解析I/F138に限定する。そして、通信ユニット136又は解析I/F138を介して、車載ネットワーク1000の外部の図示しない診断装置又は診断サーバ等の診断機器によって、データの送信元の車載機器の診断が行われ、必要に応じてファームウェアのアップデートが行われる。これにより、検知された不正が修正され、当該車載機器を正常状態に戻すことが可能となる。当該車載機器を正常状態に戻した後に、診断機器は、通信ユニット136を介して、接続制御部414に制限解除要求データを送る。なお、制限解除要求データの送信は、通信ユニット136を介して送られるとしたが、これに限られない。他の経路や手段により制限解除要求データが送られてもよい。
ここで、本実施の形態に係る第一車載中継装置100は、上述したポート間の接続を変更した後に電源が切られ、その後、電源が再投入された時、電源切断前のポート間の接続関係を反映する。図7を参照しつつ、第一車載中継装置100の電源切断前のポート間の接続関係を電源再投入後に反映させる処理を説明する。図7は、実施の形態1に係る第一車載中継装置100の電源投入時のポート間の接続関係の反映処理の一例を示すフローチャートである。
まず、ステップS1600において、第一車載中継装置100に電源が投入される。次いで、ステップS1602において、接続制御部414は、記憶部410からポート接続記憶テーブル2300を読み出す。なお、ポート接続記憶テーブル2300は、記憶部410が有する不揮発領域に記憶されている。次いで、ステップS1604において、接続制御部414は、読み出されたポート接続記憶テーブル2300に基づいて、ポート間の接続の変更を行う、つまり、ポート間の接続を設定する。
上述より、第一車載中継装置100は、電源オフの後、電源が再投入されても電源オフ前と同じ関係に、ポート間の接続関係を戻すことが可能である。これにより、第一車載中継装置100は、不正検知に伴い、ポートの接続関係が変更された後にエンジン停止等で電源オフされたとしても、初期状態に戻ることなく、不正データが第一車載中継装置100を介して中継されることを防ぐことができる。
次に、図8を参照しつつ、図3におけるステップS504の通常転送処理の詳細を説明する。図8は、実施の形態1に係る第一車載中継装置100の通常転送処理の一例を示すフローチャートである。
まず、ステップS2000において、接続制御部414は、データを受信したポートがCANに接続されているかイーサネット(登録商標)に接続されているかを判定する。当該ポートがCANに接続されている場合(ステップS2000でYes)、接続制御部414は、ステップS2002の処理を行う。当該ポートがイーサネット(登録商標)に接続されている場合(ステップS2000でNo)、接続制御部414は、ステップS2006の処理を行う。
ステップS2002において、受信データはCANのプロトコルに従ったデータフォーマットであるので、接続制御部414は、受信データをイーサネット(登録商標)のプロトコルに従ったデータフォーマットに変換する。そのためには、受信データに含まれるIDは、MACアドレスに変換されなければならない。接続制御部414は、受信データに含まれるIDをMACアドレスに変換するために、ID―MAC変換テーブルを用いる。ID-MAC変換テーブルは、CANを介した受信データのIDと、当該IDに対応する宛先のMACアドレスとを対応付けて記録している。接続制御部414は、ID―MAC変換テーブルを用いて、受信データのIDに対応する宛先のMACアドレス、つまり宛先MACアドレスを確認する。
ここで、図9は、実施の形態1に係る第一車載中継装置100の記憶部410に記憶されているID-MAC変換テーブルの一例を示す。図9に示すように、ID-MAC変換テーブル700は、受信データに含まれるIDと当該IDに対応する宛先MACアドレスとの組を列挙しているテーブルである。例えば、受信データに含まれるIDが「02」である場合、対応する宛先MACアドレスは「MACアドレスB」である。なお、本実施の形態では、ID-MAC変換テーブルは、記憶部410が有する不揮発領域に記憶されるが、記憶部410が有する揮発領域に記憶されてもよい。
図8に戻り、次いで、ステップS2004において、接続制御部414は、ID-MAC変換テーブル700で確認された宛先MACアドレスを用いて、受信データをイーサネット(登録商標)のプロトコルに従ったフォーマットに変換する。
ステップS2006において、接続制御部414は、受信データのヘッダに含まれる宛先MACアドレスを用いて、送信先のポートである送信ポートを決定する。ステップS2006の段階では、受信データは、受信されたポートがCAN及びイーサネット(登録商標)のいずれに接続されていても、イーサネット(登録商標)のプロトコルに従ったフォーマットである。接続制御部414は、受信データのヘッダに含まれる宛先MACアドレスを用いて、記憶部410に記憶されているMACアドレス変換テーブルを参照することによって、受信データを送信する送信ポートを決定する。MACアドレス変換テーブルは、受信データの宛先MACアドレスと、当該宛先MACアドレスに対応する送信ポートとを対応付けて記録している。
ここで、図10は、実施の形態1に係る第一車載中継装置100の記憶部410に記憶されているMACアドレス変換テーブルの一例を示す。図10に示すように、MACアドレス変換テーブル800は、受信データのヘッダに含まれる宛先MACアドレスに対応する送信ポートを示すテーブルである。例えば、MACアドレス変換テーブル800において、受信データのヘッダに含まれる宛先MACアドレスが「MACアドレスB」である場合、対応する送信ポートは、ポート「A」である。
次いで、ステップS2008において、接続制御部414は、受信データのポートと、ステップS2006で決定された送信ポートとが接続可能な状態、つまり接続状態にあるか否かを判定する。接続制御部414は、ポート接続記憶テーブルを用いて、接続状態を判定する。接続状態であれば(ステップS2008でYes)、接続制御部414は、ステップS2010の処理を行う。接続状態でなければ(ステップS2008でNo)、接続制御部414は、処理を終了する。
ステップS2010において、接続制御部414は、記憶部410に記憶されている図5に示すような受信ポート記憶テーブル600を更新する。なお、記憶部410の容量に制限がある場合、接続制御部414は、受信ポート記憶テーブル600の新しい内容を優先して記憶部410に記憶させるようにしてもよい。又は、接続制御部414は、送信ポート毎に、記憶される「送信ポート-ID-受信ポート」の組の数を制限してもよい。
次いで、ステップS2012において、接続制御部414は、受信データが送信される送信ポートがCANに接続されているかイーサネット(登録商標)に接続されているかを判定する。送信ポートがCANに接続されている場合(ステップS2012でYes)、接続制御部414は、ステップS2014の処理を行う。送信ポートがイーサネット(登録商標)に接続されている場合(ステップS2012でNo)、接続制御部414は、ステップS2016の処理を行う。
ステップS2014において、接続制御部414は、受信データをCANのプロトコルに従ったデータフォーマットへ変換する。接続制御部414は、ID-MAC変換テーブルを用いて変換する。
ステップS2016において、接続制御部414は、受信データをステップS2006で決定された送信ポートから送信する。
なお、図1に示すような実施の形態1に係る車載ネットワーク1000の構成は一例であり、第一車載中継装置100と不正検知装置140等の不正を検知する構成とを備える構成であれば、これに限られない。例えば、実施の形態1では、第一車載中継装置100の複数のポートのうち、CANに接続されているポートは1ポートのみであったが、複数のポートがCANに接続される構成であってもよい。又は、ブレーキECU等の制御系ECUが接続されるネットワークも含めて、全てのネットワークがイーサネット(登録商標)で構成されてもよい。その場合、不正検知データに、接続変更すべき送信元MACアドレスが記載されており、第一車載中継装置は、そのMACアドレスを元にポート間の接続変更を行うように構成されてもよい。
また、実施の形態1に係る車載ネットワーク1000の構成において、車載機器、ネットワーク、機器及び車外機器が構成要素として含まれたが、構成要素はこれらに限定されない。車載ネットワーク1000は、他の車載機器、ネットワーク、機器及び車外機器を含む構成であってもよい。また、車載ネットワーク1000は、ADASECU130を備える構成であったが、ADAS機能ではなくより高度な自動運転機能に対応したECUを備えてもよい。
また、第一車載中継装置100は、ポート間の接続の変更を、VLAN(Virtual Local Area Network)を用いて行ってもよい。
また、不正検知データは、第一車載中継装置100を宛先としてだけではなく、他のECU等を宛先として送信されてもよく、マルチキャストで送信されてもよく、ブロードバンドで送信されてもよい。マルチキャスト又はブロードキャストでの送信の場合、第一車載中継装置100は、受信された不正検知データを他のECU等に転送する。
また、実施の形態1において、自動運転機能オフデータは、IVI機器124によって送られるとしたが、他のECU、メーター機器又はインタフェース機器によって送られてもよい。
上述のような実施の形態1に係る第一車載中継装置100は、不正検知データを受信すると、不正検知データに対応したポートの接続を変更することにより、不正データを受信したポートから他のポートへのデータの転送を停止し、攻撃の拡散を抑えることができる。また同時に、第一車載中継装置100は、データ通信ユニット等の外部接続インタフェースへつながるポート又は診断機器等の外部接続インタフェースへつながるポートに、不正データを受信したポートを接続することで、外部機器からのファームウェアのアップデート又は診断解析を可能にする。例えば、CANは、バス型ネットワークであり、機器からCANに出力された信号が、CANに接続された全ての機器に受信される。このため、実施の形態1に係る第一車載中継装置100のように、複数のポートに、CANとイーサネット(登録商標)とが混在して接続される場合、不正データを受信したポートから他のポートへのデータの転送を停止することは、攻撃の拡散防止に効果的である。
また、第一車載中継装置100は、不正検知データを受信してから、所定時間を待って、又は、不正検知を通知された車両の操作者が、不正の影響を受けている、若しくは、不正の原因となっている自動運転機能をオフするまで時間を待って、不正データを受信したポートの接続を遮断する。例えば、不正データを受信したポートに接続されているECUが、自動運転機能に関連するECUである場合、当該ECUからのデータの中継を突然停止すると、自動車が無制御の状態になる可能性がある。第一車載中継装置100は、このような無制御の状態の発生を防止し、且つ、上記ポートの接続の遮断の遅延を低減することができる。
また、実施の形態1に係る受信ポート記憶テーブルは、IDと受信ポートと送信ポートとの組を記憶しておくことにより、同一の送信ポートについて複数の情報を記憶しておくことができる。また、不正データを受信してから不正検知データを受信するまでの間に、第一車載中継装置100によって他のデータの中継が行われた場合にも、受信ポート記憶テーブルを参照することによって、不正データを受信したポートを特定することができる。よって、第一車載中継装置100は、不正検知に時間を要する場合、及び不正検知データの受信に時間を要する場合にも、過去に遡って対応することができる。
また、実施の形態1に係る第一車載中継装置100は、ステップS508のポート接続変更処理において、第一車載中継装置100を搭載する車両の走行状態を考慮してもよい。例えば、図11に示すように、接続制御部414は、ステップS2108の代わりに、ステップS2118の判定処理を行ってもよい。図11は、実施の形態1に係る第一車載中継装置100のポート接続変更処理の変形例を示すフローチャートである。ステップS2118では、接続制御部414は、検知された不正データを受信したポートとそれ以外のポートとの接続を遮断する前に、車両の走行状態が接続遮断可能な状態であるか否か、つまり、車両の走行状態が可か不可かを判定する。接続遮断可能な状態である場合(ステップS2118でYes)、接続制御部414は、ステップS2110の処理を行う。接続遮断不可能な状態である場合(ステップS2118でNo)、接続制御部414は、ステップS2106の処理に戻る。
車両の走行状態が接続遮断可能な状態である要件の例は、車両が停止している、車速が所定速度以下の低速である、ブレーキが踏まれている、ハザードランプが点灯している、運転者が運転可能な状態にある、車両が退避ゾーンなどの特定の場所にいる等である。車両の走行状態が接続遮断可能な状態である要件は、自動運転機能がオフ状態であることを含んでもよい。接続制御部414は、上記要件の少なくとも1つが満たされる場合、車両の走行状態が接続遮断可能な状態であると判定してもよい。接続制御部414は、車両の車速センサ、センサ126及びカメラ128等の検出装置の検出情報、並びに、ブレーキECU132、IVI機器124のナビゲーション情報、ステアリングECU134及びADASECU130等のECUの出力情報から、上記の各状態の有無を判定してもよい。
例えば、車両の停止は、車速又はセンサ126の検出情報から判断可能である。ブレーキの踏み込みは、ブレーキECU132の出力情報から判断可能である。ハザードランプの点灯は、照明を制御するECUの出力情報から判断可能である。運転者の状態は、車室内を撮影するカメラの画像、又は、車両の操作系の装置を制御するECUの出力情報から判断可能である。車両の場所は、IVI機器124のナビゲーション情報から判断可能である。
第一車載中継装置100は、車両の走行状態に応じて、検知された不正データを受信したポートとそれ以外のポートとの接続を遮断する。これにより、接続の遮断によって、車両の走行が不安定になることが抑えられる。
(実施の形態2)
実施の形態2に係る車載中継装置を説明する。実施の形態2に係る車載中継装置である第一車載中継装置900は、全てのポートにイーサネット(登録商標)が接続される点で、実施の形態1と異なる。以下において、実施の形態2について、実施の形態1と異なる点を中心に説明する。
図12は、実施の形態2に係る第一車載中継装置900を備える車載ネットワーク2000の機能的な構成の一例を示すブロック図である。図12に示すように、車載ネットワーク2000は、第一車載中継装置900と、第二車載中継装置120a、120b及び906と、IVI機器124と、センサ126と、カメラ128と、ADASECU130と、ブレーキECU132と、ステアリングECU134と、通信ユニット136と、解析I/F138と、不正検知装置920とを、構成要素として含む。さらに、車載ネットワーク2000は、上記構成要素間を接続するネットワークとして、CAN908と、イーサネット(登録商標)144、146、148、150及び904とを含む。
実施の形態2に係る第一車載中継装置900は、ポートA102、ポートB901、ポートC106、ポートD108及びポートE110の5つのポートを備える。
ポートA102は、イーサネット(登録商標)144を介して、第二車載中継装置906と接続される。第二車載中継装置906は、通信ユニット136と接続される。さらに、第二車載中継装置906は、CAN908を介して、不正検知装置920、ブレーキECU132及びステアリングECU134と接続される。ポートB901は、イーサネット(登録商標)904を介して、解析I/F138と接続される。ポートC106、ポートD108及びポートE110の接続対象は、実施の形態1と同じである。
不正検知装置920は、CAN908を介して受信されたデータに対して不正を検知した場合、不正と判定されたデータに付与されているIDを含む不正検知データを、CAN908を介して第二車載中継装置906へ通知し、さらに、イーサネット(登録商標)144を介して第一車載中継装置900に送信する。なお、不正検知装置920は、不正検知機能に加えて、エラーフレームによる不正データの無効化を行う機能を備えてもよい。
第一車載中継装置900の構成を説明する。図13は、実施の形態2に係る第一車載中継装置900の機能的な構成の一例を示すブロック図である。図13に示すように、第一車載中継装置900は、ポートA102の受信部400及び送信部416と、ポートB901の受信部918及び送信部914と、ポートC106の受信部404及び送信部420と、ポートD108の受信部406及び送信部422と、ポートE110の受信部408及び送信部424と、記憶部910と、接続制御部916とを備える。
受信部400、918、404、406及び408、並びに送信部416、914、420、422及び424は、実施の形態1と同様の構成である。記憶部910は、実施の形態1の記憶部410と同様の構成である。接続制御部916は、ポート間の中継制御及び接続制御、受信データの宛先確認、データのフォーマット変更、不正検知データの受信、自動運転機能オン/オフデータの受信、並びに、制限解除要求データの受信等を行う。
次に、図14を参照しつつ、実施の形態2に係る第一車載中継装置900の動作を説明する。なお、図14は、実施の形態2に係る第一車載中継装置900の処理の一例を示すフローチャートである。
まず、ステップS1000において、第一車載中継装置900は、ポートA102の受信部400、ポートB901の受信部918、ポートC106の受信部404、ポートD108の受信部406、及び、ポートE110の受信部408のいずれかのポートからデータを受信する。
次いで、ステップS1002において、接続制御部916は、受信データの宛先MACアドレスから、受信データが自己宛、すなわち、第一車載中継装置900宛のデータか否かを判定する。自己宛のデータでない場合(ステップS1002でNo)、接続制御部916は、ステップS1004の処理を行う。自己宛のデータである場合(ステップS1002でYes)、接続制御部916は、ステップS1006の処理を行う。
ステップS1004において、接続制御部916は、後述する通常転送処理を行う。
ステップS1006において、接続制御部916は、受信データが不正検知データであるか否かを判定する。受信データが不正検知データである場合(ステップS1006でYes)、接続制御部916は、ステップS1008の処理を行う。受信データが不正検知データでない場合(ステップS1006でNo)、接続制御部916は、ステップS1010の処理を行う。
ステップS1008において、接続制御部916は、MACアドレスに対するデータの中継の可否を判定するための条件を設定するための後述する中継可否判定条件設定処理を行う。
ステップS1010において、接続制御部916は、受信データが所定のMACアドレスに対する中継遮断の制限の解除を要求するための制限解除要求データであるか否かを判定する。受信データが制限解除要求データである場合(ステップS1010でYes)、接続制御部916は、ステップS1012の処理を行う。受信データが制限解除要求データでない場合(ステップS1010でNo)、接続制御部916は、ステップS1014の処理を行う。
ステップS1012において、接続制御部916は、制限解除要求データに指定されているMACアドレスに対して、データの中継の可否を判定するための条件である中継可否判定条件をクリアする。
ステップS1014において、接続制御部916は、受信データが自動運転機能オフデータであるか否かを判定する。受信データが自動運転機能オフデータである場合(ステップS1014でYes)、接続制御部916は、ステップS1016の処理を行う。受信データが自動運転機能オフデータでない場合(ステップS1014でNo)、接続制御部916は、ステップS1018の処理を行う。
ステップS1016において、接続制御部916は、自動運転機能がオフ状態であることを接続制御部916の内部に通知する。
ステップS1018において、受信データは、通常の制御パケットであるので、接続制御部916は、受信データの制御内容に応じた処理を行う。
次に、図15を参照しつつ、ステップS1008の中継可否判定条件設定処理の詳細を説明する。図15は、実施の形態2に係る第一車載中継装置900の中継可否判定条件設定処理の一例を示すフローチャートである。
まず、ステップS2302において、接続制御部916は、不正検知データに含まれるIDから、検知された不正データの送信元のMACアドレスを特定する。具体的には、接続制御部916は、記憶部910に記憶されている受信MACアドレス記憶テーブルを用いて検知された不正データの送信元のMACアドレスを特定する。受信MACアドレス記憶テーブルでは、データのIDと、受信MACアドレスと、送信ポートとが対応付けられている。受信MACアドレスは、当該データを送信した送信元のMACアドレスである。送信ポートは、当該データが第一車載中継装置100から送信されるポートである。受信MACアドレス記憶テーブルは、様々なIDのデータの送信元から送信先である送信ポートへの流れを示す。受信MACアドレス記憶テーブルは、接続制御部916によって記録される。
ここで、図16は、実施の形態2に係る第一車載中継装置900の記憶部910に記憶されている受信MACアドレス記憶テーブルの一例を示す。図16に示すように、受信MACアドレス記憶テーブル1100は、受信データに含まれるIDと、受信データの送信元のMACアドレス(受信MACアドレス)と、受信データを送信するポート(送信ポート)との組を列挙しているテーブルである。例えば、不正検知データに含まれるIDが「0x1A」である場合、受信MACアドレス記憶テーブル1100において、IDが「0x1A」であるMACアドレスは、「MACアドレスC」であると特定できる。つまり、検知された不正データの送信元のMACアドレスは、「MACアドレスC」であると特定できる。なお、本実施の形態では、受信MACアドレス記憶テーブルは、記憶部910が有する不揮発領域に記憶されているが、記憶部910が有する揮発領域に記憶されてもよい。
図15に戻り、次いで、ステップS2304において、接続制御部916は、不正データの送信元のMACアドレスを特定後、当該MACアドレスを宛先又は送信元とするデータの中継を不可にする、つまり遮断するように中継可否判定条件を設定する。複数のMACアドレスに対して複数の中継可否判定条件が設定され得、接続制御部916は、設定された中継可否判定条件を記憶部910に保存する。
次いで、ステップS2306において、接続制御部916は、自動運転機能オフデータを受信したか否かを判定する。判定の結果、自動運転機能オフデータを受信した場合(ステップS2306でYes)、接続制御部916は、ステップS2308の処理を行う。判定の結果、自動運転機能オフデータを受信していない場合(ステップS2306でNo)、接続制御部916は、ステップS2306の処理に戻る。
ステップS2308において、接続制御部916は、データの宛先のMACアドレス及び送信元のMACアドレスに応じて、中継可否判定条件を変更する。具体的には、データの宛先のMACアドレス又は送信元のMACアドレスが通信ユニット136又は解析I/F138のMACアドレスである場合、当該データが不正データであっても、接続制御部916は、当該MACアドレスに対して中継を行うように中継可否判定条件を設定する。
上述より、第一車載中継装置900は、不正が検知された場合に、検知された不正データの送信元のMACアドレスに関係するデータを中継しないことにより、検知された不正化した車載機器による他の機器への影響を抑える。さらに、第一車載中継装置900は、自動運転機能がオフ状態とされ安全が確保されたと考えられる状態では、不正データの通信ユニット136及び/又は解析I/F138へのアクセスを可能とし、不正の解析及びアップデートを行うことを可能にする。これにより、不正なECU等の車載機器を解析し、必要に応じてファームウェアのアップデートを行い、正常状態に修復することが可能である。また、正常状態へ修復完了後に、制限解除要求データが解析I/F138を介して第一車載中継装置900に送られることにより、第一車載中継装置900は、不正検知データの受信により設定された中継可否判定条件をクリアし、不正検知の前の状態に戻すことができる。なお、本実施の形態において、制限解除要求データは、解析I/F138から送信されるものとして説明したが、他の経路により送信されてもよい。
次に、図17を参照しつつ、図14におけるステップS1004の通常転送処理の詳細を説明する。図17は、実施の形態2に係る第一車載中継装置900の通常転送処理の一例を示すフローチャートである。
まず、ステップS2202において、接続制御部916は、受信データのヘッダに含まれる宛先MACアドレスを用いて、受信データを送信するポートを、記憶部910に記憶されている図10に示すようなMACアドレス変換テーブル800を用いて決定する。
次いで、ステップS2204において、接続制御部916は、宛先MACアドレスが、事前に設定されている、中継可能なMACアドレスをリスト化したホワイトリストに掲載されているMACアドレスか否かを判定する。宛先MACアドレスが、ホワイトリストに掲載されている場合(ステップS2204でYes)、接続制御部916は、ステップS2208の処理を行う。宛先MACアドレスが、ホワイトリストに掲載されていない場合(ステップS2204でNo)、接続制御部916は、ステップS2206の処理を行う。なお、ホワイトリストは、中継可能である送信元MACアドレス及び宛先MACアドレスをリスト化したものであり、予め設定され、記憶部910に記憶されている。接続制御部916は、ホワイトリストに掲載されたMACアドレスのデータが、不正を含むか否かに関わらず、当該データを中継するとしてもよい。ホワイトリストの例は、通信ユニット136を送信元又は及び宛先とするMACアドレス、及び、解析I/F138を送信元又は及び宛先とするMACアドレス等である。ホワイトリストは、予め設定され、例えば、第一車載中継装置900又は第一車載中継装置900を備える装置若しくはシステムの工場出荷時又は自動車への搭載時等に、記憶部910に書き込まれてもよい。
ステップS2206において、接続制御部916は、宛先MACアドレスが、不正データの送信元のMACアドレスと一致するか否かを判定する。一致した場合(ステップS2206でYes)、接続制御部916は、処理を終了する。一致しない場合(ステップS2206でNo)、接続制御部916は、ステップS2208の処理を行う。
ステップS2208において、接続制御部916は、図16に示すような受信MACアドレス記憶テーブル1100を更新する。なお、記憶部910の容量に制限がある場合、接続制御部916は、受信MACアドレス記憶テーブル1100の新しい内容を優先して記憶部910に記憶させるように構成されてもよい。又は、接続制御部916は、送信ポート毎に、記憶される「送信ポート-ID-受信MACアドレス」の組の数を制限してもよい。
次いで、ステップS2210において、接続制御部916は、受信データをステップS2202で決定された送信ポートから送信する。
ここで、接続制御部916は、中継可否判定条件の設定及びクリアの際には、中継可否判定条件を記憶部910に記録しておく。本実施の形態に係る第一車載中継装置900は、中継可否判定条件を変更した後に電源が切られ、その後、電源が再投入された時、電源切断前の中継可否判定条件を反映する。図18を参照しつつ、第一車載中継装置900の電源切断前の中継可否判定条件を電源再投入後に反映させる処理を説明する。図18は、実施の形態2に係る第一車載中継装置900の電源投入時の中継可否判定条件の反映処理の一例を示すフローチャートである。
まず、ステップS1700において、第一車載中継装置900に電源が投入される。次いで、ステップS1702において、接続制御部916は、記憶部910から中継可否判定条件を読み出す。次いで、ステップS1704において、接続制御部916は、読み出された中継可否判定条件に基づいて、中継可否判定条件の設定を行い、中継可否判定条件を電源オフ前の状態に反映させる。
上述より、第一車載中継装置900は、電源オフの後、電源が再投入されても電源オフ前と同じ状態に、中継可否判定条件を戻すことが可能である。これにより、第一車載中継装置900は、不正検知に伴い、中継可否判定条件の設定が変更された後にエンジン停止等で電源オフされたとしても、初期状態に戻ることなく、不正データが第一車載中継装置900を介して中継されることを防ぐことができる。
なお、図12に示すような実施の形態2に係る車載ネットワーク2000の構成は一例であり、第一車載中継装置900と不正検知装置920等の不正を検知する構成とを備える構成であれば、これに限られない。例えば、ブレーキECU等の制御系ECUが接続されるネットワークも含めて、全てのネットワークがイーサネット(登録商標)で構成されてもよい。その場合、不正検知データに、接続変更すべき送信元MACアドレスが記載されており、第一車載中継装置は、そのMACアドレスを元に中継可否判定条件を設定するように構成されてもよい。
また、不正検知データは、第一車載中継装置900を宛先としてだけではなく、他のECU等を宛先として送信されてもよく、マルチキャストで送信されてもよく、ブロードバンドで送信されてもよい。マルチキャスト又はブロードキャストでの送信の場合、第一車載中継装置900は、受信された不正検知データを他のECU等に転送する。
また、実施の形態2に係る車載ネットワーク2000の構成において、車載機器、ネットワーク、機器及び車外機器が構成要素として含まれていたが、構成要素はこれらに限定されない。車載ネットワーク2000は、他の車載機器、ネットワーク、機器及び車外機器を含む構成であってもよい。また、車載ネットワーク2000は、ADASECU130を備える構成であったが、ADAS機能ではなくより高度な自動運転機能に対応したECUを備えてもよい。
上述のような実施の形態2に係る第一車載中継装置900は、不正検知データを受信すると、不正検知データに対応した不正データの送信元のMACアドレスに対して、中継の可否を変更することにより、不正データの送信元のMACアドレスとのデータの転送を停止し、不正データを送信したECU等の車載機器による不正制御等の攻撃を抑えることができる。さらに、第一車載中継装置900は、中継可否変更により他のECU等の車載機器への影響を抑えることができる。
また、実施の形態2に係る受信MACアドレス記憶テーブルは、IDと受信MACアドレスと送信ポートとの組を記憶しておくことにより、同一の送信ポートについて複数の情報を記憶しておくことができる。また、不正データを受信してから不正検知データを受信するまでの間に、第一車載中継装置900によって他のデータの中継が行われた場合にも、受信MACアドレス記憶テーブルを参照することによって、不正データのMACアドレスを特定することができる。よって、第一車載中継装置900は、不正検知に時間を要する場合、及び不正検知データの受信に時間を要する場合にも、過去に遡って対応することができる。
また、実施の形態2に係る第一車載中継装置900は、ステップS1008の中継可否判定条件設定処理において、第一車載中継装置900を搭載する車両の走行状態を考慮してもよい。例えば、図19に示すように、接続制御部916は、ステップS2306の代わりに、ステップS2310の判定処理を行ってもよい。図19は、実施の形態2に係る第一車載中継装置900の中継可否判定条件設定処理の変形例を示すフローチャートである。ステップS2310では、接続制御部916は、ステップS2308で中継可否判定条件を変更する前に、車両の走行状態が中継可否判定条件を変更可能な状態であるか否か、つまり、車両の走行状態が可か不可かを判定する。変更可能な状態である場合(ステップS2310でYes)、接続制御部916は、ステップS2308の処理を行う。変更不可能な状態である場合(ステップS2310でNo)、接続制御部916は、ステップS2310の処理に戻る。車両の走行状態が中継可否判定条件を変更可能な状態である要件は、自動運転機能がオフ状態であることを含んでもよい。接続制御部916は、上記のような要件の少なくとも1つが満たされる場合、車両の走行状態が中継可否判定条件を変更可能な状態であると判定してもよい。
また、ステップS2310の処理は、ステップS2302とステップS2304との間で行われてもよい。この場合、接続制御部916は、ステップS2304で中継可否判定条件を変更する前に、車両の走行状態が中継可否判定条件を変更可能な状態であるか否かを判定し、その判定結果に応じて、中継可否判定条件を変更する。
上述のように、第一車載中継装置900は、車両の走行状態に応じて、不正データの送信元のデータの中継を遮断する、又は、不正データの通信ユニット136及び解析I/F138へのアクセスを可能に変更するように、中継可否判定条件を設定する。これにより、データの中継の遮断及び変更によって、車両の走行が不安定になることが抑えられる。
(実施の形態3)
次に、実施の形態3に係る車載中継装置を説明する。実施の形態3に係る車載中継装置である第一車載中継装置1200は、ADASECUと第二車載中継装置を介して接続される点で、実施の形態2と異なる。以下において、実施の形態3について、実施の形態1及び2と異なる点を中心に説明する。
図20は、実施の形態3に係る第一車載中継装置1200を備える車載ネットワーク3000の機能的な構成の一例を示すブロック図である。図20に示すように、車載ネットワーク3000は、第一車載中継装置1200と、第二車載中継装置120a、120b、906及び1804と、IVI機器124と、センサ126と、カメラ128と、ADASECU130及び1806と、ブレーキECU132と、ステアリングECU134と、通信ユニット136と、解析I/F138と、不正遮断装置1802とを、構成要素として含む。さらに、車載ネットワーク3000は、上記構成要素間を接続するネットワークとして、CAN908と、イーサネット(登録商標)144、146、148、150及び904とを含む。
車載ネットワーク3000において、不正遮断装置1802は、CAN908に接続され、CAN908上のデータを監視する。不正遮断装置1802は、データに対して不正を検知した際には、エラーフレーム用いて不正データを無効化する。
ADASECU130及び1806は、第二車載中継装置1804を介して第一車載中継装置1200と接続される。例えば、ADASECU130は、パーキングアシスト機能を備え、ADASECU1806は、クルーズコントロール機能を備える。ADASECU130及び1806は、ADASの機能を分担している。
第二車載中継装置1804は、例えばルータ機能を搭載し、データの中継を行う際にデータのヘッダに記録されているMACアドレスの変換を行う。第二車載中継装置1804は、ADASECU130及び1806から送信される各々のデータに対して、送信元のMACアドレスを、ADASECU130のMACアドレス及びADASECU1806のMACアドレスから第二車載中継装置1804のMACアドレスに変換する。そのため、第一車載中継装置1200のポートE110でデータが受信される時には、当該データの送信元のMACアドレスが第二車載中継装置1804のMACアドレスである。よって、ポートE110での受信データが、ADASECU130及び1806のどちらから送信されたデータであるかは、MACアドレスから区別することはできない。そこで、第二車載中継装置1804は、ADASECU130及び1806から送信されたデータを区別するために、データのヘッダに記録されているIP(Internet Protocol)アドレスを利用する。ポートB901、ポートC106及びポートD108の接続対象は、実施の形態2と同じである。
第一車載中継装置1200の構成を説明する。図21は、実施の形態3に係る第一車載中継装置1200の機能的な構成の一例を示すブロック図である。図21に示すように、第一車載中継装置1200は、ポートA102の受信部400及び送信部416と、ポートB901の受信部918及び送信部914と、ポートC106の受信部404及び送信部420と、ポートD108の受信部406及び送信部422と、ポートE110の受信部408及び送信部424と、記憶部1204と、接続制御部1214と、不正検知部1216とを備える。
受信部400、918、404、406及び408、並びに送信部416、914、420、422及び424は、実施の形態2と同様の構成である。記憶部1204は、実施の形態1の記憶部410と同様の構成である。接続制御部1214は、ポート間の中継制御及び接続制御、受信データの宛先確認、データのフォーマット変更、不正検知データの受信、自動運転機能オン/オフデータの受信、並びに、制限解除要求データの受信等を行う。不正検知部1216は、第一車載中継装置1200によって中継されるデータに対して監視を行い、周期、ID、フォーマット及びデータの変化量等からデータの不正を検知する。
次に、図22を参照しつつ、実施の形態3に係る第一車載中継装置1200の動作を説明する。なお、図22は、実施の形態3に係る第一車載中継装置1200の処理の一例を示すフローチャートである。
まず、ステップS1300において、第一車載中継装置1200は、ポートA102の受信部400、ポートB901の受信部918、ポートC106の受信部404、ポートD108の受信部406、及び、ポートE110の受信部408のいずれかのポートからデータを受信する。
次いで、ステップS1302において、接続制御部1214は、受信データの宛先MACアドレスから、受信データが自己宛、すなわち、第一車載中継装置1200宛のデータか否かを判定する。自己宛のデータでない場合(ステップS1302でNo)、接続制御部1214は、ステップS1304の処理を行う。自己宛のデータである場合(ステップS1302でYes)、接続制御部1214は、ステップS1306の処理を行う。
ステップS1304において、接続制御部1214は、後述する通常転送処理を行う。
ステップS1306において、接続制御部1214は、受信データが所定のIPアドレスに対する中継遮断の制限の解除を要求するための制限解除要求データであるか否かを判定する。受信データが制限解除要求データである場合(ステップS1306でYes)、接続制御部1214は、ステップS1308の処理を行う。受信データが制限解除要求データでない場合(ステップS1306でNo)、接続制御部1214は、ステップS1310の処理を行う。
ステップS1308において、接続制御部1214は、制限解除要求データに指定されているIPアドレスに対して、データの中継の可否を判定するための条件である中継可否判定条件をクリアする。
ステップS1310において、接続制御部1214は、受信データが自動運転機能オフデータであるか否かを判定する。受信データが自動運転機能オフデータである場合(ステップS1310でYes)、接続制御部1214は、ステップS1312の処理を行う。受信データが自動運転機能オフデータでない場合(ステップS1310でNo)、接続制御部1214は、ステップS1314の処理を行う。
ステップS1312において、接続制御部1214は、自動運転機能がオフ状態であることを接続制御部1214の内部に通知する。
ステップS1314において、受信データは、通常の制御パケットであるので、接続制御部1214は、受信データの制御内容に応じた処理を行う。
次に、図23を参照しつつ、ステップS1304の通常転送処理の詳細を説明する。図23は、実施の形態3に係る第一車載中継装置1200の通常運転処理の一例を示すフローチャートである。
まず、ステップS2402において、接続制御部1214は、受信データのヘッダに含まれる宛先MACアドレスを用いて、受信データを送信するポートを記憶部1204に記憶されている図10に示すようなMACアドレス変換テーブル800を用いて決定する。
次いで、ステップS2404において、接続制御部1214は、受信データのヘッダに含まれる宛先IPアドレスが、事前に設定されている、中継可能なIPアドレスをリスト化したホワイトリストに掲載されているIPアドレスか否かを判定する。宛先IPアドレスが、ホワイトリストに掲載されている場合(ステップS2404でYes)、接続制御部1214は、ステップS2408の処理を行う。宛先IPアドレスが、ホワイトリストに掲載されていない場合(ステップS2404でNo)、接続制御部1214は、ステップS2406の処理を行う。なお、ホワイトリストは、中継可能である送信元IPアドレス及び宛先IPアドレスをリスト化したものであり、予め設定され、記憶部1204に記憶されている。接続制御部1214は、ホワイトリストに掲載されたIPアドレスのデータが、不正を含むか否かに関わらず、当該データを中継するとしてもよい。ホワイトリストの例は、通信ユニット136を送信元又は及び宛先とするIPアドレス、及び、解析I/F138を送信元又は及び宛先とするIPアドレス等である。
ステップS2406において、接続制御部1214は、受信データのヘッダに含まれる宛先IPアドレス又は送信元IPアドレスが、中継可否判定条件として記憶部1204に記憶された不正データの送信元のIPアドレスのいずれかと一致するか否かを判定する。一致する場合(ステップS2406でYes)、接続制御部1214は、処理を終了する。一致しない場合(ステップS2406でNo)、接続制御部1214は、ステップS2408の処理を行う。
ステップS2408において、接続制御部1214は、受信IPアドレス記憶テーブルを更新する。受信IPアドレス記憶テーブルでは、データのIDと、受信IPアドレスと、送信ポートとが対応付けられている。受信IPアドレスは、当該データを送信した送信元のIPアドレスである。送信ポートは、当該データが第一車載中継装置1200から送信されるポートである。受信IPアドレス記憶テーブルは、様々なIDのデータの送信元から送信先である送信ポートへの流れを示す。受信IPアドレス記憶テーブルは、接続制御部1214によって記録される。
ここで、図24は、実施の形態3に係る第一車載中継装置1200の記憶部1204に記憶されている受信IPアドレス記憶テーブルの一例を示す。図24に示すように、受信IPアドレス記憶テーブル1400は、受信データに含まれるIDと、受信データの送信元のIPアドレス(受信IPアドレス)と、受信データを送信するポート(送信ポート)との組を列挙しているテーブルである。なお、記憶部1204の容量に制限がある場合、接続制御部1214は、受信IPアドレス記憶テーブル1400の新しい内容を優先して記憶部1204に記憶させるように構成されてもよい。又は、接続制御部1214は、送信ポート毎に、記憶される「送信ポート-ID-受信IPアドレス」の組の数を制限してもよい。
次いで、ステップS2410において、接続制御部1214は、受信データをステップS2402で決定された送信ポートから送信する。
次に、図25を参照しつつ、第一車載中継装置1200の不正検知部1216不正検知の動作を説明する。図25は、実施の形態3に係る第一車載中継装置1200の不正検知処理の一例を示すフローチャートである。
まず、ステップS1502において、不正検知部1216は、受信データに対して、不正を検知する。不正検知部1216は、接続制御部1214へ不正検知データを送る。
次いで、ステップS1504において、接続制御部1214は、第一車載中継装置1200が備える図示しない変更待ちタイマをスタートし計時を開始する。
次いで、ステップS1506において、接続制御部1214は、不正検知データに含まれるIDから不正データを送信した送信元IPアドレスを特定する。具体的には、接続制御部1214は、記憶部1204に記憶されている図24に示すような受信IPアドレス記憶テーブル1400を用いて、不正検知データに含まれるIDを照合することによって、不正データを送信した送信元IPアドレスを特定する。
次いで、ステップS1508において、接続制御部1214は、変更待ちタイマのタイマ値が所定値よりも大きい(タイマ値>所定値)か否かを判定する。判定の結果、タイマ値が所定値よりも大きい場合(ステップS1508でYes)、接続制御部1214は、ステップS1512の処理を行う。判定の結果、タイマ値が所定値以下の場合(ステップS1508でNo)、接続制御部1214は、ステップS1510の処理を行う。
ステップS1510において、接続制御部1214は、自動運転機能オフデータを受信したか否かを判定する。判定の結果、自動運転機能オフデータを受信した場合(ステップS1510でYes)、接続制御部1214は、ステップS1512の処理を行う。判定の結果、自動運転機能オフデータを受信していない場合(ステップS1510でNo)、接続制御部1214は、ステップS1508の処理に戻る。
ステップS1512において、接続制御部1214は、不正検知データの送信元IPアドレスを宛先又は送信元とするデータの中継を不可にするつまり遮断するように、中継可否判定条件を設定する。複数のIPアドレスに対して複数の中継可否判定条件が設定され得、接続制御部1214は、設定された中継可否判定条件を記憶部1204に保存する。
次いで、ステップS1514において、接続制御部1214は、変更待ちタイマをストップし、変更待ちタイマのタイマ値をクリアし、例えば「0」にする。
なお、本実施の形態では、接続制御部1214は、受信IPアドレス記憶テーブル1400を用いて、不正検知データに含まれるIDから不正データの送信元IPアドレスを特定しているが、これに限定されない。例えば、不正検知データが不正データの送信元IPアドレスを含み、接続制御部1214は、不正検知データに含まれる送信元IPアドレスを元に中継可否判定条件を設定してもよい。
また、本実施の形態では、接続制御部1214は、受信データが自己宛であるかの判定及び受信データの送信先ポートの決定に、MACアドレスを用いているが、これに限定されない。例えば、第一車載中継装置1200は、ルータ機能を備え、受信データのIPアドレスを用いて送信先ポートを決定してもよい。
上述のような実施の形態3に係る第一車載中継装置1200は、不正なECU等の車載機器から第一車載中継装置1200までの経路において、ルータ等によりMACアドレスが変更される場合でも、不正な車載機器を特定することが可能である。さらに、第一車載中継装置1200は、不正な車載機器以外の送受信データの中継を停止することなく、不正な車載機器の送受信データのみを中継停止の対象とすることが可能である。例えば、本実施の形態では、第一車載中継装置1200は、ADASECU130から送信されるデータとADASECU1806から送信されるデータとを区別して対応することが可能である。
また、第一車載中継装置1200は、不正検知部1216を有するため、不正なECU等の車載機器からの影響を受けることなく、不正検知データの送受信が可能であり、不正検知後の処理を確実に実施することができる。
また、実施の形態3に係る第一車載中継装置1200は、不正検知処理において、第一車載中継装置1200を搭載する車両の走行状態を考慮してもよい。例えば、図26に示すように、接続制御部1214は、ステップS1510の代わりに、ステップS1516の判定処理を行ってもよい。図26は、実施の形態3に係る第一車載中継装置1200の不正検知処理の変形例を示すフローチャートである。ステップS1516では、接続制御部1214は、中継可否判定条件を変更する前に、車両の走行状態が中継可否判定条件を変更可能な状態であるか否か、つまり、車両の走行状態が可か不可かを判定する。変更可能な状態である場合(ステップS1516でYes)、接続制御部1214は、ステップS1512の処理を行う。変更不可能な状態である場合(ステップS1516でNo)、接続制御部1214は、ステップS1508の処理に戻る。車両の走行状態が中継可否判定条件を変更可能な状態である要件は、自動運転機能がオフ状態であることを含んでもよい。接続制御部1214は、上記のような要件の少なくとも1つが満たされる場合、車両の走行状態が中継可否判定条件を変更可能な状態であると判定してもよい。このように、第一車載中継装置1200は、車両の走行状態に応じて、不正データの送信元のデータの中継を遮断するように、中継可否判定条件を設定する。これにより、データの中継の遮断によって、車両の走行が不安定になることが抑えられる。
(その他の変形例)
以上、1つ又は複数の態様に係る車載中装置等について、実施の形態及び変形例に基づいて説明したが、本開示は、これらの実施の形態及び変形例に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、異なる実施の形態及び変形例における構成要素を組み合わせて構築される形態も、1つ又は複数の態様の範囲内に含まれてもよい。
例えば、実施の形態及び変形例において、第一車載中継装置が備えるポートは5つであるとして説明したが、これに限られない。第一車載中継装置が備えるポートは、2つ以上であればよい。
また、実施の形態及び変形例において、第一車載中継装置に接続されるネットワークは、CAN及びイーサネット(登録商標)の少なくとも1つであるとして説明したが、これに限られない。第一車載中継装置に接続されるネットワークは、MOST(Media Oriented System Transport)、LIN(Local Interconnect Network)及び、FlexRay等の他のネットワークの規格であってもよい。また、第一車載中継装置は、ネットワークを介さずに、車載機器と接続されてもよい。
また、実施の形態及び変形例において、ポートの接続変更、MACアドレスを用いた中継可否判定条件の設定、及び、IPアドレスを用いた中継可否判定条件の設定からなる第一車載中継装置の3つの処理を別々に説明したが、第一車載中継装置は、3つの処理の少なくとも2つを混合して行ってもよい。例えば、不正データの送信元の車載機器及び当該車載機器が接続されるネットワークに応じて、第一車載中継装置は、3つの処理を選択して行ってもよい。
また、実施の形態3の第一車載中継装置1200のポートE110に接続される第二車載中継装置1804は、実施の形態1及び2並びに変形例の第一車載中継装置のポートE110に適用されてもよい。
また、実施の形態1及び変形例に係る第一車載中継装置100は、ポート接続変更処理において、変更待ちタイマによる計時を省略してもよい。この場合、図4及び図11において、ステップS2102、ステップS2106及びステップS2112の処理が省略されてもよい。また、実施の形態3及び変形例に係る第一車載中継装置1200は、不正検知処理において、変更待ちタイマによる計時を省略してもよい。この場合、図25及び図26において、ステップS1504、ステップS1508及びステップS1514の処理が省略されてもよい。いずれの場合も、第一車載中継装置は、自動運転機能オフの通知を受信すると、又は、車両の走行状態に応じて、ポートの接続の変更、又は、中継可否判定条件の設定を行う。
また、実施の形態3の第一車載中継装置1200のポートA102に接続される不正遮断装置1802の代わりに、実施の形態1及び2の不正検知装置が用いられてもよい。同様に、実施の形態1及び2の不正検知装置の代わりに、不正遮断装置1802が用いられてもよい。
なお、上記実施の形態及び変形例では、本開示の技術を、自動車に搭載される車載ネットワークにおけるセキュリティ対策として説明したが、本開示の技術の適用範囲はこれに限られない。本開示の技術は、自動車に限らず、建機、農機、船舶、鉄道、飛行機などのモビリティにも適用してもよい。
また、上述したように、本開示の技術は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読取可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD-ROM等の不揮発性の記録媒体を含む。
例えば、上記実施の形態及び変形例に含まれる各処理部は典型的には集積回路であるLSI(Large Scale Integration:大規模集積回路)として実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
なお、上記実施の形態及び変形例において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUなどのプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、上記構成要素の一部又は全部は、脱着可能なIC(Integrated Circuit)カード又は単体のモジュールから構成されてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。ICカード又はモジュールは、上記のLSI又はシステムLSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカード又はモジュールは、その機能を達成する。これらICカード及びモジュールは、耐タンパ性を有するとしてもよい。
本開示の中継方法は、MPU(Micro Processing Unit)及びCPUなどのプロセッサ、LSIなどの回路、ICカード又は単体のモジュール等によって、実現されてもよい。
さらに、本開示の技術は、ソフトウェアプログラム又はソフトウェアプログラムからなるデジタル信号によって実現されてもよく、プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた序数、数量等の数字は、全て本開示の技術を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本開示の技術を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。