以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係る管理システムの構成図である。図1において、管理システムは、管理装置10と管理サーバ装置60とを備える。管理装置10は自動車1に備わる。管理サーバ装置60は、無線通信ネットワーク2の通信事業者に備わる。
無線通信ネットワーク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に接続する。
管理サーバ装置60は、無線通信ネットワーク2の通信事業者の通信回線4により無線通信ネットワーク2に接続する。管理装置10と管理サーバ装置60とは、無線通信ネットワーク2を介して通信する。
なお、管理装置10と管理サーバ装置60との間に無線通信ネットワーク2を介した専用線を確立し、管理装置10と管理サーバ装置60とが専用線を介してデータを送受するようにしてもよい。
自動車1において、管理装置10は制御用車載ネットワーク40に接続される。制御用車載ネットワーク40として、例えばCAN(Controller Area Network)が使用される。本実施形態では、制御用車載ネットワーク40はCANである。制御用車載ネットワーク40には、各種のECU50が接続される。ECU50は、自動車1に備わる車載コンピュータである。ECU50は、例えば、駆動系ECU、車体系ECU、安全制御系ECUなどである。管理装置10は、制御用車載ネットワーク40を介して、各ECU50との間でデータを交換する。ECU50は、制御用車載ネットワーク40を介して、他のECU50との間でデータを交換する。
図2は、第1実施形態に係る管理装置10を示す構成図である。図2において、管理装置10は、eSIM_20と無線通信部11とCANインタフェース12とを備える。これら各部はデータを交換できるように構成される。eSIM_20は、鍵生成部21と鍵記憶部22と検証部23と暗号処理部24と出荷初期鍵記憶部25と通信事業者鍵記憶部26とを備える。
eSIM_20はセキュアエレメントである。セキュアエレメントは、当該セキュアエレメントの外部からアクセスできないセキュア領域を含む。eSIM_20において、鍵記憶部22と出荷初期鍵記憶部25と通信事業者鍵記憶部26とはセキュア領域に在る。なお、セキュアエレメントとして、eSIM_20の代わりにSIMを利用してもよい。eSIMおよびSIMは、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
無線通信部11は無線通信によりデータを送受する。eSIM_20は、無線通信ネットワーク2の契約者情報が書き込まれたeSIMである。よって、無線通信部11は、eSIM_20を使用することにより、無線通信回線3を介して無線通信ネットワーク2に接続する。CANインタフェース12は、ECU50と通信する通信部である。CANインタフェース12は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して各ECU50とデータを交換する。
eSIM_20において、鍵生成部21は鍵を生成する。鍵記憶部22は鍵を記憶する。検証部23は、データの交換についての検証を行う。暗号処理部24は、データの暗号化と暗号化データの復号化とを行う。出荷初期鍵記憶部25は出荷初期鍵を記憶する。通信事業者鍵記憶部26は通信事業者鍵を記憶する。
本実施形態では、鍵生成部21が生成する鍵として、ECU鍵管理鍵とECU鍵との2種類がある。ECU鍵管理鍵は、例えば、ECU鍵等の鍵の更新をECU50に行うときに使用される。ECU鍵は、例えば、ECU50の保安のための処理に使用される。ECU鍵は、例えば、ECU50間の相互認証やデータの暗号化および復号化など、に使用される。
鍵生成部21は、所定のタイミングで、ECU鍵管理鍵とECU鍵とを生成する。ECU鍵管理鍵の生成タイミングとECU鍵の生成タイミングとは、同じでもよく、又は、異なってもよい。鍵生成部21は、eSIM_20の外部からの鍵生成要求に応じて、ECU鍵管理鍵もしくはECU鍵のいずれか、又は、ECU鍵管理鍵とECU鍵との両方を生成してもよい。鍵生成部21は、ECU鍵管理鍵とECU鍵との生成を繰り返してもよい。
鍵記憶部22は、鍵生成部21が生成したECU鍵管理鍵とECU鍵とを記憶する。図3は、第1実施形態に係る鍵記憶部22を示す構成図である。図3において、鍵記憶部22は、ECU鍵管理鍵Kmn記憶部31とECU鍵管理鍵Km(n−1)記憶部32とECU鍵kn記憶部33とを備える。
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を記憶する。
図4は、第1実施形態に係る出荷初期鍵記憶部25と通信事業者鍵記憶部26とを示す構成図である。
図4(1)において、出荷初期鍵記憶部25は、「x+1」個の出荷初期鍵Kr0、Kr1、・・・、Krxを記憶する。但し、xは0以上の整数である。出荷初期鍵Kr0、Kr1、・・・、Krxは、ECU50に保持される出荷初期鍵の候補である。ECU50には、ECU50の製造時や出荷時、自動車1にECU50が実装された後などに、出荷初期鍵が書き込まれる。出荷初期鍵は、通常、複数が生成される。ECU50には、複数の出荷初期鍵の中から選択された出荷初期鍵が書き込まれる。ECU50に書き込まれる出荷初期鍵の候補として、出荷初期鍵Kr0、Kr1、・・・、Krxがある。
出荷初期鍵の発行形態の例1、2、3を以下に挙げる。
(出荷初期鍵の発行形態の例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は、書き込まれた出荷初期鍵を保持する。
(出荷初期鍵の発行形態の例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は、書き込まれた出荷初期鍵を保持する。
(出荷初期鍵の発行形態の例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は、書き込まれた出荷初期鍵を保持する。
なお、出荷初期鍵Kr0、Kr1、・・・、Krxが漏洩しないように、無線通信ネットワーク2の通信事業者と、ECU50の製造会社と、自動車1の製造会社との各々において、出荷初期鍵Kr0、Kr1、・・・、Krxが慎重に取り扱われることが好ましい。
図4(2)において、通信事業者鍵記憶部26は、「y+1」個の通信事業者鍵Kc0、Kc1、・・・、Kcyを記憶する。但し、yは0以上の整数である。通信事業者鍵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が使用する通信事業者鍵を特定する情報を記録する。
図5は、第1実施形態に係るECU50を示す構成図である。図5において、ECU50は、制御部51とCANインタフェース52と暗号処理部53と鍵記憶部54と出荷初期鍵記憶部55と検証部57とを備える。これら各部はデータを交換できるように構成される。
制御部51は、所定の制御機能を備える。CANインタフェース52は、管理装置10や他のECU50と通信する通信部である。CANインタフェース52は、制御用車載ネットワーク40と接続し、制御用車載ネットワーク40を介して管理装置10や他のECU50とデータを交換する。
暗号処理部53は、データの暗号化と暗号化データの復号化とを行う。鍵記憶部54は鍵を記憶する。本実施形態では、鍵記憶部54が記憶する鍵として、ECU鍵管理鍵とECU鍵との2種類がある。出荷初期鍵記憶部55は出荷初期鍵を記憶する。検証部57は、データの交換についての検証を行う。
図6は、第1実施形態に係る管理サーバ装置60を示す構成図である。図6において、管理サーバ装置60は、通信部61と通信事業者鍵記憶部62と管理部63と管理データ記憶部64とを備える。これら各部はデータを交換できるように構成される。通信部61は、通信回線4を介してデータを送受する。通信部61は、通信回線4を介して無線通信ネットワーク2に接続する。通信事業者鍵記憶部62は通信事業者鍵を記憶する。管理部63は、自動車1に関する管理を行う。管理データ記憶部64は、自動車1に関する管理データを記憶する。
次に、第1実施形態に係る管理方法を説明する。なお、以下の説明において、管理サーバ装置60と自動車1の管理装置10とは無線通信ネットワーク2を介してデータを送受する。管理装置10とECU50とは、制御用車載ネットワーク40を介してデータを送受する。管理装置10のeSIM_20は、CANインタフェース12を介してECU50とデータを送受する。ECU50の各部はCANインタフェース52を介して管理装置10のeSIM_20とデータを送受する。
[ECU鍵管理鍵の更新方法の例1]
図7は、第1実施形態に係るECU鍵管理鍵の更新方法の例1を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例1は、自動車1に対して新たにECU50が実装される場合のECU鍵管理鍵の更新方法である。自動車1に対して新たに実装されるECU50のことを新ECU50と称する。
ECU鍵管理鍵の更新方法の例1が適用される場合として、例えば、eSIM_20が自動車1に実装された後に、eSIM_20の出荷初期鍵記憶部25で保持されない新規の出荷初期鍵Knewを保持する新ECU50が自動車1に実装される場合が挙げられる。新ECU50は、自己の出荷初期鍵記憶部55に出荷初期鍵Knewを記憶する。
図7には、管理サーバ装置60と自動車1の管理装置10のeSIM_20との間の手順と、自動車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を記憶する。以下、図7を参照して、ECU鍵管理鍵の更新方法の例1を説明する。
(ステップS1)管理サーバ装置60は、新規の出荷初期鍵Knewの配信指示を受信する。
(ステップS2)管理サーバ装置60の管理部63は、eSIM_20が使用する通信事業者鍵Kc0で出荷初期鍵Knewを暗号化した暗号化データKc0(Knew)を生成する。eSIM_20が使用する通信事業者鍵Kc0を特定する情報は、無線通信ネットワーク2の通信事業者によって記録されている。管理部63は、該記録に基づいて、通信事業者鍵記憶部62から、eSIM_20が使用する通信事業者鍵Kc0を取得する。管理サーバ装置60の通信部61は、無線通信ネットワーク2を介して、暗号化データKc0(Knew)を自動車1の管理装置10のeSIM_20へ送信する。
(ステップS3)自動車1の管理装置10のeSIM_20において、暗号処理部24は、管理サーバ装置60から受信した暗号化データKc0(Knew)を、通信事業者鍵Kc0で復号化する。暗号処理部24は、eSIM_20の設定に従って、通信事業者鍵記憶部26から、暗号化データKc0(Knew)の復号化に使用する通信事業者鍵Kc0を取得する。暗号化データKc0(Knew)の復号化結果として出荷初期鍵Knewが得られる。暗号化データKc0(Knew)の復号化結果の出荷初期鍵Knewは、出荷初期鍵記憶部25に追加して記憶される。
(ステップS4)新ECU50の制御部51は、eSIM_20へ、自動車1への新ECU50の実装を通知する実装通知メッセージを送信する。eSIM_20は、新ECU50から送信された実装通知メッセージを受信する。
(ステップS5)eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。eSIM_20は、実装通知メッセージの送信元の新ECU50へ、チャレンジ値(乱数)を送信する。
(ステップS6)新ECU50の暗号処理部53は、eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewで暗号化した暗号化データKnew(乱数)を生成する。新ECU50は、暗号化データKnew(乱数)をレスポンス値として、eSIM_20へ送信する。
eSIM_20の検証部23は、新ECU50から受信したレスポンス値Knew(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Knewを使用して、レスポンス値Knew(乱数)を検証する。レスポンス値Knew(乱数)の検証方法として、以下に示す検証方法の例1、2が挙げられる。
(検証方法の例1)
検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Knewの各々でチャレンジ値(乱数)を暗号化し、各暗号化結果がレスポンス値Knew(乱数)に一致するかを判定する。判定の結果、レスポンス値Knew(乱数)に一致する暗号化結果が一つだけある場合には、レスポンス値Knew(乱数)の検証が成功である。一方、判定の結果、レスポンス値Knew(乱数)に一致する暗号化結果がない場合、及び、レスポンス値Knew(乱数)に一致する暗号化結果が複数ある場合には、レスポンス値Knew(乱数)の検証が失敗である。
(検証方法の例2)
検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、Kr1、・・・、Knewの各々でレスポンス値Knew(乱数)を復号化し、各復号化結果がチャレンジ値(乱数)に一致するかを判定する。判定の結果、チャレンジ値(乱数)に一致する復号化結果が一つだけある場合には、レスポンス値Knew(乱数)の検証が成功である。一方、判定の結果、チャレンジ値(乱数)に一致する復号化結果がない場合、及び、チャレンジ値(乱数)に一致する復号化結果が複数ある場合には、レスポンス値Knew(乱数)の検証が失敗である。
レスポンス値Knew(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Knew(乱数)の検証が失敗である場合には、図7の処理を終了する。なお、レスポンス値Knew(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS7)新ECU50の検証部57は、乱数を生成し、生成した乱数をチャレンジ値とする。新ECU50は、eSIM_20へ、チャレンジ値(乱数)を送信する。
(ステップS8)eSIM_20の暗号処理部24は、新ECU50から受信したチャレンジ値(乱数)を、上記ステップS6のレスポンス値Knew(乱数)の検証で成功した際に使用された出荷初期鍵Knewで暗号化した暗号化データKnew(乱数)を生成する。eSIM_20は、暗号化データKnew(乱数)をレスポンス値として、新ECU50へ送信する。
新ECU50の検証部57は、eSIM_20から受信したレスポンス値Knew(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部57は、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewを使用して、レスポンス値Knew(乱数)を検証する。レスポンス値Knew(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
レスポンス値Knew(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Knew(乱数)の検証が失敗である場合には、図7の処理を終了する。なお、レスポンス値Knew(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS9)eSIM_20の暗号処理部24は、上記ステップS6のレスポンス値Knew(乱数)の検証で成功した際に使用された出荷初期鍵Knewを使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を暗号化し、暗号化ECU鍵管理鍵Knew(Km3)を生成する。eSIM_20は、新ECU50へ、暗号化ECU鍵管理鍵Knew(Km3)を送信する。
(ステップS10)新ECU50の暗号処理部53は、eSIM_20から受信した暗号化ECU鍵管理鍵Knew(Km3)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewで復号化する。この復号化結果としてECU鍵管理鍵Km3が得られる。
(ステップS11)新ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km3を記憶する。これにより、新ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km3に更新される。
上述したECU鍵管理鍵の更新方法の例1によれば、自動車1に実装されたeSIM_20の出荷初期鍵記憶部25で保持されない新規の出荷初期鍵Knewを保持する新ECU50が自動車1に実装される場合に、自動車1に実装された新ECU50に対してECU鍵管理鍵を自動車1の最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
また、ECU鍵管理鍵は、eSIM_20と新ECU50とで共有される出荷初期鍵Knewで暗号化されてeSIM_20から新ECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
また、自動車1に実装されたeSIM_20の出荷初期鍵記憶部25で保持されない新規の出荷初期鍵Knewが管理サーバ装置60からeSIM_20に無線送信され、eSIM_20で無線受信された出荷初期鍵KnewがeSIM_20の出荷初期鍵記憶部25に追加して記憶される。これにより、自動車整備工場等で自動車1のOBDポートから出荷初期鍵Knewを管理装置10へ入力する手間が不要となる。
[ECU鍵管理鍵の更新方法の例2]
図8、図9及び図10は、第1実施形態に係るECU鍵管理鍵の更新方法の例2を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例2は、自動車1に対して新たにECU50が実装される場合のECU鍵管理鍵の更新方法である。自動車1に対して新たに実装されるECU50のことを新ECU50と称する。
ECU鍵管理鍵の更新方法の例2が適用される場合として、例えば、eSIM_20が自動車1に実装された後に、eSIM_20の出荷初期鍵記憶部25で保持されない新規の出荷初期鍵Knewを保持する新ECU50が自動車1に実装される場合が挙げられる。新ECU50は、自己の出荷初期鍵記憶部55に出荷初期鍵Knewを記憶する。但し、ECU鍵管理鍵の更新方法の例2では、上述したECU鍵管理鍵の更新方法の例1とは異なり、新ECU50が実装される自動車1のeSIM_20を、出荷初期鍵Knewを保持するeSIM_20に交換する。自動車1に対して交換により新たに実装されるeSIM_20のことを新eSIM_20と称する。新eSIM_20は、自己の出荷初期鍵記憶部25に出荷初期鍵Knewを記憶する。
図8には、管理サーバ装置60と自動車1の管理装置10の交換前のeSIM_20との間の手順と、自動車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を記憶する。ECU50の鍵記憶部54は、ECU鍵管理鍵Km3を記憶する。以下、図8を参照して、ECU鍵管理鍵の更新方法の例2の第1段階を説明する。
(ステップS21)自動車1の管理装置10の交換前のeSIM_20(以下、単にeSIM_20と称する)は、ECU50の交換通知を受信する。ECU50の交換通知は、例えば自動車1のOBDポートから管理装置10へ入力される。
(ステップS22)eSIM_20の暗号処理部24は、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km3を使用して所定の出荷初期鍵Kr9を暗号化し、暗号化出荷初期鍵Km3(Kr9)を生成する。ECU50の交換通知に応じて出荷初期鍵Kr9が使用されることは、予め、eSIM_20に設定される。eSIM_20は、ECU50へ、暗号化出荷初期鍵Km3(Kr9)を送信する。
(ステップS23)ECU50の暗号処理部53は、eSIM_20から受信した暗号化出荷初期鍵Km3(Kr9)を、鍵記憶部54に記憶されるECU鍵管理鍵Km3で復号化する。この復号化結果として出荷初期鍵Kr9が得られる。
(ステップS24)ECU50の出荷初期鍵記憶部55は、暗号処理部53の復号化結果である出荷初期鍵Kr9を記憶する。これにより、ECU50の出荷初期鍵記憶部55に記憶される出荷初期鍵が、出荷初期鍵Kr9に更新される。
図9には、自動車1における管理装置10の新eSIM_20とECU50との間の手順とが示される。新eSIM_20の出荷初期鍵記憶部25は、出荷初期鍵Kr9及びKnewを記憶する。以下、図9を参照して、ECU鍵管理鍵の更新方法の例2の第2段階を説明する。
(ステップS31)自動車1の管理装置10において、eSIM_20から新eSIM_20に交換される。なお、管理装置10自体を、新eSIM_20が実装された管理装置10に交換してもよい。新eSIM_20は、ECU50へ、自動車1への新eSIM_20の実装を通知する実装通知メッセージを送信する。新eSIM_20からの実装通知メッセージは、ブロードキャストにより全ECU50へ送信される。以下、一のECU50に対する手順を説明するが、同じ手順が全ECU50に対して実行される。
(ステップS32)新eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。新eSIM_20は、ECU50へ、チャレンジ値(乱数)を送信する。
(ステップS33)ECU50の暗号処理部53は、新eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr9で暗号化した暗号化データKr9(乱数)を生成する。ECU50は、暗号化データKr9(乱数)をレスポンス値として、新eSIM_20へ送信する。
新eSIM_20の検証部23は、ECU50から受信したレスポンス値Kr9(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr9、Knewを使用して、レスポンス値Kr9(乱数)を検証する。レスポンス値Kr9(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
レスポンス値Kr9(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Kr9(乱数)の検証が失敗である場合には、検証が失敗したレスポンス値Kr9(乱数)の送信元のECU50に対する図9の処理を終了する。なお、レスポンス値Kr9(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS34)ECU50の検証部57は、乱数を生成し、生成した乱数をチャレンジ値とする。ECU50は、新eSIM_20へ、チャレンジ値(乱数)を送信する。
(ステップS35)新eSIM_20の暗号処理部24は、ECU50から受信したチャレンジ値(乱数)を、上記ステップS33のレスポンス値Kr9(乱数)の検証で成功した際に使用された出荷初期鍵Kr9で暗号化した暗号化データKr9(乱数)を生成する。新eSIM_20は、暗号化データKr9(乱数)をレスポンス値として、ECU50へ送信する。
ECU50の検証部57は、新eSIM_20から受信したレスポンス値Kr9(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部57は、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr9を使用して、レスポンス値Kr9(乱数)を検証する。レスポンス値Kr9(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
レスポンス値Kr9(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Kr9(乱数)の検証が失敗である場合には、検証が失敗したレスポンス値Kr9(乱数)を受信したECU50に対する図9の処理を終了する。なお、レスポンス値Kr9(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS36)新eSIM_20の鍵生成部21は、新たなECU鍵管理鍵Km4を生成する。鍵記憶部22のECU鍵管理鍵Kmn記憶部31は、鍵生成部21が生成した新たなECU鍵管理鍵Km4を記憶する。新eSIM_20の暗号処理部24は、上記ステップS33のレスポンス値Kr9(乱数)の検証で成功した際に使用された出荷初期鍵Kr9を使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km4を暗号化し、暗号化ECU鍵管理鍵Kr9(Km4)を生成する。新eSIM_20は、ECU50へ、暗号化ECU鍵管理鍵Kr9(Km4)を送信する。
(ステップS37)ECU50の暗号処理部53は、新eSIM_20から受信した暗号化ECU鍵管理鍵Kr9(Km4)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Kr9で復号化する。この復号化結果としてECU鍵管理鍵Km4が得られる。
(ステップS38)ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km4を記憶する。これにより、ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km4に更新される。
図10には、自動車1における管理装置10の新eSIM_20と新ECU50との間の手順とが示される。新ECU50の出荷初期鍵記憶部55は、出荷初期鍵Knewを記憶する。以下、図10を参照して、ECU鍵管理鍵の更新方法の例2の第3段階を説明する。
(ステップS41)上述したステップS31により新eSIM_20からブロードキャストで送信された実装通知メッセージは、新ECU50で受信される。
(ステップS42)新eSIM_20の検証部23は、乱数を生成し、生成した乱数をチャレンジ値とする。新eSIM_20は、新ECU50へ、チャレンジ値(乱数)を送信する。
(ステップS43)新ECU50の暗号処理部53は、新eSIM_20から受信したチャレンジ値(乱数)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewで暗号化した暗号化データKnew(乱数)を生成する。新ECU50は、暗号化データKnew(乱数)をレスポンス値として、新eSIM_20へ送信する。
新eSIM_20の検証部23は、新ECU50から受信したレスポンス値Knew(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr9、Knewを使用して、レスポンス値Knew(乱数)を検証する。レスポンス値Knew(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
レスポンス値Knew(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Knew(乱数)の検証が失敗である場合には、検証が失敗したレスポンス値Knew(乱数)の送信元の新ECU50に対する図10の処理を終了する。なお、レスポンス値Knew(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS44)新ECU50の検証部57は、乱数を生成し、生成した乱数をチャレンジ値とする。新ECU50は、新eSIM_20へ、チャレンジ値(乱数)を送信する。
(ステップS45)新eSIM_20の暗号処理部24は、新ECU50から受信したチャレンジ値(乱数)を、上記ステップS43のレスポンス値Knew(乱数)の検証で成功した際に使用された出荷初期鍵Knewで暗号化した暗号化データKnew(乱数)を生成する。新eSIM_20は、暗号化データKnew(乱数)をレスポンス値として、新ECU50へ送信する。
新ECU50の検証部57は、新eSIM_20から受信したレスポンス値Knew(乱数)に対して、レスポンスマッチング処理を実行する。レスポンスマッチング処理では、検証部57は、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewを使用して、レスポンス値Knew(乱数)を検証する。レスポンス値Knew(乱数)の検証方法として、上述した検証方法の例1、2が挙げられる。
レスポンス値Knew(乱数)の検証が成功である場合には以降のステップへ進む。一方、レスポンス値Knew(乱数)の検証が失敗である場合には、検証が失敗したレスポンス値Knew(乱数)を受信した新ECU50に対する図10の処理を終了する。なお、レスポンス値Kr9(乱数)の検証が失敗である場合には、所定のエラー処理を行ってもよい。
(ステップS46)新eSIM_20の暗号処理部24は、上記ステップS43のレスポンス値Knew(乱数)の検証で成功した際に使用された出荷初期鍵Knewを使用して、鍵記憶部22のECU鍵管理鍵Kmn記憶部31に記憶されるECU鍵管理鍵Km4を暗号化し、暗号化ECU鍵管理鍵Knew(Km4)を生成する。新eSIM_20は、新ECU50へ、暗号化ECU鍵管理鍵Knew(Km4)を送信する。
(ステップS47)新ECU50の暗号処理部53は、新eSIM_20から受信した暗号化ECU鍵管理鍵Knew(Km4)を、出荷初期鍵記憶部55に記憶される出荷初期鍵Knewで復号化する。この復号化結果としてECU鍵管理鍵Km4が得られる。
(ステップS48)新ECU50の鍵記憶部54は、暗号処理部53の復号化結果であるECU鍵管理鍵Km4を記憶する。これにより、新ECU50の鍵記憶部54に記憶されるECU鍵管理鍵が、最新のECU鍵管理鍵Km4に更新される。
なお、上述したECU鍵管理鍵の更新方法の例2において、第2段階と第3段階とはいずれの段階を先に実行してもよい。但し、第2段階又は第3段階のうち先に実行する段階において、新たなECU鍵管理鍵Km4が生成される。
上述したECU鍵管理鍵の更新方法の例2によれば、自動車1に実装されたeSIM_20の出荷初期鍵記憶部25で保持されない新規の出荷初期鍵Knewを保持する新ECU50が自動車1に実装される場合に、自動車1に実装された新ECU50に対してECU鍵管理鍵を自動車1の最新のECU鍵管理鍵に更新することができる。これにより、自動車1に実装される各ECU50で保持されるECU鍵管理鍵を、最新のECU鍵管理鍵に合わせることができる。
また、ECU鍵管理鍵は、新eSIM_20とECU50とで共有される出荷初期鍵Kr9で暗号化されて新eSIM_20からECU50へ送信される。また、ECU鍵管理鍵は、新eSIM_20と新ECU50とで共有される出荷初期鍵Knewで暗号化されて新eSIM_20から新ECU50へ送信される。これにより、ECU鍵管理鍵の更新の安全性が向上する。
また、自動車1に対し、新規の出荷初期鍵Knewを保持しないeSIM_20から、新規の出荷初期鍵Knewを保持する新eSIM_20に交換することに対応するので、無線通信環境が整備されていない地域においても適用可能である。
[ECU鍵管理鍵の更新方法の例3]
図11は、第1実施形態に係るECU鍵管理鍵の更新方法の例3を示すシーケンスチャートである。ECU鍵管理鍵の更新方法の例3は、上述したECU鍵管理鍵の更新方法の例2の変形例である。ECU鍵管理鍵の更新方法の例3では、自動車1に対して交換により新たに実装される新eSIM_20が新規の出荷初期鍵Knewを保持しない場合に、管理サーバ装置60から新eSIM_20へ、無線通信により新規の出荷初期鍵Knewを送信する。
図11には、管理サーバ装置60と自動車1の管理装置10の新eSIM_20との間の手順と、自動車1における管理装置10の新eSIM_20とECU50との間の手順とが示される。以下、図11を参照して、ECU鍵管理鍵の更新方法の例3の第1段階を説明する。ECU鍵管理鍵の更新方法の例3の第1段階は、上述した図9に示されるECU鍵管理鍵の更新方法の例2の第2段階に対応する。
(ステップS51)管理サーバ装置60は、新規の出荷初期鍵Knewを含む出荷初期鍵リストの配信指示を受信する。
(ステップS52)管理サーバ装置60の管理部63は、新eSIM_20が使用する通信事業者鍵Kc0で出荷初期鍵リストを暗号化した暗号化データKc0(リスト)を生成する。新eSIM_20が使用する通信事業者鍵Kc0を特定する情報は、無線通信ネットワーク2の通信事業者によって記録されている。管理部63は、該記録に基づいて、通信事業者鍵記憶部62から、新eSIM_20が使用する通信事業者鍵Kc0を取得する。管理サーバ装置60の通信部61は、無線通信ネットワーク2を介して、暗号化データKc0(リスト)を自動車1の管理装置10の新eSIM_20へ送信する。
(ステップS53)自動車1の管理装置10の新eSIM_20において、暗号処理部24は、管理サーバ装置60から受信した暗号化データKc0(リスト)を、通信事業者鍵Kc0で復号化する。暗号処理部24は、新eSIM_20の設定に従って、通信事業者鍵記憶部26から、暗号化データKc0(リスト)の復号化に使用する通信事業者鍵Kc0を取得する。暗号化データKc0(リスト)の復号化結果として出荷初期鍵リストが得られる。暗号化データKc0(リスト)の復号化結果の出荷初期鍵リストに含まれる出荷初期鍵Kr0、・・・、Kr9、・・・、Knewは、出荷初期鍵記憶部25に記憶される。
図11のステップS54からS61までは、上述した図9のステップS31からS38までに対応し、同様の処理が行われる。但し、図11のステップS56のレスポンスマッチング処理では、新eSIM_20の検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、・・・、Kr9、・・・、Knewを使用して、ECU50から受信したレスポンス値Kr9(乱数)を検証する。
なお、ECU鍵管理鍵の更新方法の例3の第2段階は、上述した図10に示されるECU鍵管理鍵の更新方法の例2の第3段階と同様に実行される。但し、ECU鍵管理鍵の更新方法の例3の第2段階では、図10のステップS43のレスポンスマッチング処理に対応するレスポンスマッチング処理として、新eSIM_20の検証部23は、出荷初期鍵記憶部25に記憶される出荷初期鍵Kr0、・・・、Kr9、・・・、Knewを使用して、新ECU50から受信したレスポンス値Knew(乱数)を検証する。
上述したECU鍵管理鍵の更新方法の例3によれば、自動車1において、eSIM_20を新eSIM_20に交換した際に、無線通信により、管理サーバ装置60から新eSIM_20へ、新規の出荷初期鍵Knewを含む出荷初期鍵リストを配信できる。
上述した第1実施形態によれば、自動車1に保持される鍵の管理や更新に寄与できるという効果が得られる。
[第2実施形態]
図12は、本発明の第2実施形態に係る自動車1を示す構成図である。図12において、図1の各部に対応する部分には同一の符号を付け、その説明を省略する。以下、図12を参照して、第2実施形態に係る自動車1を説明する。
図12に示される自動車1は、図1の自動車1に対して、さらに、ゲートウェイ100とインフォテイメント(Infotainment)機器110と通信装置120とを備える。通信装置120は、eSIM_121を備える。eSIM_121は、無線通信ネットワーク2の契約者情報が書き込まれたeSIMである。よって、通信装置120は、eSIM_121を使用することにより無線通信ネットワーク2を利用できる。通信装置120は、eSIM_121を使用して確立される無線通信回線161により無線通信ネットワーク2に接続する。無線通信ネットワーク2は通信回線162を介してインターネット150と接続する。インターネット150には通信回線163を介してサーバ装置140が接続される。通信装置120は、無線通信ネットワーク2を介して、インターネット150に接続されるサーバ装置140と通信する。
自動車1のインフォテイメント機器110は、通信装置120を介して、サーバ装置140とデータを送受する。インフォテイメント機器110は、外部機器130と接続して、外部機器130とデータを交換する。外部機器130として、例えば、携帯通信端末やオーディオビジュアル機器などが挙げられる。
自動車1において、ゲートウェイ100は、制御用車載ネットワーク40に接続される。インフォテイメント機器110は、ゲートウェイ100を介して、制御用車載ネットワーク40に接続されるECU50や管理装置10とデータを送受する。ゲートウェイ100は、インフォテイメント機器110とECU50との間のデータの送受、及び、インフォテイメント機器110と管理装置10との間のデータの送受、を監視する。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
上述した実施形態では、セキュアエレメントとして、eSIM又はSIMを使用する例を挙げたが、これに限定されない。セキュアエレメントとして、例えば、耐タンパー性(Tamper Resistant)のある暗号処理チップを使用してもよい。耐タンパー性のある暗号処理チップとして、例えば、TPM(Trusted Platform Module)と呼ばれる暗号処理チップが知られている。TPMについては、例えば非特許文献3に記載されている。
管理装置10及びECU50において、セキュアブート(Secure Boot)を行うことも好ましい。セキュアブートによれば、コンピュータの起動時に当該コンピュータのオペレーティングシステム(Operating System:OS)の正当性を検証することができる。セキュアブートについては、例えば非特許文献4,5,6に記載されている。
上述した実施形態に係る管理方法は、自動車1の販売、定期点検、車両検査、転売、廃車など、自動車1の様々な管理の場面に適用可能である。
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、上述した管理装置10、ECU50又は管理サーバ装置60が実行する管理方法の各ステップを実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。