【文献】
竹森敬祐,他,セキュアブート+認証による車載制御システムの保護,電子情報通信学会技術研究報告,日本,電子情報通信学会,2014年 9月12日,Vol. 114, No. 225,pp. 47-54
【文献】
C. Schleiffer,他,Secure Key Management - A Key Feature for Modern Vehicle Electronics,SAE Technical Paper,SAE International,2013年,2013-01-1418,<DOI:10.4271/2013-01-1418>
(58)【調査した分野】(Int.Cl.,DB名)
固定値が前記出荷初期鍵記憶部に記憶される出荷初期鍵の各々で暗号化された固定値暗号化値と固定値暗号化値の暗号化に使用された出荷初期鍵との組合せのリストを記憶する固定値暗号化リスト記憶部を備え、
前記検証部は、前記車両に備わる車載コンピュータから前記通信部により受信した固定値暗号化値を前記リスト中の固定値暗号化値と比較し、前記リスト中の組合せのうち前記比較で一致した固定値暗号化値の組合せの出荷初期鍵を、前記暗号化データの検証に使用する、
請求項1に記載の管理装置。
前記セキュアエレメントは、無線通信に使用されるeSIM(Embedded Subscriber Identity Module)又はSIM(Subscriber Identity Module)である、請求項8に記載の管理装置。
【発明を実施するための形態】
【0019】
以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
【0020】
[第1実施形態]
図1は、本発明の第1実施形態に係る管理システムの構成図である。
図1において、管理システムは、管理装置10と管理サーバ装置60とを備える。管理装置10は自動車1に備わる。管理サーバ装置60は、無線通信ネットワーク2の通信事業者に備わる。
【0021】
無線通信ネットワーク2を利用するためには、無線通信ネットワーク2の契約者情報が書き込まれたeSIM(Embedded Subscriber Identity Module)又はSIM(Subscriber Identity Module)が必要である。管理装置10は、eSIM_20を備える。eSIM_20は、無線通信ネットワーク2の契約者情報が書き込まれたeSIMである。よって、管理装置10は、eSIM_20を使用することにより無線通信ネットワーク2を利用できる。管理装置10は、eSIM_20を使用して確立される無線通信回線3により無線通信ネットワーク2に接続する。
【0022】
管理サーバ装置60は、無線通信ネットワーク2の通信事業者の通信回線4により無線通信ネットワーク2に接続する。管理装置10と管理サーバ装置60とは、無線通信ネットワーク2を介して通信する。
【0023】
なお、管理装置10と管理サーバ装置60との間に無線通信ネットワーク2を介した専用線を確立し、管理装置10と管理サーバ装置60とが専用線を介してデータを送受するようにしてよい。
【0024】
自動車1において、管理装置10は制御用車載ネットワーク40に接続される。制御用車載ネットワーク40として、例えばCAN(Controller Area Network)が使用される。本実施形態では、制御用車載ネットワーク40はCANである。制御用車載ネットワーク40には、各種のECU50が接続される。ECU50は、自動車1に備わる車載コンピュータである。ECU50は、例えば、駆動系ECU、車体系ECU、安全制御系ECUなどである。管理装置10は、制御用車載ネットワーク40を介して、各ECU50との間でデータを交換する。ECU50は、制御用車載ネットワーク40を介して、他のECU50との間でデータを交換する。
【0025】
図2は、第1実施形態に係る管理装置10を示す構成図である。
図2において、管理装置10は、eSIM_20と無線通信部11とCANインタフェース12とを備える。これら各部はデータを交換できるように構成される。eSIM_20は、鍵生成部21と鍵記憶部22と検証部23と暗号処理部24と出荷初期鍵記憶部25と通信事業者鍵記憶部26とを備える。
【0026】
eSIM_20はセキュアエレメントである。セキュアエレメントは、当該セキュアエレメントの外部からアクセスできないセキュア領域を含む。eSIM_20において、鍵記憶部22と出荷初期鍵記憶部25と通信事業者鍵記憶部26とはセキュア領域に在る。なお、セキュアエレメントとして、eSIM_20の代わりにSIMを利用してもよい。eSIMおよびSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
【0027】
無線通信部11は無線通信によりデータを送受する。eSIM_20は、無線通信ネットワーク2の契約者情報が書き込まれたeSIMである。よって、無線通信部11は、eSIM_20を使用することにより、無線通信回線3を介して無線通信ネットワーク2に接続する。CANインタフェース12は、ECU50と通信する通信部である。CANインタフェース12は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して各ECU50とデータを交換する。
【0028】
eSIM_20において、鍵生成部21は鍵を生成する。鍵記憶部22は鍵を記憶する。検証部23は、データの交換についての検証を行う。暗号処理部24は、データの暗号化と暗号化データの復号化とを行う。出荷初期鍵記憶部25は出荷初期鍵を記憶する。通信事業者鍵記憶部26は通信事業者鍵を記憶する。
【0029】
本実施形態では、鍵生成部21が生成する鍵として、ECU鍵管理鍵とECU鍵との2種類がある。ECU鍵管理鍵は、例えば、ECU鍵等の鍵の更新をECU50に行うときに使用される。ECU鍵は、例えば、ECU50の保安のための処理に使用される。ECU鍵は、例えば、ECU50間の相互認証やデータの暗号化および復号化など、に使用される。
【0030】
鍵生成部21は、所定のタイミングで、ECU鍵管理鍵とECU鍵とを生成する。ECU鍵管理鍵の生成タイミングとECU鍵の生成タイミングとは、同じでもよく、又は、異なってもよい。鍵生成部21は、eSIM_20の外部からの鍵生成要求に応じて、ECU鍵管理鍵もしくはECU鍵のいずれか、又は、ECU鍵管理鍵とECU鍵との両方を生成してもよい。鍵生成部21は、ECU鍵管理鍵とECU鍵との生成を繰り返してもよい。
【0031】
鍵記憶部22は、鍵生成部21が生成したECU鍵管理鍵とECU鍵とを記憶する。
図3は、第1実施形態に係る鍵記憶部22を示す構成図である。
図3において、鍵記憶部22は、ECU鍵管理鍵Kmn記憶部31とECU鍵管理鍵Km(n−1)記憶部32とECU鍵kn記憶部33とを備える。
【0032】
ECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Kmnを記憶する。ECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち、最新のECU鍵管理鍵Kmnの1つ前のECU鍵管理鍵Km(n−1)を記憶する。ECU鍵kn記憶部33は、鍵生成部21が生成したECU鍵のうち最新のECU鍵knを記憶する。
【0033】
図4は、第1実施形態に係る出荷初期鍵記憶部25と通信事業者鍵記憶部26とを示す構成図である。
【0034】
図4(1)において、出荷初期鍵記憶部25は、x個の出荷初期鍵Kr0、Kr1、・・・、Krxを記憶する。但し、xは1以上の整数である。出荷初期鍵Kr0、Kr1、・・・、Krxは、ECU50に保持される出荷初期鍵の候補である。ECU50には、ECU50の製造時や出荷時、自動車1にECU50が実装された後などに、出荷初期鍵が書き込まれる。出荷初期鍵は、通常、複数が生成される。ECU50には、複数の出荷初期鍵の中から選択された出荷初期鍵が書き込まれる。ECU50に書き込まれる出荷初期鍵の候補として、出荷初期鍵Kr0、Kr1、・・・、Krxがある。
【0035】
出荷初期鍵の発行形態の例1、2、3を以下に挙げる。
【0036】
(出荷初期鍵の発行形態の例1)
無線通信ネットワーク2の通信事業者が出荷初期鍵Kr0、Kr1、・・・、Krxを発行する。出荷初期鍵Kr0、Kr1、・・・、Krxは、ECU50の製造会社や自動車1の製造会社に配布される。無線通信ネットワーク2の通信事業者は、eSIM_20に出荷初期鍵Kr0、Kr1、・・・、Krxを書き込む。eSIM_20は、出荷初期鍵Kr0、Kr1、・・・、Krxを出荷初期鍵記憶部25に記憶する。ECU50の製造会社又は自動車1の製造会社で、出荷初期鍵Kr0、Kr1、・・・、Krxから選択された出荷初期鍵がECU50に書き込まれる。ECU50は、書き込まれた出荷初期鍵を保持する。
【0037】
(出荷初期鍵の発行形態の例2)
自動車1の製造会社が出荷初期鍵Kr0、Kr1、・・・、Krxを発行する。出荷初期鍵Kr0、Kr1、・・・、Krxは、無線通信ネットワーク2の通信事業者に配布される。無線通信ネットワーク2の通信事業者は、eSIM_20に出荷初期鍵Kr0、Kr1、・・・、Krxを書き込む。eSIM_20は、出荷初期鍵Kr0、Kr1、・・・、Krxを出荷初期鍵記憶部25に記憶する。自動車1の製造会社で、出荷初期鍵Kr0、Kr1、・・・、Krxから選択された出荷初期鍵がECU50に書き込まれる。ECU50は、書き込まれた出荷初期鍵を保持する。又は、出荷初期鍵Kr0、Kr1、・・・、Krxは、ECU50の製造会社に配布される。ECU50の製造会社で、出荷初期鍵Kr0、Kr1、・・・、Krxから選択された出荷初期鍵がECU50に書き込まれる。ECU50は、書き込まれた出荷初期鍵を保持する。
【0038】
(出荷初期鍵の発行形態の例3)
ECU50の製造会社が出荷初期鍵Kr0、Kr1、・・・、Krxを発行する。出荷初期鍵Kr0、Kr1、・・・、Krxは、無線通信ネットワーク2の通信事業者に配布される。無線通信ネットワーク2の通信事業者は、eSIM_20に出荷初期鍵Kr0、Kr1、・・・、Krxを書き込む。eSIM_20は、出荷初期鍵Kr0、Kr1、・・・、Krxを出荷初期鍵記憶部25に記憶する。ECU50の製造会社で、出荷初期鍵Kr0、Kr1、・・・、Krxから選択された出荷初期鍵がECU50に書き込まれる。ECU50は、書き込まれた出荷初期鍵を保持する。又は、出荷初期鍵Kr0、Kr1、・・・、Krxは、自動車1の製造会社に配布される。自動車1の製造会社で、出荷初期鍵Kr0、Kr1、・・・、Krxから選択された出荷初期鍵がECU50に書き込まれる。ECU50は、書き込まれた出荷初期鍵を保持する。
【0039】
なお、出荷初期鍵Kr0、Kr1、・・・、Krxが漏洩しないように、無線通信ネットワーク2の通信事業者、ECU50の製造会社、自動車1の製造会社の各々において、出荷初期鍵Kr0、Kr1、・・・、Krxが慎重に取り扱われることが好ましい。
【0040】
図4(2)において、通信事業者鍵記憶部26は、y個の通信事業者鍵Kc0、Kc1、・・・、Kcyを記憶する。但し、yは1以上の整数である。通信事業者鍵Kc0、Kc1、・・・、Kcyは、eSIM_20により無線通信ネットワーク2を利用するときに使用される通信事業者鍵の候補である。eSIM_20には、eSIM_20の製造時や出荷時、管理装置10にeSIM_20が実装された後などに、通信事業者鍵Kc0、Kc1、・・・、Kcyが書き込まれる。eSIM_20は、通信事業者鍵Kc0、Kc1、・・・、Kcyを通信事業者鍵記憶部26に記憶する。また、eSIM_20には、通信事業者鍵Kc0、Kc1、・・・、Kcyの中から使用する通信事業者鍵が設定される。eSIM_20は、設定に従って通信事業者鍵Kc0、Kc1、・・・、Kcyの中から通信事業者鍵を選択し、選択した通信事業者鍵を使用する。無線通信ネットワーク2の通信事業者は、eSIM_20が使用する通信事業者鍵を特定する情報を記録する。
【0041】
図5は、第1実施形態に係るECU50を示す構成図である。
図5において、ECU50は、制御部51とCANインタフェース52と暗号処理部53と鍵記憶部54と出荷初期鍵記憶部55とを備える。これら各部はデータを交換できるように構成される。
【0042】
制御部51は、所定の制御機能を備える。CANインタフェース52は、管理装置10や他のECU50と通信する通信部である。CANインタフェース52は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して管理装置10や他のECU50とデータを交換する。
【0043】
暗号処理部53は、データの暗号化と暗号化データの復号化とを行う。鍵記憶部54は鍵を記憶する。本実施形態では、鍵記憶部54が記憶する鍵として、ECU鍵管理鍵とECU鍵との2種類がある。出荷初期鍵記憶部55は出荷初期鍵を記憶する。
【0044】
図6は、第1実施形態に係る管理サーバ装置60を構成図である。
図6において、管理サーバ装置60は、通信部61と通信事業者鍵記憶部62と管理部63と管理データ記憶部64とを備える。これら各部はデータを交換できるように構成される。通信部61は、通信回線4を介してデータを送受する。通信部61は、通信回線4を介して無線通信ネットワーク2に接続する。通信事業者鍵記憶部62は通信事業者鍵を記憶する。管理部63は、自動車1に関する管理を行う。管理データ記憶部64は、自動車1に関する管理データを記憶する。
【0045】
次に、第1実施形態に係る管理方法を説明する。なお、以下の説明において、管理装置10とECU50とは、制御用車載ネットワーク40を介してデータを送受する。管理装置10のeSIM_20は、CANインタフェース12を介してECU50とデータを送受する。ECU50の各部はCANインタフェース52を介して管理装置10のeSIM_20とデータを送受する。
【0046】
[ECU鍵管理鍵の更新方法の例A1]
図7は、第1実施形態に係るECU鍵管理鍵の更新方法の例A1を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例A1は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例A1が適用される場合として、以下に示すECU鍵管理鍵の更新方法の適用例1、2が挙げられる。
【0047】
(ECU鍵管理鍵の更新方法の適用例1)
自動車1の新車段階において、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合に、ECU鍵管理鍵の更新方法の例A1が適用される。自動車1の新車段階として、例えば、自動車1の製造過程、自動車1が完成してから販売されるまでなどが挙げられる。
【0048】
(ECU鍵管理鍵の更新方法の適用例2)
自動車1のECU50の交換段階において、自動車1に実装された交換後のECU50に対してECU鍵管理鍵を更新する場合に、ECU鍵管理鍵の更新方法の例A1が適用される。自動車1のECU50の交換段階として、例えば、故障したECU50を交換したり、又は、最新化のためにECU50を交換したりする場合などが挙げられる。
【0049】
図7には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3の1つ前のECU鍵管理鍵Km2を記憶する。
【0050】
ECU50において、出荷初期鍵記憶部55は、出荷初期鍵Kr?を記憶する。eSIM_20は、ECU50に保持される出荷初期鍵Kr?を知らない。以下、
図7を参照して、ECU鍵管理鍵の更新方法の例A1を説明する。
【0051】
(ステップS1)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0052】
(ステップS2)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元のECU50へ、チャレンジ値(乱数)を送信する。
【0053】
(ステップS3)ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr?で暗号化した暗号化データKr?(乱数)を生成する。ECU50は、暗号化データKr?(乱数)をレスポンス値として、eSIM_20へ送信する。
【0054】
(ステップS4)eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr?(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxを使用して、レスポンス値Kr?(乱数)を検証する。レスポンス値Kr?(乱数)の検証方法として、以下に示す検証方法の例1、2が挙げられる。
【0055】
(検証方法の例1)
検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxの各々でチャレンジ値(乱数)を暗号化し、各暗号化結果がレスポンス値Kr?(乱数)に一致するかを判定する。判定の結果、レスポンス値Kr?(乱数)に一致する暗号化結果が一つだけある場合には、レスポンス値Kr?(乱数)の検証が成功である。一方、判定の結果、レスポンス値Kr?(乱数)に一致する暗号化結果がない場合、及び、レスポンス値Kr?(乱数)に一致する暗号化結果が複数ある場合には、レスポンス値Kr?(乱数)の検証が失敗である。
【0056】
(検証方法の例2)
検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxの各々でレスポンス値Kr?(乱数)を復号化し、各復号化結果がチャレンジ値(乱数)に一致するかを判定する。判定の結果、チャレンジ値(乱数)に一致する復号化結果が一つだけある場合には、レスポンス値Kr?(乱数)の検証が成功である。一方、判定の結果、チャレンジ値(乱数)に一致する復号化結果がない場合、及び、チャレンジ値(乱数)に一致する復号化結果が複数ある場合には、レスポンス値Kr?(乱数)の検証が失敗である。
【0057】
レスポンス値Kr?(乱数)の検証が成功である場合にはステップS5へ進む。一方、レスポンス値Kr?(乱数)の検証が失敗である場合には、
図7の処理を終了する。なお、レスポンス値Kr?(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0058】
(ステップS5)eSIM_20の暗号処理部24は、ステップS4においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵を生成する。
図7の例では、ECU50に保持される出荷初期鍵Kr?はKr5である。よって、ステップS4においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵はKr5である。このことから、
図7の例では、出荷初期鍵はKr5でECU鍵管理鍵Km3を暗号化した暗号化ECU鍵管理鍵Kr5(Km3)が生成される。eSIM_20は、レスポンス値Kr?(乱数)の送信元のECU50へ、暗号化ECU鍵管理鍵Kr5(Km3)を送信する。
【0059】
(ステップS6)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Kr5(Km3)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr5で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0060】
(ステップS7)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0061】
上述したECU鍵管理鍵の更新方法の例A1によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0062】
また、ECU鍵管理鍵は、eSIM_20とECU50とで共有される出荷初期鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0063】
[ECU鍵管理鍵の更新方法の例A2]
図8は、第1実施形態に係るECU鍵管理鍵の更新方法の例A2を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例A2は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例A2が適用される場合として、上述したECU鍵管理鍵の更新方法の適用例1、2が挙げられる。
【0064】
図8には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3の1つ前のECU鍵管理鍵Km2を記憶する。
【0065】
ECU50において、鍵記憶部54は、ECU鍵管理鍵として出荷初期鍵Kr?を記憶する。これは、例えば、ECU50に対して、ECU鍵管理鍵の初期値として出荷初期鍵Kr?が書き込まれた場合が挙げられる。eSIM_20は、ECU50に保持される出荷初期鍵Kr?を知らない。なお、ECU鍵管理鍵の更新方法の例A2では、ECU50は出荷初期鍵記憶部55を備えなくてもよい。以下、
図8を参照して、ECU鍵管理鍵の更新方法の例A2を説明する。
【0066】
(ステップS11)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0067】
(ステップS12)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元のECU50へ、チャレンジ値(乱数)を送信する。
【0068】
(ステップS13)ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、鍵記憶部54に記憶されるECU鍵管理鍵(このECU鍵管理鍵は出荷初期鍵Kr?である)で暗号化した暗号化データKr?(乱数)を生成する。ECU50は、暗号化データKr?(乱数)をレスポンス値として、eSIM_20へ送信する。
【0069】
(ステップS14)eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr?(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxを使用して、レスポンス値Kr?(乱数)を検証する。レスポンス値Kr?(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
【0070】
レスポンス値Kr?(乱数)の検証が成功である場合にはステップS15へ進む。一方、レスポンス値Kr?(乱数)の検証が失敗である場合には、
図8の処理を終了する。なお、レスポンス値Kr?(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0071】
(ステップS15)eSIM_20の暗号処理部24は、ステップS14においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵を生成する。
図8の例では、ECU50でレスポンス値Kr?(乱数)の生成において暗号化に使用されたECU鍵管理鍵は、出荷初期鍵Kr5である。よって、ステップS14においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵はKr5である。このことから、
図8の例では、出荷初期鍵はKr5でECU鍵管理鍵Km3を暗号化した暗号化ECU鍵管理鍵Kr5(Km3)が生成される。eSIM_20は、レスポンス値Kr?(乱数)の送信元のECU50へ、暗号化ECU鍵管理鍵Kr5(Km3)を送信する。
【0072】
(ステップS16)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Kr5(Km3)を、鍵記憶部54に記憶されるECU鍵管理鍵(このECU鍵管理鍵は出荷初期鍵Kr5である)で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0073】
(ステップS17)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0074】
上述したECU鍵管理鍵の更新方法の例A2によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0075】
また、ECU鍵管理鍵は、eSIM_20とECU50とで共有される出荷初期鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0076】
[ECU鍵の更新方法の例B1]
図9は、第1実施形態に係るECU鍵の更新方法の例B1を示すシーケンスチャートである。ECU鍵の更新方法の例B1は、自動車1に実装されたECU50に対してECU鍵を更新する場合の更新方法である。ECU鍵の更新方法の例B1が適用される場合として、上述したECU鍵管理鍵の更新方法の適用例1、2と同様の場合が挙げられる。
【0077】
図9には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵kn記憶部33は、鍵生成部21が生成したECU鍵のうち最新のECU鍵k8を記憶する。
【0078】
ECU50において、鍵記憶部54は、ECU鍵管理鍵Km3を記憶する。以下、
図9を参照して、ECU鍵の更新方法の例B1を説明する。
【0079】
(ステップS21)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0080】
(ステップS22)eSIM_20の暗号処理部24は、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を使用して、鍵記憶部22のECU鍵kn記憶部33に記憶されるECU鍵k8を暗号化し、暗号化ECU鍵Km3(k8)を生成する。eSIM_20は、実装通知メッセージの送信元のECU50へ、暗号化ECU鍵Km3(k8)を送信する。
【0081】
(ステップS23)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵Km3(k8)を、鍵記憶部54に記憶されるECU鍵管理鍵Km3で復号化する。この復号化結果としてECU鍵k8が得られる。
【0082】
(ステップS24)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵k8を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵が、最新のECU鍵k8に更新される。
【0083】
上述したECU鍵の更新方法の例B1によれば、ECU50に保持されるECU鍵を、ECU50が実装された自動車1で生成された最新のECU鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵を、最新のECU鍵に合わせることができる。
【0084】
また、ECU鍵は、eSIM_20とECU50とで共有されるECU鍵管理鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵の更新の安全性が向上する。
【0085】
[ECU鍵管理鍵の更新方法の例A3]
図10は、第1実施形態に係るECU鍵管理鍵の更新方法の例A3を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例A3は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例A3では、eSIM_20が新たなECU鍵管理鍵を生成した場合に、ECU50に対してECU鍵管理鍵を更新する。
【0086】
図10には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km2を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km2の1つ前のECU鍵管理鍵Km1を記憶する。
【0087】
ECU50において、鍵記憶部54は、ECU鍵管理鍵Km2を記憶する。以下、
図10を参照して、ECU鍵管理鍵の更新方法の例A3を説明する。
【0088】
(ステップS31)eSIM_20の鍵生成部21は、新たなECU鍵管理鍵Km3を生成する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、ECU鍵管理鍵Kmn記憶部31が記憶するECU鍵管理鍵Km2を、既に記憶するECU鍵管理鍵Km1に代えて記憶する。鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成した新たなECU鍵管理鍵Km3を、既に記憶するECU鍵管理鍵Km2に代えて記憶する。これにより、鍵記憶部22において、ECU鍵管理鍵Kmn記憶部31はECU鍵管理鍵Km3を記憶し、ECU鍵管理鍵Km(n−1)記憶部32はECU鍵管理鍵Km2を記憶する。
【0089】
(ステップS32)eSIM_20の暗号処理部24は、鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32に記憶されるECU鍵管理鍵Km2を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵Km2(Km3)を生成する。eSIM_20は、暗号化ECU鍵管理鍵Km2(Km3)をECU50へ送信する。
【0090】
(ステップS33)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Km2(Km3)を、鍵記憶部54に記憶されるECU鍵管理鍵Km2で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0091】
(ステップS34)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0092】
上述したECU鍵管理鍵の更新方法の例A3によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0093】
また、更新のECU鍵管理鍵は、eSIM_20とECU50とで共有される更新前のECU鍵管理鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0094】
[ECU鍵の更新方法の例B2]
図11は、第1実施形態に係るECU鍵の更新方法の例B2を示すシーケンスチャートである。ECU鍵の更新方法の例B2は、自動車1に実装されたECU50に対してECU鍵を更新する場合の更新方法である。ECU鍵の更新方法の例B2では、eSIM_20が新たなECU鍵を生成した場合に、ECU50に対してECU鍵を更新する。
【0095】
図11には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。
【0096】
ECU50において、鍵記憶部54は、ECU鍵管理鍵Km3とECU鍵k7とを記憶する。以下、
図11を参照して、ECU鍵の更新方法の例B2を説明する。
【0097】
(ステップS41)eSIM_20の鍵生成部21は、新たなECU鍵k8を生成する。鍵記憶部22のECU鍵kn記憶部33は、鍵生成部21が生成した新たなECU鍵k8を、ECU鍵k8の1つ前に鍵生成部21が生成し既に記憶するECU鍵k7に代えて記憶する。
【0098】
(ステップS42)eSIM_20の暗号処理部24は、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を使用して、鍵記憶部22のECU鍵kn記憶部33に記憶されるECU鍵k8を暗号化し、暗号化ECU鍵Km3(k8)を生成する。eSIM_20は、暗号化ECU鍵Km3(k8)をECU50へ送信する。
【0099】
(ステップS43)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵Km3(k8)を、鍵記憶部54に記憶されるECU鍵管理鍵Km3で復号化する。この復号化結果としてECU鍵k8が得られる。
【0100】
(ステップS44)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵k8を、既に記憶するECU鍵k7に代えて記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵が、最新のECU鍵k8に更新される。
【0101】
上述したECU鍵の更新方法の例B2によれば、ECU50に保持されるECU鍵を、ECU50が実装された自動車1で生成された最新のECU鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵を、最新のECU鍵に合わせることができる。
【0102】
また、ECU鍵は、eSIM_20とECU50とで共有されるECU鍵管理鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵の更新の安全性が向上する。
【0103】
[ECU鍵管理鍵の更新方法の例A4]
図12は、第1実施形態に係るECU鍵管理鍵の更新方法の例A4を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例A4は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例A4では、ECU50に保持されるECU鍵管理鍵を、出荷初期鍵に更新する。ECU鍵管理鍵を出荷初期鍵に更新する対象のECU50は、特定の通知があったECU50である。特定の通知は、ECU50からeSIM_20へ送信されてもよく、又は、自動車1の外部からeSIM_20へ入力されてもよい。ここでは、再利用の通知があったECU50に対して、ECU鍵管理鍵を出荷初期鍵に更新する。ここでは、再利用の通知は、ECU50からeSIM_20へ送信される。
【0104】
図12には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。
【0105】
ECU50において、鍵記憶部54は、ECU鍵管理鍵Km3を記憶する。以下、
図12を参照して、ECU鍵管理鍵の更新方法の例A4を説明する。
【0106】
(ステップS51)ECU50の制御部51は、eSIM_20へ、ECU50の再利用を通知する再利用通知メッセージを送信する。eSIM_20は、ECU50から送信された再利用通知メッセージを受信する。
【0107】
(ステップS52)eSIM_20の暗号処理部24は、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を使用して、出荷初期鍵記憶部25に記憶される出荷初期鍵を暗号化し、暗号化出荷初期鍵を生成する。暗号化される出荷初期鍵は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxの中から任意に選択される。
図12の例では、暗号化される出荷初期鍵はKr6である。よって、出荷初期鍵Kr6がECU鍵管理鍵Km3で暗号化された暗号化出荷初期鍵Km3(Kr6)が生成される。eSIM_20は、再利用通知メッセージの送信元のECU50へ、暗号化出荷初期鍵Km3(Kr6)を送信する。
【0108】
(ステップS53)ECU50の暗号処理部53は、eSIM_20から受信した暗号化出荷初期鍵Km3(Kr6)を、鍵記憶部54に記憶されるECU鍵管理鍵Km3で復号化する。この復号化結果として出荷初期鍵Kr6が得られる。
【0109】
(ステップS54)ECU50の鍵記憶部54は、暗号処理部53の復号化結果である出荷初期鍵Kr6を、ECU鍵管理鍵として記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、出荷初期鍵Kr6に更新される。
【0110】
上述したECU鍵管理鍵の更新方法の例A4によれば、特定の通知があったECU50に保持されるECU鍵管理鍵を、出荷初期鍵に更新することができる。また、更新の出荷初期鍵は、eSIM_20とECU50とで共有されるECU鍵管理鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵から出荷初期鍵への更新の安全性が向上する。
【0111】
ECU鍵管理鍵の更新方法の例A4によってECU鍵管理鍵が出荷初期鍵に更新されたECU50は、他の自動車1に実装された場合、上述したECU鍵管理鍵の更新方法の例A2においてeSIM_20による検証が成功するので、他の自動車1で再利用することができる。
【0112】
なお、上述したECU鍵管理鍵の更新方法の例A4は、応用が可能である。
【0113】
一つの応用例を以下に説明する。上述したECU鍵管理鍵の更新方法の例A1において、eSIM_20による検証が成功することにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が最新化された場合、当該ECU50が、自己の出荷初期鍵記憶部55に記憶される出荷初期鍵を消去したり又は無効な値に書き換えたりする。また、上述したECU鍵管理鍵の更新方法の例A4のステップS54において、ECU50の出荷初期鍵記憶部55が、ステップS53での暗号処理部53の復号化結果である出荷初期鍵を記憶する。これにより、自動車1に実装された後に出荷初期鍵記憶部55に記憶される出荷初期鍵が消去されたり又は無効な値に書き換えられたりしたECU50に対して、再度、有効な出荷初期鍵を出荷初期鍵記憶部55に記憶させることができる。このように、再度、出荷初期鍵記憶部55に有効な出荷初期鍵を記憶したECU50は、他の自動車1に実装された場合、上述したECU鍵管理鍵の更新方法の例A1においてeSIM_20による検証が成功するので、他の自動車1で再利用することができる。
【0114】
他の応用例を以下に説明する。廃棄の通知があったECU50に対して、鍵記憶部54に記憶されるECU鍵管理鍵と出荷初期鍵記憶部25に記憶される出荷初期鍵とを所定の廃棄鍵に更新する。これにより、廃棄されたECU50が他の自動車1に実装されたとしても、廃棄鍵が使用されることによってeSIM_20による検証が失敗するので、廃棄されたECU50が他の自動車1で使用されることを防止できる。
【0115】
[鍵のバックアップ方法の例]
図13は、第1実施形態に係る鍵のバックアップ方法の例を示すシーケンスチャートである。ここでは、自動車1のECU鍵管理鍵とECU鍵とを管理サーバ装置60へバックアップする方法を説明する。
【0116】
図13には、
図1に示される管理システムにおける管理サーバ装置60と管理装置10のeSIM_20との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵kn記憶部33は、鍵生成部21が生成したECU鍵のうち最新のECU鍵k8を記憶する。
【0117】
以下、
図13を参照して、鍵のバックアップ方法の例を説明する。以下の説明において、eSIM_20は無線通信部11を介して管理サーバ装置60とデータを送受する。管理サーバ装置60の各部は、通信部61を介して管理装置10のeSIM_20とデータを送受する。
【0118】
なお、自動車1の所有者が鍵のバックアップを承諾した場合にのみ、
図13の手順が開始されるようにしてもよい。
【0119】
(ステップS61)eSIM_20の暗号処理部24は、通信事業者鍵記憶部26に記憶される通信事業者鍵Kc0、Kc1、・・・、Kcyのうち通信事業者と共有されている通信事業者鍵Kc1を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3と、鍵記憶部22のECU鍵kn記憶部33に記憶されるECU鍵k8とを各々暗号化する。これにより、ECU鍵管理鍵Km3が通信事業者鍵Kc1で暗号化された暗号化ECU鍵管理鍵Kc1(Km3)と、ECU鍵k8が通信事業者鍵Kc1で暗号化された暗号化ECU鍵Kc1(k8)とが生成される。eSIM_20と通信事業者とで共有されている通信事業者鍵Kc1は、予め、eSIM_20に設定される。eSIM_20は、暗号化ECU鍵管理鍵Kc1(Km3)と暗号化ECU鍵Kc1(k8)とを管理サーバ装置60へ送信する。このとき、eSIM_20は、自己の自動車1の識別情報(車ID)を管理サーバ装置60へ通知する。
【0120】
(ステップS62)管理サーバ装置60の管理部63は、eSIM_20から受信した暗号化ECU鍵管理鍵Kc1(Km3)と暗号化ECU鍵Kc1(k8)とを、各々、eSIM_20と共有されている通信事業者鍵Kc1を使用して復号化する。これにより、各復号化結果として、ECU鍵管理鍵Km3とECU鍵k8とが得られる。eSIM_20と通信事業者とで共有されている通信事業者鍵Kc1は、予め、管理サーバ装置60に設定される。管理サーバ装置60の管理データ記憶部64は、eSIM_20から受信した車IDに関連付けて、ECU鍵管理鍵Km3とECU鍵k8とを記憶する。
【0121】
なお、管理サーバ装置60は、暗号化ECU鍵管理鍵Kc1(Km3)と暗号化ECU鍵Kc1(k8)とを復号化せずに、そのまま保持してもよい。この場合、管理データ記憶部64は、eSIM_20から受信した車IDに関連付けて、暗号化ECU鍵管理鍵Kc1(Km3)と暗号化ECU鍵Kc1(k8)とを記憶する。
【0122】
上述した鍵のバックアップ方法の例によれば、自動車1に保持されるECU鍵管理鍵とECU鍵とを、管理サーバ装置60にバックアップすることができる。
【0123】
なお、鍵のバックアップ方法の他の例として、自動車1において管理装置10を2個備えて二重化し、二重化された管理装置10間でECU鍵管理鍵とECU鍵とを共有するようにしてもよい。
【0124】
上述した第1実施形態によれば、自動車1に保持される鍵の管理や更新を実現できるという効果が得られる。
【0125】
[第2実施形態]
本発明の第2実施形態を説明する。第2実施形態に係る管理システムの構成は、上述した
図1の構成と同じである。
【0126】
図14は、第2実施形態に係る管理装置10を示す構成図である。
図14において、
図2の各部に対応する部分には同一の符号を付け、その説明を省略する。
図14に示される管理装置10において、
図2の管理装置10と異なるのは、eSIM_20がさらに固定値暗号化リスト記憶部27を備える点である。
【0127】
固定値暗号化リスト記憶部27は、固定値暗号化リストを記憶する。固定値暗号化リストは、固定値が出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxの各々で暗号化された固定値暗号化値と、固定値暗号化値の暗号化に使用された出荷初期鍵との組合せのリストである。固定値暗号化リストは、予め、固定値暗号化リスト記憶部27に記憶される。
【0128】
図15は、第2実施形態に係るECU50を示す構成図である。
図15において、
図5の各部に対応する部分には同一の符号を付け、その説明を省略する。
図15に示されるECU50において、
図5のECU50と異なるのは、ECU50がさらに固定値記憶部56を備える点である。固定値記憶部56は、固定値を記憶する。固定値は、予め、固定値記憶部56に記憶される。
【0129】
次に、第2実施形態に係る管理方法を説明する。なお、以下の説明において、管理装置10とECU50とは、制御用車載ネットワーク40を介してデータを送受する。管理装置10のeSIM_20は、CANインタフェース12を介してECU50とデータを送受する。ECU50の各部はCANインタフェース52を介して管理装置10のeSIM_20とデータを送受する。
【0130】
[ECU鍵管理鍵の更新方法の例C1]
図16は、第2実施形態に係るECU鍵管理鍵の更新方法の例C1を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例C1は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例C1が適用される場合として、上述したECU鍵管理鍵の更新方法の適用例1、2が挙げられる。
【0131】
図16には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3の1つ前のECU鍵管理鍵Km2を記憶する。
【0132】
ECU50において、出荷初期鍵記憶部55は、出荷初期鍵Kr?を記憶する。eSIM_20は、ECU50に保持される出荷初期鍵Kr?を知らない。以下、
図16を参照して、ECU鍵管理鍵の更新方法の例C1を説明する。
【0133】
(ステップS71)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0134】
(ステップS72)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元のECU50へ、チャレンジ値(乱数)を送信する。
【0135】
(ステップS73)ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr?で暗号化した暗号化データKr?(乱数)を生成する。暗号化データKr?(乱数)は、レスポンス値になる。ECU50の暗号処理部53は、固定値記憶部56に記憶される固定値を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr?で暗号化した暗号化データKr?(固定値)を生成する。ECU50は、暗号化データKr?(固定値)とレスポンス値Kr?(乱数)とをeSIM_20へ送信する。
【0136】
(ステップS74)eSIM_20の検証部23は、ECU50から受信した暗号化データKr?(固定値)を、固定値暗号化リスト記憶部27に記憶される固定値暗号化リスト中の固定値暗号化値と比較する。
図16の例では、ECU50に保持される出荷初期鍵Kr?はKr5である。よって、ECU50から受信した暗号化データKr?(固定値)はKr5(固定値)である。このことから、固定値暗号化リスト中の固定値暗号化値との比較によって、ECU50から受信した暗号化データKr5(固定値)と一致するのは、固定値暗号化リスト中の固定値暗号化値Kr5(固定値)である。検証部23は、固定値暗号化リスト中の組合せのうち、ECU50から受信した暗号化データKr5(固定値)との比較で一致した固定値暗号化値Kr5(固定値)の組合せの出荷初期鍵Kr5を、出荷初期鍵記憶部25から取得する。
【0137】
(ステップS75)eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr?(乱数)を、ステップS74で取得した出荷初期鍵Kr5を使用して検証する。レスポンス値Kr?(乱数)の検証方法として、以下に示す検証方法の例D1、D2が挙げられる。
【0138】
(検証方法の例D1)
検証部23は、出荷初期鍵Kr5でチャレンジ値(乱数)を暗号化し、暗号化結果がレスポンス値Kr?(乱数)に一致するかを判定する。判定の結果、暗号化結果がレスポンス値Kr?(乱数)に一致する場合には、レスポンス値Kr?(乱数)の検証が成功である。一方、判定の結果、暗号化結果がレスポンス値Kr?(乱数)に一致しない場合には、レスポンス値Kr?(乱数)の検証が失敗である。
【0139】
(検証方法の例D2)
検証部23は、出荷初期鍵Kr5でレスポンス値Kr?(乱数)を復号化し、復号化結果がチャレンジ値(乱数)に一致するかを判定する。判定の結果、復号化結果がチャレンジ値(乱数)に一致する場合には、レスポンス値Kr?(乱数)の検証が成功である。一方、判定の結果、復号化結果がチャレンジ値(乱数)に一致しない場合には、レスポンス値Kr?(乱数)の検証が失敗である。
【0140】
レスポンス値Kr?(乱数)の検証が成功である場合にはステップS76へ進む。一方、レスポンス値Kr?(乱数)の検証が失敗である場合には、
図16の処理を終了する。なお、レスポンス値Kr?(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0141】
(ステップS76)eSIM_20の暗号処理部24は、ステップS75においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵を生成する。
図16の例では、ステップS75においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵はKr5である。このことから、
図16の例では、出荷初期鍵はKr5でECU鍵管理鍵Km3を暗号化した暗号化ECU鍵管理鍵Kr5(Km3)が生成される。eSIM_20は、レスポンス値Kr?(乱数)の送信元のECU50へ、暗号化ECU鍵管理鍵Kr5(Km3)を送信する。
【0142】
(ステップS77)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Kr5(Km3)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr5で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0143】
(ステップS78)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0144】
上述したECU鍵管理鍵の更新方法の例C1によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0145】
また、ECU鍵管理鍵は、eSIM_20とECU50とで共有される出荷初期鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0146】
また、固定値暗号化リストを使用して、レスポンス値Kr?(乱数)の暗号化に使用された出荷初期鍵を特定するので、上述のECU鍵管理鍵の更新方法の例A1、A2のレスポンスマッチング処理が不要となり、処理量が削減できる。
【0147】
[ECU鍵管理鍵の更新方法の例C2]
図17は、第2実施形態に係るECU鍵管理鍵の更新方法の例C2を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例C2は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例C2が適用される場合として、上述したECU鍵管理鍵の更新方法の適用例1、2が挙げられる。
【0148】
図17には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3の1つ前のECU鍵管理鍵Km2を記憶する。
【0149】
ECU50において、鍵記憶部54は、ECU鍵管理鍵として出荷初期鍵Kr?を記憶する。これは、例えば、ECU50に対して、ECU鍵管理鍵の初期値として出荷初期鍵Kr?が書き込まれた場合が挙げられる。eSIM_20は、ECU50に保持される出荷初期鍵Kr?を知らない。なお、ECU鍵管理鍵の更新方法の例C2では、ECU50は出荷初期鍵記憶部55を備えなくてもよい。以下、
図17を参照して、ECU鍵管理鍵の更新方法の例C2を説明する。
【0150】
(ステップS81)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0151】
(ステップS82)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元のECU50へ、チャレンジ値(乱数)を送信する。
【0152】
(ステップS83)ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、鍵記憶部54に記憶されるECU鍵管理鍵(このECU鍵管理鍵は出荷初期鍵Kr?である)で暗号化した暗号化データKr?(乱数)を生成する。暗号化データKr?(乱数)は、レスポンス値になる。ECU50の暗号処理部53は、固定値記憶部56に記憶される固定値を、鍵記憶部54に記憶されるECU鍵管理鍵(このECU鍵管理鍵は出荷初期鍵Kr?である)で暗号化した暗号化データKr?(固定値)を生成する。ECU50は、暗号化データKr?(固定値)とレスポンス値Kr?(乱数)とをeSIM_20へ送信する。
【0153】
(ステップS84)eSIM_20の検証部23は、ECU50から受信した暗号化データKr?(固定値)を、固定値暗号化リスト記憶部27に記憶される固定値暗号化リスト中の固定値暗号化値と比較する。
図17の例では、ECU50に保持される出荷初期鍵Kr?はKr5である。よって、ECU50から受信した暗号化データKr?(固定値)はKr5(固定値)である。このことから、固定値暗号化リスト中の固定値暗号化値との比較によって、ECU50から受信した暗号化データKr5(固定値)と一致するのは、固定値暗号化リスト中の固定値暗号化値Kr5(固定値)である。検証部23は、固定値暗号化リスト中の組合せのうち、ECU50から受信した暗号化データKr5(固定値)との比較で一致した固定値暗号化値Kr5(固定値)の組合せの出荷初期鍵Kr5を、出荷初期鍵記憶部25から取得する。
【0154】
(ステップS85)eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr?(乱数)を、ステップS84で取得した出荷初期鍵Kr5を使用して検証する。レスポンス値Kr?(乱数)の検証方法として、上述した検証方法の例D1、D2が挙げられる。
【0155】
レスポンス値Kr?(乱数)の検証が成功である場合にはステップS86へ進む。一方、レスポンス値Kr?(乱数)の検証が失敗である場合には、
図17の処理を終了する。なお、レスポンス値Kr?(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0156】
(ステップS86)eSIM_20の暗号処理部24は、ステップS85においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵を生成する。
図17の例では、ステップS85においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵はKr5である。このことから、
図17の例では、出荷初期鍵はKr5でECU鍵管理鍵Km3を暗号化した暗号化ECU鍵管理鍵Kr5(Km3)が生成される。eSIM_20は、レスポンス値Kr?(乱数)の送信元のECU50へ、暗号化ECU鍵管理鍵Kr5(Km3)を送信する。
【0157】
(ステップS87)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Kr5(Km3)を、鍵記憶部54に記憶されるECU鍵管理鍵(このECU鍵管理鍵は出荷初期鍵Kr5である)で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0158】
(ステップS88)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0159】
上述したECU鍵管理鍵の更新方法の例C2によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0160】
また、ECU鍵管理鍵は、eSIM_20とECU50とで共有される出荷初期鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0161】
また、固定値暗号化リストを使用して、レスポンス値Kr?(乱数)の暗号化に使用された出荷初期鍵を特定するので、上述のECU鍵管理鍵の更新方法の例A1、A2のレスポンスマッチング処理が不要となり、処理量が削減できる。
【0162】
上述した第2実施形態によれば、自動車1に保持される鍵の管理や更新を実現できるという効果が得られる。
【0163】
[第3実施形態]
本発明の第3実施形態を説明する。第3実施形態に係る管理システムの構成は、上述した
図1の構成と同じである。第3実施形態に係る管理装置10の構成は、上述した
図2の構成と同じである。
【0164】
図18は、第3実施形態に係るECU50を示す構成図である。
図18において、
図5の各部に対応する部分には同一の符号を付け、その説明を省略する。
図18に示されるECU50において、
図5のECU50と異なるのは、ECU50がさらに検証部57を備える点である。検証部57は、データの交換についての検証を行う。
【0165】
次に、第3実施形態に係る管理方法を説明する。なお、以下の説明において、管理装置10とECU50とは、制御用車載ネットワーク40を介してデータを送受する。管理装置10のeSIM_20は、CANインタフェース12を介してECU50とデータを送受する。ECU50の各部はCANインタフェース52を介して管理装置10のeSIM_20とデータを送受する。
【0166】
[ECU鍵管理鍵の更新方法の例E1]
図19は、第3実施形態に係るECU鍵管理鍵の更新方法の例E1を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例E1は、自動車1に実装されたECU50に対してECU鍵管理鍵を更新する場合の更新方法である。ECU鍵管理鍵の更新方法の例E1が適用される場合として、上述したECU鍵管理鍵の更新方法の適用例1、2が挙げられる。
【0167】
図19には、自動車1における管理装置10のeSIM_20とECU50との間の手順が示される。eSIM_20において、鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3を記憶する。鍵記憶部22のECU鍵管理鍵Km(n−1)記憶部32は、鍵生成部21が生成したECU鍵管理鍵のうち最新のECU鍵管理鍵Km3の1つ前のECU鍵管理鍵Km2を記憶する。
【0168】
ECU50において、出荷初期鍵記憶部55は、出荷初期鍵Kr?を記憶する。eSIM_20は、ECU50に保持される出荷初期鍵Kr?を知らない。以下、
図19を参照して、ECU鍵管理鍵の更新方法の例E1を説明する。
【0169】
(ステップS91)ECU50の制御部51は、eSIM_20へ、自動車1へのECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、ECU50から送信された実装通知メッセージを受信する。
【0170】
(ステップS92)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元のECU50へ、チャレンジ値(乱数)を送信する。
【0171】
(ステップS93)ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr?で暗号化した暗号化データKr?(乱数)を生成する。ECU50は、暗号化データKr?(乱数)をレスポンス値として、eSIM_20へ送信する。
【0172】
(ステップS94)eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr?(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Krxを使用して、レスポンス値Kr?(乱数)を検証する。レスポンス値Kr?(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
【0173】
ステップS94においてレスポンス値Kr?(乱数)の検証が成功である場合には以降の処理を実行する。一方、ステップS94においてレスポンス値Kr?(乱数)の検証が失敗である場合には、
図19の処理を終了する。なお、ステップS94においてレスポンス値Kr?(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0174】
(ステップS95)ECU50の検証部57は、乱数を生成し、生成した乱数をチャレンジ値とする。ECU50は、チャレンジ値(乱数)をeSIM_20へ送信する。
【0175】
(ステップS96)eSIM_20の暗号処理部24は、ステップS94においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵を使用して、ECU50から受信したチャレンジ値(乱数)を暗号化し、暗号化データKr?(乱数)を生成する。
図19の例では、ECU50に保持される出荷初期鍵Kr?はKr5である。よって、ステップS94においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵はKr5である。このことから、
図19の例では、出荷初期鍵はKr5でチャレンジ値(乱数)を暗号化した暗号化データKr5(乱数)が生成される。eSIM_20は、チャレンジ値(乱数)の送信元のECU50へ、暗号化データKr5(乱数)をレスポンス値として送信する。
【0176】
(ステップS97)ECU50の検証部57は、eSIM_20から受信したレスポンス値Kr5(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr5で検証する。レスポンス値Kr5(乱数)の検証方法として、以下に示す検証方法の例F1、F2が挙げられる。
【0177】
(検証方法の例F1)
検証部57は、ステップS95でeSIM_20へ送信したチャレンジ値(乱数)を出荷初期鍵Kr5で暗号化し、暗号化結果がeSIM_20から受信したレスポンス値Kr5(乱数)に一致するかを判定する。判定の結果、暗号化結果がeSIM_20から受信したレスポンス値Kr5(乱数)に一致する場合には、レスポンス値Kr5(乱数)の検証が成功である。一方、判定の結果、暗号化結果がeSIM_20から受信したレスポンス値Kr5(乱数)に一致しない場合には、レスポンス値Kr5(乱数)の検証が失敗である。
【0178】
(検証方法の例F2)
検証部57は、eSIM_20から受信したレスポンス値Kr5(乱数)を出荷初期鍵Kr5で復号化し、復号化結果がステップS95でeSIM_20へ送信したチャレンジ値(乱数)に一致するかを判定する。判定の結果、復号化結果がステップS95でeSIM_20へ送信したチャレンジ値(乱数)に一致する場合には、レスポンス値Kr5(乱数)の検証が成功である。一方、判定の結果、復号化結果がステップS95でeSIM_20へ送信したチャレンジ値(乱数)に一致しない場合には、レスポンス値Kr5(乱数)の検証が失敗である。
【0179】
ステップS97においてレスポンス値Kr5(乱数)の検証が成功である場合には以降の処理を実行する。一方、ステップS97においてレスポンス値Kr5(乱数)の検証が失敗である場合には、
図19の処理を終了する。なお、ステップS97においてレスポンス値Kr5(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0180】
(ステップS98)eSIM_20の暗号処理部24は、ステップS94においてレスポンス値Kr?(乱数)の検証が成功したときに使用された出荷初期鍵Kr5を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵Kr5(Km3)を生成する。eSIM_20は、レスポンス値Kr?(乱数)の送信元のECU50へ、暗号化ECU鍵管理鍵Kr5(Km3)を送信する。
【0181】
(ステップS99)ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Kr5(Km3)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr5で復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
【0182】
(ステップS100)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
【0183】
上述したECU鍵管理鍵の更新方法の例E1によれば、ECU50に保持されるECU鍵管理鍵を、ECU50が実装された自動車1で生成された最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
【0184】
また、ECU鍵管理鍵は、eSIM_20とECU50とで共有される出荷初期鍵で暗号化されてeSIM_20からECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
【0185】
また、eSIM_20からECU50を認証し(ステップS92,S93,S94)、且つ、ECU50からeSIM_20を認証する(ステップS95,S96,S97)ことにより、eSIM_20とECU50との間で相互認証が行われる。これにより、ECU50に対するECU鍵管理鍵の更新の安全性が向上する。
【0186】
なお、上述の第3実施形態では上述の第1実施形態のECU50に検証部57を備えたが、上述の第2実施形態の
図5に示されるECU50に対してさらに検証部57を備え、上述の第2実施形態に対して、上述の
図19のステップS95,S96,S97に示されるECU50からeSIM_20を認証する手順を適用してもよい。
【0187】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0188】
例えば、管理装置10のeSIM_20が、出荷初期鍵を管理する所定のサーバ装置から新たに発行された出荷初期鍵を取得し、該取得した出荷初期鍵を出荷初期鍵記憶部25に記憶するようにしてもよい。例えば、管理サーバ装置60が出荷初期鍵を管理してもよい。この場合、eSIM_20は、管理サーバ装置60から新たに発行された出荷初期鍵を取得し、該取得した出荷初期鍵を出荷初期鍵記憶部25に記憶する。例えば、eSIM_20は、所定のタイミングで(例えば定期的に)、管理サーバ装置60へ、出荷初期鍵の新規発行の問合せを実行することが挙げられる。又は、管理サーバ装置60が、eSIM_20へ、新たに発行された出荷初期鍵があることを通知してもよい。これにより、eSIM_20は、新たに発行された出荷初期鍵を保持することができるので、ECU50が新たに発行された出荷初期鍵を保持する場合に対応することができる。
【0189】
上述した実施形態では、セキュアエレメントとして、eSIM又はSIMを使用する例を挙げたが、これに限定されない。セキュアエレメントとして、例えば、TPM(Trusted Platform Module)と呼ばれる耐タンパー性(Tamper Resistant)のある暗号処理チップを使用してもよい。TPMについては、例えば非特許文献3に記載されている。
【0190】
上述した実施形態では、管理サーバ装置60を備えたが、管理サーバ装置60を備えなくてもよい。自動車1において、管理装置10が、ECU鍵管理鍵とECU鍵管理鍵とを、生成し、記憶し、ECU50へ送信することによって、自動車1に保持されるECU鍵管理鍵とECU鍵管理鍵との管理や更新を実現できる。
【0191】
管理装置10及びECU50において、セキュアブート(Secure Boot)を行うことも好ましい。セキュアブートによれば、コンピュータの起動時に当該コンピュータのオペレーティングシステム(Operating System:OS)の正当性を検証することができる。セキュアブートについては、例えば非特許文献3,4,5,6に記載されている。
【0192】
上述した実施形態に係る管理方法は、自動車1の販売、定期点検、車両検査、転売、廃車など、自動車1の様々な管理の場面に適用可能である。
【0193】
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
【0194】
図20は、自動車1の他の実施形態を示す構成図である。
図20において、
図1の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、
図20を参照して、自動車1の他の実施形態を説明する。
【0195】
図20に示される自動車1は、
図1の自動車1に対して、さらに、ゲートウェイ100とインフォテイメント(Infotainment)機器110と通信装置120とを備える。通信装置120は、eSIM_121を備える。eSIM_121は、無線通信ネットワーク2の契約者情報が書き込まれたeSIMである。よって、通信装置120は、eSIM_121を使用することにより無線通信ネットワーク2を利用できる。通信装置120は、eSIM_20を使用して確立される無線通信回線161により無線通信ネットワーク2に接続する。無線通信ネットワーク2は通信回線162を介してインターネット150と接続する。インターネット150には通信回線163を介してサーバ装置140が接続される。通信装置120は、無線通信ネットワーク2を介して、インターネット150に接続されるサーバ装置140と通信する。
【0196】
自動車1のインフォテイメント機器110は、通信装置120を介して、サーバ装置140とデータを送受する。インフォテイメント機器110は、外部機器130と接続して、外部機器130とデータを交換する。外部機器130として、例えば、携帯通信端末やオーディオビジュアル機器などが挙げられる。
【0197】
自動車1において、ゲートウェイ100は、制御用車載ネットワーク40に接続される。インフォテイメント機器110は、ゲートウェイ100を介して、制御用車載ネットワーク40に接続されるECU50や管理装置10とデータを送受する。ゲートウェイ100は、インフォテイメント機器110とECU50との間のデータの送受、及び、インフォテイメント機器110と管理装置10との間のデータの送受、を監視する。
【0198】
[第4実施形態]
図21から
図27を参照して第4実施形態を説明する。
【0199】
[実施例1]
図21は、第4実施形態に係る自動車1001の実施例1を示す図である。
図21おいて、自動車1001は、第1のECU1010と複数の第2のECU1020とを備える。第1のECU1010及び第2のECU1020は、自動車1001に備わる車載コンピュータである。第1のECU1010は、自動車1001に搭載されたECUのうち、ゲートウェイ機能を有するECUである。第2のECU1020は、自動車1001に搭載されたECUのうち、エンジン制御等の機能を有するECUである。第2のECU1020として、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどがある。
【0200】
第1のECU1010と複数の第2のECU1020は、自動車1001に備わるCAN(Controller Area Network)1030に接続される。CAN1030は通信ネットワークである。CANは車両に搭載される通信ネットワークの一つとして知られている。
【0201】
第1のECU1010は、CAN1030を介して、各第2のECU1020との間でデータを交換する。第2のECU1020は、CAN1030を介して、他の第2のECU1020との間でデータを交換する。
【0202】
なお、車両に搭載される通信ネットワークとして、CAN以外の通信ネットワークを自動車1001に備え、CAN以外の通信ネットワークを介して、第1のECU1010と第2のECU1020との間のデータの交換、及び、第2のECU1020同士の間のデータの交換が行われてもよい。例えば、LIN(Local Interconnect Network)を自動車1001に備えてもよい。また、CANとLINとを自動車1001に備えてもよい。また、自動車1001において、LINに接続する第2のECU1020を備えてもよい。また、第1のECU1010は、CANとLINとに接続されてもよい。また、第1のECU1010は、CANを介して該CANに接続される第2のECU1020との間でデータを交換し、また、LINを介して該LINに接続される第2のECU1020との間でデータを交換してもよい。また、第2のECU1020同士が、LINを介してデータを交換してもよい。
【0203】
自動車1001は診断ポート1060を備える。診断ポート1060として、例えばOBDポートを使用してもよい。診断ポート1060には診断端末1065を接続可能である。診断ポート1060は第1のECU1010に接続される。第1のECU1010と診断ポート1060に接続された診断端末1065とは、診断ポート1060を介して、データを交換する。
【0204】
自動車1001はインフォテイメント(Infotainment)機器1040を備える。インフォテイメント機器1040として、例えば、ナビゲーション機能、位置情報サービス機能、音楽や動画などのマルチメディア再生機能、音声通信機能、データ通信機能、インターネット接続機能などを有するものが挙げられる。インフォテイメント機器1040は第1のECU1010に接続される。第1のECU1010は、インフォテイメント機器1040から入力された情報を第2のECU1020へ送信する。
【0205】
自動車1001は、TCU(Tele Communication Unit)1050を備える。TCU1050は通信装置である。TCU1050は通信モジュール1051を備える。通信モジュール1051は、無線通信ネットワークを利用して無線通信を行う。通信モジュール1051は、SIM(Subscriber Identity Module)1052を備える。SIM1052は、無線通信ネットワークを利用するための情報が書き込まれたSIMである。通信モジュール1051は、SIM1052を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。
【0206】
SIM1052は、鍵を記憶する鍵記憶部1053を備える。SIM1052は、鍵生成装置の例である。なお、SIM1052として、eSIM(Embedded Subscriber Identity Module)を使用してもよい。SIM及びeSIMは耐タンパー性(Tamper Resistant)を有する。SIM及びeSIMはセキュアエレメントの例である。セキュアエレメントは耐タンパー性を有する。SIM及びeSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
【0207】
TCU1050は第1のECU1010に接続される。第1のECU1010は、TCU1050の通信モジュール1051とデータを交換する。
【0208】
なお、
図21の構成では第1のECU1010とTCU1050を直接接続することにより第1のECU1010と通信モジュール1051の間でデータを交換するが、これに限定されない。例えば、TCU1050をインフォテイメント機器1040に接続し、第1のECU1010が、インフォテイメント機器1040を介して、TCU1050の通信モジュール1051とデータを交換してもよい。又は、診断端末1065の代わりにTCU1050を診断ポート1060に接続し、第1のECU1010が、診断ポート1060を介して、該診断ポート1060に接続されたTCU1050の通信モジュール1051とデータを交換してもよい。又は、第1のECU1010が、SIM1052を含む通信モジュール1051を備えてもよい。第1のECU1010がSIM1052を含む通信モジュール1051を備える場合には、自動車1001はTCU1050を備えなくてもよい。
【0209】
第1のECU1010は、メイン演算器1011とHSM(Hardware Security Module)1012を備える。メイン演算器1011は、第1のECU1010の機能を実現させるためのコンピュータプログラムを実行する。HSM1012は暗号処理機能を有する。HSM1012は耐タンパー性を有する。HSM1012は、鍵を記憶する鍵記憶部1013を備える。メイン演算器1011はHSM1012を使用する。
【0210】
第2のECU1020は、メイン演算器1021とSHE(Secure Hardware Extension)1022を備える。メイン演算器1021は、第2のECU1020の機能を実現させるためのコンピュータプログラムを実行する。SHE1022は暗号処理機能を有する。SHE1022は耐タンパー性を有する。SHE1022は、鍵を記憶する鍵記憶部1023を備える。メイン演算器1021はSHE1022を使用する。
【0211】
自動車1001に備わる車載コンピュータシステム1002は、第1のECU1010と複数の第2のECU1020とがCAN1030に接続されて構成される。第1のECU1010は、ゲートウェイ機能を有し、車載コンピュータシステム1002の内部と外部の間の通信を監視する。なお、車載コンピュータシステム1002は、通信モジュール1051のSIM1052をさらに含んで構成されてもよい。
【0212】
[実施例2]
図22は、第4実施形態に係る自動車1001の実施例2を示す図である。
図22おいて、
図21の各部に対応する部分には同一の符号を付け、その説明を省略する。
図22に示す実施例2において、診断ポート1060にはメンテナンスツール(maintenance tool)1200を接続可能である。第1のECU1010と診断ポート1060に接続されたメンテナンスツール1200とは、診断ポート1060を介して、データを交換する。メンテナンスツール1200は、OBDポートに接続される従来の診断端末の機能を有していてもよい。
【0213】
メンテナンスツール1200は、制御モジュール1201を備える。制御モジュール1201は、IC(Integrated Circuit)チップ1202を備える。ICチップ1202は、鍵を記憶する鍵記憶部1203を備える。ICチップ1202は耐タンパー性を有する。ICチップ1202はセキュアエレメントの例である。ICチップ1202は、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。ICチップ1202は、鍵生成装置の例である。
【0214】
次に、
図23から
図27を参照して第4実施形態に係る管理方法を説明する。
【0215】
[管理方法の例G1]
図23を参照して、第4実施形態に係る管理方法の例G1を説明する。
図23は、第4実施形態に係る管理方法の例G1を示すシーケンスチャートである。
図23に示す第4実施形態に係る管理方法の例G1は、上述した第4実施形態に係る
図21(実施例1)及び
図22(実施例2)に示す自動車1001に適用される。
【0216】
ここでは、
図21(実施例1)に示す自動車1001を例に挙げて管理方法の例G1を説明する。以下の説明において、第1のECU1010と第2のECU1020とは、CAN1030を介してデータを送受する。
【0217】
以下の管理方法の例G1の説明では、自動車1001に実装される一つの第2のECU1020について説明する。第2のECU1020のSHE1022は、自第2のECU1020の初期鍵Ki5を鍵記憶部1023に記憶している。第2のECU1020は、自己の識別子ECU_IDを有する。SIM1052は、マスタ(Master)鍵を鍵記憶部1053に記憶している。SIM1052の鍵記憶部1053に記憶されるマスタ鍵は、第2のECU1020の鍵記憶部1023に記憶される初期鍵Ki5の生成に該第2のECU1020の識別子ECU_IDと共に使用されたマスタ鍵と同じマスタ鍵である。したがって、SIM1052の鍵記憶部1053に記憶されているマスタ鍵と第2のECU1020の識別子ECU_IDとから、該第2のECU1020の鍵記憶部1023に記憶されている初期鍵Ki5と同じ鍵を生成することができる。
【0218】
第1のECU1010のHSM1012は、自第1のECU1010の初期鍵Ki0を鍵記憶部1013に記憶している。第1のECU1010は、自己の識別子ECU_IDを有する。SIM1052の鍵記憶部1053は、第1のECU1010の鍵記憶部1013に記憶される初期鍵Ki0の生成に該第1のECU1010の識別子ECU_IDと共に使用されたマスタ鍵と同じマスタ鍵を記憶している。したがって、SIM1052の鍵記憶部1053に記憶されているマスタ鍵と第1のECU1010の識別子ECU_IDとから、該第1のECU1010の鍵記憶部1023に記憶されている初期鍵Ki0と同じ鍵を生成することができる。
【0219】
第1のECU1010は、所定のタイミングで自己の識別子ECU_IDをSIM1052へ供給する。該所定のタイミングは、例えば、第1のECU1010が自動車1001に搭載されてから初めて電源投入された時などである。第1のECU1010の識別子ECU_IDは、第1のECU1010から通信モジュール1051へ送信される。通信モジュール1051は、該受信した第1のECU1010の識別子ECU_IDをSIM1052へ供給する。SIM1052は、鍵記憶部1053からマスタ鍵を取得し、取得したマスタ鍵と第1のECU1010の識別子ECU_IDを使用して該第1のECU1010の初期鍵Ki0を生成する。SIM1052は、該生成した第1のECU1010の初期鍵Ki0を鍵記憶部1053に格納する。
【0220】
なお、第1のECU1010の初期鍵の生成に使用されるマスタ鍵と、第2のECU1020の初期鍵の生成に使用されるマスタ鍵とは、同じであってもよく、又は、異なってもよい。
【0221】
(ステップS1010)第2のECU1020は、所定のタイミングで自己の識別子ECU_IDをSIM1052へ供給する。該所定のタイミングは、例えば、第2のECU1020が自動車1001に搭載されてから初めて電源投入された時などである。第2のECU1020の識別子ECU_IDは、第2のECU1020から第1のECU1010を介して通信モジュール1051へ送信される。通信モジュール1051は、該受信した第2のECU1020の識別子ECU_IDをSIM1052へ供給する。
【0222】
(ステップS1011)SIM1052は、鍵記憶部1053からマスタ鍵を取得し、取得したマスタ鍵と第2のECU1020の識別子ECU_IDを使用して該第2のECU1020の初期鍵Ki5を生成する。SIM1052は、該生成した初期鍵Ki5を鍵記憶部1053に記憶されている第1のECU1010の初期鍵Ki0で暗号化し、暗号化された初期鍵Ki5のデータである暗号化初期鍵Ki0(Ki5)を生成する。通信モジュール1051は、SIM1052が生成した暗号化初期鍵Ki0(Ki5)と当該第2のECU1020の識別子ECU_IDの組を第1のECU1010へ送信する。
【0223】
第1のECU1010は、該受信した暗号化初期鍵Ki0(Ki5)と当該第2のECU1020の識別子ECU_IDの組をHSM1012へ供給する。HSM1012は、該暗号化初期鍵Ki0(Ki5)を鍵記憶部1013に記憶されている自第1のECU1010の初期鍵Ki0で復号する。この復号により第2のECU1020の初期鍵Ki5が得られる。HSM1012は、該第2のECU1020の初期鍵Ki5を、当該第2のECU1020の識別子ECU_IDに関連付けて鍵記憶部1013に格納する。これにより、第1のECU1010は、第2のECU1020と、該第2のECU1020の初期鍵Ki5を共有する。
【0224】
ここで、初期鍵の生成方法について例を挙げて説明する。第1のECU1010及び第2のECU1020の初期鍵の生成方法は予め定められている。初期鍵は、マスタ鍵と、第1のECU1010又は第2のECU1020の識別子ECU_IDとから生成される。
【0225】
(初期鍵の生成方法の例G1−a1)
初期鍵の生成方法の例G1−a1では、ハッシュ(hash)関数を利用する。例えば、マスタ鍵と識別子ECU_IDとをハッシュ関数の入力値に使用してハッシュ値を算出し、算出したハッシュ値を初期鍵に使用してもよい。
【0226】
(初期鍵の生成方法の例G1−a2)
初期鍵の生成方法の例G1−a2では、排他的論理和演算を利用する。例えば、マスタ鍵と識別子ECU_IDの排他的論理和演算を実行し、演算結果の値「マスタ鍵 xor 識別子ECU_ID」を初期鍵に使用してもよい。但し、「A xor B」はAとBの排他的論理和である。
【0227】
説明を
図23に戻す。
(ステップS1012)第1のECU1010のHSM1012は、乱数Rnを生成し、生成した乱数Rnをチャレンジ値とする。第1のECU1010は、チャレンジ値Rnを第2のECU1020へ送信する。
【0228】
(ステップS1013)第2のECU1020は、第1のECU1010から受信したチャレンジ値RnをSHE1022へ供給する。SHE1022は、該チャレンジ値Rnを鍵記憶部1023に記憶される自第2のECU1020の初期鍵Ki5で暗号化した暗号化データKi5(Rn)を生成する。第2のECU1020は、暗号化データKi5(Rn)をレスポンス値として、第1のECU1010へ送信する。第1のECU1010は、該受信したレスポンス値Ki5(Rn)をHSM1012へ供給する。
【0229】
HSM1012は、該レスポンス値Ki5(Rn)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、HSM1012は、鍵記憶部1013に記憶される第2のECU1020の初期鍵Ki5を使用して、レスポンス値Ki5(Rn)を検証する。レスポンス値Ki5(Rn)の検証方法について、以下に、レスポンス値の検証方法の例を挙げて説明する。
【0230】
(レスポンス値の検証方法の例G1−b1)
HSM1012は、鍵記憶部1013に記憶される複数の初期鍵Ki1、・・・、Ki5、・・・の各々でチャレンジ値Rnを暗号化し、各暗号化結果がレスポンス値Ki5(Rn)に一致するかを判定する。判定の結果、レスポンス値Ki5(Rn)に一致する暗号化結果が一つだけある場合には、レスポンス値Ki5(Rn)の検証が成功である。一方、判定の結果、レスポンス値Ki5(Rn)に一致する暗号化結果がない場合、及び、レスポンス値Ki5(Rn)に一致する暗号化結果が複数ある場合には、レスポンス値Ki5(Rn)の検証が失敗である。
【0231】
(レスポンス値の検証方法の例G1−b2)
HSM1012は、鍵記憶部1013に記憶される複数の初期鍵Ki1、・・・、Ki5、・・・の各々でレスポンス値Ki5(Rn)を復号し、各復号結果がチャレンジ値Rnに一致するかを判定する。判定の結果、チャレンジ値Rnに一致する復号結果が一つだけある場合には、レスポンス値Ki5(Rn)の検証が成功である。一方、判定の結果、チャレンジ値Rnに一致する復号結果がない場合、及び、チャレンジ値Rnに一致する復号結果が複数ある場合には、レスポンス値Ki5(Rn)の検証が失敗である。
【0232】
説明を
図23に戻す。
レスポンス値Ki5(Rn)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Ki5(Rn)の検証が失敗である場合には、
図23の処理を終了する。なお、レスポンス値Ki5(Rn)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0233】
(ステップS1014)第2のECU1020のSHE1022は、乱数Rn’を生成し、生成した乱数Rn’をチャレンジ値とする。第2のECU1020は、チャレンジ値Rn’を第1のECU1010へ送信する。
【0234】
(ステップS1015)第1のECU1010は、第2のECU1020から受信したチャレンジ値Rn’をHSM1012へ供給する。HSM1012は、該チャレンジ値Rn’を、第2のECU1020の初期鍵Ki5で暗号化した暗号化データKi5(Rn’)を生成する。第1のECU1010は、暗号化データKi5(Rn’)をレスポンス値として、第2のECU1020へ送信する。第2のECU1020は、該受信したレスポンス値Ki5(Rn’)をSHE1022へ供給する。
【0235】
SHE1022は、該レスポンス値Ki5(Rn’)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、SHE1022は、鍵記憶部1023に記憶される自第2のECU1020の初期鍵Ki5を使用して、レスポンス値Ki5(Rn’)を検証する。レスポンス値Ki5(Rn’)の検証方法としては、上述したレスポンス値の検証方法の例G1−b1、G1−b2と同様の方法が挙げられる。
【0236】
レスポンス値Ki5(Rn’)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Ki5(Rn’)の検証が失敗である場合には、
図23の処理を終了する。なお、レスポンス値Ki5(Rn’)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
【0237】
(ステップS1016)第1のECU1010のHSM1012は、第2のECU1020の初期鍵Ki5を使用して、鍵記憶部1013に記憶される鍵交換鍵Kx2を暗号化し、暗号化鍵交換鍵Ki5(Kx2)を生成する。第1のECU1010は、暗号化鍵交換鍵Ki5(Kx2)を第2のECU1020へ送信する。第2のECU1020は、該受信した暗号化鍵交換鍵Ki5(Kx2)をSHE1022へ供給する。
【0238】
(ステップS1017)第2のECU1020のSHE1022は、暗号化鍵交換鍵Ki5(Kx2)を、鍵記憶部1023に記憶される自第2のECU1020の初期鍵Ki5で復号する。この復号結果として鍵交換鍵Kx2が得られる。
【0239】
(ステップS1018)第2のECU1020のSHE1022は、該復号結果の鍵交換鍵Kx2を鍵記憶部1023に格納する。
【0240】
上述の管理方法の例G1では、SIM1052は、鍵の安全性の要求のレベルが比較的高いマスタ鍵を有する。そして、SIM1052は、マスタ鍵と第1のECU1010の識別子ECU_IDとから第1のECU1010の初期鍵を生成する。これにより、SIM1052と第1のECU1010とは、同じ初期鍵を共有する。また、SIM1052は、マスタ鍵と第2のECU1020の識別子ECU_IDとから第2のECU1020の初期鍵を生成する。そして、SIM1052は、第1のECU1010の初期鍵で第2のECU1020の初期鍵を暗号化する。該暗号化された第2のECU1020の初期鍵は、通信モジュール1051から第1のECU1010へ送信される。そして、第1のECU1010は、該暗号化された第2のECU1020の初期鍵を自己の初期鍵で復号する。これにより、第1のECU1010と第2のECU1020とは、同じ初期鍵を共有する。第1のECU1010は、自動車1001に搭載された各第2のECU1020について、各第2のECU1020の初期鍵を鍵記憶部1013に格納する。第1のECU1010と第2のECU1020とが共有する初期鍵は、第1のECU1010と第2のECU1020との間で、例えば、相互認証や、鍵交換鍵等のデータの交換における暗号処理等に使用される。
【0241】
なお、
図22(実施例2)に示す自動車1001に対して上述した管理方法の例G1を適用する場合には、
図21に示すTCU1050の代わりに、メンテナンスツール1200が使用される。具体的には、
図21に示すTCU1050の通信モジュール1051の代わりに、メンテナンスツール1200の制御モジュール1201が、診断ポート1060を介して、第1のECU1010との間でデータを送受する。また、
図21に示すTCU1050の通信モジュール1051のSIM1052及びSIM1052の鍵記憶部1053の代わりに、メンテナンスツール1200の制御モジュール1201のICチップ1202及びICチップ1202の鍵記憶部1203が使用される。
【0242】
上述した
図23に示す管理方法の例G1では、第1のECU1010と第2のECU1020とが相互に認証を行う。これにより、認証の精度が向上する。なお、上述の第1実施形態、第2実施形態、及び第3実施形態においても、
図23に示す管理方法の例G1と同様に、認証する相手同士が相互に認証するようにしてもよい。
【0243】
[管理方法の例G2]
図24から
図27を参照して、第4実施形態に係る管理方法の例G2を説明する。管理方法の例G2では、多層共通鍵方式を使用する。
図24から
図27に示す第4実施形態に係る管理方法の例G2は、上述した第4実施形態に係る
図21(実施例1)及び
図22(実施例2)に示す自動車1001に適用される。
【0244】
図24及び
図25を参照して、多層共通鍵方式による鍵の管理方法について説明する。
まず
図24を参照して多層共通鍵方式による鍵の管理方法の第1段階を説明する。
図24は、多層共通鍵方式による鍵の管理方法の第1段階を示すシーケンスチャートである。
図24において、第1のECU1010と第2のECU1020は、予め共有したN番目の共通鍵である現共通鍵(N)を有する。
【0245】
また、第1のECU1010と第2のECU1020は、予め共有したα系統のN番目の共通鍵であるα現共通鍵(N)を有する。また、第1のECU1010と第2のECU1020は、予め共有したβ系統のN番目の共通鍵であるβ現共通鍵(N)を有する。
【0246】
(ステップS1131)第1のECU1010は、新しい「N+1」番目の共通鍵である新共通鍵(N+1)を生成する。第1のECU1010は、現共通鍵(N)が保持されるレジスタに対して、現共通鍵(N)から新共通鍵(N+1)に値を書き換える。第1のECU1010は、例えば、現共通鍵(N)が使用された回数が規定回数に達した場合に、共通鍵を、現共通鍵(N)から新共通鍵(N+1)に変更してもよい。
【0247】
(ステップS1132)第1のECU1010において、HSM1012は、新共通鍵(N+1)をα現共通鍵(N)で暗号化する。
【0248】
(ステップS1133)第1のECU1010は、該新共通鍵(N+1)の暗号化の結果である第1暗号化データ(N+1)を第2のECU1020へ送信する。
【0249】
(ステップS1134)第2のECU1020において、SHE1022は、第1のECU1010から受信した第1暗号化データ(N+1)をα現共通鍵(N)で復号する。第2のECU1020は、現共通鍵(N)が保持されるレジスタに対して、現共通鍵(N)から該第1暗号化データ(N+1)の復号結果に値を書き換える。これにより、第2のECU1020の該レジスタの値が、現共通鍵(N)から新共通鍵(N+1)に更新される。
【0250】
これにより、第1のECU1010及び第2のECU1020において、共通鍵が、現共通鍵(N)から新共通鍵(N+1)に更新される。
【0251】
次に
図25を参照して多層共通鍵方式による鍵の管理方法の第2段階を説明する。
図25は、多層共通鍵方式による鍵の管理方法の第2段階を示すシーケンスチャートである。
図25において、第1のECU1010と第2のECU1020は、予め共有したα現共通鍵(N)及びβ現共通鍵(N)を有する。
【0252】
(ステップS1141)第1のECU1010は、α系統の新しい「N+1」番目の共通鍵であるα新共通鍵(N+1)を生成する。第1のECU1010は、α現共通鍵(N)が保持されるレジスタに対して、α現共通鍵(N)からα新共通鍵(N+1)に値を書き換える。第1のECU1010は、例えば、α現共通鍵(N)が使用された回数が規定回数に達した場合に、α系統の共通鍵を、α現共通鍵(N)からα新共通鍵(N+1)に変更してもよい。
【0253】
(ステップS1142)第1のECU1010において、HSM1012は、α新共通鍵(N+1)をβ現共通鍵(N)で暗号化する。
【0254】
(ステップS1143)第1のECU1010は、該α新共通鍵(N+1)の暗号化の結果である第2暗号化データ(N+1)を第2のECU1020へ送信する。
【0255】
(ステップS1144)第2のECU1020において、SHE1022は、第1のECU1010から受信した第2暗号化データ(N+1)をβ現共通鍵(N)で復号する。第2のECU1020は、α現共通鍵(N)が保持されるレジスタに対して、α現共通鍵(N)から該第2暗号化データ(N+1)の復号結果に値を書き換える。これにより、第2のECU1020の該レジスタの値が、α現共通鍵(N)からα新共通鍵(N+1)に更新される。
【0256】
これにより、第1のECU1010及び第2のECU1020において、α系統の共通鍵が、α現共通鍵(N)からα新共通鍵(N+1)に更新される。
【0257】
上述の
図24及び
図25に示される多層共通鍵方式による鍵の管理方法によれば、共通鍵方式の高速性を得ることができると共に、同じ処理ルーチンを繰り返し利用することができる。同じ処理ルーチンを繰り返し利用することにより、プログラムコードの単純化を図ることができるので、限られたコンピュータ資源である第1のECU1010及び第2のECU1020のCPU性能やメモリ量に好適である。
【0258】
図26及び
図27を参照して、多層共通鍵方式による鍵の管理方法の適用例を説明する。
図26では鍵交換鍵に適用する。
図27ではセッション鍵に適用する。鍵交換鍵は、例えばセッション鍵等の鍵の更新などに使用される鍵である。セッション鍵は、例えばメッセージ認証コード(Message Authentication Code:MAC)等によるメッセージの認証などの通信の安全性の確保に使用される鍵である。
【0259】
(多層共通鍵方式による鍵の管理方法の適用例G2−1)
図26を参照して、多層共通鍵方式による鍵の管理方法の適用例G2−1を説明する。
図26は、多層共通鍵方式による鍵の管理方法の適用例G2−1を示すシーケンスチャートである。ここでは、鍵交換鍵の更新の対象である一つの第2のECU1020について説明する。
図26において、第1のECU1010と第2のECU1020は、予め共有したβ系統の鍵交換鍵であるβ鍵交換鍵Kx2を有する。
【0260】
(ステップS1221)第1のECU1010のHSM1012は、α系統の新しい鍵交換鍵である新α鍵交換鍵Kx3を生成する。第1のECU1010のHSM1012は、新α鍵交換鍵Kx3をα系統の最新の鍵交換鍵として鍵記憶部1013に格納する。
【0261】
(ステップS1222)第1のECU1010のHSM1012は、鍵記憶部1013に記憶されるβ鍵交換鍵Kx2を使用して新α鍵交換鍵Kx3を暗号化し、暗号化鍵交換鍵Kx2(Kx3)を生成する。第1のECU1010は、暗号化鍵交換鍵Kx2(Kx3)を第2のECU1020へ送信する。第2のECU1020は、該受信した暗号化鍵交換鍵Kx2(Kx3)をSHE1022へ供給する。
【0262】
(ステップS1223)第2のECU1020のSHE1022は、暗号化鍵交換鍵Kx2(Kx3)を、鍵記憶部1023に記憶されるβ鍵交換鍵Kx2で復号する。この復号結果として新α鍵交換鍵Kx3が得られる。
【0263】
(ステップS1224)第2のECU1020のSHE1022は、該復号結果の新α鍵交換鍵Kx3をα系統の最新の鍵交換鍵として鍵記憶部1023に格納する。これにより、第1のECU1010と第2のECU1020とにおいて、α系統の鍵交換鍵が新α鍵交換鍵Kx3に更新される。
【0264】
(多層共通鍵方式による鍵の管理方法の適用例G2−2)
図27を参照して、多層共通鍵方式による鍵の管理方法の適用例G2−2を説明する。
図27は、多層共通鍵方式による鍵の管理方法の適用例G2−2を示すシーケンスチャートである。ここでは、セッション鍵の更新の対象である一つの第2のECU1020について説明する。
図27において、第1のECU1010と第2のECU1020は、予め共有したα系統の鍵交換鍵であるα鍵交換鍵Kx3を有する。
【0265】
(ステップS1231)第1のECU1010のHSM1012は、新しいセッション鍵である新セッション鍵k8を生成する。
【0266】
(ステップS1232)第1のECU1010のHSM1012は、鍵記憶部1013に記憶されるα鍵交換鍵Kx3を使用して新セッション鍵k8を暗号化し、暗号化セッション鍵Kx3(k8)を生成する。第1のECU1010は、暗号化セッション鍵Kx3(k8)を第2のECU1020へ送信する。第2のECU1020は、該受信した暗号化セッション鍵Kx3(k8)をSHE1022へ供給する。
【0267】
(ステップS1233)第2のECU1020のSHE1022は、暗号化セッション鍵Kx3(k8)を、鍵記憶部1023に記憶されるα鍵交換鍵Kx3で復号する。この復号結果として新セッション鍵k8が得られる。
【0268】
(ステップS1234)第2のECU1020のSHE1022は、該復号結果の新セッション鍵k8を最新のセッション鍵として鍵記憶部1023に格納する。これにより、第2のECU1020において、セッション鍵が新セッション鍵k8に更新される。
【0269】
上述の管理方法の例G2によれば、共通鍵の安全性を向上させる効果が得られる。例えば鍵交換鍵等の共通鍵が繰り返し使用されると、漏洩電磁波解析などの解析が行われることによって該共通鍵が漏洩する可能性がある。この対策として、上述の管理方法の例G2では、
図24及び
図25に示される多層共通鍵方式による鍵の管理方法により共通鍵の更新を行う。
【0270】
また、
図24に示される多層共通鍵方式による鍵の管理方法の第1段階により、α現共通鍵(N)が繰り返し使用されると、漏洩電磁波解析などの解析が行われることによってα現共通鍵(N)が漏洩する可能性がある。この対策として、上述の管理方法の例G2では、
図25に示される多層共通鍵方式による鍵の管理方法の第2段階により、α系統の共通鍵の更新を行う。
【0271】
なお、第4実施形態に係る管理方法の例G2を、上述の第1実施形態、第2実施形態、及び第3実施形態に適用してもよい。つまり、上述の第1実施形態、第2実施形態、及び第3実施形態において、第4実施形態に係る多層共通鍵方式による鍵の管理方法を使用してもよい。
【0272】
なお、上述した実施形態において、セキュアエレメントとして、例えば、SIM又はeSIMを使用してもよい。eSIMは、SIMの一種であり、耐タンパー性を有する。また、セキュアエレメントとして、耐タンパー性を有するICチップを使用してもよい。また、セキュアエレメントとして、耐タンパー性のある暗号処理チップを使用してもよい。耐タンパー性のある暗号処理チップとして、例えば、HSM、TPM(Trusted Platform Module)、又はSHEなどと呼ばれる暗号処理チップが知られている。
【0273】
また、上述した管理装置10、通信モジュール1051、SIM1052、第1のECU1010、HSM1012、第2のECU1020、SHE1022、制御モジュール1201、又は、ICチップ1202が実行する管理方法等の各ステップを実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0274】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。