説明

秘密鍵共有システム、方法、データ処理装置、管理サーバ、及びプログラム

【課題】サーバ側でユーザの秘密鍵を持たないオンライン・ストレージ・サービスを実現し、ユーザの複数の機器の間でこの秘密鍵をネットワーク経由で共有することを可能にする技術の提供。
【解決手段】機器Aは、ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信し、ユーザ秘密鍵を保持している機器Bは、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信し、機器Aは、自装置が保持している機器公開鍵の確認用情報(1)と機器Bから送信されてきた機器公開鍵の確認用情報(2)とを提示し、機器Bは、自装置が保持している機器公開鍵の確認用情報(3)と機器Aから送信されてきた機器公開鍵の確認用情報(4)とを提示し、(1)と(4)が一致し、且つ、(2)と(3)が一致することを条件として、ユーザ秘密鍵の共有を許可し、機器Bは、自装置が保持しているユーザ秘密鍵を暗号化して送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の情報機器が同一の秘密鍵をネットワーク経由で共有する技術に関する。
【背景技術】
【0002】
従来のコンピュータ利用は、ユーザである企業や個人等が、コンピュータのハードウェア、ソフトウェア、データ等を、自分自身で保有し、管理していたが、近年普及してきたクラウド・コンピューティングでは、ユーザは、自身の手元の機器が接続したネットワークの向こう側(データセンタ等)からサービスを受け、クラウド・サービス提供事業者に対してサービス利用料金を支払うという形態が多く採られる。
【0003】
クラウド・サービスの利点の一つは、ネットワークへの接続環境さえあれば、USBメモリ等のメモリ媒体を持ち歩かなくても、自分の所有するデータの保存と取り出しができることにある。さらに、ユーザがデータセンタの設備を所有せず、多数のユーザが一つのデータセンタを利用する形態とすることより、各ユーザはデータセンタの持つ高い性能を低コストで利用することができる。
【0004】
クラウド・サービスのうち、ユーザのデータをネットワーク上のサーバに保存するサービスを、オンライン・ストレージ・サービスともいうが、このサービスをユーザが安心して利用するためには、ネットワークの向こうにサーバがあり、そこに自分のデータを蓄積して利用するという形態に対して、ユーザが信頼を持てるようにする必要がある。特に、インターネットという公衆回線を利用し、複数の企業でサーバを共有するような場合に、クラウドを運営する事業者が、どのようなセキュリティ対策を講じるかが問題となる。
【0005】
現在のオンライン・ストレージでは、ネットワーク上を流れるユーザのデータを第三者に盗聴されないように、機器とサーバ間の通信路を、SSL等の技術を使って暗号化した上で、データを送付している。また、ネットワーク上のサーバ側に暗号鍵を持ち、サーバ上のハードディスクにデータを保存するときに暗号化を行い、ハードディスクが盗まれてもユーザのデータが見られないようにしている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−55201号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した現状のオンライン・ストレージ・サービスでは、サーバ側に暗号鍵があるため、この暗号鍵を用いることで、ハードディスクに保存されたユーザのデータを見ることができてしまう。
【0008】
このようにユーザのデータをネットワーク上のサーバに預けた場合に発生する情報漏えいのリスクを低減するためには、ユーザ側で暗号化したデータをサーバへ送信し、サーバ側にはその暗号化を解くための鍵を持たせないことにより、ストレージ・サービスの提供業者がデータを読むことができないようにすることが望まれる。
【0009】
そのためには、データの暗号化を解くための鍵(秘密鍵)を、盗まれたり紛失したりしないよう、ユーザ側で保存し、管理する必要がある。単純な解決方法は、秘密鍵を一つの機器内部にのみ保存しそこから一切出力しないことにより、サーバから取得したデータを読むことができる機器を一つだけに限定することであるが、これではクラウド・サービスの利点を生かすことができない。
【0010】
すなわち、クラウド・サービスでは、データがネットワーク上のサーバにあって、どの機器からアクセスしてもそのデータを利用できることが利点の一つであるから、この利点を生かしながら、データを読むことができる機器を限定するためには、データを読むことができる複数の機器を限定し、その複数の機器の間で秘密鍵を共有することが望まれる。
【0011】
このように複数の機器で秘密鍵を共有するためには、USBメモリ等を使い、人間の手を介して秘密鍵を受け渡しするのが、従来の方法であった。特許文献1には、途中でUSBメモリを紛失しても中の情報が悪用されないよう、受け渡しする情報を渡す先の機器の公開鍵で暗号化してUSBメモリに記憶することが、開示されている。
【0012】
しかし、クラウド・サービスの大きな利点は、USBメモリ等のメモリ媒体を持ち歩かなくてよいことにあるのだから、USBメモリで秘密鍵の受け渡しをすることは、ユーザの利便性を著しく損ねることになる。
【0013】
本発明は、上記の事情に鑑み、サーバ側でユーザのデータの暗号化を解くための秘密鍵を持たないオンライン・ストレージ・サービスを実現しつつ、ユーザの複数の機器の間でこの秘密鍵を安全且つ簡単にネットワーク経由で共有することを可能にする技術を、提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明に係るデータ処理装置は、少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、暗号化されてサーバに保存されているデータを、前記通信手段を介して受信し、ユーザに固有のユーザ秘密鍵を使用して、前記データを復号するためのデータ処理手段と、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、前記提示手段により自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する許可手段と、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持するユーザ鍵保持手段とを備える。
【0015】
上記のデータ処理装置において、前記送信手段は、送信する前記ユーザ秘密鍵の共有のための情報に、自装置が保持している機器秘密鍵で署名する手段を含み、前記ユーザ鍵保持手段は、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報に付加された署名を、該他装置から前記要求メッセージへの応答として送信されてきた該他装置の機器公開鍵に基づいて検証する手段を含むようにしてもよい。
【0016】
上記のデータ処理装置において、前記許可手段は、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記応答手段による応答メッセージの送信を許可し、前記応答手段が送信する応答メッセージに、前記送信手段が前記ユーザ秘密鍵の共有のために送信する情報を含ませ、前記許可手段は、自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致することを条件として、前記ユーザ鍵保持手段によるユーザ秘密鍵の保持を許可するものであってもよい。
【0017】
上記のデータ処理装置において、他装置が提示した第1及び第2の公開鍵情報を読み込む読込手段を更に備え、前記許可手段は、自装置が提示した第1及び第2の公開鍵情報と、前記読込手段により読み込まれた第2及び第1の公開鍵情報とを、それぞれ比較する手段を含むようにしてもよい。
【0018】
本発明に係る秘密鍵共有システムは、少なくとも一つのサーバと、ネットワーク経由で前記少なくとも一つのサーバと通信する複数のデータ処理装置とを備え、前記複数のデータ処理装置は、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置を含み、前記第1及び第2のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段を有し、前記第2のデータ処理装置は、前記ユーザ秘密鍵を保持しており、前記第1のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記第1のデータ処理装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、前記第2のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、前記第2のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持するユーザ鍵保持手段とを備え、前記第2のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、前記第2のデータ処理装置が保持している機器公開鍵の確認用情報を第3の公開鍵情報として提示し、前記第1のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第4の公開鍵情報として提示する提示手段と、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第1のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信する送信手段とを備え、前記第1の公開鍵情報と前記第4の公開鍵情報が一致し、且つ、前記第2の公開鍵情報と前記第3の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する。
【0019】
上記のシステムにおいて、前記第1及び第2のデータ処理装置は、同一ユーザが双方のデータ処理装置の提示手段による公開鍵情報の提示を受けることができる物理的距離、もしくは、一方のデータ処理装置の提示手段により提示された公開鍵情報を他方のデータ処理装置に付属する読込手段が読み込むことのできる物理的距離で、前記ネットワークに接続されたものであることが好ましい。
【0020】
上記のシステムにおいて、前記少なくとも一つのサーバは、管理サーバを含み、この管理サーバが、前記第1及び第2のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する手段と、前記第1のデータ処理装置がログインに成功したことを条件として、ログインに成功している前記第2のデータ処理装置に対して、前記要求メッセージを転送する手段とを備えるようにしてもよい。
【0021】
本発明に係る管理サーバは、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置に対し、ネットワーク経由で通信するための通信手段と、前記第1及び第2のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する制御手段と、ログインに成功した前記第1のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信する受信手段と、ログインに成功しており、前記ユーザ秘密鍵を保持している前記第2のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第1のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とする転送手段とを備える。
【0022】
上記の管理サーバは、ユーザについての認証の成否に基づいて前記ログインの成否を判断するものであり、ログインに成功しているユーザと該ログインの要求を送信してきたデータ処理装置とを対応させて記憶する手段を更に備え、前記第1のデータ処理装置からログインしてきたユーザと対応して記憶されている他のデータ処理装置を検索し、検索されたデータ処理装置を前記第2のデータ処理装置として前記転送を行うものであってもよい。
【0023】
上記の管理サーバは、前記ユーザ秘密鍵が共有されたデータ処理装置と該データ処理装置の機器公開鍵とを対応させて記憶する手段を更に備え、前記第2のデータ処理装置は、前記ログインの要求に、自装置が保持している機器秘密鍵で署名する手段を更に備え、前記管理サーバは、前記ログインの要求に付加された署名を、記憶された前記第2のデータ処理装置の機器公開鍵に基づいて検証し、検証に失敗した場合にログインを拒否する手段とを更に備えるようにしてもよい。
【0024】
上記のシステムにおいて、前記第1及び第2のデータ処理装置は、ログインが成功すると、前記データ処理手段で扱うデータが保存されているサーバへアクセスするための情報を前記管理サーバから取得可能となるものであってもよい。
【0025】
本発明に係る秘密鍵共有方法は、暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置を含むシステムにおいて、前記第1及び第2のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持しており、前記第2のデータ処理装置は、前記ユーザ秘密鍵を保持しており、前記第1のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信し、前記第2のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信し、前記第1のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、前記第2のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示し、前記第2のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第3の公開鍵情報として提示し、前記第1のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第4の公開鍵情報として提示し、前記第1の公開鍵情報と前記第4の公開鍵情報が一致し、且つ、前記第2の公開鍵情報と前記第3の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可し、前記第2のデータ処理装置は、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第1のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信し、前記第1のデータ処理装置は、前記第2のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持する。
【0026】
本発明に係る一つのプログラムは、暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有するコンピュータ装置に、前記ユーザ秘密鍵の共有を可能とさせるためのプログラムであって、自装置に固有の機器秘密鍵及び機器公開鍵を保持させるためのプログラムコードと、前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示させ、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示させるためのプログラムコードと、自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可するためのプログラムコードと、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信させるためのプログラムコードと、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持させるためのプログラムコードとを備える。
【0027】
本発明に係る別のプログラムは、複数のデータ処理装置とネットワーク経由で通信するための通信手段を有するコンピュータ装置を、秘密鍵共有のための管理サーバとして動作させるためのプログラムであって、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置から、ログインの要求を受信するためのプログラムコードと、前記ログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否するためのプログラムコードと、ログインに成功した前記第1のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信するためのプログラムコードと、ログインに成功しており、前記ユーザ秘密鍵を保持している前記第2のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第1のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とするためのプログラムコードとを備える。
【0028】
以上の発明は、同一ユーザが使用する複数の機器の間でユーザ秘密鍵を共有することを可能にするものであるが、これら複数の機器の間で、他のユーザのユーザ公開鍵も安全且つ簡単に共有できると便利である。
【0029】
そのために、上記の管理サーバは、複数のユーザ各々のユーザ公開鍵を含む情報を記憶する手段と、各データ処理装置からの取得要求に応じて、該取得要求により特定されるユーザのユーザ公開鍵を含む情報を、該データ処理装置へ返送する手段とを更に備え、前記各データ処理装置は、データの利用を許可するユーザのユーザ公開鍵を使用して暗号化した該データを、サーバに保存させる手段を有するようにしてもよい。
【0030】
加えてもしくは代わりに、前記第1及び第2のデータ処理装置の一方が、自装置のユーザ以外のユーザ公開鍵を取得して、記憶しており、前記第1及び第2のデータ処理装置の他方のユーザは、前記一方のデータ処理装置のユーザと同一である場合に、前記一方のデータ処理装置は、自装置のユーザ以外のユーザ公開鍵を、自装置のユーザのユーザ秘密鍵で署名して、送信する手段を備え、前記管理サーバは、前記一方のデータ処理装置から送信された情報を署名付きで記憶するものであり、前記他方のデータ処理装置は、前記管理サーバに保存された署名付きの情報を取得し、該署名を自装置のユーザのユーザ公開鍵に基づいて検証する手段と、前記検証の成功を条件として、取得した前記情報から前記自装置のユーザ以外のユーザ公開鍵を取り出して、記憶する手段とを備えるようにしてもよい。
【0031】
なお、上述したデータ処理装置、秘密鍵共有システム、管理サーバ、秘密鍵共有方法、プログラム(又はそのプログラムを記録した記録媒体)の発明はいずれも、他のカテゴリの発明としても、勿論成立するものである。
【0032】
また、上述したユーザ秘密鍵を共有するための各発明の構成は、ユーザ公開鍵を共有するための発明に適用することができる。ユーザ公開鍵は、データがサーバに保存される前に当該データを暗号化するのに用いるが、例えば、詐称者のユーザ秘密鍵に対応するユーザ公開鍵を用いて暗号化してしまうと、情報漏えいに通じるため、真正のユーザ公開鍵を安全且つ簡便に取得することが望まれる。
【0033】
ユーザ公開鍵に本発明を適用したデータ処理装置は、少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、ユーザに固有のユーザ公開鍵を使用して、データを暗号化し、暗号化されたデータがサーバに保存されるように、前記通信手段を介して送信するためのデータ処理手段と、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、前記ユーザ公開鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ公開鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記ユーザ公開鍵が自装置内に保持されている場合に、他装置による前記ユーザ公開鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、前記提示手段により自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ公開鍵の共有を許可する許可手段と、前記ユーザ公開鍵の共有のために、自装置が保持している前記ユーザ公開鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、他装置から送信されてきた前記ユーザ公開鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ公開鍵を、自装置内に保持するユーザ鍵保持手段とを備えるものとすることができる。
【0034】
本発明においては、ユーザ秘密鍵を共有するための発明として、データ処理装置だけでなく、鍵共有システム、鍵共有方法、管理サーバ、プログラム等の種々のカテゴリの発明が存在するように、ユーザ公開鍵を共有するための発明についても、同様の(ユーザ秘密鍵をユーザ公開鍵に置き換えた)種々のカテゴリの発明が存在する。
【発明の効果】
【0035】
以上のとおり、本発明によれば、サーバ側でユーザのデータの暗号化を解くための秘密鍵を持たないオンライン・ストレージ・サービスを実現しつつ、ユーザの複数の機器の間でこの秘密鍵を安全且つ簡単にネットワーク経由で共有することが可能になる。
【図面の簡単な説明】
【0036】
【図1】本発明の実施形態に係る秘密鍵共有システムを含む全体構成の一例を示す図
【図2】本システムにおける同一ユーザを対象とする(a)暗号化と(b)復号化のデータ処理の一例を示す図
【図3】本システムにおける複数のユーザを対象とする(a)暗号化と(b)復号化のデータ処理の一例を示す図
【図4】本システムにおける機器の内部構成の一例を示す図
【図5】図4の機器公開鍵保存部に保存される情報の一例を示す図
【図6】本システムにおける管理サーバの内部構成の一例を示す図
【図7】図6の(a)ユーザ情報保存部、(b)アクティブユーザ情報保存部、(c)機器情報保存部にそれぞれ保存される情報の一例を示す図
【図8】本システムにおける機器と管理サーバとの間で行われるログイン手順の一例を示すフローチャート
【図9】図8に続いて鍵交換手順を実行する機器の動作の一例を示すフローチャート
【図10】本システムにおける機器Aと機器Bとが管理サーバを介してユーザ秘密鍵を共有する手順の一例を示すシーケンス図
【図11】図10において確認表示から承認へ至る処理を、(a)機器Bがバーコード読込器を備える場合、(b)機器Aがバーコード読込器を備える場合、のそれぞれで詳細化した例を示す図
【図12】本システムにおける機器Aと機器Bとが管理サーバを介してユーザ秘密鍵を共有する手順の別の例を示すシーケンス図
【図13】図12において2段階で行われる確認表示から承認への処理を、機器Bがバーコード読込器を備える場合で詳細化した例を示す図
【図14】他ユーザのユーザ公開鍵を共有する実施形態における機器の内部構成の一例を示す図
【図15】図15のユーザ公開鍵保存部に保存される情報の一例を示す図
【図16】他ユーザのユーザ公開鍵を共有する実施形態における管理サーバの内部構成の一例を示す図
【図17】図16のユーザ公開鍵保存部に保存される情報の一例を示す図
【図18】本システムにおける機器Cと機器Aとが管理サーバを介して他ユーザのユーザ公開鍵を共有する手順の一例を示すシーケンス図
【発明を実施するための形態】
【0037】
以下、図面を参照して、本発明の一実施形態に係る秘密鍵共有システムを説明する。図1は、本システムを含む全体構成を示す図である。
【0038】
図1の例では、説明のため、ユーザ1が、機器A(101)、機器B(102)、機器C(103)の3つの機器(10*)を使用し、ユーザ2が、機器D(111)、機器E(112)の2つの機器(11*)を使用するものとする。実際のシステムでは、多数のユーザが、それぞれ任意の数の機器を使用できることは勿論である。
【0039】
これらの機器は、ネットワーク200を介して、管理サーバ300及びストレージサーバ400に接続可能である。ストレージサーバ400は、ファイルもしくはメッセージ等、どのような形式のデータを扱うものでも、本実施形態が適用可能である。管理サーバ300及びストレージサーバ400は、いわゆるクラウドを形成するサーバ群であり、大規模なデータセンタであってもよいし、一つのサーバであってもよい。ここでのデータセンタは、単一地点にあってもよいし、複数拠点に分散していてもよい(管理サーバ及び/又はストレージサーバが、分散配置されていてもよい)。管理サーバ300の機能とストレージサーバ400の機能は、物理的に別々のサーバで実現してもよいし、同一のサーバに搭載してもよい。
【0040】
ネットワーク200は、パブリッククラウドの場合は典型的にはインターネットであり、プライベートクラウドの場合は企業内ネットワークでもよい。各機器で作成されたデータはストレージサーバ400に保存され、ユーザはサーバ上のデータを読み書きすることになるため、同一ユーザが複数の機器を持ち、ある機器で作成したデータを別の機器で利用することが簡単にできる。機器内にデータを残さないようにすれば、セキュリティ上も利点がある。
【0041】
各機器がデータをネットワーク200経由でストレージサーバ400に保存するときには、暗号化したデータをサーバへ向けて送信する。一般的な暗号化では、1つの機器に1つの秘密鍵を持ち、データを暗号化するが、この方法では、機器が増減したときにサーバ上のデータの暗号化を変更しなければならず、機器の増減に対応するのが効率的ではない。つまり、新しく機器Bの使用を開始する場合、既存の機器A用に暗号化してあったデータから、機器B用に暗号化したデータを、改めて作成しなければならない。
【0042】
そこで、本システムでは、同一ユーザの機器が増減したときのサーバ上での処理を少なくするため、同一ユーザの保持している複数の機器には、同一のユーザ秘密鍵を保持させるようにする。このように複数の機器で1つのユーザ秘密鍵を共有する方法は後述する。
【0043】
図2には、1人のユーザでデータをサーバに保存する場合の処理の一例を示す。ユーザ1の機器10*は、平文のデータをランダムに生成したセッション鍵を用いて共通鍵暗号により暗号化する。次にセッション鍵を自身(ユーザ1)のユーザ公開鍵で暗号化する。この暗号化データと暗号化されたセッション鍵をセットにして、ストレージサーバ400に送付する。サーバはこの状態で保存する。このデータを復号するためには、ユーザ1のユーザ秘密鍵が必要であるが、サーバはこの鍵を持たないので、復号することができない。よって、機器のユーザが属する組織とは別の組織が運営するクラウドに、安心してデータを預けることが可能になる。
【0044】
次に復号の方法を説明する。ユーザ1の機器10*(暗号化を行った機器10*と別の機器でも構わない)は、ストレージサーバ400から暗号データと暗号化されたセッション鍵を取得する。機器10*では、暗号化されたセッション鍵を自身(ユーザ1)のユーザ秘密鍵で復号する。ここで得られたセッション鍵を使って暗号データを共通鍵暗号により復号する。これによって平文のデータを取得することができる。
【0045】
図2では、ユーザ1の機器10*を例にとって説明したが、ユーザ2の機器11*についても同様にデータの暗号化と復号化ができることは勿論である。なお、図2の例では、あるユーザ(ユーザ1)がサーバに保存したデータを別のユーザ(ユーザ2)が取得しても、復号化に必要なユーザ秘密鍵がないので、読むことはできない。
【0046】
図3には、複数のユーザでデータを共有したい場合の処理の一例を示す。ユーザ1の機器10*は、自身(ユーザ1)のユーザ公開鍵でセッション鍵を暗号化するとともに、共有したい他ユーザ(ユーザ2)のユーザ公開鍵でセッション鍵を暗号化して、両方を暗号データに付けて、ストレージサーバ400に保存する。これにより、図2のように同一ユーザ(ユーザ1)の機器10*がサーバに保存したデータを利用できるだけでなく、異なるユーザ(ユーザ2)の機器11*も同じデータを利用できるようになる。つまり、機器11*は、図3のように暗号化されたセッション鍵を自身(ユーザ2)のユーザ秘密鍵で復号し、そのセッション鍵を用いて暗号データを復号する。
【0047】
以上のように、ユーザ秘密鍵があれば、ストレージサーバに保存されている暗号データを復号できてしまうため、複数の機器で1つのユーザ秘密鍵を共有するに当たっては、ユーザ秘密鍵を盗まれないようにすることが重要である。特に、ユーザ秘密鍵をネットワーク経由で送信して共有する場合、正当な要求元であると詐称する(なりすまし)装置に対してユーザ秘密鍵を送信してしまったり、暗号化して送信したユーザ秘密鍵の復号に用いられる鍵が他人に入手されてしまったりするリスクを排除することが肝要である。
【0048】
本システムにおいては、ユーザ秘密鍵の暗号化には、各機器に固有の機器公開鍵を用い、その復号化には、各機器公開鍵に対応する機器秘密鍵を用いる。機器秘密鍵は、唯一のものであり、その機器の内部で生成されて永久に外部に出力されないようにできるため、ユーザ秘密鍵の復号に用いられる鍵が流出する可能性は最小化される。また、本システムでは、ユーザ秘密鍵を共有する機器間で、なりすましを防止する手順を実行する。さらに、本システムでは、各機器からのログインを管理するサーバを設けて、同一ユーザの機器であると認証された機器のみを、ユーザ秘密鍵を共有する機器として指定するようにする。
【0049】
図4には、本システムにおける機器10*、11*の内部構成例を示す。機器は、一般的なクライアントコンピュータ(パソコン、PDA、スマートフォン等)で構成でき、処理部510、記憶部520、入力部530、表示部540、通信部550を備える。
【0050】
処理部510は、図2〜3で説明したデータ処理を行うデータ処理部514と、図8〜13で説明する手順を行う鍵交換部512を含む。記憶部520は、この機器の機器秘密鍵を保存する機器秘密鍵保存部522と、この機器の機器公開鍵を保存するとともに図5に示すように他の機器の機器公開鍵を保存可能な機器公開鍵保存部524と、この機器のユーザのユーザ秘密鍵を保存するためのユーザ秘密鍵保存部526と、この機器のユーザのユーザ公開鍵を保存するためのユーザ公開鍵保存部528とを含む。通信部550は、ネットワーク200と接続される。
【0051】
図6には、本システムにおける管理サーバ300の内部構成例を示す。管理サーバは、一般的なサーバコンピュータで構成でき、処理部310、記憶部320、通信部340を備える。
【0052】
処理部310は、図8で説明するログイン手順と、図10と図12で説明するメッセージの転送や登録の処理とを行うユーザ管理部312を含む。記憶部320は、図7(a)に示すようなユーザ情報を保存するためのユーザ情報保存部322と、図7(b)に示すようなアクティブユーザ情報を保存するためのアクティブユーザ情報保存部324と、図7(c)に示すような機器情報を保存するための機器情報保存部326とを含む。通信部340は、ネットワーク200と接続される。
【0053】
ユーザ情報保存部322は、本システムの利用者として登録しているユーザのユーザID及びパスワードを記憶しており、ログイン要求を行ったユーザの認証に用いられる。加えて、そのユーザのユーザ公開鍵を登録できるようになっており、ここにユーザ公開鍵が登録してあるユーザは、既に少なくともどれか一つの機器にユーザ秘密鍵を持っているものと解釈できる。
【0054】
アクティブユーザ情報保存部324は、ログインに成功してログイン中又はログイン済となっている(ログアウトしていない)ユーザのユーザIDと、そのログインの要求の送信元の機器の機器IDと、そのログインにより確立されているセッションのセッション情報とを記憶する。
【0055】
ユーザがログアウトすると、そのユーザとそのログアウトの要求元の機器は、アクティブユーザ情報保存部324から情報が消去されるが、機器情報保存部326は、その後もユーザIDと機器IDのセットを記憶している。さらに、機器IDに対応させて、その機器の機器公開鍵を登録できるようになっており、次にログイン要求が送られてきたときに、パスワード認証に加えて、機器秘密鍵による署名の検証もできるようになる。また、機器公開鍵が登録されている機器は、既にユーザ秘密鍵を保持(2台目以降は共有)しているものと解釈できるように、運用することも可能である。
【0056】
以上に説明した機器及び管理サーバの各部の機能は、汎用コンピュータにソフトウェアプログラムをインストールすることにより実装されてもよいし、機能の一部又は全部を専用ハードウェア化して実装してもよい。
【0057】
以下では、1人のユーザが複数台の機器を保有している場合に、それらの機器で安全に秘密鍵を共有する方法を、図8〜13を参照して説明する。
【0058】
図8は、機器から管理サーバへログインする手順の一例を説明する図である。本例においては、機器の初期起動時には、機器秘密鍵保存部522、機器公開鍵保存部524、ユーザ秘密鍵保存部526、ユーザ公開鍵保存部528には、何も保存されていないものとするが、機器秘密鍵及び機器公開鍵を、機器の出荷時点で作成、保存しておいてもよいことは勿論である。
【0059】
本ログイン手順の起動時(800)に、機器は、機器中の機器秘密鍵保存部522に機器秘密鍵が存在するかを確認する(805)。機器秘密鍵が存在する場合には、ログイン処理(820以降)を行う。
【0060】
機器秘密鍵が存在しない場合には、機器は、機器IDを生成し(810)、機器秘密鍵及び機器公開鍵を作成し(815)、それぞれ機器秘密鍵保存部522及び機器公開鍵保存部524に保存する。機器IDは、機器ごとに異なるIDをつける。例えば、RFC4122(A Universally Unique Identifier (UUID) URN Namespace)で定義されているUUID等を使うことができる。
【0061】
その後、機器は、ログイン処理を行う(820)。具体的には、機器は、予め登録されている管理サーバのIPアドレスに対して、通信を行えるようにセッションを確立する。管理サーバのIPアドレスが予め登録されていてもよいし、代わりに、FQDN(Fully Qualified Domain Names;ドメインネームサーバの名前)が予め登録されていてもよく、サーバから取得するようにすれば、より汎用的である。セッションは、例えば、TCPを利用するSSL(Secure Socket Layer)やTLS(Transport Layer Security)のように暗号化されたセッションを使ってもよいし、TCPやUDPを利用して、ユーザ秘密鍵を用いて暗号化してもよい。後者の方法は、機器が既に自身のユーザのユーザ秘密鍵を保持しており、管理サーバが既に対応するユーザ公開鍵を登録している場合に採ることができる。
【0062】
機器は、上記の確立したセッションを用いて管理サーバに、ユーザIDとパスワードとを含むログイン要求メッセージを送信する。このログイン要求メッセージ又は機器から管理サーバに送信する情報の中に、機器IDを付加情報として含めてもよい。
【0063】
管理サーバは、ユーザ情報保存部322に保存されているユーザIDとパスワードで認証し、正しいユーザの場合には、アクティブユーザ情報保存部324にそのユーザIDと、機器IDと、セッション情報とを登録する(880)。セッション情報は、上記で確立したセッションに関する情報であり、例えば、[送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号]である。パスワード認証に失敗した場合は、管理サーバから機器へログイン失敗を伝える(830)。
【0064】
機器から管理サーバに送信する情報として、機器秘密鍵を使ってユーザIDやパスワード等に署名してもよい。この場合には、管理サーバは、機器情報保存部326を機器IDで検索し、対応する機器公開鍵が存在すれば、それを用いて署名を検証することができる(840)。署名の検証に失敗した場合は、管理サーバから機器へログイン失敗を伝え(845)、アクティブユーザ情報の登録(880)へは進まない。
【0065】
パスワード認証に成功した後、署名の検証に成功したか、もしくは、機器情報保存部326に対応する機器公開鍵が存在しなかった場合、管理サーバは、ユーザ情報保存部322に、ログイン要求メッセージに含まれるユーザIDのユーザ公開鍵が登録されているかを確認する(850)。ユーザ公開鍵が登録されていない場合には、機器にユーザ公開鍵を要求するメッセージを送信する。
【0066】
ユーザ公開鍵要求メッセージを受信した機器は、ユーザ秘密鍵とユーザ公開鍵を作成して、機器中のユーザ秘密鍵保存部526及びユーザ公開鍵保存部528に保存する(855)。そして、機器は、ユーザ公開鍵をユーザ秘密鍵で署名して、ユーザ公開鍵応答メッセージとして管理サーバに送付する(860)。ここで、このユーザ公開鍵応答メッセージ又は機器から管理サーバに送信する情報の中に、機器公開鍵を付加情報として含めてもよい。
【0067】
ユーザ公開鍵応答メッセージを受信した管理サーバは、受信したユーザ公開鍵を用いて受信した署名を検証し、検証に成功すると、受信したユーザ公開鍵をユーザIDと対応させてユーザ情報保存部322に保存する(865)。管理サーバは、さらに、受信した機器公開鍵を機器IDと対応させて機器情報保存部326に保存する(870)。
【0068】
ユーザ公開鍵が既に存在していた場合も、新たに機器に要求して作成させたものを上記のように保存する場合も、管理サーバは、アクティブユーザ情報保存部324に、ユーザID、機器ID、セッション情報を登録して(880)、ログイン成功メッセージを機器に送付する(885)。
【0069】
ログイン成功を通知された機器は、ログイン中(900)となり、その後、図9のように手順を進める。まず、機器のユーザ秘密鍵保存部526に、ユーザ秘密鍵が存在するか否かを確認する(910)。
【0070】
ユーザ秘密鍵が存在する場合には、ログイン済としてログイン後の処理を行う(940)。ログイン後(ログアウトするまで)の処理として、例えば、図2〜3で説明したデータ処理がある。このとき、機器は、管理サーバから、ストレージサーバにアクセスするための情報(例えば、ストレージサーバが複数あるときに、機器が処理したいデータをどのストレージサーバが保存しているのかを特定する情報等)を取得するようにしてもよい。ログイン済の状態にあれば、ユーザ秘密鍵やユーザ公開鍵を使用する処理を実行することが可能である。
【0071】
ユーザ秘密鍵が存在しない場合には、ユーザ秘密鍵交換手順を開始し(920)、ユーザ秘密鍵を持つ機器からユーザ秘密鍵を取得する。この交換手順の詳細は、後述するように、図10の1015〜1070もしくは図12の1215〜1275に示される。
【0072】
ユーザ秘密鍵及びユーザ公開鍵を取得すると、機器は、ユーザ秘密鍵保存部526にユーザ秘密鍵を保存し、ユーザ公開鍵保存部528にユーザ公開鍵を保存して(930)、ログイン済となる(940)。
【0073】
図10は、機器Aと機器Bとがユーザ秘密鍵を共有する手順の一例を示す。この例では、予めユーザ秘密鍵を保持している機器において1回の承認を行うことにより、ユーザ秘密鍵の共有が許可される。機器A及び機器Bは、同一ユーザ(ここではユーザ1)の所有物とする。なお、図10において、実線矢印は、機器Aと管理サーバとの間のメッセージ交換を表し、点線矢印は、機器Bと管理サーバとの間のメッセージ交換を表す。
【0074】
図10の例では、機器Bは、予めユーザ1の秘密鍵を持っているが、機器Aは、そうではない。そこで、機器Bの保持しているユーザ1の秘密鍵を、機器Aにも安全且つ確実に登録する手順(機器Aについて初期登録を行う手順)を実行する。これは、機器Aが、最初に、ログイン済としてストレージサーバを利用できるようになるまでに実行される手順(図9の920、930)であり、次回以降は、機器Aも、既にユーザ1の秘密鍵を保持しているため、機器Bと同様にログイン中(900)から直接ログイン済(940)の状態に移行することができる。
【0075】
まず、機器Bは、管理サーバに対し、図8のログイン手順を行って、ユーザ1としてログインする(1005)。機器Bは、今回のログイン手順もしくは前回以前のログイン手順において、ユーザ秘密鍵及びユーザ公開鍵を作成して保存しており(855)、ユーザ1のユーザ公開鍵が管理サーバのユーザ情報保存部322に保存され(865)、機器Bの機器公開鍵が管理サーバの機器情報保存部326に保存されている(870)ものとする。
【0076】
勿論、それよりも前に、ユーザ1の機器Cが、ログイン手順においてユーザ秘密鍵及びユーザ公開鍵を作成して保存したものを、これから説明する機器A−B間での手順と同様の手順を機器B−C間で行うことにより、機器Bが共有した結果として、機器Bがユーザ秘密鍵及びユーザ公開鍵を保持しているのでも構わない。
【0077】
いずれにしても、機器Bは、今回のログイン手順で、アクティブユーザとしてその情報がアクティブユーザ情報保存部324に保存され(880)、ログイン中(900)となり、機器B内にユーザ秘密鍵が存在する(910)ので、ログイン済(940)となる。
【0078】
次に、機器Aも、管理サーバに対し、図8のログイン手順を行って、ユーザ1としてログインする(1010)。機器Aは、ユーザ1のユーザ公開鍵が既に管理サーバのユーザ情報保存部322に登録されているので、機器Aの機器公開鍵が管理サーバの機器情報保存部326に登録されることはなく(850から直接880へ移行)、アクティブユーザとして機器Aの情報がアクティブユーザ情報保存部324に保存される。
【0079】
このようにログイン中(900)となった機器Aは、機器A内にユーザ秘密鍵が存在しない(910)ので、以下のように、ユーザ秘密鍵交換手順を開始することになる(920)。
【0080】
なお、ここでは、機器B、機器Aの順番で、ログインする例を説明したが、逆に、ユーザ秘密鍵を持っていない機器Aが先にログインし、ユーザ秘密鍵を持っている機器Bが後からログイン(機器Bのログインは、2回目以降のログインである)しても、その結果としての状態は同様になり、図10のそれ以降の手順も同様に実行できる。後述するように、ユーザ1は、機器Aと機器Bの両方を、物理的に手元に置いて、ユーザ秘密鍵の共有を行わせることができるが、その際、どちらの機器を先にログインさせても構わないということである。機器Aと機器Bは、物理的には近くに置かれる場合でも、その間の情報(ユーザ秘密鍵を含む)の送受信は、ネットワーク経由で行われる。
【0081】
図10に示すように、機器Aがユーザ秘密鍵を持っていない場合には、管理サーバに対して、ユーザ秘密鍵取得要求メッセージを送出する(1015)。このユーザ秘密鍵取得要求メッセージに、機器Aの機器公開鍵を含ませる。
【0082】
管理サーバは、アクティブユーザ情報(図7(b))を参照し、同一ユーザIDでログインしている全ての機器(ここでは、機器B)に対して、セッション情報を参照して、機器Aから受信したユーザ秘密鍵取得要求メッセージを転送する(1025)。
【0083】
なお、アクティブユーザ情報に加えて、機器情報(図7(c))を参照し、同一ユーザIDでログインしている全ての機器のうち、機器公開鍵が管理サーバに登録されている機器を選択して、選択された機器(ユーザ秘密鍵を既に保持している機器と推定される)に対して、ユーザ秘密鍵取得要求メッセージを転送するようにしてもよい。その後、ユーザ秘密鍵取得要求メッセージに含まれていた機器Aの機器公開鍵を、管理サーバの機器情報保存部326に保存する(1020)。但し、下記の手順における承認(1050)がなされなかった場合には、ユーザ秘密鍵は機器Aに共有されないので、管理サーバに保存した機器Aの機器公開鍵を削除するようにしてもよい。
【0084】
ユーザ秘密鍵取得要求メッセージを受信した機器Bは、ユーザ秘密鍵交換手順を実行してよい状況にある場合(機器Bを手元に置いているユーザ1が指示を入力してもよいし、機器Bが予め設定されたとおりに判断してもよい)には、ユーザ秘密鍵取得応答メッセージを管理サーバへ返送する(1030)。ユーザ秘密鍵取得応答メッセージには、機器Bの機器公開鍵と、送信元機器IDとして機器Bの機器IDと、宛先機器IDとして機器Aの機器IDも含まれる。
【0085】
ユーザ秘密鍵取得応答メッセージを受信した管理サーバは、ユーザ秘密鍵取得応答メッセージ中の宛先機器IDと一致する機器IDのエントリを、アクティブユーザ情報保存部324から検索して、そのエントリのセッション情報を利用して、機器Aにユーザ秘密鍵取得応答メッセージを転送する(1035)。
【0086】
この例では、取得応答メッセージが、機器Bから管理サーバを経由して機器Aへ返っているが、機器Bから直接機器Aへ送信してもよい。直接要求元へ返す場合には、機器Bへ送信されるユーザ秘密鍵取得要求メッセージの中に、機器AのIPアドレスを含めることにより、機器Bがどこへ取得応答メッセージを送信すればよいか分かるようにする。
【0087】
この後、機器Bは、機器Aの公開鍵情報(ユーザ秘密鍵取得要求メッセージに含まれていた機器公開鍵)と機器Bの公開鍵情報(機器公開鍵保存部524に記憶された自身の機器公開鍵)とを表示する(1045)。また、機器Aは、機器Aの公開鍵情報(機器公開鍵保存部524に記憶された自身の機器公開鍵)と機器Bの公開鍵情報(ユーザ秘密鍵取得応答メッセージに含まれていた機器公開鍵)とを表示する(1040)。
【0088】
機器の公開鍵情報とは、機器公開鍵の確認用情報であり、機器公開鍵のデータそのものでもよいし、機器公開鍵をハッシュ関数にかけたデータとしてもよいし、機器公開鍵にその他の変換を施したデータとしてもよい。公開鍵情報の表示は、機器公開鍵のフィンガープリントを表示してもよいし、人間が確認できる数値情報として表示してもよい。この表示は、2つの機器で表示されたものが互いに一致しているかを人間が確認できるようにするため、確認者が認識しやすい画像や動画や文字列や音声等の形式にして行ってもよい。より具体的には、2次元バーコードのような表示にしてもよい。
【0089】
また、求められるセキュリティレベルに従い、簡易設定と上級設定の2つ以上のモードを設けて、上級設定ではフィンガープリントをフルに文字列等に変換して表示するのに対し、簡易設定では短い文字列等に変換して表示するようにしてもよい。
【0090】
機器Aと機器Bを手元に置いている操作者(ユーザ1)は、これらの表示された情報が同一であるか否かを確認し、同一である場合には、機器Bに承認の指示を入力する(1050)。同一でない場合には、機器Aと機器Bの間のネットワーク上にいる悪意を持つ機器がこの後送信されるユーザ秘密鍵を取得したり、詐称したりする危険性があるため、秘密鍵交換手順を中止する。この確認は、機器Aと機器Bが物理的に近くに置かれれば、簡単に行うことができるが、そうでなくても、ユーザが双方の機器の表示を確認できるように置かれればよく、後述する読込器が相手方の機器の表示を読み込めるように置かれるのでもよい。
【0091】
機器Aは、ユーザ秘密鍵取得応答メッセージを受信すると、機器公開鍵保存部524に機器Bの機器ID及び機器公開鍵を保存する。機器Bは、ユーザ秘密鍵取得要求メッセージを受信すると、機器公開鍵保存部524に機器Aの機器ID及び機器公開鍵を保存する。しかし、上記のように機器Bに承認の指示が入力されない場合には、これらの機器IDID及び機器公開鍵を削除する。
【0092】
公開鍵情報の確認表示(1040、1045)及び承認(1050)は、図11(a)に例示するように、機器Bのカメラで機器Aに表示されている公開鍵情報の2次元バーコードを読み取る(1047)ことにより、行ってもよい。この場合、機器Aは、カメラが読み取れるように公開鍵情報を表示するが、機器Bは、機器Aから読み取られた2次元バーコードと、機器B内にある公開鍵情報の2次元バーコードとを、人間の目視によらずに、機器B内で比較することができるため、機器Bは、比較結果(一致/不一致)だけを表示して、操作者に承認/拒否を促す。あるいは、一致する場合は承認する(1050)ところまで自動化してもよい。
【0093】
機器Aにカメラが付いている場合には、図11(b)に例示するように、機器Aにおいて、機器Bに表示されている公開鍵情報の2次元バーコードを読み取り(1042)、その読み取り結果と、機器Aの持っている公開鍵情報とが同じであるか否かを表示する(1048)。同じであるという表示を見た操作者は、機器Bに、承認の指示を入力する。あるいは、同じであるという表示をする代わりに、同じであるという通知を、赤外線通信等の無線通信によって機器Aから機器Bへ送り、機器Bにおいて表示及び承認の指示入力を行うようにしてもよいし、通知を受けた機器Bでの承認を自動化してもよい。
【0094】
その後、機器Bは、ユーザ秘密鍵を送信する(1060)。このユーザ秘密鍵送信メッセージには、宛先機器IDとして、機器Aの機器IDが記入されている。また、送信元機器IDとして、機器Bの機器IDが記入され、この送信元機器IDとユーザ1のユーザ秘密鍵及びユーザ公開鍵とが、機器Bの機器秘密鍵で署名され、署名されたものが機器Aの機器公開鍵で暗号化されている。暗号化と署名の順番を逆にして、暗号化してから署名したものとしてもよい。このように作成されたユーザ秘密鍵送信メッセージが、機器Bから管理サーバへ送信される。
【0095】
ユーザ秘密鍵送信メッセージを受信した管理サーバは、ユーザ秘密鍵送信メッセージ中の宛先機器IDと一致する機器IDのエントリを、アクティブユーザ情報保存部324から検索して、そのエントリのセッション情報を利用して、機器Aにユーザ秘密鍵送信メッセージを転送する(1065)。
【0096】
この例では、ユーザ秘密鍵送信メッセージが、機器Bから管理サーバを経由して機器Aへ送信されているが、機器Bから直接機器Aへ送信してもよい。機器Bがどこへユーザ秘密鍵送信メッセージを送信すればよいかは、機器Bへ送信されるユーザ秘密鍵取得要求メッセージの中に、機器AのIPアドレスを含めることで、教えることができる。
【0097】
ユーザ秘密鍵送信メッセージを受信した機器Aは、機器Aの機器秘密鍵で復号する。さらに機器Aは、復号結果に含まれる送信元機器IDと一致する機器IDのエントリを、機器公開鍵保存部524から検索し、そのエントリの機器公開鍵を用いて、署名を検証する。署名が確認されたら、復号結果に含まれるユーザ秘密鍵及びユーザ公開鍵を、それぞれユーザ秘密鍵保存部526及びユーザ公開鍵保存部528に保存する(1070)。
【0098】
図12は、ユーザ1の機器Aと機器Bとがユーザ秘密鍵を共有する手順の別の例を示す。この例では、予めユーザ秘密鍵を保持している機器とユーザ秘密鍵を送るように要求する機器との双方において承認を行うこと(合計2回の承認)により、ユーザ秘密鍵の共有が許可される。以下には、図10と同様の部分は説明を省略し、図12に特有の部分を中心に説明する。
【0099】
まず、ユーザ1が、管理サーバに対し、一方で機器Bからログイン手順を行い(1205)、他方で機器Aからログイン手順を行い(1210)、両方の機器がログインする。
【0100】
機器Aは、ユーザ秘密鍵を持っていない場合には、管理サーバに対して、ユーザ秘密鍵取得要求メッセージを送出する(1215)。このユーザ秘密鍵取得要求メッセージには、機器Aの機器公開鍵も含ませる。
【0101】
管理サーバは、アクティブユーザ情報を参照し、同一ユーザIDでログインしている全ての機器、あるいはその中から選択された機器(ここでは、機器B)に対して、セッション情報を参照して、機器Aから受信したユーザ秘密鍵取得要求メッセージを転送する(1225)。
【0102】
その後、機器Aは、機器Aの公開鍵情報(機器公開鍵保存部524に記憶された自身の機器公開鍵)の確認表示を行う(1230)。また、機器Bも、機器Aの公開鍵情報(ユーザ秘密鍵取得要求メッセージに含まれていた機器公開鍵)の確認表示を行う(1235)。公開鍵確認表示には、承認1回の場合と同様に、様々な表示方法があり得る。
【0103】
機器Aに表示された機器Aの公開鍵情報と、機器Bに表示された機器Aの公開鍵情報とを比較して、同一ならば、機器Bで第1の承認を行う(1240)。承認の方法は、承認1回の場合と同様に、2次元バーコードを使った承認等、様々な承認方法があり得る。機器Bに2次元バーコードを読み込むカメラが付いている場合の一例を、図13に示すが、機器Aにカメラがある場合も、図13を変形して実施できることは、当業者に自明である。
【0104】
第1の承認後、機器Bは、機器公開鍵保存部524に機器Aの機器ID及び機器公開鍵を保存し、ユーザ秘密鍵を送信する(1250)。このユーザ秘密鍵送信メッセージには、宛先機器IDとして、機器Aの機器IDが記入されている。また、送信元機器IDとして、機器Bの機器IDが記入され、この送信元機器IDと機器Bの機器公開鍵とユーザ1のユーザ秘密鍵及びユーザ公開鍵とが、機器Bの機器秘密鍵で署名され、署名されたものが機器Aの機器公開鍵で暗号化されている。暗号化と署名の順番を逆にして、暗号化してから署名したものとしてもよい。このように作成されたユーザ秘密鍵送信メッセージが、機器Bから管理サーバへ送信される。
【0105】
ユーザ秘密鍵送信メッセージを受信した管理サーバは、ユーザ秘密鍵送信メッセージ中の宛先機器IDに従い、アクティブユーザ情報保存部324を検索して、機器Aにユーザ秘密鍵送信メッセージを転送する(1255)。管理サーバ経由で転送するのでなく、機器Bから機器Aへ直接送信してもよいことは、承認1回の場合と同様である。
【0106】
並行して、機器Bは、機器Bの公開鍵情報(機器公開鍵保存部524に記憶された自身の機器公開鍵)の確認表示を行う(1265)。
【0107】
機器Aは、ユーザ秘密鍵送信メッセージを受信すると、このメッセージに含まれる情報を機器Aの機器秘密鍵で復号し、復号結果に含まれる機器Bの機器公開鍵を用いて、署名を検証する。署名が確認されると、機器Bの公開鍵情報(ユーザ秘密鍵送信メッセージに含まれていた機器公開鍵)の確認表示を行う(1260)。
【0108】
機器Aは、機器Bに表示されている機器Bの公開鍵情報と、機器Aに表示された機器Bの公開鍵情報とを比較して、同一ならば、第2の承認を行う(1270)。図13の2次元バーコード読込器を利用する例には、第1の承認に加えて第2の承認を行う方法が示されている。
【0109】
第2の承認後、機器Aは、機器公開鍵保存部524に機器Bの機器ID及び機器公開鍵を保存し、復号結果に含まれるユーザ秘密鍵及びユーザ公開鍵を、それぞれユーザ秘密鍵保存部526及びユーザ公開鍵保存部528に保存する(1275)。
【0110】
以上の手順によって、機器Bから機器Aへ、ユーザ秘密鍵及びユーザ公開鍵を安全に渡すことができる。
【0111】
以下には、図14〜18を参照して、あるユーザが、他のユーザのユーザ公開鍵を、自身の使用する機器のうちの1つに取り込み、その取りこんだユーザ公開鍵を、自身(同一ユーザ)の他の全ての機器に複製する手順を説明する。
【0112】
図14に示す機器の内部構成例は、図4と共通するが、鍵交換部512が、図18で説明する手順を行う点と、ユーザ公開鍵保存部529が、図15に示すように、この機器のユーザのユーザ公開鍵だけでなく、他のユーザのユーザ公開鍵をも保存するためのものである点が異なる。
【0113】
また、図16に示す管理サーバの内部構成例は、図6と共通するが、ユーザ管理部312が、図18で説明する手順を行う点と、ユーザ公開鍵保存部328が、新たに設けられている点が異なる。
【0114】
管理サーバ300のユーザ公開鍵保存部328は、図17に示されるような情報を記憶する。図17の例では、ユーザ1が、他ユーザであるユーザ2とユーザ3のユーザ公開鍵を有しており、ユーザ2が、他ユーザであるユーザ1のユーザ公開鍵を有している。そして、あるユーザが有している他ユーザのユーザ公開鍵の情報は、他ユーザのユーザ公開鍵そのものでもよいが、所有者であるユーザのユーザ秘密鍵で署名したものとしてもよい。つまり、ユーザ1が有するユーザ2のユーザ公開鍵を例にとると、ユーザ2のユーザ公開鍵がユーザ1のユーザ秘密鍵で署名されたものが、ユーザ公開鍵保存部328に保存されている。
【0115】
図18には、ユーザ1の機器Cと機器Aとが管理サーバを介して他ユーザ(ユーザ2)のユーザ公開鍵を共有する手順の一例を示す。少なくとも機器Cと機器Aは、図8〜9に従って管理サーバにログイン後の状態になっているものとする。
【0116】
まず、ユーザ2の機器Dからユーザ1の機器Cへ、ユーザ2のユーザ公開鍵を複製する(1810)。ユーザ1の機器Cにユーザ2のユーザ公開鍵を保存する方法は、ユーザ公開鍵を2次元バーコードによって読み込む方法等でもよい。機器Cは、ユーザ2のユーザ公開鍵をユーザ公開鍵保存部529に、ユーザ2のユーザIDとともに登録する(1820)。
【0117】
次に、機器Cは、ユーザ秘密鍵保存部526に保存されているユーザ1のユーザ秘密鍵で、ユーザ2のユーザ公開鍵を署名する(1830)。この情報と、ユーザ2のユーザIDとを、ユーザ公開鍵登録要求メッセージとして管理サーバに送信する(1840)。
【0118】
管理サーバは、ユーザ公開鍵保存部328に、ユーザIDとして、ログインしているユーザ(ユーザ1)のユーザIDを保存する。そして、受信したユーザ公開鍵登録要求メッセージに含まれる「ユーザID(ユーザ2)」を、相手ユーザIDとして保存する。さらに、受信したユーザ公開鍵登録要求メッセージに含まれる「ユーザ1のユーザ秘密鍵で署名されたユーザ2のユーザ公開鍵」を、ユーザ公開鍵情報として保存する(1850)。
【0119】
ユーザ1の機器Aは、他のユーザのユーザ公開鍵を使いたい場合に、欲しいユーザ(ユーザ2)のユーザIDを含ませたユーザ公開鍵取得要求メッセージを、管理サーバに送付する(1860)。機器Aが、この取得要求メッセージを送信するタイミングは、定期的に送付してもよいし、ログイン時に送付してもよい。あるいは、管理サーバが、上記のようにユーザ公開鍵を保存したときに、ユーザ公開鍵登録要求を送ってきた機器以外の同一ユーザの機器であってログイン済のものに対して通知し、通知された機器が取得要求メッセージを返送するのでも構わない。
【0120】
機器Aからのユーザ公開鍵取得要求メッセージを受信した管理サーバは、機器Aへユーザ公開鍵取得応答メッセージを返す(1870)。管理サーバは、ユーザ公開鍵保存部328に保存されているユーザ公開鍵を、ユーザID(ユーザ公開鍵取得要求メッセージを送信してきた機器を使用するユーザのユーザID−ユーザ1)および相手ユーザID(ユーザ公開鍵取得要求メッセージに含まれているユーザID−ユーザ2)で検索し、ユーザ公開鍵情報(ユーザ1の秘密鍵で署名されたユーザ2のユーザ公開鍵)を取り出す。ユーザ公開鍵取得応答メッセージには、相手ユーザIDと、取り出されたユーザ公開鍵情報とを入れる。
【0121】
ユーザ公開鍵取得応答メッセージを受信した機器Aは、このメッセージ中のユーザ公開鍵情報の署名を、ユーザ公開鍵保存部529に保存している自身(ユーザ1)のユーザ公開鍵を用いて検証する(1880)。署名が確認されたら、ユーザ公開鍵保存部529に、ユーザ公開鍵取得応答メッセージ中の相手ユーザID(ユーザ2)と署名を外したユーザ2のユーザ公開鍵とを保存する(1890)。
【0122】
以上の手順によって、他のユーザのユーザ公開鍵を、自身(同一ユーザ)が使用する全ての機器に、安全且つ簡単に保存することができる。
【0123】
以上、本発明の実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。


