JP2017208859A - システム、車両及びソフトウェア配布処理方法 - Google Patents

システム、車両及びソフトウェア配布処理方法 Download PDF

Info

Publication number
JP2017208859A
JP2017208859A JP2017158158A JP2017158158A JP2017208859A JP 2017208859 A JP2017208859 A JP 2017208859A JP 2017158158 A JP2017158158 A JP 2017158158A JP 2017158158 A JP2017158158 A JP 2017158158A JP 2017208859 A JP2017208859 A JP 2017208859A
Authority
JP
Japan
Prior art keywords
distribution processing
ecu
verification
software distribution
processing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017158158A
Other languages
English (en)
Other versions
JP6440334B2 (ja
Inventor
秀明 川端
Hideaki Kawabata
秀明 川端
誠一郎 溝口
Seiichiro Mizoguch
誠一郎 溝口
歩 窪田
Ayumi Kubota
歩 窪田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2017158158A priority Critical patent/JP6440334B2/ja
Publication of JP2017208859A publication Critical patent/JP2017208859A/ja
Application granted granted Critical
Publication of JP6440334B2 publication Critical patent/JP6440334B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ECU等のコンピュータのコンピュータプログラムの更新の際にコンピュータの共通鍵で検証することによる負担を軽減すること。【解決手段】ソフトウェア配布処理装置2は、ソフトウェアの更新データの電子署名の検証鍵とECU30の共通鍵を記憶し、管理サーバ装置70から受信した更新データの電子署名を、検証鍵を使用して検証し、電子署名の検証が成功した更新データのメッセージ認証符号を計算し、電子署名の検証が成功した更新データと当該更新データについて計算されたメッセージ認証符号とをECU30へ送信する。【選択図】図1

Description

本発明は、システム、車両及びソフトウェア配布処理方法に関する。
近年、自動車は、車載制御システムを備え、車載制御システムによって、走る、止まる、曲がるといった自動車の基本的な動作の制御や、その他の応用的な制御を行っている。車載制御システムは、一般に、ECU(Electronic Control Unit)と呼ばれる車載制御マイコンを20個〜100個程度備える。ECUは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。それらECUは、自動車に搭載される通信ネットワークであるCAN(Controller Area Network)に接続し、各ECUが互いに連携する。
また、自動車には、ECUに繋がるOBD(On-board Diagnostics)ポートと呼ばれる診断ポートのインタフェースが設けられている。このOBDポートに、メンテナンス専用の診断端末を接続して、該診断端末からECUに対して更新プログラムのインストール及びデータの設定変更などを行うことができる。すでに使用されている自動車について、ECUのコンピュータプログラムの更新等をする場合には、通常、車検時や自動車の定期点検時などに、正規販売店(ディーラー)や一般の自動車整備工場の工員によって更新がなされる。
自動車の車載制御システムに関し、例えば非特許文献1、2にはセキュリティについて記載されている。
C. Miller、C. Valasek、"Adventures in Automotive Networks and Control Units"、DEF CON 21、2013年8月 吉岡顕、小熊寿、西川真、繁富利恵、大塚玲、今井秀樹、"構成証明機能を持つ車内通信プロトコルの提案"、情報処理学会、DICOMO2008、pp.1270-1275、2008年7月
自動車の車載制御システムのECUに使用されるコンピュータプログラム等のデータの適用についての信頼性を向上させることが望まれる。例えば、ECUがファームウェアの更新を実施する際にECUの共通鍵で検証することが考えられる。この場合、更新ファームウェアを配布するサーバがECUの共通鍵を有することになる。しかしながら、更新ファームウェアを配布するサーバが複数存在する場合、ECUの共通鍵を複数のサーバで共有することから、ECUの共通鍵のサーバ間共有におけるコスト面や、共通鍵の漏洩時に漏洩元の特定が難しいなどの共通鍵のセキュリティ面における負担が問題となる可能性がある。
本発明は、このような事情を考慮してなされたものであり、ECU等のコンピュータのコンピュータプログラムの更新の際にコンピュータの共通鍵で検証することによる負担を軽減することができる、システム、車両及びソフトウェア配布処理方法を提供することを課題とする。
本発明の一態様は、ソフトウェア配布処理装置と、前記ソフトウェア配布処理装置と通信するコンピュータと、を備え、前記ソフトウェア配布処理装置は、ソフトウェアの更新データの電子署名の検証に使用される検証鍵と前記ソフトウェアがインストールされた前記コンピュータの共通鍵を記憶する鍵記憶部と、電子署名が施された前記更新データを受信する受信部と、前記受信部で受信された前記更新データの電子署名を前記鍵記憶部に記憶される前記検証鍵を使用して検証する検証部と、前記検証部による電子署名の検証が成功した前記更新データについてのメッセージ認証符号を計算するメッセージ認証符号計算部と、前記検証部による電子署名の検証が成功した前記更新データと当該更新データについて計算された前記メッセージ認証符号とを前記コンピュータへ送信する送信部と、を備え、前記コンピュータは、前記ソフトウェア配布処理装置から受信した前記更新データについてのメッセージ認証符号を計算し、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致した場合に前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記ソフトウェアの更新処理の検証に使用される新しい期待値として保持し、一方、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致しない場合には前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記新しい期待値として保持しないソフトウェア検証部、を備える、システムである。
本発明の一態様は、上記のシステムを備える車両である。
本発明の一態様は、ソフトウェア配布処理装置と、前記ソフトウェア配布処理装置と通信するコンピュータと、を備えるシステムのソフトウェア配布処理方法であって、前記ソフトウェア配布処理装置が、ソフトウェアの更新データの電子署名の検証に使用される検証鍵と前記ソフトウェアがインストールされた前記コンピュータの共通鍵を鍵記憶部に記憶する鍵記憶ステップと、前記ソフトウェア配布処理装置が、電子署名が施された前記更新データを受信する受信ステップと、前記ソフトウェア配布処理装置が、前記受信ステップで受信された前記更新データの電子署名を前記鍵記憶部に記憶される前記検証鍵を使用して検証する検証ステップと、前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データについてのメッセージ認証符号を計算するメッセージ認証符号計算ステップと、前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データと当該更新データについて計算された前記メッセージ認証符号とを前記コンピュータへ送信する送信ステップと、前記コンピュータが、前記ソフトウェア配布処理装置から受信した前記更新データについてのメッセージ認証符号を計算し、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致した場合に前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記ソフトウェアの更新処理の検証に使用される新しい期待値として保持し、一方、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致しない場合には前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記新しい期待値として保持しないソフトウェア検証ステップと、を含むソフトウェア配布処理方法である。
本発明によれば、ECU等のコンピュータのコンピュータプログラムの更新の際にコンピュータの共通鍵で検証することによる負担を軽減することができるという効果が得られる。
第1実施形態に係る自動車1及び管理システムを示す図である。 図1に示すゲートウェイECU10の構成図である。 図1に示す鍵管理装置20の構成図である。 第1実施形態のソフトウェア配布処理方法のシーケンスチャートである。 セキュアブート方法の説明図である。 第2実施形態に係る鍵管理装置20の構成図である。 第2実施形態のソフトウェア配布処理方法のシーケンスチャートである。
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
[第1実施形態]
図1は、第1実施形態に係る自動車1及び管理システムを示す図である。図1において、自動車1は、ゲートウェイECU10と鍵管理装置20と複数のECU30と車載ネットワーク40を備える。本実施形態では、ソフトウェア配布処理装置2はゲートウェイECU10と鍵管理装置20から構成される。ゲートウェイECU10とECU30は車載ネットワーク40に接続される。車載ネットワーク40として、例えばCANが使用される。CANは車両に搭載される通信ネットワークの一つとして知られている。本実施形態では、車載ネットワーク40はCANである。ゲートウェイECU10と各ECU30とは、車載ネットワーク40を介してデータを交換する。ECU30は、車載ネットワーク40を介して、他のECU30との間でデータを交換する。
ECU30は、自動車1に備わる車載コンピュータである。ECU30は、CPU(Central Processing Unit)50と記憶部52とHSM(Hardware Security Module)60を備える。CPU_50は、ECU30にインストールされたファームウェアを実行する。ファームウェアはソフトウェアつまりコンピュータプログラムの一種である。記憶部52はファームウェアやデータ等を記憶する。記憶部52は、ROM(リードオンリメモリ)やRAM(ランダムアクセスメモリ)、フラッシュメモリ(flash memory)などから構成される。HSM_60は暗号処理等を実行する。本実施形態では、セキュアエレメントの一例としてHSM_60を使用する。セキュアエレメントは耐タンパー性を有する。
ゲートウェイECU10は、無線通信ネットワーク3を介して管理サーバ装置70と通信する。管理サーバ装置70はECU30のファームウェアを管理する。鍵管理装置20は、管理サーバ装置70の鍵とECU30の鍵を管理する。鍵管理装置20はセキュアエレメントにより実現される。
図2は、図1に示すゲートウェイECU10の構成図である。図2において、ゲートウェイECU10は無線通信部11とCANインタフェース12と制御部13とユーザインタフェース14を備える。無線通信部11は無線通信ネットワーク3を介して管理サーバ装置70とデータを送受する。CANインタフェース12は、車載ネットワーク40を介して各ECU30とデータを送受する。制御部13は、ゲートウェイECU10の制御を実行する。ユーザインタフェース14は、利用者の操作を受け付ける。
図3は、図1に示す鍵管理装置20の構成図である。図3において、鍵管理装置20は、検証部21と署名部22と鍵記憶部23を備える。検証部21は、電子署名の検証を実行する。署名部22は、電子署名の生成を実行する。鍵記憶部23は、管理サーバ装置70の電子署名の検証に使用される検証鍵と、ECU30の共通鍵を記憶する。管理サーバ装置70の電子署名の検証に使用される検証鍵は、管理サーバ装置70の電子署名の生成に使用される共通鍵であってもよく、又は、管理サーバ装置70の電子署名の生成に使用される秘密鍵のペアの公開鍵であってもよい。鍵記憶部23には、予め、管理サーバ装置70の電子署名の検証に使用される検証鍵と、ECU30の共通鍵とが記憶される。
鍵管理装置20はセキュアエレメントにより実現される。鍵管理装置20を実現するセキュアエレメントとして、例えば、SIM(Subscriber Identity Module)、eSIM(Embedded Subscriber Identity Module)又はHSMなどが挙げられる。例えば、無線通信ネットワーク3を利用するためのSIM又はeSIMを使用して、鍵管理装置20を実現してもよい。無線通信ネットワーク3を利用するためのSIM又はeSIMは、ゲートウェイECU10の無線通信部11が無線通信ネットワーク3に接続する際に使用される。
次に図4を参照して、本実施形態の動作を説明する。図4は、第1実施形態のソフトウェア配布処理方法のシーケンスチャートである。
(ステップS1)利用者がゲートウェイECU10のユーザインタフェース14を操作してECU30のアップデート確認を実施する。又は、管理サーバ装置70がゲートウェイECU10に対してECU30のアップデート確認を要求する。
(ステップS2)ゲートウェイECU10は、ECU30に対してECUバージョンを問い合わせし、ECU30からECUバージョンの応答を得る。ゲートウェイECU10は、ECU30から得た応答のECUバージョンを管理サーバ装置70へ送信する。
なお、管理サーバ装置70が自動車1のECU30のECUバージョンを記録し管理する場合には、上記のステップS1及びS2は無くてもよい。
(ステップS3)管理サーバ装置70が、自動車1のECU30について、更新ファームウェアの有無を確認する。管理サーバ装置70は、ECU30のバージョン情報と電子署名付き更新ファームウェアを保持する。管理サーバ装置70は、ECU30のバージョン情報に基づいて、自動車1のECU30のECUバージョンが最新バージョンであるかを判定する。
(ステップS4)管理サーバ装置70は、ステップS3の結果、自動車1のECU30のECUバージョンが最新バージョンではない場合に、電子署名付き更新ファームウェアをゲートウェイECU10へ送信する。
(ステップS5)ゲートウェイECU10が、管理サーバ装置70から受信した電子署名付き更新ファームウェアを鍵管理装置20へ送信する。
(ステップS6)鍵管理装置20の検証部21が、ゲートウェイECU10から受信した電子署名付き更新ファームウェアの電子署名を、鍵記憶部23に記憶される検証鍵を使用して検証する。
(ステップS7)鍵管理装置20の署名部22は、ステップS6の検証部21による電子署名の検証が成功した電子署名付き更新ファームウェアの更新ファームウェアに対して、鍵記憶部23に記憶される共通鍵を使用して電子署名を施す。これにより、ECU30の共通鍵を使用して電子署名が施された電子署名付き更新ファームウェアが生成される。このECU30の共通鍵を使用して電子署名が施された電子署名付き更新ファームウェアのことを、管理サーバ装置70から受信した電子署名付き更新ファームウェアと区別するために、説明の便宜上、再署名更新ファームウェアと称する。
(ステップS8)鍵管理装置20は、再署名更新ファームウェアをゲートウェイECU10へ送信する。なお、ステップS6の検証部21による電子署名の検証が失敗した場合には、鍵管理装置20は、エラーメッセージをゲートウェイECU10へ送信する。
(ステップS9)ゲートウェイECU10は、鍵管理装置20から受信した再署名更新ファームウェアをECU30へ送信する。
(ステップS10)ECU30のCPU_50は、ゲートウェイECU10から受信した再署名更新ファームウェアをHSM_60へ送信する。
(ステップS11)ECU30のHSM_60は、ECU30の共通鍵を使用して、再署名更新ファームウェアの電子署名を検証する。HSM_60は、予め、ECU30の共通鍵を保持する。HSM_60は、再署名更新ファームウェアの電子署名の検証結果をCPU_50へ応答する。
(ステップS12)ECU30のCPU_50は、HSM_60から受信した応答が検証の成功である場合に、ステップS9でゲートウェイECU10から受信した再署名更新ファームウェアの更新ファームウェアを使用して、ファームウェア更新処理を実行する。これにより、ECU30のECUバージョンが最新バージョンになる。一方、ECU30のCPU_50は、HSM_60から受信した応答が検証の失敗である場合には、ファームウェア更新処理を実行しない。
(ステップS13)ECU30のCPU_50は、ファームウェア更新処理の実行が完了した場合に、更新完了通知をゲートウェイECU10へ送信する。ゲートウェイECU10は、ECU30から更新完了通知を受信すると、ECU30のファームウェアの更新完了通知を管理サーバ装置70へ送信する。
なお、ステップS13の更新完了通知については、実行してもよく、又は、実行しなくてもよい。
また、ステップS2において、ECUバージョンを示すECUバージョン情報に対して、暗号化したり又は電子署名を施したりしてもよい。以下、ECUバージョン情報に対して暗号化する場合を説明する。ECU30のHSM_60がECU30の共通鍵を使用してECUバージョン情報を暗号化し、ECUバージョン情報の暗号化データをゲートウェイECU10へ送信する。ゲートウェイECU10はECUバージョン情報の暗号化データを鍵管理装置20へ送信する。鍵管理装置20は、鍵記憶部23に記憶される共通鍵を使用してECUバージョン情報の暗号化データを復号化する。鍵管理装置20は、この復号化データを鍵記憶部23に記憶される検証鍵(管理サーバ装置70の共通鍵又は公開鍵)を使用して暗号化し、この暗号化データをゲートウェイECU10へ送信する。ゲートウェイECU10は、鍵管理装置20から受信した暗号化データを管理サーバ装置70へ送信する。管理サーバ装置70は、ゲートウェイECU10から受信した暗号化データを、共通鍵又は秘密鍵を使用して復号化する。この復号化によりECUバージョン情報が得られる。なお、ECUバージョン情報に対して電子署名を施す場合にも暗号化と同様の手順となる。
上述した第1実施形態によれば、ソフトウェア配布処理装置2が、管理サーバ装置70から受信した電子署名付き更新ファームウェアの電子署名を検証する。次いで、ソフトウェア配布処理装置2が、電子署名の検証が成功した電子署名付き更新ファームウェアの更新ファームウェアに対して、ECU30の共通鍵を使用して電子署名を施す。次いで、ソフトウェア配布処理装置2が、ECU30の共通鍵を使用して電子署名が施された再署名更新ファームウェアをECU30へ送信する。ECU30は、ソフトウェア配布処理装置2から受信した再署名更新ファームウェアの電子署名を、自己の共通鍵で検証する。ECU30は、電子署名の検証が成功した再署名更新ファームウェアの更新ファームウェアのみを使用して、ファームウェア更新処理を実行する。
これにより、ECU30がファームウェアの更新を実施する際に、ECU30の共通鍵で検証することができる。さらに、管理サーバ装置70はECU30の共通鍵を有する必要がないので、ECU30の共通鍵のサーバ間共有におけるコスト上の問題や、共通鍵の漏洩時に漏洩元の特定が難しいなどの共通鍵のセキュリティ上の問題が解消する。よって、ECU30のファームウェアの更新の際にECU30の共通鍵で検証することによる負担を軽減することができるという効果が得られる。
[第2実施形態]
第2実施形態において、自動車1及び管理システムの構成は上記の図1と同様である。第2実施形態では、ECU30がセキュアブートを実行する。
図5を参照してECU30のセキュアブートに係る動作を説明する。図5はセキュアブート方法の説明図である。ECU30において、CPU_50は、ECU30のファームウェアのプログラムコードであるECUコード(ECU code)521を実行する。ECUコード521は、記憶部52のフラッシュメモリに格納される。CPU_50に対し、ブートローダ(Boot Loader)522によってECUコード521が起動される。ブートローダ522のプログラム(ブートプログラム)は、記憶部52のROMに格納される。CPU_50は、初期起動時に記憶部52のROMからブートプログラムを起動し、ブートローダ522として機能する。HSM_60は、ECUコード521のCMAC(Cipher-based Message Authentication Code)の正解値である期待値BOOT_MACを保持する。期待値BOOT_MACは、予め、HSM_60に設定される。
(ステップS21)ブートローダ522はECUコード521をHSM_60へ送信する。
(ステップS22)HSM_60は、受信したECUコード521のCMAC(Cipher-based Message Authentication Code)を計算する。
(ステップS23)HSM_60は、計算結果のCMACの値と期待値BOOT_MACを比較する。この比較の結果、一致した場合にはHSM_60はブートローダ522へ検証の成功を応答し、不一致した場合にはHSM_60はブートローダ522へ検証の失敗を応答する。
(ステップS23)ブートローダ522は、HSM_60からの応答が検証の成功である場合にECUコード521を起動する。一方、ブートローダ522は、HSM_60からの応答が検証の失敗である場合にはECUコード521を起動しない。
ECU30のファームウェアを更新するとECUコード521が変わる。このため、ECU30が上述したセキュアブートを実行する場合には、ECU30のファームウェアを更新する際に、HSM_60に保持される期待値BOOT_MACも更新する必要がある。
図6は、第2実施形態に係る鍵管理装置20の構成図である。図6に示す鍵管理装置20は、上記の図3の構成に対してさらに期待値計算部24と暗号処理部25を備える。期待値計算部24はCMACを計算する。暗号処理部25は暗号処理を実行する。
図7を参照して本実施形態の動作を説明する。図7は、第2実施形態のソフトウェア配布処理方法のシーケンスチャートである。図7において、上記の図4の各ステップに対応する部分には同一の符号を付け、その説明を省略する。
ステップS1〜S6までは上記の図4と同じである。ステップS6における電子署名付き更新ファームウェアの電子署名の検証が成功した場合にのみ、ステップS31に進む。ステップS6における電子署名付き更新ファームウェアの電子署名の検証が失敗した場合には、鍵管理装置20からゲートウェイECU10へ、エラーメッセージが送信される。
(ステップS31)鍵管理装置20の期待値計算部24は、ステップS6における電子署名の検証が成功した電子署名付き更新ファームウェアの更新ファームウェアに対して、CMACを計算する。次いで、鍵管理装置20の暗号処理部25が、期待値計算部24の計算結果のCMACの値を、鍵記憶部23に記憶される共通鍵を使用して暗号化する。
(ステップS32)鍵管理装置20の署名部22は、ステップS6における電子署名の検証が成功した電子署名付き更新ファームウェアの更新ファームウェアとステップS31で暗号処理部25の暗号化により生成された暗号化データであるCMAC暗号化データに対して、鍵記憶部23に記憶される共通鍵を使用して電子署名を施す。これにより、ECU30の共通鍵を使用して電子署名が施された電子署名付き更新ファームウェアとCMAC暗号化データが生成される。このECU30の共通鍵を使用して電子署名が施された電子署名付き更新ファームウェアとCMAC暗号化データのことを、管理サーバ装置70から受信した電子署名付き更新ファームウェアと区別するために、説明の便宜上、再署名更新データと称する。
(ステップS33)鍵管理装置20は、再署名更新データをゲートウェイECU10へ送信する。
(ステップS34)ゲートウェイECU10は、鍵管理装置20から受信した再署名更新データをECU30へ送信する。
(ステップS35)ECU30のCPU_50は、ゲートウェイECU10から受信した再署名更新データの電子署名の検証をHSM_60へ依頼する。
(ステップS36)ECU30のHSM_60は、ECU30の共通鍵を使用して、再署名更新データの電子署名を検証する。HSM_60は、予め、ECU30の共通鍵を保持する。
(ステップS37)ECU30のHSM_60は、再署名更新データの電子署名の検証結果をCPU_50へ応答する。
(ステップS38)ECU30のCPU_50は、ステップS37でHSM_60から受信した応答が検証の成功である場合に、ステップS34でゲートウェイECU10から受信した再署名更新データのCMAC暗号化データをHSM_60へ送信し、期待値更新を依頼する。一方、ECU30のCPU_50は、ステップS37でHSM_60から受信した応答が検証の失敗である場合には、HSM_60に対して期待値更新を依頼しない。
(ステップS39)ECU30のHSM_60は、CPU_50からの期待値更新の依頼に応じて期待値更新処理を実行する。この期待値更新処理では、HSM_60は、CPU_50から受信した再署名更新データの更新ファームウェアのCMACを計算する。また、HSM_60は、CPU_50から受信した再署名更新データのCMAC暗号化データを、ECU30の共通鍵を使用して復号化する。次いで、HSM_60は、計算結果のCMACの値とCMAC暗号化データの復号結果の値を比較する。この比較の結果、一致した場合には、HSM_60は、CMAC暗号化データの復号結果の値を新しい期待値BOOT_MACとして保持する。この場合、期待値更新処理の結果が成功である。一方、その比較の結果、不一致した場合には、HSM_60は、期待値BOOT_MACを更新しない。この場合、期待値更新処理の結果が失敗である。
(ステップS40)ECU30のHSM_60は、期待値更新処理の結果をCPU_50へ応答する。
(ステップS41)ECU30のCPU_50は、ステップS40でHSM_60から受信した応答が期待値更新処理の成功である場合に、ステップS34でゲートウェイECU10から受信した再署名更新データの更新ファームウェアを使用して、ファームウェア更新処理を実行する。これにより、ECU30のECUバージョンが最新バージョンになる。また、HSM_60に保持される期待値BOOT_MACが最新バージョンになるので、ECU30のセキュアブートに対応することができる。一方、ECU30のCPU_50は、ステップS40でHSM_60から受信した応答が期待値更新処理の失敗である場合には、ファームウェア更新処理を実行しない。
(ステップS42)ECU30のCPU_50は、ファームウェア更新処理の実行が完了した場合に、更新完了通知をゲートウェイECU10へ送信する。ゲートウェイECU10は、ECU30から更新完了通知を受信すると、ECU30のファームウェアの更新完了通知を管理サーバ装置70へ送信する。
なお、ステップS42の更新完了通知については、実行してもよく、又は、実行しなくてもよい。
上述した第2実施形態によれば、ECU30がセキュアブートを実行する場合に対応することができる。
なお、更新ファームウェアを所定の方法で複数に分割し、該分割ごとにCMACの値を計算して期待値を生成してもよい。これにより、更新ファームウェア全体のCMACを計算するには鍵管理装置20の処理能力が不足し時間がかかる場合に、処理時間の短縮を図ることができる。この場合には、HSM_60は、更新ファームウェアの分割毎にCMACの期待値を保持する。そして、ECU30のセキュアブートの実行の際には、ブートローダ522が、ECUコード521を所定の方法で複数に分割し、ECUコード521の各分割をHSM_60へ送信する。HSM_60は、ECUコード521の分割毎に、CMACを計算して期待値と比較する。
また、更新ファームウェアのハッシュ値に対して期待値を持つようにしてもよい。この場合、鍵管理装置20は、更新ファームウェアのハッシュ値に対してCMACを計算し、この計算結果のCMACの値を期待値とする。そして、ECU30のセキュアブートの実行の際には、ブートローダ522が、ECUコード521のハッシュ値を計算してHSM_60へ送信する。これにより、HSM_60は、ECUコード521のハッシュ値についてのCMACの計算値と期待値の比較を行う。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、自動車1に備わるいずれかのECU30をゲートウェイECU10として機能させてもよい。
また、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、コンピュータとして自動車のECUを例に挙げたが、他のコンピュータにも適用可能である。例えば、通信ネットワークに接続される家電製品の内蔵コンピュータのファームウェアの更新に適用してもよい。
また、上述したソフトウェア配布処理装置2の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1…自動車、2…ソフトウェア配布処理装置、10…ゲートウェイECU、11…無線通信部、12…CANインタフェース、13…制御部、14…ユーザインタフェース、20…鍵管理装置、21…検証部、22…署名部、23…鍵記憶部、30…ECU、40…車載ネットワーク、50…CPU、52…記憶部、60…HSM、521…ECUコード、522…ブートローダ

Claims (3)

  1. ソフトウェア配布処理装置と、前記ソフトウェア配布処理装置と通信するコンピュータと、を備え、
    前記ソフトウェア配布処理装置は、
    ソフトウェアの更新データの電子署名の検証に使用される検証鍵と前記ソフトウェアがインストールされた前記コンピュータの共通鍵を記憶する鍵記憶部と、
    電子署名が施された前記更新データを受信する受信部と、
    前記受信部で受信された前記更新データの電子署名を前記鍵記憶部に記憶される前記検証鍵を使用して検証する検証部と、
    前記検証部による電子署名の検証が成功した前記更新データについてのメッセージ認証符号を計算するメッセージ認証符号計算部と、
    前記検証部による電子署名の検証が成功した前記更新データと当該更新データについて計算された前記メッセージ認証符号とを前記コンピュータへ送信する送信部と、を備え、
    前記コンピュータは、
    前記ソフトウェア配布処理装置から受信した前記更新データについてのメッセージ認証符号を計算し、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致した場合に前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記ソフトウェアの更新処理の検証に使用される新しい期待値として保持し、一方、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致しない場合には前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記新しい期待値として保持しないソフトウェア検証部、を備える、
    システム。
  2. 請求項1に記載のシステムを備える車両。
  3. ソフトウェア配布処理装置と、前記ソフトウェア配布処理装置と通信するコンピュータと、を備えるシステムのソフトウェア配布処理方法であって、
    前記ソフトウェア配布処理装置が、ソフトウェアの更新データの電子署名の検証に使用される検証鍵と前記ソフトウェアがインストールされた前記コンピュータの共通鍵を鍵記憶部に記憶する鍵記憶ステップと、
    前記ソフトウェア配布処理装置が、電子署名が施された前記更新データを受信する受信ステップと、
    前記ソフトウェア配布処理装置が、前記受信ステップで受信された前記更新データの電子署名を前記鍵記憶部に記憶される前記検証鍵を使用して検証する検証ステップと、
    前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データについてのメッセージ認証符号を計算するメッセージ認証符号計算ステップと、
    前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データと当該更新データについて計算された前記メッセージ認証符号とを前記コンピュータへ送信する送信ステップと、
    前記コンピュータが、前記ソフトウェア配布処理装置から受信した前記更新データについてのメッセージ認証符号を計算し、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致した場合に前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記ソフトウェアの更新処理の検証に使用される新しい期待値として保持し、一方、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致しない場合には前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記新しい期待値として保持しないソフトウェア検証ステップと、
    を含むソフトウェア配布処理方法。
JP2017158158A 2017-08-18 2017-08-18 システム、車両及びソフトウェア配布処理方法 Active JP6440334B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017158158A JP6440334B2 (ja) 2017-08-18 2017-08-18 システム、車両及びソフトウェア配布処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017158158A JP6440334B2 (ja) 2017-08-18 2017-08-18 システム、車両及びソフトウェア配布処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015134427A Division JP6197000B2 (ja) 2015-07-03 2015-07-03 システム、車両及びソフトウェア配布処理方法

Publications (2)

Publication Number Publication Date
JP2017208859A true JP2017208859A (ja) 2017-11-24
JP6440334B2 JP6440334B2 (ja) 2018-12-19

Family

ID=60415014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017158158A Active JP6440334B2 (ja) 2017-08-18 2017-08-18 システム、車両及びソフトウェア配布処理方法

Country Status (1)

Country Link
JP (1) JP6440334B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651771A (zh) * 2020-06-08 2020-09-11 湖北阿桑奇汽车电子科技有限公司 一种安全fota使用方法
CN113632155A (zh) * 2019-03-29 2021-11-09 日立安斯泰莫株式会社 运算装置、判定方法
WO2023002635A1 (ja) * 2021-07-21 2023-01-26 三菱電機株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
US11914682B2 (en) 2018-10-12 2024-02-27 Mitsubishi Electric Corporation Software verification device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005259028A (ja) * 2004-03-15 2005-09-22 Mitsubishi Electric Corp 利用者装置及び利用者装置用プログラム及び認証システム及びプログラム
JP2007527044A (ja) * 2003-07-04 2007-09-20 バイエリッシェ モートーレン ウエルケ アクチエンゲゼルシャフト 特に自動車の制御装置内にロード可能なソフトウェアコンポーネントを認証するための方法
JP2008226159A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及び画像処理装置
US20140279985A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Extending Platform Trust During Program Updates
JP2014191659A (ja) * 2013-03-27 2014-10-06 Fujitsu Fsas Inc サーバ装置およびハッシュ値処理方法
JP2015103163A (ja) * 2013-11-27 2015-06-04 株式会社オートネットワーク技術研究所 プログラム更新システム及びプログラム更新方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527044A (ja) * 2003-07-04 2007-09-20 バイエリッシェ モートーレン ウエルケ アクチエンゲゼルシャフト 特に自動車の制御装置内にロード可能なソフトウェアコンポーネントを認証するための方法
JP2005259028A (ja) * 2004-03-15 2005-09-22 Mitsubishi Electric Corp 利用者装置及び利用者装置用プログラム及び認証システム及びプログラム
JP2008226159A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア更新方法及び画像処理装置
US20140279985A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Extending Platform Trust During Program Updates
JP2014191659A (ja) * 2013-03-27 2014-10-06 Fujitsu Fsas Inc サーバ装置およびハッシュ値処理方法
JP2015103163A (ja) * 2013-11-27 2015-06-04 株式会社オートネットワーク技術研究所 プログラム更新システム及びプログラム更新方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11914682B2 (en) 2018-10-12 2024-02-27 Mitsubishi Electric Corporation Software verification device
CN113632155A (zh) * 2019-03-29 2021-11-09 日立安斯泰莫株式会社 运算装置、判定方法
CN113632155B (zh) * 2019-03-29 2024-04-12 日立安斯泰莫株式会社 运算装置、判定方法
CN111651771A (zh) * 2020-06-08 2020-09-11 湖北阿桑奇汽车电子科技有限公司 一种安全fota使用方法
WO2023002635A1 (ja) * 2021-07-21 2023-01-26 三菱電機株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
JPWO2023002635A1 (ja) * 2021-07-21 2023-01-26
JP7341376B2 (ja) 2021-07-21 2023-09-08 三菱電機株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム

Also Published As

Publication number Publication date
JP6440334B2 (ja) 2018-12-19

Similar Documents

Publication Publication Date Title
JP6197000B2 (ja) システム、車両及びソフトウェア配布処理方法
JP6260067B1 (ja) 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム
JP6228093B2 (ja) システム
JP6188672B2 (ja) 鍵管理システム
JP6262681B2 (ja) 管理装置、車両、管理方法、及びコンピュータプログラム
JP6238939B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP6440334B2 (ja) システム、車両及びソフトウェア配布処理方法
JP6190443B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP6192673B2 (ja) 鍵管理システム、鍵管理方法およびコンピュータプログラム
WO2018029893A1 (ja) データ提供システム、データ保安装置、データ提供方法、及びコンピュータプログラム
JP2018055566A (ja) 保守装置、保守方法、及びコンピュータプログラム
JP6476462B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2018006782A (ja) データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム
JP6860464B2 (ja) システム及び管理方法
JP6188744B2 (ja) 管理システム、車両及び管理方法
JP6454919B2 (ja) 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム
JP6672243B2 (ja) データ提供システム、データ提供装置、データ提供方法、及びデータ提供プログラム
JP6554704B2 (ja) データ提供システム及びデータ提供方法
JP6464466B2 (ja) 保守装置、保守方法、及びコンピュータプログラム
JP6519060B2 (ja) 管理装置、車両、管理方法、及びコンピュータプログラム
JP2017208731A (ja) 管理システム、管理装置、車載コンピュータ、管理方法、及びコンピュータプログラム
JP6354099B2 (ja) データ提供システム及びデータ提供方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181119

R150 Certificate of patent or registration of utility model

Ref document number: 6440334

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150