本実施例では、情報端末を介して、秘密情報格納装置(記録媒体)2に、サーバから安全に鍵を配送するために必要な処理の具体的な例について説明する。
図1は、鍵配送システムの一例を示す図である。本発明に係る鍵配送システムは、情報端末1と、サービスサーバ3と、カードアプリサーバ4と、鍵配送サーバ5とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。図1の各サーバと情報端末1と秘密情報格納装置2とは、図1で示していない経路によって接続されていても構わない。なお、以下の説明では、サービスサーバ3、カードアプリサーバ4および鍵配送サーバ5等について、それぞれを特に区別せず総括して呼称する場合は単にサーバと呼称することがある。
情報端末1は、情報を表示可能な表示部、情報を入力可能な入力部、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部等を有した端末であり、秘密情報格納装置2とサーバとの情報のやりとりを仲介する役割を担う。鍵配送システムには複数の情報端末1が含まれていても良い。情報端末1としてはスマートフォンやタブレット端末、パーソナルコンピュータやシンクライアント端末などが考えられるが、これに限るものではない。
秘密情報格納装置2は、例えば耐タンパ機構等を備えたセキュアな半導体素子を含み、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部、高速暗号処理が可能な暗号演算部等を有し、情報端末1を介してサーバやその他の端末と情報のやりとりを行う。秘密情報格納装置2としてはSIMカード型のICカードや、microSD型のICカード、組込みチップ型のICカード、非接触型および接触型のICカードなどが考えられるが、これに限るものではない。鍵配送システムには複数の秘密情報格納装置2が含まれていても良いし、また、一つの情報端末1が複数の秘密情報格納装置2と通信してもかまわない。
サービスサーバ3は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。サービスサーバ3は例えば電子決済などのサービスを提供する事業者が運営するサーバであり、秘密情報格納装置2に格納した秘密鍵等の所定の秘密情報を、サービスサーバ3で認証することで、情報端末1及び秘密情報格納装置2を有するユーザにサービスを提供する。したがってサービスサーバ3は秘密情報格納装置2の秘密情報を認証する構成や、ユーザ顧客を管理及び認証する構成、サービスを実行するための構成等を有していることが考えられる。
カードアプリサーバ4は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。カードアプリサーバ4は秘密情報格納装置2で動作するアプリケーションを保持するサーバである。カードアプリサーバ4は秘密情報格納装置2を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置2に対し管理者権限で認証を行うことで、秘密情報格納装置2に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ4は、例えばモバイルネットワークオペレータや、TSM(Trusted Service Manager)と呼ばれる第三者組織などが運用するサーバであることが考えられる。カードアプリサーバ4は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置2を所持するユーザの情報などを保持し、情報端末1等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有していることが考えられる。
鍵配送サーバ5は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。鍵配送サーバ5は秘密情報格納装置2で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置2に配送するためのサーバである。鍵配送サーバ5は秘密情報格納装置2に配置した鍵配送アプリを介して、サービスサーバ3で管理する秘密鍵等をアプリケーション等に配送する。この配送過程で、部外者に秘密鍵を知られてはならないばかりでなく、サービス提供者とユーザにとって第三者であるカードアプリサーバ4や鍵配送サーバ5等の管理者等にもこれを知られないようにする必要がある。鍵配送サーバ5は、鍵配送アプリとセキュアな通信を行うための秘密鍵を管理する構成や、公開鍵暗号を用いたPKI(Public Key Infrastructure)を実行するための構成等を有していることが考えられる。
サーバどうしや、サーバと情報端末1の通信は、例えば、インターネット・プロトコル等を使用する有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)、LTE(Long Term Evolution)、HSPA(High Speed Packet Access)、およびWiMAX(Worldwide Interoperability for Microwave Access)等の通信ネットワークであることが考えられる。
図2は、情報端末1および秘密情報格装置2の機能構成の一例を示す図である。
情報端末1は、記憶部11、制御部12、電源供給部13、通信部14、表示部15、入力部16、およびネットワーク通信部17を備え、これらがバス線などで結線されている。なお、図2では各モジュールが情報端末1の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
記憶部11は、例えば情報端末1に内蔵されるメモリ、または取り外し可能な外部メモリ等であり、各種の情報を記憶する。例えば、制御部12が実行する動作制御用プログラムを記憶する。記憶部11は、制御ソフト111を備え、これについては後述する。
制御部12は、例えばCPU(Central Processiong Unit)、MPU(Micro Processiong Unit)、またはDSP(Digital Signal Processor)等であり、所定の動作制御用プログラムを実行するなどして、情報端末1全体の動作を制御する。
電源供給部13は、例えばバッテリ、ACアダプタ、または充電回路等であり、情報端末1の各部への電源供給や、バッテリへの充電を行う。情報端末1がバッテリ駆動されているか、ACアダプタ駆動されているかといった状態確認や、バッテリの残量確認を行うことも考えられる。また図2に記してはいないが、秘密情報格納装置2の外部電源として電源供給を行う役割を合わせて担ってもよい。
通信部14は、情報端末1が秘密情報格納装置2と通信を行うための構成部であり、例えば接触ICカードの国際標準通信方式であるISO7816、非接触ICカードの国際標準通信方式であるISO14443、FeliCa(登録商標)、NFC(Near Field Communication)、SDカード規格に応じた通信、Bluetooth(登録商標)、USB(Universal Serial Bus)、有線LAN、無線LAN、TransferJET(登録商標)などの通信方式を実現するモジュールである。通信部14は、場合によっては後述するネットワーク通信部17と同一のモジュールであってもよい。また、秘密情報格納装置2が情報端末1の組込みモジュールであった場合、基盤上で結線されたものであっても構わない。通信部14は通信方式や秘密情報格納装置2の個数に応じて情報端末1に複数個存在してもかまわない。
表示部15は、例えば液晶ディスプレイ、有機EL(Electro−Luminescence)ディスプレイ、または電子ペーパー等のパネル、およびドライバ回路等であり、制御部12の制御下にて任意の情報(例えば、文字、静止画、および動画等)を表示する。なお、表示部15は、それぞれ異なる情報を表示可能な複数のパネルを有していても良い。
入力部16は、例えばキーボード、マウス、カーソルキー、およびテンキー等の一または複数を備え、ユーザの操作を受け付け、当該操作に基づいた入力信号を制御部12に入力する。なお、音声認識、画像認識、またはジェスチャ認識等によって入力信号を生成し、制御部12に入力するようにしても良い。なお、タッチパネルのように、表示部15と入力部16とが一体となった構成であっても良い。
ネットワーク通信部17は、情報端末1がサーバと通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、LTE、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールが考えられる。ネットワーク通信部17は通信方式等に応じて情報端末1に複数個存在してもかまわない。
なお、通信部14やネットワーク通信部17といった通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部14やネットワーク通信部17は、それぞれが複数の通信方式に対応するよう構成されても良い。
次に、秘密情報格納装置2は、記憶部21、制御部22、電源供給部23、通信部24、および暗号処理部25を備え、これらがバス線などで結線されている。なお、図2では各モジュールが秘密情報格納装置2の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
記憶部21は、秘密情報格納装置2に内蔵される半導体メモリ等から構成され、各種の情報を記憶する。記憶部21は、例えばEEPROM、RAM、またはフラッシュメモリ等である。記憶部21は、例えば制御部22が実行する動作制御用プログラムを記憶する。記憶部21が備える構成要素については後述する。
制御部22は、CPU、MPU、またはDSP等であり、所定の動作制御用プログラムを実行するなどして、秘密情報格納装置2全体の動作を制御する。
電源供給部23は、外部から電源を取得する電源供給端子もしくはアンテナ、または電源供給回路等であり、秘密情報格納装置2の各部への電源供給を行う。あるいは、バッテリ、ACアダプタ、充電回路等を備えていてもよい。図2に記してはいないが、秘密情報格納装置2は電源供給部23によって情報端末1から電源の供給を受けてもよい。
通信部24は、秘密情報格納装置2が情報端末1と通信を行うための構成部であり、例えば接触ICカードの国際標準通信方式であるISO7816、非接触ICカードの国際標準通信方式であるISO14443、FeliCa、NFC、SDカード規格に応じた通信、Bluetooth、USB、有線LAN、無線LAN、TransferJETなどの通信方式を実現するモジュールである。秘密情報格納装置2が情報端末1の組込みモジュールであった場合、通信部24は情報端末1と基盤上で結線されたものであっても構わない。通信部24は通信方式に応じて秘密情報格納装置2に複数個存在してもかまわない。なお、通信部24の通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部24は複数の通信方式に対応するよう構成されても良い。
暗号処理部25は、例えば剰余乗算コプロセッサや暗号アクセラレータ等であり、RSA暗号や楕円曲線暗号といった公開鍵暗号処理や、AESやDESといった共通鍵暗号処理を、制御部で行うよりも高速に実行するための構成部である。暗号処理部25は処理する暗号等に応じて秘密情報格納装置2に複数個存在してもかまわない。
次に、情報端末1の記憶部11について説明する。情報端末1の記憶部11は、制御ソフト111を有する。制御ソフト111は、ユーザ操作によって一連のフローを開始するきっかけとなるユーザインタフェースを提供したり、サーバや秘密情報格納装置2との通信を行うきっかけを与えたりするソフトウェアであり、制御部12によって実行される。サーバは制御ソフト111の要求によって処理を開始し、処理の結果を制御ソフト111に戻す。また、秘密情報格納装置2は、制御ソフト111の要求によって処理を開始し、処理の結果を制御ソフト111に戻す。このように制御ソフト111はシステム全体の処理のきっかけを作るが、必ずしもアルゴリズムの主体を担うとは限らない。制御ソフト111がコマンドをフェッチするような役割を担い、一連のフローやアルゴリズムの主体はサーバや秘密情報格納装置2にある場合もある。なお、サーバや秘密情報格納装置2の動作のきっかけは制御ソフト111によるものだけでなく、その他の装置やサーバもしくはソフトウェアをきっかけに動作する場合もある。制御ソフト111は複数のソフトウェアが連携した複合的なものであってもかまわない。なお、以下の実施例で特に断りなく制御ソフト111が処理を実行するような記述をした場合、物理的には制御ソフト111のプログラムの記述に則って制御部12が処理を実行するということを示しているものとする。
制御ソフト111は、一例として、サービスサーバ情報1111と、カードアプリサーバ情報1112と、鍵配送サーバ情報1113と、端末ID1114を有する。図2では便宜的に制御ソフト111の内部にこれらを備えるように記載しているが、物理的にはこれらは記憶部11のある領域に書き込まれたデータであり、それを制御ソフト111が参照できるようになっているものとする。
サービスサーバ情報1111は、制御ソフト111が必要に応じてサービスサーバ3に接続するために使用する情報であり、サービスサーバ3のURLやIPアドレスなどを含む。
カードアプリサーバ情報1112は、制御ソフト111が必要に応じてカードアプリサーバ4に接続するために使用する情報であり、カードアプリサーバ4のURLやIPアドレスなどを含む。
鍵配送サーバ情報1113は、制御ソフト111が必要に応じて鍵配送サーバ5に接続するために使用する情報であり、鍵配送サーバ5のURLやIPアドレスなどを含む。
サービスサーバ情報1111、カードアプリサーバ情報1112、および鍵配送サーバ情報1113は、予め制御ソフト111と共に記憶部11に書き込まれていてもよいし、制御ソフト111自体をネットワーク等から取得し記憶部11に書き込む際に合わせて書き込んでもよい。あるいは他の媒体にこれらの情報を格納しておき、適宜制御ソフト111が読み込んで記憶部11に書き込んでもよい。ここで、他の媒体とは、例えば、外部メモリでもよいし、いずれかのサーバでもよいし、あるいは接続先の判明しているその他のサーバでもよいし、秘密情報格納装置2であってもよい。
端末ID1114は、サーバが情報端末1を識別するためのID情報を含む。端末ID1114は予め制御ソフト111と共に記憶部11に書き込まれていてもよいし、制御ソフト111自体をネットワーク等から取得し記憶部11に書き込む際に合わせて書き込んでもよい。あるいは情報端末1のデバイスや秘密情報格納装置2から取得できる一意またはそれに順ずる程度の一意性を持った情報を制御ソフト111が読み込んで記憶部11に書き込んでもよい。あるいは十分大きい乱数などを情報端末1で生成し、端末ID1114として使用しても良い。端末ID1114は必ずしも記憶部11に書き込むことで保持していなくともよく、必要な場合にその都度、制御ソフト111がAPI(Application Program Interface)等を通じて取得しても構わない。
なお図2に示してはいないが、制御ソフト111は上記以外の情報を有していてもよい。例えば後述する秘密情報格納装置2が有するアプリケーションやソフトウェア等のプログラムにアクセスするためのプログラムIDなどを有していても構わない。プログラムIDは、例えばICカードの規格であるISO7816に準拠したAID(Application ID)などである。
次に、秘密情報格納装置2の記憶部21について説明する。秘密情報格納装置2の記憶部21は、例えば、管理ソフト210と、サービスアプリ管理ソフト211と、鍵配送アプリ212を有する。なお、後述する図5からのフローでは、サービスアプリ管理ソフト211がまだ記憶部21に存在しない状態から処理を開始するものとして説明する。また、以下の実施例で特に断りなく管理ソフト210、サービスアプリ管理ソフト211、鍵配送アプリ212、及び後述するサービスアプリ2111が処理を実行するような記述をした場合、物理的にはこれらのプログラムの記述に則って制御部22が処理を実行するということを示しているものとする。
管理ソフト210は、秘密情報格納装置2を管理者権限で操作することができるソフトウェアであり、制御部22によって実行される。管理ソフト210は、通信部24から受けとった要求に受け答える形で動作する。また、管理ソフト210は、管理ソフト鍵2101を有する。管理ソフト鍵2101は、図2では便宜的に管理ソフト210の内部にこれを備えるように記載しているが、物理的には、これは記憶部21のある領域に書き込まれたデータであり、それを管理ソフト210が参照できるようになっているものとする。ただし管理ソフト210以外は管理ソフト鍵2101を参照することはできない。管理ソフト鍵2101は例えば共通鍵方式または公開鍵方式の暗号鍵である。
通信部24から受けた認証要求により、管理ソフト鍵2101による認証が成功した場合、管理ソフト210は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト210は、サービスアプリ管理ソフト211の新規作成、サービスアプリ管理ソフト211への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。管理ソフト210としては、例えばJavaCard仕様に則ったISD(Issuer Security Domain)やAMSD(Autholized Management Security Domain)などが考えられる。
サービスアプリ管理ソフト211は、サービスアプリやサービスアプリが使用する暗号通信鍵を管理するソフトウェアであり、制御部22によって実行される。サービスアプリ管理ソフト211は配下にアプリケーションやそのアプリケーションが暗号通信に用いる鍵を論理的に配置することができ、配下のサービスアプリのセキュリティを管轄する。サービスアプリ管理ソフト211としては、例えばJavaCard仕様に則ったSSD(Supplementary Security Domain)などが考えられる。
サービスアプリ管理ソフト211は、サービスアプリ2111と、暗号通信鍵格納領域2113とを有する。サービスアプリ2111と暗号通信鍵格納領域2113は、図2では便宜的にサービスアプリ管理ソフト211の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域に書き込まれたデータまたは領域そのものであるものとする。
また、サービスアプリ2111は、アプリ鍵格納領域2112を有する。アプリ鍵格納領域2112は、図2では便宜的にサービスアプリ2111の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域であり、サービスアプリ2111のみがこれを参照できると考えられる。
サービスアプリ2111は、サービスサーバ3を運用するサービス提供者が提供するサービスを実現するためのアプリケーションであり、例えば決済アプリ、ポイントアプリ、交通料金支払いアプリ、あるいはPKI認証アプリ等のプログラムである。サービスアプリ2111としては、例えばJavaCard仕様に則ったJavaCardアプリケーションなどが考えられる。
アプリ鍵格納領域2112はサービスアプリ2111がサービスに係る処理を実行するための認証鍵を格納する領域である。例えばサービス提供者は、認証鍵による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。
暗号通信鍵格納領域2113はサービスアプリ管理ソフト211もしくはサービスアプリ2111がサービスサーバ3と暗号通信路を確立して通信を行う際に使用される認証鍵を格納する領域である。サービスアプリ管理ソフト211は、通信部24から暗号通信鍵格納領域2113に格納されている鍵で認証を行う要求を受け付けることができる。認証が成功すると、暗号通信鍵格納領域2113に格納されている鍵自身を書き換える要求を受け付けることができる。
鍵配送アプリ212は、サービスアプリ2111もしくはサービスアプリ管理ソフト211が使用する秘密鍵等を鍵配送サーバ5から安全に受け取って一時保持するためのソフトウェアであり、制御部22によって実行される。鍵配送アプリ212は一時保持した秘密鍵等をサービスアプリ管理ソフト211やサービスアプリ2111に安全に設定するための要求を生成するロジックを備えている。例えばサービスアプリ管理ソフト211は、先述のように、暗号通信鍵格納領域2113に格納されている鍵で認証する要求を受け付けることで鍵の値を書き換えることができるが、鍵配送アプリ212は、所定の鍵の値を用いてこの要求を内部で生成することができるロジックを備えている。鍵配送アプリ212としては、例えばJavaCard仕様に則ったJavaCardアプリケーションなどが考えられる。
鍵配送アプリ212は、鍵配送マスター鍵2121と、アプリ鍵格納領域2122と、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、鍵配送公開鍵格納領域2125と、鍵配送秘密鍵格納領域2126とを有する。図2では鍵配送アプリ212の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域に書き込まれたデータまたは領域そのものであり、鍵配送アプリ212のみがこれらを参照できるものとする。
鍵配送マスター鍵2121は、鍵配送サーバ5と認証を行うための鍵である。実際の認証処理や暗号通信路等の構築には、鍵配送マスター鍵2121そのものではなく所定のアルゴリズムで派生した派生鍵を用いてもかまわない。鍵配送マスター鍵2121は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。通信部24から受けた認証要求により、鍵配送マスター鍵2121による認証が成功した場合、鍵配送アプリ212は要求に応じて配送される鍵の一時保管を行うことができる。
アプリ鍵格納領域2122は、サービスアプリ2111が使用する秘密鍵を一時的に保持するための領域である。アプリ鍵格納領域2122に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらにアプリ鍵格納領域2112に安全に設定される。アプリ鍵格納領域2122は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
暗号通信鍵格納領域2123は、サービスアプリ2111等が使用する暗号通信鍵を一時的に保持するための領域である。暗号通信鍵格納領域2123に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらに暗号通信鍵格納領域2113に安全に設定される。暗号通信鍵格納領域2123は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
暗号通信仮鍵格納領域2124は、暗号通信鍵の仮鍵を一時的に保持するための領域である。暗号通信仮鍵格納領域2124に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、この仮鍵によって鍵配送アプリ212とサービスアプリ管理ソフト211との間で認証を行うことで、鍵配送アプリ212からサービスアプリ管理ソフト211の配下に鍵を設定することが可能になる。暗号通信仮鍵格納領域2124は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域2125に、秘密鍵を鍵配送秘密鍵格納領域2126に格納する。鍵配送公開鍵格納領域2125や鍵配送秘密鍵格納領域2126は、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から鍵配送アプリ212に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵格納領域2126に格納される秘密鍵は秘密情報格納装置2の外部に出力する手段が存在しないものである。したがって、鍵配送アプリ212は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部25を用いて鍵ペアの生成を行う。
図3は、秘密情報格納装置2の記憶部21が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。
サービスアプリ管理ソフト211について説明する。アプリ鍵格納領域2112には、アプリ鍵2114が格納される。アプリ鍵2114は例えばサービスアプリ2111がサービスを実行するための認証鍵であることが考えられる。例えばサービス提供者は、アプリ鍵2114による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。従って、アプリ鍵2114を、第三者に知られることなく、安全にサービスアプリ2111に設定することこそが、サービス提供者が提供するサービスのセキュリティの根幹である。アプリ鍵2114は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。アプリ鍵2114の役割から、アプリ鍵格納領域2112はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
暗号通信鍵格納領域2113には、暗号通信鍵2115もしくは暗号通信仮鍵2116が格納される。暗号通信鍵2115は例えばサービスアプリ管理ソフト211もしくはサービスアプリ2111がサービスサーバ3と暗号通信路を確立して通信を行う際に使用される鍵である。図3に示してはいないが、例えば、サービスアプリ管理ソフト211の配下にサービスアプリ2111が複数あった場合、それらは分け隔てなく暗号通信鍵2115を暗号通信の確立に使用することができる。
暗号通信仮鍵2116は、暗号通信鍵格納領域2113に暗号通信鍵2115が格納されるまで一時的に格納される鍵であり、カードアプリサーバ4から付与される。暗号通信仮鍵2116が格納された暗号通信鍵格納領域2113は、管理ソフト鍵2101による管理者権限での認証が成功したか、もしくは暗号通信仮鍵2116自身での認証が成功した場合に、その内容を書き換える要求を受け付けることができる。例えば後述するフローでは暗号通信仮鍵2116での認証が成功することにより、自身を暗号通信鍵2115に書き換える要求を受け付ける。
暗号通信鍵2115と暗号通信仮鍵2116は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。暗号通信鍵2115と暗号通信仮鍵2116の役割から、暗号通信鍵格納領域2113はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
次に、鍵配送アプリ212について説明する。アプリ鍵格納領域2122には、先述のアプリ鍵2114が一時的に格納される。アプリ鍵2114は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、続くフローでアプリ鍵格納領域2112に安全に設定される。
暗号通信鍵格納領域2123には、先述の暗号通信鍵2115が一時的に格納される。暗号通信鍵2115は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、続くフローで暗号通信鍵格納領域2113に安全に設定される。
暗号通信仮鍵格納領域2124は、先述の暗号通信仮鍵2116が一時的に格納される。暗号通信仮鍵2116は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、この暗号通信仮鍵2116によって鍵配送アプリ212とサービスアプリ管理ソフト211との間で認証を行うことで、鍵配送アプリ212からサービスアプリ管理ソフト211の配下に暗号通信鍵2115とアプリ鍵2114とを設定することが可能になる。
鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵2127と鍵配送秘密鍵2128をそれぞれ格納する。鍵配送公開鍵2127と鍵配送秘密鍵2128は、所定の手段で付与される証明書等と合わせて格納されてもよい。鍵配送公開鍵2127と鍵配送秘密鍵2128は、外部から鍵配送アプリ212に安全にアプリ鍵2114や暗号通信鍵2115等を配送するために使用される。鍵配送公開鍵2127と鍵配送秘密鍵2128のペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵2127と鍵配送秘密鍵2128を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
図4はサーバが保持する鍵の一例を示す図である。図4ではサービスサーバ3、カードアプリサーバ4、および鍵配送サーバ5の最小限の構成と、それぞれが保持する鍵を示している。
サービスサーバ3は、記憶部31と、制御部32と、ネットワーク通信部37と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部31は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部32で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSM(Hardware Security Module)などであっても良い。制御部32はCPUやGPUなどであり、サービスサーバ3全体の制御を司る。ネットワーク通信部37は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部31、制御部32、ネットワーク通信部37は必要に応じてサービスサーバ3に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
記憶部31は、サービスアプリ2111と、暗号通信鍵2115と、アプリ鍵2114とを有する。それぞれの説明は先述したので省略する。暗号通信鍵2115やアプリ鍵2114は所定の方法によりサービスサーバ3で生成されてもよい。図4に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
カードアプリサーバ4は、記憶部41と、制御部42と、ネットワーク通信部47と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部41は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部42で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSMなどであっても良い。制御部42はCPUやGPUなどであり、カードアプリサーバ4全体の制御を司る。ネットワーク通信部47は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部41、制御部42、ネットワーク通信部47は必要に応じてカードアプリサーバ4に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
記憶部41は、管理ソフト鍵2101と、暗号通信仮鍵2116とを有する。それぞれの説明は先述したので省略する。管理ソフト鍵2101や暗号通信仮鍵2116は所定の方法によってカードアプリサーバ4で生成されてもよい。暗号通信仮鍵2116については、場合によってはサービスサーバ3によって生成され、それがカードアプリサーバ4に通知されても構わない。また、図4に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
鍵配送サーバ5は、記憶部51と、制御部52と、ネットワーク通信部57と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部51は、不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部52で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSMなどであっても良い。制御部52はCPUやGPUなどであり、鍵配送サーバ5全体の制御を司る。ネットワーク通信部57は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部51、制御部52、ネットワーク通信部57は必要に応じて鍵配送サーバ5に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
記憶部51は、鍵配送マスター鍵2121を有する。鍵配送マスター鍵2121の説明は先述したので省略する。鍵配送マスター鍵2121は所定の方法によって鍵配送サーバ5で生成されてもよい。図4に示してはいないが、鍵配送マスター鍵2121はデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
図5から図8は鍵配送システムの処理の一例を示した図である。図5から図8は分割して記述しているが一続きのフローである。フローは、一例として、秘密情報格納装置2の記憶部21に、管理ソフト210、管理ソフト鍵2101、鍵配送アプリ212、鍵配送マスター鍵2121が格納され、鍵配送アプリ212の各種格納領域は空の状態から開始する。また、サービスアプリ管理ソフト211及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば鍵配送アプリ212に鍵配送公開鍵2127と鍵配送秘密鍵2128が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト211やサービスアプリ2111が予め存在するがアプリ鍵2114や暗号通信鍵2115が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
図5では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト211の作成とサービスアプリ2111のインストール、および暗号通信仮鍵2116の設定を行う。
サービスサーバ3は、秘密情報格納装置2に配信したいサービスアプリ2111をカードアプリサーバ4に前もって渡しておく(S101)。サービスアプリ2111を渡す方法はサーバ間でのSSL通信や暗号メールなどの暗号通信によって行っても良いし、物理媒体による引渡しなど、ネットワーク以外の方法を用いてもよい。S101はサービス提供者がサービスアプリ2111を用いたサービスを提供開始するよりも前に実行されるのが望ましい。
鍵配送システム及びその前段となるサービスアプリ管理ソフト211の作成処理等は、ユーザがサービスを使用する意思を、制御ソフト111を通じて表明することで開始する(S102)。続いて制御ソフト111は端末ID1114をカードアプリサーバ4に通知することでインストール等の処理の開始をカードアプリサーバ4に知らせる(S103)。続いて制御ソフト111を通じてカードアプリサーバ4はユーザ認証を行う(S104)。ユーザ認証の手段は例えばパスワードの照合などが考えられる。これは不正なユーザが不正にサービスを享受することを防ぐために実施する。図5では便宜的にカードアプリサーバ4がユーザ認証を行っているが、他のサーバでユーザ認証を行っても構わない。ユーザの情報をサーバ間で対応付けることができればよい。続いてカードアプリサーバ4はサービスサーバ3と連携するためにユーザに関する必要な情報をサービスサーバ3に通知する(S105)。サービスサーバ3はこれによりインストール等の処理の開始を知ることができる。カードアプリサーバ4とサービスサーバ3の間の通信はSSLなどでセキュアに行うことが望ましい。
S104が成功したら、続いて制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う処理に入る(S106)。中継処理は、カードアプリサーバ4が生成したコマンドをネットワーク通信部17から取得し、そのコマンドを通信部14から秘密情報格納装置2に送付し、その結果として秘密情報格納装置2から得たレスポンスを、ネットワーク通信部17を介してカードアプリサーバ4に通知する、という処理である。以降のステップで制御ソフト111の中継処理を細かく記述することはしないが、この中継処理によってカードアプリサーバ4は秘密情報格納装置2にステップに応じたコマンドを送付し、そのレスポンスを取得することができる。また、カードアプリサーバ4が生成するコマンドが複数個まとめられるものであれば、制御ソフト111は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置2に送付しても構わない。秘密情報格納装置2から得られる結果も複数個をまとめてカードアプリサーバ4に返送することが考えられる。このとき、コマンドを秘密情報格納装置2に順次送付する過程で秘密情報格納装置2からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果をカードアプリサーバ4に通知しても良い。
S106による中継処理により、カードアプリサーバ4は、管理ソフト210と、管理ソフト鍵2101で相互認証を行う(S107、S108)。相互認証が成功したら管理ソフト鍵2101に基づいて暗号通信路を構築する。このときの暗号鍵は管理ソフト鍵2101から派生させた鍵を用いてもよい。続いてカードアプリサーバ4は暗号通信路を通じサービスアプリ管理ソフト211の作成を指示するコマンドを管理ソフト210に送付する(S109)。これを受けた管理ソフト210は暗号通信路格納領域2113を含むサービスアプリ管理ソフト211を記憶部21に作成する(S110)。当該処理はサービスアプリ管理ソフト211のプログラムを記憶部21にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部21に格納しておき、S110でプログラムを有効化する処理でも構わない。
続いてカードアプリサーバ4は暗号通信仮鍵2116の設定を指示するコマンドを管理ソフト210に送付する(S111)。暗号通信仮鍵2116は、例えば、コマンドの内容に含んでもよいし、予め同じ値の暗号通信仮鍵2116を共有していてもよい。コマンドを受けた管理ソフト210は、暗号通信仮鍵2116を暗号通信鍵格納領域2113に設定する(S112)。
続いてカードアプリサーバ4はサービスアプリ2111のインストールを指示するコマンドを管理ソフト210に送付する(S113)。コマンドを受けた管理ソフト210は、アプリ鍵管理領域2112を含むサービスアプリ2111を記憶部21にインストールする(S114)。当該処理はサービスアプリ2111のプログラムを記憶部21にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部21に格納しておき、S114でプログラムを有効化する処理でも構わない。
続いてカードアプリサーバ4は暗号通信仮鍵2116をサービスサーバ3に通知する(S115)。カードアプリサーバ4とサービスサーバ3の間の通信はSSLなどでセキュアに行うことが望ましい。S115は必ずしもS113やS114の後に実行されるとは限らず、前もって実施していても構わない。また、暗号通信仮鍵2116がサービスサーバ3から予め与えられた値だった場合はS115で暗号通信仮鍵2116を通知する必要はないが、インストールが完了したことは通知することが望ましい。
図6では、図5のフローに続き、鍵配送システムによる鍵配送を行うための鍵ペアの秘密情報格納装置2内部での生成と、生成した公開鍵のサービスサーバ3への通知を行う。
サービスサーバ3はS105で受けたユーザ情報を適当なタイミングで鍵配送サーバ5に送付する(S201)。S115の通知を受けたことをきっかけとしてもよいしそれより前でも構わない。サービスサーバ3と鍵配送サーバ5の通信はSSLなどでセキュアに行うことが望ましい。S201などのフローで示しているユーザ情報のサーバ間での共有の仕方は一例である。サーバごとにユーザ認証してもよいし、どこか一箇所のサーバでユーザ認証した情報を信頼できる方法で共有してもよい。
続いて制御ソフト111は端末ID1114を鍵配送サーバ5に通知することで鍵配送等の処理の開始を鍵配送サーバ5に知らせる(S202)。制御ソフト111はS106と同様に、秘密情報格納装置2と鍵配送サーバ5の中継を行う処理に入る(S203)。中継処理は、鍵配送サーバ5が生成したコマンドをネットワーク通信部17から取得し、そのコマンドを通信部14から秘密情報格納装置2に送付し、その結果として秘密情報格納装置2から得たレスポンスを、ネットワーク通信部17を介して鍵配送サーバ5に通知する、という処理である。以降のステップで制御ソフト111の中継処理を細かく記述することはしないが、この中継処理によって鍵配送サーバ5は秘密情報格納装置2にステップに応じたコマンドを送付しそのレスポンスを取得することができる。また、鍵配送サーバ5が生成するコマンドが複数個まとめられるものであれば、制御ソフト111は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置2に送付しても構わない。秘密情報格納装置2から得られる結果も複数個をまとめて鍵配送サーバ5に返送することが考えられる。このとき、コマンドを秘密情報格納装置2に順次送付する過程で秘密情報格納装置2からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果を鍵配送サーバ5に通知しても良い。
鍵配送サーバ5は、鍵配送アプリ212と、鍵配送マスター鍵2121で相互認証を行う(S204、S205)。相互認証が成功したら鍵配送マスター鍵2121に基づいて暗号通信路を構築してもよい。このときの暗号鍵は鍵配送マスター鍵2121から派生させた鍵を用いてもよい。
続いて鍵配送サーバ5は、鍵配送のための鍵ペアを秘密情報格納装置2の内部で生成するように指示するコマンドを鍵配送アプリ212に送付する(S206)。コマンドを受けた鍵配送アプリ212は、暗号処理部25により、鍵配送公開鍵2127と鍵配送秘密鍵2128の鍵ペアを生成し、鍵配送公開鍵2127を鍵配送公開鍵格納領域2125に格納し、鍵配送秘密鍵2128を鍵配送秘密鍵格納領域2126に格納する(S207)。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
続いて鍵配送サーバ5は、鍵配送公開鍵2127を読み出すためのコマンドを鍵配送アプリ212に送付し(S208)、それに応じて鍵配送アプリ212は鍵配送公開鍵2127を送出する(S209)。
鍵配送公開鍵2127を受け取った鍵配送サーバ5は、必要に応じて所定の方法で公開鍵証明書を付与する(S210)。鍵配送公開鍵2127に付与する公開鍵証明書は、サービサーバ3が信頼している秘密鍵で署名するなど、公開鍵証明書をサービスサーバ3が検証することで鍵配送公開鍵2127を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて鍵配送アプリ212に送付し、秘密情報格納装置2の内部に格納しておいてもよい。
続いて、鍵配送サーバ5は、鍵配送公開鍵2127と公開鍵証明書をサービスサーバ3に通知する(S211)。
図7では、図6のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。
サービスサーバ3は鍵配送公開鍵2127の公開鍵証明書を検証する(S301)。鍵配送公開鍵2127が信頼できるものであれば、鍵配送公開鍵2127で、暗号通信鍵2115と、暗号通信仮鍵2116と、アプリ鍵2114を、暗号化する(S302)。続いて暗号化された鍵らを鍵配送サーバ5に送付する(S303)。
制御ソフト111はS203と同様に、秘密情報格納装置2と鍵配送サーバ5の中継を行う(S304)。S203とS304は続きの処理であっても構わない。制御ソフト111は、続くS305にかかるコマンドを取得するために鍵配送サーバ5をポーリングするか、あるいは、鍵配送サーバ5からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
続いて、鍵配送サーバ5は、暗号化された鍵らを鍵配送アプリ212に送付するコマンドを生成し、鍵配送アプリ212に送ると共に復号化を指示する(S305)。コマンドを受け取った鍵配送アプリ212は、暗号化された鍵らを鍵配送秘密鍵2128で復号化し、暗号通信鍵2115を暗号通信鍵格納領域2123に格納し、暗号通信仮鍵2116を暗号通信仮鍵格納領域2124に格納し、アプリ鍵2114をアプリ鍵格納領域2122に格納する(S306)。
鍵配送公開鍵2127で暗号化された鍵らは、鍵配送公開鍵2127の対となる鍵配送秘密鍵2128でのみ復号化できる。鍵配送公開鍵2127と鍵配送秘密鍵2128は、S207において秘密情報格納装置2の内部で生成されたものであり、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部には一切存在しない。したがって、鍵配送公開鍵2127で暗号化された鍵らは、通信路に存在する鍵配送サーバ5や制御ソフト111を含め、秘密鍵情報格納装置2を除いては一切復号化することができない。
図8では、図7のフローに続き、鍵配送アプリ212に一時保存したサービス提供者の鍵らをサービスアプリ管理ソフト211とサービスアプリ2111に安全に設定する。
制御ソフト111は、S304等でサーバと秘密情報格納装置2を中継したのと同じように、鍵配送ソフト212とサービスアプリ管理ソフト211及びサービスアプリ2111との間のコマンド・レスポンスを中継する。鍵配送アプリ212にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト211やサービスアプリ2111に転送する処理を順次行っていく(S401、S404、S407、S410)。このとき制御ソフト111は鍵配送アプリ212が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ212がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。コマンドの回数が予め決まっているならば制御ソフト111の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ212からのレスポンスの一部に、コマンドの送付が完了したか否かという情報を含めてもよい。
以降のステップにおいて制御ソフト111による中継処理について細かく述べることはしないが、いずれのステップにおいても、鍵配送アプリ212は、制御ソフト111の要求に応じる形で、送付したいコマンドを通信部24を通じて制御ソフト111に返答し、制御ソフト111は、通信部14から受け取ったコマンドを、再度、通信部14を通じて秘密情報格納装置2に送出し、さらに、送出されたコマンドは通信部24を介して、サービスアプリ管理ソフト211やサービスアプリ2111が受け取る。サービスアプリ管理ソフト211やサービスアプリ211からのレスポンスは逆の経路をたどって鍵配送アプリ212に届けられる。上記の処理を実現するにあたり、秘密情報格納装置2は、通信部24を通じて、制御ソフト111と論理的に複数の通信チャネルを同時に確立する機能を有する必要がある。この機能としては、例えばJavaCard仕様に則った論理チャネルの仕組みが適用できる。
鍵配送アプリ212と、サービスアプリ管理ソフト211は、まず、それぞれが別々に参照する暗号通信仮鍵2116で相互認証し、暗号通信路を確立する(S402、S403)。このとき鍵配送アプリ212は暗号通信仮鍵格領域2124に格納された暗号通信仮鍵2116を参照し、サービスアプリ管理ソフト211は暗号通信鍵格納領域2113に格納された暗号通信仮鍵2116を参照する。相互認証が成功したら、鍵配送アプリ212は、暗号通信鍵2115を送付するコマンドを生成し、サービスアプリ管理ソフト211に送付する(S405)。コマンドを受けたサービスアプリ管理ソフト211は、受け取った暗号通信鍵2115を暗号通信鍵格納領域2113に格納する(S406)。このとき、もともと暗号通信鍵格納領域2113に格納されていた暗号通信仮鍵2116は破棄してしまって構わない。
続いて、鍵配送アプリ212と、サービスアプリ2111は、それぞれが別々に参照する暗号通信鍵2115で相互認証し、暗号通信路を確立する(S408、S409)。このとき鍵配送アプリ212は暗号通信鍵格領域2123に格納された暗号通信鍵2115を参照し、サービスアプリ管理ソフト211は暗号通信鍵格納領域2113に格納された暗号通信鍵2115を参照する。相互認証が成功したら、鍵配送アプリ212は、アプリ鍵2114を送付するコマンドを生成し、サービスアプリ2111に送付する(S411)。コマンドを受けたサービスアプリ2111は、受け取ったアプリ鍵2114をアプリ鍵格納領域2112に格納する(S412)。
必要な鍵を設定する処理が正しく完了したら、制御ソフト111は鍵配送アプリ212に、一時的に保持した鍵を消去する指示を出す(S413)。コマンドを受けた鍵配送アプリ212は、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、アプリ鍵格納領域2122に格納された鍵を消去する(S414)。あるいはS413の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ212が自主的にこれらを消去してもよい。
なお、一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ212が一時保持した鍵を消去することが望ましい。制御ソフト111としてエラーを検知した場合、S413を実行する。鍵配送アプリ212としてエラーを検知した場合は自主的にS414を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末1とサーバの通信失敗、もしくは情報端末1と秘密情報格納装置2の通信失敗などが考えられる。また秘密情報格納装置2の電源供給部23が情報端末1から電源を得ていた場合、情報端末1から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。また、情報端末1の電源が空になった場合(または、空になりそうな場合)に鍵情報を消去しても良い。鍵情報の消去処理により、第三者に鍵情報が漏れるリスクをさらに低減することができる。
S414までが正しく完了した場合、制御ソフト111は鍵配送サーバ5に完了通知を送付する(S415)。完了通知を受け取った鍵配送サーバ5は、その旨をサービスサーバ3に通知する(S416)。そうすることで、サービスサーバ3は当該ユーザがサービスを享受できる状態になったことを知ることができる。
なお、フローに記してはいないが、情報端末1または秘密情報格納装置2の処理において何らかのエラーが発生した場合は、その旨を、コマンド生成の主体となっているサーバにその都度通知することが望ましい。
またフローに明示してはいないが、制御ソフト111は、必要に応じて、そのとき行っている処理を表示部15によって適宜ユーザに通知しても構わない。特にS415が完了した場合はその旨を表示部15によってユーザに通知するのが望ましい。このように処理することにより、ユーザは一連の処理が完了し、サービスを享受できる状態になったことを知ることができる。
またフローでは各ステップ間の情報のやり取りを双方向矢印で示しているが、実際には、コマンドに対するレスポンスのペアを成している。また、各ステップ間の情報のやり取りを一つの双方向矢印で示している場合であっても、その中に複数のコマンド・レスポンスを含んでいても何ら問題ない。
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
さらに、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
実施例2では、実施例1で説明した鍵配送サーバ5の役割を、カードアプリサーバ4が兼ねる場合の例を説明する。実施例2において、実施例1の構成等と重複する構成等については、その説明を省略する。
図9は、本実施例に係る鍵配送システムの一例を示す図である。本実施例に係る鍵配送システムは、情報端末1と、サービスサーバ3と、カードアプリサーバ4とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。それぞれは図9で示していない経路によって接続されていても構わない。
カードアプリサーバ4は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。カードアプリサーバ4は実施例1におけるその役割に加え、実施例1における鍵配送サーバ5の役割も兼ねる。カードアプリサーバ4は秘密情報格納装置2で動作するアプリケーションを保持する。カードアプリサーバ4は秘密情報格納装置2を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置2に対し管理者権限で認証を行うことで、秘密情報格納装置2に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ4は、例えばモバイルネットワークオペレータや、TSMと呼ばれる第三者組織などが運用することが考えられる。カードアプリサーバ4は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置2を所持するユーザの情報などを保持し、情報端末1等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有している。
さらに、カードアプリサーバ4は、秘密情報格納装置2で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置2に配送するための構成を有する。カードアプリサーバ4は、後述する鍵配送の機能を兼ねた管理ソフト210を介して、サービスサーバ3で管理する秘密鍵等をアプリケーション等に配送する。カードアプリサーバ4は、先述の機能に加えて、公開鍵暗号を用いたPKIを実行するためのシステム等が動作していることが考えられる。
図10は、情報端末1および秘密情報格装置2の機能構成の一例を示す図である。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
情報端末1が備える記憶部11は、制御ソフト111を有し、制御ソフト111は、例えばサービスサーバ情報1111と、カードアプリサーバ情報1112と、端末ID1114を有する。実施例1では鍵配送サーバ情報1113を有していたが、本実施例では鍵配送の役割をカードアプリサーバ4が兼ねるため、記載を省いている。
秘密情報格納装置2が備える記憶部21は、例えば管理ソフト210と、サービスアプリ管理ソフト211とを備える。実施例1では鍵配送アプリ212を有していたが、本実施例では鍵配送アプリ212の役割を管理ソフト210が兼ねるため、記載を省いている。なお、後述する図13からのフローでは、サービスアプリ管理ソフト211はまだ記憶部21に存在しない状態から開始する。
管理ソフト210は、秘密情報格納装置2を管理者権限で操作することができるソフトウェアであり、制御部22によって実行される。さらに、本実施例では、管理ソフト210は、サービスアプリ2111もしくはサービスアプリ管理ソフト211が使用する秘密鍵等をカードアプリサーバ4から安全に受け取る役割も兼ねる。
管理ソフト210は、通信部24から受けとった要求に受け答える形で動作する。管理ソフト210は、管理ソフト鍵2101と、鍵配送公開鍵格納領域2125と、鍵配送秘密鍵格納領域2126とを有する。図10では便宜的に管理ソフト210の内部にこれらを有するように記載しているが、物理的には、これらは記憶部21のある領域に書き込まれたデータまたは領域そのものであり、それを管理ソフト210が参照できるようになっていると考えられる。ただし管理ソフト210以外は管理ソフト鍵2101と鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126とを参照することはできない。管理ソフト鍵2101は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。
通信部24から受けた認証要求により、管理ソフト鍵2101による認証が成功した場合、管理ソフト210は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト210は、サービスアプリ管理ソフト211の新規作成、サービスアプリ管理ソフト211への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。さらに、管理ソフト210は、カードアプリサーバ4から公開鍵暗号により受け取った秘密鍵を、後述するフローでサービスアプリ2111もしくはサービスアプリ管理ソフト211に設定する。あるいは、実施例1と同様に、管理ソフト210は一時保持した秘密鍵等をサービスアプリ管理ソフト211やサービスアプリ2111に安全に設定するための要求を生成するロジックを備えていてもよい。管理ソフト210としては、例えばJavaCard仕様に則ったISDやAMSD、あるいはSSDなどが考えられる。管理ソフト210としては、例えばJavaCard仕様に則ったISDやAMSDやSSDなどが考えられる。
鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域2125に、秘密鍵を鍵配送秘密鍵格納領域2126に格納する。鍵配送公開鍵格納領域2125や鍵配送秘密鍵格納領域2126には、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から管理ソフト210に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵格納領域2126に格納される秘密鍵は秘密情報格納装置2の外部に出力する手段が存在しないものである。したがって、管理ソフト210は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部25を用いて鍵ペアの生成を行う。
図11は、秘密情報格納装置2の記憶部21が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵2127と鍵配送秘密鍵2128をそれぞれ格納する。鍵配送公開鍵2127と鍵配送秘密鍵2128は、所定の手段で付与される証明書等が合わさっていてもよい。鍵配送公開鍵2127と鍵配送秘密鍵2128は、外部から管理ソフト210に安全にアプリ鍵2114や暗号通信路鍵2115等を配送するために使用される。鍵配送公開鍵2127と鍵配送秘密鍵2128のペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵2127と鍵配送秘密鍵2128を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
図12はサーバが保持する鍵の一例を示す図である。図12ではサービスサーバ3およびカードアプリサーバ4の最小限の構成と、それぞれが保持する鍵を示している。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
カードアプリサーバ4は、記憶部41に管理ソフト鍵2101を有する。管理ソフト鍵2101は所定の方法によってカードアプリサーバ4で生成されてもよい。また、図12に示してはいないが、データベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
図13から図15は本実施例に係る鍵配送システムの処理の一例を示した図である。図13から図15は分割して記述しているが一続きのフローである。なお、図13から図15のフローは、一例として、秘密情報格納装置2の記憶部21に管理ソフト210と管理ソフト鍵2101が格納され、管理ソフト210の鍵配送公開鍵格納領域2125と管理ソフト210の鍵配送公開鍵格納領域2126には、鍵配送時に使用する公開鍵ペアが入っていない状態から開始するものとする。また、サービスアプリ管理ソフト211及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば管理ソフト210に鍵配送公開鍵2127と鍵配送秘密鍵2128が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト211やサービスアプリ2111が予め存在するが、アプリ鍵2114や暗号通信鍵2115が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
図13では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト211の作成とサービスアプリ2111のインストールを行う。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
サービスサーバ3等はユーザがサービスを使用する意思を制御ソフト111を通じて表明することで、サービスアプリ管理ソフト211の作成処理等を開始し、S501〜S510の処理を行う。続いて、カードアプリサーバ4はサービスアプリ2111のインストールを指示するコマンドを管理ソフト210に送付し(S511)、コマンドを受けた管理ソフト210は、アプリ鍵管理領域2112を含むサービスアプリ2111を記憶部21にインストールする(S512)。
図14では、図13のフローに続き、鍵配送を行うための鍵ペアの秘密情報格納装置2内部での生成と、生成した公開鍵のサービスサーバ3への通知を行う。
制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う処理に入る(S601)。カードアプリサーバ4は、鍵配送のための鍵ペアを秘密情報格納装置2の内部で生成するように指示するコマンドを管理ソフト210に送付する(S602)。コマンドを受けた管理ソフト210は、暗号処理部25により、鍵配送公開鍵2127と鍵配送秘密鍵2128の鍵ペアを生成し、鍵配送公開鍵2127を鍵配送公開鍵格納領域2125に格納し、鍵配送秘密鍵2128を鍵配送秘密鍵格納領域2126に格納する(S603)。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
続いてカードアプリサーバ4は、鍵配送公開鍵2127を読み出すためのコマンドを管理ソフト210に送付し(S604)、それに応じて管理ソフト210は鍵配送公開鍵2127を送出する(S605)。
鍵配送公開鍵2127を受け取ったカードアプリサーバ4は、必要に応じて所定の方法で公開鍵証明書を付与する(S606)。鍵配送公開鍵2127に付与する公開鍵証明書をサービサーバ3が信頼している秘密鍵で署名するなどして、公開鍵証明書をサービスサーバ3が検証することで鍵配送公開鍵2127を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて管理ソフト210に送付してもよいし、秘密情報格納装置2の内部に格納しておいてもよい。
続いて、カードアプリサーバ4は、鍵配送公開鍵2127と公開鍵証明書をサービスサーバ3に通知する(S607)。
図15では、図14のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。
サービスサーバ3は鍵配送公開鍵2127の公開鍵証明書を検証する(S701)。鍵配送公開鍵2127が信頼できるものであれば、鍵配送公開鍵2127で、暗号通信鍵2115と、アプリ鍵2114を暗号化する(S702)。続いて暗号化された鍵らをカードアプリサーバ4に送付する(S703)。
制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う(S704)。S601とS704は続きの処理であっても構わない。制御ソフト111は、続くS705にかかるコマンドを取得するためにカードアプリサーバ4をポーリングする、あるいは、カードアプリサーバ4からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
続いて、カードアプリサーバ4は、暗号化された鍵らを管理ソフト210に送付するコマンドを生成し、管理ソフト210に送ると共に復号化を指示する(S705)。コマンドを受け取った管理ソフト210は、暗号化された鍵らを鍵配送秘密鍵2128で復号化し、暗号通信鍵2115をサービスアプリ管理ソフト211の暗号通信鍵格納領域2113に格納し、アプリ鍵2114をサービスアプリ2111のアプリ鍵格納領域2112に格納する(S706)。
S706までが正しく完了した場合、制御ソフト111はカードアプリサーバ4に完了通知を送付する(S707)。完了通知を受け取ったカードアプリサーバ4は、その旨をサービスサーバ3に通知する(S708)。そうすることで、サービスサーバ3は当該ユーザがサービスを享受できる状態になったことを知ることができる。
なお、実施例2では管理ソフト210が秘密鍵を直接サービスアプリ管理ソフト211及びサービスアプリ2111に設定する例を記載したが、実施例1のように暗号通信仮鍵等を用いて制御ソフト111経由で鍵を設定する方法を取っても構わない。このように処理することにより、情報端末を介してアプリ鍵が外部に漏洩する可能性をより低減することができる。
その他、実施例2の内容は実施例1を初めとするその他の実施例に記載する内容と適宜組み合わせてもよい。
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
さらに、鍵配送サーバの役割をカードアプリサーバが兼ねるため、より簡単な構成で高いセキュリティの質を確保することができる。
実施例3では、実施例1で説明した鍵配送システムをより一般化し、鍵配送のためのアルゴリズム等のロジックを、秘密鍵と合わせて鍵配送サーバ5が鍵配送アプリ212に送付する場合の例を説明する。実施例3において、実施例1および実施例2の構成等と重複する構成等については、その説明を省略する。
実施例3の鍵配送システムは、実施例1と同様に、情報端末1と、サービスサーバ3と、カードアプリサーバ4と、鍵配送サーバ5とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。
図16は、秘密情報格装置2の機能構成の一例を示す図である。上記の通り、実施例1および実施例2の構成等と重複する構成等については、その説明を省略する。
実施例3の秘密情報格納装置2が備える記憶部21は、図2で説明した要素に加え、鍵配送アプリ212に鍵配送ロジック格納領域2130を有する。鍵配送ロジック格納領域2130は、後述する図17および図18のフローで鍵配送アプリ212がカードアプリ管理ソフト211やカードアプリ2111に秘密鍵を設定する際に必要なコマンド等を作成するためのアルゴリズムを格納するための領域である。鍵配送ロジック格納領域2130は、図16では便宜的に鍵配送アプリ212の内部にこれを備えるように記載しているが、物理的には記憶部21のある領域であり、鍵配送アプリ212のみがこれを参照できるものとする。鍵配送ロジック格納領域2130に配送されるアルゴリズムは、例えばコマンド列や分岐処理に対し所定の符号化を施したものであっても構わないし、スクリプト言語のような形態を取っていても構わない。鍵配送ロジック格納領域2130は、後述する一連の処理フローでエラーが発生した場合や、電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
図17と図18は、本実施例に係る鍵配送システムの処理の一例を示した図である。図17と図18は分割して記述しているが一続きのフローであり、さらに、図17は、図6の次に続くフローである。図17では、図6のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。さらに、鍵配送サーバ5は、これらの鍵を配送するためのロジックを合わせて配送する。
S801〜S806については、図7のS301〜S306と同様であるため、説明を省略する。
S806において鍵配送アプリ212が、受け取った秘密鍵らを復号化して所定の領域に格納した後、鍵配送サーバ5は、鍵配送のロジックを鍵配送アプリ212に通知する(S807)。通知を受けた鍵配送アプリ212は、受け取ったロジックを鍵配送ロジック格納領域2130に格納する(S808)。
図18では、図17のフローに続き、鍵配送アプリ212に一時保存したサービス提供者の鍵らを、鍵配送ロジック格納領域2130に格納されたロジックに基づいて、サービスアプリ管理ソフト211とサービスアプリ2111に安全に設定する。
制御ソフト111は、実施例1等でサーバと秘密情報格納装置2を中継したのと同じように、鍵配送アプリ212とサービスアプリ管理ソフト211及びサービスアプリ2111との間のコマンド・レスポンスを中継する。鍵配送アプリ212にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト211やサービスアプリ2111に転送する処理を順次行っていく(S901、S904)。このとき制御ソフト111は鍵配送アプリ212が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ212がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。鍵配送ロジック格納領域2130に格納されるロジックのコマンドの回数が予め決まっているならば制御ソフト111の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ212からのレスポンスの一部に、鍵配送ロジック格納領域2130に格納されるロジックのコマンドの送付が完了したか否かという情報を含めてもよい。
鍵配送アプリ212は、鍵配送ロジック格納領域2130に格納されるロジックに基づき、暗号通信鍵2115を送付するコマンドを生成し、サービスアプリ管理ソフト211に送付する(S902)。コマンドを受けたサービスアプリ管理ソフト211は、受け取った暗号通信鍵2115を暗号通信鍵格納領域2113に格納する(S903)。このときにやりとりするコマンドは複数であって構わない。
続いて、鍵配送アプリ212は、鍵配送ロジック格納領域2130に格納されるロジックに基づき、アプリ鍵2114を送付するコマンドを生成し、サービスアプリ2111に送付する(S905)。コマンドを受けたサービスアプリ2111は、受け取ったアプリ鍵2114をアプリ鍵格納領域2112に格納する(S906)。このときにやりとりするコマンドは複数であって構わない。
必要な鍵を設定する処理が正しく完了したら、制御ソフト111は鍵配送アプリ212に、一時的に保持した鍵を消去する指示を出す(S907)。コマンドを受けた鍵配送アプリ212は、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、アプリ鍵格納領域2122とに格納された鍵と、鍵配送ロジック2130に格納されたロジックを消去する(S908)。あるいはS907の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ212が自主的にこれらを消去してもよい。
一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ212が一時保持した鍵およびロジックを消去することが望ましい。制御ソフト111としてエラーを検知した場合、S907を実行する。鍵配送アプリ212としてエラーを検知した場合は自主的にS908を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末1とサーバの通信失敗、もしくは情報端末1と秘密情報格納装置2の通信失敗などが考えられる。また秘密情報格納装置2の電源供給部23が情報端末1から電源を得ていた場合、情報端末1から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。
S908までが完了した場合、制御ソフト111及び鍵配送サーバ5はS909およびS910の処理を実行する。
以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
さらに、鍵配送ロジックを用いることにより、サービスアプリ等への鍵配送の詳細な方法を鍵配送アプリが予め知らなくとも、鍵配送を行う際にその方法も合わせて配送することができ、より柔軟な鍵配送システムを提供することができる。
なお、本発明は上記した各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施例は本発明を分かりやすく説明するために詳細に説明されたものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等、または、ICカード、SDカード、DVD等に置くことができる。なお、図19に示すように、各機能を実現するプログラム等をサーバ等に複製し、情報端末1、およびその他の端末、装置、機器、媒体等に有線または無線の通信回線等を介して提供するようにしても良い。この場合、ユーザは、端末等を操作して、サーバ等から必要なプログラム等をダウンロードし、端末や媒体等の記憶部にインストールさせることができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また、実施例1から実施例3においては、秘密情報格納装置2が情報端末1に接続されて各実施例に記載した処理を行う例を主に説明したが、秘密情報格納装置2の機能、構成等が情報端末1に組み込まれ、情報端末1が秘密情報格納装置2の役割を兼ねても良い。