以下、図面を参照し、本発明の実施形態について説明する。なお、以下に示す実施形態では、車両として自動車を例に挙げて説明する。
図1は、本実施形態に係る通信システム1の概略構成図である。図1において、通信システム1は、サーバ装置30と、TCU(Tele Communication Unit)14と、を備える。TCU14は通信装置の例である。TCU14は自動車10に備わる。自動車10は、TCU14と、車載インフォテイメント(In-Vehicle Infotainment:IVI)機器15と、ゲートウェイ(GW)装置16と、通信ネットワーク17と、複数のECU(電子制御装置)18とを備える。
ECU18は、自動車10に備わる車載コンピュータである。ECU18は、自動車10のエンジン制御等の制御機能を有する。ECU18として、例えば、エンジン制御機能を有するECU、ハンドル制御機能を有するECU、ブレーキ制御機能を有するECUなどがある。ゲートウェイ装置16は、自動車10に搭載されたECU18に適用されるデータのセキュリティ(保安)の機能を有する。なお、自動車10に搭載されたいずれかのECUをゲートウェイ装置16として機能させてもよい。
ゲートウェイ装置16と複数のECU18は、自動車10に備わる通信ネットワーク(以下、車載ネットワーク17と称する)17に接続される。車載ネットワーク17は、例えば、CAN(Controller Area Network)であってもよい。CANは車両に搭載される通信ネットワークの一つとして知られている。ゲートウェイ装置16は、車載ネットワーク17を介して、各ECU18との間でデータを交換する。ECU18は、車載ネットワーク17を介して、他のECU18との間でデータを交換する。
なお、車両に搭載される通信ネットワークとして、CAN以外の通信ネットワークを自動車10に備え、CAN以外の通信ネットワークを介して、ゲートウェイ装置16とECU18との間のデータの交換、及び、ECU18同士の間のデータの交換が行われてもよい。例えば、LIN(Local Interconnect Network)を自動車10に備えてもよい。また、CANとLINとを自動車10に備えてもよい。また、自動車10において、LINに接続するECU18を備えてもよい。また、ゲートウェイ装置16は、CANとLINとに接続されてもよい。また、ゲートウェイ装置16は、CANを介して該CANに接続されるECU18との間でデータを交換し、また、LINを介して該LINに接続されるECU18との間でデータを交換してもよい。また、ECU18同士が、LINを介してデータを交換してもよい。
自動車10の車載コンピュータシステムは、ゲートウェイ装置16と複数のECU18とが車載ネットワーク17に接続されて構成される。ゲートウェイ装置16は、自動車10の車載コンピュータシステムの内部と外部の間の通信を監視する。ECU18は、ゲートウェイ装置16を介して、車載コンピュータシステムの外部の装置と通信を行う。
なお、車載ネットワーク17の構成として、車載ネットワーク17が複数のバス(通信線)を備え、該複数のバスをゲートウェイ装置16に接続してもよい。この場合、一つのバスに、一つのECU18又は複数のECU18が接続される。
TCU14は、自動車10の外部の装置と通信を行う。TCU14は、無線通信を行ってもよく、又は、有線通信を行ってもよい。本実施形態に係る一例として、TCU14は、無線通信ネットワークを利用して無線通信を行う。TCU14は、通信路102を介してサーバ装置30と通信を行う。通信路102は、TCU14が利用する無線通信ネットワークの無線通信路を含む通信路である。通信路102は、無線通信路と有線通信路とから構成されてもよい。
サーバ装置30は、通信路102を介して自動車10のTCU14と通信を行う。サーバ装置30は、自動車10のTCU14を介して、自動車10に搭載された装置と通信を行う。
TCU14は、IVI機器15とゲートウェイ装置16とに接続されている。IVI機器15は、TCU14とゲートウェイ装置16とに接続されている。IVI機器15は、TCU14を介してサーバ装置30と通信を行う。IVI機器15は、ゲートウェイ装置16を介してECU18と通信を行う。
図2は、本実施形態に係るサーバ装置30の概略構成図である。図2において、サーバ装置30は、サーバ通信部31と、サーバ記憶部32と、サーバ鍵処理部33と、サーバ認証処理部34とを備える。サーバ通信部31は、通信路102を介して自動車10と通信を行う。サーバ記憶部32はデータを記憶する。サーバ鍵処理部33は、鍵に関する処理を行う。サーバ認証処理部34は、自動車10との間で認証処理を行う。
サーバ装置30の機能は、サーバ装置30が備えるCPU(Central Processing Unit:中央演算処理装置)がコンピュータプログラムを実行することにより実現される。なお、サーバ装置30として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
図3は、本実施形態に係るTCU14のハードウェア構成例を示すブロック図である。図3において、TCU14は、CPU141と、記憶部142と、インタフェース部143と、通信モジュール144とを備える。これら各部はデータを交換できるように構成されている。通信モジュール144は、SIM(Subscriber Identity Module)80を備える。
CPU141はTCU14の制御を行う。この制御機能は、CPU141がコンピュータプログラムを実行することにより実現される。記憶部142は、CPU141で実行されるコンピュータプログラムや各種のデータを記憶する。記憶部142は、TCU14の各種の機能を実現させるためのコンピュータプログラムを記憶する。CPU141が該コンピュータプログラムを実行することにより、TCU14の各種の機能が実現される。
インタフェース部143は、自TCU14の外部の装置とデータを送受する。インタフェース部143は、IVI機器15とデータを送受するインタフェースと、ゲートウェイ装置16とデータを送受するインタフェースとを備える。
通信モジュール144は、無線通信ネットワークを利用して無線通信を行う。通信モジュール144は通信装置の例である。通信モジュール144は、SIM80を備える。SIM80は、無線通信ネットワークを利用するための情報が書き込まれたSIMである。通信モジュール144は、SIM80を使用することにより該無線通信ネットワークに接続して無線通信を行うことができる。本実施形態に係る一例として、通信路102は、通信モジュール144がSIM80により接続する無線通信ネットワークの無線通信路を含む通信路である。
なお、SIM80として、eSIM(Embedded Subscriber Identity Module)を使用してもよい。SIM及びeSIMはセキュアエレメント(Secure Element:SE)の例である。SIM及びeSIMは耐タンパー性(Tamper Resistant)を有する。
図4は、本実施形態に係るTCU14の機能構成例を示す図である。図5において、TCU14は、TCU通信部51と、TCU記憶部52と、TCU鍵処理部53と、TCU認証処理部54とを備える。これら各部の機能は、CPU141がコンピュータプログラムを実行することにより実現される。TCU通信部51は、通信路102を介してサーバ装置30と通信を行う。TCU記憶部52はデータを記憶する。TCU鍵処理部53は、鍵に関する処理を行う。TCU認証処理部54は、サーバ装置30との間で認証処理を行う。
図5は、本実施形態に係るSIM80の機能構成例を示す図である。図5において、SIM80は、SIM通信部81と、SIM記憶部82と、SIM鍵処理部83と、SIM認証処理部84とを備える。SIM80の機能は、SIM80が備えるCPUがコンピュータプログラムを実行することにより実現される。
SIM通信部81は、SIM80の外部の装置と通信を行う。SIM記憶部82はデータを記憶する。SIM鍵処理部83は、鍵に関する処理を行う。SIM認証処理部84は、サーバ装置30との間で認証処理を行う。
[通信方法の例1]
次に図6を参照して本実施形態に係る通信方法の例1を説明する。図6は、本実施形態に係る通信方法の例1を示すシーケンスチャートである。
図6において、サーバ装置30は、第1鍵PSK1を予めサーバ記憶部32に格納する。SIM80は、第1鍵PSK1を予めSIM記憶部82に格納する。サーバ装置30がサーバ記憶部32に格納する第1鍵PSK1とSIM80がSIM記憶部82に格納する第1鍵PSK1とは、同じである。第1鍵PSK1は、漏洩しないように安全に管理されることが好ましい。
SIM80は、ICCID(Integrated Circuit Card ID)を格納する。ICCIDは、SIM80(セキュアエレメント)に対応するSIM対応識別子(セキュアエレメント対応識別子)の例である。サーバ装置30には、自動車10に搭載されるSIM80のICCIDが予め登録される。サーバ記憶部32は、サーバ装置30に登録されたICCIDを格納する。サーバ記憶部32は、SIM80との間で共有する第1鍵PSK1を、当該SIM80のICCIDに関連付けて格納する。TCU14のCPU141は、自TCU14の通信モジュール144のSIM80から当該SIM80のICCIDを受信して保持する。
第1鍵PSK1は、例えば次式(1)により生成されてもよい。
第1鍵PSK1=ダイジェスト(Master_Secret、ICCID) ・・・(1)
但し、Master_Secretはマスタ鍵である。マスタ鍵Master_Secretは、漏洩しないように安全に管理されることが好ましい。ICCIDは、当該ICCIDを使用して生成される第1鍵PSK1が格納されるSIM80のICCIDである。上記式(1)において、第1鍵PSK1は、マスタ鍵Master_SecretとICCIDとを使用して生成されるダイジェストである。ダイジェストとして、例えば、ハッシュ(hash)関数により算出される値、又は、排他的論理和演算により算出される値などが挙げられる。例えば、第1鍵PSK1は、マスタ鍵Master_SecretとICCIDとを入力値に使用して算出されるハッシュ関数値である。ダイジェストとして、CMAC(Cipher-based Message Authentication Code)を使用してもよい。例えば、第1鍵PSK1は、CMAC(Master_Secret;ICCID)である。但し、CMAC(A;B)において、鍵AはCMACの生成に使用される鍵であり、データBはCMACの生成対象のデータである。これにより、第1鍵PSK1は、マスタ鍵Master_Secretを使用して生成される「ICCIDのCMAC」である。
上記式(1)により生成される第1鍵PSK1は、SIM80毎に異なるICCIDが使用されて生成されるので、SIM80毎に異なる鍵になる。
又は、第1鍵PSK1は、乱数発生器により発生された乱数を使用して生成されてもよい。
本実施形態に係る通信方法の例1は、鍵共有段階S100と、暗号通信路構築段階S200とから構成される。
(鍵共有段階)
図6を参照して鍵共有段階S100を説明する。
(ステップS101)TCU14において、TCU鍵処理部53は、SIM80に対して第2鍵PSK2を要求する。
(ステップS102)SIM80において、SIM鍵処理部83は、該第2鍵PSK2の要求に応じて、第2鍵PSK2を生成する。SIM鍵処理部83は、乱数を発生し、当該乱数を使用して第2鍵PSK2を生成する。
(ステップS103)SIM鍵処理部83は、該生成した第2鍵PSK2を、SIM記憶部82の第1鍵PSK1を使用して暗号化し、暗号化第2鍵PSK1(PSK2)を生成する。SIM通信部81は、第2鍵PSK2と暗号化第2鍵PSK1(PSK2)とをCPU141に送信する。TCU記憶部52は、SIM80から受信した第2鍵PSK2を格納する。
(ステップS104)TCU通信部51は、SIM80から受信した暗号化第2鍵PSK1(PSK2)と、当該SIM80のICCIDとをサーバ装置30に送信する。サーバ装置30のサーバ鍵処理部33は、自動車10のTCU14から受信したICCIDに関連付けられている第1鍵PSK1を、サーバ記憶部32から取得する。サーバ鍵処理部33は、該取得した第1鍵PSK1を使用して、当該自動車10のTCU14から受信した暗号化第2鍵PSK1(PSK2)を復号する。サーバ記憶部32は、該暗号化第2鍵PSK1(PSK2)の復号結果の第2鍵PSK2を、当該自動車10のTCU14から受信したICCIDに関連付けて格納する。これにより、サーバ装置30と自動車10のTCU14との間で第2鍵PSK2が共有される。
(暗号通信路構築段階)
図6を参照して暗号通信路構築段階S200を説明する。
(ステップS201)TCU14のTCU認証処理部54は、乱数cを発生し、当該乱数cをチャレンジにする。TCU通信部51は、チャレンジ(乱数c)と、SIM80のICCIDとをサーバ装置30に送信する。TCU記憶部52は、チャレンジ(乱数c)を格納する。
(ステップS202)サーバ装置30のサーバ認証処理部34は、自動車10のTCU14から受信したICCIDに関連付けられている第1鍵PSK1を、サーバ記憶部32から取得する。サーバ認証処理部34は、該取得した第1鍵PSK1と、当該自動車10のTCU14から受信したチャレンジ(乱数c)とを使用して、レスポンスPSK1(乱数c)を生成する。このレスポンス生成方法は、予め、サーバ認証処理部34に設定される。レスポンスPSK1(乱数c)は、本実施形態に係る一例として、第1鍵PSK1で乱数cを暗号化した暗号化データである。
なお、レスポンスPSK1(乱数c)は、本実施形態に係る一例として、CMAC(PSK1;乱数c)、つまり、第1鍵PSK1を使用して生成される「乱数cのCMAC」であってもよい。
サーバ認証処理部34は、乱数sを発生し、当該乱数sをチャレンジにする。サーバ記憶部32はチャレンジ(乱数s)を格納する。
(ステップS203)サーバ通信部31は、レスポンスPSK1(乱数c)とチャレンジ(乱数s)とを、チャレンジ(乱数c)の送信元の自動車10のTCU14に送信する。
(ステップS204)TCU14のTCU認証処理部54は、TCU記憶部52のチャレンジ(乱数c)と、サーバ装置30から受信したレスポンスPSK1(乱数c)及びチャレンジ(乱数s)とをSIM80に送信する。
(ステップS205)SIM80のSIM認証処理部84は、CPU141(TCU認証処理部54)から受信したレスポンスPSK1(乱数c)の検証を行う。このレスポンス検証方法として、サーバ装置30のサーバ認証処理部34におけるレスポンス生成方法に対応する方法が、予め、SIM認証処理部84に設定される。レスポンスPSK1(乱数c)の検証において、SIM認証処理部84は、CPU141(TCU認証処理部54)から受信したチャレンジ(乱数c)と、SIM記憶部82の第1鍵PSK1と、を使用する。
例えば、レスポンスPSK1(乱数c)が第1鍵PSK1による乱数cの暗号化データである場合、SIM認証処理部84は、SIM記憶部82の第1鍵PSK1を使用してチャレンジ(乱数c)を暗号化し、該暗号化により生成した暗号化データとレスポンスPSK1(乱数c)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数c)の検証が不合格である。
なお、レスポンスPSK1(乱数c)が第1鍵PSK1による乱数cの暗号化データである場合の他の検証方法として、SIM認証処理部84は、SIM記憶部82の第1鍵PSK1を使用してレスポンスPSK1(乱数c)を復号し、該復号の結果とチャレンジ(乱数c)とを比較してもよい。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数c)の検証が不合格である。
例えば、レスポンスPSK1(乱数c)がCMAC(PSK1;乱数c)である場合、SIM認証処理部84は、SIM記憶部82の第1鍵PSK1を使用してチャレンジ(乱数c)のCMACを生成し、生成したCMACとレスポンスPSK1(乱数c)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数c)の検証が不合格である。
レスポンスPSK1(乱数c)の検証が合格である場合には、以降の処理を進める。一方、レスポンスPSK1(乱数c)の検証が不合格である場合には、図6の処理を終了する。レスポンスPSK1(乱数c)の検証が不合格である場合には、SIM認証処理部84は所定のエラー処理を実行してもよい。
SIM認証処理部84は、SIM記憶部82の第1鍵PSK1と、CPU141(TCU認証処理部54)から受信したチャレンジ(乱数s)とを使用して、レスポンスPSK1(乱数s)を生成する。このレスポンス生成方法は、予め、SIM認証処理部84に設定される。レスポンスPSK1(乱数s)は、本実施形態に係る一例として、第1鍵PSK1で乱数sを暗号化した暗号化データである。
なお、レスポンスPSK1(乱数s)は、本実施形態に係る一例として、CMAC(PSK1;乱数s)、つまり、第1鍵PSK1を使用して生成される「乱数sのCMAC」であってもよい。
(ステップS206)SIM通信部81は、レスポンスPSK1(乱数s)をCPU141に送信する。
(ステップS207)TCU通信部51は、SIM80から受信したレスポンスPSK1(乱数s)をサーバ装置30に送信する。
(ステップS208)サーバ装置30のサーバ認証処理部34は、自動車10のTCU14から受信したレスポンスPSK1(乱数s)の検証を行う。このレスポンス検証方法として、自動車10のTCU14のSIM80のSIM認証処理部84におけるレスポンス生成方法に対応する方法が、予め、サーバ認証処理部34に設定される。レスポンスPSK1(乱数s)の検証において、サーバ認証処理部34は、サーバ記憶部32のチャレンジ(乱数s)と、サーバ記憶部32の第1鍵PSK1と、を使用する。
例えば、レスポンスPSK1(乱数s)が第1鍵PSK1による乱数sの暗号化データである場合、サーバ認証処理部34は、サーバ記憶部32の第1鍵PSK1を使用してチャレンジ(乱数s)を暗号化し、該暗号化により生成した暗号化データとレスポンスPSK1(乱数s)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数s)の検証が不合格である。
なお、レスポンスPSK1(乱数s)が第1鍵PSK1による乱数sの暗号化データである場合の他の検証方法として、サーバ認証処理部34は、サーバ記憶部32の第1鍵PSK1を使用してレスポンスPSK1(乱数s)を復号し、該復号の結果とチャレンジ(乱数s)とを比較してもよい。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数s)の検証が不合格である。
例えば、レスポンスPSK1(乱数s)がCMAC(PSK1;乱数s)である場合、サーバ認証処理部34は、サーバ記憶部32の第1鍵PSK1を使用してチャレンジ(乱数s)のCMACを生成し、生成したCMACとレスポンスPSK1(乱数s)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSK1(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSK1(乱数s)の検証が不合格である。
レスポンスPSK1(乱数s)の検証が合格である場合には、以降の処理を進める。一方、レスポンスPSK1(乱数s)の検証が不合格である場合には、図6の処理を終了する。レスポンスPSK1(乱数s)の検証が不合格である場合には、サーバ認証処理部34は所定のエラー処理を実行してもよい。
(ステップS209)TCU14のTCU鍵処理部53は、第3鍵K_comを生成する。例えば、TCU鍵処理部53は、乱数を発生し、該乱数に基づいて第3鍵K_comを生成してもよい。TCU記憶部52は、第3鍵K_comを格納する。
(ステップS210)TCU鍵処理部53は、TCU記憶部52の第2鍵PSK2を使用して第3鍵K_comを暗号化し、暗号化第3鍵PSK2(K_com)を生成する。TCU通信部51は、暗号化第3鍵PSK2(K_com)をサーバ装置30に送信する。サーバ装置30のサーバ鍵処理部33は、自動車10のTCU14からステップS201で受信したICCIDに関連付けられている第2鍵PSK2を、サーバ記憶部32から取得する。サーバ鍵処理部33は、該取得した第2鍵PSK2を使用して、当該自動車10のTCU14から受信した暗号化第3鍵PSK2(K_com)を復号する。サーバ記憶部32は、該暗号化第3鍵PSK2(K_com)の復号結果の第3鍵K_comを、当該自動車10のTCU14から受信したICCIDに関連付けて格納する。これにより、サーバ装置30と自動車10のTCU14との間で第3鍵K_comが共有される。
(ステップS211)サーバ装置30のサーバ通信部31と自動車10のTCU14のTCU通信部51とは、第3鍵K_comを使用して暗号通信を行う。この暗号通信では、第3鍵K_comを使用してデータが暗号化された暗号化データVPN−K_com(データ)が、サーバ通信部31とTCU通信部51との間で送受される。これにより、サーバ通信部31とTCU通信部51との間で、第3鍵K_comを使用した暗号通信路が構築される。
なお、サーバ装置30のサーバ鍵処理部33が第3鍵K_comを生成し、サーバ装置30から自動車10へ、第3鍵K_comを第2鍵PSK2による暗号通信により送信してもよい。
上述した通信方法の例1によれば、サーバ装置30とSIM80との間で事前に共有された第1鍵PSK1による暗号通信により、第2鍵PSK2がサーバ装置30とTCU14との間で共有される。次いで、サーバ装置30とSIM80との間の第1鍵PSK1を使用した認証が合格した場合に、サーバ装置30と当該SIM80が搭載された自動車10のTCU14との間で第2鍵PSK2による暗号通信により第3鍵K_comが共有される。次いで、当該第3鍵K_comにより、サーバ装置30と自動車10のTCU14との間で暗号通信路が構築される。これにより、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築することができる。
また、従来の公開鍵暗号(非対称鍵暗号)により認証処理を行って暗号通信路を構築する方法に比して、通信方法の例1に係る第1鍵PSK1は共通鍵(Pre-shared Key:PSK)であるので認証処理の演算量が少ない。これにより、通信方法の例1によれば、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築する際の時間の短縮を図ることができる。
[通信方法の例2]
次に図7を参照して本実施形態に係る通信方法の例2を説明する。図7は、本実施形態に係る通信方法の例2を示すシーケンスチャートである。図7において図6の各ステップに対応する部分には同一の符号を付している。
図7において、上述の通信方法の例1と同様に、サーバ装置30のサーバ記憶部32と、SIM80のSIM記憶部82とは、予め同じ第1鍵PSK1を格納する。サーバ記憶部32は、SIM80との間で共有する第1鍵PSK1を、当該SIM80のICCIDに関連付けて格納する。TCU14のCPU141は、自TCU14の通信モジュール144のSIM80から当該SIM80のICCIDを受信して保持する。
本実施形態に係る通信方法の例2は、鍵共有段階S100と、暗号通信路構築段階S300とから構成される。通信方法の例2において、鍵共有段階S100は上述した通信方法の例1と同じであるので、その説明を省略する。
(暗号通信路構築段階)
図7を参照して暗号通信路構築段階S300を説明する。通信方法の例2では、「IETF RFC4279、“Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)”」に準拠したVPN(Virtual Private Network)回線の構築方法である「TLS−VPN」方法を適用する。
(ステップS301)TCU14のTCU認証処理部54は、TCU通信部51により、ClientHelloメッセージをサーバ装置30に送信する。ClientHelloメッセージは、TLSバージョン、鍵交換方式、暗号アルゴリズム及びMAC(Message Authentication Code)方式を示す情報と、乱数Cとを含むメッセージである。
(ステップS302)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、ServerHelloメッセージを自動車10のTCU14に送信する。ServerHelloメッセージは、TLSバージョン、鍵交換方式、暗号アルゴリズム及びMAC方式を示す情報と、乱数Sとを含むメッセージである。
(ステップS303)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、ServerDoneメッセージを自動車10のTCU14に送信する。
(ステップS304)TCU14のTCU認証処理部54は、TCU通信部51により、ClientKeyExchangeメッセージをサーバ装置30に送信する。ClientKeyExchangeメッセージは、PSK識別子(PSKID)を含むメッセージである。本実施形態の一例として、PSK識別子(PSKID)は当該TCU14のSIM80のICCIDである。
(ステップS305)TCU14のTCU認証処理部54は、TCU通信部51により、ChangeCipherSpecメッセージ及び検証値(VerifyValue)「PSK2(クライアント乱数)」をサーバ装置30に送信する。検証値「PSK2(クライアント乱数)」は、サーバ装置30と自動車10のTCU14との間で共有する第2鍵PSK2で乱数Cを暗号化した暗号データである。
サーバ装置30のサーバ認証処理部34は、自動車10のTCU14から受信した検証値「PSK2(クライアント乱数)」を、PSK識別子(PSKID)のICCIDに関連付けられているサーバ記憶部32の第2鍵PSK2と、当該自動車10のTCU14からステップS301で受信したClientHelloメッセージの乱数Cとを使用して検証する。検証値「PSK2(クライアント乱数)」の検証が合格である場合には、クライアント認証が合格である。検証値「PSK2(クライアント乱数)」の検証が不合格である場合には、クライアント認証が不合格である。クライアント認証が合格である場合には以降の処理を進める。一方、クライアント認証が不合格である場合には、図7の処理を終了する。クライアント認証が不合格である場合には、サーバ認証処理部34は所定のエラー処理を実行してもよい。
(ステップS306)TCU14のTCU認証処理部54は、TCU通信部51により、Finishedメッセージをサーバ装置30に送信する。
(ステップS307)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、ChangeCipherSpecメッセージ及び検証値「PSK2(サーバ乱数)」を自動車10のTCU14に送信する。検証値「PSK2(サーバ乱数)」は、自動車10とサーバ装置30との間で共有する第2鍵PSK2で乱数Sを暗号化した暗号データである。TCU14のTCU認証処理部54は、サーバ通信部31から受信した検証値「PSK2(サーバ乱数)」を、TCU記憶部52の第2鍵PSK2と、サーバ装置30からステップS302で受信したServerHelloメッセージの乱数Sとを使用して検証する。検証値「PSK2(サーバ乱数)」の検証が合格である場合には、サーバ認証が合格である。検証値「PSK2(サーバ乱数)」の検証が不合格である場合には、サーバ認証が不合格である。サーバ認証が合格である場合には以降の処理を進める。一方、サーバ認証が不合格である場合には、図7の処理を終了する。サーバ認証が不合格である場合には、TCU認証処理部54は所定のエラー処理を実行してもよい。
(ステップS308)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、Finishedメッセージを自動車10のTCU14に送信する。
(ステップS309)サーバ装置30のサーバ通信部31と自動車10のTCU14のTCU通信部51とは、第2鍵PSK2を使用して暗号通信を行う。この暗号通信では、サーバ通信部31とTCU通信部51との間で、第2鍵PSK2により暗号通信路PSK2−VPNが構築される。
上述した通信方法の例2によれば、サーバ装置30とSIM80との間で事前に共有された第1鍵PSK1による暗号通信により、第2鍵PSK2がサーバ装置30とTCU14との間で共有される。次いで、サーバ装置30と自動車10のTCU14との間で、「TLS−VPN」方法により暗号通信路PSK2−VPNが構築される。この「TLS−VPN」方法において、通信方法の例2によれば、第2鍵PSK2を使用して、クライアント認証(TCU14の認証)及びサーバ認証(サーバ装置30の認証)がそれぞれ行われる。これにより、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築することができる。
また、「TLS−VPN」方法で使用される第2鍵PSK2は、事前にサーバ装置30とTCU14との間で共有される。これにより、通信方法の例2によれば、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築する際の時間の短縮を図ることができる。
[通信方法の例3]
次に図8を参照して本実施形態に係る通信方法の例3を説明する。図8は、本実施形態に係る通信方法の例3を示すシーケンスチャートである。図8において図7の各ステップに対応する部分には同一の符号を付している。
図8において、サーバ装置30は、マスタ鍵Master_Secretを予めサーバ記憶部32に格納する。SIM80は、マスタ鍵Master_Secretを予めSIM記憶部82に格納する。サーバ装置30がサーバ記憶部32に格納するマスタ鍵Master_SecretとSIM80がSIM記憶部82に格納するマスタ鍵Master_Secretとは、同じである。マスタ鍵Master_Secretは、漏洩しないように安全に管理されることが好ましい。
SIM80は、ICCIDを格納する。ICCIDは、SIM80(セキュアエレメント)に対応するSIM対応識別子(セキュアエレメント対応識別子)の例である。TCU14のCPU141は、自TCU14の通信モジュール144のSIM80から当該SIM80のICCIDを受信して保持する。
本実施形態に係る通信方法の例3は、鍵共有段階S400と、暗号通信路構築段階S300aとから構成される。
(鍵共有段階)
図8を参照して鍵共有段階S400を説明する。
(ステップS401)TCU14において、TCU鍵処理部53は、SIM80に対して第4鍵PSKを要求する。
(ステップS402)SIM80において、SIM鍵処理部83は、該第4鍵PSKの要求に応じて、第4鍵PSKを生成する。SIM鍵処理部83は、SIM記憶部82のマスタ鍵Master_Secretと自SIM80のICCIDとを使用して第4鍵PSKを生成する。
本実施形態の一例として、第4鍵PSKは、次式(2)により生成される。
第4鍵PSK=ダイジェスト(Master_Secret、ICCID、乱数) ・・・(2)
但し、乱数は、第4鍵PSKの生成の度に、SIM鍵処理部83が生成する乱数である。
上記式(2)において、第4鍵PSKは、マスタ鍵Master_SecretとICCIDと乱数とを使用して生成されるダイジェストである。ダイジェストとして、例えば、ハッシュ関数により算出される値、又は、排他的論理和演算により算出される値などが挙げられる。例えば、第4鍵PSKは、マスタ鍵Master_SecretとICCIDと乱数とを入力値に使用して算出されるハッシュ関数値である。ダイジェストとして、CMACを使用してもよい。例えば、第4鍵PSKは、CMAC(Master_Secret;ICCID、乱数)である。但し、CMAC(A;B)において、鍵AはCMACの生成に使用される鍵であり、データBはCMACの生成対象のデータである。これにより、第4鍵PSKは、マスタ鍵Master_Secretを使用して生成される「ICCIDと乱数との連結データ、のCMAC」である。
上記式(2)により生成される第4鍵PSKは、SIM80毎に異なるICCIDが使用されて生成されるので、SIM80毎に異なる鍵になる。また、第4鍵PSKの生成の度に生成される乱数が使用されるので、本通信方法の例3が実行される度に異なる第4鍵PSKが生成される。
(ステップS403)SIM通信部81は、第4鍵PSKと当該第4鍵PSKの生成に使用された乱数とをCPU141に送信する。TCU記憶部52は、SIM80から受信した第4鍵PSKを格納する。
(ステップS404)TCU通信部51は、SIM80から受信した乱数と、当該SIM80のICCIDとをサーバ装置30に送信する。
(ステップS405)サーバ装置30のサーバ鍵処理部33は、サーバ記憶部32のマスタ鍵Master_Secretと、自動車10のTCU14から受信したICCIDとを使用して第4鍵PSKを生成する。本実施形態の一例として、第4鍵PSKは、上記式(2)により生成される。サーバ鍵処理部33は、当該自動車10のTCU14から受信した乱数を上記式(2)の乱数に使用する。サーバ記憶部32は、サーバ鍵処理部33が生成した第4鍵PSKを、当該自動車10のTCU14から受信したICCIDに関連付けて格納する。これにより、サーバ装置30と自動車10のTCU14との間で第4鍵PSKが共有される。
(暗号通信路構築段階)
図8を参照して暗号通信路構築段階S300aを説明する。通信方法の例3では、上述した通信方法の例2と同様に、「IETF RFC4279、“Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)”」に準拠したVPN回線の構築方法である「TLS−VPN」方法を適用する。図8に示す暗号通信路構築段階S300aにおいて、図7に示す暗号通信路構築段階S300の各ステップに対応する部分には同一の符号を付し、その説明を省略する。
ステップS301からステップS304までは、上述した通信方法の例2の暗号通信路構築段階S300と同じである。次いでステップS305aが実行される。
(ステップS305a)TCU14のTCU認証処理部54は、TCU通信部51により、ChangeCipherSpecメッセージ及び検証値(VerifyValue)「PSK(クライアント乱数)」をサーバ装置30に送信する。検証値「PSK(クライアント乱数)」は、サーバ装置30と自動車10のTCU14との間で共有する第4鍵PSKで乱数Cを暗号化した暗号データである。
サーバ装置30のサーバ認証処理部34は、自動車10のTCU14から受信した検証値「PSK(クライアント乱数)」を、PSK識別子(PSKID)のICCIDに関連付けられているサーバ記憶部32の第4鍵PSKと、当該自動車10のTCU14からステップS301で受信したClientHelloメッセージの乱数Cとを使用して検証する。検証値「PSK(クライアント乱数)」の検証が合格である場合には、クライアント認証が合格である。検証値「PSK(クライアント乱数)」の検証が不合格である場合には、クライアント認証が不合格である。クライアント認証が合格である場合には以降の処理を進める。一方、クライアント認証が不合格である場合には、図8の処理を終了する。クライアント認証が不合格である場合には、サーバ認証処理部34は所定のエラー処理を実行してもよい。
(ステップS306)TCU14のTCU認証処理部54は、TCU通信部51により、Finishedメッセージをサーバ装置30に送信する。
(ステップS307a)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、ChangeCipherSpecメッセージ及び検証値「PSK(サーバ乱数)」を自動車10のTCU14に送信する。検証値「PSK(サーバ乱数)」は、サーバ装置30と自動車10のTCU14との間で共有する第4鍵PSKで乱数Sを暗号化した暗号データである。
TCU14のTCU認証処理部54は、サーバ通信部31から受信した検証値「PSK(サーバ乱数)」を、TCU記憶部52の第4鍵PSKと、サーバ装置30からステップS302で受信したServerHelloメッセージの乱数Sとを使用して検証する。検証値「PSK(サーバ乱数)」の検証が合格である場合には、サーバ認証が合格である。検証値「PSK(サーバ乱数)」の検証が不合格である場合には、サーバ認証が不合格である。サーバ認証が合格である場合には以降の処理を進める。一方、サーバ認証が不合格である場合には、図8の処理を終了する。サーバ認証が不合格である場合には、TCU認証処理部54は所定のエラー処理を実行してもよい。
(ステップS308)サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、Finishedメッセージを自動車10のTCU14に送信する。
(ステップS309a)サーバ装置30のサーバ通信部31と自動車10のTCU14のTCU通信部51とは、第4鍵PSKを使用して暗号通信を行う。この暗号通信では、サーバ通信部31とTCU通信部51との間で、第4鍵PSKにより暗号通信路PSK−VPNが構築される。
上述した通信方法の例3によれば、サーバ装置30とSIM80との間で事前に共有されたマスタ鍵Master_Secretと、当該SIM80のICCIDとを使用して、第4鍵PSKがサーバ装置30とSIM80とのそれぞれで生成されることにより、第4鍵PSKがサーバ装置30とTCU14との間で共有される。次いで、サーバ装置30と自動車10のTCU14との間で、「TLS−VPN」方法により暗号通信路PSK−VPNが構築される。この「TLS−VPN」方法において、通信方法の例3によれば、第4鍵PSKを使用して、クライアント認証(TCU14の認証)及びサーバ認証(サーバ装置30の認証)がそれぞれ行われる。これにより、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築することができる。
また、「TLS−VPN」方法で使用される第4鍵PSKは、事前にサーバ装置30とTCU14との間で共有される。これにより、通信方法の例3によれば、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築する際の時間の短縮を図ることができる。
[通信方法の例4]
次に図9を参照して本実施形態に係る通信方法の例4を説明する。図9は、本実施形態に係る通信方法の例4を示すシーケンスチャートである。
図9において、サーバ装置30は、サーバ公開鍵証明書Kpと、サーバ秘密鍵Ksと、第5鍵PSKaとを予めサーバ記憶部32に格納する。サーバ公開鍵証明書Kpは、サーバ装置30に対して発行された公開鍵証明書である。サーバ公開鍵証明書Kpの公開鍵とサーバ秘密鍵Ksとは、ペアの公開鍵と秘密鍵として生成される。TCU14のCPU141は、サーバ公開鍵証明書Kpを予めTCU記憶部52に格納する。SIM80は、第5鍵PSKaを予めSIM記憶部82に格納する。サーバ装置30がサーバ記憶部32に格納する第5鍵PSKaとSIM80がSIM記憶部82に格納する第5鍵PSKaとは、同じである。第5鍵PSKaは、漏洩しないように安全に管理されることが好ましい。
SIM80は、ICCIDを格納する。サーバ装置30には、自動車10に搭載されるSIM80のICCIDが予め登録される。サーバ記憶部32は、サーバ装置30に登録されたICCIDを格納する。サーバ記憶部32は、SIM80との間で共有する第5鍵PSKaを、当該SIM80のICCIDに関連付けて格納する。
第5鍵PSKaは、例えば次式(3)により生成されてもよい。
第5鍵PSKa=ダイジェスト(Master_Secret、ICCID) ・・・(3)
但し、Master_Secretはマスタ鍵である。マスタ鍵Master_Secretは、漏洩しないように安全に管理されることが好ましい。ICCIDは、当該ICCIDを使用して生成される第5鍵PSKaが格納されるSIM80のICCIDである。
上記式(3)において、第5鍵PSKaは、マスタ鍵Master_SecretとICCIDとを使用して生成されるダイジェストである。ダイジェストとして、例えば、ハッシュ関数により算出される値、又は、排他的論理和演算により算出される値などが挙げられる。例えば、第5鍵PSKaは、マスタ鍵Master_SecretとICCIDとを入力値に使用して算出されるハッシュ関数値である。ダイジェストとして、CMACを使用してもよい。例えば、第5鍵PSKaは、CMAC(Master_Secret;ICCID)、つまり、マスタ鍵Master_Secretを使用して生成される「ICCIDのCMAC」である。
上記式(3)により生成される第5鍵PSKaは、SIM80毎に異なるICCIDが使用されて生成されるので、SIM80毎に異なる鍵になる。
又は、第5鍵PSKaは、乱数発生器により発生された乱数を使用して生成されてもよい。
本実施形態に係る通信方法の例4は、TLSセッション構築段階(鍵共有段階(ステップS501)及び暗号通信路構築段階(ステップS502))と、サーバ−SIM間認証段階(ステップS600)とから構成される。図9に示されるように、TLSセッション構築段階のうち鍵共有段階(ステップS501)に次いでサーバ−SIM間認証段階(ステップS600)が実行され、次いでTLSセッション構築段階のうち暗号通信路構築段階(ステップS502)が実行される。
(TLSセッション構築段階のうち鍵共有段階)
図9を参照してTLSセッション構築段階のうち鍵共有段階(ステップS501)を説明する。
TCU14において、TCU認証処理部54は、TCU通信部51により、チャレンジをサーバ装置30に送信する。TCU認証処理部54は、サーバ装置30に送信したチャレンジを保持しておく。サーバ装置30のサーバ認証処理部34は、自動車10のTCU14から受信したチャレンジを、サーバ記憶部32のサーバ秘密鍵Ksで暗号化する。このチャレンジの暗号化データはレスポンスである。サーバ装置30のサーバ認証処理部34は、サーバ通信部31により、レスポンスを自動車10のTCU14に送信する。TCU14のTCU認証処理部54は、サーバ通信部31から受信したレスポンスの検証を行う。このレスポンス検証では、TCU認証処理部54は、サーバ装置30に送信したチャレンジと、TCU記憶部52のサーバ公開鍵証明書Kpとを使用して、レスポンスの正当性を検証する。TCU認証処理部54は、サーバ公開鍵証明書Kpの公開鍵でレスポンスを復号し、この復号結果とチャレンジとを比較する。この比較の結果、両者が一致する場合にはレスポンスの検証が合格であり、両者が不一致の場合にはレスポンスの検証が不合格である。レスポンスの検証が合格である場合には、サーバ認証が合格である。一方、レスポンスの検証が不合格である場合には、サーバ認証が不合格であり、図9の処理を終了する。レスポンスの検証が不合格である場合には、TCU14は所定のエラー処理を実行してもよい。
サーバ認証が合格である場合には、サーバ装置30とTCU14とは、第6鍵K_comaを共有するための鍵共有処理を実行する。TCU14のTCU鍵処理部53は、第6鍵K_comaを生成する。例えば、TCU鍵処理部53は、乱数を発生し、該乱数に基づいて第6鍵K_comaを生成してもよい。TCU記憶部52は、第6鍵K_comaを格納する。TCU鍵処理部53は、TCU記憶部52のサーバ公開鍵証明書Kpの公開鍵を使用して第6鍵K_comaを暗号化し、暗号化第6鍵Kp(K_coma)を生成する。TCU通信部51は、暗号化第6鍵Kp(K_coma)をサーバ装置30に送信する。サーバ装置30のサーバ鍵処理部33は、サーバ記憶部32のサーバ秘密鍵Ksを使用して、自動車10のTCU14から受信した暗号化第6鍵Kp(K_coma)を復号する。サーバ記憶部32は、該暗号化第6鍵Kp(K_coma)の復号結果の第6鍵K_comaを、当該自動車10のTCU14のSIM80のICCIDに関連付けて格納する。これにより、サーバ装置30と自動車10のTCU14との間で第6鍵K_comaが共有される。
(サーバ−SIM間認証段階)
図9を参照してサーバ−SIM間認証段階(ステップS600)を説明する。
(ステップS601)TCU14において、TCU認証処理部54は、SIM80に対してサーバ−SIM間認証を要求する。
(ステップS602)SIM80のSIM認証処理部84は、SIM通信部81により、自SIM80のICCIDをサーバ装置30に送信する。サーバ装置30のサーバ認証処理部34は、自動車10のSIM80から受信したICCIDを保持する。
(ステップS603)サーバ装置30のサーバ認証処理部34は、乱数sを発生し、当該乱数sをチャレンジにする。サーバ記憶部32はチャレンジ(乱数s)を格納する。サーバ認証処理部34は、サーバ通信部31により、チャレンジ(乱数s)を、ICCIDの送信元の自動車10のSIM80に送信する。
(ステップS604)SIM80のSIM認証処理部84は、SIM記憶部82の第5鍵PSKaと、サーバ装置30から受信したチャレンジ(乱数s)とを使用して、レスポンスPSKa(乱数s)を生成する。このレスポンス生成方法は、予め、SIM認証処理部84に設定される。レスポンスPSKa(乱数s)は、本実施形態に係る一例として、第5鍵PSKaで乱数sを暗号化した暗号化データである。
なお、レスポンスPSKa(乱数s)は、本実施形態に係る一例として、CMAC(PSKa;乱数s)、つまり、第5鍵PSKaを使用して生成される「乱数sのCMAC」であってもよい。
SIM認証処理部84は、乱数cを発生し、当該乱数cをチャレンジにする。SIM記憶部82はチャレンジ(乱数c)を格納する。SIM認証処理部84は、SIM通信部81により、レスポンスPSKa(乱数s)とチャレンジ(乱数c)とをサーバ装置30に送信する。
サーバ装置30のサーバ認証処理部34は、自動車10のSIM80から受信したレスポンスPSKa(乱数s)の検証を行う。このレスポンス検証方法として、自動車10のSIM80のSIM認証処理部84におけるレスポンス生成方法に対応する方法が、予め、サーバ認証処理部34に設定される。レスポンスPSKa(乱数s)の検証において、サーバ認証処理部34は、レスポンスPSKa(乱数s)の送信元の自動車10のSIM80からステップS602で受信したICCIDに関連付けられている第5鍵PSKaを、サーバ記憶部32から取得する。サーバ認証処理部34は、該取得した第5鍵PSKaと、サーバ記憶部32のチャレンジ(乱数s)とを使用して、レスポンスPSKa(乱数s)の検証を行う。
例えば、レスポンスPSKa(乱数s)が第5鍵PSKaによる乱数sの暗号化データである場合、サーバ認証処理部34は、第5鍵PSKaを使用してチャレンジ(乱数s)を暗号化し、該暗号化により生成した暗号化データとレスポンスPSKa(乱数s)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数s)の検証が不合格である。
なお、レスポンスPSKa(乱数s)が第5鍵PSKaによる乱数sの暗号化データである場合の他の検証方法として、サーバ認証処理部34は、第5鍵PSKaを使用してレスポンスPSKa(乱数s)を復号し、該復号の結果とチャレンジ(乱数s)とを比較してもよい。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数s)の検証が不合格である。
例えば、レスポンスPSKa(乱数s)がCMAC(PSKa;乱数s)である場合、サーバ認証処理部34は、第5鍵PSKaを使用してチャレンジ(乱数s)のCMACを生成し、生成したCMACとレスポンスPSKa(乱数s)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数s)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数s)の検証が不合格である。
レスポンスPSKa(乱数s)の検証が合格である場合には、クライアント認証が合格であり、以降の処理を進める。一方、レスポンスPSKa(乱数s)の検証が不合格である場合には、クライアント認証が不合格であり、図9の処理を終了する。レスポンスPSKa(乱数s)の検証が不合格である場合には、サーバ認証処理部34は所定のエラー処理を実行してもよい。
(ステップS605)サーバ認証処理部34は、第5鍵PSKaと、自動車10のSIM80から受信したチャレンジ(乱数c)とを使用して、レスポンスPSKa(乱数c)を生成する。このレスポンス生成方法は、予め、サーバ認証処理部34に設定される。レスポンスPSKa(乱数c)は、本実施形態に係る一例として、第5鍵PSKaで乱数cを暗号化した暗号化データである。
なお、レスポンスPSKa(乱数c)は、本実施形態に係る一例として、CMAC(PSKa;乱数c)、つまり、第5鍵PSKaを使用して生成される「乱数cのCMAC」であってもよい。
サーバ認証処理部34は、サーバ通信部31により、レスポンスPSKa(乱数c)を、チャレンジ(乱数c)の送信元の自動車10のSIM80に送信する。
SIM80のSIM認証処理部84は、サーバ装置30から受信したレスポンスPSKa(乱数c)の検証を行う。このレスポンス検証方法として、サーバ装置30のサーバ認証処理部34におけるレスポンス生成方法に対応する方法が、予め、SIM認証処理部84に設定される。レスポンスPSKa(乱数c)の検証において、SIM認証処理部84は、サーバ装置30に送信したチャレンジ(乱数c)と、SIM記憶部82の第5鍵PSKaと、を使用する。
例えば、レスポンスPSKa(乱数c)が第5鍵PSKaによる乱数cの暗号化データである場合、SIM認証処理部84は、第5鍵PSKaを使用してチャレンジ(乱数c)を暗号化し、該暗号化により生成した暗号化データとレスポンスPSKa(乱数c)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数c)の検証が不合格である。
なお、レスポンスPSKa(乱数c)が第5鍵PSKaによる乱数cの暗号化データである場合の他の検証方法として、SIM認証処理部84は、第5鍵PSKaを使用してレスポンスPSKa(乱数c)を復号し、該復号の結果とチャレンジ(乱数c)とを比較してもよい。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数c)の検証が不合格である。
例えば、レスポンスPSKa(乱数c)がCMAC(PSKa;乱数c)である場合、SIM認証処理部84は、第5鍵PSKaを使用してチャレンジ(乱数c)のCMACを生成し、生成したCMACとレスポンスPSKa(乱数c)とを比較する。この比較の結果、両者が一致する場合にはレスポンスPSKa(乱数c)の検証が合格であり、両者が不一致の場合にはレスポンスPSKa(乱数c)の検証が不合格である。
レスポンスPSKa(乱数c)の検証が合格である場合には、サーバ認証が合格であり、以降の処理を進める。一方、レスポンスPSKa(乱数c)の検証が不合格である場合には、サーバ認証が不合格であり、図9の処理を終了する。レスポンスPSKa(乱数c)の検証が不合格である場合には、SIM認証処理部84は所定のエラー処理を実行してもよい。
(ステップS606)SIM認証処理部84は、SIM通信部81により、サーバ−SIM間認証の合格(OK)をTCU認証処理部54に応答する。
(TLSセッション構築段階のうち暗号通信路構築段階)
図9を参照してTLSセッション構築段階のうち暗号通信路構築段階(ステップS502)を説明する。
サーバ装置30のサーバ通信部31と自動車10のTCU14のTCU通信部51とは、サーバ−SIM間認証段階(ステップS600)によるサーバ−SIM間認証の合格(OK)により、第6鍵K_comaを使用した暗号通信を開始する。この暗号通信では、第6鍵K_comaを使用してデータが暗号化された暗号化データTLS−K_coma(データ)が、サーバ通信部31とTCU通信部51との間で送受される。これにより、サーバ通信部31とTCU通信部51との間で、第6鍵K_comaを使用した暗号通信路が構築される。
上述した通信方法の例4によれば、まず、サーバ装置30と自動車10のTCU14との間で公開鍵暗号によるサーバ認証処理を行い、サーバ認証処理が合格した場合にサーバ装置30と自動車10のTCU14との間で第6鍵K_comaが共有される。次いで、サーバ装置30とSIM80との間で、事前に共有された第5鍵PSKaによるサーバ−SIM間認証処理が行われる。次いで、そのサーバ−SIM間認証処理が合格した場合に、第6鍵K_comaにより、サーバ装置30と自動車10のTCU14との間で暗号通信路が構築される。これにより、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築することができる。
また、通信方法の例4によれば、公開鍵暗号によるサーバ認証処理及び第6鍵K_comaの共有処理を予め済ましておき、サーバ装置30と自動車10のTCU14との間の暗号通信路の構築時には、共通鍵である第5鍵PSKaによるサーバ−SIM間認証処理を行うことによって、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築する際の時間の短縮を図ることができる。
なお、上述の通信方法の例4において、ステップS604及びS605における、チャレンジ(乱数c)及びレスポンスPSKa(乱数c)を使用したサーバ認証処理はなくてもよい。これは、TLSセッション構築段階のうち鍵共有段階(ステップS501)において、既にサーバ認証処理が実行されているからである。
上述したように本実施形態によれば、自動車10と車外のサーバ装置30との間の暗号通信路を安全に構築する際の時間の短縮を図ることができるという効果が得られる。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
上述した実施形態において、TCU14のCPU141の代わりに、TCU14の通信モジュール144のCPUが、コンピュータプログラムを実行することにより図4の各部の機能を実現し、上記した各通信方法におけるCPU141が実行する各ステップを実行してもよい。
上述した実施形態では、セキュアエレメントの一例としてSIMを適用したが、セキュアエレメントはSIMに限定されない。セキュアエレメントは、例えば、耐タンパー性を有する半導体製品であってもよい。例えば、SIM、eSIM、HSM(Hardware Security Module)、SHE(Secure Hardware Extension)又はIC(Integrated Circuit)チップをセキュアエレメントに適用してもよい。また、セキュアエレメントは、自動車10に搭載されるTCU14以外の装置(車載装置)に備わるものであってもよい。セキュアエレメントは、例えば、IVI機器15又はゲートウェイ装置16に備わるものであってもよい。
セキュアエレメント対応識別子は、セキュアエレメントに対応する識別子であればよい。セキュアエレメントに固有の識別子を、セキュアエレメント対応識別子に適用してもよい。セキュアエレメント対応識別子は、セキュアエレメントに格納される情報であってもよく、又は、セキュアエレメントに関連付けられた情報であってもよい。セキュアエレメント対応識別子として、例えば、ICCID、IMSI(International Mobile Subscriber Identity)、IMEI(International Mobile Equipment Identity)、電話番号、又は、車両識別番号(Vehicle Identification Number:VIN)などを利用してもよい。例えば、セキュアエレメント対応識別子は、SIM等のセキュアエレメントに格納されるICCID又はIMSIであってもよい。例えば、セキュアエレメント対応識別子は、SIM等のセキュアエレメントが搭載される通信装置のIMEIであってもよい。例えば、セキュアエレメント対応識別子は、SIM等のセキュアエレメントに格納される電話番号であってもよい。例えば、セキュアエレメント対応識別子は、SIM等のセキュアエレメントが搭載される車両の車両識別番号であってもよい。SIM等のセキュアエレメントが搭載される車両の車両識別番号は、当該セキュアエレメントに関連付けられた情報である。
上述した実施形態では、車両として自動車を例に挙げたが、原動機付自転車や鉄道車両等の自動車以外の他の車両にも適用可能である。
また、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。