特開2020-181252(P2020-181252A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クラリオン株式会社の特許一覧

<>
  • 特開2020181252-車載装置 図000003
  • 特開2020181252-車載装置 図000004
  • 特開2020181252-車載装置 図000005
  • 特開2020181252-車載装置 図000006
  • 特開2020181252-車載装置 図000007
  • 特開2020181252-車載装置 図000008
  • 特開2020181252-車載装置 図000009
  • 特開2020181252-車載装置 図000010
  • 特開2020181252-車載装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2020-181252(P2020-181252A)
(43)【公開日】2020年11月5日
(54)【発明の名称】車載装置
(51)【国際特許分類】
   G06F 21/51 20130101AFI20201009BHJP
   B60R 16/02 20060101ALI20201009BHJP
【FI】
   G06F21/51
   B60R16/02 660U
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【全頁数】17
(21)【出願番号】特願2019-82057(P2019-82057)
(22)【出願日】2019年4月23日
(71)【出願人】
【識別番号】000001487
【氏名又は名称】クラリオン株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】特許業務法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】川村 晋司
(57)【要約】
【課題】車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供する。
【解決手段】車載装置200において、更新管理部202は、ECU300のソフトウェアの更新に関する更新情報を取得し、この更新情報に含まれる更新種別の情報に基づいて、ECU300の機能を制限する。ソフトウェアの更新がセキュリティに関する更新であり、かつ、ソフトウェアが更新されるECUが車両2の走行に関する機能を有するECUではない場合、当該ECUと当該ECUが属するネットワーク以外の他のネットワークとの間の通信を遮断する。ソフトウェアの更新がセキュリティに関する更新であり、かつ、ソフトウェアが更新されるECUが車両2の走行に関する機能を有するECUである場合、当該ECUを所定のフェールセーフモードで動作させる。
【選択図】図2
【特許請求の範囲】
【請求項1】
車両内のネットワークに接続された制御装置と通信可能な車載装置であって、
前記制御装置のソフトウェアの更新に関する更新情報を取得し、前記更新情報に含まれる前記制御装置の脆弱性に関する情報に基づいて、前記制御装置の機能を制限する更新管理部を備える車載装置。
【請求項2】
請求項1に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新であることを前記脆弱性に関する情報が表しており、かつ、前記ソフトウェアが更新される前記制御装置が前記車両の走行に関する機能を有する制御装置ではない場合、前記制御装置と前記制御装置が属するネットワーク以外の他のネットワークとの間の通信を遮断する車載装置。
【請求項3】
請求項1に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新であることを前記脆弱性に関する情報が表しており、かつ、前記ソフトウェアが更新される前記制御装置が前記車両の走行に関する機能を有する制御装置である場合、前記制御装置を所定のフェールセーフモードで動作させる車載装置。
【請求項4】
請求項3に記載の車載装置において、
前記更新管理部は、前記制御装置を前記フェールセーフモードで動作させるとともに、前記制御装置と前記制御装置が属するネットワーク以外の他のネットワークとの間の通信を遮断する車載装置。
【請求項5】
請求項1に記載の車載装置において、
前記脆弱性に関する情報は、前記更新情報を用いた前記ソフトウェアの更新がセキュリティに関する更新であるか否かを表す情報であり、
前記更新管理部は、前記ソフトウェアの更新が前記セキュリティに関する更新ではないことを前記脆弱性に関する情報が表している場合、前記制御装置の機能制限を行わない、または前記制御装置が有する機能の一部を停止させる車載装置。
【請求項6】
請求項1に記載の車載装置において、
前記更新管理部は、前記制御装置が有する機能と前記車両の走行との関連性と、更新される前記ソフトウェアのデータ量と、のいずれか少なくとも一つに基づいて、前記ソフトウェアの更新に対する優先度を前記ソフトウェアごとに設定し、設定した前記優先度に応じて各ソフトウェアの更新を制御する車載装置。
【請求項7】
請求項6に記載の車載装置において、
前記更新管理部は、前記車両の走行に直接的に関連する機能を有する制御装置のソフトウェアに対して、他のソフトウェアよりも前記優先度を高く設定する車載装置。
【請求項8】
請求項6に記載の車載装置において、
前記更新管理部は、前記車両の走行に間接的に関連する機能を有する制御装置のソフトウェアに対して、前記車両の走行に関連しない機能を有する制御装置のソフトウェアよりも前記優先度を高く設定する車載装置。
【請求項9】
請求項6に記載の車載装置において、
前記更新管理部は、前記車両の走行に関連しない機能を有する制御装置のソフトウェアに対して、更新データ量が多いほど前記優先度を高く設定する車載装置。
【請求項10】
請求項1に記載の車載装置において、
前記更新管理部は、前記ソフトウェアの更新を開始する前に前記制御装置の機能制限を行い、前記ソフトウェアの更新を終了したら前記機能制限を解除する車載装置。
【請求項11】
請求項1に記載の車載装置において、
前記制御装置の状態を監視して前記制御装置が正常であるか否かを判断する状態監視部を備え、
前記状態監視部は、前記制御装置が異常であると判断した場合、前記制御装置の機能を制限する車載装置。
【請求項12】
請求項11に記載の車載装置において、
前記状態監視部は、前記制御装置から出力されるデータのエラー数、データ量および通信負荷のいずれか少なくとも一つに基づいて、前記制御装置が異常であるか否かを判断する車載装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車載装置に関する。
【背景技術】
【0002】
近年、自動車等の車両に搭載される車載装置は、外部のネットワークと接続されて様々な情報を送受信するようになっている。これに伴い、外部からの攻撃に対するセキュリティ対策が重要になりつつある。
【0003】
本技術分野の背景技術として、特許文献1が知られている。特許文献1には、通信処理部51と、監視部52と、通知部53と、動作ログ作成部54とを備えた車載通信機101が開示されている。この車載通信機において、通信処理部は、中継部111の動作ログおよび中継部による制御部の監視結果に基づく監視ログを取得する。監視部は、中継部の動作を監視する監視処理を行う。通知部は、監視処理において中継部に異常があると判断された場合に、異常がある旨を通知する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018−41200号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術では、悪意のあるプログラムがいずれかの制御部に常駐していたとしても、中継部の動作において異常が検知されない限りは、セキュリティ異常として判断することができない。そのため、車両内のネットワークにおけるセキュリティ対策としては改善の余地がある。
本発明は、上記課題を解決するために、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することを主な目的とする。
【課題を解決するための手段】
【0006】
本発明による車載装置は、車両内のネットワークに接続された制御装置と通信可能なものであって、前記制御装置のソフトウェアの更新に関する更新情報を取得し、前記更新情報に含まれる前記制御装置の脆弱性に関する情報に基づいて、前記制御装置の機能を制限する更新管理部を備える。
【発明の効果】
【0007】
本発明によれば、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することができる。
【図面の簡単な説明】
【0008】
図1】本発明の一実施形態に係る車載装置を含む情報処理システムの構成図
図2】本発明の一実施形態に係る車載装置の構成を示す機能ブロック図
図3】本発明の一実施形態に係る車載装置において実行されるソフトウェア更新制御処理のフローチャート
図4】状態監視処理のフローチャート
図5】脆弱性監視処理のフローチャート
図6】更新優先度設定処理のフローチャート
図7】更新処理のフローチャート
図8】アクションリストの例を示す図
図9】各ECUに対する更新優先度およびアクションの設定結果の例を示す図
【発明を実施するための形態】
【0009】
以下、本発明の一実施形態について図面を参照して説明する。図1は、本発明の一実施形態に係る車載装置を含む情報処理システムの構成図である。図1に示す情報処理システムにおいて、車両2に搭載された車載装置200は、センタサーバ1とネットワーク3を介して互いに接続される。なお、図1では一台の車両2に搭載された車載装置200がセンタサーバ1と接続される例を示しているが、本発明はこれに限定されない。すなわち、任意の数の車両2に本実施形態の車載装置200をそれぞれ搭載し、各車載装置200をセンタサーバ1と接続して図1の情報処理システムを構築することができる。
【0010】
センタサーバ1は、ネットワーク3を介して車載装置200と通信可能な情報機器であり、所定の場所に設置されている。ネットワーク3は、例えばインターネットや携帯電話回線を含んで構成される。
【0011】
車載装置200は、車両2に搭載された各種ECU(Electronic Control Unit)がそれぞれ属するネットワーク間の情報を中継するゲートウェイとしての機能を有するとともに、各ECUのソフトウェアを更新するための更新情報をセンタサーバ1からダウンロードする。そして、ダウンロードした更新情報を用いて、更新対象のECUのソフトウェアを更新するためのソフトウェア更新制御処理を行う。なお、車載装置200が行うソフトウェア更新制御処理の詳細については後述する。車載装置200の一例は、TCU(Telematics Control Unit)である。
【0012】
図2は、本発明の一実施形態に係る車載装置200の構成を示す機能ブロック図である。図2に示すように、車載装置200は、無線通信部201、更新管理部202、アクションリスト記憶部203、データ転送部204、ECU制御部205、通信ポート遮断部206、状態監視部207、近距離通信部208、および複数の通信ポート209を備える。各通信ポート209にはECU300がそれぞれ接続されている。なお、図2では複数のECU300を区別せずに示したが、実際には、各ECU300は異なる機能をそれぞれ有しており、当該機能に応じた処理をそれぞれ実施するとともに、他のECU300との間で当該機能に応じた情報をそれぞれ送受信する。以下では、任意のECU300を単に「ECU」として説明することもある。
【0013】
なお、車載装置200において、更新管理部202は例えばCPU、ROM、RAM等により実現され、アクションリスト記憶部203は例えばSSDやフラッシュメモリ等の記録媒体により実現される。
【0014】
無線通信部201は、車両2に設置されたアンテナ部100と接続されており、アンテナ部100を介して図1のネットワーク3との間で無線通信を行うことにより、センタサーバ1との通信を行う。無線通信部201は、更新管理部202の制御に応じて動作し、センタサーバ1に対して更新情報をリクエストするとともに、センタサーバ1から送信される更新情報を受信してダウンロードする。無線通信部201が受信した更新情報は、更新管理部202に転送される。
【0015】
更新管理部202は、無線通信部201から転送された更新情報を用いて、更新対象のECUのソフトウェアを更新する。このとき更新管理部202は、アクションリスト記憶部203に記憶されているアクションリストを参照し、ソフトウェアの更新に先立って実施する動作(アクション)の内容を決定する。なお、アクションリストの詳細については後述する。
【0016】
データ転送部204は、車両2内に構築されている複数のネットワーク間で送受信されるデータを受け付け、異なるネットワーク間でのデータ転送を行う。各ECU300は、各自が有する機能の種類ごとに異なるネットワークに属しており、同一ネットワーク間で互いに情報を送受信するとともに、異なるネットワーク間ではデータ転送部204を介して情報を送受信する。すなわち、データ転送部204により、車載装置200のゲートウェイ機能が実現される。
【0017】
なお、各ECUが属するネットワークには、例えばCAN(Controller Area Network)、LIN(Local Interconnect Network)、FlexRay、MOST(Media Oriented Systems Transport)、イーサネット(登録商標)、USB等が含まれる。同一種類のネットワークを車両2内に複数設置してもよい。
【0018】
ECU制御部205は、更新管理部202や状態監視部207の制御に応じて、各ECU300の制御を行う。ECU制御部205は、例えば、更新管理部202において決定されたアクションの内容に応じて、ECU300が有する機能の一部を制限したり、ECU300が属するネットワークと他のネットワーク間での通信を遮断したりするための制御を実施する。
【0019】
通信ポート遮断部206は、更新管理部202や状態監視部207の制御に応じて、各ECU300が接続されている通信ポート209を遮断する。通信ポート遮断部206は、例えば、通信ポート209に電源を供給する不図示の電源回路をオフすることにより、通信ポート209を遮断する。対応する通信ポート209が遮断されたECUは、他のネットワークとの間での通信が不可能となるため、機能が制限される。
【0020】
状態監視部207は、各ECU300間で行われる通信の様子を観察することで、各ECU300の状態を監視する。いずれかのECUにおいて異常な通信状態が検出された場合、状態監視部207は、当該ECUの状態が異常であると判断し、当該ECUの機能を制限する。これにより、他のECUに異常が波及するのを防止し、車両2全体での影響を最小限に留める。
【0021】
近距離通信部208は、更新管理部202の制御に応じて、車両2に搭乗しているユーザが所持する携帯端末との間で通信を行う。近距離通信部208は、例えば、更新管理部202において決定されたアクションの内容に応じて、所定の文字情報や画像情報を携帯端末へ送信し、その内容を携帯端末の画面に表示させる。近距離通信部208と携帯端末との間の通信は、例えばブルートゥース(登録商標)や無線LAN、電話回線等を用いて行うことができる。
【0022】
図3は、本発明の一実施形態に係る車載装置200において実行されるソフトウェア更新制御処理のフローチャートである。本実施形態において、車載装置200は、例えば不図示のCPUにおいて所定のプログラムを実行することにより、図3のフローチャートに従ってソフトウェア更新制御処理を行う。
【0023】
ステップS1において、更新管理部202は、各ECU300が現在使用しているソフトウェアのバージョンを取得する。このとき更新管理部202は、例えばECU制御部205を用いて、各ECU300に対してソフトウェアのバージョンの問い合わせを行い、この問い合わせに応じて各ECU300から返信される情報をECU制御部205を介して取得することで、各ECU300のソフトウェアのバージョンを取得する。
【0024】
ステップS2において、更新管理部202は、各ECU300に対するソフトウェアの更新の有無を判定する。ここでは、例えば無線通信部201を用いて、ステップS1で取得した各ECU300のソフトウェアのバージョンをセンタサーバ1に送信し、センタサーバ1に対して更新情報のリクエストを行う。このリクエストに応じてセンタサーバ1から送信される更新情報の有無により、ソフトウェアの更新の有無を判定する。あるいは、各ECU300最新のソフトウェアのバージョンを示す情報をセンタサーバ1から受信し、その情報とステップS1で取得した各ECU300のソフトウェアのバージョンとを照合することにより、ソフトウェアの更新の有無を判定してもよい。その結果、いずれか少なくとも一つのECUについてソフトウェアの更新があると判定した場合はステップS3に進み、全てのECUについてソフトウェアの更新がないと判定した場合はステップS9に進む。
【0025】
ステップS3において、更新管理部202は、ステップS2でソフトウェアの更新があると判定した各ECU300についての更新情報を、無線通信部201によりセンタサーバ1からダウンロードして取得する。なお、ここでダウンロードされる更新情報には、更新対象の各ECUのソフトウェアを更新するための情報に加えて、更新種別の情報が含まれている。この更新種別の情報は、後述のステップS5で実施される脆弱性監視処理において、更新対象の各ECUの脆弱性に関する情報として用いられる。
【0026】
ステップS4において、更新管理部202は、ステップS3で取得した更新情報に基づき、ステップS2で判定した各ECU300の更新対象ソフトウェアの中で、いずれかのソフトウェアを選択する。
【0027】
ステップS5において、更新管理部202は、ステップS4で選択したソフトウェアに対して、当該ソフトウェアの更新に伴う脆弱性を監視するための脆弱性監視処理を実行する。この脆弱性監視処理については、後で図5のフローチャートを参照して詳細に説明する。
【0028】
ステップS6において、更新管理部202は、ステップS4で選択したソフトウェアに対して、当該ソフトウェアの更新に対する優先度を設定するための更新優先度設定処理を実行する。この更新優先度設定処理については、後で図6のフローチャートを参照して詳細に説明する。
【0029】
ステップS7において、更新管理部202は、ステップS2で更新ありと判定した全ての更新対象ソフトウェアをステップS4において選択済みであるか否かを判定する。未選択の更新対象ソフトウェアがある場合はステップS4に戻り、その中でいずれかのソフトウェアをステップS4で選択した後、ステップS5、S6の各処理を実行する。全ての更新対象ソフトウェアを選択済みである場合は、ステップS8に進む。
【0030】
ステップS8において、更新管理部202は、ステップS6で設定した優先度に従って各ECU300の更新対象ソフトウェアの更新を行うための更新処理を実行する。この更新処理については、後で図7のフローチャートを参照して詳細に説明する。
【0031】
ステップS2からステップS9に進んだ場合、ステップS9において、状態監視部207は、各ECU300の状態を監視するための状態監視処理を実行する。この状態監視処理については、後で図4のフローチャートを参照して詳細に説明する。
【0032】
ステップS8またはS9の処理を実行したら、図3のソフトウェア更新制御処理のフローチャートを終了する。
【0033】
次に、ステップS9で実行される状態監視処理の詳細について説明する。図4は、状態監視処理のフローチャートである。
【0034】
ステップS91において、状態監視部207は、各ECU300から受信データのエラー数を取得する。ここでは、例えば各ECU300が他のECUから受信したデータのエラーチェックを実施しているときに、エラーがあったデータの送信元であるECU(以下、「異常発生ECU」と称する)の情報を、所定時間内でのエラー数の情報とともに各ECU300から取得する。これにより、いずれかのECUが悪意のあるソフトウェアを実行して異常発生ECUとなった場合、その異常発生ECUによる不正なデータの送信回数が、各ECU300からエラー数として取得される。
【0035】
ステップS92において、状態監視部207は、ステップS91で取得したエラー数が所定の閾値A以下であるか否かを判定する。エラー数が閾値A以下であればステップS93に進み、閾値Aよりも大きければステップS97に進む。
【0036】
ステップS93において、状態監視部207は、各ECU300の通信データ量を取得する。ここでは、例えば各ECU300から他のECUに対して所定時間内に送信されたデータ量を、ECUごとに取得する。これにより、いずれかのECUが悪意のあるソフトウェアを実行して他のECUに大量のデータを送信し続けた場合、そのデータ量が取得される。
【0037】
ステップS94において、状態監視部207は、ステップS93で取得した通信データ量が所定の閾値以下であるか否かを判定する。通信データ量が閾値以下であればステップS95に進み、閾値よりも大きければステップS98に進む。
【0038】
ステップS95において、状態監視部207は、各ECU300のデータトラフィックを取得する。ここでは、例えば各ECU300から他のECUに対して送信されたデータの通信負荷、すなわち既定の帯域幅を有するネットワークでの占有率を、ECUごとに取得する。これにより、いずれかのECUが悪意のあるソフトウェアを実行して他のECUに大量のデータを送信し続けることでネットワークが占有された場合、その占有率が通信負荷として取得される。
【0039】
ステップS96において、状態監視部207は、ステップS95で取得したデータトラフィックが所定時間X秒の間に継続して100%未満であるか否かを判定する。データトラフィックがX秒間継続して100%未満であれば、状態監視部207は、異常状態であるECUが存在しないと判断し、図4のフローチャートを終了して状態監視処理を完了する。この場合、状態監視部207は、いずれのECUに対しても機能制限を行わない。一方、ステップS96でデータトラフィックがX秒間継続して100%に達した場合は、ステップS99に進む。
【0040】
ステップS97において、状態監視部207は、ステップS91で取得したエラー数が所定の閾値B以下であるか否かを判定する。なお、ステップS97の判定で用いられる閾値Bは、前述のステップS92の判定で用いられる閾値Aよりも大きく、A<Bの関係が成り立つ。エラー数が閾値Aより大きく閾値B以下であればステップS98に進み、閾値Bよりも大きければステップS99に進む。
【0041】
ステップS98において、状態監視部207は、ECU制御部205を制御して、ステップS94で通信データ量が閾値よりも大きいと判定したECU、またはステップS97でエラー数が閾値Bよりも大きいと判定したECUのコマンドIDを停止する。コマンドIDとは、データ送信元のECUを識別するための符号であり、各ECU300からの送信データに含まれている。ステップS98では、上記の判定が行われたECUに対応するコマンドIDを含むデータを無効化し、各ECU300が他のECUから当該データを受信しても破棄するように、ECU制御部205から各ECU300に対して指令を出力する。これにより、状態監視の結果異常であると判断したECUについて、そのECUの機能の一部を制限することができる。なお、ステップS98の処理を実行した後、状態監視部207はステップS95に進み、ステップS95で前述のような処理を行う。
【0042】
ステップS99において、状態監視部207は、通信ポート遮断部206を制御して、ステップS96でデータトラフィックがX秒間継続して100%であると判定したECU、またはステップS97でエラー数が閾値Bよりも大きいと判定したECUの通信ポートを遮断する。ここでは、通信ポート遮断部206により、上記の判定が行われたECUが接続されている通信ポート209を遮断して、当該ECUによる他のネットワークへのデータの送受信が行われないようにする。これにより、状態監視の結果異常であると判断したECUについて、そのECUの機能の一部を制限することができ、既に車内へ入り込んだ悪意のあるソフトウェアが他のECUへ影響を与えることを防ぐことができる。ステップS99の処理を実行したら、図4のフローチャートを終了して状態監視処理を完了する。
【0043】
次に、ステップS5で実行される脆弱性監視処理の詳細について説明する。図5は、脆弱性監視処理のフローチャートである。
【0044】
ステップS51において、更新管理部202は、図3のステップS3で取得した更新情報から、選択中のソフトウェアの更新種別を取得する。この更新種別の情報は、前述のように、選択中のソフトウェアに対応するECUの脆弱性に関する情報に相当する。
【0045】
ステップS52において、更新管理部202は、ステップS51で取得した更新種別に対応するアクションを決定する。ここでは、アクションリスト記憶部203に記憶されているアクションリストを参照し、更新種別に対応するアクションを決定する。
【0046】
図8は、アクションリスト記憶部203に記憶されているアクションリストの例を示す図である。図8に示すアクションリスト800は、更新種別801、脆弱性802、アクション803、実行先804、実行方法805、実行結果通知806の各フィールドを有する複数のレコードにより構成される。
【0047】
更新種別801には、各レコードに対応する更新種別の内容が格納される。脆弱性802には、各レコードの脆弱性、すなわち更新種別ごとのリスクの大きさが格納される。アクション803には、各レコードに対して実行されるアクション、すなわち脆弱性への対処策としての動作内容が格納される。実行先804、実行方法805には、各レコードのアクションの具体的な実行先と実行方法がそれぞれ格納される。実行結果通知806には、各アクションの実行後に行われるユーザへの通知方法が格納される。
【0048】
図5のステップS52では、ステップS3で取得した更新情報に含まれる更新種別の情報と、アクションリスト800の更新種別801とを比較し、これらが一致するレコードをアクションリスト800において特定する。そして、特定したレコードの各フィールド803〜806の内容を参照することで、当該更新種別に対応する具体的なアクションの内容を決定する。
【0049】
例えば、更新種別が「一般セキュリティ更新」や「車両走行用セキュリティ更新」の場合、取得した更新情報を用いたソフトウェアの更新はセキュリティに関する更新であり、脆弱性が高い(セキュリティリスクが大きい)と考えられる。そのため、これらの更新に該当する場合、当該ソフトウェアの更新が行われるECUに対しては、他のECUや車両2の走行に対する影響を最小限に留めるため、当該ECUの機能の一部を制限するアクションを更新前に実施するように決定する。具体的には、例えば更新種別が「一般セキュリティ更新」の場合、すなわち、当該ECUが車両2の走行に関する機能を有するECUではない場合には、図4のステップS99と同様に、通信ポート遮断部206を用いて、当該ECUが接続されている通信ポート209を遮断する。さらに、当該ECUと他のネットワーク(当該ECUが属するネットワーク以外のネットワーク)との間の通信を遮断してもよい。当該ECUの全機能が停止することが車両2の安全な走行に与える影響は少ないと考えられるため、図4のステップS99と同様の処理を行う。また、例えば更新種別が「車両走行用セキュリティ更新」の場合、すなわち、当該ECUが車両2の走行に関する機能を有するECUである場合には、ECU制御部205を用いて、当該ECUを所定のフェールセーフモードで動作させる。さらに、「一般セキュリティ更新」の場合と同様に、当該ECUが接続されている通信ポート209を遮断し、当該ECUと他のネットワークとの通信を遮断する。これらの処理によって、悪意のあるソフトウェアが入ってきたとしても、他のECUへ影響を与えることを未然に防ぎ、かつ車両2の走行機能を維持することができる。なお、車両2の走行に関する機能を有するECUには、例えば車両2のエンジン、トランスミッション、ブレーキ等の制御を行うECUが該当する。
【0050】
また、例えば更新種別が「機能更新」や「バグ修正」の場合、取得した更新情報を用いたソフトウェアの更新はセキュリティに関する更新ではなく、脆弱性が低い(セキュリティリスクが小さいか中程度)と考えられる。そのため、これらの更新に該当する場合、当該ソフトウェアの更新が行われるECUに対しては、当該ECUの機能制限を行わないか、または一部の機能を制限するアクションを更新前に実施するように決定する。具体的には、例えば「機能更新」の場合には、近距離通信部208を用いて、ソフトウェアの更新が行われることをユーザに通知するための画面を携帯端末において表示させる。また、例えば「バグ修正」の場合には、図4のステップS98と同様に、ECU制御部205を用いて、当該ECUのコマンドIDを停止する。
【0051】
図5の説明に戻ると、ステップS53において、更新管理部202は、ステップS52で決定したアクションを実行する。ステップS53の処理を実行したら、図5のフローチャートを終了して脆弱性監視処理を完了する。
【0052】
次に、ステップS6で実行される更新優先度設定処理の詳細について説明する。図6は、更新優先度設定処理のフローチャートである。
【0053】
ステップS61において、更新管理部202は、選択中のソフトウェアが車両走行用のECUのソフトウェア、すなわち車両2の走行に直接的に影響する機能を司るECUのソフトウェアであるか否かを判定する。選択中のソフトウェアが車両走行用のソフトウェアに該当する場合はステップS64に進み、そうでない場合はステップS62に進む。なお、車両走行用のソフトウェアには、例えば車両2の走行に関する機能を有する前述のECU、すなわちエンジン、トランスミッション、ブレーキ等の制御を行うECUで使用されるソフトウェアが該当する。
【0054】
ステップS62において、更新管理部202は、選択中のソフトウェアが車両走行に関するECUのソフトウェア、すなわち車両2の走行に間接的に影響する機能を司るECUのソフトウェアであるか否かを判定する。選択中のソフトウェアが車両走行に関するソフトウェアに該当する場合はステップS65に進み、そうでない場合はステップS63に進む。なお、車両走行に関するソフトウェアには、例えば車両2のワイパーや各種メータの制御を行うECUで使用されるソフトウェアが該当する。
【0055】
ステップS63において、更新管理部202は、選択中のソフトウェアによる更新データ量が所定値よりも多いか否かを判定する。更新データ量が所定値よりも多ければステップS66に進み、少なければステップS67に進む。
【0056】
ステップS64において、更新管理部202は、選択中のソフトウェアによる更新優先度を、最も高い優先度である「High」に設定する。これにより、車両2の走行に直接的に関連する機能を有するECUのソフトウェアに対して、他のECUのソフトウェアよりも更新の優先度を高く設定する。
【0057】
ステップS65において、更新管理部202は、選択中のソフトウェアによる更新優先度を「Mid」に設定する。「Mid」は、「High」よりも更新優先度が低いことを意味する。これにより、車両2の走行に間接的に関連する機能を有するECUのソフトウェアに対して、車両2の走行に関連しない機能を有するECUのソフトウェアよりも更新の優先度を高く設定する。
【0058】
ステップS66において、更新管理部202は、選択中のソフトウェアによる更新優先度を「Low+」に設定する。「Low+」は、「Mid」よりも更新優先度が低いことを意味する。ステップS67において、更新管理部202は、選択中のソフトウェアによる更新優先度を「Low」に設定する。「Low」は、更新優先度が最も低いことを意味する。これにより、車両2の走行に関連しない機能を有するECUのソフトウェアに対して、更新データ量が多いほど更新の優先度を高く設定する。なお、図6の例では更新データ量に応じて「Low+」、「Low」の二段階で更新の優先度を設定したが、三段階以上で更新の優先度を設定してもよい。
【0059】
ステップS64〜S67のいずれかにより更新優先度を設定することで、更新管理部202は、各ECU300が有する機能と車両2の走行との関連性と、更新されるソフトウェアのデータ量とのいずれか少なくとも一つに基づいて、ソフトウェアの更新に対する優先度をソフトウェアごとに設定することができる。更新優先度を設定した後、図6のフローチャートを終了して更新優先度設定処理を完了する。
【0060】
図9は、各ECU300に対する更新優先度およびアクションの設定結果の例を示す図である。図9に示す設定結果リスト900は、ECU番号901、ライブラリ名902、更新前バージョン903、更新後バージョン904、更新種別905、更新優先度906、アクション907の各フィールドを有する複数のレコードにより構成される。設定結果リスト900の各レコードは、更新情報によって更新される各ECUのソフトウェアにそれぞれ対応している。
【0061】
ECU番号901には、各レコードに対応するソフトウェアが用いられるECUに固有の番号が格納される。ライブラリ名902には、各レコードのソフトウェアを表すライブラリの名称が格納される。更新前バージョン903、更新後バージョン904には、各レコードの更新前後のライブラリのバージョンがそれぞれ格納される。更新種別905、アクション907は、図8のアクションリスト800における更新種別801、アクション803とそれぞれ同様である。更新優先度906には、図6の更新優先度設定処理によって設定された各レコードのソフトウェアの更新優先度が格納される。
【0062】
次に、ステップS8で実行される更新処理の詳細について説明する。図7は、更新処理のフローチャートである。
【0063】
ステップS701において、更新管理部202は、車両2が走行中であるか否かを判定する。車両2が走行中であればステップS702に進み、走行中でなければ、すなわち停車中であればステップS711に進む。ステップS701の処理によって、車両2の走行に影響を与えないECUのソフトウェア更新を車両2が走行中に行うことができ、さらに、車両2の走行に影響する機能を司るECUのソフトウェア更新を車両2が走行中でないタイミングで行うことができる。すなわち、車両2が走行中に車両2の走行に影響する機能を司るECUのソフトウェア更新を行った場合に発生する走行困難等の問題を防止することができる。
【0064】
ステップS702において、更新管理部202は、ステップS2で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Low+」であるソフトウェアがあるか否かを判定する。更新優先度が「Low+」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップS703に進み、存在しない場合はステップS706に進む。
【0065】
ステップS703において、更新管理部202は、未更新である更新対象ソフトウェアのうち、更新優先度が「Low+」であるソフトウェアの更新を行う。ここでは、ステップS3で取得した更新情報に含まれる、当該ソフトウェアの更新に用いられるデータを抽出する。そして、抽出したデータをECU制御部205により当該ソフトウェアに対応するECUに送信することで、当該ECUにソフトウェアの更新を実行させる。更新優先度が「Low+」である全ての更新対象ソフトウェアの更新が終了したら、ステップS704に進む。車両2が走行中ではないタイミングで「Low」よりも先に「Low+」の更新を行うことで、車両2のバッテリーが充電中ではないタイミングで更新データ量が多いソフトウェアを優先的に更新できる。これによって、車両2のバッテリーが充電されていない期間において、更新の効率を向上させることができる。すなわち、バッテリーは車両2の走行中に充電され、このときにはバッテリーの電力が枯渇する可能性が低いが、車両2の停車中にはバッテリーが充電されないため、バッテリーの電力が枯渇するおそれがある。このため、車両2の停車中は更新データ量が多いソフトウェアを優先して更新することで、ソフトウェア更新時に行われるECUの再起動の頻度を低下させ、バッテリーの電力消費が抑制されるようにする。したがって、バッテリー残量を考慮して更新効率を向上させることができる。
【0066】
ステップS704において、更新管理部202は、ステップS703でソフトウェアを更新したECUの中に、図5のステップS53で実行されたアクションによって事前に機能を制限されたECUが存在するか否かを判定する。機能制限されたECUが存在する場合はステップS705に進み、存在しない場合はステップS706に進む。
【0067】
ステップS705において、更新管理部202は、ステップS704の判定対象とされた機能制限ECUの機能を復活させる。ここでは、当該ECUに対して実行された通信の遮断やフェールセーフモードでの動作等のアクションを解除することで、当該ECUの機能を復活させる。これにより、ステップS703でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。
【0068】
ステップS706において、更新管理部202は、車両2の走行状態が変化したか否かを判定する。車両2の走行状態が走行中から停車中に変化した場合はステップS701に戻り、ステップS701の判定を再実施することで、ステップS711に進む。一方、車両2の走行状態が走行中のままで変化していない場合は、ステップS707に進む。
【0069】
ステップS707において、更新管理部202は、ステップS2で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Low」であるソフトウェアがあるか否かを判定する。更新優先度が「Low」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップS708に進み、存在しない場合は図7のフローチャートを終了して更新処理を完了する。
【0070】
ステップS708において、更新管理部202は、未更新である更新対象ソフトウェアのうち、更新優先度が「Low」であるソフトウェアの更新を行う。ここでは、ステップS703と同様の手法により、当該ECUにソフトウェアの更新を実行させる。更新優先度が「Low」である全ての更新対象ソフトウェアの更新が終了したら、ステップS709に進む。
【0071】
ステップS709において、更新管理部202は、ステップS708でソフトウェアを更新したECUの中に、図5のステップS53で実行されたアクションによって事前に機能を制限されたECUが存在するか否かを判定する。機能制限されたECUが存在する場合はステップS710に進み、存在しない場合は図7のフローチャートを終了する。
【0072】
ステップS710において、更新管理部202は、ステップS709の判定対象とされた機能制限ECUの機能を復活させる。ここでは、ステップS705と同様の手法により当該ECUの機能を復活させる。これにより、ステップS708でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。ステップS710の処理を実行したら、図7のフローチャートを終了する。
【0073】
ステップS711において、更新管理部202は、ステップS2で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「High」であるソフトウェアがあるか否かを判定する。更新優先度が「High」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップS712に進み、存在しない場合はステップS715に進む。
【0074】
ステップS712において、更新管理部202は、未更新である更新対象ソフトウェアのうち、更新優先度が「High」であるソフトウェアの更新を行う。ここでは、ステップS703、S708と同様の手法により、当該ECUにソフトウェアの更新を実行させる。更新優先度が「High」である全ての更新対象ソフトウェアの更新が終了したら、ステップS713に進む。「Mid」よりも先に「High」の更新を行うことで、車両2の走行に直接的に影響する機能を司るECUのソフトウェアを優先的に更新することができる。これによって、車両2の安全な走行に関わるセキュリティリスクを早期に改善することができる。
【0075】
ステップS713において、更新管理部202は、ステップS712でソフトウェアを更新したECUの中に、図5のステップS53で実行されたアクションによって事前に機能を制限されたECUが存在するか否かを判定する。機能制限されたECUが存在する場合はステップS714に進み、存在しない場合はステップS715に進む。
【0076】
ステップS714において、更新管理部202は、ステップS713の判定対象とされた機能制限ECUの機能を復活させる。ここでは、ステップS705、S710と同様の手法により当該ECUの機能を復活させる。これにより、ステップS712でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。
【0077】
ステップS715において、更新管理部202は、車両2の走行状態が変化したか否かを判定する。車両2の走行状態が停車中から走行中に変化した場合はステップS701に戻り、ステップS701の判定を再実施することで、ステップS702に進む。一方、車両2の走行状態が停車中のままで変化していない場合は、ステップS716に進む。
【0078】
ステップS716において、更新管理部202は、ステップS2で判定した更新対象ソフトウェアのうち未更新のソフトウェアの中に、更新優先度が「Mid」であるソフトウェアがあるか否かを判定する。更新優先度が「Mid」のソフトウェアが未更新のソフトウェアの中に存在する場合はステップS717に進み、存在しない場合はステップS702に進む。
【0079】
ステップS717において、更新管理部202は、未更新である更新対象ソフトウェアのうち、更新優先度が「Mid」であるソフトウェアの更新を行う。ここでは、ステップS703、S708、S712と同様の手法により、当該ECUにソフトウェアの更新を実行させる。更新優先度が「Mid」である全ての更新対象ソフトウェアの更新が終了したら、ステップS718に進む。
【0080】
ステップS718において、更新管理部202は、ステップS717でソフトウェアを更新したECUの中に、図5のステップS53で実行されたアクションによって事前に機能を制限されたECUが存在するか否かを判定する。機能制限されたECUが存在する場合はステップS719に進み、存在しない場合はステップS702に進む。
【0081】
ステップS719において、更新管理部202は、ステップS718の判定対象とされた機能制限ECUの機能を復活させる。ここでは、ステップS705、S710、S714と同様の手法により当該ECUの機能を復活させる。これにより、ステップS717でソフトウェアの更新を終了したら、更新前に行われた機能制限が解除されるようにする。ステップS719の処理を実行したら、ステップS702に進む。
【0082】
以上説明した図7の更新処理を実行することで、更新管理部202は、図6の更新優先度設定処理によって設定した更新優先度に応じて各ソフトウェアの更新を制御することができる。
【0083】
以上説明した本発明の一実施形態によれば、以下の作用効果を奏する。
【0084】
(1)車載装置200は、車両2内のネットワークに接続された制御装置であるECU300と通信可能なものであって、更新管理部202を備える。更新管理部202は、ECU300のソフトウェアの更新に関する更新情報を取得し(ステップS3)、この更新情報に含まれるECU300の脆弱性に関する情報(更新種別)に基づいて、ECU300の機能を制限する(ステップS51〜S53)このようにしたので、車両内のネットワークにおけるセキュリティを適切に確保する車載装置を提供することができる。
【0085】
(2)上記の脆弱性に関する情報は、更新情報を用いたソフトウェアの更新がセキュリティに関する更新であるか否かを表す更新種別の情報である。更新管理部202は、ソフトウェアの更新がセキュリティに関する更新であることを脆弱性に関する情報が表しており、かつ、ソフトウェアが更新されるECU300が車両2の走行に関する機能を有するECU300ではない場合(更新種別が「一般セキュリティ更新」の場合)、ECU300とECU300が属するネットワーク以外の他のネットワークとの間の通信を遮断する。このようにしたので、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【0086】
(3)更新管理部202は、ソフトウェアの更新がセキュリティに関する更新であることを脆弱性に関する情報が表しており、かつ、ソフトウェアが更新されるECU300が車両2の走行に関する機能を有するECU300である場合(更新種別が「車両走行用セキュリティ更新」の場合)、ECU300を所定のフェールセーフモードで動作させる。このとき、ECU300をフェールセーフモードで動作させるとともに、ECU300とECU300が属するネットワーク以外の他のネットワークとの間の通信を遮断してもよい。このようにしたので、上記と同様に、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【0087】
(4)更新管理部202は、ソフトウェアの更新がセキュリティに関する更新ではないことを脆弱性に関する情報が表している場合(更新種別が「機能更新」または「バグ修正」の場合)、ECU300の機能制限を行わない、またはECU300が有する機能の一部を停止させる。このようにしたので、上記と同様に、ソフトウェアの更新に係る脆弱性に応じて適切な対策を講じることができる。
【0088】
(5)更新管理部202は、ECU300が有する機能と車両2の走行との関連性と、更新されるソフトウェアのデータ量と、のいずれか少なくとも一つに基づいて、ソフトウェアの更新に対する優先度をソフトウェアごとに設定し(ステップS61〜S67)、設定した優先度に応じて各ソフトウェアの更新を制御する(ステップS703、S708、S712、S717)。このようにしたので、更新対象のソフトウェアが複数存在する場合に、優先度の高いものから順に更新することができる。
【0089】
(6)上記の処理において、更新管理部202は、車両2の走行に直接的に関連する機能を有するECU300のソフトウェアに対して、他のソフトウェアよりも優先度を高く設定する(ステップS64)。このようにしたので、車両2の制御にとって重要なソフトウェアに対しては、最も高い更新優先度を設定することができる。
【0090】
(7)上記の処理において、更新管理部202は、車両2の走行に間接的に関連する機能を有するECU300のソフトウェアに対して、車両2の走行に関連しない機能を有するECU300のソフトウェアよりも優先度を高く設定する(ステップS65)。このようにしたので、車両2の走行に影響があるソフトウェアに対しては、影響がないソフトウェアよりも高い更新優先度を設定することができる。
【0091】
(8)上記の処理において、更新管理部202は、車両2の走行に関連しない機能を有するECU300のソフトウェアに対して、更新データ量が多いほど優先度を高く設定する(ステップS66、S67)。このようにしたので、車両2の走行に影響がないソフトウェアに対しても、更新優先度を適切に設定することができる。
【0092】
(9)更新管理部202は、ソフトウェアの更新を開始する前にECU300の機能制限を行い(ステップS53)、ソフトウェアの更新を終了したら機能制限を解除する(ステップS705、S710、S714、S719)。このようにしたので、ECUのソフトウェア更新時における車両2の制御への影響を最小限に留めることができる。
【0093】
(10)車載装置200は、ECU300の状態を監視してECU300が正常であるか否かを判断する状態監視部207を備える。状態監視部207は、ECU300が異常であると判断した場合、ECU300の機能を制限する(ステップS98、S99)。このようにしたので、異常なECUが存在する場合に、他のECUに異常が波及するのを防止し、車両2全体での影響を最小限に留めることができる。
【0094】
(11)状態監視部207は、ECU300から出力されるデータのエラー数、データ量および通信負荷のいずれか少なくとも一つに基づいて、ECU300が異常であるか否かを判断する(ステップS91〜S97)。このようにしたので、悪意のあるソフトウェアを実行することで異常が発生したECUを確実に発見することができる。
【0095】
以上説明した実施形態や各種の変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記実施の形態と変形例とを任意に組み合わせて用いてもよい。
【符号の説明】
【0096】
1:センタサーバ、2:車両、3:ネットワーク、100:アンテナ部、200:車載装置、201:無線通信部、202:更新管理部、203:アクションリスト記憶部、204:データ転送部、205:ECU制御部、206:通信ポート遮断部、207:状態監視部、208:近距離通信部、209:通信ポート、300:ECU
図1
図2
図3
図4
図5
図6
図7
図8
図9