(57)【要約】【課題】ＥＣＵ等の車載コンピュータにデータを適用する際の信頼性を向上させること。【解決手段】車両に搭載される保守装置は、車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管ステップと、車両に供給された更新データを使用して、車載コンピュータに適用される新データを生成するデータ生成ステップと、新データを車載コンピュータに適用させる制御を行う実行制御ステップと、車載コンピュータへの新データの適用が失敗した場合に、車両に再度供給された更新データを使用して、車載コンピュータに適用される新データを再度生成するデータ再生成ステップと、再度生成された新データを車載コンピュータに適用させる制御を行う再実行制御ステップと、を実行する。【選択図】図４
2018058582.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載される保守装置であり、
前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管部と、
前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成部と、
前記新データを前記車載コンピュータに適用させる制御を行う実行制御部と、を備え、
前記実行制御部は、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して前記データ生成部により再度生成された新データを前記車載コンピュータに適用させる制御を行う、
保守装置。
【請求項２】
前記更新データと共に前記車両に供給された鍵並びに暗号化処理及び復号処理のコンピュータプログラムを使用して、データの暗号化処理及び暗号化データの復号処理を実行する暗号処理部をさらに備え、
前記暗号処理部は、前記データ保管部に格納されるデータを暗号化し、前記データ保管部に格納されている暗号化データを復号する、
請求項１に記載の保守装置。
【請求項３】
車両に搭載される保守装置の保守方法であり、
前記保守装置が、前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管ステップと、
前記保守装置が、前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成ステップと、
前記保守装置が、前記新データを前記車載コンピュータに適用させる制御を行う実行制御ステップと、
前記保守装置が、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して、前記車載コンピュータに適用される新データを再度生成するデータ再生成ステップと、
前記保守装置が、再度生成された新データを前記車載コンピュータに適用させる制御を行う再実行制御ステップと、
を含む保守方法。
【請求項４】
車両に搭載される保守装置のコンピュータに、
前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管機能と、
前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成機能と、
前記新データを前記車載コンピュータに適用させる制御を行う実行制御機能と、を実現させるためのコンピュータプログラムであり、
前記実行制御機能は、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して前記データ生成機能により再度生成された新データを前記車載コンピュータに適用させる制御を行う、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保守装置、保守方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、自動車は、ＥＣＵ（Electronic Control Unit：電子制御装置）を有し、ＥＣＵによってエンジン制御等の機能を実現する。ＥＣＵは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。複数のＥＣＵをＣＡＮ（Controller Area Network）に接続して構成される車載制御システムについてのセキュリティ技術が例えば非特許文献１に記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】竹森敬祐、“セキュアエレメントを基点とした車載制御システムの保護  −要素技術の整理と考察−”、電子情報通信学会、信学技報、vol. 114、no. 508、pp. 73-78、2015年3月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
自動車の車載制御システムのＥＣＵに更新プログラム等のデータを適用する際の信頼性を向上させることが一つの課題であった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、ＥＣＵ等の車載コンピュータにデータを適用する際の信頼性を向上させることができる、保守装置、保守方法、及びコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
（１）本発明の一態様は、車両に搭載される保守装置であり、前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管部と、前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成部と、前記新データを前記車載コンピュータに適用させる制御を行う実行制御部と、を備え、前記実行制御部は、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して前記データ生成部により再度生成された新データを前記車載コンピュータに適用させる制御を行う、保守装置である。
（２）本発明の一態様は、上記（１）の保守装置において、前記更新データと共に前記車両に供給された鍵並びに暗号化処理及び復号処理のコンピュータプログラムを使用して、データの暗号化処理及び暗号化データの復号処理を実行する暗号処理部をさらに備え、前記暗号処理部は、前記データ保管部に格納されるデータを暗号化し、前記データ保管部に格納されている暗号化データを復号する、保守装置である。
【０００７】
（３）本発明の一態様は、車両に搭載される保守装置の保守方法であり、前記保守装置が、前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管ステップと、前記保守装置が、前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成ステップと、前記保守装置が、前記新データを前記車載コンピュータに適用させる制御を行う実行制御ステップと、前記保守装置が、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して、前記車載コンピュータに適用される新データを再度生成するデータ再生成ステップと、前記保守装置が、再度生成された新データを前記車載コンピュータに適用させる制御を行う再実行制御ステップと、を含む保守方法である。
【０００８】
（４）本発明の一態様は、車両に搭載される保守装置のコンピュータに、前記車両に搭載される車載コンピュータに適用されたデータを格納するデータ保管機能と、前記車両に供給された更新データを使用して、前記車載コンピュータに適用される新データを生成するデータ生成機能と、前記新データを前記車載コンピュータに適用させる制御を行う実行制御機能と、を実現させるためのコンピュータプログラムであり、前記実行制御機能は、前記車載コンピュータへの前記新データの適用が失敗した場合に、前記車両に再度供給された更新データを使用して前記データ生成機能により再度生成された新データを前記車載コンピュータに適用させる制御を行う、コンピュータプログラムである。
【発明の効果】
【０００９】
本発明によれば、ＥＣＵ等の車載コンピュータにデータを適用する際の信頼性を向上させることができるという効果が得られる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る自動車１００１の構成例を示す図である。
【図２】一実施形態に係るインフォテイメント機器１０４０のハードウェア構成例を示すブロック図である。
【図３】一実施形態に係る車載診断ツール１０４０ａの機能構成例を示すブロック図である。
【図４】一実施形態に係る保守方法の例を示すシーケンスチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
【００１２】
図１は、一実施形態に係る自動車１００１の構成例を示す図である。本実施形態では、車載コンピュータの一例として、特に、自動車１００１に搭載されるＥＣＵ（電子制御装置）を挙げて説明する。
【００１３】
図１において、自動車１００１は、車載コンピュータシステム１００２と、インフォテイメント（Infotainment）機器１０４０と、ＴＣＵ（Tele Communication Unit）１０５０と、診断ポート１０６０と、ゲートウェイ１０７０とを備える。車載コンピュータシステム１００２は、データ保安装置１０１０と複数のＥＣＵ１０２０とがＣＡＮ（Controller Area Network）１０３０に接続されて構成される。ＣＡＮ１０３０は通信ネットワークである。ＣＡＮは車両に搭載される通信ネットワークの一つとして知られている。本実施形態において、車載コンピュータシステム１００２は、自動車１００１の車載制御システムとして機能する。
【００１４】
ＥＣＵ１０２０は、自動車１００１に備わる車載コンピュータである。ＥＣＵ１０２０は、自動車１００１のエンジン制御等の制御機能を有する。ＥＣＵ１０２０として、例えば、エンジン制御機能を有するＥＣＵ、ハンドル制御機能を有するＥＣＵ、ブレーキ制御機能を有するＥＣＵなどがある。データ保安装置１０１０は、自動車１００１に備わる車載コンピュータである。データ保安装置１０１０は、自動車１００１に搭載されたＥＣＵ１０２０に適用されるデータのセキュリティ（保安）の機能を有する。なお、自動車１００１に搭載されたいずれかのＥＣＵをデータ保安装置１０１０として機能させてもよい。
【００１５】
データ保安装置１０１０は、ＣＡＮ１０３０を介して、各ＥＣＵ１０２０との間でデータを交換する。ＥＣＵ１０２０は、ＣＡＮ１０３０を介して、他のＥＣＵ１０２０との間でデータを交換する。
【００１６】
なお、車両に搭載される通信ネットワークとして、ＣＡＮ以外の通信ネットワークを自動車１００１に備え、ＣＡＮ以外の通信ネットワークを介して、データ保安装置１０１０とＥＣＵ１０２０との間のデータの交換、及び、ＥＣＵ１０２０同士の間のデータの交換が行われてもよい。例えば、ＬＩＮ（Local Interconnect Network）を自動車１００１に備えてもよい。また、ＣＡＮとＬＩＮとを自動車１００１に備えてもよい。また、自動車１００１において、ＬＩＮに接続するＥＣＵ１０２０を備えてもよい。また、データ保安装置１０１０は、ＣＡＮとＬＩＮとに接続されてもよい。また、データ保安装置１０１０は、ＣＡＮを介して該ＣＡＮに接続されるＥＣＵ１０２０との間でデータを交換し、また、ＬＩＮを介して該ＬＩＮに接続されるＥＣＵ１０２０との間でデータを交換してもよい。また、ＥＣＵ１０２０同士が、ＬＩＮを介してデータを交換してもよい。
【００１７】
ゲートウェイ１０７０は、車載コンピュータシステム１００２の内部と外部の間の通信を監視する。ゲートウェイ１０７０はＣＡＮ１０３０に接続される。また、ゲートウェイ１０７０は、車載コンピュータシステム１００２の外部の装置の例として、インフォテイメント機器１０４０、ＴＣＵ１０５０及び診断ポート１０６０と接続される。データ保安装置１０１０及びＥＣＵ１０２０は、ゲートウェイ１０７０を介して、車載コンピュータシステム１００２の外部の装置と通信を行う。
【００１８】
なお、ＣＡＮ１０３０の構成として、ＣＡＮ１０３０が複数のバス（通信線）を備え、該複数のバスをゲートウェイ１０７０に接続してもよい。この場合、一つのバスに、一つのＥＣＵ１０２０又は複数のＥＣＵ１０２０が接続される。また、同じバスにデータ保安装置１０１０とＥＣＵ１０２０とが接続されてもよく、又は、データ保安装置１０１０が接続されるバスとＥＣＵ１０２０が接続されるバスとを別個にしてもよい。
【００１９】
自動車１００１は診断ポート１０６０を備える。診断ポート１０６０として、例えばＯＢＤ（On-board Diagnostics）ポートを使用してもよい。診断ポート１０６０には、自動車１００１の外部の装置を接続可能である。診断ポート１０６０に接続可能な自動車１００１の外部の装置として、例えば、図１に示されるメンテナンスツール２１００などがある。車載コンピュータシステム１００２と、診断ポート１０６０に接続された装置、例えばメンテナンスツール２１００とは、診断ポート１０６０及びゲートウェイ１０７０を介して、データを交換する。メンテナンスツール２１００は、ＯＢＤポートに接続される従来の診断ツールの機能を有していてもよい。
【００２０】
自動車１００１はインフォテイメント機器１０４０を備える。インフォテイメント機器１０４０は、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを備える。本実施形態では、インフォテイメント機器１０４０は、さらに、車載診断ツールの機能を備える。
【００２１】
自動車１００１は、ＴＣＵ１０５０を備える。ＴＣＵ１０５０は通信装置である。ＴＣＵ１０５０は通信モジュール１０５１を備える。通信モジュール１０５１は、無線通信ネットワークを利用して無線通信を行う。通信モジュール１０５１は、ＳＩＭ（Subscriber Identity Module）１０５２を備える。ＳＩＭ１０５２は、無線通信ネットワークを利用するための情報が書き込まれたＳＩＭである。通信モジュール１０５１は、ＳＩＭ１０５２を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。なお、ＳＩＭ１０５２として、ｅＳＩＭ（Embedded Subscriber Identity Module）を使用してもよい。
【００２２】
インフォテイメント機器１０４０は、ゲートウェイ１０７０を介して、ＴＣＵ１０５０とデータを交換する。なお、ＴＣＵ１０５０とインフォテイメント機器１０４０とを通信ケーブルで直接接続し、ＴＣＵ１０５０とインフォテイメント機器１０４０は該通信ケーブルを介してデータを交換してもよい。例えば、ＵＳＢ（universal serial bus）ケーブルでＴＣＵ１０５０とインフォテイメント機器１０４０とを直接接続し、ＴＣＵ１０５０とインフォテイメント機器１０４０は該ＵＳＢケーブルを介してデータを交換してもよい。また、ＴＣＵ１０５０とインフォテイメント機器１０４０とをＵＳＢケーブル等の通信ケーブルで直接接続し、該通信ケーブルを介してＴＣＵ１０５０とインフォテイメント機器１０４０間のデータの交換を行う場合、ＴＣＵ１０５０とインフォテイメント機器１０４０とのうち送信側の装置は、受信側の装置に送信するデータを一時的に蓄えるバッファを備えてもよい。
【００２３】
なお、ＴＣＵ１０５０を診断ポート１０６０に接続し、インフォテイメント機器１０４０が、ゲートウェイ１０７０及び診断ポート１０６０を介して、該診断ポート１０６０に接続されたＴＣＵ１０５０とデータを交換してもよい。又は、インフォテイメント機器１０４０が、ＳＩＭ１０５２を含む通信モジュール１０５１を備えてもよい。インフォテイメント機器１０４０がＳＩＭ１０５２を含む通信モジュール１０５１を備える場合には、自動車１００１はＴＣＵ１０５０を備えなくてもよい。
【００２４】
データ保安装置１０１０は、メイン演算器１０１１とＨＳＭ（Hardware Security Module）１０１２を備える。メイン演算器１０１１は、データ保安装置１０１０の機能を実現させるためのコンピュータプログラムを実行する。ＨＳＭ１０１２は暗号処理機能等を有する。ＨＳＭ１０１２は耐タンパー性（Tamper Resistant）を有する。ＨＳＭ１０１２はセキュアエレメント（Secure Element：ＳＥ）の例である。ＨＳＭ１０１２は、データを記憶する記憶部１０１３を備える。メイン演算器１０１１はＨＳＭ１０１２を使用する。
【００２５】
ＥＣＵ１０２０は、メイン演算器１０２１とＳＨＥ（Secure Hardware Extension）１０２２を備える。メイン演算器１０２１は、ＥＣＵ１０２０の機能を実現させるためのコンピュータプログラムを実行する。ＳＨＥ１０２２は暗号処理機能等を有する。ＳＨＥ１０２２は耐タンパー性を有する。ＳＨＥ１０２２はセキュアエレメントの例である。ＳＨＥ１０２２は、データを記憶する記憶部１０２３を備える。メイン演算器１０２１はＳＨＥ１０２２を使用する。
【００２６】
サーバ装置２０００は、通信回線を介して、自動車１００１のＴＣＵ１０５０の通信モジュール１０５１とデータを送受する。サーバ装置２０００は、自動車１００１のＴＣＵ１０５０の通信モジュール１０５１が利用する無線通信ネットワークを介して、該通信モジュール１０５１とデータを送受する。又は、サーバ装置２０００は、インターネット等の通信ネットワークと該無線通信ネットワークとを介して、該通信モジュール１０５１とデータを送受してもよい。また、例えば、サーバ装置２０００と通信モジュール１０５１との間をＶＰＮ（Virtual Private Network）回線等の専用回線で接続し、該専用回線でデータを送受してもよい。例えば、ＳＩＭ１０５２に対応する無線通信ネットワークによって、ＶＰＮ回線等の専用回線が提供されてもよい。なお、サーバ装置２０００と自動車１００１とを通信ケーブルで接続してもよい。例えば、サーバ装置２０００と自動車１００１のゲートウェイ１０７０とを通信ケーブルで接続するように構成してもよい。
【００２７】
サーバ装置２０００は、ＥＣＵ１０２０に適用されるＥＣＵコード（ECU code）を自動車１００１に供給する。ＥＣＵコードは、ＥＣＵ１０２０に適用されるデータの例である。ＥＣＵコードは、ＥＣＵ１０２０にインストールされる更新プログラム等のコンピュータプログラムであってもよく、又は、ＥＣＵ１０２０に設定されるパラメータ設定値などの設定データであってもよい。
【００２８】
図２は、インフォテイメント機器１０４０のハードウェア構成例を示すブロック図である。図２において、インフォテイメント機器１０４０は、ＣＰＵ（Central Processing Unit：中央演算処理装置）１０と、記憶部１２と、インタフェース部１６と、タッチパネル１８と、マイクロフォン（マイク）２０と、スピーカ２２とを備える。これら各部はデータを交換できるように構成されている。
【００２９】
ＣＰＵ１０はインフォテイメント機器１０４０の制御を行う。この制御機能は、ＣＰＵ１０がコンピュータプログラムを実行することにより実現される。記憶部１２は、ＣＰＵ１０で実行されるコンピュータプログラムや各種のデータを記憶する。記憶部１２は、少なくとも、車載診断ツールプログラム（図示せず）を記憶している。車載診断ツールプログラムは、車載診断ツールの機能を実現させるためのコンピュータプログラムである。
【００３０】
インタフェース部１６は、自インフォテイメント機器１０４０の外部の装置とデータを送受する。タッチパネル１８は、液晶パネル等の表示画面を備え、表示画面へのデータ表示と、利用者による表示画面へのタッチ操作に応じたデータ入力とを行う。マイク２０は音声の入力を行う。スピーカ２２は音声の再生を行う。
【００３１】
図３は、本実施形態に係る車載診断ツール１０４０ａの機能構成例を示すブロック図である。図３において、車載診断ツール１０４０ａは、ＥＣＵコード保管部３０と、ＥＣＵコード生成部３２と、検証部３４と、車両情報取得部３６と、実行制御部３８と、暗号処理部４０とを備える。これら車載診断ツール１０４０ａの各部の機能は、図２に示されるインフォテイメント機器１０４０において、ＣＰＵ１０が記憶部１２に記憶される車載診断ツールプログラムを実行することにより実現される。車載診断ツール１０４０ａは、自動車１００１に搭載される保守装置の例である。
【００３２】
ＥＣＵコード保管部３０は、ＥＣＵ１０２０に適用されたＥＣＵコードを格納する。ＥＣＵコード生成部３２は、サーバ装置２０００から自動車１００１に供給されたＥＣＵコード更新データを使用して、ＥＣＵ１０２０に適用される新ＥＣＵコードを生成する。検証部３４は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードを、サーバ装置２０００から自動車１００１に供給された新ＥＣＵコード電子署名を使用して検証する。
【００３３】
車両情報取得部３６は、自動車１００１の状態を示す車両情報を取得する。実行制御部３８は、新ＥＣＵコードをＥＣＵ１０２０に適用させる制御を行う。暗号処理部４０は、サーバ装置２０００から自動車１００１に供給された鍵を使用して、データの暗号化処理及び暗号化データの復号処理を実行する。
【００３４】
なお、車載診断ツール１０４０ａは、ＯＢＤポートに接続される従来の診断ツールの機能をさらに有していてもよい。
【００３５】
次に図４を参照して本実施形態に係る保守方法の例を説明する。図４は、本実施形態に係る保守方法の例を示すシーケンスチャートである。
【００３６】
以下、インフォテイメント機器１０４０は、ゲートウェイ１０７０及びＣＡＮ１０３０を介して、ＥＣＵ１０２０との間でデータを送受する。インフォテイメント機器１０４０の車載診断ツール１０４０ａは、インフォテイメント機器１０４０のインタフェース部１６により、ＥＣＵ１０２０との間でデータを送受する。
【００３７】
サーバ装置２０００は、自動車１００１のＴＣＵ１０５０と通信を行い、ＴＣＵ１０５０及びゲートウェイ１０７０を介して、自動車１００１のインフォテイメント機器１０４０との間でデータを送受する。インフォテイメント機器１０４０の車載診断ツール１０４０ａは、インフォテイメント機器１０４０のインタフェース部１６により、サーバ装置２０００との間でデータを送受する。なお、サーバ装置２０００とインフォテイメント機器１０４０との間の通信路として、暗号化通信路を使用してもよい。例えば、サーバ装置２０００とインフォテイメント機器１０４０は、暗号化通信路の一例として、ｈｔｔｐｓ（hypertext transfer protocol secure）通信を行ってもよい。
【００３８】
図４に示す保守方法の手順は、例えば、ＥＣＵ１０２０のＥＣＵコードの更新ありがサーバ装置２０００から車載診断ツール１０４０ａに通知された際に、車載診断ツール１０４０ａからＥＣＵ１０２０にＥＣＵコードの更新ありを通知して開始される。
【００３９】
（ステップＳ１）ＥＣＵ１０２０は、自己に適用されているＥＣＵコードを車載診断ツール１０４０ａに送信する。車載診断ツール１０４０ａは、ＥＣＵ１０２０から送信されたＥＣＵコードを受信する。車載診断ツール１０４０ａの実行制御部３８は、ＥＣＵ１０２０から受信したＥＣＵコードのバージョンを記録する。
【００４０】
（ステップＳ２）車載診断ツール１０４０ａのＥＣＵコード保管部３０は、ＥＣＵ１０２０から受信したＥＣＵコード（以下、現適用コードと称する）を格納する。これにより、ＥＣＵ１０２０に現在適用されているＥＣＵコードがＥＣＵコード保管部３０にバックアップされる。
【００４１】
なお、ＥＣＵ１０２０に現在適用されているＥＣＵコードがＥＣＵコード保管部３０に予め格納されている場合には、ステップＳ２の現適用コードのバックアップ（格納）を省略してもよい。
【００４２】
（ステップＳ３）車載診断ツール１０４０ａの実行制御部３８は、ＥＣＵコード情報をサーバ装置２０００に通知（送信）する。ＥＣＵコード情報は、ステップＳ１でＥＣＵ１０２０から受信した現適用コードのバージョンを示す情報を含む。サーバ装置２０００は、車載診断ツール１０４０ａから送信されたＥＣＵコード情報を受信する。
【００４３】
（ステップＳ４）サーバ装置２０００は、車載診断ツール１０４０ａから受信したＥＣＵコード情報に基づいて、ＥＣＵコード更新データを生成する。本実施形態での一例として、ＥＣＵコード更新データは、ＥＣＵ１０２０に新たに適用されるＥＣＵコードである新ＥＣＵコードと、ＥＣＵコード情報で示されるバージョンのＥＣＵコードとの差分データ（差分コード）である。
【００４４】
サーバ装置２０００は、新ＥＣＵコードの電子署名を、サーバ装置２０００の署名鍵を使用して生成する。サーバ装置２０００の署名鍵は、サーバ装置２０００の秘密鍵であってもよく、又は、共通鍵であってもよい。サーバ装置２０００の署名鍵がサーバ装置２０００の秘密鍵である場合には、サーバ装置２０００の公開鍵（公開鍵証明書）を車載診断ツール１０４０ａに予め供給しておく。一方、サーバ装置２０００の署名鍵が共通鍵である場合には、該共通鍵を、サーバ装置２０００と車載診断ツール１０４０ａとの間で予め安全に共有しておく。新ＥＣＵコードの電子署名は、新ＥＣＵコードのダイジェスト値をサーバ装置２０００の署名鍵で暗号化した暗号化データである。ダイジェスト値として、例えば、ハッシュ（hash）関数により算出される値、又は、排他的論理和演算により算出される値などが挙げられる。例えば、新ＥＣＵコードの電子署名は、新ＥＣＵコードを入力値に使用して算出されるハッシュ関数値である。
【００４５】
サーバ装置２０００は、差分コードと、新ＥＣＵコードの電子署名（以下、新ＥＣＵコード電子署名と称する）とを車載診断ツール１０４０ａに送信する。車載診断ツール１０４０ａは、サーバ装置２０００から送信された差分コードと、新ＥＣＵコード電子署名とを受信する。
【００４６】
（ステップＳ５）車載診断ツール１０４０ａのＥＣＵコード生成部３２は、サーバ装置２０００から受信した差分コードと、ＥＣＵコード保管部３０に格納されている現適用コードとから、新ＥＣＵコードを生成する。
【００４７】
（ステップＳ６）車載診断ツール１０４０ａの検証部３４は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードを、サーバ装置２０００から受信した新ＥＣＵコード電子署名を使用して検証する。検証部３４は、サーバ装置２０００の署名鍵を使用して新ＥＣＵコード電子署名を復号する。また、検証部３４は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードのダイジェスト値を生成する。次いで、検証部３４は、該生成したダイジェスト値と、新ＥＣＵコード電子署名の復号結果とを比較する。この比較の結果、両者が一致する場合にはＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証が合格であり、両者が一致しない場合にはＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証が不合格である。
【００４８】
実行制御部３８は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証結果が合格である場合に、ステップＳ７に処理を進める。一方、実行制御部３８は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証結果が不合格である場合には、図４の処理を終了する。
【００４９】
なお、ＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証結果が不合格である場合には、実行制御部３８は、所定のエラー処理を実行してもよい。例えば、実行制御部３８は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードの検証結果が不合格であることを示すエラーメッセージを、サーバ装置２０００に送信してもよい。サーバ装置２０００は、該エラーメッセージに応じて、所定のエラー処理を実行してもよい。例えば、サーバ装置２０００は、差分コードと新ＥＣＵコード電子署名とを車載診断ツール１０４０ａに再送信したり、又は、新ＥＣＵコード電子署名を再生成して車載診断ツール１０４０ａに送信したりしてもよい。
【００５０】
（ステップＳ７）車載診断ツール１０４０ａの実行制御部３８は、ＥＣＵコード生成部３２が生成した新ＥＣＵコードをＥＣＵ１０２０に送信し、該新ＥＣＵコードの適用を指示する。ＥＣＵ１０２０は、車載診断ツール１０４０ａから送信された新ＥＣＵコードを受信する。ＥＣＵ１０２０は、車載診断ツール１０４０ａから受信した新ＥＣＵコードを自己に適用する。ＥＣＵコードの適用には、例えば、標準規格「Unified diagnostic services on CAN implementation；UDSonCAN」の手順を使用する。
【００５１】
（ステップＳ８）ＥＣＵ１０２０は、車載診断ツール１０４０ａから受信した新ＥＣＵコードを自己に適用した後に、新ＥＣＵコードの適用の状態を測定する。本実施形態での一例として、新ＥＣＵコードの適用の状態の測定は、ＥＣＵ１０２０に適用されている新ＥＣＵコードのＣＭＡＣ（Cipher-based Message Authentication Code）の計算である。ＣＭＡＣの計算に使用されるＣＭＡＣ鍵は、ＥＣＵ１０２０と車載診断ツール１０４０ａとの間で予め安全に共有しておく。ＥＣＵ１０２０は、ＥＣＵ１０２０に適用されている新ＥＣＵコードのＣＭＡＣを、ＣＭＡＣ鍵により計算する。この計算結果のＣＭＡＣは、新ＥＣＵコードの適用の状態の測定結果である。
【００５２】
（ステップＳ９）ＥＣＵ１０２０は、新ＥＣＵコードの適用の状態の測定結果であるＣＭＡＣを、車載診断ツール１０４０ａに通知（送信）する。車載診断ツール１０４０ａは、ＥＣＵ１０２０から送信されたＣＭＡＣを受信する。車載診断ツール１０４０ａの実行制御部３８は、ＥＣＵ１０２０から受信した測定結果のＣＭＡＣを検証する。この測定結果のＣＭＡＣの検証では、ＥＣＵコード生成部３２が生成した新ＥＣＵコードのＣＭＡＣをＣＭＡＣ鍵により計算し、この計算結果のＣＭＡＣと、ＥＣＵ１０２０から受信した測定結果のＣＭＡＣとを比較する。この比較の結果、両者が一致する場合には測定結果のＣＭＡＣの検証が合格であり、両者が一致しない場合には測定結果のＣＭＡＣの検証が不合格である。測定結果のＣＭＡＣの検証が合格である場合には新ＥＣＵコードの適用が成功である。一方、測定結果のＣＭＡＣの検証が不合格である場合には新ＥＣＵコードの適用が失敗である。
【００５３】
実行制御部３８は、測定結果のＣＭＡＣの検証結果が合格である場合に、ステップＳ１０に処理を進める。一方、実行制御部３８は、測定結果のＣＭＡＣの検証結果が不合格である場合には、図４の処理を終了する。
【００５４】
なお、測定結果のＣＭＡＣの検証結果が不合格である場合には、実行制御部３８は、所定のエラー処理を実行してもよい。例えば、実行制御部３８は、ＥＣＵコード保管部３０にバックアップ（格納）されている現適用コードをＥＣＵ１０２０に送信し、該ＥＣＵ１０２０に適用するＥＣＵコードを該現適用コードに戻すように指示してもよい。これにより、ＥＣＵ１０２０を、新ＥＣＵコードの適用前の状態に戻すことができる。また、実行制御部３８は、新ＥＣＵコードの適用が失敗であることを示すエラーメッセージを、サーバ装置２０００に送信してもよい。
【００５５】
（ステップＳ１０）車載診断ツール１０４０ａのＥＣＵコード保管部３０は、ＥＣＵ１０２０への適用が成功した新ＥＣＵコードを格納する。ＥＣＵコード保管部３０は、既に格納している現適用コードを削除する。
【００５６】
なお、ＥＣＵコード保管部３０は、新ＥＣＵコードの適用の直前にＥＣＵ１０２０に適用されている現適用コードを格納するが、ＥＣＵコードの更新を実施する時に更新対象のＥＣＵ１０２０毎に現適用コードを取得して格納してもよく、又は、ＥＣＵコードの更新対象の全ＥＣＵ１０２０の現適用コードを予め取得して格納してもよい。また、ＥＣＵコード保管部３０は、ステップＳ１０で新ＥＣＵコードを格納済みのＥＣＵ１０２０については、次回のＥＣＵコード更新の際に、ステップＳ２の現適用コードのバックアップ（格納）を省略してもよい。
【００５７】
次に、上述した図４の保守方法の変形例を説明する。以下に示す変形例は単独又は複数の組合せで適用できる。
【００５８】
＜保守方法の変形例１＞
保守方法の変形例１では、ＥＣＵコード保管部３０は、ＥＣＵコードの暗号化データを格納する。ステップＳ４では、サーバ装置２０００は、差分コードと、新ＥＣＵコード電子署名と、暗号鍵とを車載診断ツール１０４０ａに送信する。ステップＳ５では、車載診断ツール１０４０ａの暗号処理部４０は、ＥＣＵコード保管部３０に格納されている現適用コードの暗号化データを、サーバ装置２０００から受信した暗号鍵を使用して復号する。ＥＣＵコード生成部３２は、該暗号処理部４０の復号結果と、サーバ装置２０００から受信した差分コードとから、新ＥＣＵコードを生成する。ステップＳ１０では、車載診断ツール１０４０ａの暗号処理部４０は、サーバ装置２０００から受信した暗号鍵を使用して、ＥＣＵコード保管部３０に格納する新ＥＣＵコードを暗号化する。ＥＣＵコード保管部３０は、該暗号化により得られた新ＥＣＵコードの暗号化データを格納する。
【００５９】
なお、サーバ装置２０００は、差分コードの供給の度に暗号鍵を車載診断ツール１０４０ａに送信してもよい。この暗号鍵は、差分コードに対応付けられた暗号鍵である。又は、サーバ装置２０００は、暗号鍵を車載診断ツール１０４０ａに予め供給しておいてもよい。
【００６０】
また、サーバ装置２０００は、暗号処理部４０が実行する復号処理及び暗号化処理のコンピュータプログラムである復号・暗号化プログラムを車載診断ツール１０４０ａに供給してもよい。サーバ装置２０００は、差分コードの供給の度に復号・暗号化プログラムを車載診断ツール１０４０ａに送信してもよく、又は、復号・暗号化プログラムを車載診断ツール１０４０ａに予め供給しておいてもよい。暗号処理部４０は、復号・暗号化プログラムを使用して、ステップＳ５ではＥＣＵコード保管部３０に格納されている現適用コードの暗号化データの復号処理を実行し、また、ステップＳ１０ではＥＣＵコード保管部３０に格納する新ＥＣＵコードの暗号化処理を実行する。復号・暗号化プログラムには、例えば、ＡＥＳ（Advanced Encryption Standard）と呼ばれる暗号方式を使用する。
【００６１】
＜保守方法の変形例２＞
保守方法の変形例２では、車載診断ツール１０４０ａの実行制御部３８は、車両情報取得部３６が取得した車両情報に基づいて、ＥＣＵ１０２０への新ＥＣＵコードの適用を実行するか否かを判断する。実行制御部３８は、車両情報が示す自動車１００１の状態が所定の実行条件を満たしている時に、ＥＣＵ１０２０への新ＥＣＵコードの適用を実行する。実行制御部３８は、車両情報が示す自動車１００１の状態が該実行条件を満たしていない時には、ＥＣＵ１０２０への新ＥＣＵコードの適用を実行しない。
【００６２】
以下に実行条件の例を挙げる。以下の実行条件は単独又は複数の組合せで適用できる。
【００６３】
（実行条件の例１）実行条件は、自動車１００１の走行モードが「パーキング（駐車）」であることである。自動車１００１が走行中にＥＣＵ１０２０のＥＣＵコードを更新することは好ましくない。このため、自動車１００１が駐車している時にＥＣＵ１０２０のＥＣＵコードを更新することは好ましい。
【００６４】
（実行条件の例２）実行条件は、自動車１００１のエンジンが始動していることである。自動車１００１のエンジンが停止すると、インフォテイメント機器１０４０やＥＣＵ１０２０、ＴＣＵ１０５０などの車載装置への電力の供給が不安定になる可能性がある。このため、自動車１００１のエンジンが始動している時にＥＣＵ１０２０のＥＣＵコードを更新することは好ましい。
【００６５】
（実行条件の例３）実行条件は、自動車１００１のバッテリの残容量が、該残容量が十分にあると判定するための所定量を満たしていることである。この実行条件の例３は、自動車１００１がエンジンと電気モータとを組み合わせたハイブリッドシステムを備える場合に好ましい。
【００６６】
（実行条件の例４）実行条件は、自動車１００１のイモビライザ（immobilizer）が自動車１００１の車内に存在していることである。イモビライザが自動車１００１の車内に存在している時は、保守作業者や自動車１００１の利用者が自動車１００１の車内又は自動車１００１の傍に居ると考えられる。このため、イモビライザが自動車１００１の車内に存在している時にＥＣＵ１０２０のＥＣＵコードを更新することは好ましい。
【００６７】
上述した実施形態によれば、ＥＣＵコード保管部３０がＥＣＵ１０２０への適用が成功した新ＥＣＵコードを格納することにより、ＥＣＵ１０２０に対してＥＣＵコード保管部３０に格納されている新ＥＣＵコードを適用することができる。例えば、ＥＣＵ１０２０への更なる新たなＥＣＵコードの適用がたとえ失敗しても、ＥＣＵコード保管部３０に格納されている新ＥＣＵコードを使用して、該失敗する前の状態にＥＣＵ１０２０を戻すことができる。これにより、ＥＣＵ１０２０にＥＣＵコードを適用する際の信頼性を向上させることができるという効果が得られる。
【００６８】
また、本実施形態によれば、インフォテイメント機器１０４０にＥＣＵコードをバックアップする構成であるので、ＥＣＵ１０２０自体にＥＣＵコードをバックアップする構成に比して、ＥＣＵ１０２０のメモリコストの増加を抑制できる。これは、自動車１００１に備わるＥＣＵ１０２０が大量である場合には特に格別の効果を奏する。
【００６９】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００７０】
上述した実施形態では、自動車１００１に備わるインフォテイメント機器１０４０が車載診断ツール１０４０ａ（保守装置）を備えたが、自動車１００１において車載診断ツール１０４０ａをインフォテイメント機器１０４０以外の他の車載装置に備えてもよく、又は、車載診断ツール１０４０ａを単独の車載装置として自動車１００１に備えてもよい。
【００７１】
上述した実施形態を、自動車１００１に搭載されたデータ保安装置１０１０又はゲートウェイ１０７０に適用されるデータであるコンピュータプログラムや設定データ等の更新に、適用してもよい。データ保安装置１０１０及びゲートウェイ１０７０は車載コンピュータの例である。
【００７２】
上述した実施形態では、データ保安装置１０１０やＥＣＵ１０２０にＨＳＭやＳＨＥを使用したが、ＨＳＭ及びＳＨＥ以外の暗号処理チップを使用してもよい。データ保安装置１０１０に対して、例えば「ＴＰＭ（Trusted Platform Module）ｆ」と呼ばれる暗号処理チップを使用してもよい。ＴＰＭｆは耐タンパー性を有する。ＴＰＭｆはセキュアエレメントの例である。ＥＣＵ１０２０に対して、例えば「ＴＰＭｔ」と呼ばれる暗号処理チップを使用してもよい。ＴＰＭｔは耐タンパー性を有する。ＴＰＭｔはセキュアエレメントの例である。
【００７３】
上述した実施形態は、自動車の製造工場において、自動車の製造工程で自動車に搭載されたＥＣＵに適用してもよい。また、上述した実施形態は、自動車の整備工場や販売店等において、自動車に搭載されているＥＣＵに適用してもよい。
【００７４】
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【００７５】
また、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disc）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００７６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７７】
１０…ＣＰＵ、１２…記憶部、１６…インタフェース部、１８…タッチパネル、２０…マイクロフォン、２２…スピーカ、３０…ＥＣＵコード保管部、３２…ＥＣＵコード生成部、３４…検証部、３６…車両情報取得部、３８…実行制御部、４０…暗号処理部、１００１…自動車、１００２…車載コンピュータシステム、１０１０…データ保安装置、１０１１，１０２１…メイン演算器、１０１２…ＨＳＭ、１０１３，１０２３…記憶部、１０２０…ＥＣＵ、１０２２…ＳＨＥ、１０３０…ＣＡＮ、１０４０…インフォテイメント機器、１０４０ａ…車載診断ツール（保守装置）、１０５０…ＴＣＵ、１０５１…通信モジュール、１０５２…ＳＩＭ、１０６０…診断ポート、１０７０…ゲートウェイ、２０００…サーバ装置、２１００…メンテナンスツール
【図１】
2018058582.tif 000003
【図２】
2018058582.tif 000004
【図３】
2018058582.tif 000005
【図４】
2018058582.tif 000006