(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】車載中継装置
(51)【国際特許分類】
H04L 12/46 20060101AFI20240123BHJP
G06F 21/44 20130101ALI20240123BHJP
G09C 1/00 20060101ALI20240123BHJP
【FI】
H04L12/46 100C
G06F21/44
G09C1/00 640E
(21)【出願番号】P 2021079984
(22)【出願日】2021-05-10
【審査請求日】2022-05-24
(73)【特許権者】
【識別番号】000002967
【氏名又は名称】ダイハツ工業株式会社
(74)【代理人】
【識別番号】100129643
【氏名又は名称】皆川 祐一
(72)【発明者】
【氏名】斉藤 大起
(72)【発明者】
【氏名】岡村 建作
(72)【発明者】
【氏名】中西 雷太
(72)【発明者】
【氏名】中野 英茂
【審査官】大石 博見
(56)【参考文献】
【文献】特開2019-071572(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/46
G06F 21/44
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
車両に搭載されて、前記車両の外部と内部の車載ネットワークとの間の通信を中継する車載中継装置であって、
第1メモリを内蔵し、前記車載ネットワークから切り離して設けられ、前記車両の外部と通信を行う第1装置と、
第2メモリを内蔵し、前記車両の外部から切り離して設けられ、前記第1装置に第1通信線を介して通信可能に接続されるとともに、前記車載ネットワークに通信可能に接続される第2装置と、を備え、
前記第1装置は、前記車載ネットワークに対する攻撃を検知し、当該攻撃を検知した場合に前記第1通信線を介して前記第2装置に通知する検知手段、を有し、
前記第2装置は、
前記第1装置から前記第1通信線を介して受信する情報に基づいて、前記第1装置が攻撃を受けたか否かを判定する判定手段と、
前記第1装置に対して暗号鍵を用いた認証を行う認証手段と、を有し、
前記判定手段により前記第1装置が攻撃を受けたと判定されるか、または、前記認証手段による認証に失敗した場合に、所定の対応を行う、車載中継装置。
【請求項2】
前記第1装置と前記第2装置とは、前記第1通信線とは別の第2通信線を介して通信可能に接続され、
前記認証手段は、前記第2通信線を介した前記第1装置との通信により認証を行う、請求項1に記載の車載中継装置。
【請求項3】
前記第1通信線を介した通信は、前記車載ネットワークにおける通信と同じ通信方式を採用し、
前記第2通信線を介した通信は、前記第1通信線を介した通信とは異なる通信方式を採用している、請求項2に記載の車載中継装置。
【請求項4】
前記第1メモリは、リプログラミングされるソフトウェアが格納されるリプログラミング領域と、暗号鍵が格納されるセキュアメモリ領域とを有し、
前記暗号鍵は、前記セキュアメモリ領域に格納されている、請求項1~3のいずれか一項に記載の車載中継装置。
【請求項5】
前記暗号鍵は、前記車載中継装置ごとに設定された個別鍵である、請求項1~4のいずれか
一項に記載の車載中継装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載されて、車両の外部と内部の車載ネットワークとの通信を中継する装置に関する。
【背景技術】
【0002】
最近の車両には、車両の外部と内部のCAN(Controller Area Network)などの車載ネットワークとの間で通信を行うコネクテッド機能が搭載されてきている。
【0003】
コネクテッド機能を搭載した車両は、外部から車載ネットワークへの攻撃の対象となる可能性がある。車載ネットワークには、複数のECU(Electronic Control Unit:電子制御ユニット)が接続されており、各ECUにより、エンジンおよびブレーキなどの各部の制御が行われる。そのため、車載ネットワークが外部から攻撃を受けて、ECUのソフトウェアや制御データが改ざんされると、車両の各部が誤動作するおそれがある。
【0004】
そこで、かかる車両では、車両の外部と車載ネットワークとの通信を中継するゲートウェイECU(Electronic Control Unit:電子制御ユニット)が設けられ、ゲートウェイECUに、外部からの攻撃を検出して、車載ネットワークを防御する機能が盛り込まれている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところが、自動運転技術などの発展に伴い、車載ネットワークへの攻撃が深刻な問題となっており、セキュリティ対策の強化が重要な課題となっている。
【0007】
本発明の目的は、セキュリティ対策の強化を図ることができる、車載中継装置を提供することである。
【課題を解決するための手段】
【0008】
前記の目的を達成するため、本発明に係る車載中継装置は、車両に搭載されて、車両の外部と内部の車載ネットワークとの間の通信を中継する車載中継装置であって、車載ネットワークから切り離して設けられ、車両の外部と通信を行う第1装置と、車両の外部から切り離して設けられ、第1装置に第1通信線を介して通信可能に接続されるとともに、車載ネットワークに通信可能に接続される第2装置とを備え、第1装置は、車載ネットワークに対する攻撃を検知し、当該攻撃を検知した場合に第1通信線を介して第2装置に通知する検知手段を有し、第2装置は、第1装置から第1通信線を介して受信する情報に基づいて、第1装置が攻撃を受けたか否かを判定する判定手段と、第1装置に対して暗号鍵を用いた認証を行う認証手段とを有し、判定手段により第1装置が攻撃を受けたと判定されるか、または、認証手段による認証に失敗した場合に、所定の対応を行う。
【0009】
この構成によれば、車載中継装置には、第1装置および第2装置が備えられている。第1装置は、車両の内部の車載ネットワークから切り離されており、車両の外部との通信は、第1装置により行われる。一方、第2装置は、車両の外部から切り離して設けられ、車載ネットワークに通信可能に接続されている。そして、第1装置は、車載ネットワークに対する攻撃を検知する検知手段を有し、第2装置は、第1装置が攻撃を受けたか否かを判定する判定手段と、第1装置に対して暗号鍵を用いた認証を行う認証手段とを有している。第2装置では、第1装置が攻撃を受けたと判定された場合、所定の対応が行われる。また、第1装置が攻撃を受けたと判定されなくても、認証手段による認証に失敗した場合、所定の対応が行われる。
【0010】
これにより、車両の外部からの車載ネットワークへの攻撃の対策として、第1装置の検知手段を第1層の防御層とし、第2装置の判定手段を第2層の防御層とする多層防御が構築される。この多層防御の構築により、セキュリティ対策の強化を図ることができる。
【0011】
所定の対応は、たとえば、第1装置から受信したメッセージを破棄するという対応であってもよい。
【0012】
これにより、外部からの攻撃を受けた第1装置が不正メッセージを第2装置に向けて送信しても、その不正メッセージが破棄されるので、車載ネットワークが不正メッセージによる攻撃を受けることを防止でき、車載ネットワークによる通信を継続できる。
【0013】
第1装置と第2装置とは、第1通信線とは別の第2通信線を介して通信可能に接続され、認証手段は、第2通信線を介した第1装置との通信により認証を行ってもよい。
【0014】
たとえば、第1装置から第2装置を経由して車載ネットワークに送信されるメッセージは、第1装置と第2装置との間で第1通信線を伝送されるのに対し、認証用の暗号鍵を含むデータは、第1装置と第2装置との間で第2通信線を伝送される。そのため、認証が行われるときに、第2通信線への不正データの流し込みを受けることを抑制できる。また、第2装置が第1装置から第2通信線を介して不正データを受信した場合には、第1装置が外部からの攻撃を受けたと即座に判定することができる。
【0015】
第1通信線を介した通信は、車載ネットワークにおける通信と同じ通信方式を採用し、第2通信線を介した通信は、第1通信線を介した通信とは異なる通信方式を採用していることが好ましい。
【0016】
第1通信線を介した通信と第2通信線を介した通信とが同一の通信方式である場合、第1装置が外部から不正データを受信した場合に、その不正データが通信プロトコルの変換なしで第2通信線に流し込まれる可能性がある。第1通信線を介した通信と第2通信線を介した通信との通信方式が異なることにより、第1装置が外部から受信した不正データを第2通信線に流し込むには、通信プロトコルの変換が必要となるので、その攻撃に対する耐性をより高くすることができる。
【0017】
第1装置は、リプログラミングされるソフトウェアが格納されるリプログラミング領域と、暗号鍵が格納されるセキュアメモリ領域とを有し、暗号鍵は、セキュアメモリ領域に格納されていてもよい。
【0018】
これにより、ソフトウェアよりも高いセキュリティレベルで暗号鍵を保管することができ、セキュリティ性を高めることができる。その結果、暗号鍵の書き換えを防止でき、暗号鍵を用いた認証の精度を高めることができる。
【0019】
暗号鍵は、車載中継装置ごとに設定された個別鍵であってもよい。
【0020】
これにより、車載中継装置の外部に同一の暗号鍵が存在しないので、暗号鍵の漏洩の危険性を低下させることができる。また、暗号鍵が外部に漏洩したとしても、その暗号鍵を他の車載中継装置で第2装置による第1装置の認証に使用できないので、他の車両の車載ネットワークに対する攻撃の危険性に影響を及ぼさない。
【発明の効果】
【0021】
本発明によれば、車載ネットワークの攻撃に対して、セキュリティ対策の強化を図ることができる。
【図面の簡単な説明】
【0022】
【
図1】本発明の一実施形態に係る車載中継装置(ゲートウェイECU)を含む車載通信システム1の構成を示す図である。
【
図2】第1CPUにより起動時に行われる処理の流れを示すフローチャートである。
【
図3】第1CPUによりメッセージ受信時に行われる処理の流れを示すフローチャートである。
【
図4】第1CPUによりスキャンツールの接続時に行われる処理の流れを示すフローチャートである。
【
図5】第2CPUにより起動後に行われる処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0023】
以下では、本発明の実施の形態について、添付図面を参照しつつ詳細に説明する。
【0024】
<車載通信システム>
図1は、本発明の一実施形態に係るゲートウェイECU3を含む車載通信システム1の構成を示す図である。
【0025】
車載通信システム1は、自動車などの車両に搭載されて、車両の外部と内部の車載ネットワーク2との間で通信を可能にするコネクテッド機能のためのシステムである。車載通信システム1には、車載ネットワーク2、ゲートウェイECU(Electronic Control Unit:電子制御ユニット)3、TCU(Telematics Communication Unit)4およびDLC(Data Link Connector)5が含まれる。
【0026】
車載ネットワーク2は、たとえば、CAN(Controller Area Network)通信プロトコルによる通信が可能なネットワークである。車載ネットワーク2には、複数のバス(伝送線路)6が設けられており、各バス6には、車両の各部を制御するための複数のECU7が接続されている。ECU7には、車両のイグニッションスイッチがオフの状態でも動作可能なボデーECU7A、車両のコンビネーションメータに配設された機器(たとえば、マルチインフォメーションディスプレイなど)を制御するメータECU7Bなどが含まれる。
【0027】
ゲートウェイECU3には、TCU4、OBD5および各バス6が接続されている。ゲートウェイECU3は、車載ネットワーク2とTCU4との間および車載ネットワーク2とOBD5との間でメッセージを中継する機能と、車載ネットワーク2の各バス6間でメッセージを中継する機能とを有している。また、ゲートウェイECU3は、外部からの車載ネットワーク2に対する攻撃を検知して、その攻撃から車載ネットワーク2を防御するセキュリティ機能を有している。
【0028】
TCU4は、車両に搭載されるデータ通信機であり、車両のユーザに種々の情報やサービスを提供するために、移動体無線データ通信などを利用して、サービスセンタのサーバ8とデータ通信を行う。ユーザに提供されるサービスには、たとえば、乗車前にエアコンディショナを作動させるなど、車両を遠隔操作するリモートサービスが含まれる。なお、本実施の形態では、データ通信機としてTCU4を用いているが、これに代えて、スマートフォンなどの携帯端末を用いてもよい。
【0029】
DLC5は、OBD(On-Board Diagnostics:オン・ボード・ダイアグノーシス)による故障コードなどの読み出しのために、スキャンツール9が接続されるコネクタである。
【0030】
<ゲートウェイECU>
ゲートウェイECU3には、第1CPU(Central Processing Unit)11および第2CPU12が備えられている。第1CPU11には、TCU4およびDLC5が接続され、車載ネットワーク2から切り離して設けられている。第2CPU12は、TCU4およびDLC5から切り離され、車載ネットワーク2に通信可能に接続されている。また、第1CPU11と第2CPU12とは、通信線Xにより通信可能に接続されている。この通信線Xを使用する通信は、車載ネットワーク2と同じ通信方式、つまりCAN通信プロトコルによる通信方式で行われる。
【0031】
第1CPU11および第2CPU12には、それぞれセキュアメモリ13,14が内蔵されている。セキュアメモリ13,14は、たとえば、フラッシュメモリやE2PROMなどのデータの書き換えが可能な不揮発性メモリからなる。また、ゲートウェイECU3には、HSM(Hardware Security Module)が備えられており、セキュアメモリ13,14に記憶されているプログラムコードやパラメータデータなどのデータは、HSMの機能によるセキュア認証を経て書き換えることができる。
【0032】
<第1CPU>
第1CPU11は、外部からの攻撃に対するセキュリティ機能のための機能処理部として、攻撃検知部21、転送判定部22、攻撃情報管理部23およびソフトウェア起動部24を実質的に備えている。これらの機能処理部は、プログラム処理によってソフトウエア的に実現されるか、または、論理回路などのハードウェアにより実現される。
【0033】
攻撃検知部21は、ファイアウォールとしての機能を有している。すなわち、攻撃検知部21は、車両の外部からの車載ネットワーク2に対する攻撃を検知する攻撃検知機能と、その攻撃から車載ネットワーク2およびゲートウェイECU3を保護する保護機能とを有している。
【0034】
セキュアメモリ13には、車載ネットワーク2で通信可能なメッセージに使用されるID(Identifier)を登録したホワイトリストが記憶されている。攻撃検知部21は、外部からTCU4またはOBD5経由で第1CPU11がメッセージを受信すると、ホワイトリストに登録されているID(以下、「登録ID」という。)がメッセージに使用されているか否かを調べる。そして、攻撃検知部21は、登録IDがメッセージに使用されている場合、そのメッセージが正規のメッセージであると判断する。この場合、攻撃検知部21から転送判定部22にメッセージが送信される。
【0035】
一方、攻撃検知部21は、登録IDがメッセージに使用されていない場合には、そのメッセージの受信を外部からの車載ネットワーク2に対する攻撃として検知する。攻撃検知部21は、外部からの攻撃を検知した場合、その登録IDが使用されていないメッセージを不正メッセージとして破棄し、外部からの車載ネットワーク2に対する攻撃を受けたことを転送判定部22に通知する。
【0036】
転送判定部22は、攻撃検知部21からメッセージを受信した場合、そのメッセージを第2CPU12に転送(中継)する。一方、転送判定部22は、攻撃検知部21から攻撃を受けたことの通知(以下、「受攻撃の通知」という。)を受信した場合、その通知を第2CPU12に転送する。
【0037】
また、攻撃検知部21により外部からの車載ネットワーク2に対する攻撃が検知された場合、攻撃検知部21から攻撃情報管理部23に、攻撃の内容(たとえば、メッセージの送信先の情報など)と攻撃を受けた日時とを含む攻撃情報が送信される。攻撃情報管理部23は、攻撃検知部21から攻撃情報を受信した場合、その攻撃情報をセキュアメモリ13に記憶させる。そして、TCU4がサーバ8から攻撃情報の送信の要求を受信した場合、攻撃情報管理部23は、要求に従い、セキュアメモリ13から攻撃情報を読み出して、その読み出した攻撃情報をTCU4経由でサーバ8に送信する。また、DLC5に接続されたスキャンツール9から第1CPU11に攻撃情報の出力の要求が入力された場合、攻撃情報管理部23は、要求に従い、セキュアメモリ13から攻撃情報を読み出して、その読み出した攻撃情報をスキャンツール9に出力する。
【0038】
ソフトウェア起動部24は、車両のイグニッションスイッチがオンにされたこと、または、車両の各ECUがドミナントウェイクアップしたことを検出し、セキュアメモリ13に記憶されているソフトウェアを起動させる。ソフトウェア起動部24は、ソフトウェア改ざん検知機能を有しており、ソフトウェアの起動時に、ソフトウェアの改ざんを検知するため、ソフトウェアに付与されているデジタル署名とセキュアメモリ13に格納されている署名情報(ハッシュ値やサム値など)との整合を確認する。その確認の結果、ソフトウェアの改ざんが検知されなければ、ソフトウェア起動部24は、そのソフトウェアを起動する。ソフトウェアの改ざんが検知された場合、ソフトウェア起動部24は、そのソフトウェアを起動しない。ソフトウェアの改ざんが検知された場合、第1CPU11は、動作を停止する。
【0039】
<第2CPU>
第2CPU12は、車載ネットワーク2への攻撃に対するセキュリティ機能のための機能処理部として、攻撃判定部31、転送判定部32、攻撃通知部33およびソフトウェア起動部34を実質的に備えている。これらの機能処理部は、プログラム処理によってソフトウエア的に実現されるか、または、論理回路などのハードウェアにより実現される。
【0040】
攻撃判定部31は、車両の外部からの車載ネットワーク2に対する攻撃を第1CPU11が受けたか否かを判定する。
【0041】
具体的には、攻撃判定部31は、第1CPU11から受攻撃の通知を受信した場合、第1CPU11が外部から攻撃を受けたと判定する。そして、攻撃判定部31は、第1CPU11との通信を切断(遮断)し、第1CPU11が外部からの攻撃を受けたことを攻撃通知部33に通知する。
【0042】
また、セキュアメモリ14には、セキュアメモリ13に記憶されているホワイトリストと同一のホワイトリストが記憶されている。攻撃判定部31は、第1CPU11からメッセージ(第1CPU11により中継されるメッセージ)を受信すると、そのメッセージに登録IDが使用されているか否かを調べる。そして、攻撃判定部31は、登録IDがメッセージに使用されている場合、そのメッセージが正規のメッセージであると判断する。この場合、攻撃判定部31から転送判定部32にメッセージが転送される。一方、登録IDがメッセージに使用されていない場合には、攻撃判定部31は、第1CPU11が外部から攻撃を受けたと判定し、そのメッセージを不正メッセージとして破棄する。そして、攻撃判定部31は、第1CPU11との通信を切断し、第1CPU11が外部からの攻撃を受けたことを攻撃通知部33に通知する。
【0043】
さらに、第1CPU11が起動時にソフトウェアの改ざんを検知した場合、第1CPU11の動作が停止し、第1CPU11から第2CPU12にメッセージが送信されない状態が続く。攻撃判定部31は、第1CPU11からメッセージを受信しない状態が一定時間続くと、第1CPU11が外部から攻撃を受けたと判定してもよい。そして、攻撃判定部31は、第1CPU11との通信を切断し、第1CPU11が外部からの攻撃を受けたことを攻撃通知部33に通知してもよい。
【0044】
転送判定部32は、攻撃判定部31からメッセージを受信した場合、そのメッセージを車載ネットワーク2に転送(中継)する。メッセージは、メッセージに含まれるIDに応じた送信先のECU7が受信する。
【0045】
また、攻撃判定部31から攻撃通知部33に第1CPU11の受攻撃が通知された場合、攻撃通知部33は、TCU4と通信線Yにより通信可能に接続されたボデーECU7A経由にて、第1CPU11が外部から攻撃を受けたことをTCU4に通知してもよい。TCU4は、その通知を受けて、第1CPU11(第1CPU11を含むゲートウェイECU3を搭載した車両)が外部から車載ネットワーク2に対する攻撃を受けたことの情報をサーバ8にアップロードする。
【0046】
ソフトウェア起動部34は、車両のイグニッションスイッチがオンにされたこと、または、車両の各ECUがドミナントウェイクアップしたことを検出し、セキュアメモリ14に記憶されているソフトウェアを起動させる。ソフトウェア起動部34は、ソフトウェア改ざん検知機能を有しており、ソフトウェアの起動時に、ソフトウェアの改ざんを検知するため、ソフトウェアに付与されているデジタル署名とセキュアメモリ33に格納されている署名情報(ハッシュ値やサム値など)との整合を確認する。その確認の結果、ソフトウェアの改ざんが検知されなければ、ソフトウェア起動部34は、そのソフトウェアを起動する。ソフトウェアの改ざんが検知された場合、ソフトウェア起動部34は、そのソフトウェアを起動しない。ソフトウェアの改ざんが検知された場合、第2CPU12は、動作を停止する。
【0047】
<C&R侵入判定>
また、第2CPU12では、第1CPU11に対してC&R(チャレンジ&レスポンス)認証が行われて、そのC&R認証の結果に認証失敗であった場合、第1CPUが外部からの攻撃(侵入)を受けたと判定される。このC&R侵入判定は、ゲートウェイECU3の動作中、一定の周期で定期的に行われる。
【0048】
C&R侵入判定のため、第2CPU12は、C&R侵入判定部41を実質的に備え、第1CPU11は、C&R演算部42を実質的に備えている。C&R侵入判定部41とC&R演算部42とは、通信線Zにより通信可能に接続されている。C&R侵入判定部41とC&R演算部42との間では、通信線Zを介して、CAN通信プロトコルとは異なる通信プロトコル、たとえば、SPI(Serial Peripheral Interface)通信プロトコルによる通信が行われる。
【0049】
第2CPU12に接続されたメモリ14には、C&R認証に用いる暗号鍵が記憶されている。また、第1CPU11に接続されたメモリ13には、リプログラミングされるソフトウェアが格納されるリプログラミング領域と、データを高度セキュリティ下で保存されるセキュアメモリ領域とが設定されており、セキュアメモリ領域に、C&R認証に用いる暗号鍵が記憶されている。暗号鍵は、たとえば、共通鍵であり、ゲートウェイECU3のみに設定された個別鍵である。
【0050】
C&R認証では、C&R侵入判定部41がチャレンジコードをC&R演算部42に送信する。C&R演算部42は、チャレンジコードを受信すると、メモリ13に記憶されている暗号鍵を用いた演算処理を行う。そして、C&R演算部42は、その演算処理で生成されたレスポンスコード(ハッシュ値など)をC&R侵入判定部42に送信する。C&R侵入判定部42は、チャレンジコードに対してメモリ14に記憶されている暗号鍵を用いた演算処理を行い、その演算処理で生成されるレスポンスコードとC&R演算部42から受信したレスポンスコードとを比較し、それらが一致した場合、認証成功と判定し、それらが一致しなかった場合、認証失敗と判定する。そして、C&R侵入判定部42は、C&R認証の結果が認証成功であった場合、第1CPU11が外部から攻撃を受けていないと判定し、C&R認証の結果が認証失敗であった場合、第1CPU11が外部から攻撃を受けていると判定する。
【0051】
C&R侵入判定部41は、その判定結果を攻撃判定部31に通知する。攻撃判定部31は、第1CPU11が外部から攻撃を受けているとの判定結果を受け取った場合には、第1CPU11との通信を切断し、第1CPU11が外部からの攻撃を受けたことを攻撃通知部33に通知する。
【0052】
<フローチャート>
外部からの攻撃に対するセキュリティ機能による第1CPU11および第2CPU12の処理動作は、前述したとおりであるが、以下では、その処理動作を時系列に沿って説明する。
【0053】
図2は、第1CPU11により起動時に行われる処理の流れを示すフローチャートである。
【0054】
第1CPU11の起動時には、第1CPU11により、
図2に示される処理が行われる。
【0055】
図2に示される処理では、ソフトウェア改ざん検知機能により、セキュアメモリ13に記憶されているソフトウェアが改ざんされていないかがチェックされる(ステップS11)。
【0056】
ソフトウェアが改ざんされていない場合(ステップS12のNO)、そのソフトウェアが起動される(ステップS13)。ソフトウェアが改ざんされている場合、そのソフトウェアは起動されず、第1CPU11の動作が停止される(ステップS14)。
【0057】
図3は、第1CPU11によりメッセージ受信時に行われる処理の流れを示すフローチャートである。
【0058】
第1CPU11が外部からTCU4またはDLC5経由でメッセージを受信すると、第1CPU11により、
図3に示される処理が行われる。
【0059】
図3に示される処理では、第1CPU11が受信したメッセージ(受信メッセージ)に登録IDが使用されているか否かが判断される。登録IDが受信メッセージに使用されている場合、その受信メッセージは、正規のメッセージである。一方、登録IDが受信メッセージに使用されていない場合、その受信メッセージは、不正メッセージである。
【0060】
受信メッセージが正規のメッセージである場合(ステップS21のNO)、その正規のメッセージが第1CPU11から第2CPU12に転送される(ステップS22)。
【0061】
受信メッセージが不正メッセージである場合(ステップS21のYES)、その不正メッセージが破棄される(ステップS23)。また、第1CPU11が外部から車載ネットワーク2に対する攻撃を受けたことが第2CPU12に通知される(ステップS24)。さらに、攻撃の内容と攻撃を受けた日時とを含む攻撃情報がメモリ13に記憶される(ステップS25)。
【0062】
図4は、第1CPU11によりスキャンツール9の接続時に行われる処理の流れを示すフローチャートである。
【0063】
スキャンツール9がDLC5に接続されている間、第1CPU11により、
図4に示される処理が繰り返し行われる。
【0064】
図4に示される処理では、スキャンツール9からDLC5経由で、攻撃情報の出力の要求が入力されたか否かが判断される(ステップS31)。
【0065】
攻撃情報の出力の要求が入力されていない場合(ステップS31のNO)、
図4に示される処理が一旦終了されて、所定のタイミングが到来すると、
図4に示される処理が再び開始される。
【0066】
スキャンツール9から攻撃情報の出力の要求が出されて、その要求が第1CPU11に入力されると(ステップS31のYES)、要求に従い、セキュアメモリ13から攻撃情報が読み出されて、その読み出された攻撃情報がDLC5経由でスキャンツール9に出力される(ステップS32)。
【0067】
図5は、第2CPU12により起動後に行われる処理の流れを示すフローチャートである。
【0068】
第2CPU12の起動後、第2CPU12により、
図5に示される処理が繰り返し行われる。
【0069】
図5に示される処理では、第1CPU11と第2CPU12との通信が切断されているか否かが判断される(ステップS41)。第1CPU11と第2CPU12との通信が切断されている状況では(ステップS41のYES)、
図5に示される処理が一旦終了されて、所定のタイミングが到来すると、
図5に示される処理が再び開始される。
【0070】
第1CPU11と第2CPU12との通信が切断されていない場合(ステップS41のNO)、C&R認証の結果が認証失敗であったか否かが判定される(ステップS42)。C&R認証の結果が認証失敗であった場合(ステップS42のYES)、第1CPU11が外部から攻撃を受けたと判定されて、第1CPU11との通信が切断される(ステップS43)。第1CPU11が外部から攻撃を受けたことは、第2CPU12からボデーECU7A経由でTCU4に通知されてもよい(ステップS44)。
【0071】
一方、C&R認証の結果が認証失敗でなかった場合、つまり認証成功であった場合(ステップS42のNO)、第1CPU11から受攻撃の通知を受信したか否かが判断される(ステップS45)。
【0072】
第2CPU12が第1CPU11から受攻撃の通知を受信している場合(ステップS45のYES)、第1CPU11が外部から攻撃を受けたと判定されて、第1CPU11との通信が切断される(ステップS43)。そして、第1CPU11が外部から攻撃を受けたことがボデーECU7A経由でTCU4に通知される(ステップS44)。
【0073】
なお、C&R認証の結果が認証失敗であったか否かの判定と、第1CPU11から受攻撃の通知を受信したか否かの判断とは、先後が逆であってもよい。
【0074】
一方、第2CPU12が第1CPU11から受攻撃の通知を受信していない場合(ステップS45のNO)、第2CPU12が第1CPU11からメッセージ(第1CPU11により中継されるメッセージ)を受信したか否かが判断される(ステップS46)。
【0075】
第1CPU11からメッセージを受信した場合(ステップS46のYES)、その受信したメッセージに登録IDが使用されているか否かが判断される。登録IDが受信メッセージに使用されている場合、その受信メッセージは、正規のメッセージである。一方、登録IDが受信メッセージに使用されていない場合、その受信メッセージは、不正メッセージである。
【0076】
受信メッセージが正規のメッセージである場合(ステップS47のNO)、その正規のメッセージが第2CPU12から車載ネットワーク2に転送される(ステップS48)。
【0077】
受信メッセージが不正メッセージである場合(ステップS47のYES)、第1CPU11が外部から攻撃を受けたと判定されて、第1CPU11との通信が切断される(ステップS43)。第1CPU11が外部から攻撃を受けたことは、ボデーECU7A経由でTCU4に通知されてもよい(ステップS44)。
【0078】
第2CPU12が第1CPU11からメッセージを受信していないときには(ステップS46のNO)、
図5に示される処理が終了される。
【0079】
<作用効果>
以上のように、ゲートウェイECU3には、第1CPU11および第2CPU12が備えられている。第1CPU11は、車両の内部の車載ネットワーク2から切り離されており、車両の外部との通信は、第1CPU11により行われる。一方、第2CPU12は、車両の外部から切り離して設けられ、車載ネットワーク2に通信可能に接続されている。そして、第1CPU11は、車載ネットワーク2に対する攻撃を検知する攻撃検知機能(攻撃検知部21)を有し、第2CPU12は、第1CPU11が攻撃を受けたか否かを判定する攻撃判定機能(攻撃判定部31)を有している。また、第2CPU12は、第1CPU11に対するC&R認証の結果から第1CPU11が攻撃を受けたか否かを判定する認証判定機能(C&R侵入判定部41)を有している。第2CPU12では、攻撃判定機能または認証判定機能により第1CPU11が攻撃を受けたと判定された場合、第1CPU11との通信が切断されるとともに、第1CPU11が外部から攻撃を受けたことがボデーECU7A経由でTCU4に通知される。
【0080】
これにより、車両の外部からの車載ネットワーク2への攻撃の対策として、第1CPU11の攻撃検知機能を第1層の防御層とし、第2CPU12の攻撃判定機能および第2CPU12による第1CPU11との通信を第2層の防御層とする多層防御が構築される。この多層防御の構築により、セキュリティ対策の強化を図ることができる。
【0081】
また、第2CPU12が第1CPU11から不正メッセージを受信した場合、その不正メッセージが破棄される。これにより、外部からの攻撃を受けた第1CPU11が不正メッセージを第2CPU12に向けて送信しても、その不正メッセージが破棄されるので、車載ネットワーク2が不正メッセージによる攻撃を受けることを防止でき、車載ネットワーク2による通信を継続できる。
【0082】
第1CPU11と第2CPU12とは、車載ネットワーク2へのメッセージの伝送に使用される通信線Xとは別の通信線Zを介して通信可能に接続され、C&R認証では、通信線Zを介して、第1CPU11と第2CPU12との間で通信が行われる。そのため、C&R認証が行われるときに、通信線Zへの不正データの流し込みを受けることを抑制できる。また、第2CPU12が第1CPU11から通信線Zを介して不正データを受信した場合には、第1CPU11が外部からの攻撃を受けたと即座に判定することができる。
【0083】
通信線Xを介した通信には、車載ネットワーク2における通信と同じ通信方式が採用され、通信線Zを介した通信には、通信線Xを介した通信とは異なる通信方式が採用されている。通信方式が異なることにより、第1CPU11が外部から受信した不正データを通信線Zに流し込むには、通信プロトコルの変換が必要となるので、その攻撃に対する耐性をより高くすることができる。
【0084】
第1CPU11に接続されたセキュアメモリ13には、リプログラミング領域およびセキュアメモリ領域が設定されており、C&R認証に用いられる暗号鍵は、セキュアメモリ領域に格納されている。これにより、外部からの暗号鍵の書き換えを防止でき、暗号鍵を用いた認証の精度を高めることができる。
【0085】
また、暗号鍵は、ゲートウェイECU3のみに設定された個別鍵、すなわち、ゲートウェイECUの個体ごとに設定された個別鍵である。これにより、ゲートウェイECU3の外部に同一の暗号鍵が存在しないので、暗号鍵の漏洩の危険性を低下させることができる。また、暗号鍵が外部に漏洩したとしても、その暗号鍵を他のゲートウェイECUでのC&R認証に使用できないので、他の車両の車載ネットワーク2に対する攻撃の危険性に影響を及ぼさない。
【0086】
第1CPU11は、攻撃検知機能により攻撃が検知されたことに応じて、当該攻撃に関する攻撃情報をセキュアメモリ13に記憶させ、車両の外部のサーバ8またはスキャンツール9からの要求に従って、セキュアメモリ13に記憶されている攻撃情報を出力する。これにより、第1CPU11が外部からの攻撃を受けた場合に、その攻撃に関する情報を車両の外部のサーバ8およびスキャンツール9に読み出すことができる。そのため、サーバ8またはスキャンツール9に読み出した情報を解析して、第1CPU11が受けた攻撃の内容を早期に特定でき、攻撃への対策を早期に講じることができる。
【0087】
また、第1CPU11は、起動時にソフトウェアの改ざんを検知する改ざん検知機能を有し、起動時にソフトウェアの改ざんが検知されなければ、そのソフトウェアを起動し、起動時にソフトウェアの改ざんが検知された場合には、そのソフトウェアを起動せずに動作を停止する。これにより、改ざんされたソフトウェアの起動を防止できる。そのため、改ざんされたソフトウェアが実行されることによる第2CPU12への不正メッセージの送信などを防止できる。
【0088】
ソフトウェアの改ざんが検知されて、第1動作が動作を停止した場合、第1CPU11から第2CPU12へのメッセージ送信が行われないので、メッセージ送信が一定時間行われない場合には、第2CPU12により、第1CPU11が外部から攻撃を受けたと判定されて、第1CPU11と第2CPU12との通信が切断される。これにより、第1CPU11のソフトウェアが改ざんされていても、第2CPU12が第1CPU11から不正メッセージを受信しないので、車載ネットワーク2が不正メッセージによる攻撃を受けることを防止できる。
【0089】
第2CPU12により第1CPU11が攻撃を受けたと判定された場合、車両に搭載されているTCU4から車両の外部のサーバ8に第1CPU11が攻撃を受けたことの情報がアップロードされるように、第1CPU11が外部から攻撃を受けたことは、第2CPU12からボデーECU7A経由でTCU4に通知されてもよい。これにより、サーバ管理者またはサーバ経由で情報を入手しうるユーザが第1CPU11の受攻撃を認知することができる。
【0090】
<変形例>
以上、本発明の一実施形態について説明したが、本発明は、他の形態で実施することもできる。
【0091】
たとえば、前述の実施形態では、共通鍵を用いたC&R認証が行われるとしたが、秘密鍵および公開鍵を用いた公開鍵暗号方式の認証が行われて、認証の結果が認証失敗であった場合、第1CPU11が外部から攻撃を受けたと判定されてもよい。
【0092】
また、第1CPU11が車載ネットワーク2に対する攻撃を受けたことの情報がTCU4からサーバ8にアップロードされたことに応じて、車両を遠隔操作するリモートサービスが停止されてもよい。これにより、車載ネットワーク2の攻撃による車両の誤動作を防止することができる。また、第1CPU11には、TCU4やDLC5の他にも、コクピットECUとの専用通信線や急速充電用の専用通信線が接続されてもよい。この場合、TCU4やDLC5と同様に、それらの専用通信線から攻撃検知部21に並列に情報が入力される。
【0093】
その他、前述の構成には、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【0094】
2:車載ネットワーク
3:ゲートウェイECU(車載中継装置)
11:第1CPU(第1装置)
12:第2CPU(第2装置)
13:セキュアメモリ(リプログラミング領域、セキュアメモリ領域)
X:第1通信線
Z:第2通信線