(57)【要約】【課題】  外部に漏洩すべきでない情報を好適に保護する。【解決手段】  情報処理装置に接続可能な記録媒体であって、接続された前記情報処理装置と通信する通信部と、鍵情報を記録する記録部と、制御部とを備え、前記制御部は、第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う。【選択図】  図１
2014045465.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に接続可能な記録媒体であって、
接続された前記情報処理装置と通信する通信部と、
鍵情報を記録する記録部と、
制御部とを備え、
前記制御部は、
第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、
前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、
受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う
ことを特徴とする記録媒体。
【請求項２】
請求項１に記載の記録媒体であって、
前記制御部は、
復号化された前記第三の鍵情報を、復号化された前記第四の鍵情報を用いた暗号通信により前記情報処理装置を介して前記所定のプログラムに設定することによって、該所定のプログラムを実行する制御を行う
ことを特徴とする記録媒体。
【請求項３】
請求項１または請求項２に記載の記録媒体であって、
前記通信部が前記情報処理装置との通信に失敗した場合、または、前記記録媒体と前記情報処理装置との接続が解除された場合に、前記第三の鍵情報を消去する
ことを特徴とする記録媒体。
【請求項４】
請求項２に記載の記録媒体であって、
前記第三の鍵情報を前記所定のプログラムに設定した場合に、前記第三の鍵情報を消去する
ことを特徴とする記録媒体。
【請求項５】
請求項１乃至請求項４のいずれかに記載の記録媒体であって、
前記通信部は、ＳＤカードのインタフェースである
ことを特徴とする記録媒体。
【請求項６】
請求項１乃至請求項４のいずれかに記載の記録媒体であって、
前記通信部は、ＩＣカードのインタフェースである
ことを特徴とする記録媒体。
【請求項７】
記録媒体に、
第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して記録部に記録するステップと、
記録された前記第一の鍵情報を通信部を介して外部の装置に送信するステップと、
前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記通信部を介して受信するステップと、
受信した前記第三の鍵情報と前記第四の鍵情報とを、所定のプログラムを実行するために前記第二の鍵情報を用いて復号化するステップと、
を実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムであって、
復号化された前記第三の鍵情報を、復号化された前記第四の鍵情報を用いた暗号通信により、前記記録媒体に接続された情報処理装置を介して前記所定のプログラムに設定するステップ
を実行させるためのプログラム。
【請求項９】
記録媒体に接続可能な情報処理装置と、該情報処理装置とは異なる外部の装置と通信可能な情報配信装置であって、
前記情報処理装置と前記外部の装置と通信する通信部と、
制御部とを備え、
前記制御部は、
前記情報処理装置を介して前記記録媒体に、第一の鍵情報と該第一の鍵情報の対となる第二の鍵情報とを生成する指示を送信し、
前記情報処理装置を介して前記記録媒体から、前記第一の鍵情報を受信して認証し、
認証した前記第一の鍵情報を前記外部の装置に送信し、
前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記外部の装置から受信し、
前記情報処理装置を介して前記記録媒体に、受信した前記第三の鍵情報と前記第四の鍵情報とを送信し、
前記記録媒体において前記第三の鍵情報と前記第四の鍵情報とが前記第二の鍵情報を用いて復号化された場合に、前記外部の装置に処理完了通知を送信する制御を行う
ことを特徴とする情報配信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体、プログラム、及び、情報配信装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、特開２０００−３４７８４７号公報（特許文献１）がある。この公報には、「ＨＤＤ２１は、プログラム、およびプログラムの実行に必要なデータを蓄積する。ＣＰＵ１１は、ＨＤＤ２１に対するプログラムおよびデータの蓄積または読み出しを制御する。ＣＰＵ１１は、プログラムをアダプタ２６から供給された第１の鍵で暗号化する。ＣＰＵ１１は、データをアダプタ２６から供給された第２の鍵で暗号化する。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３４７８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、場合によっては秘密情報が第三者に漏洩する可能性がある。そこで、本発明は、外部に漏洩すべきでない情報を好適に保護する技術を提供する。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【０００６】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「情報処理装置に接続可能な記録媒体であって、接続された前記情報処理装置と通信する通信部と、鍵情報を記録する記録部と、制御部とを備え、前記制御部は、第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う」ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、外部に漏洩すべきでない情報を好適に保護することができる。
【０００８】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】鍵配送システムの一例を示す図である。
【図２】情報端末および秘密情報格装置の機能構成の一例を示す図である。
【図３】秘密情報格納装置の記憶部が有する格納領域に格納される鍵の情報の一例を示す図である。
【図４】サーバが保持する鍵の一例を示す図である。
【図５】鍵配送システムの処理の一例を示した図である。
【図６】鍵配送システムの処理の一例を示した図である。
【図７】鍵配送システムの処理の一例を示した図である。
【図８】鍵配送システムの処理の一例を示した図である。
【図９】鍵配送システムの一例を示す図である。
【図１０】情報端末および秘密情報格装置の機能構成の一例を示す図である。
【図１１】秘密情報格納装置の記憶部が有する格納領域に格納される鍵の情報の一例を示す図である。
【図１２】サーバが保持する鍵の一例を示す図である。
【図１３】鍵配送システムの処理の一例を示した図である。
【図１４】鍵配送システムの処理の一例を示した図である。
【図１５】鍵配送システムの処理の一例を示した図である。
【図１６】秘密情報格装置の機能構成の一例を示す図である。
【図１７】鍵配送システムの処理の一例を示した図である。
【図１８】鍵配送システムの処理の一例を示した図である。
【図１９】情報端末の機能構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明に係る実施例について図を用いて説明する。
【実施例１】
【００１１】
本実施例では、情報端末を介して、秘密情報格納装置（記録媒体）２に、サーバから安全に鍵を配送するために必要な処理の具体的な例について説明する。
【００１２】
図１は、鍵配送システムの一例を示す図である。本発明に係る鍵配送システムは、情報端末１と、サービスサーバ３と、カードアプリサーバ４と、鍵配送サーバ５とが、通信により相互に接続している。さらに、情報端末１は、秘密情報格納装置２と通信により相互に接続されている。図１の各サーバと情報端末１と秘密情報格納装置２とは、図１で示していない経路によって接続されていても構わない。なお、以下の説明では、サービスサーバ３、カードアプリサーバ４および鍵配送サーバ５等について、それぞれを特に区別せず総括して呼称する場合は単にサーバと呼称することがある。
【００１３】
情報端末１は、情報を表示可能な表示部、情報を入力可能な入力部、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部等を有した端末であり、秘密情報格納装置２とサーバとの情報のやりとりを仲介する役割を担う。鍵配送システムには複数の情報端末１が含まれていても良い。情報端末１としてはスマートフォンやタブレット端末、パーソナルコンピュータやシンクライアント端末などが考えられるが、これに限るものではない。
【００１４】
秘密情報格納装置２は、例えば耐タンパ機構等を備えたセキュアな半導体素子を含み、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部、高速暗号処理が可能な暗号演算部等を有し、情報端末１を介してサーバやその他の端末と情報のやりとりを行う。秘密情報格納装置２としてはＳＩＭカード型のＩＣカードや、ｍｉｃｒｏＳＤ型のＩＣカード、組込みチップ型のＩＣカード、非接触型および接触型のＩＣカードなどが考えられるが、これに限るものではない。鍵配送システムには複数の秘密情報格納装置２が含まれていても良いし、また、一つの情報端末１が複数の秘密情報格納装置２と通信してもかまわない。
【００１５】
サービスサーバ３は、ネットワーク等を通じて他のサーバや情報端末１と通信を行うサーバである。サービスサーバ３は例えば電子決済などのサービスを提供する事業者が運営するサーバであり、秘密情報格納装置２に格納した秘密鍵等の所定の秘密情報を、サービスサーバ３で認証することで、情報端末１及び秘密情報格納装置２を有するユーザにサービスを提供する。したがってサービスサーバ３は秘密情報格納装置２の秘密情報を認証する構成や、ユーザ顧客を管理及び認証する構成、サービスを実行するための構成等を有していることが考えられる。
【００１６】
カードアプリサーバ４は、ネットワーク等を通じて他のサーバや情報端末１と通信を行うサーバである。カードアプリサーバ４は秘密情報格納装置２で動作するアプリケーションを保持するサーバである。カードアプリサーバ４は秘密情報格納装置２を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置２に対し管理者権限で認証を行うことで、秘密情報格納装置２に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ４は、例えばモバイルネットワークオペレータや、ＴＳＭ（Ｔｒｕｓｔｅｄ  Ｓｅｒｖｉｃｅ  Ｍａｎａｇｅｒ）と呼ばれる第三者組織などが運用するサーバであることが考えられる。カードアプリサーバ４は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置２を所持するユーザの情報などを保持し、情報端末１等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有していることが考えられる。
【００１７】
鍵配送サーバ５は、ネットワーク等を通じて他のサーバや情報端末１と通信を行うサーバである。鍵配送サーバ５は秘密情報格納装置２で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置２に配送するためのサーバである。鍵配送サーバ５は秘密情報格納装置２に配置した鍵配送アプリを介して、サービスサーバ３で管理する秘密鍵等をアプリケーション等に配送する。この配送過程で、部外者に秘密鍵を知られてはならないばかりでなく、サービス提供者とユーザにとって第三者であるカードアプリサーバ４や鍵配送サーバ５等の管理者等にもこれを知られないようにする必要がある。鍵配送サーバ５は、鍵配送アプリとセキュアな通信を行うための秘密鍵を管理する構成や、公開鍵暗号を用いたＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）を実行するための構成等を有していることが考えられる。
【００１８】
サーバどうしや、サーバと情報端末１の通信は、例えば、インターネット・プロトコル等を使用する有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、ＨＳＰＡ（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）、およびＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）等の通信ネットワークであることが考えられる。
【００１９】
図２は、情報端末１および秘密情報格装置２の機能構成の一例を示す図である。
【００２０】
情報端末１は、記憶部１１、制御部１２、電源供給部１３、通信部１４、表示部１５、入力部１６、およびネットワーク通信部１７を備え、これらがバス線などで結線されている。なお、図２では各モジュールが情報端末１の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
【００２１】
記憶部１１は、例えば情報端末１に内蔵されるメモリ、または取り外し可能な外部メモリ等であり、各種の情報を記憶する。例えば、制御部１２が実行する動作制御用プログラムを記憶する。記憶部１１は、制御ソフト１１１を備え、これについては後述する。
【００２２】
制御部１２は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｏｎｇ  Ｕｎｉｔ）、またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等であり、所定の動作制御用プログラムを実行するなどして、情報端末１全体の動作を制御する。
【００２３】
電源供給部１３は、例えばバッテリ、ＡＣアダプタ、または充電回路等であり、情報端末１の各部への電源供給や、バッテリへの充電を行う。情報端末１がバッテリ駆動されているか、ＡＣアダプタ駆動されているかといった状態確認や、バッテリの残量確認を行うことも考えられる。また図２に記してはいないが、秘密情報格納装置２の外部電源として電源供給を行う役割を合わせて担ってもよい。
【００２４】
通信部１４は、情報端末１が秘密情報格納装置２と通信を行うための構成部であり、例えば接触ＩＣカードの国際標準通信方式であるＩＳＯ７８１６、非接触ＩＣカードの国際標準通信方式であるＩＳＯ１４４４３、ＦｅｌｉＣａ（登録商標）、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＳＤカード規格に応じた通信、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、有線ＬＡＮ、無線ＬＡＮ、ＴｒａｎｓｆｅｒＪＥＴ（登録商標）などの通信方式を実現するモジュールである。通信部１４は、場合によっては後述するネットワーク通信部１７と同一のモジュールであってもよい。また、秘密情報格納装置２が情報端末１の組込みモジュールであった場合、基盤上で結線されたものであっても構わない。通信部１４は通信方式や秘密情報格納装置２の個数に応じて情報端末１に複数個存在してもかまわない。
【００２５】
表示部１５は、例えば液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、または電子ペーパー等のパネル、およびドライバ回路等であり、制御部１２の制御下にて任意の情報（例えば、文字、静止画、および動画等）を表示する。なお、表示部１５は、それぞれ異なる情報を表示可能な複数のパネルを有していても良い。
【００２６】
入力部１６は、例えばキーボード、マウス、カーソルキー、およびテンキー等の一または複数を備え、ユーザの操作を受け付け、当該操作に基づいた入力信号を制御部１２に入力する。なお、音声認識、画像認識、またはジェスチャ認識等によって入力信号を生成し、制御部１２に入力するようにしても良い。なお、タッチパネルのように、表示部１５と入力部１６とが一体となった構成であっても良い。
【００２７】
ネットワーク通信部１７は、情報端末１がサーバと通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線ＬＡＮ、無線ＬＡＮ、ＷＡＮ、ＬＴＥ、ＨＳＰＡ、またはＷｉＭＡＸ等のネットワーク通信を行うためのモジュールが考えられる。ネットワーク通信部１７は通信方式等に応じて情報端末１に複数個存在してもかまわない。
【００２８】
なお、通信部１４やネットワーク通信部１７といった通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部１４やネットワーク通信部１７は、それぞれが複数の通信方式に対応するよう構成されても良い。
【００２９】
次に、秘密情報格納装置２は、記憶部２１、制御部２２、電源供給部２３、通信部２４、および暗号処理部２５を備え、これらがバス線などで結線されている。なお、図２では各モジュールが秘密情報格納装置２の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
【００３０】
記憶部２１は、秘密情報格納装置２に内蔵される半導体メモリ等から構成され、各種の情報を記憶する。記憶部２１は、例えばＥＥＰＲＯＭ、ＲＡＭ、またはフラッシュメモリ等である。記憶部２１は、例えば制御部２２が実行する動作制御用プログラムを記憶する。記憶部２１が備える構成要素については後述する。
【００３１】
制御部２２は、ＣＰＵ、ＭＰＵ、またはＤＳＰ等であり、所定の動作制御用プログラムを実行するなどして、秘密情報格納装置２全体の動作を制御する。
【００３２】
電源供給部２３は、外部から電源を取得する電源供給端子もしくはアンテナ、または電源供給回路等であり、秘密情報格納装置２の各部への電源供給を行う。あるいは、バッテリ、ＡＣアダプタ、充電回路等を備えていてもよい。図２に記してはいないが、秘密情報格納装置２は電源供給部２３によって情報端末１から電源の供給を受けてもよい。
【００３３】
通信部２４は、秘密情報格納装置２が情報端末１と通信を行うための構成部であり、例えば接触ＩＣカードの国際標準通信方式であるＩＳＯ７８１６、非接触ＩＣカードの国際標準通信方式であるＩＳＯ１４４４３、ＦｅｌｉＣａ、ＮＦＣ、ＳＤカード規格に応じた通信、Ｂｌｕｅｔｏｏｔｈ、ＵＳＢ、有線ＬＡＮ、無線ＬＡＮ、ＴｒａｎｓｆｅｒＪＥＴなどの通信方式を実現するモジュールである。秘密情報格納装置２が情報端末１の組込みモジュールであった場合、通信部２４は情報端末１と基盤上で結線されたものであっても構わない。通信部２４は通信方式に応じて秘密情報格納装置２に複数個存在してもかまわない。なお、通信部２４の通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部２４は複数の通信方式に対応するよう構成されても良い。
【００３４】
暗号処理部２５は、例えば剰余乗算コプロセッサや暗号アクセラレータ等であり、ＲＳＡ暗号や楕円曲線暗号といった公開鍵暗号処理や、ＡＥＳやＤＥＳといった共通鍵暗号処理を、制御部で行うよりも高速に実行するための構成部である。暗号処理部２５は処理する暗号等に応じて秘密情報格納装置２に複数個存在してもかまわない。
【００３５】
次に、情報端末１の記憶部１１について説明する。情報端末１の記憶部１１は、制御ソフト１１１を有する。制御ソフト１１１は、ユーザ操作によって一連のフローを開始するきっかけとなるユーザインタフェースを提供したり、サーバや秘密情報格納装置２との通信を行うきっかけを与えたりするソフトウェアであり、制御部１２によって実行される。サーバは制御ソフト１１１の要求によって処理を開始し、処理の結果を制御ソフト１１１に戻す。また、秘密情報格納装置２は、制御ソフト１１１の要求によって処理を開始し、処理の結果を制御ソフト１１１に戻す。このように制御ソフト１１１はシステム全体の処理のきっかけを作るが、必ずしもアルゴリズムの主体を担うとは限らない。制御ソフト１１１がコマンドをフェッチするような役割を担い、一連のフローやアルゴリズムの主体はサーバや秘密情報格納装置２にある場合もある。なお、サーバや秘密情報格納装置２の動作のきっかけは制御ソフト１１１によるものだけでなく、その他の装置やサーバもしくはソフトウェアをきっかけに動作する場合もある。制御ソフト１１１は複数のソフトウェアが連携した複合的なものであってもかまわない。なお、以下の実施例で特に断りなく制御ソフト１１１が処理を実行するような記述をした場合、物理的には制御ソフト１１１のプログラムの記述に則って制御部１２が処理を実行するということを示しているものとする。
【００３６】
制御ソフト１１１は、一例として、サービスサーバ情報１１１１と、カードアプリサーバ情報１１１２と、鍵配送サーバ情報１１１３と、端末ＩＤ１１１４を有する。図２では便宜的に制御ソフト１１１の内部にこれらを備えるように記載しているが、物理的にはこれらは記憶部１１のある領域に書き込まれたデータであり、それを制御ソフト１１１が参照できるようになっているものとする。
【００３７】
サービスサーバ情報１１１１は、制御ソフト１１１が必要に応じてサービスサーバ３に接続するために使用する情報であり、サービスサーバ３のＵＲＬやＩＰアドレスなどを含む。
【００３８】
カードアプリサーバ情報１１１２は、制御ソフト１１１が必要に応じてカードアプリサーバ４に接続するために使用する情報であり、カードアプリサーバ４のＵＲＬやＩＰアドレスなどを含む。
【００３９】
鍵配送サーバ情報１１１３は、制御ソフト１１１が必要に応じて鍵配送サーバ５に接続するために使用する情報であり、鍵配送サーバ５のＵＲＬやＩＰアドレスなどを含む。
【００４０】
サービスサーバ情報１１１１、カードアプリサーバ情報１１１２、および鍵配送サーバ情報１１１３は、予め制御ソフト１１１と共に記憶部１１に書き込まれていてもよいし、制御ソフト１１１自体をネットワーク等から取得し記憶部１１に書き込む際に合わせて書き込んでもよい。あるいは他の媒体にこれらの情報を格納しておき、適宜制御ソフト１１１が読み込んで記憶部１１に書き込んでもよい。ここで、他の媒体とは、例えば、外部メモリでもよいし、いずれかのサーバでもよいし、あるいは接続先の判明しているその他のサーバでもよいし、秘密情報格納装置２であってもよい。
【００４１】
端末ＩＤ１１１４は、サーバが情報端末１を識別するためのＩＤ情報を含む。端末ＩＤ１１１４は予め制御ソフト１１１と共に記憶部１１に書き込まれていてもよいし、制御ソフト１１１自体をネットワーク等から取得し記憶部１１に書き込む際に合わせて書き込んでもよい。あるいは情報端末１のデバイスや秘密情報格納装置２から取得できる一意またはそれに順ずる程度の一意性を持った情報を制御ソフト１１１が読み込んで記憶部１１に書き込んでもよい。あるいは十分大きい乱数などを情報端末１で生成し、端末ＩＤ１１１４として使用しても良い。端末ＩＤ１１１４は必ずしも記憶部１１に書き込むことで保持していなくともよく、必要な場合にその都度、制御ソフト１１１がＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）等を通じて取得しても構わない。
【００４２】
なお図２に示してはいないが、制御ソフト１１１は上記以外の情報を有していてもよい。例えば後述する秘密情報格納装置２が有するアプリケーションやソフトウェア等のプログラムにアクセスするためのプログラムＩＤなどを有していても構わない。プログラムＩＤは、例えばＩＣカードの規格であるＩＳＯ７８１６に準拠したＡＩＤ（Ａｐｐｌｉｃａｔｉｏｎ  ＩＤ）などである。
【００４３】
次に、秘密情報格納装置２の記憶部２１について説明する。秘密情報格納装置２の記憶部２１は、例えば、管理ソフト２１０と、サービスアプリ管理ソフト２１１と、鍵配送アプリ２１２を有する。なお、後述する図５からのフローでは、サービスアプリ管理ソフト２１１がまだ記憶部２１に存在しない状態から処理を開始するものとして説明する。また、以下の実施例で特に断りなく管理ソフト２１０、サービスアプリ管理ソフト２１１、鍵配送アプリ２１２、及び後述するサービスアプリ２１１１が処理を実行するような記述をした場合、物理的にはこれらのプログラムの記述に則って制御部２２が処理を実行するということを示しているものとする。
【００４４】
管理ソフト２１０は、秘密情報格納装置２を管理者権限で操作することができるソフトウェアであり、制御部２２によって実行される。管理ソフト２１０は、通信部２４から受けとった要求に受け答える形で動作する。また、管理ソフト２１０は、管理ソフト鍵２１０１を有する。管理ソフト鍵２１０１は、図２では便宜的に管理ソフト２１０の内部にこれを備えるように記載しているが、物理的には、これは記憶部２１のある領域に書き込まれたデータであり、それを管理ソフト２１０が参照できるようになっているものとする。ただし管理ソフト２１０以外は管理ソフト鍵２１０１を参照することはできない。管理ソフト鍵２１０１は例えば共通鍵方式または公開鍵方式の暗号鍵である。
【００４５】
通信部２４から受けた認証要求により、管理ソフト鍵２１０１による認証が成功した場合、管理ソフト２１０は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト２１０は、サービスアプリ管理ソフト２１１の新規作成、サービスアプリ管理ソフト２１１への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。管理ソフト２１０としては、例えばＪａｖａＣａｒｄ仕様に則ったＩＳＤ（Ｉｓｓｕｅｒ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）やＡＭＳＤ（Ａｕｔｈｏｌｉｚｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）などが考えられる。
【００４６】
サービスアプリ管理ソフト２１１は、サービスアプリやサービスアプリが使用する暗号通信鍵を管理するソフトウェアであり、制御部２２によって実行される。サービスアプリ管理ソフト２１１は配下にアプリケーションやそのアプリケーションが暗号通信に用いる鍵を論理的に配置することができ、配下のサービスアプリのセキュリティを管轄する。サービスアプリ管理ソフト２１１としては、例えばＪａｖａＣａｒｄ仕様に則ったＳＳＤ（Ｓｕｐｐｌｅｍｅｎｔａｒｙ  Ｓｅｃｕｒｉｔｙ  Ｄｏｍａｉｎ）などが考えられる。
【００４７】
サービスアプリ管理ソフト２１１は、サービスアプリ２１１１と、暗号通信鍵格納領域２１１３とを有する。サービスアプリ２１１１と暗号通信鍵格納領域２１１３は、図２では便宜的にサービスアプリ管理ソフト２１１の内部にこれらを備えるように記載しているが、物理的には記憶部２１のある領域に書き込まれたデータまたは領域そのものであるものとする。
【００４８】
また、サービスアプリ２１１１は、アプリ鍵格納領域２１１２を有する。アプリ鍵格納領域２１１２は、図２では便宜的にサービスアプリ２１１１の内部にこれらを備えるように記載しているが、物理的には記憶部２１のある領域であり、サービスアプリ２１１１のみがこれを参照できると考えられる。
【００４９】
サービスアプリ２１１１は、サービスサーバ３を運用するサービス提供者が提供するサービスを実現するためのアプリケーションであり、例えば決済アプリ、ポイントアプリ、交通料金支払いアプリ、あるいはＰＫＩ認証アプリ等のプログラムである。サービスアプリ２１１１としては、例えばＪａｖａＣａｒｄ仕様に則ったＪａｖａＣａｒｄアプリケーションなどが考えられる。
【００５０】
アプリ鍵格納領域２１１２はサービスアプリ２１１１がサービスに係る処理を実行するための認証鍵を格納する領域である。例えばサービス提供者は、認証鍵による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。
【００５１】
暗号通信鍵格納領域２１１３はサービスアプリ管理ソフト２１１もしくはサービスアプリ２１１１がサービスサーバ３と暗号通信路を確立して通信を行う際に使用される認証鍵を格納する領域である。サービスアプリ管理ソフト２１１は、通信部２４から暗号通信鍵格納領域２１１３に格納されている鍵で認証を行う要求を受け付けることができる。認証が成功すると、暗号通信鍵格納領域２１１３に格納されている鍵自身を書き換える要求を受け付けることができる。
【００５２】
鍵配送アプリ２１２は、サービスアプリ２１１１もしくはサービスアプリ管理ソフト２１１が使用する秘密鍵等を鍵配送サーバ５から安全に受け取って一時保持するためのソフトウェアであり、制御部２２によって実行される。鍵配送アプリ２１２は一時保持した秘密鍵等をサービスアプリ管理ソフト２１１やサービスアプリ２１１１に安全に設定するための要求を生成するロジックを備えている。例えばサービスアプリ管理ソフト２１１は、先述のように、暗号通信鍵格納領域２１１３に格納されている鍵で認証する要求を受け付けることで鍵の値を書き換えることができるが、鍵配送アプリ２１２は、所定の鍵の値を用いてこの要求を内部で生成することができるロジックを備えている。鍵配送アプリ２１２としては、例えばＪａｖａＣａｒｄ仕様に則ったＪａｖａＣａｒｄアプリケーションなどが考えられる。
【００５３】
鍵配送アプリ２１２は、鍵配送マスター鍵２１２１と、アプリ鍵格納領域２１２２と、暗号通信鍵格納領域２１２３と、暗号通信仮鍵格納領域２１２４と、鍵配送公開鍵格納領域２１２５と、鍵配送秘密鍵格納領域２１２６とを有する。図２では鍵配送アプリ２１２の内部にこれらを備えるように記載しているが、物理的には記憶部２１のある領域に書き込まれたデータまたは領域そのものであり、鍵配送アプリ２１２のみがこれらを参照できるものとする。
【００５４】
鍵配送マスター鍵２１２１は、鍵配送サーバ５と認証を行うための鍵である。実際の認証処理や暗号通信路等の構築には、鍵配送マスター鍵２１２１そのものではなく所定のアルゴリズムで派生した派生鍵を用いてもかまわない。鍵配送マスター鍵２１２１は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。通信部２４から受けた認証要求により、鍵配送マスター鍵２１２１による認証が成功した場合、鍵配送アプリ２１２は要求に応じて配送される鍵の一時保管を行うことができる。
【００５５】
アプリ鍵格納領域２１２２は、サービスアプリ２１１１が使用する秘密鍵を一時的に保持するための領域である。アプリ鍵格納領域２１２２に一時保持される鍵は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらにアプリ鍵格納領域２１１２に安全に設定される。アプリ鍵格納領域２１２２は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部２３による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばＲＡＭに配置するのが望ましい。
【００５６】
暗号通信鍵格納領域２１２３は、サービスアプリ２１１１等が使用する暗号通信鍵を一時的に保持するための領域である。暗号通信鍵格納領域２１２３に一時保持される鍵は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらに暗号通信鍵格納領域２１１３に安全に設定される。暗号通信鍵格納領域２１２３は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部２３による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばＲＡＭに配置するのが望ましい。
【００５７】
暗号通信仮鍵格納領域２１２４は、暗号通信鍵の仮鍵を一時的に保持するための領域である。暗号通信仮鍵格納領域２１２４に一時保持される鍵は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらに、この仮鍵によって鍵配送アプリ２１２とサービスアプリ管理ソフト２１１との間で認証を行うことで、鍵配送アプリ２１２からサービスアプリ管理ソフト２１１の配下に鍵を設定することが可能になる。暗号通信仮鍵格納領域２１２４は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部２３による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばＲＡＭに配置するのが望ましい。
【００５８】
鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域２１２５に、秘密鍵を鍵配送秘密鍵格納領域２１２６に格納する。鍵配送公開鍵格納領域２１２５や鍵配送秘密鍵格納領域２１２６は、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から鍵配送アプリ２１２に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置２の内部で生成され、特に、鍵配送秘密鍵格納領域２１２６に格納される秘密鍵は秘密情報格納装置２の外部に出力する手段が存在しないものである。したがって、鍵配送アプリ２１２は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部２５を用いて鍵ペアの生成を行う。
【００５９】
図３は、秘密情報格納装置２の記憶部２１が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。
【００６０】
サービスアプリ管理ソフト２１１について説明する。アプリ鍵格納領域２１１２には、アプリ鍵２１１４が格納される。アプリ鍵２１１４は例えばサービスアプリ２１１１がサービスを実行するための認証鍵であることが考えられる。例えばサービス提供者は、アプリ鍵２１１４による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。従って、アプリ鍵２１１４を、第三者に知られることなく、安全にサービスアプリ２１１１に設定することこそが、サービス提供者が提供するサービスのセキュリティの根幹である。アプリ鍵２１１４は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。アプリ鍵２１１４の役割から、アプリ鍵格納領域２１１２はＥＥＰＲＯＭやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
【００６１】
暗号通信鍵格納領域２１１３には、暗号通信鍵２１１５もしくは暗号通信仮鍵２１１６が格納される。暗号通信鍵２１１５は例えばサービスアプリ管理ソフト２１１もしくはサービスアプリ２１１１がサービスサーバ３と暗号通信路を確立して通信を行う際に使用される鍵である。図３に示してはいないが、例えば、サービスアプリ管理ソフト２１１の配下にサービスアプリ２１１１が複数あった場合、それらは分け隔てなく暗号通信鍵２１１５を暗号通信の確立に使用することができる。
【００６２】
暗号通信仮鍵２１１６は、暗号通信鍵格納領域２１１３に暗号通信鍵２１１５が格納されるまで一時的に格納される鍵であり、カードアプリサーバ４から付与される。暗号通信仮鍵２１１６が格納された暗号通信鍵格納領域２１１３は、管理ソフト鍵２１０１による管理者権限での認証が成功したか、もしくは暗号通信仮鍵２１１６自身での認証が成功した場合に、その内容を書き換える要求を受け付けることができる。例えば後述するフローでは暗号通信仮鍵２１１６での認証が成功することにより、自身を暗号通信鍵２１１５に書き換える要求を受け付ける。
【００６３】
暗号通信鍵２１１５と暗号通信仮鍵２１１６は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。暗号通信鍵２１１５と暗号通信仮鍵２１１６の役割から、暗号通信鍵格納領域２１１３はＥＥＰＲＯＭやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
【００６４】
次に、鍵配送アプリ２１２について説明する。アプリ鍵格納領域２１２２には、先述のアプリ鍵２１１４が一時的に格納される。アプリ鍵２１１４は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらに、続くフローでアプリ鍵格納領域２１１２に安全に設定される。
【００６５】
暗号通信鍵格納領域２１２３には、先述の暗号通信鍵２１１５が一時的に格納される。暗号通信鍵２１１５は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらに、続くフローで暗号通信鍵格納領域２１１３に安全に設定される。
【００６６】
暗号通信仮鍵格納領域２１２４は、先述の暗号通信仮鍵２１１６が一時的に格納される。暗号通信仮鍵２１１６は後述するフローによって鍵配送アプリ２１２に安全に配送され、さらに、この暗号通信仮鍵２１１６によって鍵配送アプリ２１２とサービスアプリ管理ソフト２１１との間で認証を行うことで、鍵配送アプリ２１２からサービスアプリ管理ソフト２１１の配下に暗号通信鍵２１１５とアプリ鍵２１１４とを設定することが可能になる。
【００６７】
鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８をそれぞれ格納する。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８は、所定の手段で付与される証明書等と合わせて格納されてもよい。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８は、外部から鍵配送アプリ２１２に安全にアプリ鍵２１１４や暗号通信鍵２１１５等を配送するために使用される。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８のペアは、秘密情報格納装置２の内部で生成され、特に、鍵配送秘密鍵２１２８は秘密情報格納装置２の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６はＥＥＰＲＯＭやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
【００６８】
図４はサーバが保持する鍵の一例を示す図である。図４ではサービスサーバ３、カードアプリサーバ４、および鍵配送サーバ５の最小限の構成と、それぞれが保持する鍵を示している。
【００６９】
サービスサーバ３は、記憶部３１と、制御部３２と、ネットワーク通信部３７と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部３１は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部３２で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）などであっても良い。制御部３２はＣＰＵやＧＰＵなどであり、サービスサーバ３全体の制御を司る。ネットワーク通信部３７は他のサーバや情報端末１と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線ＬＡＮ、無線ＬＡＮ、ＷＡＮ、ＨＳＰＡ、またはＷｉＭＡＸ等のネットワーク通信を行うためのモジュールである。記憶部３１、制御部３２、ネットワーク通信部３７は必要に応じてサービスサーバ３に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
【００７０】
記憶部３１は、サービスアプリ２１１１と、暗号通信鍵２１１５と、アプリ鍵２１１４とを有する。それぞれの説明は先述したので省略する。暗号通信鍵２１１５やアプリ鍵２１１４は所定の方法によりサービスサーバ３で生成されてもよい。図４に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置２を特定する情報と紐付けられていてもよい。
【００７１】
カードアプリサーバ４は、記憶部４１と、制御部４２と、ネットワーク通信部４７と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部４１は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部４２で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたＨＳＭなどであっても良い。制御部４２はＣＰＵやＧＰＵなどであり、カードアプリサーバ４全体の制御を司る。ネットワーク通信部４７は他のサーバや情報端末１と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線ＬＡＮ、無線ＬＡＮ、ＷＡＮ、ＨＳＰＡ、またはＷｉＭＡＸ等のネットワーク通信を行うためのモジュールである。記憶部４１、制御部４２、ネットワーク通信部４７は必要に応じてカードアプリサーバ４に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
【００７２】
記憶部４１は、管理ソフト鍵２１０１と、暗号通信仮鍵２１１６とを有する。それぞれの説明は先述したので省略する。管理ソフト鍵２１０１や暗号通信仮鍵２１１６は所定の方法によってカードアプリサーバ４で生成されてもよい。暗号通信仮鍵２１１６については、場合によってはサービスサーバ３によって生成され、それがカードアプリサーバ４に通知されても構わない。また、図４に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置２を特定する情報と紐付けられていてもよい。
【００７３】
鍵配送サーバ５は、記憶部５１と、制御部５２と、ネットワーク通信部５７と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部５１は、不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部５２で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたＨＳＭなどであっても良い。制御部５２はＣＰＵやＧＰＵなどであり、鍵配送サーバ５全体の制御を司る。ネットワーク通信部５７は他のサーバや情報端末１と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線ＬＡＮ、無線ＬＡＮ、ＷＡＮ、ＨＳＰＡ、またはＷｉＭＡＸ等のネットワーク通信を行うためのモジュールである。記憶部５１、制御部５２、ネットワーク通信部５７は必要に応じて鍵配送サーバ５に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
【００７４】
記憶部５１は、鍵配送マスター鍵２１２１を有する。鍵配送マスター鍵２１２１の説明は先述したので省略する。鍵配送マスター鍵２１２１は所定の方法によって鍵配送サーバ５で生成されてもよい。図４に示してはいないが、鍵配送マスター鍵２１２１はデータベース等でユーザを特定する情報や秘密情報格納装置２を特定する情報と紐付けられていてもよい。
【００７５】
図５から図８は鍵配送システムの処理の一例を示した図である。図５から図８は分割して記述しているが一続きのフローである。フローは、一例として、秘密情報格納装置２の記憶部２１に、管理ソフト２１０、管理ソフト鍵２１０１、鍵配送アプリ２１２、鍵配送マスター鍵２１２１が格納され、鍵配送アプリ２１２の各種格納領域は空の状態から開始する。また、サービスアプリ管理ソフト２１１及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば鍵配送アプリ２１２に鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト２１１やサービスアプリ２１１１が予め存在するがアプリ鍵２１１４や暗号通信鍵２１１５が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
【００７６】
図５では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト２１１の作成とサービスアプリ２１１１のインストール、および暗号通信仮鍵２１１６の設定を行う。
【００７７】
サービスサーバ３は、秘密情報格納装置２に配信したいサービスアプリ２１１１をカードアプリサーバ４に前もって渡しておく（Ｓ１０１）。サービスアプリ２１１１を渡す方法はサーバ間でのＳＳＬ通信や暗号メールなどの暗号通信によって行っても良いし、物理媒体による引渡しなど、ネットワーク以外の方法を用いてもよい。Ｓ１０１はサービス提供者がサービスアプリ２１１１を用いたサービスを提供開始するよりも前に実行されるのが望ましい。
【００７８】
鍵配送システム及びその前段となるサービスアプリ管理ソフト２１１の作成処理等は、ユーザがサービスを使用する意思を、制御ソフト１１１を通じて表明することで開始する（Ｓ１０２）。続いて制御ソフト１１１は端末ＩＤ１１１４をカードアプリサーバ４に通知することでインストール等の処理の開始をカードアプリサーバ４に知らせる（Ｓ１０３）。続いて制御ソフト１１１を通じてカードアプリサーバ４はユーザ認証を行う（Ｓ１０４）。ユーザ認証の手段は例えばパスワードの照合などが考えられる。これは不正なユーザが不正にサービスを享受することを防ぐために実施する。図５では便宜的にカードアプリサーバ４がユーザ認証を行っているが、他のサーバでユーザ認証を行っても構わない。ユーザの情報をサーバ間で対応付けることができればよい。続いてカードアプリサーバ４はサービスサーバ３と連携するためにユーザに関する必要な情報をサービスサーバ３に通知する（Ｓ１０５）。サービスサーバ３はこれによりインストール等の処理の開始を知ることができる。カードアプリサーバ４とサービスサーバ３の間の通信はＳＳＬなどでセキュアに行うことが望ましい。
【００７９】
Ｓ１０４が成功したら、続いて制御ソフト１１１は秘密情報格納装置２とカードアプリサーバ４の中継を行う処理に入る（Ｓ１０６）。中継処理は、カードアプリサーバ４が生成したコマンドをネットワーク通信部１７から取得し、そのコマンドを通信部１４から秘密情報格納装置２に送付し、その結果として秘密情報格納装置２から得たレスポンスを、ネットワーク通信部１７を介してカードアプリサーバ４に通知する、という処理である。以降のステップで制御ソフト１１１の中継処理を細かく記述することはしないが、この中継処理によってカードアプリサーバ４は秘密情報格納装置２にステップに応じたコマンドを送付し、そのレスポンスを取得することができる。また、カードアプリサーバ４が生成するコマンドが複数個まとめられるものであれば、制御ソフト１１１は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置２に送付しても構わない。秘密情報格納装置２から得られる結果も複数個をまとめてカードアプリサーバ４に返送することが考えられる。このとき、コマンドを秘密情報格納装置２に順次送付する過程で秘密情報格納装置２からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果をカードアプリサーバ４に通知しても良い。
【００８０】
Ｓ１０６による中継処理により、カードアプリサーバ４は、管理ソフト２１０と、管理ソフト鍵２１０１で相互認証を行う（Ｓ１０７、Ｓ１０８）。相互認証が成功したら管理ソフト鍵２１０１に基づいて暗号通信路を構築する。このときの暗号鍵は管理ソフト鍵２１０１から派生させた鍵を用いてもよい。続いてカードアプリサーバ４は暗号通信路を通じサービスアプリ管理ソフト２１１の作成を指示するコマンドを管理ソフト２１０に送付する（Ｓ１０９）。これを受けた管理ソフト２１０は暗号通信路格納領域２１１３を含むサービスアプリ管理ソフト２１１を記憶部２１に作成する（Ｓ１１０）。当該処理はサービスアプリ管理ソフト２１１のプログラムを記憶部２１にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部２１に格納しておき、Ｓ１１０でプログラムを有効化する処理でも構わない。
【００８１】
続いてカードアプリサーバ４は暗号通信仮鍵２１１６の設定を指示するコマンドを管理ソフト２１０に送付する（Ｓ１１１）。暗号通信仮鍵２１１６は、例えば、コマンドの内容に含んでもよいし、予め同じ値の暗号通信仮鍵２１１６を共有していてもよい。コマンドを受けた管理ソフト２１０は、暗号通信仮鍵２１１６を暗号通信鍵格納領域２１１３に設定する（Ｓ１１２）。
【００８２】
続いてカードアプリサーバ４はサービスアプリ２１１１のインストールを指示するコマンドを管理ソフト２１０に送付する（Ｓ１１３）。コマンドを受けた管理ソフト２１０は、アプリ鍵管理領域２１１２を含むサービスアプリ２１１１を記憶部２１にインストールする（Ｓ１１４）。当該処理はサービスアプリ２１１１のプログラムを記憶部２１にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部２１に格納しておき、Ｓ１１４でプログラムを有効化する処理でも構わない。
【００８３】
続いてカードアプリサーバ４は暗号通信仮鍵２１１６をサービスサーバ３に通知する（Ｓ１１５）。カードアプリサーバ４とサービスサーバ３の間の通信はＳＳＬなどでセキュアに行うことが望ましい。Ｓ１１５は必ずしもＳ１１３やＳ１１４の後に実行されるとは限らず、前もって実施していても構わない。また、暗号通信仮鍵２１１６がサービスサーバ３から予め与えられた値だった場合はＳ１１５で暗号通信仮鍵２１１６を通知する必要はないが、インストールが完了したことは通知することが望ましい。
【００８４】
図６では、図５のフローに続き、鍵配送システムによる鍵配送を行うための鍵ペアの秘密情報格納装置２内部での生成と、生成した公開鍵のサービスサーバ３への通知を行う。
【００８５】
サービスサーバ３はＳ１０５で受けたユーザ情報を適当なタイミングで鍵配送サーバ５に送付する（Ｓ２０１）。Ｓ１１５の通知を受けたことをきっかけとしてもよいしそれより前でも構わない。サービスサーバ３と鍵配送サーバ５の通信はＳＳＬなどでセキュアに行うことが望ましい。Ｓ２０１などのフローで示しているユーザ情報のサーバ間での共有の仕方は一例である。サーバごとにユーザ認証してもよいし、どこか一箇所のサーバでユーザ認証した情報を信頼できる方法で共有してもよい。
【００８６】
続いて制御ソフト１１１は端末ＩＤ１１１４を鍵配送サーバ５に通知することで鍵配送等の処理の開始を鍵配送サーバ５に知らせる（Ｓ２０２）。制御ソフト１１１はＳ１０６と同様に、秘密情報格納装置２と鍵配送サーバ５の中継を行う処理に入る（Ｓ２０３）。中継処理は、鍵配送サーバ５が生成したコマンドをネットワーク通信部１７から取得し、そのコマンドを通信部１４から秘密情報格納装置２に送付し、その結果として秘密情報格納装置２から得たレスポンスを、ネットワーク通信部１７を介して鍵配送サーバ５に通知する、という処理である。以降のステップで制御ソフト１１１の中継処理を細かく記述することはしないが、この中継処理によって鍵配送サーバ５は秘密情報格納装置２にステップに応じたコマンドを送付しそのレスポンスを取得することができる。また、鍵配送サーバ５が生成するコマンドが複数個まとめられるものであれば、制御ソフト１１１は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置２に送付しても構わない。秘密情報格納装置２から得られる結果も複数個をまとめて鍵配送サーバ５に返送することが考えられる。このとき、コマンドを秘密情報格納装置２に順次送付する過程で秘密情報格納装置２からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果を鍵配送サーバ５に通知しても良い。
【００８７】
鍵配送サーバ５は、鍵配送アプリ２１２と、鍵配送マスター鍵２１２１で相互認証を行う（Ｓ２０４、Ｓ２０５）。相互認証が成功したら鍵配送マスター鍵２１２１に基づいて暗号通信路を構築してもよい。このときの暗号鍵は鍵配送マスター鍵２１２１から派生させた鍵を用いてもよい。
【００８８】
続いて鍵配送サーバ５は、鍵配送のための鍵ペアを秘密情報格納装置２の内部で生成するように指示するコマンドを鍵配送アプリ２１２に送付する（Ｓ２０６）。コマンドを受けた鍵配送アプリ２１２は、暗号処理部２５により、鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８の鍵ペアを生成し、鍵配送公開鍵２１２７を鍵配送公開鍵格納領域２１２５に格納し、鍵配送秘密鍵２１２８を鍵配送秘密鍵格納領域２１２６に格納する（Ｓ２０７）。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
【００８９】
続いて鍵配送サーバ５は、鍵配送公開鍵２１２７を読み出すためのコマンドを鍵配送アプリ２１２に送付し（Ｓ２０８）、それに応じて鍵配送アプリ２１２は鍵配送公開鍵２１２７を送出する（Ｓ２０９）。
【００９０】
鍵配送公開鍵２１２７を受け取った鍵配送サーバ５は、必要に応じて所定の方法で公開鍵証明書を付与する（Ｓ２１０）。鍵配送公開鍵２１２７に付与する公開鍵証明書は、サービサーバ３が信頼している秘密鍵で署名するなど、公開鍵証明書をサービスサーバ３が検証することで鍵配送公開鍵２１２７を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて鍵配送アプリ２１２に送付し、秘密情報格納装置２の内部に格納しておいてもよい。
【００９１】
続いて、鍵配送サーバ５は、鍵配送公開鍵２１２７と公開鍵証明書をサービスサーバ３に通知する（Ｓ２１１）。
【００９２】
図７では、図６のフローに続き、サービスサーバ３が持つ鍵を公開鍵で暗号化し、秘密情報格納装置２に送付する。
【００９３】
サービスサーバ３は鍵配送公開鍵２１２７の公開鍵証明書を検証する（Ｓ３０１）。鍵配送公開鍵２１２７が信頼できるものであれば、鍵配送公開鍵２１２７で、暗号通信鍵２１１５と、暗号通信仮鍵２１１６と、アプリ鍵２１１４を、暗号化する（Ｓ３０２）。続いて暗号化された鍵らを鍵配送サーバ５に送付する（Ｓ３０３）。
【００９４】
制御ソフト１１１はＳ２０３と同様に、秘密情報格納装置２と鍵配送サーバ５の中継を行う（Ｓ３０４）。Ｓ２０３とＳ３０４は続きの処理であっても構わない。制御ソフト１１１は、続くＳ３０５にかかるコマンドを取得するために鍵配送サーバ５をポーリングするか、あるいは、鍵配送サーバ５からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
【００９５】
続いて、鍵配送サーバ５は、暗号化された鍵らを鍵配送アプリ２１２に送付するコマンドを生成し、鍵配送アプリ２１２に送ると共に復号化を指示する（Ｓ３０５）。コマンドを受け取った鍵配送アプリ２１２は、暗号化された鍵らを鍵配送秘密鍵２１２８で復号化し、暗号通信鍵２１１５を暗号通信鍵格納領域２１２３に格納し、暗号通信仮鍵２１１６を暗号通信仮鍵格納領域２１２４に格納し、アプリ鍵２１１４をアプリ鍵格納領域２１２２に格納する（Ｓ３０６）。
【００９６】
鍵配送公開鍵２１２７で暗号化された鍵らは、鍵配送公開鍵２１２７の対となる鍵配送秘密鍵２１２８でのみ復号化できる。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８は、Ｓ２０７において秘密情報格納装置２の内部で生成されたものであり、特に、鍵配送秘密鍵２１２８は秘密情報格納装置２の外部には一切存在しない。したがって、鍵配送公開鍵２１２７で暗号化された鍵らは、通信路に存在する鍵配送サーバ５や制御ソフト１１１を含め、秘密鍵情報格納装置２を除いては一切復号化することができない。
【００９７】
図８では、図７のフローに続き、鍵配送アプリ２１２に一時保存したサービス提供者の鍵らをサービスアプリ管理ソフト２１１とサービスアプリ２１１１に安全に設定する。
【００９８】
制御ソフト１１１は、Ｓ３０４等でサーバと秘密情報格納装置２を中継したのと同じように、鍵配送ソフト２１２とサービスアプリ管理ソフト２１１及びサービスアプリ２１１１との間のコマンド・レスポンスを中継する。鍵配送アプリ２１２にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト２１１やサービスアプリ２１１１に転送する処理を順次行っていく（Ｓ４０１、Ｓ４０４、Ｓ４０７、Ｓ４１０）。このとき制御ソフト１１１は鍵配送アプリ２１２が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ２１２がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。コマンドの回数が予め決まっているならば制御ソフト１１１の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ２１２からのレスポンスの一部に、コマンドの送付が完了したか否かという情報を含めてもよい。
【００９９】
以降のステップにおいて制御ソフト１１１による中継処理について細かく述べることはしないが、いずれのステップにおいても、鍵配送アプリ２１２は、制御ソフト１１１の要求に応じる形で、送付したいコマンドを通信部２４を通じて制御ソフト１１１に返答し、制御ソフト１１１は、通信部１４から受け取ったコマンドを、再度、通信部１４を通じて秘密情報格納装置２に送出し、さらに、送出されたコマンドは通信部２４を介して、サービスアプリ管理ソフト２１１やサービスアプリ２１１１が受け取る。サービスアプリ管理ソフト２１１やサービスアプリ２１１からのレスポンスは逆の経路をたどって鍵配送アプリ２１２に届けられる。上記の処理を実現するにあたり、秘密情報格納装置２は、通信部２４を通じて、制御ソフト１１１と論理的に複数の通信チャネルを同時に確立する機能を有する必要がある。この機能としては、例えばＪａｖａＣａｒｄ仕様に則った論理チャネルの仕組みが適用できる。
【０１００】
鍵配送アプリ２１２と、サービスアプリ管理ソフト２１１は、まず、それぞれが別々に参照する暗号通信仮鍵２１１６で相互認証し、暗号通信路を確立する（Ｓ４０２、Ｓ４０３）。このとき鍵配送アプリ２１２は暗号通信仮鍵格領域２１２４に格納された暗号通信仮鍵２１１６を参照し、サービスアプリ管理ソフト２１１は暗号通信鍵格納領域２１１３に格納された暗号通信仮鍵２１１６を参照する。相互認証が成功したら、鍵配送アプリ２１２は、暗号通信鍵２１１５を送付するコマンドを生成し、サービスアプリ管理ソフト２１１に送付する（Ｓ４０５）。コマンドを受けたサービスアプリ管理ソフト２１１は、受け取った暗号通信鍵２１１５を暗号通信鍵格納領域２１１３に格納する（Ｓ４０６）。このとき、もともと暗号通信鍵格納領域２１１３に格納されていた暗号通信仮鍵２１１６は破棄してしまって構わない。
【０１０１】
続いて、鍵配送アプリ２１２と、サービスアプリ２１１１は、それぞれが別々に参照する暗号通信鍵２１１５で相互認証し、暗号通信路を確立する（Ｓ４０８、Ｓ４０９）。このとき鍵配送アプリ２１２は暗号通信鍵格領域２１２３に格納された暗号通信鍵２１１５を参照し、サービスアプリ管理ソフト２１１は暗号通信鍵格納領域２１１３に格納された暗号通信鍵２１１５を参照する。相互認証が成功したら、鍵配送アプリ２１２は、アプリ鍵２１１４を送付するコマンドを生成し、サービスアプリ２１１１に送付する（Ｓ４１１）。コマンドを受けたサービスアプリ２１１１は、受け取ったアプリ鍵２１１４をアプリ鍵格納領域２１１２に格納する（Ｓ４１２）。
【０１０２】
必要な鍵を設定する処理が正しく完了したら、制御ソフト１１１は鍵配送アプリ２１２に、一時的に保持した鍵を消去する指示を出す（Ｓ４１３）。コマンドを受けた鍵配送アプリ２１２は、暗号通信鍵格納領域２１２３と、暗号通信仮鍵格納領域２１２４と、アプリ鍵格納領域２１２２に格納された鍵を消去する（Ｓ４１４）。あるいはＳ４１３の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ２１２が自主的にこれらを消去してもよい。
【０１０３】
なお、一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ２１２が一時保持した鍵を消去することが望ましい。制御ソフト１１１としてエラーを検知した場合、Ｓ４１３を実行する。鍵配送アプリ２１２としてエラーを検知した場合は自主的にＳ４１４を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末１とサーバの通信失敗、もしくは情報端末１と秘密情報格納装置２の通信失敗などが考えられる。また秘密情報格納装置２の電源供給部２３が情報端末１から電源を得ていた場合、情報端末１から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。また、情報端末１の電源が空になった場合(または、空になりそうな場合)に鍵情報を消去しても良い。鍵情報の消去処理により、第三者に鍵情報が漏れるリスクをさらに低減することができる。
【０１０４】
Ｓ４１４までが正しく完了した場合、制御ソフト１１１は鍵配送サーバ５に完了通知を送付する（Ｓ４１５）。完了通知を受け取った鍵配送サーバ５は、その旨をサービスサーバ３に通知する（Ｓ４１６）。そうすることで、サービスサーバ３は当該ユーザがサービスを享受できる状態になったことを知ることができる。
【０１０５】
なお、フローに記してはいないが、情報端末１または秘密情報格納装置２の処理において何らかのエラーが発生した場合は、その旨を、コマンド生成の主体となっているサーバにその都度通知することが望ましい。
【０１０６】
またフローに明示してはいないが、制御ソフト１１１は、必要に応じて、そのとき行っている処理を表示部１５によって適宜ユーザに通知しても構わない。特にＳ４１５が完了した場合はその旨を表示部１５によってユーザに通知するのが望ましい。このように処理することにより、ユーザは一連の処理が完了し、サービスを享受できる状態になったことを知ることができる。
【０１０７】
またフローでは各ステップ間の情報のやり取りを双方向矢印で示しているが、実際には、コマンドに対するレスポンスのペアを成している。また、各ステップ間の情報のやり取りを一つの双方向矢印で示している場合であっても、その中に複数のコマンド・レスポンスを含んでいても何ら問題ない。
【０１０８】
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
【０１０９】
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
【０１１０】
また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
【０１１１】
さらに、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
【実施例２】
【０１１２】
実施例２では、実施例１で説明した鍵配送サーバ５の役割を、カードアプリサーバ４が兼ねる場合の例を説明する。実施例２において、実施例１の構成等と重複する構成等については、その説明を省略する。
【０１１３】
図９は、本実施例に係る鍵配送システムの一例を示す図である。本実施例に係る鍵配送システムは、情報端末１と、サービスサーバ３と、カードアプリサーバ４とが、通信により相互に接続している。さらに、情報端末１は、秘密情報格納装置２と通信により相互に接続されている。それぞれは図９で示していない経路によって接続されていても構わない。
【０１１４】
カードアプリサーバ４は、ネットワーク等を通じて他のサーバや情報端末１と通信を行うサーバである。カードアプリサーバ４は実施例１におけるその役割に加え、実施例１における鍵配送サーバ５の役割も兼ねる。カードアプリサーバ４は秘密情報格納装置２で動作するアプリケーションを保持する。カードアプリサーバ４は秘密情報格納装置２を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置２に対し管理者権限で認証を行うことで、秘密情報格納装置２に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ４は、例えばモバイルネットワークオペレータや、ＴＳＭと呼ばれる第三者組織などが運用することが考えられる。カードアプリサーバ４は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置２を所持するユーザの情報などを保持し、情報端末１等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有している。
【０１１５】
さらに、カードアプリサーバ４は、秘密情報格納装置２で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置２に配送するための構成を有する。カードアプリサーバ４は、後述する鍵配送の機能を兼ねた管理ソフト２１０を介して、サービスサーバ３で管理する秘密鍵等をアプリケーション等に配送する。カードアプリサーバ４は、先述の機能に加えて、公開鍵暗号を用いたＰＫＩを実行するためのシステム等が動作していることが考えられる。
【０１１６】
図１０は、情報端末１および秘密情報格装置２の機能構成の一例を示す図である。上記の通り、実施例１の構成等と重複する構成等については、その説明を省略する。
【０１１７】
情報端末１が備える記憶部１１は、制御ソフト１１１を有し、制御ソフト１１１は、例えばサービスサーバ情報１１１１と、カードアプリサーバ情報１１１２と、端末ＩＤ１１１４を有する。実施例１では鍵配送サーバ情報１１１３を有していたが、本実施例では鍵配送の役割をカードアプリサーバ４が兼ねるため、記載を省いている。
【０１１８】
秘密情報格納装置２が備える記憶部２１は、例えば管理ソフト２１０と、サービスアプリ管理ソフト２１１とを備える。実施例１では鍵配送アプリ２１２を有していたが、本実施例では鍵配送アプリ２１２の役割を管理ソフト２１０が兼ねるため、記載を省いている。なお、後述する図１３からのフローでは、サービスアプリ管理ソフト２１１はまだ記憶部２１に存在しない状態から開始する。
【０１１９】
管理ソフト２１０は、秘密情報格納装置２を管理者権限で操作することができるソフトウェアであり、制御部２２によって実行される。さらに、本実施例では、管理ソフト２１０は、サービスアプリ２１１１もしくはサービスアプリ管理ソフト２１１が使用する秘密鍵等をカードアプリサーバ４から安全に受け取る役割も兼ねる。
【０１２０】
管理ソフト２１０は、通信部２４から受けとった要求に受け答える形で動作する。管理ソフト２１０は、管理ソフト鍵２１０１と、鍵配送公開鍵格納領域２１２５と、鍵配送秘密鍵格納領域２１２６とを有する。図１０では便宜的に管理ソフト２１０の内部にこれらを有するように記載しているが、物理的には、これらは記憶部２１のある領域に書き込まれたデータまたは領域そのものであり、それを管理ソフト２１０が参照できるようになっていると考えられる。ただし管理ソフト２１０以外は管理ソフト鍵２１０１と鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６とを参照することはできない。管理ソフト鍵２１０１は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。
【０１２１】
通信部２４から受けた認証要求により、管理ソフト鍵２１０１による認証が成功した場合、管理ソフト２１０は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト２１０は、サービスアプリ管理ソフト２１１の新規作成、サービスアプリ管理ソフト２１１への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。さらに、管理ソフト２１０は、カードアプリサーバ４から公開鍵暗号により受け取った秘密鍵を、後述するフローでサービスアプリ２１１１もしくはサービスアプリ管理ソフト２１１に設定する。あるいは、実施例１と同様に、管理ソフト２１０は一時保持した秘密鍵等をサービスアプリ管理ソフト２１１やサービスアプリ２１１１に安全に設定するための要求を生成するロジックを備えていてもよい。管理ソフト２１０としては、例えばＪａｖａＣａｒｄ仕様に則ったＩＳＤやＡＭＳＤ、あるいはＳＳＤなどが考えられる。管理ソフト２１０としては、例えばＪａｖａＣａｒｄ仕様に則ったＩＳＤやＡＭＳＤやＳＳＤなどが考えられる。
【０１２２】
鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域２１２５に、秘密鍵を鍵配送秘密鍵格納領域２１２６に格納する。鍵配送公開鍵格納領域２１２５や鍵配送秘密鍵格納領域２１２６には、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から管理ソフト２１０に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置２の内部で生成され、特に、鍵配送秘密鍵格納領域２１２６に格納される秘密鍵は秘密情報格納装置２の外部に出力する手段が存在しないものである。したがって、管理ソフト２１０は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部２５を用いて鍵ペアの生成を行う。
【０１２３】
図１１は、秘密情報格納装置２の記憶部２１が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。上記の通り、実施例１の構成等と重複する構成等については、その説明を省略する。
【０１２４】
鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８をそれぞれ格納する。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８は、所定の手段で付与される証明書等が合わさっていてもよい。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８は、外部から管理ソフト２１０に安全にアプリ鍵２１１４や暗号通信路鍵２１１５等を配送するために使用される。鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８のペアは、秘密情報格納装置２の内部で生成され、特に、鍵配送秘密鍵２１２８は秘密情報格納装置２の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域２１２５と鍵配送秘密鍵格納領域２１２６はＥＥＰＲＯＭやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
【０１２５】
図１２はサーバが保持する鍵の一例を示す図である。図１２ではサービスサーバ３およびカードアプリサーバ４の最小限の構成と、それぞれが保持する鍵を示している。上記の通り、実施例１の構成等と重複する構成等については、その説明を省略する。
【０１２６】
カードアプリサーバ４は、記憶部４１に管理ソフト鍵２１０１を有する。管理ソフト鍵２１０１は所定の方法によってカードアプリサーバ４で生成されてもよい。また、図１２に示してはいないが、データベース等でユーザを特定する情報や秘密情報格納装置２を特定する情報と紐付けられていてもよい。
【０１２７】
図１３から図１５は本実施例に係る鍵配送システムの処理の一例を示した図である。図１３から図１５は分割して記述しているが一続きのフローである。なお、図１３から図１５のフローは、一例として、秘密情報格納装置２の記憶部２１に管理ソフト２１０と管理ソフト鍵２１０１が格納され、管理ソフト２１０の鍵配送公開鍵格納領域２１２５と管理ソフト２１０の鍵配送公開鍵格納領域２１２６には、鍵配送時に使用する公開鍵ペアが入っていない状態から開始するものとする。また、サービスアプリ管理ソフト２１１及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば管理ソフト２１０に鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト２１１やサービスアプリ２１１１が予め存在するが、アプリ鍵２１１４や暗号通信鍵２１１５が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
【０１２８】
図１３では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト２１１の作成とサービスアプリ２１１１のインストールを行う。上記の通り、実施例１の構成等と重複する構成等については、その説明を省略する。
【０１２９】
サービスサーバ３等はユーザがサービスを使用する意思を制御ソフト１１１を通じて表明することで、サービスアプリ管理ソフト２１１の作成処理等を開始し、Ｓ５０１〜Ｓ５１０の処理を行う。続いて、カードアプリサーバ４はサービスアプリ２１１１のインストールを指示するコマンドを管理ソフト２１０に送付し（Ｓ５１１）、コマンドを受けた管理ソフト２１０は、アプリ鍵管理領域２１１２を含むサービスアプリ２１１１を記憶部２１にインストールする（Ｓ５１２）。
【０１３０】
図１４では、図１３のフローに続き、鍵配送を行うための鍵ペアの秘密情報格納装置２内部での生成と、生成した公開鍵のサービスサーバ３への通知を行う。
【０１３１】
制御ソフト１１１は秘密情報格納装置２とカードアプリサーバ４の中継を行う処理に入る（Ｓ６０１）。カードアプリサーバ４は、鍵配送のための鍵ペアを秘密情報格納装置２の内部で生成するように指示するコマンドを管理ソフト２１０に送付する（Ｓ６０２）。コマンドを受けた管理ソフト２１０は、暗号処理部２５により、鍵配送公開鍵２１２７と鍵配送秘密鍵２１２８の鍵ペアを生成し、鍵配送公開鍵２１２７を鍵配送公開鍵格納領域２１２５に格納し、鍵配送秘密鍵２１２８を鍵配送秘密鍵格納領域２１２６に格納する（Ｓ６０３）。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
【０１３２】
続いてカードアプリサーバ４は、鍵配送公開鍵２１２７を読み出すためのコマンドを管理ソフト２１０に送付し（Ｓ６０４）、それに応じて管理ソフト２１０は鍵配送公開鍵２１２７を送出する（Ｓ６０５）。
【０１３３】
鍵配送公開鍵２１２７を受け取ったカードアプリサーバ４は、必要に応じて所定の方法で公開鍵証明書を付与する（Ｓ６０６）。鍵配送公開鍵２１２７に付与する公開鍵証明書をサービサーバ３が信頼している秘密鍵で署名するなどして、公開鍵証明書をサービスサーバ３が検証することで鍵配送公開鍵２１２７を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて管理ソフト２１０に送付してもよいし、秘密情報格納装置２の内部に格納しておいてもよい。
【０１３４】
続いて、カードアプリサーバ４は、鍵配送公開鍵２１２７と公開鍵証明書をサービスサーバ３に通知する（Ｓ６０７）。
【０１３５】
図１５では、図１４のフローに続き、サービスサーバ３が持つ鍵を公開鍵で暗号化し、秘密情報格納装置２に送付する。
【０１３６】
サービスサーバ３は鍵配送公開鍵２１２７の公開鍵証明書を検証する（Ｓ７０１）。鍵配送公開鍵２１２７が信頼できるものであれば、鍵配送公開鍵２１２７で、暗号通信鍵２１１５と、アプリ鍵２１１４を暗号化する（Ｓ７０２）。続いて暗号化された鍵らをカードアプリサーバ４に送付する（Ｓ７０３）。
【０１３７】
制御ソフト１１１は秘密情報格納装置２とカードアプリサーバ４の中継を行う（Ｓ７０４）。Ｓ６０１とＳ７０４は続きの処理であっても構わない。制御ソフト１１１は、続くＳ７０５にかかるコマンドを取得するためにカードアプリサーバ４をポーリングする、あるいは、カードアプリサーバ４からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
【０１３８】
続いて、カードアプリサーバ４は、暗号化された鍵らを管理ソフト２１０に送付するコマンドを生成し、管理ソフト２１０に送ると共に復号化を指示する（Ｓ７０５）。コマンドを受け取った管理ソフト２１０は、暗号化された鍵らを鍵配送秘密鍵２１２８で復号化し、暗号通信鍵２１１５をサービスアプリ管理ソフト２１１の暗号通信鍵格納領域２１１３に格納し、アプリ鍵２１１４をサービスアプリ２１１１のアプリ鍵格納領域２１１２に格納する（Ｓ７０６）。
【０１３９】
Ｓ７０６までが正しく完了した場合、制御ソフト１１１はカードアプリサーバ４に完了通知を送付する（Ｓ７０７）。完了通知を受け取ったカードアプリサーバ４は、その旨をサービスサーバ３に通知する（Ｓ７０８）。そうすることで、サービスサーバ３は当該ユーザがサービスを享受できる状態になったことを知ることができる。
【０１４０】
なお、実施例２では管理ソフト２１０が秘密鍵を直接サービスアプリ管理ソフト２１１及びサービスアプリ２１１１に設定する例を記載したが、実施例１のように暗号通信仮鍵等を用いて制御ソフト１１１経由で鍵を設定する方法を取っても構わない。このように処理することにより、情報端末を介してアプリ鍵が外部に漏洩する可能性をより低減することができる。
【０１４１】
その他、実施例２の内容は実施例１を初めとするその他の実施例に記載する内容と適宜組み合わせてもよい。
【０１４２】
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
【０１４３】
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
【０１４４】
また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
【０１４５】
さらに、鍵配送サーバの役割をカードアプリサーバが兼ねるため、より簡単な構成で高いセキュリティの質を確保することができる。
【実施例３】
【０１４６】
実施例３では、実施例１で説明した鍵配送システムをより一般化し、鍵配送のためのアルゴリズム等のロジックを、秘密鍵と合わせて鍵配送サーバ５が鍵配送アプリ２１２に送付する場合の例を説明する。実施例３において、実施例１および実施例２の構成等と重複する構成等については、その説明を省略する。
【０１４７】
実施例３の鍵配送システムは、実施例１と同様に、情報端末１と、サービスサーバ３と、カードアプリサーバ４と、鍵配送サーバ５とが、通信により相互に接続している。さらに、情報端末１は、秘密情報格納装置２と通信により相互に接続されている。
【０１４８】
図１６は、秘密情報格装置２の機能構成の一例を示す図である。上記の通り、実施例１および実施例２の構成等と重複する構成等については、その説明を省略する。
【０１４９】
実施例３の秘密情報格納装置２が備える記憶部２１は、図２で説明した要素に加え、鍵配送アプリ２１２に鍵配送ロジック格納領域２１３０を有する。鍵配送ロジック格納領域２１３０は、後述する図１７および図１８のフローで鍵配送アプリ２１２がカードアプリ管理ソフト２１１やカードアプリ２１１１に秘密鍵を設定する際に必要なコマンド等を作成するためのアルゴリズムを格納するための領域である。鍵配送ロジック格納領域２１３０は、図１６では便宜的に鍵配送アプリ２１２の内部にこれを備えるように記載しているが、物理的には記憶部２１のある領域であり、鍵配送アプリ２１２のみがこれを参照できるものとする。鍵配送ロジック格納領域２１３０に配送されるアルゴリズムは、例えばコマンド列や分岐処理に対し所定の符号化を施したものであっても構わないし、スクリプト言語のような形態を取っていても構わない。鍵配送ロジック格納領域２１３０は、後述する一連の処理フローでエラーが発生した場合や、電源供給部２３による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばＲＡＭに配置するのが望ましい。
【０１５０】
図１７と図１８は、本実施例に係る鍵配送システムの処理の一例を示した図である。図１７と図１８は分割して記述しているが一続きのフローであり、さらに、図１７は、図６の次に続くフローである。図１７では、図６のフローに続き、サービスサーバ３が持つ鍵を公開鍵で暗号化し、秘密情報格納装置２に送付する。さらに、鍵配送サーバ５は、これらの鍵を配送するためのロジックを合わせて配送する。
【０１５１】
Ｓ８０１〜Ｓ８０６については、図７のＳ３０１〜Ｓ３０６と同様であるため、説明を省略する。
【０１５２】
Ｓ８０６において鍵配送アプリ２１２が、受け取った秘密鍵らを復号化して所定の領域に格納した後、鍵配送サーバ５は、鍵配送のロジックを鍵配送アプリ２１２に通知する（Ｓ８０７）。通知を受けた鍵配送アプリ２１２は、受け取ったロジックを鍵配送ロジック格納領域２１３０に格納する（Ｓ８０８）。
【０１５３】
図１８では、図１７のフローに続き、鍵配送アプリ２１２に一時保存したサービス提供者の鍵らを、鍵配送ロジック格納領域２１３０に格納されたロジックに基づいて、サービスアプリ管理ソフト２１１とサービスアプリ２１１１に安全に設定する。
【０１５４】
制御ソフト１１１は、実施例１等でサーバと秘密情報格納装置２を中継したのと同じように、鍵配送アプリ２１２とサービスアプリ管理ソフト２１１及びサービスアプリ２１１１との間のコマンド・レスポンスを中継する。鍵配送アプリ２１２にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト２１１やサービスアプリ２１１１に転送する処理を順次行っていく（Ｓ９０１、Ｓ９０４）。このとき制御ソフト１１１は鍵配送アプリ２１２が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ２１２がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。鍵配送ロジック格納領域２１３０に格納されるロジックのコマンドの回数が予め決まっているならば制御ソフト１１１の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ２１２からのレスポンスの一部に、鍵配送ロジック格納領域２１３０に格納されるロジックのコマンドの送付が完了したか否かという情報を含めてもよい。
【０１５５】
鍵配送アプリ２１２は、鍵配送ロジック格納領域２１３０に格納されるロジックに基づき、暗号通信鍵２１１５を送付するコマンドを生成し、サービスアプリ管理ソフト２１１に送付する（Ｓ９０２）。コマンドを受けたサービスアプリ管理ソフト２１１は、受け取った暗号通信鍵２１１５を暗号通信鍵格納領域２１１３に格納する（Ｓ９０３）。このときにやりとりするコマンドは複数であって構わない。
【０１５６】
続いて、鍵配送アプリ２１２は、鍵配送ロジック格納領域２１３０に格納されるロジックに基づき、アプリ鍵２１１４を送付するコマンドを生成し、サービスアプリ２１１１に送付する（Ｓ９０５）。コマンドを受けたサービスアプリ２１１１は、受け取ったアプリ鍵２１１４をアプリ鍵格納領域２１１２に格納する（Ｓ９０６）。このときにやりとりするコマンドは複数であって構わない。
【０１５７】
必要な鍵を設定する処理が正しく完了したら、制御ソフト１１１は鍵配送アプリ２１２に、一時的に保持した鍵を消去する指示を出す（Ｓ９０７）。コマンドを受けた鍵配送アプリ２１２は、暗号通信鍵格納領域２１２３と、暗号通信仮鍵格納領域２１２４と、アプリ鍵格納領域２１２２とに格納された鍵と、鍵配送ロジック２１３０に格納されたロジックを消去する（Ｓ９０８）。あるいはＳ９０７の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ２１２が自主的にこれらを消去してもよい。
【０１５８】
一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ２１２が一時保持した鍵およびロジックを消去することが望ましい。制御ソフト１１１としてエラーを検知した場合、Ｓ９０７を実行する。鍵配送アプリ２１２としてエラーを検知した場合は自主的にＳ９０８を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末１とサーバの通信失敗、もしくは情報端末１と秘密情報格納装置２の通信失敗などが考えられる。また秘密情報格納装置２の電源供給部２３が情報端末１から電源を得ていた場合、情報端末１から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。
【０１５９】
Ｓ９０８までが完了した場合、制御ソフト１１１及び鍵配送サーバ５はＳ９０９およびＳ９１０の処理を実行する。
【０１６０】
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
【０１６１】
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
【０１６２】
また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
【０１６３】
また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
【０１６４】
さらに、鍵配送ロジックを用いることにより、サービスアプリ等への鍵配送の詳細な方法を鍵配送アプリが予め知らなくとも、鍵配送を行う際にその方法も合わせて配送することができ、より柔軟な鍵配送システムを提供することができる。
【０１６５】
なお、本発明は上記した各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施例は本発明を分かりやすく説明するために詳細に説明されたものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１６６】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等、または、ＩＣカード、ＳＤカード、ＤＶＤ等に置くことができる。なお、図１９に示すように、各機能を実現するプログラム等をサーバ等に複製し、情報端末１、およびその他の端末、装置、機器、媒体等に有線または無線の通信回線等を介して提供するようにしても良い。この場合、ユーザは、端末等を操作して、サーバ等から必要なプログラム等をダウンロードし、端末や媒体等の記憶部にインストールさせることができる。
【０１６７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１６８】
また、実施例１から実施例３においては、秘密情報格納装置２が情報端末１に接続されて各実施例に記載した処理を行う例を主に説明したが、秘密情報格納装置２の機能、構成等が情報端末１に組み込まれ、情報端末１が秘密情報格納装置２の役割を兼ねても良い。
【符号の説明】
【０１６９】
１        情報端末
２        秘密情報格納装置
３        サービスサーバ
４        カードアプリサーバ
５        鍵配送サーバ
【図１】
2014045465.tif 000003
【図２】
2014045465.tif 000004
【図３】
2014045465.tif 000005
【図４】
2014045465.tif 000006
【図５】
2014045465.tif 000007
【図６】
2014045465.tif 000008
【図７】
2014045465.tif 000009
【図８】
2014045465.tif 000010
【図９】
2014045465.tif 000011
【図１０】
2014045465.tif 000012
【図１１】
2014045465.tif 000013
【図１２】
2014045465.tif 000014
【図１３】
2014045465.tif 000015
【図１４】
2014045465.tif 000016
【図１５】
2014045465.tif 000017
【図１６】
2014045465.tif 000018
【図１７】
2014045465.tif 000019
【図１８】
2014045465.tif 000020
【図１９】
2014045465.tif 000021