JP6440334B2 - システム、車両及びソフトウェア配布処理方法 - Google Patents
システム、車両及びソフトウェア配布処理方法 Download PDFInfo
- Publication number
- JP6440334B2 JP6440334B2 JP2017158158A JP2017158158A JP6440334B2 JP 6440334 B2 JP6440334 B2 JP 6440334B2 JP 2017158158 A JP2017158158 A JP 2017158158A JP 2017158158 A JP2017158158 A JP 2017158158A JP 6440334 B2 JP6440334 B2 JP 6440334B2
- Authority
- JP
- Japan
- Prior art keywords
- distribution processing
- ecu
- software distribution
- processing device
- authentication code
- 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.)
- Active
Links
Images
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実施形態に係る自動車1及び管理システムを示す図である。図1において、自動車1は、ゲートウェイECU10と鍵管理装置20と複数のECU30と車載ネットワーク40を備える。本実施形態では、ソフトウェア配布処理装置2はゲートウェイECU10と鍵管理装置20から構成される。ゲートウェイECU10とECU30は車載ネットワーク40に接続される。車載ネットワーク40として、例えばCANが使用される。CANは車両に搭載される通信ネットワークの一つとして知られている。本実施形態では、車載ネットワーク40はCANである。ゲートウェイECU10と各ECU30とは、車載ネットワーク40を介してデータを交換する。ECU30は、車載ネットワーク40を介して、他のECU30との間でデータを交換する。
図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がセキュアブートを実行する。
第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として機能させてもよい。
例えば、自動車1に備わるいずれかのECU30をゲートウェイECU10として機能させてもよい。
また、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、コンピュータとして自動車のECUを例に挙げたが、他のコンピュータにも適用可能である。例えば、通信ネットワークに接続される家電製品の内蔵コンピュータのファームウェアの更新に適用してもよい。
また、上述したソフトウェア配布処理装置2の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、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に記載のシステムを備える車両。
- ソフトウェア配布処理装置と、前記ソフトウェア配布処理装置と通信するコンピュータと、を備えるシステムのソフトウェア配布処理方法であって、
前記ソフトウェア配布処理装置が、ソフトウェアの更新データの電子署名の検証に使用される検証鍵と前記ソフトウェアがインストールされた前記コンピュータの共通鍵を鍵記憶部に記憶する鍵記憶ステップと、
前記ソフトウェア配布処理装置が、電子署名が施された前記更新データを受信する受信ステップと、
前記ソフトウェア配布処理装置が、前記受信ステップで受信された前記更新データの電子署名を前記鍵記憶部に記憶される前記検証鍵を使用して検証する検証ステップと、
前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データについてのメッセージ認証符号を計算するメッセージ認証符号計算ステップと、
前記ソフトウェア配布処理装置が、前記検証ステップによる電子署名の検証が成功した前記更新データと当該更新データについて計算された前記メッセージ認証符号とを前記コンピュータへ送信する送信ステップと、
前記コンピュータが、前記ソフトウェア配布処理装置から受信した前記更新データについてのメッセージ認証符号を計算し、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致した場合に前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記ソフトウェアの更新処理の検証に使用される新しい期待値として保持し、一方、当該計算結果のメッセージ認証符号と前記ソフトウェア配布処理装置から受信したメッセージ認証符号とが一致しない場合には前記ソフトウェア配布処理装置から受信したメッセージ認証符号を前記新しい期待値として保持しないソフトウェア検証ステップと、
を含むソフトウェア配布処理方法。
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 JP2017208859A (ja) | 2017-11-24 |
JP6440334B2 true 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) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112805703A (zh) | 2018-10-12 | 2021-05-14 | 三菱电机株式会社 | 软件验证装置、软件验证方法以及软件验证程序 |
AT521914B1 (de) | 2018-12-13 | 2020-10-15 | Avl List Gmbh | Kommunikationsmodul |
JP7123843B2 (ja) * | 2019-03-29 | 2022-08-23 | 日立Astemo株式会社 | 演算装置、判定方法 |
CN111651771A (zh) * | 2020-06-08 | 2020-09-11 | 湖北阿桑奇汽车电子科技有限公司 | 一种安全fota使用方法 |
WO2023002635A1 (ja) * | 2021-07-21 | 2023-01-26 | 三菱電機株式会社 | 情報処理装置、情報処理方法、及び、情報処理プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100974419B1 (ko) * | 2003-07-04 | 2010-08-05 | 바이에리셰 모토렌 베르케 악티엔게젤샤프트 | 차량 제어 유닛에 로딩할 수 있는 소프트웨어 컴포넌트의인증 방법 |
JP2005259028A (ja) * | 2004-03-15 | 2005-09-22 | Mitsubishi Electric Corp | 利用者装置及び利用者装置用プログラム及び認証システム及びプログラム |
JP5116325B2 (ja) * | 2007-03-15 | 2013-01-09 | 株式会社リコー | 情報処理装置、ソフトウェア更新方法及び画像処理装置 |
US9201642B2 (en) * | 2013-03-15 | 2015-12-01 | International Business Machines Corporation | Extending platform trust during program updates |
JP6063321B2 (ja) * | 2013-03-27 | 2017-01-18 | 株式会社富士通エフサス | サーバ装置およびハッシュ値処理方法 |
JP5949732B2 (ja) * | 2013-11-27 | 2016-07-13 | 株式会社オートネットワーク技術研究所 | プログラム更新システム及びプログラム更新方法 |
-
2017
- 2017-08-18 JP JP2017158158A patent/JP6440334B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017208859A (ja) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6197000B2 (ja) | システム、車両及びソフトウェア配布処理方法 | |
JP6440334B2 (ja) | システム、車両及びソフトウェア配布処理方法 | |
JP6260067B1 (ja) | 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム | |
JP6228093B2 (ja) | システム | |
JP6188672B2 (ja) | 鍵管理システム | |
JP6262681B2 (ja) | 管理装置、車両、管理方法、及びコンピュータプログラム | |
JP6238939B2 (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
JP6190443B2 (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
JP6192673B2 (ja) | 鍵管理システム、鍵管理方法およびコンピュータプログラム | |
CN109314644B (zh) | 数据提供系统、数据保护装置、数据提供方法以及存储介质 | |
JP6476462B2 (ja) | 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム | |
JP6860464B2 (ja) | システム及び管理方法 | |
JP2018006782A (ja) | データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム | |
JP6188744B2 (ja) | 管理システム、車両及び管理方法 | |
JP6454919B2 (ja) | 管理システム、データ提供装置、車載コンピュータ、管理方法、及びコンピュータプログラム | |
JP6672243B2 (ja) | データ提供システム、データ提供装置、データ提供方法、及びデータ提供プログラム | |
JP6554704B2 (ja) | データ提供システム及びデータ提供方法 | |
JP6464466B2 (ja) | 保守装置、保守方法、及びコンピュータプログラム | |
JP6519060B2 (ja) | 管理装置、車両、管理方法、及びコンピュータプログラム | |
JP6354099B2 (ja) | データ提供システム及びデータ提供方法 | |
JP2017208731A (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 |