(57)【要約】【課題】車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供する。【解決手段】車載装置２００において、更新管理部２０２は、ＥＣＵ３００のソフトウェアの更新に関する更新情報を取得し、この更新情報に含まれる更新種別の情報に基づいて、ＥＣＵ３００の機能を制限する。ソフトウェアの更新がセキュリティに関する更新であり、かつ、ソフトウェアが更新されるＥＣＵが車両２の走行に関する機能を有するＥＣＵではない場合、当該ＥＣＵと当該ＥＣＵが属するネットワーク以外の他のネットワークとの間の通信を遮断する。ソフトウェアの更新がセキュリティに関する更新であり、かつ、ソフトウェアが更新されるＥＣＵが車両２の走行に関する機能を有するＥＣＵである場合、当該ＥＣＵを所定のフェールセーフモードで動作させる。【選択図】図２
2020181252.tif 000002
【特許請求の範囲】
【請求項１】
車両内のネットワークに接続された制御装置と通信可能な車載装置であって、
前記制御装置のソフトウェアの更新に関する更新情報を取得し、前記更新情報に含まれる前記制御装置の脆弱性に関する情報に基づいて、前記制御装置の機能を制限する更新管理部を備える車載装置。
【請求項２】
請求項１に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新であることを前記脆弱性に関する情報が表しており、かつ、前記ソフトウェアが更新される前記制御装置が前記車両の走行に関する機能を有する制御装置ではない場合、前記制御装置と前記制御装置が属するネットワーク以外の他のネットワークとの間の通信を遮断する車載装置。
【請求項３】
請求項１に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新であることを前記脆弱性に関する情報が表しており、かつ、前記ソフトウェアが更新される前記制御装置が前記車両の走行に関する機能を有する制御装置である場合、前記制御装置を所定のフェールセーフモードで動作させる車載装置。
【請求項４】
請求項３に記載の車載装置において、
前記更新管理部は、前記制御装置を前記フェールセーフモードで動作させるとともに、前記制御装置と前記制御装置が属するネットワーク以外の他のネットワークとの間の通信を遮断する車載装置。
【請求項５】
請求項１に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新ではないことを前記脆弱性に関する情報が表している場合、前記制御装置の機能制限を行わない、または前記制御装置が有する機能の一部を停止させる車載装置。
【請求項６】
請求項１に記載の車載装置において、
前記更新管理部は、前記制御装置が有する機能と前記車両の走行との関連性と、更新される前記ソフトウェアのデータ量と、のいずれか少なくとも一つに基づいて、前記ソフトウェアの更新に対する優先度を前記ソフトウェアごとに設定し、設定した前記優先度に応じて各ソフトウェアの更新を制御する車載装置。
【請求項７】
請求項６に記載の車載装置において、
前記更新管理部は、前記車両の走行に直接的に関連する機能を有する制御装置のソフトウェアに対して、他のソフトウェアよりも前記優先度を高く設定する車載装置。
【請求項８】
請求項６に記載の車載装置において、
前記更新管理部は、前記車両の走行に間接的に関連する機能を有する制御装置のソフトウェアに対して、前記車両の走行に関連しない機能を有する制御装置のソフトウェアよりも前記優先度を高く設定する車載装置。
【請求項９】
請求項６に記載の車載装置において、
前記更新管理部は、前記車両の走行に関連しない機能を有する制御装置のソフトウェアに対して、更新データ量が多いほど前記優先度を高く設定する車載装置。
【請求項１０】
請求項１に記載の車載装置において、
前記更新管理部は、前記ソフトウェアの更新を開始する前に前記制御装置の機能制限を行い、前記ソフトウェアの更新を終了したら前記機能制限を解除する車載装置。
【請求項１１】
請求項１に記載の車載装置において、
前記制御装置の状態を監視して前記制御装置が正常であるか否かを判断する状態監視部を備え、
前記状態監視部は、前記制御装置が異常であると判断した場合、前記制御装置の機能を制限する車載装置。
【請求項１２】
請求項１１に記載の車載装置において、
前記状態監視部は、前記制御装置から出力されるデータのエラー数、データ量および通信負荷のいずれか少なくとも一つに基づいて、前記制御装置が異常であるか否かを判断する車載装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載装置に関する。
【背景技術】
【０００２】
近年、自動車等の車両に搭載される車載装置は、外部のネットワークと接続されて様々な情報を送受信するようになっている。これに伴い、外部からの攻撃に対するセキュリティ対策が重要になりつつある。
【０００３】
本技術分野の背景技術として、特許文献１が知られている。特許文献１には、通信処理部５１と、監視部５２と、通知部５３と、動作ログ作成部５４とを備えた車載通信機１０１が開示されている。この車載通信機において、通信処理部は、中継部１１１の動作ログおよび中継部による制御部の監視結果に基づく監視ログを取得する。監視部は、中継部の動作を監視する監視処理を行う。通知部は、監視処理において中継部に異常があると判断された場合に、異常がある旨を通知する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−４１２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、悪意のあるプログラムがいずれかの制御部に常駐していたとしても、中継部の動作において異常が検知されない限りは、セキュリティ異常として判断することができない。そのため、車両内のネットワークにおけるセキュリティ対策としては改善の余地がある。
本発明は、上記課題を解決するために、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明による車載装置は、車両内のネットワークに接続された制御装置と通信可能なものであって、前記制御装置のソフトウェアの更新に関する更新情報を取得し、前記更新情報に含まれる前記制御装置の脆弱性に関する情報に基づいて、前記制御装置の機能を制限する更新管理部を備える。
【発明の効果】
【０００７】
本発明によれば、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る車載装置を含む情報処理システムの構成図
【図２】本発明の一実施形態に係る車載装置の構成を示す機能ブロック図
【図３】本発明の一実施形態に係る車載装置において実行されるソフトウェア更新制御処理のフローチャート
【図４】状態監視処理のフローチャート
【図５】脆弱性監視処理のフローチャート
【図６】更新優先度設定処理のフローチャート
【図７】更新処理のフローチャート
【図８】アクションリストの例を示す図
【図９】各ＥＣＵに対する更新優先度およびアクションの設定結果の例を示す図
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態について図面を参照して説明する。図１は、本発明の一実施形態に係る車載装置を含む情報処理システムの構成図である。図１に示す情報処理システムにおいて、車両２に搭載された車載装置２００は、センタサーバ１とネットワーク３を介して互いに接続される。なお、図１では一台の車両２に搭載された車載装置２００がセンタサーバ１と接続される例を示しているが、本発明はこれに限定されない。すなわち、任意の数の車両２に本実施形態の車載装置２００をそれぞれ搭載し、各車載装置２００をセンタサーバ１と接続して図１の情報処理システムを構築することができる。
【００１０】
センタサーバ１は、ネットワーク３を介して車載装置２００と通信可能な情報機器であり、所定の場所に設置されている。ネットワーク３は、例えばインターネットや携帯電話回線を含んで構成される。
【００１１】
車載装置２００は、車両２に搭載された各種ＥＣＵ（Electronic Control Unit）がそれぞれ属するネットワーク間の情報を中継するゲートウェイとしての機能を有するとともに、各ＥＣＵのソフトウェアを更新するための更新情報をセンタサーバ１からダウンロードする。そして、ダウンロードした更新情報を用いて、更新対象のＥＣＵのソフトウェアを更新するためのソフトウェア更新制御処理を行う。なお、車載装置２００が行うソフトウェア更新制御処理の詳細については後述する。車載装置２００の一例は、ＴＣＵ（Telematics Control Unit）である。
【００１２】
図２は、本発明の一実施形態に係る車載装置２００の構成を示す機能ブロック図である。図２に示すように、車載装置２００は、無線通信部２０１、更新管理部２０２、アクションリスト記憶部２０３、データ転送部２０４、ＥＣＵ制御部２０５、通信ポート遮断部２０６、状態監視部２０７、近距離通信部２０８、および複数の通信ポート２０９を備える。各通信ポート２０９にはＥＣＵ３００がそれぞれ接続されている。なお、図２では複数のＥＣＵ３００を区別せずに示したが、実際には、各ＥＣＵ３００は異なる機能をそれぞれ有しており、当該機能に応じた処理をそれぞれ実施するとともに、他のＥＣＵ３００との間で当該機能に応じた情報をそれぞれ送受信する。以下では、任意のＥＣＵ３００を単に「ＥＣＵ」として説明することもある。
【００１３】
なお、車載装置２００において、更新管理部２０２は例えばＣＰＵ、ＲＯＭ、ＲＡＭ等により実現され、アクションリスト記憶部２０３は例えばＳＳＤやフラッシュメモリ等の記録媒体により実現される。
【００１４】
無線通信部２０１は、車両２に設置されたアンテナ部１００と接続されており、アンテナ部１００を介して図１のネットワーク３との間で無線通信を行うことにより、センタサーバ１との通信を行う。無線通信部２０１は、更新管理部２０２の制御に応じて動作し、センタサーバ１に対して更新情報をリクエストするとともに、センタサーバ１から送信される更新情報を受信してダウンロードする。無線通信部２０１が受信した更新情報は、更新管理部２０２に転送される。
【００１５】
更新管理部２０２は、無線通信部２０１から転送された更新情報を用いて、更新対象のＥＣＵのソフトウェアを更新する。このとき更新管理部２０２は、アクションリスト記憶部２０３に記憶されているアクションリストを参照し、ソフトウェアの更新に先立って実施する動作（アクション）の内容を決定する。なお、アクションリストの詳細については後述する。
【００１６】
データ転送部２０４は、車両２内に構築されている複数のネットワーク間で送受信されるデータを受け付け、異なるネットワーク間でのデータ転送を行う。各ＥＣＵ３００は、各自が有する機能の種類ごとに異なるネットワークに属しており、同一ネットワーク間で互いに情報を送受信するとともに、異なるネットワーク間ではデータ転送部２０４を介して情報を送受信する。すなわち、データ転送部２０４により、車載装置２００のゲートウェイ機能が実現される。
【００１７】
なお、各ＥＣＵが属するネットワークには、例えばＣＡＮ（Controller Area Network）、ＬＩＮ（Local Interconnect Network）、ＦｌｅｘＲａｙ、ＭＯＳＴ（Media Oriented Systems Transport）、イーサネット（登録商標）、ＵＳＢ等が含まれる。同一種類のネットワークを車両２内に複数設置してもよい。
【００１８】
ＥＣＵ制御部２０５は、更新管理部２０２や状態監視部２０７の制御に応じて、各ＥＣＵ３００の制御を行う。ＥＣＵ制御部２０５は、例えば、更新管理部２０２において決定されたアクションの内容に応じて、ＥＣＵ３００が有する機能の一部を制限したり、ＥＣＵ３００が属するネットワークと他のネットワーク間での通信を遮断したりするための制御を実施する。
【００１９】
通信ポート遮断部２０６は、更新管理部２０２や状態監視部２０７の制御に応じて、各ＥＣＵ３００が接続されている通信ポート２０９を遮断する。通信ポート遮断部２０６は、例えば、通信ポート２０９に電源を供給する不図示の電源回路をオフすることにより、通信ポート２０９を遮断する。対応する通信ポート２０９が遮断されたＥＣＵは、他のネットワークとの間での通信が不可能となるため、機能が制限される。
【００２０】
状態監視部２０７は、各ＥＣＵ３００間で行われる通信の様子を観察することで、各ＥＣＵ３００の状態を監視する。いずれかのＥＣＵにおいて異常な通信状態が検出された場合、状態監視部２０７は、当該ＥＣＵの状態が異常であると判断し、当該ＥＣＵの機能を制限する。これにより、他のＥＣＵに異常が波及するのを防止し、車両２全体での影響を最小限に留める。
【００２１】
近距離通信部２０８は、更新管理部２０２の制御に応じて、車両２に搭乗しているユーザが所持する携帯端末との間で通信を行う。近距離通信部２０８は、例えば、更新管理部２０２において決定されたアクションの内容に応じて、所定の文字情報や画像情報を携帯端末へ送信し、その内容を携帯端末の画面に表示させる。近距離通信部２０８と携帯端末との間の通信は、例えばブルートゥース（登録商標）や無線ＬＡＮ、電話回線等を用いて行うことができる。
【００２２】
図３は、本発明の一実施形態に係る車載装置２００において実行されるソフトウェア更新制御処理のフローチャートである。本実施形態において、車載装置２００は、例えば不図示のＣＰＵにおいて所定のプログラムを実行することにより、図３のフローチャートに従ってソフトウェア更新制御処理を行う。
【００２３】
ステップＳ１において、更新管理部２０２は、各ＥＣＵ３００が現在使用しているソフトウェアのバージョンを取得する。このとき更新管理部２０２は、例えばＥＣＵ制御部２０５を用いて、各ＥＣＵ３００に対してソフトウェアのバージョンの問い合わせを行い、この問い合わせに応じて各ＥＣＵ３００から返信される情報をＥＣＵ制御部２０５を介して取得することで、各ＥＣＵ３００のソフトウェアのバージョンを取得する。
【００２４】
ステップＳ２において、更新管理部２０２は、各ＥＣＵ３００に対するソフトウェアの更新の有無を判定する。ここでは、例えば無線通信部２０１を用いて、ステップＳ１で取得した各ＥＣＵ３００のソフトウェアのバージョンをセンタサーバ１に送信し、センタサーバ１に対して更新情報のリクエストを行う。このリクエストに応じてセンタサーバ１から送信される更新情報の有無により、ソフトウェアの更新の有無を判定する。あるいは、各ＥＣＵ３００最新のソフトウェアのバージョンを示す情報をセンタサーバ１から受信し、その情報とステップＳ１で取得した各ＥＣＵ３００のソフトウェアのバージョンとを照合することにより、ソフトウェアの更新の有無を判定してもよい。その結果、いずれか少なくとも一つのＥＣＵについてソフトウェアの更新があると判定した場合はステップＳ３に進み、全てのＥＣＵについてソフトウェアの更新がないと判定した場合はステップＳ９に進む。
【００２５】
ステップＳ３において、更新管理部２０２は、ステップＳ２でソフトウェアの更新があると判定した各ＥＣＵ３００についての更新情報を、無線通信部２０１によりセンタサーバ１からダウンロードして取得する。なお、ここでダウンロードされる更新情報には、更新対象の各ＥＣＵのソフトウェアを更新するための情報に加えて、更新種別の情報が含まれている。この更新種別の情報は、後述のステップＳ５で実施される脆弱性監視処理において、更新対象の各ＥＣＵの脆弱性に関する情報として用いられる。
【００２６】
ステップＳ４において、更新管理部２０２は、ステップＳ３で取得した更新情報に基づき、ステップＳ２で判定した各ＥＣＵ３００の更新対象ソフトウェアの中で、いずれかのソフトウェアを選択する。
【００２７】
ステップＳ５において、更新管理部２０２は、ステップＳ４で選択したソフトウェアに対して、当該ソフトウェアの更新に伴う脆弱性を監視するための脆弱性監視処理を実行する。この脆弱性監視処理については、後で図５のフローチャートを参照して詳細に説明する。
【００２８】
ステップＳ６において、更新管理部２０２は、ステップＳ４で選択したソフトウェアに対して、当該ソフトウェアの更新に対する優先度を設定するための更新優先度設定処理を実行する。この更新優先度設定処理については、後で図６のフローチャートを参照して詳細に説明する。
【００２９】
ステップＳ７において、更新管理部２０２は、ステップＳ２で更新ありと判定した全ての更新対象ソフトウェアをステップＳ４において選択済みであるか否かを判定する。未選択の更新対象ソフトウェアがある場合はステップＳ４に戻り、その中でいずれかのソフトウェアをステップＳ４で選択した後、ステップＳ５、Ｓ６の各処理を実行する。全ての更新対象ソフトウェアを選択済みである場合は、ステップＳ８に進む。
【００３０】
ステップＳ８において、更新管理部２０２は、ステップＳ６で設定した優先度に従って各ＥＣＵ３００の更新対象ソフトウェアの更新を行うための更新処理を実行する。この更新処理については、後で図７のフローチャートを参照して詳細に説明する。
【００３１】
ステップＳ２からステップＳ９に進んだ場合、ステップＳ９において、状態監視部２０７は、各ＥＣＵ３００の状態を監視するための状態監視処理を実行する。この状態監視処理については、後で図４のフローチャートを参照して詳細に説明する。
【００３２】
ステップＳ８またはＳ９の処理を実行したら、図３のソフトウェア更新制御処理のフローチャートを終了する。
【００３３】
次に、ステップＳ９で実行される状態監視処理の詳細について説明する。図４は、状態監視処理のフローチャートである。
【００３４】
ステップＳ９１において、状態監視部２０７は、各ＥＣＵ３００から受信データのエラー数を取得する。ここでは、例えば各ＥＣＵ３００が他のＥＣＵから受信したデータのエラーチェックを実施しているときに、エラーがあったデータの送信元であるＥＣＵ（以下、「異常発生ＥＣＵ」と称する）の情報を、所定時間内でのエラー数の情報とともに各ＥＣＵ３００から取得する。これにより、いずれかのＥＣＵが悪意のあるソフトウェアを実行して異常発生ＥＣＵとなった場合、その異常発生ＥＣＵによる不正なデータの送信回数が、各ＥＣＵ３００からエラー数として取得される。
【００３５】
ステップＳ９２において、状態監視部２０７は、ステップＳ９１で取得したエラー数が所定の閾値Ａ以下であるか否かを判定する。エラー数が閾値Ａ以下であればステップＳ９３に進み、閾値Ａよりも大きければステップＳ９７に進む。
【００３６】
ステップＳ９３において、状態監視部２０７は、各ＥＣＵ３００の通信データ量を取得する。ここでは、例えば各ＥＣＵ３００から他のＥＣＵに対して所定時間内に送信されたデータ量を、ＥＣＵごとに取得する。これにより、いずれかのＥＣＵが悪意のあるソフトウェアを実行して他のＥＣＵに大量のデータを送信し続けた場合、そのデータ量が取得される。
【００３７】
ステップＳ９４において、状態監視部２０７は、ステップＳ９３で取得した通信データ量が所定の閾値以下であるか否かを判定する。通信データ量が閾値以下であればステップＳ９５に進み、閾値よりも大きければステップＳ９８に進む。
【００３８】
ステップＳ９５において、状態監視部２０７は、各ＥＣＵ３００のデータトラフィックを取得する。ここでは、例えば各ＥＣＵ３００から他のＥＣＵに対して送信されたデータの通信負荷、すなわち既定の帯域幅を有するネットワークでの占有率を、ＥＣＵごとに取得する。これにより、いずれかのＥＣＵが悪意のあるソフトウェアを実行して他のＥＣＵに大量のデータを送信し続けることでネットワークが占有された場合、その占有率が通信負荷として取得される。
【００３９】
ステップＳ９６において、状態監視部２０７は、ステップＳ９５で取得したデータトラフィックが所定時間Ｘ秒の間に継続して１００％未満であるか否かを判定する。データトラフィックがＸ秒間継続して１００％未満であれば、状態監視部２０７は、異常状態であるＥＣＵが存在しないと判断し、図４のフローチャートを終了して状態監視処理を完了する。この場合、状態監視部２０７は、いずれのＥＣＵに対しても機能制限を行わない。一方、ステップＳ９６でデータトラフィックがＸ秒間継続して１００％に達した場合は、ステップＳ９９に進む。
【００４０】
ステップＳ９７において、状態監視部２０７は、ステップＳ９１で取得したエラー数が所定の閾値Ｂ以下であるか否かを判定する。なお、ステップＳ９７の判定で用いられる閾値Ｂは、前述のステップＳ９２の判定で用いられる閾値Ａよりも大きく、Ａ＜Ｂの関係が成り立つ。エラー数が閾値Ａより大きく閾値Ｂ以下であればステップＳ９８に進み、閾値Ｂよりも大きければステップＳ９９に進む。
【００４１】
ステップＳ９８において、状態監視部２０７は、ＥＣＵ制御部２０５を制御して、ステップＳ９４で通信データ量が閾値よりも大きいと判定したＥＣＵ、またはステップＳ９７でエラー数が閾値Ｂよりも大きいと判定したＥＣＵのコマンドＩＤを停止する。コマンドＩＤとは、データ送信元のＥＣＵを識別するための符号であり、各ＥＣＵ３００からの送信データに含まれている。ステップＳ９８では、上記の判定が行われたＥＣＵに対応するコマンドＩＤを含むデータを無効化し、各ＥＣＵ３００が他のＥＣＵから当該データを受信しても破棄するように、ＥＣＵ制御部２０５から各ＥＣＵ３００に対して指令を出力する。これにより、状態監視の結果異常であると判断したＥＣＵについて、そのＥＣＵの機能の一部を制限することができる。なお、ステップＳ９８の処理を実行した後、状態監視部２０７はステップＳ９５に進み、ステップＳ９５で前述のような処理を行う。
【００４２】
ステップＳ９９において、状態監視部２０７は、通信ポート遮断部２０６を制御して、ステップＳ９６でデータトラフィックがＸ秒間継続して１００％であると判定したＥＣＵ、またはステップＳ９７でエラー数が閾値Ｂよりも大きいと判定したＥＣＵの通信ポートを遮断する。ここでは、通信ポート遮断部２０６により、上記の判定が行われたＥＣＵが接続されている通信ポート２０９を遮断して、当該ＥＣＵによる他のネットワークへのデータの送受信が行われないようにする。これにより、状態監視の結果異常であると判断したＥＣＵについて、そのＥＣＵの機能の一部を制限することができ、既に車内へ入り込んだ悪意のあるソフトウェアが他のＥＣＵへ影響を与えることを防ぐことができる。ステップＳ９９の処理を実行したら、図４のフローチャートを終了して状態監視処理を完了する。
【００４３】
次に、ステップＳ５で実行される脆弱性監視処理の詳細について説明する。図５は、脆弱性監視処理のフローチャートである。
【００４４】
ステップＳ５１において、更新管理部２０２は、図３のステップＳ３で取得した更新情報から、選択中のソフトウェアの更新種別を取得する。この更新種別の情報は、前述のように、選択中のソフトウェアに対応するＥＣＵの脆弱性に関する情報に相当する。
【００４５】
ステップＳ５２において、更新管理部２０２は、ステップＳ５１で取得した更新種別に対応するアクションを決定する。ここでは、アクションリスト記憶部２０３に記憶されているアクションリストを参照し、更新種別に対応するアクションを決定する。
【００４６】
図８は、アクションリスト記憶部２０３に記憶されているアクションリストの例を示す図である。図８に示すアクションリスト８００は、更新種別８０１、脆弱性８０２、アクション８０３、実行先８０４、実行方法８０５、実行結果通知８０６の各フィールドを有する複数のレコードにより構成される。
【００４７】
更新種別８０１には、各レコードに対応する更新種別の内容が格納される。脆弱性８０２には、各レコードの脆弱性、すなわち更新種別ごとのリスクの大きさが格納される。アクション８０３には、各レコードに対して実行されるアクション、すなわち脆弱性への対処策としての動作内容が格納される。実行先８０４、実行方法８０５には、各レコードのアクションの具体的な実行先と実行方法がそれぞれ格納される。実行結果通知８０６には、各アクションの実行後に行われるユーザへの通知方法が格納される。
【００４８】
図５のステップＳ５２では、ステップＳ３で取得した更新情報に含まれる更新種別の情報と、アクションリスト８００の更新種別８０１とを比較し、これらが一致するレコードをアクションリスト８００において特定する。そして、特定したレコードの各フィールド８０３〜８０６の内容を参照することで、当該更新種別に対応する具体的なアクションの内容を決定する。
【００４９】
例えば、更新種別が「一般セキュリティ更新」や「車両走行用セキュリティ更新」の場合、取得した更新情報を用いたソフトウェアの更新はセキュリティに関する更新であり、脆弱性が高い（セキュリティリスクが大きい）と考えられる。そのため、これらの更新に該当する場合、当該ソフトウェアの更新が行われるＥＣＵに対しては、他のＥＣＵや車両２の走行に対する影響を最小限に留めるため、当該ＥＣＵの機能の一部を制限するアクションを更新前に実施するように決定する。具体的には、例えば更新種別が「一般セキュリティ更新」の場合、すなわち、当該ＥＣＵが車両２の走行に関する機能を有するＥＣＵではない場合には、図４のステップＳ９９と同様に、通信ポート遮断部２０６を用いて、当該ＥＣＵが接続されている通信ポート２０９を遮断する。さらに、当該ＥＣＵと他のネットワーク（当該ＥＣＵが属するネットワーク以外のネットワーク）との間の通信を遮断してもよい。当該ＥＣＵの全機能が停止することが車両２の安全な走行に与える影響は少ないと考えられるため、図４のステップＳ９９と同様の処理を行う。また、例えば更新種別が「車両走行用セキュリティ更新」の場合、すなわち、当該ＥＣＵが車両２の走行に関する機能を有するＥＣＵである場合には、ＥＣＵ制御部２０５を用いて、当該ＥＣＵを所定のフェールセーフモードで動作させる。さらに、「一般セキュリティ更新」の場合と同様に、当該ＥＣＵが接続されている通信ポート２０９を遮断し、当該ＥＣＵと他のネットワークとの通信を遮断する。これらの処理によって、悪意のあるソフトウェアが入ってきたとしても、他のＥＣＵへ影響を与えることを未然に防ぎ、かつ車両２の走行機能を維持することができる。なお、車両２の走行に関する機能を有するＥＣＵには、例えば車両２のエンジン、トランスミッション、ブレーキ等の制御を行うＥＣＵが該当する。
【００５０】
また、例えば更新種別が「機能更新」や「バグ修正」の場合、取得した更新情報を用いたソフトウェアの更新はセキュリティに関する更新ではなく、脆弱性が低い（セキュリティリスクが小さいか中程度）と考えられる。そのため、これらの更新に該当する場合、当該ソフトウェアの更新が行われるＥＣＵに対しては、当該ＥＣＵの機能制限を行わないか、または一部の機能を制限するアクションを更新前に実施するように決定する。具体的には、例えば「機能更新」の場合には、近距離通信部２０８を用いて、ソフトウェアの更新が行われることをユーザに通知するための画面を携帯端末において表示させる。また、例えば「バグ修正」の場合には、図４のステップＳ９８と同様に、ＥＣＵ制御部２０５を用いて、当該ＥＣＵのコマンドＩＤを停止する。
【００５１】
図５の説明に戻ると、ステップＳ５３において、更新管理部２０２は、ステップＳ５２で決定したアクションを実行する。ステップＳ５３の処理を実行したら、図５のフローチャートを終了して脆弱性監視処理を完了する。
【００５２】
次に、ステップＳ６で実行される更新優先度設定処理の詳細について説明する。図６は、更新優先度設定処理のフローチャートである。
【００５３】
ステップＳ６１において、更新管理部２０２は、選択中のソフトウェアが車両走行用のＥＣＵのソフトウェア、すなわち車両２の走行に直接的に影響する機能を司るＥＣＵのソフトウェアであるか否かを判定する。選択中のソフトウェアが車両走行用のソフトウェアに該当する場合はステップＳ６４に進み、そうでない場合はステップＳ６２に進む。なお、車両走行用のソフトウェアには、例えば車両２の走行に関する機能を有する前述のＥＣＵ、すなわちエンジン、トランスミッション、ブレーキ等の制御を行うＥＣＵで使用されるソフトウェアが該当する。
【００５４】
ステップＳ６２において、更新管理部２０２は、選択中のソフトウェアが車両走行に関するＥＣＵのソフトウェア、すなわち車両２の走行に間接的に影響する機能を司るＥＣＵのソフトウェアであるか否かを判定する。選択中のソフトウェアが車両走行に関するソフトウェアに該当する場合はステップＳ６５に進み、そうでない場合はステップＳ６３に進む。なお、車両走行に関するソフトウェアには、例えば車両２のワイパーや各種メータの制御を行うＥＣＵで使用されるソフトウェアが該当する。
【００５５】
ステップＳ６３において、更新管理部２０２は、選択中のソフトウェアによる更新データ量が所定値よりも多いか否かを判定する。更新データ量が所定値よりも多ければステップＳ６６に進み、少なければステップＳ６７に進む。
【００５６】
ステップＳ６４において、更新管理部２０２は、選択中のソフトウェアによる更新優先度を、最も高い優先度である「Ｈｉｇｈ」に設定する。これにより、車両２の走行に直接的に関連する機能を有するＥＣＵのソフトウェアに対して、他のＥＣＵのソフトウェアよりも更新の優先度を高く設定する。
【００５７】
ステップＳ６５において、更新管理部２０２は、選択中のソフトウェアによる更新優先度を「Ｍｉｄ」に設定する。「Ｍｉｄ」は、「Ｈｉｇｈ」よりも更新優先度が低いことを意味する。これにより、車両２の走行に間接的に関連する機能を有するＥＣＵのソフトウェアに対して、車両２の走行に関連しない機能を有するＥＣＵのソフトウェアよりも更新の優先度を高く設定する。
【００５８】
ステップＳ６６において、更新管理部２０２は、選択中のソフトウェアによる更新優先度を「Ｌｏｗ＋」に設定する。「Ｌｏｗ＋」は、「Ｍｉｄ」よりも更新優先度が低いことを意味する。ステップＳ６７において、更新管理部２０２は、選択中のソフトウェアによる更新優先度を「Ｌｏｗ」に設定する。「Ｌｏｗ」は、更新優先度が最も低いことを意味する。これにより、車両２の走行に関連しない機能を有するＥＣＵのソフトウェアに対して、更新データ量が多いほど更新の優先度を高く設定する。なお、図６の例では更新データ量に応じて「Ｌｏｗ＋」、「Ｌｏｗ」の二段階で更新の優先度を設定したが、三段階以上で更新の優先度を設定してもよい。
【００５９】
ステップＳ６４〜Ｓ６７のいずれかにより更新優先度を設定することで、更新管理部２０２は、各ＥＣＵ３００が有する機能と車両２の走行との関連性と、更新されるソフトウェアのデータ量とのいずれか少なくとも一つに基づいて、ソフトウェアの更新に対する優先度をソフトウェアごとに設定することができる。更新優先度を設定した後、図６のフローチャートを終了して更新優先度設定処理を完了する。
【００６０】
図９は、各ＥＣＵ３００に対する更新優先度およびアクションの設定結果の例を示す図である。図９に示す設定結果リスト９００は、ＥＣＵ番号９０１、ライブラリ名９０２、更新前バージョン９０３、更新後バージョン９０４、更新種別９０５、更新優先度９０６、アクション９０７の各フィールドを有する複数のレコードにより構成される。設定結果リスト９００の各レコードは、更新情報によって更新される各ＥＣＵのソフトウェアにそれぞれ対応している。
【００６１】
ＥＣＵ番号９０１には、各レコードに対応するソフトウェアが用いられるＥＣＵに固有の番号が格納される。ライブラリ名９０２には、各レコードのソフトウェアを表すライブラリの名称が格納される。更新前バージョン９０３、更新後バージョン９０４には、各レコードの更新前後のライブラリのバージョンがそれぞれ格納される。更新種別９０５、アクション９０７は、図８のアクションリスト８００における更新種別８０１、アクション８０３とそれぞれ同様である。更新優先度９０６には、図６の更新優先度設定処理によって設定された各レコードのソフトウェアの更新優先度が格納される。
【００６２】
次に、ステップＳ８で実行される更新処理の詳細について説明する。図７は、更新処理のフローチャートである。
【００６３】
ステップＳ７０１において、更新管理部２０２は、車両２が走行中であるか否かを判定する。車両２が走行中であればステップＳ７０２に進み、走行中でなければ、すなわち停車中であればステップＳ７１１に進む。ステップＳ７０１の処理によって、車両２の走行に影響を与えないＥＣＵのソフトウェア更新を車両２が走行中に行うことができ、さらに、車両２の走行に影響する機能を司るＥＣＵのソフトウェア更新を車両２が走行中でないタイミングで行うことができる。すなわち、車両２が走行中に車両２の走行に影響する機能を司るＥＣＵのソフトウェア更新を行った場合に発生する走行困難等の問題を防止することができる。
【００６４】
ステップＳ７０２において、更新管理部２０２は、ステップＳ２で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Ｌｏｗ＋」であるソフトウェアがあるか否かを判定する。更新優先度が「Ｌｏｗ＋」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップＳ７０３に進み、存在しない場合はステップＳ７０６に進む。
【００６５】
ステップＳ７０３において、更新管理部２０２は、未更新である更新対象ソフトウェアのうち、更新優先度が「Ｌｏｗ＋」であるソフトウェアの更新を行う。ここでは、ステップＳ３で取得した更新情報に含まれる、当該ソフトウェアの更新に用いられるデータを抽出する。そして、抽出したデータをＥＣＵ制御部２０５により当該ソフトウェアに対応するＥＣＵに送信することで、当該ＥＣＵにソフトウェアの更新を実行させる。更新優先度が「Ｌｏｗ＋」である全ての更新対象ソフトウェアの更新が終了したら、ステップＳ７０４に進む。車両２が走行中ではないタイミングで「Ｌｏｗ」よりも先に「Ｌｏｗ＋」の更新を行うことで、車両２のバッテリーが充電中ではないタイミングで更新データ量が多いソフトウェアを優先的に更新できる。これによって、車両２のバッテリーが充電されていない期間において、更新の効率を向上させることができる。すなわち、バッテリーは車両２の走行中に充電され、このときにはバッテリーの電力が枯渇する可能性が低いが、車両２の停車中にはバッテリーが充電されないため、バッテリーの電力が枯渇するおそれがある。このため、車両２の停車中は更新データ量が多いソフトウェアを優先して更新することで、ソフトウェア更新時に行われるＥＣＵの再起動の頻度を低下させ、バッテリーの電力消費が抑制されるようにする。したがって、バッテリー残量を考慮して更新効率を向上させることができる。
【００６６】
ステップＳ７０４において、更新管理部２０２は、ステップＳ７０３でソフトウェアを更新したＥＣＵの中に、図５のステップＳ５３で実行されたアクションによって事前に機能を制限されたＥＣＵが存在するか否かを判定する。機能制限されたＥＣＵが存在する場合はステップＳ７０５に進み、存在しない場合はステップＳ７０６に進む。
【００６７】
ステップＳ７０５において、更新管理部２０２は、ステップＳ７０４の判定対象とされた機能制限ＥＣＵの機能を復活させる。ここでは、当該ＥＣＵに対して実行された通信の遮断やフェールセーフモードでの動作等のアクションを解除することで、当該ＥＣＵの機能を復活させる。これにより、ステップＳ７０３でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。
【００６８】
ステップＳ７０６において、更新管理部２０２は、車両２の走行状態が変化したか否かを判定する。車両２の走行状態が走行中から停車中に変化した場合はステップＳ７０１に戻り、ステップＳ７０１の判定を再実施することで、ステップＳ７１１に進む。一方、車両２の走行状態が走行中のままで変化していない場合は、ステップＳ７０７に進む。
【００６９】
ステップＳ７０７において、更新管理部２０２は、ステップＳ２で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Ｌｏｗ」であるソフトウェアがあるか否かを判定する。更新優先度が「Ｌｏｗ」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップＳ７０８に進み、存在しない場合は図７のフローチャートを終了して更新処理を完了する。
【００７０】
ステップＳ７０８において、更新管理部２０２は、未更新である更新対象ソフトウェアのうち、更新優先度が「Ｌｏｗ」であるソフトウェアの更新を行う。ここでは、ステップＳ７０３と同様の手法により、当該ＥＣＵにソフトウェアの更新を実行させる。更新優先度が「Ｌｏｗ」である全ての更新対象ソフトウェアの更新が終了したら、ステップＳ７０９に進む。
【００７１】
ステップＳ７０９において、更新管理部２０２は、ステップＳ７０８でソフトウェアを更新したＥＣＵの中に、図５のステップＳ５３で実行されたアクションによって事前に機能を制限されたＥＣＵが存在するか否かを判定する。機能制限されたＥＣＵが存在する場合はステップＳ７１０に進み、存在しない場合は図７のフローチャートを終了する。
【００７２】
ステップＳ７１０において、更新管理部２０２は、ステップＳ７０９の判定対象とされた機能制限ＥＣＵの機能を復活させる。ここでは、ステップＳ７０５と同様の手法により当該ＥＣＵの機能を復活させる。これにより、ステップＳ７０８でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。ステップＳ７１０の処理を実行したら、図７のフローチャートを終了する。
【００７３】
ステップＳ７１１において、更新管理部２０２は、ステップＳ２で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Ｈｉｇｈ」であるソフトウェアがあるか否かを判定する。更新優先度が「Ｈｉｇｈ」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップＳ７１２に進み、存在しない場合はステップＳ７１５に進む。
【００７４】
ステップＳ７１２において、更新管理部２０２は、未更新である更新対象ソフトウェアのうち、更新優先度が「Ｈｉｇｈ」であるソフトウェアの更新を行う。ここでは、ステップＳ７０３、Ｓ７０８と同様の手法により、当該ＥＣＵにソフトウェアの更新を実行させる。更新優先度が「Ｈｉｇｈ」である全ての更新対象ソフトウェアの更新が終了したら、ステップＳ７１３に進む。「Ｍｉｄ」よりも先に「Ｈｉｇｈ」の更新を行うことで、車両２の走行に直接的に影響する機能を司るＥＣＵのソフトウェアを優先的に更新することができる。これによって、車両２の安全な走行に関わるセキュリティリスクを早期に改善することができる。
【００７５】
ステップＳ７１３において、更新管理部２０２は、ステップＳ７１２でソフトウェアを更新したＥＣＵの中に、図５のステップＳ５３で実行されたアクションによって事前に機能を制限されたＥＣＵが存在するか否かを判定する。機能制限されたＥＣＵが存在する場合はステップＳ７１４に進み、存在しない場合はステップＳ７１５に進む。
【００７６】
ステップＳ７１４において、更新管理部２０２は、ステップＳ７１３の判定対象とされた機能制限ＥＣＵの機能を復活させる。ここでは、ステップＳ７０５、Ｓ７１０と同様の手法により当該ＥＣＵの機能を復活させる。これにより、ステップＳ７１２でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。
【００７７】
ステップＳ７１５において、更新管理部２０２は、車両２の走行状態が変化したか否かを判定する。車両２の走行状態が停車中から走行中に変化した場合はステップＳ７０１に戻り、ステップＳ７０１の判定を再実施することで、ステップＳ７０２に進む。一方、車両２の走行状態が停車中のままで変化していない場合は、ステップＳ７１６に進む。
【００７８】
ステップＳ７１６において、更新管理部２０２は、ステップＳ２で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Ｍｉｄ」であるソフトウェアがあるか否かを判定する。更新優先度が「Ｍｉｄ」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップＳ７１７に進み、存在しない場合はステップＳ７０２に進む。
【００７９】
ステップＳ７１７において、更新管理部２０２は、未更新である更新対象ソフトウェアのうち、更新優先度が「Ｍｉｄ」であるソフトウェアの更新を行う。ここでは、ステップＳ７０３、Ｓ７０８、Ｓ７１２と同様の手法により、当該ＥＣＵにソフトウェアの更新を実行させる。更新優先度が「Ｍｉｄ」である全ての更新対象ソフトウェアの更新が終了したら、ステップＳ７１８に進む。
【００８０】
ステップＳ７１８において、更新管理部２０２は、ステップＳ７１７でソフトウェアを更新したＥＣＵの中に、図５のステップＳ５３で実行されたアクションによって事前に機能を制限されたＥＣＵが存在するか否かを判定する。機能制限されたＥＣＵが存在する場合はステップＳ７１９に進み、存在しない場合はステップＳ７０２に進む。
【００８１】
ステップＳ７１９において、更新管理部２０２は、ステップＳ７１８の判定対象とされた機能制限ＥＣＵの機能を復活させる。ここでは、ステップＳ７０５、Ｓ７１０、Ｓ７１４と同様の手法により当該ＥＣＵの機能を復活させる。これにより、ステップＳ７１７でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。ステップＳ７１９の処理を実行したら、ステップＳ７０２に進む。
【００８２】
以上説明した図７の更新処理を実行することで、更新管理部２０２は、図６の更新優先度設定処理によって設定した更新優先度に応じて各ソフトウェアの更新を制御することができる。
【００８３】
以上説明した本発明の一実施形態によれば、以下の作用効果を奏する。
【００８４】
（１）車載装置２００は、車両２内のネットワークに接続された制御装置であるＥＣＵ３００と通信可能なものであって、更新管理部２０２を備える。更新管理部２０２は、ＥＣＵ３００のソフトウェアの更新に関する更新情報を取得し（ステップＳ３）、この更新情報に含まれるＥＣＵ３００の脆弱性に関する情報（更新種別）に基づいて、ＥＣＵ３００の機能を制限する（ステップＳ５１〜Ｓ５３）このようにしたので、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することができる。
【００８５】
（２）上記の脆弱性に関する情報は、更新情報を用いたソフトウェアの更新がセキュリティに関する更新であるか否かを表す更新種別の情報である。更新管理部２０２は、ソフトウェアの更新がセキュリティに関する更新であることを脆弱性に関する情報が表しており、かつ、ソフトウェアが更新されるＥＣＵ３００が車両２の走行に関する機能を有するＥＣＵ３００ではない場合（更新種別が「一般セキュリティ更新」の場合）、ＥＣＵ３００とＥＣＵ３００が属するネットワーク以外の他のネットワークとの間の通信を遮断する。このようにしたので、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【００８６】
（３）更新管理部２０２は、ソフトウェアの更新がセキュリティに関する更新であることを脆弱性に関する情報が表しており、かつ、ソフトウェアが更新されるＥＣＵ３００が車両２の走行に関する機能を有するＥＣＵ３００である場合（更新種別が「車両走行用セキュリティ更新」の場合）、ＥＣＵ３００を所定のフェールセーフモードで動作させる。このとき、ＥＣＵ３００をフェールセーフモードで動作させるとともに、ＥＣＵ３００とＥＣＵ３００が属するネットワーク以外の他のネットワークとの間の通信を遮断してもよい。このようにしたので、上記と同様に、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【００８７】
（４）更新管理部２０２は、ソフトウェアの更新がセキュリティに関する更新ではないことを脆弱性に関する情報が表している場合（更新種別が「機能更新」または「バグ修正」の場合）、ＥＣＵ３００の機能制限を行わない、またはＥＣＵ３００が有する機能の一部を停止させる。このようにしたので、上記と同様に、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【００８８】
（５）更新管理部２０２は、ＥＣＵ３００が有する機能と車両２の走行との関連性と、更新されるソフトウェアのデータ量と、のいずれか少なくとも一つに基づいて、ソフトウェアの更新に対する優先度をソフトウェアごとに設定し（ステップＳ６１〜Ｓ６７）、設定した優先度に応じて各ソフトウェアの更新を制御する（ステップＳ７０３、Ｓ７０８、Ｓ７１２、Ｓ７１７）。このようにしたので、更新対象のソフトウェアが複数存在する場合に、優先度の高いものから順に更新することができる。
【００８９】
（６）上記の処理において、更新管理部２０２は、車両２の走行に直接的に関連する機能を有するＥＣＵ３００のソフトウェアに対して、他のソフトウェアよりも優先度を高く設定する（ステップＳ６４）。このようにしたので、車両２の制御にとって重要なソフトウェアに対しては、最も高い更新優先度を設定することができる。
【００９０】
（７）上記の処理において、更新管理部２０２は、車両２の走行に間接的に関連する機能を有するＥＣＵ３００のソフトウェアに対して、車両２の走行に関連しない機能を有するＥＣＵ３００のソフトウェアよりも優先度を高く設定する（ステップＳ６５）。このようにしたので、車両２の走行に影響があるソフトウェアに対しては、影響がないソフトウェアよりも高い更新優先度を設定することができる。
【００９１】
（８）上記の処理において、更新管理部２０２は、車両２の走行に関連しない機能を有するＥＣＵ３００のソフトウェアに対して、更新データ量が多いほど優先度を高く設定する（ステップＳ６６、Ｓ６７）。このようにしたので、車両２の走行に影響がないソフトウェアに対しても、更新優先度を適切に設定することができる。
【００９２】
（９）更新管理部２０２は、ソフトウェアの更新を開始する前にＥＣＵ３００の機能制限を行い（ステップＳ５３）、ソフトウェアの更新を終了したら機能制限を解除する（ステップＳ７０５、Ｓ７１０、Ｓ７１４、Ｓ７１９）。このようにしたので、ＥＣＵのソフトウェア更新時における車両２の制御への影響を最小限に留めることができる。
【００９３】
（１０）車載装置２００は、ＥＣＵ３００の状態を監視してＥＣＵ３００が正常であるか否かを判断する状態監視部２０７を備える。状態監視部２０７は、ＥＣＵ３００が異常であると判断した場合、ＥＣＵ３００の機能を制限する（ステップＳ９８、Ｓ９９）。このようにしたので、異常なＥＣＵが存在する場合に、他のＥＣＵに異常が波及するのを防止し、車両２全体での影響を最小限に留めることができる。
【００９４】
（１１）状態監視部２０７は、ＥＣＵ３００から出力されるデータのエラー数、データ量および通信負荷のいずれか少なくとも一つに基づいて、ＥＣＵ３００が異常であるか否かを判断する（ステップＳ９１〜Ｓ９７）。このようにしたので、悪意のあるソフトウェアを実行することで異常が発生したＥＣＵを確実に発見することができる。
【００９５】
以上説明した実施形態や各種の変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記実施の形態と変形例とを任意に組み合わせて用いてもよい。
【符号の説明】
【００９６】
１：センタサーバ、２：車両、３：ネットワーク、１００：アンテナ部、２００：車載装置、２０１：無線通信部、２０２：更新管理部、２０３：アクションリスト記憶部、２０４：データ転送部、２０５：ＥＣＵ制御部、２０６：通信ポート遮断部、２０７：状態監視部、２０８：近距離通信部、２０９：通信ポート、３００：ＥＣＵ
【図１】
2020181252.tif 000003
【図２】
2020181252.tif 000004
【図３】
2020181252.tif 000005
【図４】
2020181252.tif 000006
【図５】
2020181252.tif 000007
【図６】
2020181252.tif 000008
【図７】
2020181252.tif 000009
【図８】
2020181252.tif 000010
【図９】
2020181252.tif 000011