(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-19
(45)【発行日】2025-05-27
(54)【発明の名称】車載通信システム,センタ装置,車両側システム及び車載通信の更新データ検証方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20250520BHJP
G06F 21/57 20130101ALI20250520BHJP
【FI】
G06F8/65
G06F21/57 320
(21)【出願番号】P 2021107834
(22)【出願日】2021-06-29
【審査請求日】2023-12-01
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】東松 古都
(72)【発明者】
【氏名】吉見 英朗
(72)【発明者】
【氏名】安部 真晃
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2020-027666(JP,A)
【文献】特開平11-053193(JP,A)
【文献】特開2017-149323(JP,A)
【文献】特開2016-170740(JP,A)
【文献】特開2010-282385(JP,A)
【文献】特開2020-107355(JP,A)
【文献】寺岡秀敏 ほか,"ネットワーク接続された組込みシステムの拡張",情報処理学会論文誌コンシューマ・デバイス&システム(CDS),一般社団法人情報処理学会,2021年03月11日,Vol. 11,No. 1,p. 1-13,ISSN 2186-5728
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60-8/658
G06F 21/57
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
車両に搭載される電子制御装置(22)に、ストリーミング方式で更新データを配信パッケージとして送信するセンタ装置(2)と、
前記車両に搭載され、前記配信パッケージを受信して、前記電子制御装置に更新データを転送するマスタ装置(21)と、
このマスタ装置より転送された更新データを記憶部に書き込む前記電子制御装置とを備え、
前記センタ装置は、前記更新データについて計算したハッシュ値も前記マスタ装置に送信し、
前記電子制御装置は、前記更新データについてハッシュ値を計算すると、前記ハッシュ値を前記マスタ装置に送信し、
前記マスタ装置は、前記センタ装置より送信されたハッシュ値と、前記電子制御装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車載通信システム。
【請求項2】
前記センタ装置は、複数の電子制御装置にそれぞれ更新データを書き込ませる際には、各更新データについて計算した複数のハッシュ値も前記マスタ装置に送信し、
前記マスタ装置は、各更新データを各電子制御装置にそれぞれ転送し、
各電子制御装置は、前記更新データについてハッシュ値を計算すると、前記ハッシュ値を前記マスタ装置に送信し、
前記マスタ装置は、複数の電子制御装置より送信されたハッシュ値を、前記センタ装置より送信された対応するハッシュ値と比較する請求項1記載の車載通信システム。
【請求項3】
前記センタ装置は、前記複数のハッシュ値について計算したハッシュ値を上位ハッシュ値として、前記上位ハッシュ値も前記マスタ装置に送信し、
前記マスタ装置は、複数の電子制御装置より受信した複数のハッシュ値について上位ハッシュ値を計算すると、計算した上位ハッシュ値を、前記センタ装置より送信された上位ハッシュ値と比較する請求項2記載の車載通信システム。
【請求項4】
前記センタ装置は、複数の電子制御装置の一部についてストレージ方式で更新データを送信する際には、前記更新データと前記更新データについて計算したハッシュ値とを前記マスタ装置に送信し、
前記マスタ装置は、前記更新データについてハッシュ値を計算し、前記センタ装置より送信された対応するハッシュ値と比較して、前記更新データの完全性を検証し、
前記更新データの完全性が検証されると、前記ストレージ方式に対応する電子制御装置に更新データを転送する請求項2又は3記載の車載通信システム。
【請求項5】
前記センタ装置は、少なくともデータ取得先のアドレス,データ名及びデータサイズ,更新データの配信先である電子制御装置のID並びにデータ転送方式の情報を含むダウンロードメタデータに、前記ハッシュ値を加えて前記マスタ装置に送信する請求項1から4の何れか一項に記載の車載通信システム。
【請求項6】
前記センタ装置より、前記更新データを受信可能な携帯型情報端末を備え、
前記マスタ装置は、前記携帯型情報端末を介しても、前記更新データを受信可能である請求項1から5の何れか一項に記載の車載通信システム。
【請求項7】
車両に搭載される電子制御装置に、ストリーミング方式で更新データを配信パッケージとして送信するセンタ装置と、
前記配信パッケージを受信して、前記電子制御装置に更新データを転送するマスタ装置と、
このマスタ装置より転送された更新データを記憶部に書き込む前記電子制御装置とを備え、
前記センタ装置は、前記更新データについて計算したハッシュ値も前記マスタ装置に送信し、
前記マスタ装置は、前記更新データについて所定のデータサイズ毎にハッシュ値を計算することで、前記更新データ全体についてのハッシュ値を得ると、前記ハッシュ値と前記センタ装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車載通信システム。
【請求項8】
車両に搭載される電子制御装置に、ストリーミング方式で更新データを送信する際に、前記更新データについて計算したハッシュ値も送信
し、
複数の電子制御装置にそれぞれ更新データを送信する際には、各更新データについて計算した複数のハッシュ値も送信し、
複数の電子制御装置の一部についてストレージ方式で更新データを送信する際には、前記更新データと前記更新データについて計算したハッシュ値とを送信するセンタ装置。
【請求項9】
前記複数のハッシュ値について計算したハッシュ値を上位ハッシュ値として、前記上位ハッシュ値も送信する請求項
8記載のセンタ装置。
【請求項10】
車両に搭載される電子制御装置に、ストリーミング方式で更新データを送信する際に、前記更新データについて計算したハッシュ値も送信し、
少なくともデータ取得先のアドレス,データ名及びデータサイズ,更新データの配信先である電子制御装置のID並びにデータ転送方式の情報を含むダウンロードメタデータに、前記ハッシュ値を加えて送信するセンタ装置。
【請求項11】
車両に搭載され、センタ装置よりストリーミング方式で送信され、更新データを含む配信パッケージを受信するマスタ装置と、
前記車両に搭載され、前記マスタ装置より転送された更新データを記憶部に書き込む電子制御装置とを備え、
前記マスタ装置は、前記センタ装置が前記更新データについて計算して送信したハッシュ値を受信し、
前記電子制御装置は、前記更新データについてハッシュ値を計算すると、前記ハッシュ値を前記マスタ装置に送信し、
前記マスタ装置は、前記センタ装置より送信されたハッシュ値と、前記電子制御装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車両側システム。
【請求項12】
前記マスタ装置は、前記センタ装置が、複数の電子制御装置にそれぞれ更新データを送信する際に、各更新データについて計算し送信した複数のハッシュ値も受信すると、各更新データを各電子制御装置にそれぞれ転送し、
各電子制御装置は、前記更新データについてハッシュ値を計算すると、前記ハッシュ値を前記マスタ装置に送信し、
前記マスタ装置は、複数の電子制御装置より送信されたハッシュ値を、前記センタ装置より送信された対応するハッシュ値と比較する請求項1
1記載の車両側システム。
【請求項13】
前記マスタ装置は、前記センタ装置が、前記複数のハッシュ値について計算したハッシュ値を上位ハッシュ値として送信したものも受信し、
複数の電子制御装置より受信した複数のハッシュ値について上位ハッシュ値を計算すると、計算した上位ハッシュ値を、前記センタ装置より送信された上位ハッシュ値と比較する請求項1
2記載の車両側システム。
【請求項14】
前記マスタ装置は、前記センタ装置が、複数の電子制御装置の一部に対する更新データを含む配信パッケージをストレージ方式で送信する際に、前記更新データと前記更新データについて計算したハッシュ値とを受信し、
前記更新データについてハッシュ値を計算し、前記センタ装置より送信された対応するハッシュ値と比較して、前記更新データの完全性を検証し、
前記更新データの完全性が検証されると、前記ストレージ方式に対応する電子制御装置に更新データを転送する請求項1
2又は1
3記載の車両側システム。
【請求項15】
前記センタ装置より、前記配信パッケージを受信可能な携帯型情報端末を備え、
前記マスタ装置は、前記センタ装置より、前記携帯型情報端末を介しても、前記配信パッケージを受信可能である請求項1
1から1
4の何れか一項に記載の車両側システム。
【請求項16】
車両に搭載され、センタ装置よりストリーミング方式で送信される更新データを配信パッケージとして受信するマスタ装置と、
前記車両に搭載され、前記マスタ装置より転送された更新データを記憶部に書き込む電子制御装置とを備え、
前記センタ装置は、前記更新データについて計算したハッシュ値も前記マスタ装置に送信し、
前記マスタ装置は、前記センタ装置が、前記更新データについて計算したハッシュ値も受信し、前記更新データについて所定のデータサイズ毎にハッシュ値を計算することで、前記更新データ全体についてのハッシュ値を得ると、前記ハッシュ値と前記センタ装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車両側システム。
【請求項17】
センタ装置が、車両に搭載される電子制御装置に、ストリーミング方式で更新データを送信する際に、
前記車両に搭載されるマスタ装置が前記更新データを配信パッケージとして受信すると前記電子制御装置に転送し、
前記センタ装置が、前記更新データについて計算したハッシュ値も前記マスタ装置に送信し、
前記電子制御装置が、前記更新データについて計算したハッシュ値を前記マスタ装置に送信し、
前記マスタ装置が、前記センタ装置より送信されたハッシュ値と、前記電子制御装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車載通信の更新データ検証方法。
【請求項18】
センタ装置が、車両に搭載される電子制御装置に、ストリーミング方式で更新データを送信する際に、
前記車両に搭載されるマスタ装置が前記更新データを配信パッケージとして受信すると、前記電子制御装置に転送し、
前記センタ装置が、前記更新データについて計算したハッシュ値も前記マスタ装置に送信し、
前記マスタ装置が、前記センタ装置が前記更新データについて計算したハッシュ値も受信し、前記更新データについて所定のデータサイズ毎にハッシュ値を計算することで、前記更新データ全体についてのハッシュ値を得ると、前記ハッシュ値と前記センタ装置より送信されたハッシュ値とを比較して、前記更新データの完全性を検証する車載通信の更新データ検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載される電子制御装置に書き込ませる更新データを含む配信パッケージをストリーミング方式で送信するセンタ装置と、配信パッケージを受信して電子制御装置に更新データを転送するマスタ装置とを備える車載通信システム,そのシステムに使用されるセンタ装置及び車両側システム並びに車載通信の更新データ検証方法に関する。
【背景技術】
【0002】
近年、運転支援機能や自動運転機能等の車両制御の多様化に伴い、車両の電子制御装置(以下、ECU(Electronic Control Unit)と称する)に搭載される車両制御や診断等のアプリプログラムの規模が増大している。また、機能改善等によるバージョンアップに伴い、ECUのアプリプログラムを書換える,所謂リプログを行う機会も増えつつある。一方、通信ネットワークの進展等に伴い、コネクッテッドカーの技術も普及している。このような事情から、例えば特許文献1には、サーバよりECUの更新プログラムを含むデータパッケージをOTA(Over The Air)により車載装置に配信し、車両側で更新プログラムを書換える技術が開示されている。
【0003】
上記の更新プログラムを書換える方式には、センタ装置から更新プログラムの全てを車両側のメモリにダウンロードしてから更新を行うストレージ方式と、センタ装置から更新プログラムを車両側にダウンロードしながら更新を行うストリーミング方式とがある。車両側では、一般にDCM(Data Communication Module)やCGW(Central Gate Way)等と称されるユニットを有するOTAマスタが、センタ装置から更新プログラムを含む配信パッケージを受信して、更新対象となるターゲットECUに更新プログラムを転送して書き込む。
【0004】
ストレージ方式では、配信パッケージにデジタル署名が付与されており、OTAマスタは、そのデジタル署名を用いて配信パッケージの完全性を確認してから、ターゲットECUに書き込みを行っている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、ストリーミング方式では、OTAマスタが上記のように完全性を確認することなく、受信した更新プログラムを逐次ターゲットECUに書き込んでいる。そのため、センタ装置からターゲットECUまでのデータ転送経路において、配信パッケージに含まれるプログラムのデータが差し替えられると、その不正なデータがそのままターゲットECUに書き込まれてしまうおそれがあった。
【0007】
本発明は上記事情に鑑みてなされたものであり、その目的は、センタ装置からストリーミング方式で送信される更新データについても、完全性を検証できる車載通信システム,センタ装置,車両側システム及び車載通信の更新データ検証方法を提供することにある。
【課題を解決するための手段】
【0008】
請求項1記載の車載通信システムによれば、センタ装置は、更新データを配信パッケージとしてストリーミング方式で車両側のマスタ装置に送信する際に、更新データについて計算したハッシュ値もマスタ装置に送信する。マスタ装置は、配信パッケージを受信すると更新データを電子制御装置に転送する。電子制御装置は、前記更新データについてハッシュ値を計算すると、そのハッシュ値をマスタ装置に送信し、マスタ装置は、センタ装置より送信されたハッシュ値と、電子制御装置より送信されたハッシュ値とを比較して更新データの完全性を検証する。
【0009】
このように構成すれば、センタ装置からストリーミング方式で車両側に送信される配信パッケージ含まれる更新データが、途中で改竄される等して不完全なデータに置き換わったとしても、マスタ装置においてハッシュ値を用いた検証が行われるので、不完全な更新データが電子制御装置にインストールされてしまうことを防止できる。したがって、通信システムのセキュリティを向上させることが可能になる。
【0010】
請求項2記載の車載通信システムによれば、センタ装置は、複数の電子制御装置にそれぞれ更新データを書き込ませる際には、各更新データについて計算した複数のハッシュ値もマスタ装置に送信する。マスタ装置は、各更新データを各電子制御装置にそれぞれ転送し、各電子制御装置は、それぞれの更新データについてハッシュ値を計算すると、そのハッシュ値をマスタ装置に送信する。マスタ装置は、複数の電子制御装置より送信されたハッシュ値を、センタ装置より送信された対応するハッシュ値と比較する。したがって、複数の電子制御装置にそれぞれ更新データを送信するケースについても同様に、不完全な更新データが各電子制御装置にインストールされてしまうことを防止できる。
【0011】
請求項7記載の車載通信システムによれば、センタ装置は請求項1と同様に、ストリーミング方式で配信パッケージを車両側のマスタ装置に送信する際に、更新データについて計算したハッシュ値もマスタ装置に送信する。マスタ装置は、更新データについて所定のデータサイズ毎にハッシュ値を計算することで、更新データ全体についてのハッシュ値を得ると、そのハッシュ値とセンタ装置より送信されたハッシュ値とを比較して、更新データの完全性を検証する。
【0012】
すなわち、請求項1の電子制御装置に替ってマスタ装置が、更新データについてのハッシュ値を計算し完全性を検証するので、マスタ装置で検証処理を完結させて請求項1と同様の効果が得られる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態において、車載通信システムの構成を概略的に示す機能ブロック図
【
図4】OTAセンタより車載システムに、ストリーミング方式で配信パッケージを伝送する態様をイメージ的に示す図
【
図5】OTAセンタが行うパッケージ生成処理を示すフローチャート
【
図8】OTAマスタが行うパッケージ及び署名受信処理を示すフローチャート
【
図9】ターゲットECU側の処理を示すフローチャート
【
図10】ターゲットECUが単一である場合の
図4相当図
【
図11】第2実施形態において、ハッシュチェーンを用いて配信パッケージを伝送する態様をイメージ的に示す図
【
図12】OTAセンタが行う署名生成処理を示すフローチャート
【
図13】OTAマスタ側の処理を示すフローチャート
【
図14】第3実施形態において、配信パッケージを伝送する際に、OTAマスタがハッシュ値を計算する態様をイメージ的に示す図
【
図15】OTAマスタ側の処理を示すフローチャート
【
図16】ターゲットECU側の処理を示すフローチャート
【
図17】第4実施形態において、ストレージ方式が混在して配信パッケージを伝送する態様をイメージ的に示す図
【
図18】OTAマスタ側の処理を示すフローチャート
【
図19】第5実施形態において、スマートホンを経由して配信パッケージを伝送する態様をイメージ的に示す図
【
図20】OTAセンタ側の処理を示すフローチャート
【
図21】スマートホン側の処理を示すフローチャート
【
図22】OTAマスタ側の処理を示すフローチャート
【発明を実施するための形態】
【0014】
(第1実施形態)
図1に示すように、本実施形態の車載通信システム1は、センタ装置に相当するOTAセンタ2と、車両側システム3とを備えている。OTAセンタ2は、PKG生成サーバ4,配信サーバ5及びDB部100を有し、DB部100は、ソフトウェアパッケージDB101,デジタル署名DB102,構成情報DB103,個車情報DB104,ECUリプロデータDB105及びECUメタデータDB106を有している。尚、「データベース」をDBと表記し、「パッケージ」をPKGと表記することがある。
【0015】
PKG生成サーバ4は、ソフトパッケージ生成部9,ハッシュ値収集部10,ハッシュ値計算部11,デジタル署名生成部12を備えている。ソフトパッケージ生成部9は、データの更新対象となるターゲットECUが搭載されている車両に配信するソフトウェアパッケージを生成する機能部であり、その詳細については、例えば特開2020-27624号公報の
図15,
図16,
図19等に開示されている。以下、特開2020-27624号公報を「参照公報」と称する。ソフトウェアパッケージには、プログラムの更新データや書換え諸元データ等が含まれる。ハッシュ値を含むソフトウェアパッケージは、ソフトウェアパッケージDB101に記憶される。
【0016】
ハッシュ値収集部10は、上記のソフトウェアパッケージからハッシュ値を計算する対象となる更新データを収集する機能部であり、ハッシュ値計算部11は、収集されたデータにハッシュ関数を適用してハッシュ値を計算する機能部である。デジタル署名生成部12は、計算されたハッシュ値と対応するターゲットECUのIDであるターゲットIDとを紐付けたハッシュ値連結情報に、生成したデジタル署名を付与する機能部である。デジタル署名は、デジタル署名DB102に記憶される。
【0017】
配信サーバ5は、配信管理部13,車両情報管理部14,ソフトウェア管理部15,キャンペーン管理部16,構成情報管理部17及び個車状態管理部18を備えている。配信管理部13は、各車両に対するソフトウェアパッケージやキャンペーン情報の配信を管理する機能部である。車両情報管理部14は、個々の車両よりアップロードされる個車情報を個車情報DB104に登録して管理する。ソフトウェア管理部15には、ターゲットECUの更新プログラムがOEM(Original Equipment Manufacturer)等により登録される。キャンペーン管理部16には、主に車両側システム3で表示するプログラム更新に関する情報であるキャンペーン情報がOEM等により登録される。
【0018】
構成情報管理部17は、構成情報DB103に登録される車両型式毎の構成情報を管理する。構成情報は、車両に搭載されるECUのハードウェア及びソフトウェアに関する識別情報であり、複数のECUから成るシステム構成の識別情報や、複数のシステムから成る車両構成の識別情報も含まれる。個車状態管理部18は、各車両におけるターゲットECUのプログラム更新の状態、バージョン等の情報を管理する。尚、PKG生成サーバ4及び配信サーバ5は、コンピュータのハードウェア及びソフトウェアにより実現されている機能である。
【0019】
DB部100の構成情報DB103,個車情報DB104,ECUリプロデータDB105及びECUメタデータDB106は、参照公報における「構成情報DB208,個車情報DB213,ECUリプロデータDB204及びECUメタデータDB205」に対応している。
【0020】
車両側システム3は、マスタ装置に相当するOTAマスタ21と、プログラムが更新される対象となる電子制御装置である更新対象ECU22(1),22(2),22(3),…を備えている。以下、更新対象ECU22をターゲットECU22と称する。
【0021】
OTAマスタ21は、参照公報では
図1に示すDCM12及びCGW13を合わせた機能部であり、ダウンロード処理部23,アンパック処理部24,ハッシュ値計算部25及びハッシュ値比較部26を備えている。ダウンロード処理部23は、OTAセンタ2と無線通信を行い、配信パッケージのデータやデジタル署名のデータをダウンロードする。アンパック処理部24は、ダウンロードされた配信パッケージを、各処理を行うデータセクション毎に分離するアンパック処理を行う。ハッシュ値計算部25は、ハッシュ値の計算対象となるデータ値についてハッシュ値を計算するが、この機能部は第2実施形態において使用される。ハッシュ値比較部26は、後述するようにターゲットECU22側で計算されたハッシュ値を、ダウンロードされた配信パッケージに含まれているハッシュ値と比較する。
【0022】
ターゲットECU22は、マイコン27,メモリ28及びハッシュ値計算部29を備えている。メモリ28は、例えばフラッシュメモリであり、OTAマスタ21がダウンロードした更新データが転送されてインストールされる。ハッシュ値計算部29は、OTAマスタ21より転送された更新データについてハッシュ値を計算する。
【0023】
≪リプロポリシーメタデータ≫
図2に示すリプロポリシーメタデータは、データのダウンロードに先立って、OTAセンタ2よりOTAマスタ21に送信される。
<リプロポリシーメタデータバージョン>
リプロポリシーメタデータのバージョンであり、例えば「1.0.0」や「2.0.0」などのバージョン情報が格納される。
【0024】
<配信レイヤ>
OTAセンタ2との通信に使用されるプロトコル,例えばUptane(登録商標)やOMA-DM(Open Mobile Alliance-Device Management)等を示す情報や、通信手段がOTAマスタ21であることを示す「セルラー」や、その他後述するスマートホンやUSBメモリであること等の情報が格納される。
【0025】
<マスタレイヤ>
OTAマスタ21について、そのプラットフォーム(PF)が、例えばAP,CP,AGL(Automotive Grade Linux),Android(登録商標)であること等を示す情報が格納される。ECUのプラットフォームに応じた更新プログラムを配信するためのパッケージ構造について、一般社団法人JASPARの仕様では、標準化団体AUTOSARの静的OSで動作するクラシックプラットフォーム(CP)に適用可能なデータ要件が規定されている。また、AUTOSARでは、動的OSで動作する新たなタイプのアダプティブプラットフォーム(AP)に適用可能なデータ要件が規定されている。AGLは、車載Linux(登録商標)であり、Androidは、Android Automotive OSである。
【0026】
加えて、制御方式については、特定のフォーマットに従い設定されたパラメータに応じて処理する「パラメータ」や、特定のフォーマットがなくより自由な記載形式で処理する「スクリプト」等の情報が格納される。
【0027】
<ターゲットレイヤ>
ターゲットECU22に対応した情報である。PF,転送方式,制御方式については、前述したものと同様である。ターゲットIDは、ターゲットECU22に対応したIDであるが、ここに格納するのはオプションである。
【0028】
≪ダウンロードメタデータ≫
図3に示すダウンロードメタデータは、リプロポリシーメタデータに続いてOTAセンタ2よりOTAマスタ21に送信される。
【0029】
<配信レイヤ>
例えば通信プロトコルがUptaneであれば、Uptaneメタデータを取得するための情報であり、それに対応したURI,データ名,データサイズ,ハッシュ値,ターゲットID,転送方式等が格納される。
【0030】
<マスタレイヤ>
例えばVehicle PKGを取得するための情報であり、各項目は配信レイヤと同様である。この情報は、複数の場合がある。
【0031】
<ターゲットレイヤ>
例えばSoftware PKGを取得するための情報であり、各項目は配信レイヤと同様である。この情報も、複数の場合がある。尚、Vehicle PKGやSoftware PKGについては、例えば“Specification of Update Configuration Management AUTOSAR AP R20-11,Document ID No.706”のp50,52,53に掲載されており、当該文献の関連する記載を参照。
【0032】
ここで、APとCPとの違いについて説明する。AP及びCPはソフトウェアプラットフォームを表している。ソフトウェアプラットフォームは、ソフトウェアアーキテクチャとも呼ばれる。CPは、AUTOSAR Classic Platformを表し、APはAUTOSAR Adaptive Platformを表す。さらに、CP仕様書に準拠して動作するECUをCP ECU又はCPのECUと表記し、AP仕様書に準拠して動作するECUをAP ECU又はAPのECUと表記することがある。
【0033】
AP及びCPにおいては、使用されるオペレーティングシステム,いわゆるOSや開発言語が異なる。CP ECUとAP ECUは、受信できるパッケージの構造が異なる。 これらのパッケージの構造の違いは、主にECUの処理性能の違いに起因するものであり、一般的にCPのECUの処理性能は低いため、パッケージに含まれる諸元データなどもバイナリデータで記載されており、処理性能の低いECUでも解釈・処理しやすいパッケージデータ構造となっている。
【0034】
一方、APのECUは処理性能が高いものが用いられるため、何らかの言語で記述された構造的な文字データを解析してプログラムで扱えるデータ構造に変換するパーサー機能を搭載することが可能であり、データ構造には単純なバイナリデータではなく、例えばJSON(JavaScript Object Notation)のようなオブジェクト指向のデータ形式を採用できるため、柔軟なパッケージデータ構造となっている。
【0035】
次に、本実施形態の作用について説明する。
図4は、本実施形態の作用を概念的に示している。ターゲットECU22(1)~22(3)に対応する更新データをA~Cとすると、OTAセンタ2の配信サーバ4は、ハッシュ値計算部11により、各更新データA~Cについて、例えばSHA(Secure Hush Algorithm)-2等のハッシュ関数を適用してハッシュ値a~cを算出する(
図5,S0)。また、前述のダウンロードメタデータDについても同様にハッシュ値dを算出するが、
図4から
図9に示すフローチャートでは、ハッシュ値a~cに関する処理のみを現している。
【0036】
次に、ハッシュ値収集部10により、各ハッシュ値a~cを収集すると(
図6,S1)、これらのハッシュ値a~cとターゲットIDとを紐付けたハッシュ値連結情報を生成する(S2)。それから、デジタル署名生成部12が、ハッシュ値連結情報に対し、デジタル署名を生成して付与する、つまり秘密鍵により暗号化すると(S3)、そのデジタル署名をデジタル署名DB102に伝送して保存する(S4,S5)。その後、OTAマスタ21よりハッシュ値連結情報の伝送要求があると(
図7,S6;YES)、配信サーバ5は、OTAマスタ21にハッシュ値連結情報と、配信パッケージとを順次伝送する(S7,S7a)。
【0037】
次に、車両側システム3側の処理について説明する。
図8に示すように、OTAマスタ21のダウンロード処理部23は、配信サーバ5よりストリーミング方式で送信された配信パッケージを受信すると、各更新データA~Cを各ターゲットECU22(1)~22(3)に転送する(S11)。続いて、ダウンロード処理部23は、デジタル署名を受信する(S12)。尚、この場合の通信プロトコルは、UptaneやSSL(Secure Sockets Layer)等の暗号化を用いたものを使用する。
【0038】
一方、ターゲットECU22は、
図9に示すように、OTAマスタ21から受信した更新データをダウンロードすると(S21)、その更新データにハッシュ関数を適用してハッシュ値を計算する(S22)。それから、計算したハッシュ値を、OTAマスタ21に伝送する(S23)。
【0039】
OTAマスタ21は、受信したデジタル署名を検証する、つまり公開鍵で復号化して、ハッシュ値連結情報を取得する(S13)。それから、各ターゲットECU22(1)~22(3)にハッシュ値の転送を要求するが(S14)、ステップS23において、ターゲットECU22がOTAマスタ21に自動的にハッシュ値を転送する仕様の場合、この処理は不要である。
【0040】
全てのターゲットECU22からハッシュ値a’~ c’を受信すると(S15;YES)、ハッシュ値比較部26は、ハッシュ値連結情報より取得したハッシュ値a~cと、ターゲットECU22から取得したハッシュ値a’~ c’とをそれぞれ比較する(S16)。そして、両者が全て一致すれば(S17;YES)、各ターゲットECU22(1)~22(3)に対してインストール指示を発行する(S18)。一方、何れか1つでも不一致があれば(S17;NO)、不一致があったターゲットECU22にロールバック指示を発行する(S19)。この処理はオプションである。
【0041】
ターゲットECU22は、OTAマスタ21からのインストール要求があると(S24;YES)ダウンロードした更新データをインストールする(S25)。また、インストール要求がなく(S24;NO)、OTAマスタ21から中止要求があると(S26;YES)処理を終了する。
【0042】
尚、以上の処理は、ターゲットECU22が複数の場合であるが、
図10はターゲットECU22が単一の場合を示す。メタデータEについてのハッシュ値がeとなるだけで、基本的には
図4に示す処理と同様である。
【0043】
以上のように本実施形態によれば、車載通信システム1において、OTAセンタ2は、ストリーミング方式で配信パッケージを車両側のOTAマスタ21に送信する際に、更新データについて計算したハッシュ値もOTAマスタ21に送信する。OTAマスタ21は、配信パッケージを受信すると、更新データをターゲットECU22に転送する。ターゲットECU22は、更新データについてハッシュ値を計算すると、そのハッシュ値をOTAマスタ21に送信し、OTAマスタ21は、OTAセンタ2より送信されたハッシュ値と、ターゲットECU22より送信されたハッシュ値とを比較して更新データの完全性を検証する。
【0044】
このように構成すれば、OTAセンタ2からストリーミング方式で車両側システム3に送信される配信パッケージに含まれる更新データが、途中で改竄される等して不完全なデータに置き換わったとしても、OTAマスタ21においてハッシュ値を用いた検証が行われるので、不完全な更新データがターゲットECU22にインストールされてしまうことを防止できる。したがって、通信システム1のセキュリティを向上させることが可能になる。
【0045】
また、OTAセンタ2は、複数のターゲットECU22(1)~22(3)にそれぞれ更新データA~Cを書き込ませる際には、各更新データA~Cについて計算した複数のハッシュ値a~cもOTAマスタ21に送信する。OTAマスタ21は、各更新データA~Cを各ターゲットECU22(1)~22(3)にそれぞれ転送し、各ターゲットECU22(1)~22(3)は、それぞれの更新データA~Cについてハッシュ値a’~c’を計算すると、そのハッシュ値a’~c’をOTAマスタ21に送信する。OTAマスタ21は、複ハッシュ値a’~c’を、ハッシュ値a~cと比較する。したがって、複数のターゲットECU22(1)~22(3)にそれぞれ更新データA~Cを送信するケースについても同様に、不完全な更新データがインストールされてしまうことを防止できる。
【0046】
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。
図11に示すように、第2実施形態では、PKG生成サーバ4は、更新データA~Cに対応して得られたハッシュ値a~c及びメタデータに対応して得られたハッシュ値dに対してハッシュ関数を適用する。そして、得られたハッシュ値fを「ハッシュチェーン」と称する(
図12,S8)。ハッシュチェーンfは上位ハッシュ値に相当する。そして、ハッシュチェーンfに対してデジタル署名を付与すると(S9)、ステップS4及びS5を実行する。
【0047】
OTAマスタ21は、OTAセンタ2の配信サーバ5から配信パッケージを受信すると(
図13,S31)、各更新データA~Cを各ターゲットECU22(1)~22(3)に転送する(S32)。尚、ターゲットECU22が行う処理は、
図9と同様である。
【0048】
続いて、ダウンロード処理部23は、ハッシュチェーンfに対して付与されたデジタル署名を受信すると(S33)、受信したデジタル署名を検証する(S34)。検証が成功すれば、ハッシュチェーンfが得られる。
【0049】
OTAマスタ21は、各ターゲットECU22(1)~22(3)が計算したハッシュ値a’~c’を受信する(S35)。ハッシュ値計算部11は、受信したハッシュ値a’~c’(及びd’)についてハッシュチェーンf’を計算する(S36)。
【0050】
そして、ハッシュ値比較部26は、OTAセンタ2より取得したハッシュチェーンfと、ハッシュ値計算部11が計算したハッシュチェーンf’とを比較する(S37)。両者が全て一致すれば(S38;YES)、各ターゲットECU22(1)~22(3)に対してインストール指示を発行する(S18)。一方、不一致であれば(S38;NO)、処理を終了するか、又はターゲットECU22にロールバック指示を発行する(S40)。
【0051】
以上のように第2実施形態によれば、OTAセンタ2は、複数のハッシュ値a~cについて計算したハッシュ値であるハッシュチェーンfもOTAマスタ21に送信する。OTAマスタ21は、ECU22(1)~22(3)より受信したハッシュ値a’~c’についてハッシュチェーンf’を計算すると、ハッシュチェーンf’とハッシュチェーンfとを比較する。これにより、複数のハッシュ値a~cの何れかが不完全なデータとなった場合も検証によって検知できるので、通信システムのセキュリティを更に向上させることができる。
【0052】
(第3実施形態)
図14に示すように、第3実施形態では、OTAセンタ2からストリーミング方式で配信パッケージを受信する際に、OTAマスタ21が更新データについて順次ハッシュ値を計算する。ハッシュ関数には、前述したSHA-2を用いる。以下、一例として、SHA-2関数を使用した事例を説明する。OTAセンタ2側の処理は、
図5と同様である。OTAマスタ21は、OTAセンタ2から受信したダウンロードメタデータより、受信するデータのサイズを把握すると(
図15,S41)、そのデータサイズが512ビットの何倍になるかを計算してから(S42)、OTAセンタ2よりストリーミング方式で配信パッケージを受信する(S43)。
【0053】
OTAマスタ21は、受信したデータを512ビット単位で分割する(S44)。分割したデータを「メッセージ」と称すると、例えば、N個のメッセージに分割されたとする。そして、ハッシュ値計算部25は、メッセージにSHA-2関数を適用し(S45)、その出力結果を次のSHA-2関数の初期バッファ値として保持する(S46)。例えばSHA-256であれば、512ビットのデータに適用して得られるハッシュ値のハッシュ長は256ビットになる。そして、(N―1)個のメッセージにSHA-2関数を適用するまで(S47;NO)ステップS45,S46の処理を繰り返す。
【0054】
N個目のメッセージについては(S47;YES)、そのデータサイズが512ビットの整数倍か否かを判断し(S48)、整数倍でなければ(NO)パディングを行って整数倍にしてからSHA-2関数を適用し、その出力結果をハッシュ値とする(S49)。そして、OTAマスタ21は、配信サーバ4から受信したデジタル署名を検証してハッシュ値を得る(S50)。ステップS48において、メッセージのデータサイズが512ビットの整数倍であれば(YES)、最終的なハッシュ値が得られているのでステップS50に移行する。
【0055】
それから、ハッシュ値比較部26は、ステップS50で取得したハッシュ値と、ハッシュ値計算部25が計算したハッシュ値とを比較し(S51)、両者が一致すれば(S52;YES)ターゲットECU22に対してインストール指示を発行する(S53)。一方、不一致であれば(S52;NO)、処理を終了するか、又はターゲットECU22にロールバック指示を発行する(S54)。
【0056】
尚、
図15に示す処理は、1つのターゲットECU22に対応したもので、ターゲットECU22が複数の場合は、
図15に示す処理を繰り返し実行する。また、
図16に示すターゲットECU22の処理は、
図9におけるステップS21,S24、S25のみを実行するもので、ステップS24で「NO」と判断すると処理を終了する。
【0057】
以上のように第3実施形態によれば、OTAマスタ21は、更新データについて所定のデータサイズ毎にハッシュ値を計算することで、更新データ全体についてのハッシュ値を得ると、そのハッシュ値とOTAセンタ2より送信されたハッシュ値とを比較して更新データの完全性を検証する。このように構成すれば、完全性の検証をOTAマスタ21内の処理として行うことができる。
【0058】
(第4実施形態)
図17に示すように、第4実施形態は、ストリーミング方式とストレージ方式とが混在している場合の処理を示す。OTAセンタ2の処理は、第1実施形態と同様である。
図18に示すように、OTAマスタ21は、配信サーバ5よりストレージ方式のパッケージA及びストリーミング方式のパッケージBを受信する(S61)。パッケージAはzip形式であり、パッケージAについての検証データが含まれている。続いて、OTAマスタ21は、検証データによってパッケージAを検証し、パッケージBに含まれている更新データK,LをターゲットECU22(4),22(5)に伝送する(S62)。ここで、パッケージA,Bのダウンロードが開始される。
【0059】
パッケージAであり(S63;YES)検証が正常に終了すれば(S70;YES)、パッケージAに含まれている更新データG~IをターゲットECU22(1)~22(3)に書き込む(S71)。ここで、パッケージAのインストールが開始される。一方、検証が正常に終了しなければ(S70;NO)、パッケージAについての処理を終了する。また、パッケージBのインストール処理を開始しているターゲットECU22に対しては、ロールバック指示を発行する(S72)。
【0060】
パッケージBであれば(S63;NO)、OTAマスタ21は、更新データK,Lについて、ターゲットECU22(4),22(5)が計算したハッシュ値k’,l’を受信する(S64)。尚、これらのターゲットECU22の処理は
図9と同様である。続いて、配信サーバ5よりデジタル署名を受信すると、検証を行う(S65)。
【0061】
そして、復号したハッシュ値k,lとハッシュ値k’,l’とを比較し(S66)、両者が一致すれば(S67;YES)、各ターゲットECU22(4),22(5)に対してインストール指示を発行する(S68)。ここで、パッケージBのインストールが開始される。また、両者が不一致であれば(S67;NO)、パッケージBについての処理を終了する。また、パッケージAのインストール処理を開始しているターゲットECU22に対しては、ロールバック指示を発行する(S69)。
【0062】
ここで、
図18について別の態様を説明する。上記実施形態では、S63にて、パッケージがパッケージAであるか否かを判定した。それに替えて、OTAマスタ21は、パッケージの種別を判定し、その結果に応じた処理を実行しても良い。パッケージA及びパッケージBを受信すると、OTAマスタ21はパッケージの種別を判定する。その結果、OTAマスタ21は、パッケージがストレージ方式のパッケージAであると判定するとS70へ移行し、S70からS72の処理を実行する。また、OTAマスタ21は、パッケージがストリーミング方式のパッケージBであると判定するとS64に移行し、S64からS69の処理を実行する。OTAマスタ21によるパッケージ種別の判定は、受信したパッケージの数だけ繰り返される。
【0063】
以上のように第4実施形態によれば、OTAセンタ2は、複数のターゲットECU22の一部に書き込ませる更新データをストレージ方式で送信する際には、その更新データと当該データについて計算したハッシュ値とをOTAマスタ21に送信する。OTAマスタ21は、前記更新データについてハッシュ値を計算し、OTAセンタ2より送信された対応するハッシュ値と比較して前記更新データの完全性を検証する。完全性が検証されると、ストレージ方式に対応するターゲットECU22(1)~22(3)に更新データを転送する。これにより、ストレージ方式に対応するターゲットECU22が混在している場合でも、セキュリティを向上させることができる。
【0064】
(第5実施形態)
図19に示すように、第5実施形態は、OTAセンタ2から配信パッケージを一旦スマートホン31にダウンロードし、スマートホン31からOTAマスタ21に転送する場合を示す。尚、「スマートホン」を「スマホ」と表記し、カーナビゲーション装置を「ナビ」と表記する場合がある。
図20に示すように、OTAセンタ2は、ステップS1~S4を実行すると、後述するように、ユーザが図示しないカーナビゲーション装置やスマートホン31によりOTAセンタ2と通信を行っており、パッケージの配信先としてスマートホン31を選択しているか否かを判断する(S73)。スマートホン31を選択していれば(YES)スマートホン31にパッケージを配信し(S74)、スマートホン31を選択していなければ(NO)、従前通りOTAマスタ21にパッケージを配信する(S7)。
【0065】
図21に示すように、スマートホン31を所持しているユーザは、そのスマートホン31と車両側の機器とで無線通信のペアリングが行われていることを前提として、OTAセンタ2よりプッシュ通知を受け取る(S81)。そして、スマートホン31により、どこに配信パッケージをダウンロードするか選択する(S82)。すると、OTAセンタ2の配信サーバ5に選択結果が通知される(S83)。
【0066】
ユーザがスマートホン31を選択すれば(S84;YES)、スマートホン31の指定パスにパッケージがダウンロード(DL)される(S85)。続いて、スマートホン31が、パッケージのダウンロードが完了したことを配信サーバ5に通知すると(S86)、スマートホン31は、パッケージをOTAマスタ21に転送する(S87)。
【0067】
図22に示すように、OTAマスタ21は、OTAセンタ2側と車両構成情報の同期を図るため、OTAセンタ2に車両構成情報を送信する(S91)。カーナビゲーション装置に表示された指示をユーザが実行すると(S92;YES)、OTAマスタ21は、OTAセンタ2より受信したデジタル署名を検証し、ハッシュ値連結情報を取得する(S93)。
【0068】
そして、カーナビゲーション装置又はスマートホン31によって、配信パッケージの送信先としてスマートホン31を選択したことをOTAセンタ2に送信すると(S94;YES)、OTAマスタ21は、OTAセンタ2から通知されたディレクトリに従い、スマートホン31から配信パッケージをダウンロードする(S95)。一方、送信先としてスマートホン31が選択されなければ(S94;NO)、OTAマスタ21は、OTAセンタ2から配信パッケージをダウンロードする(S96)。以降は、第1実施形態のステップS12~S19を実行する。
【0069】
以上のように第5実施形態によれば、OTAマスタ21は、選択的に、OTAセンタ2からスマートホン31にダウンロードされた配信パッケージを、スマートホン31からダウンロードすることができる。これにより、配信パッケージをより柔軟な態様で取得できる。
【0070】
(その他の実施形態)
リプロポリシーメタデータ及びダウンロードメタデータの内容は、個別の設計に応じて適宜変更すれば良い。
ハッシュ関数は、SHA-2に限らない。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0071】
各装置等が提供する手段および/または機能は、実体的なメモリ装置に記録されたソフトウェアおよびそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、あるいはそれらの組合せによって提供することができる。例えば、制御装置がハードウェアである電子回路によって提供される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって提供することができる。
【0072】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0073】
図面中、1は車載通信システム、2はOTAセンタ、4はPKG生成サーバ、5は配信サーバ、3は車両側システム、21はOTAマスタ、22はターゲットECUを示す。