【特許請求の範囲】
【請求項1】
少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、
暗号化されてサーバに保存されているデータを、前記通信手段を介して受信し、ユーザに固有のユーザ秘密鍵を使用して、前記データを復号するためのデータ処理手段と、
自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、
前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、
前記提示手段により自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する許可手段と、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、
他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持するユーザ鍵保持手段と
を備えることを特徴とするデータ処理装置。
【請求項2】
前記送信手段は、送信する前記ユーザ秘密鍵の共有のための情報に、自装置が保持している機器秘密鍵で署名する手段を含み、
前記ユーザ鍵保持手段は、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報に付加された署名を、該他装置から前記要求メッセージへの応答として送信されてきた該他装置の機器公開鍵に基づいて検証する手段を含むことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記許可手段は、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記応答手段による応答メッセージの送信を許可し、
前記応答手段が送信する応答メッセージに、前記送信手段が前記ユーザ秘密鍵の共有のために送信する情報を含ませ、
前記許可手段は、自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致することを条件として、前記ユーザ鍵保持手段によるユーザ秘密鍵の保持を許可するものであることを特徴とする請求項1又は2に記載のデータ処理装置。
【請求項4】
他装置が提示した第1及び第2の公開鍵情報を読み込む読込手段を更に備え、
前記許可手段は、自装置が提示した第1及び第2の公開鍵情報と、前記読込手段により読み込まれた第2及び第1の公開鍵情報とを、それぞれ比較する手段を含むことを特徴とする請求項1〜3のいずれか1項に記載のデータ処理装置。
【請求項5】
少なくとも一つのサーバと、
ネットワーク経由で前記少なくとも一つのサーバと通信する複数のデータ処理装置と
を備える秘密鍵共有システムであって、
前記複数のデータ処理装置は、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置を含み、
前記第1及び第2のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段を有し、
前記第2のデータ処理装置は、前記ユーザ秘密鍵を保持しており、
前記第1のデータ処理装置は、
他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記第1のデータ処理装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、前記第2のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、
前記第2のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持するユーザ鍵保持手段とを備え、
前記第2のデータ処理装置は、
前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
前記第2のデータ処理装置が保持している機器公開鍵の確認用情報を第3の公開鍵情報として提示し、前記第1のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第4の公開鍵情報として提示する提示手段と、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第1のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信する送信手段とを備え、
前記第1の公開鍵情報と前記第4の公開鍵情報が一致し、且つ、前記第2の公開鍵情報と前記第3の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可することを特徴とする秘密鍵共有システム。
【請求項6】
前記第1及び第2のデータ処理装置は、同一ユーザが双方のデータ処理装置の提示手段による公開鍵情報の提示を受けることができる物理的距離、もしくは、一方のデータ処理装置の提示手段により提示された公開鍵情報を他方のデータ処理装置に付属する読込手段が読み込むことのできる物理的距離で、前記ネットワークに接続されたものであることを特徴とする請求項5に記載の秘密鍵共有システム。
【請求項7】
前記少なくとも一つのサーバは、管理サーバを含み、
前記管理サーバは、
前記第1及び第2のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する手段と、
前記第1のデータ処理装置がログインに成功したことを条件として、ログインに成功している前記第2のデータ処理装置に対して、前記要求メッセージを転送する手段とを備えることを特徴とする請求項5又は6に記載の秘密鍵共有システム。
【請求項8】
前記管理サーバは、
ユーザについての認証の成否に基づいて前記ログインの成否を判断するものであり、
ログインに成功しているユーザと該ログインの要求を送信してきたデータ処理装置とを対応させて記憶する手段を更に備え、
前記第1のデータ処理装置からログインしてきたユーザと対応して記憶されている他のデータ処理装置を検索し、検索されたデータ処理装置を前記第2のデータ処理装置として前記転送を行うものであることを特徴とする請求項7に記載の秘密鍵共有システム。
【請求項9】
前記第2のデータ処理装置は、
前記ログインの要求に、自装置が保持している機器秘密鍵で署名する手段を更に備え、
前記管理サーバは、
前記ユーザ秘密鍵が共有されたデータ処理装置と該データ処理装置の機器公開鍵とを対応させて記憶する手段と、
前記ログインの要求に付加された署名を、記憶された前記第2のデータ処理装置の機器公開鍵に基づいて検証し、検証に失敗した場合にログインを拒否する手段とを更に備えることを特徴とする請求項7又は8に記載の秘密鍵共有システム。
【請求項10】
前記第1及び第2のデータ処理装置は、ログインが成功すると、前記データ処理手段で扱うデータが保存されているサーバへアクセスするための情報を前記管理サーバから取得可能となるものであることを特徴とする請求項7〜9のいずれか1項に記載の秘密鍵共有システム。
【請求項11】
前記管理サーバは、
複数のユーザ各々のユーザ公開鍵を含む情報を記憶する手段と、
各データ処理装置からの取得要求に応じて、該取得要求により特定されるユーザのユーザ公開鍵を含む情報を、該データ処理装置へ返送する手段とを更に備え、
前記各データ処理装置は、
データの利用を許可するユーザのユーザ公開鍵を使用して暗号化した該データを、サーバに保存させる手段を有することを特徴とする請求項7〜10のいずれか1項に記載の秘密鍵共有システム。
【請求項12】
前記第1及び第2のデータ処理装置の一方が、自装置のユーザ以外のユーザ公開鍵を取得して、記憶しており、
前記第1及び第2のデータ処理装置の他方のユーザは、前記一方のデータ処理装置のユーザと同一であり、
前記一方のデータ処理装置は、
自装置のユーザ以外のユーザ公開鍵を、自装置のユーザのユーザ秘密鍵で署名して、送信する手段を備え、
前記管理サーバは、
前記一方のデータ処理装置から送信された情報を署名付きで記憶するものであり、
前記他方のデータ処理装置は、
前記管理サーバに保存された署名付きの情報を取得し、該署名を自装置のユーザのユーザ公開鍵に基づいて検証する手段と、
前記検証の成功を条件として、取得した前記情報から前記自装置のユーザ以外のユーザ公開鍵を取り出して、記憶する手段とを備えることを特徴とする請求項7〜11のいずれか1項に記載の秘密鍵共有システム。
【請求項13】
暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置に対し、ネットワーク経由で通信するための通信手段と、
前記第1及び第2のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する制御手段と、
ログインに成功した前記第1のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信する受信手段と、
ログインに成功しており、前記ユーザ秘密鍵を保持している前記第2のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第1のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とする転送手段と
を備えることを特徴とする管理サーバ。
【請求項14】
暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置を含むシステムにおける、秘密鍵共有方法であって、
前記第1及び第2のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持しており、
前記第2のデータ処理装置は、前記ユーザ秘密鍵を保持しており、
前記第1のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信し、
前記第2のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信し、
前記第1のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、前記第2のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示し、
前記第2のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第3の公開鍵情報として提示し、前記第1のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第4の公開鍵情報として提示し、
前記第1の公開鍵情報と前記第4の公開鍵情報が一致し、且つ、前記第2の公開鍵情報と前記第3の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可し、
前記第2のデータ処理装置は、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第1のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信し、
前記第1のデータ処理装置は、前記第2のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持することを特徴とする秘密鍵共有方法。
【請求項15】
暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有するコンピュータ装置に、前記ユーザ秘密鍵の共有を可能とさせるためのプログラムであって、
自装置に固有の機器秘密鍵及び機器公開鍵を保持させるためのプログラムコードと、
前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、
前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、
自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示させ、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示させるためのプログラムコードと、
自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可するためのプログラムコードと、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信させるためのプログラムコードと、
他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持させるためのプログラムコードとを備えることを特徴とするプログラム。
【請求項16】
複数のデータ処理装置とネットワーク経由で通信するための通信手段を有するコンピュータ装置を、秘密鍵共有のための管理サーバとして動作させるためのプログラムであって、
暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第1及び第2のデータ処理装置から、ログインの要求を受信するためのプログラムコードと、
前記ログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否するためのプログラムコードと、
ログインに成功した前記第1のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信するためのプログラムコードと、
ログインに成功しており、前記ユーザ秘密鍵を保持している前記第2のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第1のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とするためのプログラムコードとを備えることを特徴とするプログラム。
【請求項17】
少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、
ユーザに固有のユーザ公開鍵を使用して、データを暗号化し、暗号化されたデータがサーバに保存されるように、前記通信手段を介して送信するためのデータ処理手段と、
自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、
前記ユーザ公開鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ公開鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記ユーザ公開鍵が自装置内に保持されている場合に、他装置による前記ユーザ公開鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
自装置が保持している機器公開鍵の確認用情報を第1の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第2の公開鍵情報として提示する提示手段と、
前記提示手段により自装置が提示した第1の公開鍵情報と他装置が提示した第2の公開鍵情報が一致し、且つ、自装置が提示した第2の公開鍵情報と他装置が提示した第1の公開鍵情報が一致することを条件として、前記ユーザ公開鍵の共有を許可する許可手段と、
前記ユーザ公開鍵の共有のために、自装置が保持している前記ユーザ公開鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、
他装置から送信されてきた前記ユーザ公開鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ公開鍵を、自装置内に保持するユーザ鍵保持手段と
を備えることを特徴とするデータ処理装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−176435(P2011−176435A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願番号】特願2010−37403(P2010−37403)
【出願日】平成22年2月23日(2010.2.23)
【出願人】(500309920)株式会社インテックシステム研究所 (22)
【Fターム(参考)】