(57)【要約】【課題】自動車等の車両に保持される鍵の管理や更新に寄与すること。【解決手段】比較的高い処理能力を有するＨＳＭ１２を備えるマスタＥＣＵ１０と、比較的低い処理能力を有するＳＨＥ２２を備える複数のエンドＥＣＵ２０と、を備え、マスタＥＣＵ１０と複数のエンドＥＣＵ２０が制御用ネットワーク３０に接続され、マスタＥＣＵ１０は、エンドＥＣＵ２０で使用される第１の鍵をＨＳＭ１２により暗号化し、第１の鍵の暗号化データをエンドＥＣＵ２０へ送信し、エンドＥＣＵ２０は、マスタＥＣＵ１０から受信した第１の鍵の暗号化データをＳＨＥ２２により復号化する。【選択図】図１
2018014770.tif 000002
【特許請求の範囲】
【請求項１】
車両に備わる車載コンピュータシステムにおいて、
第１の車載コンピュータと、
第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、
前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続され、
前記第１の車載コンピュータは、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信し、
前記第２の車載コンピュータは、前記第１の車載コンピュータから受信した前記コンピュータプログラムと前記期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動し、
前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、
前記第２の車載コンピュータは、該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信し、
前記第１の車載コンピュータは、前記第２の車載コンピュータから受信した測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証する、
車載コンピュータシステム。
【請求項２】
前記第１の車載コンピュータは、第１の暗号処理装置を備え、前記期待値を前記第１の暗号処理装置により算出する、
請求項１に記載の車載コンピュータシステム。
【請求項３】
前記第１の暗号処理装置は、前記期待値として、前記車両の共通鍵を使用して前記コンピュータプログラムのメッセージ認証符号を計算し、
前記第２の暗号処理装置は、前記測定値として、前記共通鍵を使用して前記コンピュータプログラムのメッセージ認証符号を計算する、
請求項２に記載の車載コンピュータシステム。
【請求項４】
前記第１の車載コンピュータは、前記第２の車載コンピュータから受信した測定値と前記第２の車載コンピュータへ送信した前記期待値とが一致である前記コンピュータプログラムについての前記第２の車載コンピュータに対する適用の成功を示す情報を管理装置へ送信する、
請求項１から３のいずれか１項に記載の車載コンピュータシステム。
【請求項５】
請求項１から４のいずれか１項に記載の車載コンピュータシステムを備える車両。
【請求項６】
車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、
前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続され、
前記第１の車載コンピュータが、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信するステップと、
前記第２の車載コンピュータが、前記第１の車載コンピュータから受信した前記コンピュータプログラムと前記期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動するステップと、を含み、
前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、
前記第２の車載コンピュータが、該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信するステップと、
前記第１の車載コンピュータが、前記第２の車載コンピュータから受信した測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証するステップと、
をさらに含む管理方法。
【請求項７】
車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、
前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続される前記車載コンピュータシステムの前記第１の車載コンピュータに、
前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信するステップと、
前記第２の車載コンピュータから受信した前記コンピュータプログラムの測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証するステップと、
を実行させるためのコンピュータプログラム。
【請求項８】
車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、
前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続される前記車載コンピュータシステムの前記第２の車載コンピュータに、
前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第１の車載コンピュータから受信し、該コンピュータプログラムと該期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動するステップを実行させ、
前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、
前記第２の車載コンピュータに、
該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信するステップ、
をさらに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載コンピュータシステム、車両、管理方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自動車は、ＥＣＵ（Electronic Control Unit）を有し、ＥＣＵによってエンジン制御等の機能を実現する。ＥＣＵは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。既に使用されている自動車について、ＥＣＵのコンピュータプログラムの更新は、通常、自動車の検査時や定期点検時などに、一般の自動車整備工場で行われる。
【０００３】
従来、ＥＣＵのコンピュータプログラムの更新では、作業者が、自動車のＯＢＤ（On-board Diagnostics）ポートと呼ばれる診断ポートにメンテナンス専用の診断端末を接続し、該診断端末から更新プログラムのインストール及びデータの設定変更などを行う。これに関し例えば非特許文献１、２にはセキュリティについて記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】C. Miller、C. Valasek、“Adventures in Automotive Networks and Control Units”、DEF CON 21、2013年8月
【非特許文献２】高田広章、松本勉、“車載組込みシステムの情報セキュリティ強化に関する提言”、2013年9月、インターネット＜ＵＲＬ：https://www.ipa.go.jp/files/000034668.pdf＞
【非特許文献３】Trusted Computing Group、インターネット＜ＵＲＬ：http://www.trustedcomputinggroup.org/＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した非特許文献１、２では、セキュリティの向上を実現する手段については記載されない。このため、自動車等の車両に備わるＥＣＵ等の車載コンピュータに使用されるコンピュータプログラム等のデータの適用についての信頼性を向上させることが望まれる。例えば、ＥＣＵが起動した後に、ＥＣＵが保持する鍵を使用してデータの交換相手を相互認証することによって、車載コンピュータシステムの防御能力を向上させることが考えられる。また、例えば、ＥＣＵが保持する鍵を使用して、ＥＣＵ間で交換するデータの正当性を検証することが考えられる。また、例えば、ＥＣＵに使用されるコンピュータプログラム等のデータに電子署名を付して自動車の管理装置へ配布し、管理装置が保持する鍵を使用して、配布されたデータの電子署名を検証することにより、ＥＣＵに使用されるコンピュータプログラム等のデータを検査することが考えられる。ここで、自動車に保持される鍵の管理や更新をどのようにして実現するのかが、鍵の保安上の課題である。
【０００６】
本発明は、このような事情を考慮してなされたものであり、自動車等の車両に保持される鍵の管理や更新に寄与できる、車載コンピュータシステム、車両、管理方法、及びコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
（１）本発明の一態様は、車両に備わる車載コンピュータシステムにおいて、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続され、前記第１の車載コンピュータは、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信し、前記第２の車載コンピュータは、前記第１の車載コンピュータから受信した前記コンピュータプログラムと前記期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動し、前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、前記第２の車載コンピュータは、該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信し、前記第１の車載コンピュータは、前記第２の車載コンピュータから受信した測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証する、車載コンピュータシステムである。
（２）本発明の一態様は、上記（１）の車載コンピュータシステムにおいて、前記第１の車載コンピュータは、第１の暗号処理装置を備え、前記期待値を前記第１の暗号処理装置により算出する、車載コンピュータシステムである。
（３）本発明の一態様は、上記（２）の車載コンピュータシステムにおいて、前記第１の暗号処理装置は、前記期待値として、前記車両の共通鍵を使用して前記コンピュータプログラムのメッセージ認証符号を計算し、前記第２の暗号処理装置は、前記測定値として、前記共通鍵を使用して前記コンピュータプログラムのメッセージ認証符号を計算する、車載コンピュータシステムである。
（４）本発明の一態様は、上記（１）から（３）のいずれかの車載コンピュータシステムにおいて、前記第１の車載コンピュータは、前記第２の車載コンピュータから受信した測定値と前記第２の車載コンピュータへ送信した前記期待値とが一致である前記コンピュータプログラムについての前記第２の車載コンピュータに対する適用の成功を示す情報を管理装置へ送信する、車載コンピュータシステムである。
【０００８】
（５）本発明の一態様は、上記（１）から（４）のいずれかの車載コンピュータシステムを備える車両である。
【０００９】
（６）本発明の一態様は、車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続され、前記第１の車載コンピュータが、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信するステップと、前記第２の車載コンピュータが、前記第１の車載コンピュータから受信した前記コンピュータプログラムと前記期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動するステップと、を含み、前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、前記第２の車載コンピュータが、該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信するステップと、前記第１の車載コンピュータが、前記第２の車載コンピュータから受信した測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証するステップと、をさらに含む管理方法である。
【００１０】
（７）本発明の一態様は、車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続される前記車載コンピュータシステムの前記第１の車載コンピュータに、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第２の車載コンピュータへ送信するステップと、前記第２の車載コンピュータから受信した前記コンピュータプログラムの測定値と、前記第２の車載コンピュータへ送信した前記期待値との一致を検証するステップと、を実行させるためのコンピュータプログラムである。
（８）本発明の一態様は、車両に備わる車載コンピュータシステムが、第１の車載コンピュータと、第２の暗号処理装置を備える複数の第２の車載コンピュータと、を備え、前記第１の車載コンピュータと前記複数の第２の車載コンピュータが前記車両に備わる通信ネットワークに接続される前記車載コンピュータシステムの前記第２の車載コンピュータに、前記第２の車載コンピュータに適用されるコンピュータプログラムと前記コンピュータプログラムの期待値を前記第１の車載コンピュータから受信し、該コンピュータプログラムと該期待値に対して、該期待値を前記第２の暗号処理装置により検証し、該期待値の検証が成功した前記コンピュータプログラムを起動するステップを実行させ、前記第２の暗号処理装置は、前記第１の車載コンピュータから受信した前記コンピュータプログラムの測定値を算出し、該算出した測定値と前記第１の車載コンピュータから受信した前記期待値とを比較し、前記第２の車載コンピュータに、該比較の結果が一致である前記コンピュータプログラムについての前記第２の暗号処理装置の算出結果の測定値を前記第１の車載コンピュータへ送信するステップ、をさらに実行させるためのコンピュータプログラムである。
【発明の効果】
【００１１】
本発明によれば、自動車等の車両に保持される鍵の管理や更新に寄与できるという効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る自動車１を示す図である。
【図２】本発明の一実施形態に係る鍵の種類の例を示す図表である。
【図３】本発明の一実施形態に係る管理方法の例１を示すシーケンスチャートである。
【図４】本発明の一実施形態に係る管理方法の例２を示すシーケンスチャートである。
【図５】本発明の一実施形態に係る管理方法の例３を示すシーケンスチャートである。
【図６】本発明の一実施形態に係る管理方法の例４を示すシーケンスチャートである。
【図７】本発明の一実施形態に係る管理方法の例５を示すシーケンスチャートである。
【図８】本発明の一実施形態に係る管理方法の例６を示すシーケンスチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
【００１４】
図１は、本発明の一実施形態に係る自動車１を示す図である。図１において、自動車１は、マスタＥＣＵ１０と複数のエンドＥＣＵ２０を備える。マスタＥＣＵ１０及びエンドＥＣＵ２０は、自動車１に備わる車載コンピュータである。マスタＥＣＵ１０は、自動車１に搭載されたＥＣＵのうち、主となるＥＣＵである。エンドＥＣＵ２０は、自動車１に搭載されたＥＣＵのうち、従となるＥＣＵである。エンドＥＣＵ２０として、例えば、エンジン制御機能を有するＥＣＵ、ハンドル制御機能を有するＥＣＵ、ブレーキ制御機能を有するＥＣＵなどがある。
【００１５】
マスタＥＣＵ１０と複数のエンドＥＣＵ２０は、自動車１に備わる制御用ネットワーク３０に接続される。制御用ネットワーク３０は通信ネットワークである。制御用ネットワーク３０として、例えばＣＡＮ（Controller Area Network）を使用してもよい。ＣＡＮは車両に搭載される通信ネットワークの一つとして知られている。
【００１６】
マスタＥＣＵ１０は、制御用ネットワーク３０を介して、各エンドＥＣＵ２０との間でデータを交換する。エンドＥＣＵ２０は、制御用ネットワーク３０を介して、他のエンドＥＣＵ２０との間でデータを交換する。
【００１７】
自動車１は診断ポート６０を備える。診断ポート６０として、例えばＯＢＤポートを使用してもよい。診断ポート６０には診断端末を接続可能である。診断ポート６０はマスタＥＣＵ１０に接続される。マスタＥＣＵ１０と診断ポート６０に接続された診断端末とは、診断ポート６０を介して、データを交換する。
【００１８】
自動車１はインフォテイメント（Infotainment）機器４０を備える。インフォテイメント機器４０として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。インフォテイメント機器４０はマスタＥＣＵ１０に接続される。マスタＥＣＵ１０は、インフォテイメント機器４０から入力された情報をエンドＥＣＵ２０へ送信する。
【００１９】
自動車１は、ＤＣＭ（Data Communication Module）５０を備える。ＤＣＭ５０は通信装置である。ＤＣＭ５０は通信モジュール５１を備える。通信モジュール５１は、無線通信ネットワークを利用して無線通信を行う。通信モジュール５１は、ＳＩＭ（Subscriber Identity Module）５２を備える。ＳＩＭ５２は、無線通信ネットワークの契約者情報が書き込まれたＳＩＭである。通信モジュール５１は、ＳＩＭ５２を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。
【００２０】
ＳＩＭ５２は、鍵を記憶する鍵記憶部５３を備える。なお、ＳＩＭ５２として、ｅＳＩＭ（Embedded Subscriber Identity Module）を使用してもよい。ＳＩＭ及びｅＳＩＭはセキュアエレメントの例である。セキュアエレメントは耐タンパー性（Tamper Resistant）を有する。ＳＩＭ及びｅＳＩＭは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
【００２１】
ＤＣＭ５０はインフォテイメント機器４０に接続される。インフォテイメント機器４０は、ＤＣＭ５０により、自動車１の外部の装置と通信を行う。マスタＥＣＵ１０は、インフォテイメント機器４０を介して、ＤＣＭ５０の通信モジュール５１とデータを交換する。
【００２２】
なお、図１の構成ではマスタＥＣＵ１０がインフォテイメント機器４０を介して通信モジュール５１とデータを交換するが、これに限定されない。マスタＥＣＵ１０とＤＣＭ５０を直接接続し、マスタＥＣＵ１０が、インフォテイメント機器４０を介さずに、通信モジュール５１とデータを交換してもよい。
【００２３】
マスタＥＣＵ１０は、メイン演算器１１とＨＳＭ（Hardware Security Module）１２を備える。メイン演算器１１は、マスタＥＣＵ１０の機能を実現させるためのコンピュータプログラムを実行する。ＨＳＭ１２は暗号処理機能を有する。ＨＳＭ１２は耐タンパー性を有する。ＨＳＭ１２は、鍵を記憶する鍵記憶部１３を備える。メイン演算器１１はＨＳＭ１２を使用する。
【００２４】
エンドＥＣＵ２０は、メイン演算器２１とＳＨＥ（Secure Hardware Extension）２２を備える。メイン演算器２１は、エンドＥＣＵ２０の機能を実現させるためのコンピュータプログラムを実行する。ＳＨＥ２２は暗号処理機能を有する。ＳＨＥ２２は耐タンパー性を有する。ＳＨＥ２２は、鍵を記憶する鍵記憶部２３を備える。メイン演算器２１はＳＨＥ２２を使用する。
【００２５】
自動車１に備わる車載コンピュータシステム２は、マスタＥＣＵ１０と複数のエンドＥＣＵ２０とが制御用ネットワーク３０に接続されて構成される。マスタＥＣＵ１０は、ゲートウェイ機能を有し、主ゲートウェイ（Central GW）として、車載コンピュータシステム２の内部と外部の間の通信を監視する。なお、車載コンピュータシステム２は、通信モジュール５１のＳＩＭ５２をさらに含んで構成されてもよい。
【００２６】
図２は、本実施形態に係る鍵の種類の例を示す図表である。自動車１の車載コンピュータシステム２が使用する鍵の種類の例として、図２に示される複数の鍵の種類が挙げられる。図２には、鍵の種類毎に、鍵の安全性の要求のレベルと鍵の配布の高速性の要求のレベルが示される。例えば、マスタ（Master）鍵及びＲｏｏｔ証明書は、安全性の要求が最も高いが、高速性の要求がない。鍵交換鍵及びＭＡＣ（Message Authentication Code：メッセージ認証コード）鍵は、高速性の要求がある。
【００２７】
本実施形態では、鍵の安全性の要求のレベルが比較的高い鍵に関する処理をＳＩＭ５２が主体となって実行する。また、鍵の配布の高速性の要求のレベルが比較的高い鍵に関する処理をＨＳＭ１２が主体となって行う。ＳＩＭ５２は、ＨＳＭ１２及びＳＨＥ２２よりも安全性の高いセキュアエレメントである。ＨＳＭ１２及びＳＨＥ２２は、ＳＩＭ５２よりも高い処理能力を有する。ＨＳＭ１２は、ＳＨＥ２２よりも高い処理能力を有する。
【００２８】
ＨＳＭ１２は第１の暗号処理装置の例である。マスタＥＣＵ１０は第１の車載コンピュータの例である。ＳＨＥ２２は第２の暗号処理装置の例である。エンドＥＣＵ２０は第２の車載コンピュータの例である。ＳＩＭ５２は、第１の暗号処理装置及び第２の暗号処理装置よりも安全性の高いセキュアエレメントの例である。
【００２９】
次に、本実施形態に係る管理方法を説明する。なお、以下の説明において、ＤＣＭ５０の通信モジュール５１とマスタＥＣＵ１０はインフォテイメント機器４０を介してデータを送受する。マスタＥＣＵ１０とエンドＥＣＵ２０は、制御用ネットワーク３０を介してデータを送受する。
【００３０】
［管理方法の例１］
図３を参照して、本実施形態に係る管理方法の例１を説明する。図３は、本実施形態に係る管理方法の例１を示すシーケンスチャートである。本実施形態に係る管理方法の例１は、自動車１に対して新たにエンドＥＣＵ２０が実装される場合の鍵交換鍵の配布に関する方法である。鍵交換鍵は第１の鍵の例である。
【００３１】
マスタＥＣＵ１０のＨＳＭ１２は、自動車１に既に搭載されているエンドＥＣＵ２０の初期鍵を鍵記憶部１３に記憶している。また、鍵記憶部１３は、最新の鍵交換鍵Ｋｘ２を記憶している。鍵交換鍵Ｋｘ２は、自動車１に既に搭載されているエンドＥＣＵ２０に対して過去に配布した最新の鍵交換鍵である。
【００３２】
以下の管理方法の例１の説明では、自動車１に対して新たに実装される一つのエンドＥＣＵ２０について説明する。エンドＥＣＵ２０のＳＨＥ２２は、自エンドＥＣＵ２０の初期鍵Ｋｉ５を鍵記憶部２３に記憶している。エンドＥＣＵ２０は、自己の識別子ＥＣＵ＿ＩＤを有する。ＳＩＭ５２は、マスタ鍵を鍵記憶部５３に記憶している。ＳＩＭ５２の鍵記憶部５３に記憶されるマスタ鍵は、エンドＥＣＵ２０の鍵記憶部２３に記憶される初期鍵Ｋｉ５の生成に該エンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤと共に使用されたマスタ鍵と同じマスタ鍵である。エンドＥＣＵ２０の初期鍵Ｋｉ５は第２の鍵の例である。
【００３３】
（ステップＳ１０）エンドＥＣＵ２０は、自動車１に搭載されてから初めて電源投入された時に、自己の識別子ＥＣＵ＿ＩＤをＳＩＭ５２へ供給する。エンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤは、エンドＥＣＵ２０からマスタＥＣＵ１０を介して通信モジュール５１へ送信される。通信モジュール５１は、該受信したエンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤをＳＩＭ５２へ供給する。
【００３４】
（ステップＳ１１）ＳＩＭ５２は、鍵記憶部５３からマスタ鍵を取得し、取得したマスタ鍵とエンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤを使用して該エンドＥＣＵ２０の初期鍵Ｋｉ５を生成する。通信モジュール５１は、ＳＩＭ５２が生成したエンドＥＣＵ２０の初期鍵Ｋｉ５と該エンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤの組をマスタＥＣＵ１０へ送信する。マスタＥＣＵ１０は、該受信したエンドＥＣＵ２０の初期鍵Ｋｉ５と該エンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤの組をＨＳＭ１２へ供給する。ＨＳＭ１２は、該エンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤに関連付けて該エンドＥＣＵ２０の初期鍵Ｋｉ５を鍵記憶部１３に記憶する。これにより、マスタＥＣＵ１０は、エンドＥＣＵ２０と、該エンドＥＣＵ２０の初期鍵Ｋｉ５を共有する。
【００３５】
エンドＥＣＵ２０の初期鍵の生成方法は予め定められている。エンドＥＣＵ２０の初期鍵の生成方法の例１、例２を説明する。
【００３６】
（エンドＥＣＵ２０の初期鍵の生成方法の例１）
エンドＥＣＵ２０の初期鍵の生成方法の例１では、ハッシュ（hash）関数を利用する。例えば、マスタ鍵とエンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤの連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値をエンドＥＣＵ２０の初期鍵に使用してもよい。
【００３７】
（ＥＣＵ初期鍵の生成方法の例２）
エンドＥＣＵ２０の初期鍵の生成方法の例２では、排他的論理和演算を利用する。例えば、マスタ鍵とエンドＥＣＵ２０の識別子ＥＣＵ＿ＩＤの排他的論理和演算を実行し、演算結果の値「マスタ鍵  ｘｏｒ  識別子ＥＣＵ＿ＩＤ」をエンドＥＣＵ２０の初期鍵に使用してもよい。但し、「Ａ  ｘｏｒ  Ｂ」はＡとＢの排他的論理和である。
【００３８】
（ステップＳ１２）マスタＥＣＵ１０のＨＳＭ１２は、乱数Ｒｎを生成し、生成した乱数Ｒｎをチャレンジ値とする。マスタＥＣＵ１０は、チャレンジ値ＲｎをエンドＥＣＵ２０へ送信する。
【００３９】
（ステップＳ１３）エンドＥＣＵ２０は、マスタＥＣＵ１０から受信したチャレンジ値ＲｎをＳＨＥ２２へ供給する。ＳＨＥ２２は、該チャレンジ値Ｒｎを鍵記憶部２３に記憶される自エンドＥＣＵ２０の初期鍵Ｋｉ５で暗号化した暗号化データＫｉ５（Ｒｎ）を生成する。エンドＥＣＵ２０は、暗号化データＫｉ５（Ｒｎ）をレスポンス値として、マスタＥＣＵ１０へ送信する。マスタＥＣＵ１０は、該受信したレスポンス値Ｋｉ５（Ｒｎ）をＨＳＭ１２へ供給する。
【００４０】
ＨＳＭ１２は、該レスポンス値Ｋｉ５（Ｒｎ）に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、ＨＳＭ１２は、鍵記憶部１３に記憶されるエンドＥＣＵ２０の初期鍵Ｋｉ５を使用して、レスポンス値Ｋｉ５（Ｒｎ）を検証する。レスポンス値Ｋｉ５（Ｒｎ）の検証方法として、以下に示す検証方法の例１、２が挙げられる。
【００４１】
（検証方法の例１）
ＨＳＭ１２は、鍵記憶部１３に記憶される複数の初期鍵Ｋｉ１、・・・、Ｋｉ５、・・・の各々でチャレンジ値Ｒｎを暗号化し、各暗号化結果がレスポンス値Ｋｉ５（Ｒｎ）に一致するかを判定する。判定の結果、レスポンス値Ｋｉ５（Ｒｎ）に一致する暗号化結果が一つだけある場合には、レスポンス値Ｋｉ５（Ｒｎ）の検証が成功である。一方、判定の結果、レスポンス値Ｋｉ５（Ｒｎ）に一致する暗号化結果がない場合、及び、レスポンス値Ｋｉ５（Ｒｎ）に一致する暗号化結果が複数ある場合には、レスポンス値Ｋｉ５（Ｒｎ）の検証が失敗である。
【００４２】
（検証方法の例２）
ＨＳＭ１２は、鍵記憶部１３に記憶される複数の初期鍵Ｋｉ１、・・・、Ｋｉ５、・・・の各々でレスポンス値Ｋｉ５（Ｒｎ）を復号化し、各復号化結果がチャレンジ値Ｒｎに一致するかを判定する。判定の結果、チャレンジ値Ｒｎに一致する復号化結果が一つだけある場合には、レスポンス値Ｋｉ５（Ｒｎ）の検証が成功である。一方、判定の結果、チャレンジ値Ｒｎに一致する復号化結果がない場合、及び、チャレンジ値Ｒｎに一致する復号化結果が複数ある場合には、レスポンス値Ｋｉ５（Ｒｎ）の検証が失敗である。
【００４３】
レスポンス値Ｋｉ５（Ｒｎ）の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Ｋｉ５（Ｒｎ）の検証が失敗である場合には、図３の処理を終了する。なお、レスポンス値Ｋｉ５（Ｒｎ）の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【００４４】
（ステップＳ１４）エンドＥＣＵ２０のＳＨＥ２２は、乱数Ｒｎ’を生成し、生成した乱数Ｒｎ’をチャレンジ値とする。エンドＥＣＵ２０は、チャレンジ値Ｒｎ’をマスタＥＣＵ１０へ送信する。
【００４５】
（ステップＳ１５）マスタＥＣＵ１０は、エンドＥＣＵ２０から受信したチャレンジ値Ｒｎ’をＨＳＭ１２へ供給する。ＨＳＭ１２は、該チャレンジ値Ｒｎ’を、上記ステップＳ１３のレスポンス値Ｋｉ５（Ｒｎ）の検証で成功した際に使用されたエンドＥＣＵ２０の初期鍵Ｋｉ５で暗号化した暗号化データＫｉ５（Ｒｎ’）を生成する。マスタＥＣＵ１０は、暗号化データＫｉ５（Ｒｎ’）をレスポンス値として、エンドＥＣＵ２０へ送信する。エンドＥＣＵ２０は、該受信したレスポンス値Ｋｉ５（Ｒｎ’）をＳＨＥ２２へ供給する。
【００４６】
ＳＨＥ２２は、該レスポンス値Ｋｉ５（Ｒｎ’）に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、ＳＨＥ２２は、鍵記憶部２３に記憶される自エンドＥＣＵ２０の初期鍵Ｋｉ５を使用して、レスポンス値Ｋｉ５（Ｒｎ’）を検証する。レスポンス値Ｋｉ５（Ｒｎ’）の検証方法としては、上述した検証方法の例１、２と同様の方法が挙げられる。
【００４７】
レスポンス値Ｋｉ５（Ｒｎ’）の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Ｋｉ５（Ｒｎ’）の検証が失敗である場合には、図３の処理を終了する。なお、レスポンス値Ｋｉ５（Ｒｎ’）の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【００４８】
（ステップＳ１６）マスタＥＣＵ１０のＨＳＭ１２は、上記ステップＳ１３のレスポンス値Ｋｉ５（Ｒｎ）の検証で成功した際に使用されたエンドＥＣＵ２０の初期鍵Ｋｉ５を使用して、鍵記憶部１３に記憶される鍵交換鍵Ｋｘ２を暗号化し、暗号化鍵交換鍵Ｋｉ５（Ｋｘ２）を生成する。マスタＥＣＵ１０は、暗号化鍵交換鍵Ｋｉ５（Ｋｘ２）をエンドＥＣＵ２０へ送信する。エンドＥＣＵ２０は、該受信した暗号化鍵交換鍵Ｋｉ５（Ｋｘ２）をＳＨＥ２２へ供給する。
【００４９】
（ステップＳ１７）エンドＥＣＵ２０のＳＨＥ２２は、暗号化鍵交換鍵Ｋｉ５（Ｋｘ２）を、鍵記憶部２３に記憶される自エンドＥＣＵ２０の初期鍵Ｋｉ５で復号化する。この復号化結果として鍵交換鍵Ｋｘ２が得られる。
【００５０】
（ステップＳ１８）エンドＥＣＵ２０のＳＨＥ２２は、該復号化結果の鍵交換鍵Ｋｘ２を鍵記憶部２３に記憶する。
【００５１】
上述の管理方法の例１では、ＳＩＭ５２が、鍵の安全性の要求のレベルが比較的高いマスタ鍵を有し、該マスタ鍵を使用してエンドＥＣＵ２０の初期鍵を生成する。また、ＨＳＭ１２が、鍵の配布の高速性の要求のレベルが比較的高い鍵交換鍵の配布時の処理を実行する。
【００５２】
［管理方法の例２］
図４を参照して、本実施形態に係る管理方法の例２を説明する。図４は、本実施形態に係る管理方法の例２を示すシーケンスチャートである。本実施形態に係る管理方法の例２は、自動車１に搭載されているエンドＥＣＵ２０に対する鍵交換鍵の更新に関する方法である。鍵交換鍵は第１の鍵の例である。
【００５３】
マスタＥＣＵ１０のＨＳＭ１２は、最新の鍵交換鍵Ｋｘ２を鍵記憶部１３に記憶している。鍵交換鍵Ｋｘ２は、自動車１に既に搭載されているエンドＥＣＵ２０に対して過去に配布した最新の鍵交換鍵である。
【００５４】
以下の管理方法の例２の説明では、鍵交換鍵の更新の対象である一つのエンドＥＣＵ２０について説明する。エンドＥＣＵ２０のＳＨＥ２２は、鍵交換鍵Ｋｘ２を鍵記憶部２３に記憶している。
【００５５】
（ステップＳ２１）マスタＥＣＵ１０のＨＳＭ１２は、新しい鍵交換鍵Ｋｘ３を生成する。
【００５６】
（ステップＳ２２）マスタＥＣＵ１０のＨＳＭ１２は、鍵記憶部１３に記憶される鍵交換鍵Ｋｘ２を使用して鍵交換鍵Ｋｘ３を暗号化し、暗号化鍵交換鍵Ｋｘ２（Ｋｘ３）を生成する。マスタＥＣＵ１０は、暗号化鍵交換鍵Ｋｘ２（Ｋｘ３）をエンドＥＣＵ２０へ送信する。エンドＥＣＵ２０は、該受信した暗号化鍵交換鍵Ｋｘ２（Ｋｘ３）をＳＨＥ２２へ供給する。
【００５７】
（ステップＳ２３）エンドＥＣＵ２０のＳＨＥ２２は、暗号化鍵交換鍵Ｋｘ２（Ｋｘ３）を、鍵記憶部２３に記憶される鍵交換鍵Ｋｘ２で復号化する。この復号化結果として鍵交換鍵Ｋｘ３が得られる。
【００５８】
（ステップＳ２４）エンドＥＣＵ２０のＳＨＥ２２は、該復号化結果の鍵交換鍵Ｋｘ３を最新の鍵交換鍵として鍵記憶部２３に記憶する。これにより、エンドＥＣＵ２０のＳＨＥ２２の鍵記憶部２３に記憶される鍵交換鍵が、最新の鍵交換鍵Ｋｘ３に更新される。
【００５９】
上述の管理方法の例２では、ＨＳＭ１２が、鍵の配布の高速性の要求のレベルが比較的高い鍵交換鍵の更新時の処理を実行する。
【００６０】
［管理方法の例３］
図５を参照して、本実施形態に係る管理方法の例３を説明する。図５は、本実施形態に係る管理方法の例３を示すシーケンスチャートである。本実施形態に係る管理方法の例３は、自動車１に搭載されているエンドＥＣＵ２０に対するＭＡＣ鍵の更新に関する方法である。ＭＡＣ鍵は第１の鍵の例である。
【００６１】
マスタＥＣＵ１０のＨＳＭ１２は、最新の鍵交換鍵Ｋｘ３を鍵記憶部１３に記憶している。鍵交換鍵Ｋｘ３は、自動車１に既に搭載されているエンドＥＣＵ２０に対して過去に配布した最新の鍵交換鍵である。
【００６２】
以下の管理方法の例３の説明では、ＭＡＣ鍵の更新の対象である一つのエンドＥＣＵ２０について説明する。エンドＥＣＵ２０のＳＨＥ２２は、鍵交換鍵Ｋｘ３を鍵記憶部２３に記憶している。
【００６３】
（ステップＳ３０）エンドＥＣＵ２０のＳＨＥ２２は、ＭＡＣ鍵ｋ７を鍵記憶部２３に記憶している。ＭＡＣ鍵ｋ７は、マスタＥＣＵ１０から過去に配布された最新のＭＡＣ鍵である。
【００６４】
（ステップＳ３１）マスタＥＣＵ１０のＨＳＭ１２は、新しいＭＡＣ鍵ｋ８を生成する。
【００６５】
（ステップＳ３２）マスタＥＣＵ１０のＨＳＭ１２は、鍵記憶部１３に記憶される鍵交換鍵Ｋｘ３を使用してＭＡＣ鍵ｋ８を暗号化し、暗号化ＭＡＣ鍵Ｋｘ３（ｋ８）を生成する。マスタＥＣＵ１０は、暗号化ＭＡＣ鍵Ｋｘ３（ｋ８）をエンドＥＣＵ２０へ送信する。エンドＥＣＵ２０は、該受信した暗号化ＭＡＣ鍵Ｋｘ３（ｋ８）をＳＨＥ２２へ供給する。
【００６６】
（ステップＳ３３）エンドＥＣＵ２０のＳＨＥ２２は、暗号化ＭＡＣ鍵Ｋｘ３（ｋ８）を、鍵記憶部２３に記憶される鍵交換鍵Ｋｘ３で復号化する。この復号化結果としてＭＡＣ鍵ｋ８が得られる。
【００６７】
（ステップＳ３４）エンドＥＣＵ２０のＳＨＥ２２は、該復号化結果のＭＡＣ鍵ｋ８を最新のＭＡＣ鍵として鍵記憶部２３に記憶する。これにより、エンドＥＣＵ２０のＳＨＥ２２の鍵記憶部２３に記憶されるＭＡＣ鍵が、最新のＭＡＣ鍵ｋ８に更新される。
【００６８】
上述の管理方法の例３では、ＨＳＭ１２が、鍵の配布の高速性の要求のレベルが比較的高いＭＡＣ鍵の更新時の処理を実行する。
【００６９】
［管理方法の例４］
図６を参照して、本実施形態に係る管理方法の例４を説明する。図６は、本実施形態に係る管理方法の例４を示すシーケンスチャートである。本実施形態に係る管理方法の例４は、自動車１に搭載されているエンドＥＣＵ２０に対するコンピュータプログラムの更新に関する方法である。
【００７０】
マスタＥＣＵ１０のＨＳＭ１２の鍵記憶部１３は、コード署名鍵と期待値登録鍵とセキュアブート署名鍵＿車内とセキュアブート署名鍵＿車外を記憶している。
【００７１】
以下の管理方法の例４の説明では、コンピュータプログラムの更新の対象である一つのエンドＥＣＵ２０について説明する。エンドＥＣＵ２０のＳＨＥ２２の鍵記憶部２３は、セキュアブート署名鍵＿車内を記憶している。
【００７２】
（ステップＳ４１）管理サーバ装置１００は、コード署名鍵を使用してＥＣＵコード２００の電子署名２１０を生成する。ＥＣＵコード２００は、エンドＥＣＵ２０のコンピュータプログラムのプログラムコードであってもよく、又は、データであってもよい。管理サーバ装置１００は、電子署名２１０付きＥＣＵコード２００を、通信回線を介して診断ツール１１０へ送信する。診断ツール１１０は、自動車整備工場等の作業者によって自動車１の診断ポート６０に接続される。電子署名２１０付きＥＣＵコード２００は、診断ツール１１０から診断ポート６０を介してマスタＥＣＵ１０に送信される。マスタＥＣＵ１０は、該受信した電子署名２１０付きＥＣＵコード２００をＨＳＭ１２へ供給する。
【００７３】
（ステップＳ４２）マスタＥＣＵ１０のＨＳＭ１２は、鍵記憶部１３に記憶されるコード署名鍵を使用して、電子署名２１０を検証する。電子署名２１０の検証が成功である場合には以降の処理を実行する。一方、電子署名２１０の検証が失敗である場合には、図６の処理を終了する。なお、電子署名２１０の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【００７４】
ＨＳＭ１２は、電子署名２１０の検証が成功したＥＣＵコード２００に対して、期待値登録鍵を使用して期待値を計算する。ＥＣＵコード２００の期待値として、例えば、ＥＣＵコード２００のＣＭＡＣ（Cipher-based Message Authentication Code）を利用してもよい。マスタＥＣＵ１０は、電子署名２１０の検証が成功したＥＣＵコード２００と該ＥＣＵコード２００の期待値をエンドＥＣＵ２０へ送信する。
【００７５】
（ステップＳ４３）エンドＥＣＵ２０は、マスタＥＣＵ１０から受信したＥＣＵコード２００を自己に適用する。また、エンドＥＣＵ２０は、マスタＥＣＵ１０から受信したＥＣＵコード２００の期待値をＳＨＥ２２へ供給する。ＳＨＥ２２は、該ＥＣＵコード２００の期待値を保持する。
【００７６】
（ステップＳ４４）エンドＥＣＵ２０はセキュアブートを実行する。このセキュアブートでは、ブートローダによってＥＣＵコード２００がＳＨＥ２２へ供給される。そして、ＳＨＥ２２が、自己で保持する期待値登録鍵を使用して、ＥＣＵコード２００の期待値を計算する。そして、ＳＨＥ２２が、該計算結果の期待値と自己で保持するＥＣＵコード２００の期待値を比較する。ＳＨＥ２２は、該比較の結果、両者が一致した場合にはブートローダへＥＣＵコード２００の検証の成功を応答する。ブートローダは、ＳＨＥ２２からの応答が検証の成功である場合に、ＥＣＵコード２００を起動する。一方、ＳＨＥ２２は、該比較の結果、両者が不一致の場合にはブートローダへＥＣＵコード２００の検証の失敗を応答する。ブートローダは、ＳＨＥ２２からの応答が検証の失敗である場合に、ＥＣＵコード２００を起動しない。
【００７７】
ＳＨＥ２２は、ＥＣＵコード２００の検証の成功を示す成功応答メッセージを出力する。ＳＨＥ２２は、該成功応答メッセージとして、ＥＣＵコード２００の検証の成功を示す情報を、鍵記憶部２３に記憶されるセキュアブート署名鍵＿車内で暗号化したデータを出力する。ＥＣＵコード２００の検証の成功を示す情報として、ＥＣＵコード２００の期待値を使用してもよい。エンドＥＣＵ２０は、セキュアブートの結果、ＥＣＵコード２００の検証が成功した場合に、成功応答メッセージをマスタＥＣＵ１０へ送信する。マスタＥＣＵ１０は、該受信した成功応答メッセージをＨＳＭ１２へ供給する。
【００７８】
（ステップＳ４５）マスタＥＣＵ１０のＨＳＭ１２は、鍵記憶部１３に記憶されるセキュアブート署名鍵＿車内を使用して成功応答メッセージを復号化し、成功応答メッセージの内容を検証する。成功応答メッセージに期待値が含まれる場合には、ＨＳＭ１２は、上記ステップＳ４２でエンドＥＣＵ２０へ送信したＥＣＵコード２００の期待値と、成功応答メッセージに含まれる期待値との一致を調べる。
【００７９】
ＨＳＭ１２は、成功応答メッセージの内容の検証が成功した場合、鍵記憶部１３に記憶されるセキュアブート署名鍵＿車外を使用して、ＥＣＵコード２００の更新の成功を示す結果２２０の電子署名２３０を生成する。結果２２０として、ＥＣＵコード２００の期待値を使用してもよい。なお、成功応答メッセージの内容の検証が失敗した場合には、所定のエラー処理を行ってもよい。
【００８０】
（ステップＳ４６）マスタＥＣＵ１０は、電子署名２３０付き結果２２０を、診断ポート６０を介して、診断ツール１１０へ送信する。診断ツール１１０は、通信回線を介して、電子署名２３０付き結果２２０を管理サーバ装置１００へ送信する。管理サーバ装置１００は、該受信した電子署名２３０付き結果２２０を記録する。
【００８１】
上述の管理方法の例４では、ＨＳＭ１２が、主体となってＥＣＵコード２００の更新時の処理を実行する。
【００８２】
［管理方法の例５］
図７を参照して、本実施形態に係る管理方法の例５を説明する。図７は、本実施形態に係る管理方法の例５を示すシーケンスチャートである。本実施形態に係る管理方法の例５は、自動車１に搭載されているエンドＥＣＵ２０に対するコンピュータプログラムの更新に関する方法である。管理方法の例５では、上記の管理方法の例４に対して、さらに通信モジュール５１のＳＩＭ５２を使用する。図７において、上記の図６の各ステップに対応する部分には同一の符号を付け、その説明を省略する。以下、上記の管理方法の例４と異なる点を主に説明する。
【００８３】
通信モジュール５１のＳＩＭ５２の鍵記憶部５３は、ＶＰＮ（Virtual Private Network）鍵とＲｏｏｔ証明書を記憶している。ＶＰＮ鍵は車外通信鍵の例である。Ｒｏｏｔ証明書は、コード署名鍵及びセキュアブート署名鍵＿車外の正当性の検証に使用される鍵である。
【００８４】
（ステップＳ５１）管理サーバ装置１００は、コード署名鍵を使用してＥＣＵコード２００の電子署名２１０を生成する。管理サーバ装置１００は、電子署名２１０付きＥＣＵコード２００を、ＶＰＮを介して通信モジュール５１へ送信する。ＶＰＮは、無線通信回線を利用して構成される。通信モジュール５１のＳＩＭ５２は、鍵記憶部５３に記憶されるＶＰＮ鍵を使用して、ＶＰＮを介して交換される通信データの暗号化及び復号化を実行する。これにより、電子署名２１０付きＥＣＵコード２００は、管理サーバ装置１００からＶＰＮを介して、安全に、通信モジュール５１で受信される。
【００８５】
（ステップＳ５２）通信モジュール５１のＳＩＭ５２は、鍵記憶部５３に記憶されるＲｏｏｔ証明書を使用して、マスタＥＣＵ１０のＨＳＭ１２の鍵記憶部１３に記憶されるコード署名鍵及びセキュアブート署名鍵＿車外を検証する。コード署名鍵及びセキュアブート署名鍵＿車外の両方の検証が成功である場合には以降の処理を実行する。一方、少なくともコード署名鍵の検証が失敗である場合には、図７の処理を終了する。又は、コード署名鍵又はセキュアブート署名鍵＿車外のいずれかの検証が失敗である場合に、図７の処理を終了するようにしてもよい。なお、コード署名鍵又はセキュアブート署名鍵＿車外のいずれかの検証が失敗である場合には、所定のエラー処理を行ってもよい。
【００８６】
（ステップＳ５３）通信モジュール５１は、電子署名２１０付きＥＣＵコード２００をマスタＥＣＵ１０へ送信する。マスタＥＣＵ１０は、該受信した電子署名２１０付きＥＣＵコード２００をＨＳＭ１２へ供給する。
【００８７】
次いで、上記の図６を参照して説明した管理方法の例４と同様に、ステップＳ４２〜Ｓ４５が実行される。
【００８８】
（ステップＳ５４）マスタＥＣＵ１０は、電子署名２３０付き結果２２０を、通信モジュール５１へ送信する。通信モジュール５１は、該受信した電子署名２３０付き結果２２０を、ＶＰＮを介して管理サーバ装置１００へ送信する。電子署名２３０付き結果２２０は、通信モジュール５１からＶＰＮを介して、安全に、管理サーバ装置１００で受信される。管理サーバ装置１００は、該受信した電子署名２３０付き結果２２０を記録する。
【００８９】
上述の管理方法の例５では、ＳＩＭ５２が、鍵の安全性の要求のレベルが比較的高いＲｏｏｔ証明書を有し、該Ｒｏｏｔ証明書を使用してマスタＥＣＵ１０に保持されるコード署名鍵及びセキュアブート署名鍵＿車外を検証する。また、ＳＩＭ５２が、鍵の安全性の要求のレベルが比較的高いＶＰＮ鍵を有し、該ＶＰＮ鍵を使用して、ＶＰＮを介して交換される通信データの暗号化及び復号化を実行する。また、上記の管理方法の例４と同様に、ＨＳＭ１２が、主体となってＥＣＵコード２００の更新時の処理を実行する。
【００９０】
なお、Ｒｏｏｔ証明書がＶＰＮ鍵の正当性の検証に使用される鍵であってもよく、ＳＩＭ５２が該Ｒｏｏｔ証明書を使用してＶＰＮ鍵を検証してもよい。上述の管理方法の例５では、ＶＰＮ鍵がＳＩＭ５２の鍵記憶部５３に記憶されているので、ＶＰＮ鍵の安全性が高い。このため、上述の管理方法の例５では、ＶＰＮ鍵の検証を実施していない。
【００９１】
本実施形態に係る管理方法の例４と例５の差分は、管理サーバ装置１００とマスタＥＣＵ１０間の通信経路のみである。したがって、診断ポート６０経由の通信経路を利用するか、又は、通信モジュール５１経由の通信経路を利用するかを適宜選択すればよく、本実施形態に係る管理方法の例４と例５を併用することができる。
【００９２】
［管理方法の例６］
図８を参照して、本実施形態に係る管理方法の例６を説明する。図８は、本実施形態に係る管理方法の例６を示すシーケンスチャートである。本実施形態に係る管理方法の例６は、自動車１に搭載されているエンドＥＣＵ２０に対するコンピュータプログラムの更新に関する方法である。管理方法の例６では、上記の管理方法の例５と同様に通信モジュール５１のＳＩＭ５２を使用するが、上記の管理方法の例５においてマスタＥＣＵ１０のＨＳＭ１２が実行した処理もＳＩＭ５２が実行する。図８において、上記の図６及び図７の各ステップに対応する部分には同一の符号を付け、その説明を省略する。以下、主に、上記の管理方法の例５と異なる点を説明する。
【００９３】
通信モジュール５１のＳＩＭ５２の鍵記憶部５３は、ＶＰＮ鍵とＲｏｏｔ証明書とコード署名鍵と期待値登録鍵とセキュアブート署名鍵＿車内とセキュアブート署名鍵＿車外を記憶している。
【００９４】
上記の図７を参照して説明した管理方法の例５と同様に、ステップＳ５１，Ｓ５２が実行される。但し、本管理方法の例６のステップＳ５２では、通信モジュール５１のＳＩＭ５２は、鍵記憶部５３に記憶されるＲｏｏｔ証明書を使用して、該鍵記憶部５３に記憶されるコード署名鍵及びセキュアブート署名鍵＿車外を検証する。
【００９５】
（ステップＳ４２ａ）ステップＳ４２ａは、上記の図６を参照して説明した管理方法の例４のステップＳ４２に対応する。管理方法の例４のステップＳ４２ではマスタＥＣＵ１０のＨＳＭ１２が実行した処理を、本管理方法の例６のステップＳ４２ａでは通信モジュール５１のＳＩＭ５２が実行する。
【００９６】
通信モジュール５１のＳＩＭ５２は、電子署名２１０付きＥＣＵコード２００に対して、鍵記憶部５３に記憶されるコード署名鍵を使用して電子署名２１０を検証する。電子署名２１０の検証が成功である場合には以降の処理を実行する。一方、電子署名２１０の検証が失敗である場合には、図８の処理を終了する。なお、電子署名２１０の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【００９７】
ＳＩＭ５２は、電子署名２１０の検証が成功したＥＣＵコード２００に対して、期待値登録鍵を使用して期待値を計算する。ＥＣＵコード２００の期待値として、例えば、ＥＣＵコード２００のＣＭＡＣを利用してもよい。通信モジュール５１は、電子署名２１０の検証が成功したＥＣＵコード２００と該ＥＣＵコード２００の期待値を、マスタＥＣＵ１０を介してエンドＥＣＵ２０へ送信する。
【００９８】
次いで、上記の図６を参照して説明した管理方法の例４と同様に、ステップＳ４３，Ｓ４４が実行される。但し、ＥＣＵコード２００からマスタＥＣＵ１０へ送信された成功応答メッセージは、マスタＥＣＵ１０を介して、通信モジュール５１へ送られる（ステップＳ４４ａ）。
【００９９】
（ステップＳ４５ａ）ステップＳ４５ａは、上記の図６を参照して説明した管理方法の例４のステップＳ４５に対応する。管理方法の例４のステップＳ４５ではマスタＥＣＵ１０のＨＳＭ１２が実行した処理を、本管理方法の例６のステップＳ４５ａでは通信モジュール５１のＳＩＭ５２が実行する。
【０１００】
通信モジュール５１のＳＩＭ５２は、鍵記憶部５３に記憶されるセキュアブート署名鍵＿車内を使用して成功応答メッセージを復号化し、成功応答メッセージの内容を検証する。成功応答メッセージに期待値が含まれる場合には、ＳＩＭ５２は、上記ステップＳ４２ａでエンドＥＣＵ２０へ送信したＥＣＵコード２００の期待値と、成功応答メッセージに含まれる期待値との一致を調べる。
【０１０１】
ＳＩＭ５２は、成功応答メッセージの内容の検証が成功した場合、鍵記憶部５３に記憶されるセキュアブート署名鍵＿車外を使用して、ＥＣＵコード２００の更新の成功を示す結果２２０の電子署名２３０を生成する。結果２２０として、ＥＣＵコード２００の期待値を使用してもよい。なお、成功応答メッセージの内容の検証が失敗した場合には、所定のエラー処理を行ってもよい。
【０１０２】
（ステップＳ５４）通信モジュール５１は、電子署名２３０付き結果２２０を、ＶＰＮを介して管理サーバ装置１００へ送信する。電子署名２３０付き結果２２０は、通信モジュール５１からＶＰＮを介して、安全に、管理サーバ装置１００で受信される。管理サーバ装置１００は、該受信した電子署名２３０付き結果２２０を記録する。
【０１０３】
上述の管理方法の例６では、ＳＩＭ５２が、鍵の安全性の要求のレベルが比較的高いＲｏｏｔ証明書を有し、該Ｒｏｏｔ証明書を使用してコード署名鍵及びセキュアブート署名鍵＿車外を検証する。また、ＳＩＭ５２が、鍵の安全性の要求のレベルが比較的高いＶＰＮ鍵を有し、該ＶＰＮ鍵を使用して、ＶＰＮを介して交換される通信データの暗号化及び復号化を実行する。また、ＳＩＭ５２が、主体となってＥＣＵコード２００の更新時の処理を実行する。管理方法の例６は、例えば、即時性が要求されないＥＣＵコードの更新に適用することが挙げられる。
【０１０４】
なお、通信モジュール５１は、マスタＥＣＵ１０を介して、診断ポート６０に接続された診断ツール１１０とデータを交換することができる。これにより、上記の図６を参照して説明した管理方法の例４のステップＳ４１，Ｓ４６のように、通信モジュール５１は、診断ポート６０経由の通信経路を利用して、電子署名２１０付きＥＣＵコード２００を受信したり、電子署名２３０付き結果２２０を送信したりすることができる。
【０１０５】
上述した実施形態によれば、鍵の安全性の要求のレベルと鍵の配布の高速性の要求のレベルに応じてＳＩＭ５２、ＨＳＭ１２及びＳＩＭ５２を使い分けすることができる。これにより、鍵の安全性と鍵の配布の高速性の両者のバランスを取ることができるようになる。
【０１０６】
例えば、マスタＥＣＵ１０のＨＳＭ１２がＭＡＣ鍵の更新時の処理を実行することにより、マスタＥＣＵ１０が自動車１のエンジン始動時にＭＡＣ鍵を生成して各エンドＥＣＵ２０と共有することを迅速に実行することができる。一方、通信モジュール５１のＳＩＭ５２がマスタ鍵を有し、該マスタ鍵を使用してエンドＥＣＵ２０の初期鍵を生成することにより、マスタ鍵の安全性の要求に応えることができる。
【０１０７】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【０１０８】
例えば、ＴＰＭ（Trusted Platform Module）と呼ばれる暗号処理チップを第１の暗号処理装置又は第２の暗号処理装置に使用してもよい。ＴＰＭは耐タンパー性のある暗号処理チップである。ＴＰＭについては、例えば非特許文献３に記載されている。
【０１０９】
また、上述の実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【０１１０】
また、上述した車載コンピュータシステム２の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１１１】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１１２】
１…自動車、２…車載コンピュータシステム、１０…マスタＥＣＵ、１１，２１…メイン演算器、１２…ＨＳＭ、１３，２３，５３…鍵記憶部、２０…エンドＥＣＵ、２２…ＳＨＥ、４０…インフォテイメント機器、５０…ＤＣＭ、５１…通信モジュール、５２…ＳＩＭ、６０…診断ポート、１００…管理サーバ装置、１１０…診断ツール
【図１】
2018014770.tif 000003
【図２】
2018014770.tif 000004
【図３】
2018014770.tif 000005
【図４】
2018014770.tif 000006
【図５】
2018014770.tif 000007
【図６】
2018014770.tif 000008
【図７】
2018014770.tif 000009
【図８】
2018014770.tif 000010