【解決手段】第1の通信装置は、第1の記憶部と、装置が備える第2の記憶部に格納された公開鍵証明書を取得する第1の取得部と、該装置のユーザの認証が成功した場合に、第1の記憶部に、該ユーザのアカウント情報と、公開鍵証明書の識別情報と、該公開鍵証明書によって所定の動作を行わせる第2の通信装置の識別情報とを関連付けて登録する登録部と、第1の記憶部に記憶した公開鍵証明書の識別情報のリストを作成するリスト作成部とを備え、第2の通信装置は、装置が備える第2の記憶部に格納された公開鍵証明書を取得する第2の取得部と、該装置のユーザの認証が成功し、且つ第2の取得部が取得した公開鍵証明書がリストに含まれている場合に、所定の動作を行う制御部とを備える。
【発明を実施するための形態】
【0008】
次に、本発明を実施するための形態を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【0009】
<実施形態>
図1は、実施形態に係る通信システム1を示す構成図である。
図1において、通信システム1は、装置2と、制御装置3と、管理装置4とを備える。
装置2は、SIM(Subscriber Identity Module)100等のセキュアエレメント(Secure Element)と、通信部130と、制御部140とを備える。装置2の一例は、携帯電話、スマートフォン、タブレット端末等の端末装置、ICカード等である。
SIM100はSIM識別情報simid1を格納する。SIM識別情報simid1は、SIM100に固有の識別情報である。
SIM100は、鍵生成部101と、公開鍵証明書生成部102と、暗号処理部104と、記憶部105と、秘密鍵記憶部106とを備える。
【0010】
制御装置3は、SIM200等のセキュアエレメントと、通信部230と、制御部240とを備える。
SIM200はSIM識別情報simid2を格納する。SIM識別情報simid2は、SIM200に固有の識別情報である。SIM200は、認証処理部202と、検証部203と、暗号処理部204と、記憶部205とを備える。なお、単一の制御装置ではなく、複数の制御装置であってもよく、複数の制御装置のそれぞれが異なるSIM識別情報を有してもよい。
【0011】
SIM100は、通信事業者が認証したユーザに対して発行されたSIMである。該ユーザは通信事業者のネットワークを利用するユーザである。SIM100のSIM識別情報simid1は、通信事業者が認証したユーザのユーザ識別情報に関連付けて通信事業者データベース10に格納されている。ここで、通信事業者のネットワークを利用するユーザ、換言すれば通信事業者がSIMを発行したユーザと、SIMが組み込まれた装置のユーザは同じであってもよいし、異なっていてもよい。また、通信事業者が認証したユーザのユーザ識別情報には、ユーザの電話番号を使用してもよい。SIM200も、SIM100と同様に、通信事業者が認証したユーザに対して発行されたSIMである。SIM200のSIM識別情報simid2は、通信事業者が認証したユーザのユーザ識別情報に関連付けて通信事業者データベース10に格納されている。なお、SIM100、SIM200は、仮想通信事業者(Virtual Network Operator)が認証したユーザに対して発行されたSIMであってもよい。
【0012】
SIM識別情報として、例えば、IMSI(International Mobile Subscriber Identity)又はICCID(Integrated Circuit Card ID)を使用してもよい。また、SIM100や、SIM200に関連付けられたユーザ識別情報を該SIM100のSIM識別情報や、該SIM200のSIM識別情報に使用してもよい。
【0013】
管理装置4は、記憶部300と、通信部325と、認証処理部302と、登録部304と、リスト作成部306と、制御部345とを備える。記憶部300は、鍵管理テーブル305を記憶する。
【0014】
装置2の通信部130と、管理装置4の通信部325及び制御装置3の通信部230とは、通信を行う。装置2の通信部130と、管理装置4の通信部325間の通信及び制御装置3の通信部230間の通信は、無線通信であってもよく、又は、有線通信であってもよい。例えば、装置2の通信部130と、管理装置4の通信部325及び制御装置3の通信部230とは、無線LANや携帯電話ネットワーク等の無線通信ネットワークを介して通信を行ってもよい。
【0015】
又は、装置2の通信部130と、管理装置4の通信部325及び制御装置3の通信部230とは、ブルートゥース(登録商標)等の近距離無線通信技術により直接に信号を送受信して通信を行ってもよい。又は、装置2の通信部130と、管理装置4の通信部325及び制御装置3の通信部230とは、インターネットや固定電話ネットワーク、有線LAN等の通信ネットワークを介して通信を行ってもよい。又は、装置2の通信部130と、管理装置4の通信部325及び制御装置3の通信部230とは、通信ケーブルにより接続されて通信を行ってもよい。
【0016】
装置2の制御部140、制御装置3の制御部240、及び管理装置4の制御部345は、それぞれ、CPU(Central Processing Unit)及びメモリを備えており、その機能部として、アプリケーション150、アプリケーション250、及びアプリケーション350を備える。
【0017】
SIM100、及びSIM200は、コンピュータの一種であり、コンピュータプログラムによって所望の機能を実現する。
SIM100において、記憶部105は、認証局公開鍵証明書C_Krpと認証局秘密鍵Krsのペアを記憶する。認証局公開鍵証明書C_Krpは、認証局秘密鍵Krsのペアの認証局公開鍵Krp(不図示)の公開鍵証明書である。認証局公開鍵証明書C_Krpと認証局秘密鍵Krsとは、例えばSIM100の製造時などに、安全にSIM100に格納される。
さらに、記憶部105は、クライアント公開鍵証明書C_Kkpとクライアント秘密鍵Kksのペアを記憶する。クライアント公開鍵証明書C_Kkpは、クライアント秘密鍵Kksのペアのクライアント公開鍵Kkp(不図示)の公開鍵証明書である。クライアント公開鍵証明書C_Kkpとクライアント秘密鍵Kksとは、例えばSIM100の製造時などに、安全にSIM100に格納される。
【0018】
記憶部105は、SIM100内の記憶領域のうち、SIM100の外部からアクセスできない不揮発性記憶領域に設けられる。よって、記憶部105に格納された認証局公開鍵証明書C_Krp、認証局秘密鍵Krs、クライアント公開鍵証明書C_Kkp、及びクライアント秘密鍵Kksは、SIM100の外部からはアクセスされない。また、SIM100は、耐タンパー性を有する。よって、記憶部105に格納された認証局公開鍵証明書C_Krp、認証局秘密鍵Krs、クライアント公開鍵証明書C_Kkp、及びクライアント秘密鍵Kksは、SIM100に対する攻撃から保護される。
記憶部205は、SIM200内の記憶領域のうち、SIM200の外部からアクセスできない不揮発性記憶領域に設けられる。
【0019】
鍵生成部101は、公開鍵と秘密鍵のペアを生成する。公開鍵証明書生成部102は、記憶部105に記憶されている認証局公開鍵証明書C_Krpと認証局秘密鍵Krsのペアを使用して、公開鍵証明書を生成する。秘密鍵記憶部106は、公開鍵証明書生成部102が生成した公開鍵証明書とペアの秘密鍵を記憶する。秘密鍵記憶部106は、記憶部105と同様に、SIM100内の記憶領域のうち、SIM100の外部からアクセスできない不揮発性記憶領域に設けられる。よって、秘密鍵記憶部106に格納された秘密鍵は、SIM100の外部からはアクセスされない。また、SIM100が耐タンパー性を有するので、秘密鍵記憶部106に格納された秘密鍵は、SIM100に対する攻撃から保護される。
【0020】
認証処理部202は、装置2によって送信されるクライアント公開鍵証明書に基づいて、クライアント認証を行う。
検証部203は、通信部230が装置2から受信した公開鍵証明書を検証する。
暗号処理部204は、装置2のクライアント公開鍵証明書のクライアント公開鍵Kkpとペアのクライアント秘密鍵Kksを使用して、公開鍵暗号方式の暗号処理を実行する。
【0021】
管理装置4において、認証処理部302は、装置2によって送信されるクライアント公開鍵証明書C_Kkpに基づいて、クライアント認証を行う。登録部304は、認証処理部302によるクライアント認証が成功した場合、記憶部300に、該クライアント公開鍵証明書を送信した装置2のユーザのアカウント情報と、公開鍵証明書のシリアル番号等の公開鍵証明書の識別情報と、制御装置のID等の該公開鍵証明書によって所定の動作を行わせる制御装置の識別情報(制御装置ID)と、該公開鍵証明書によって制御装置に所定の動作を行わせる有効期限等の権限とを関連付けて、記憶部300の鍵管理テーブル305に登録する。リスト作成部306は、記憶部300に記憶した鍵管理テーブル305に含まれる公開鍵証明書のリストを作成する。記憶部300は、鍵管理テーブル305を格納する。
【0022】
図2は、鍵管理テーブルの一例を示す。鍵管理テーブル305は、装置のユーザのアカウント情報と、公開鍵証明書のシリアル番号と、制御装置IDと、有効期限とを関連付けたものである。管理装置4は、制御装置IDを予め記憶しておいてもよいし、通信部325を経由して、制御装置3から取得してもよい。
図2に示される例では、アカウント情報「aaaa」と、公開鍵証明書のシリアル番号「12345」と、制御装置ID「01aa」及び「02aa」と、有効期限「2016.7.1」とが関連付けて記憶される。
【0023】
次に
図3を参照して、
図1に示す通信システム1の動作を説明する。
図3は、本実施形態に係る通信システムの通信方法の説明図である。
図3には、装置2から管理装置4へ、装置2で発行した公開鍵証明書を登録する処理が示される。
【0024】
[公開鍵証明書の登録手順]
(ステップS301)装置2において、公開鍵/秘密鍵発行アプリケーションは、SIM100に対して、公開鍵と秘密鍵のペアの生成を指示する。SIM100の鍵生成部101は、該指示に応じて、公開鍵K1p(不図示)と秘密鍵K1s(不図示)を生成する。この公開鍵K1pと秘密鍵K1sの生成は、SIM100内のセキュアRAM(Secure RAM)において行われる。SIM100内のセキュアRAMは、SIM100の外部からアクセスできない揮発性記憶領域である。よって、SIM100内のセキュアRAMにおいて行われる処理は、SIM100の外部から秘匿される。SIM100において、秘密鍵記憶部106は、鍵生成部101が生成した秘密鍵K1sを格納する。秘密鍵K1sは、SIM100内のセキュアROMに格納される。
【0025】
(ステップS302)SIM100において、認証局アプリケーションは、SIM100に対して、公開鍵証明書C_K1p(不図示)の生成を指示する。公開鍵証明書生成部102は、鍵生成部101が生成した公開鍵K1pの公開鍵証明書C_K1pを生成する。この公開鍵証明書C_K1pの生成は、SIM100内のセキュアRAMにおいて行われる。公開鍵証明書C_K1pは、公開鍵K1pと、SIM識別情報simid1と、公開鍵K1pの電子署名とを含む。公開鍵K1pの電子署名は、公開鍵K1pとSIM識別情報simid1とを含むデータのダイジェストを認証局秘密鍵Krsで暗号化した結果の暗号化データである。ここでは、ダイジェストの例としてハッシュ(hash)値を使用する。
また、公開鍵証明書フォーマットの例として、ITU−T(International Telecommunication Union−Telecommunication)等で規定されている「X.509」規格の公開鍵証明書フォーマットを使用する。「X.509」規格の公開鍵証明書フォーマット中の所定位置に公開鍵K1pを格納する。また、「X.509」規格の公開鍵証明書フォーマット中の「サブジェクトパラメータ:主体者の名前」の位置にSIM識別情報simid1を格納する。
【0026】
SIM100における公開鍵証明書C_K1pの生成方法を具体的に説明する。SIM100において、公開鍵証明書生成部102は、公開鍵K1pとSIM識別情報simid1とを格納した「X.509」規格の公開鍵証明書フォーマットのデータのハッシュ値hash(K1p,simid1)を算出する。
次いで、公開鍵証明書生成部102は、ハッシュ値hash(K1p,simid1)を、SIM100の記憶部105に記憶されている認証局秘密鍵Krsで暗号化する。この暗号化データKrs(hash(K1p,simid1))は、公開鍵K1pの電子署名である。
次いで、公開鍵証明書生成部102は、公開鍵K1pと、SIM識別情報simid1と、公開鍵K1pの電子署名Krs(hash(K1p,simid1))とを含む「X.509」規格の公開鍵証明書フォーマットの公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を構成する。
SIM100は、公開鍵証明書生成部102が生成した公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を、クライアント認証アプリケーションへ渡す。
【0027】
(ステップS303)装置2において、クライアント認証アプリケーションは、SIM100から受け取ったクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を通信部130へ出力する。通信部130は、該クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、該公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」とを含む登録要求を管理装置4へ送信する。
【0028】
管理装置4において、通信部325は、装置2から登録要求を受信する。通信部325は、登録要求に含まれるクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を鍵管理アプリケーションへ渡す。
【0029】
(ステップS304)管理装置4において、鍵管理アプリケーションは、装置2から受信した登録要求に含まれるクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」を用いてクライアント認証を行うように指示する。認証処理部302は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」に基づいて、クライアント認証を行う。
【0030】
認証処理部302におけるクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証(検証)方法を具体的に説明する。認証処理部302は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」からクライアント公開鍵KkpとSIM識別情報simid1とを取得し、取得したクライアント公開鍵KkpとSIM識別情報simid1とを「X.509」規格の公開鍵証明書フォーマットに格納した検証データを生成する。該検証データにおいて、クライアント公開鍵Kkpは、「X.509」規格の公開鍵証明書フォーマット中の所定位置に格納される。該検証データにおいて、SIM識別情報simid1は、「X.509」規格の公開鍵証明書フォーマット中の「サブジェクトパラメータ:主体者の名前」の位置に格納される。
【0031】
次いで、認証処理部302は、該検証データのハッシュ値である検証ハッシュ値hash’(Kkp,simid1)を算出する。次いで、認証処理部302は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」から電子署名Krs(hash(Kkp,simid1))を取得し、取得した電子署名Krs(hash(Kkp,simid1))を、認証局公開鍵証明書C_Krpの認証局公開鍵Krpで復号する。この復号により、復号データ「Krp・Krs(hash(Kkp,simid1))」が得られる。
【0032】
次いで、認証処理部302は、検証ハッシュ値hash’(Kkp,simid1)と復号データ「Krp・Krs(hash(Kkp,simid1))」とが一致するかを判定する。この判定の結果、一致する場合にはクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証が成功であり、一致しない場合にはクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証が失敗である。
管理装置4において、認証処理部302は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証の結果を鍵管理アプリケーションへ通知する。
【0033】
(ステップS305)管理装置4において、鍵管理アプリケーションに、認証処理部302からクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証の結果が成功であることが通知されると、登録部304は、装置2のユーザのアカウント情報と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」のシリアル番号と、制御装置IDと、有効期限を紐付けて保管する。この公開鍵証明書C_K1pの保管では、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の「サブジェクトパラメータ:主体者の名前」の位置に格納されているSIM識別情報simid1を取得し、取得したSIM識別情報simid1に関連付けて該公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を、管理装置4の記憶部300内の鍵管理テーブル305に格納するようにしてもよい。
【0034】
一方、鍵管理アプリケーションは、認証処理部302から通知されたクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の検証の結果が不合格である場合には、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」を破棄する。また、所定のエラー処理を実行してもよい。
【0035】
(ステップS306)管理装置4において、鍵管理アプリケーションは、登録部304によって、装置2のユーザのアカウント情報と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」のシリアル番号と、制御装置IDと、有効期限とが紐付けて保管されると、有効な公開鍵証明書のリストを作成するように指示する。リスト作成部306は、記憶部300内の鍵管理テーブル305に格納された公開鍵証明書のシリアル番号のうち、有効期限が経過していない公開鍵証明書のシリアル番号と、該公開鍵証明書のシリアル番号に関連付けられた有効期限とを含む有効な公開鍵証明書のリストを作成する。
管理装置4において、鍵管理アプリケーションは、リスト作成部306によって作成された有効な公開鍵証明書のリストを制御装置3へ送信するように指示する。制御部345は、リスト作成部306に、作成した有効な公開鍵証明書のリストを、通信部325へ出力させる。
(ステップS307)管理装置4において、鍵管理アプリケーションは、リスト作成部306が有効な公開鍵証明書のリストを通信部325へ出力すると、通信部325は、有効な公開鍵証明書のリストをOTA(Over The Air)(例えば、通信事業者の無線ネットワーク)で制御装置3へ送信する。通信事業者の無線ネットワークを使用することによって、公衆無線LAN等のオープンなネットワークと比較して、安全に送信できる。
【0036】
(ステップS308)制御装置3において、通信部230は、管理装置4から有効な公開鍵証明書のリストを受信する。通信部230は、管理装置4から受信した有効な公開鍵証明書のリストを公開鍵証明書管理アプリケーションへ渡す。
制御装置3において、公開鍵証明書管理アプリケーションは、管理装置4から受信した有効な公開鍵証明書のリストを記憶するように指示する。制御部240は、有効な公開鍵証明書のリストを記憶部205へ格納する。制御部240は、有効な公開鍵証明書のリストにステータス情報として制御装置3が装置2のクライアント認証を未だ行っていないことを示す(つまり、装置2のユーザが制御装置3を初めて利用することを示す)初回利用であることを示す情報を関連付けて記憶する。
【0037】
[公開鍵証明書を用いた制御手順]
次に、公開鍵証明書を用いた制御手順について説明する。
【0038】
(ステップS401)装置2において、施錠解錠要求アプリケーションは、SIM100からクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」とを受け取る。施錠解錠要求アプリケーションは、SIM100から受け取ったクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」とを含む施錠又は解錠要求を通信部130へ出力する。通信部130は、該施錠又は解錠要求を制御装置3へ送信する。
制御装置3において、通信部230は、装置2から施錠又は解錠要求を受信する。通信部230は、該施錠又は解錠要求を施錠解錠アプリケーションへ渡す。
【0039】
(ステップS402)制御装置3において、施錠解錠アプリケーションは、装置2から受信した施錠又は解錠要求に含まれる公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証を指示する。検証部203は、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証を行う。検証部203は、記憶部205に記憶した有効な公開鍵証明書のリストに公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」が含まれるか否かを判断する。検証部203は、有効な公開鍵証明書のリストに公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」が含まれる場合に、認証局公開鍵証明書C_Krpを使用して、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の正当性を検証する。この公開鍵証明書C_K1pの検証は、検証部203において行われる。有効な公開鍵証明書のリストに公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」が含まれない場合には、検証が不合格である。また、検証において、有効な公開鍵証明書のリストに含まれる権限(有効期限)が、有効でなければ、検証が不合格である。
【0040】
検証部203における公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証方法を具体的に説明する。検証部203は、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」から公開鍵K1pとSIM識別情報simid1とを取得し、取得した公開鍵K1pとSIM識別情報simid1とを「X.509」規格の公開鍵証明書フォーマットに格納した検証データを生成する。該検証データにおいて、公開鍵K1pは、「X.509」規格の公開鍵証明書フォーマット中の所定位置に格納される。該検証データにおいて、SIM識別情報simid1は、「X.509」規格の公開鍵証明書フォーマット中の「サブジェクトパラメータ:主体者の名前」の位置に格納される。
【0041】
次いで、検証部203は、該検証データのハッシュ値である検証ハッシュ値hash’(K1p,simid1)を算出する。次いで、検証部203は、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」から電子署名Krs(hash(K1p,simid1))を取得し、取得した電子署名Krs(hash(K1p,simid1))を、認証局公開鍵証明書C_Krpの認証局公開鍵Krpで復号する。この復号により、復号データ「Krp・Krs(hash(K1p,simid1))」が得られる。
【0042】
次いで、検証部203は、検証ハッシュ値hash’(K1p,simid1)と復号データ「Krp・Krs(hash(K1p,simid1))」とが一致するかを判定する。この判定の結果、一致する場合には公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証が合格であり、一致しない場合には公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証が不合格である。
制御装置3において、検証部203は、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証の結果を施錠解錠アプリケーションへ通知する。
【0043】
(ステップS403)制御装置3において、施錠解錠アプリケーションに、検証部203から公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」の検証の結果が合格であることが通知されると、制御部240は、該公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」に関連付けられているステータス情報を確認する。ステータス情報が合意済を示す情報の場合は、装置2と制御装置3との間でのクライアント認証を省略してもよい。また、後段のチャレンジ生成、レスポンス検証も省略してもよい。
【0044】
(ステップS404)制御装置3において、施錠解錠アプリケーションに、制御部240からステータス情報として初回利用であることを示す情報が記憶されていることが通知されると、認証処理部202は、施錠又は解錠要求に含まれるクライアント公開鍵証明書に基づいて、クライアント認証を行う。
【0045】
認証処理部202におけるクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証(検証)方法を具体的に説明する。認証処理部202は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」からクライアント公開鍵KkpとSIM識別情報simid1とを取得し、取得したクライアント公開鍵KkpとSIM識別情報simid1とを「X.509」規格の公開鍵証明書フォーマットに格納した検証データを生成する。該検証データにおいて、クライアント公開鍵Kkpは、「X.509」規格の公開鍵証明書フォーマット中の所定位置に格納される。該検証データにおいて、SIM識別情報simid1は、「X.509」規格の公開鍵証明書フォーマット中の「サブジェクトパラメータ:主体者の名前」の位置に格納される。
【0046】
次いで、認証処理部202は、該検証データのハッシュ値である検証ハッシュ値hash’(Kkp,simid1)を算出する。次いで、認証処理部202は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」から電子署名Krs(hash(Kkp,simid1))を取得し、取得した電子署名Krs(hash(Kkp,simid1))を、認証局公開鍵証明書C_Krpの認証局公開鍵Krpで復号する。この復号により、復号データ「Krp・Krs(hash(Kkp,simid1))」が得られる。
【0047】
次いで、認証処理部202は、検証ハッシュ値hash’(Kkp,simid1)と復号データ「Krp・Krs(hash(Kkp,simid1))」とが一致するかを判定する。この判定の結果、一致する場合にはクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証が成功であり、一致しない場合にはクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証が失敗である。
制御装置3において、認証処理部202は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証の結果を施錠解錠アプリケーションへ通知する。
そして、認証処理部202は、記憶部205に記憶されている有効な公開鍵証明書のリストに関連付けられて記憶されているステータス情報を、合意済を表す情報に書き換える。これによって、装置2と制御装置3との間でクライアント認証が行われ、制御装置3に電子鍵(クライアント公開鍵Kkp)が設定されたことが示される。
【0048】
(ステップS405)制御装置3において、施錠解錠アプリケーションは、チャレンジ値(乱数)を生成するように指示する。暗号処理部204は、チャレンジ値(乱数)を生成し、通信部230へ出力する。
【0049】
(ステップS406)制御装置3において、施錠解錠アプリケーションは、チャレンジ値を装置2へ送信するように指示する。通信部230は、装置2へ、暗号処理部204が生成したチャレンジ値を送信する。
(ステップS407)装置2において、施錠解錠要求アプリケーションは、制御装置3の施錠解錠アプリケーションから受信したチャレンジ値に基づいて、レスポンス値を作成するように指示する。暗号処理部104は、チャレンジ値を、装置2のクライアント公開鍵証明書C_Kkpのクライアント公開鍵Kkpとペアのクライアント秘密鍵Kksで暗号化することによってレスポンス値Kks(乱数)を作成する。暗号処理部104は、レスポンス値Kks(乱数)を通信部130へ出力する。
(ステップS408)装置2において、施錠解錠要求アプリケーションは、レスポンス値を制御装置3へ送信するように指示する。通信部130は、制御装置3へ、レスポンス値Kks(乱数)を送信する。
【0050】
(ステップS409)制御装置3において、施錠解錠アプリケーションは、装置2の施錠解錠アプリケーションから受信したレスポンス値Kks(乱数)の正当性を、装置2のクライアント公開鍵証明書C_Kkpのクライアント公開鍵Kkpを使用して検証する。例えば、検証部203は、レスポンス値Kks(乱数)をクライアント公開鍵Kkpで復号した結果がチャレンジ値と一致する場合には検証を合格とし、一方、チャレンジ値と一致しない場合には検証を不合格とする。
(ステップS410)制御装置3において、制御部240は、レスポンス値Kks(乱数)の検証の結果が合格である場合には所定の制御を実行する。例えば、制御部240は、装置2によって要求された施錠又は解錠を実行する。一方、制御部240は、レスポンス値Kks(乱数)の検証が不合格である場合には所定の制御を実行しない。制御部240は、レスポンス値Kks(乱数)の検証が不合格である場合には所定のエラー処理を実行してもよい。
なお、装置2は、制御装置3から受信したチャレンジ値をクライアント秘密鍵Kksで暗号化してレスポンス値Kks(乱数)として制御装置3へ送信し、制御装置3は、レスポンス値をクライアント公開鍵Kkpで復号し、チャレンジ値と比較することでレスポンス値の正当性を検証したが、装置2、制御装置3との間で事前に共通鍵を生成、共有しておき、該共通鍵を用いて、チャレンジ値の暗号化及び復号を行うことで、レスポンス値の正当性を検証してもよい。
【0051】
上述した実施形態において、アカウント情報は、制御装置3が提供するサービス(例えば、ホテルに設置されるドア装置の解錠施錠、配信サーバのコンテンツ配信)を利用するユーザのアカウント情報であり、管理装置4が装置2のユーザに対して発行してもよい。また、管理装置4が装置2からユーザ識別情報を取得しアカウント情報として用いてもよい。また、ユーザのサービス利用状況に応じて、ステータス情報を変更してもよい。例えば、ユーザがホテルをチェックアウトした場合、管理装置4が制御装置3に対し、ステータス情報を、合意済を示す情報から初回利用であることを示す情報に書き換える要求を送信してもよい。
また、上述した実施形態において、装置2が送信する登録要求の送付先(宛先)は、管理装置4が予め装置2のユーザに対して通知してもよい。また、装置2が送信する施錠又は解錠要求の送付先(宛先)に関する情報は、予め管理装置4が記憶しておき、管理装置4から装置2のユーザに対してアカウント情報を発行する際に通知してもよい。また、装置2のユーザが制御装置3の利用を終了する場合(装置2が管理装置4に対し施錠又は解錠要求の送信を行わない場合)、装置2が管理装置4対し登録削除要求を送信してもよい。
本実施形態によれば、制御装置3に、ドア鍵の施錠又は解錠を行う権限を管理する機能を設ける。これによって、仮に、制御装置3が複数ある場合でも、各制御装置が独立してドア鍵を管理できる。
一般的に、公開鍵証明書が有効であるか否か検証は、証明書失効リスト(Certificate Revocation List: CRL)や、Online Certificate Status Protocol(OCSP)等を用いて、無効な公開鍵証明書のリストを確認する手法が一般的である。
しかし、本実施形態では、デフォルトで全ての公開鍵証明書を失効状態であると仮定して、有効な公開鍵証明書のリストを作成する。そして、制御装置3は、有効な公開鍵証明書のリストを参照することによって、装置2から受信する公開鍵証明書が有効であるか否かを検証する。さらに、装置2から受信するクライアント公開鍵証明書によって、装置2のユーザを認証する。これによって、ドア鍵を複数の利用者の間で共有する場合であっても、公開鍵証明書の不要な再発行を回避できるとともに、不特定多数の装置と制御装置との組み合わせた場合に、ドア鍵の有効性や、権限をきめ細かく、且つ適切に管理することができる。
【0052】
本実施形態において、装置2が備えるSIM100や、制御装置3が備えるSIM200は、通信事業者によりユーザ認証済みのSIMである。このことは装置2や、制御装置3が認証局としての信頼の基盤となり得る。
【0053】
なお、装置2を操作している装置2のユーザと該装置2とをバインド(関連付け)させるようにしてもよい。例えば、認証したい操作や情報に対して、所定のパスワードを入力させる記憶認証を付加する。具体的には、例えば、装置2が公開鍵や公開鍵証明書を生成する際に、該装置2を操作している装置2のユーザに所定のパスワードを入力させるようにしてもよい。また、装置2のSIM100内の秘密鍵で電子署名を付す際に、該装置2を操作している装置2のユーザに所定のパスワードを入力させるようにしてもよい。
【0054】
また、SIMは、ユーザ識別情報に関連付けられた固有識別情報を格納する通信モジュールの総称であり、特定の通信システム方式で用いられる通信モジュールに限定されない。例えば、UIM(User Identity Module)、USIM(Universal Subscriber Identity Module)、eSIM(Embedded Subscriber Identity Module)などを使用してもよい。
【0055】
また、SIM100は、予め、公開鍵証明書と秘密鍵のペアを格納していてもよい。例えば、SIM100の製造時に、公開鍵証明書と秘密鍵のペアを該SIM100に格納してもよい。SIM100が、予め、公開鍵証明書と秘密鍵のペアを格納している場合には、該SIM100は鍵生成部101を備えなくてもよい。
また、SIM100にて、生成または保管される公開鍵(公開鍵証明書)と秘密鍵のペアは、複数であってもよい。この場合、例えば、装置2は、通信相手先に応じて公開鍵(公開鍵証明書)と秘密鍵のペアを使い分けてもよい。また、装置2は、ある公開鍵(公開鍵証明書)と秘密鍵のペアが漏洩した場合に、別のペアに切り替えてもよい。
【0056】
また、上述した実施形態において、リスト作成部306は、定期的に有効な公開鍵証明書のリストを更新し、制御装置3へ送信するようにしてもよい。また、リスト作成部306は、新たに公開鍵証明書が登録された場合、公開鍵証明書の有効期限が経過した場合等の有効な公開鍵証明書のリストに含まれる公開鍵証明書に変化が生じた場合に、有効な公開鍵証明書のリストを更新し、制御装置3へ送信するようにしてもよい。これによって、制御装置3へ、最新の有効な公開鍵証明書のリストを通知できる。
また、制御装置3は、記憶部205に記憶した有効な公開鍵証明書のリストに含まれる公開鍵証明書のうち、有効期限が経過した公開鍵証明書を削除するようにしてもよい。
【0057】
実施形態に係る通信システムは、民泊、モデルルーム、カーシェアリング等の不特定多数のサービス利用者を対象に時限付利用権限を個別に付与したいシーンに適用できる。
【0058】
<変形例>
図5は、変形例に係る通信システムを示す構成図である。
図5において、通信システムは、装置5と、配信サーバ6と、管理装置7とを備える。装置5は上述した実施形態の装置2を適用でき、管理装置7は上述した管理装置4を適用できる。
配信サーバ6は、SIM400等のセキュアエレメントと、通信部430と、制御部440と、記憶部500とを備える。
【0059】
SIM400はSIM識別情報simid3を格納する。SIM識別情報simid3は、SIM400に固有の識別情報である。SIM400は、認証処理部402と、検証部403と、暗号処理部404と、記憶部405とを備える。SIM400、認証処理部402、検証部403、暗号処理部404、及び記憶部405は、上述したSIM200、認証処理部202、検証部203、暗号処理部204、及び記憶部205を適用できる。
【0060】
次に
図6を参照して、
図5に示す通信システムの動作を説明する。
図6は、本変形例に係る通信システムの通信方法の説明図である。
図6には、装置2から管理装置4へ、装置2で発行した公開鍵証明書を登録する処理が示される。
ステップS601−ステップS608は、
図3に示されるステップS301−ステップS308を適用できる。
【0061】
[公開鍵証明書を用いた制御手順]
次に、
図7を参照して、公開鍵証明書を用いた制御手順について説明する。
(ステップS701)装置5において、コンテンツ配信要求アプリケーションは、SIM100からクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」とを受け取る。コンテンツ配信要求アプリケーションは、SIM100から受け取ったクライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」と、公開鍵証明書C_K1p「K1p,simid1,Krs(hash(K1p,simid1))」とを含むコンテンツ配信要求を通信部130へ出力する。通信部130は、該コンテンツ配信要求を配信サーバ6へ送信する。
配信サーバ6において、通信部430は、装置2からコンテンツ配信要求を受信する。通信部430は、該コンテンツ配信要求をコンテンツ配信アプリケーションへ渡す。
【0062】
ステップS702−S704は、
図4のステップS402−S404を適用できる。
ただし、ステップS704では、配信サーバ6において、認証処理部402は、クライアント公開鍵証明書C_Kkp「Kkp,simid1,Krs(hash(Kkp,simid1))」の認証の結果をコンテンツ配信アプリケーションへ通知する。
そして、認証処理部402は、記憶部405に記憶されている有効な公開鍵証明書のリストに関連付けられて記憶されているステータス情報を、合意済を表す情報に書き換える。これによって、装置2と配信サーバ6との間でクライアント認証が行われ、配信サーバ6に電子鍵(クライアント公開鍵)が設定されたことが示される。
【0063】
ステップS705−S709は、
図4のステップS405−S409を適用できる。
(ステップS710)配信サーバ6において、制御部440は、レスポンス値Kks(乱数)の検証の結果が合格である場合には所定の制御を実行する。例えば、制御部440は、記憶部500に記憶されたコンテンツ550のうち、装置2によって要求されたコンテンツを配信する。一方、制御部440は、レスポンス値Kks(乱数)の検証が不合格である場合にはコンテンツを配信しない。制御部440は、レスポンス値Kks(乱数)の検証が不合格である場合には所定のエラー処理を実行してもよい。
【0064】
以上、本発明の実施形態、及び変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
なお、上述した実施形態に係る通信装置又は通信端末の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0065】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0066】
上述した実施形態において、管理装置4は第1の通信装置の一例であり、記憶部300は第1の記憶部の一例であり、通信部325は第1の取得部、及び配信部の一例であり、登録部304は登録部、及び設定部の一例であり、リスト作成部306はリスト作成部の一例である。また、制御装置3は第2の通信装置の一例であり、通信部430は第2の取得部、及び受信部の一例であり、制御部240は制御部の一例であり、公開鍵証明書生成部102は認証局の一例である。また、暗号処理部104は第1の暗号処理部の一例であり、暗号処理部204は第2の暗号処理部の一例であり、通信部130は第1の通信部の一例であり、検証部203は検証部の一例である。