(57)【要約】【課題】保護すべきデータを生成する複数の値を保持している複数のサーバ装置を運用しているサービス提供者に不正行為者がいたとしても、保護すべきデータが流出する危険性を低減させるシステムを提供する。【解決手段】システムは、第１のアカウント情報及び第２のアカウント情報を有する第１の装置と、第１のアカウント情報の対である第１の検証情報を有する第２の装置と、第２のアカウント情報の対である第２の検証情報を有する第３の装置とを有しており、第１の装置は、ランダム値を生成して第１のパスワードとする手段と、第２の装置と通信して、第３のアカウント情報及び第３の検証情報の対を第１のパスワードに基づき生成する手段と、第３のアカウント情報を第３の装置に送信する手段とを備えており、第２の装置は、第３の検証情報を保存する手段を備えている。【選択図】図３
2012155360.tif 000002
【特許請求の範囲】
【請求項１】
パスワードに基づきアカウント情報及び検証情報の対を生成し、前記アカウント情報を保存している装置は、入力された前記パスワード及び前記アカウント情報により認証データを生成し、前記アカウント情報の対となる検証情報を保存している装置は、前記認証データと前記検証情報により前記アカウント情報を保存している装置を認証し、前記パスワードに基づき、保護すべきデータから、前記保護すべきデータを生成する複数の値を生成し、前記保護すべきデータを生成する複数の値を、前記アカウント情報を保存している装置と前記検証情報を保存している装置に分散して保存する、データ分散管理システムであって、
第１のアカウント情報及び第２のアカウント情報を有する第１の装置と、
前記第１のアカウント情報の対である第１の検証情報を有する第２の装置と、
前記第２のアカウント情報の対である第２の検証情報を有する第３の装置と、
を備えており、
前記第１の装置は、７０ビット以上のランダム値を生成して第１のパスワードとする手段と、前記第２の装置と通信して、第３のアカウント情報及び第３の検証情報の対を生成する手段と、前記第３のアカウント情報を前記第３の装置に送信する手段とを備えており、
前記第２の装置は、前記第３の検証情報を保存する手段を備えており、
前記第３の装置は、前記第３のアカウント情報を前記第１の装置から受信して保存する手段を備えている、
ことを特徴とするシステム。
【請求項２】
前記第１のパスワードは８０ビット以上であることを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１のアカウント情報及び前記第１の検証情報の対と、前記第２のアカウント情報及び前記第２の検証情報の対は、それぞれ、第２のパスワードに基づき生成されており、
前記第２の装置による前記第１の装置の認証終了後、前記第１の装置は前記第１のアカウント情報を使用して第１のマスタ鍵を生成し、前記第２の装置は前記第１の検証情報を使用して前記第１のマスタ鍵を生成し、前記第１の装置及び前記第２の装置は、前記第１のマスタ鍵に基づき前記第１の装置及び前記第２の装置間の通信を暗号化して安全な通信路を確立し、
前記第３の装置による前記第１の装置の認証終了後、前記第１の装置は前記第２のアカウント情報を使用して第２のマスタ鍵を生成し、前記第３の装置は前記第２の検証情報を使用して前記第２のマスタ鍵を生成し、前記第１の装置及び前記第３の装置は、前記第２のマスタ鍵に基づき前記第１の装置及び前記第３の装置間の通信を暗号化して安全な通信路を確立し、
前記第１の通信装置は、前記第２の通信装置との間及び前記第３の通信装置との間に前記安全な通信路を確立した後、前記第３のアカウント情報の生成と、前記第３のアカウント情報の前記第３の装置への送信を行うことを特徴とする請求項１又は２に記載のシステム。
【請求項４】
前記第２のアカウント情報及び前記第２の検証情報の対は、それぞれ、第２のパスワードに基づき生成されており、
前記第３の装置による前記第１の装置の認証終了後、前記第１の装置は前記第２のアカウント情報を使用して第２のマスタ鍵を生成し、前記第３の装置は前記第２の検証情報を使用して前記第２のマスタ鍵を生成し、前記第１の装置及び前記第３の装置は、前記第２のマスタ鍵に基づき前記第１の装置及び前記第３の装置間の通信を暗号化して安全な通信路を確立し、
前記第１の装置及び前記第３の装置との間に前記安全な通信路を確立した後、前記第１の装置は、前記第３の装置と通信して、前記第２のアカウント情報とは異なる第４のアカウント情報と前記第４のアカウント情報の対となる第４の検証情報を生成し、
前記第１の装置は、前記第４のアカウント情報を外部記憶装置に保存する手段を備えていることを特徴とする請求項１又は２に記載のシステム。
【請求項５】
前記第１の装置は、前記第１のパスワードを保存する手段を備えていることを特徴とする請求項１から４のいずれか１項に記載のシステム。
【請求項６】
パスワードに基づきアカウント情報及び検証情報の対を生成し、前記アカウント情報を保存している装置は、入力された前記パスワード及び前記アカウント情報により認証データを生成し、前記アカウント情報の対となる検証情報を保存している装置は、前記認証データと前記検証情報により前記アカウント情報を保存している装置を認証し、前記パスワードに基づき、保護すべきデータから、前記保護すべきデータを生成する複数の値を生成し、前記保護すべきデータを生成する複数の値を、前記アカウント情報を保存している装置と前記検証情報を保存している装置に分散して保存する、データ分散管理システムで使用される装置であって、
第１のアカウント情報及び第２のアカウント情報を保存する手段と、
７０ビット以上のランダム値を生成して第１のパスワードとする手段と、
前記第１のアカウント情報の対である第１の検証情報を有する装置と通信して、第３のアカウント情報を前記第１のパスワードに基づき生成する手段と、
前記第３のアカウント情報を前記第２のアカウント情報の対である第２の検証情報を有する装置に送信する手段と、
を備えていることを特徴とする装置。
【請求項７】
請求項６に記載の装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ又は暗号鍵を保護するために、データ又は暗号鍵の代わりに、データ又は暗号鍵を生成可能な複数の値を生成し、これら生成した値を分散して保存する技術に関する。
【背景技術】
【０００２】
非特許文献１には、非特許文献２に記載のＬＲ−ＡＫＥ（Ｌｅａｋａｇｅ−Ｒｅｓｉｌｉｅｎｔ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）に基づき、保護すべきデータ又は暗号鍵から、これらデータ又は暗号鍵を生成するための複数の値を生成し、生成した値を分散して管理する構成が記載されている（以下、保護対象のデータ又は暗号鍵をまとめて、データ鍵ＤＫと呼ぶ。）。
【０００３】
図４は、非特許文献１に記載のシングルモードを説明する図であり、システムは、クライアント装置４と、サーバ装置５とを備えている。クライアント装置４の記憶部４１は、クライアント情報４１０を保存しており、サーバ装置５の記憶部５１は、クライアント情報４１０の対であるサーバ情報５１０を保存している。
【０００４】
図４に示す様に、クライアント情報４１０は、アカウント情報４１１、保護対象であるデータ鍵ＤＫを生成するための値ＣＤＫ及び公開鍵ＰＫを示す情報を含んでいる。また、サーバ情報５１０は、アカウント情報４１１の対である検証情報５１１、保護対象であるデータ鍵ＤＫを生成するための値であり、値ＣＤＫの対である値ＳＤＫ、及び、公開鍵ＰＫの対である秘密鍵ＳＫを示す情報を含んでいる。なお、値ＣＤＫ及び値ＳＤＫは、データ鍵ＤＫ及びクライント装置４のユーザのパスワードに基づき生成されており、データ鍵ＤＫは、値ＣＤＫ及び値ＳＤＫ並びにクライント装置４のユーザのパスワードから生成可能である。
【０００５】
さらに、アカウント情報４１１は、ユーザ識別子及びアカウント情報のインデックスとして使用されるランダム値ｐｃｉｄと、秘密値ｃｓを示す情報を含んでいる。また、検証情報５１０は、ランダム値ｐｃｉｄのハッシュ値であるｈｐｃｉｄと、秘密値ｃｓとクライント装置４のユーザのパスワードに基づき生成した秘密値ｓｓを示す情報を含んでいる。
【０００６】
ユーザがクライアント装置４にパスワードを入力すると、クライアント装置４の認証部４２は、パスワード、ランダム値ｐｃｉｄ、秘密値ｃｓ及び公開鍵ＰＫに基づきマスタ鍵ｍｓを生成し、マスタ鍵ｍｓから認証データを生成する。そして、生成した認証用データをサーバ装置５に送信する。サーバ装置５の認証部５２は、ハッシュ値ｈｐｃｉｄ、秘密値ｓｓ及び秘密鍵ＳＫに基づきクライアント装置４と同じマスタ鍵ｍｓを生成し、このマスタ鍵に基づきクライアント装置４から受信する認証データを検証する。クライアント装置４の認証成功後、クライアント装置４の通信処理部４３とサーバ装置５の通信処理部５３は、それぞれ、マスタ鍵からクライアント装置４とサーバ装置５間の通信を暗号化するための通信用暗号鍵を生成、つまり、クライアント装置４及びサーバ装置５との間に安全な通信路を確立する。
【０００７】
サーバ装置５が、この安全な通信路を使用して、クライアント装置４に値ＳＤＫを送信することで、クライアント装置４は、ユーザのパスワード、値ＳＤＫ及び値ＣＤＫに基づきデータ鍵ＤＫを安全に生成することができる。
【０００８】
さらに、非特許文献１に記載のシステムにおいては、クライアント装置４とサーバ装置５による認証が成功する度に、クライアント装置４の情報生成更新部４４は、マスタ鍵ｍｓを使用して秘密値ｃｓ及び値ＣＤＫを更新し、新たなランダム値を生成してランダム値ｐｃｉｄを更新する。また、情報生成更新部４４は、更新後のランダム値ｐｃｉｄから新たなハッシュ値ｈｐｃｉｄを計算してサーバ装置５に送信する。また、サーバ装置５の情報生成更新部５４は、マスタ鍵ｍｓを使用して秘密値ｓｓ及び値ＳＤＫを更新し、また、ハッシュ値ｈｐｃｉｄを、クライアント装置４から受信する値に更新する。よって、データ鍵ＤＫを生成するためには、同じ回に生成された値ＳＤＫ及び値ＣＤＫを入手する必要がある。値ＳＤＫ及び値ＣＤＫは分散して管理されており、かつ、認証の都度更新されるため、データ鍵ＤＫは安全に保護される。
【０００９】
なお、クライアント情報４１０及びサーバ情報５１０の初期値については、いずれかの装置で両方を生成し、ネットワークではなく、外部記憶装置を利用してそれぞれの装置に保存する方法であっても良いが、非特許文献１は、これらを生成するための初期化プロトコルを開示しており、クライアント装置４とサーバ装置５が初期化プロトコルを実行する。
【００１０】
図４に示すシングルモードにおいては、クライアント装置４又はサーバ装置５が故障した場合や、クライアント装置４とサーバ装置５との間の通信が障害となった場合には、データ鍵ＤＫを生成することができなくなる。このため、非特許文献１は、クラスタモードを開示している。
【００１１】
図５は、非特許文献１に記載のクラスタモードを説明する図であり、システムは、クライアント装置６と、サーバ装置７及び８を備えている。なお、図５においては、説明を簡略化するため、各装置に保存されている情報のみを表示している。図５において、クライアント装置６が保持するアカウント情報６１１ａを含むクライアント情報６１０ａ及びサーバ装置７が保持する検証情報７１１ａを含むサーバ情報７１０ａは、それぞれ、図４のクライアント装置４のクライアント情報４１０及びサーバ装置５のサーバ情報５１０に対応する。つまり、クライアント装置６は、サーバ装置７の認証を受けた後に、サーバ装置７から値ＳＤＫ１を取得することでデータ鍵ＤＫを生成することができる。
【００１２】
同様に、クライアント装置６が保持するアカウント情報６１１ｂを含むクライアント情報６１０ｂ及びサーバ装置８が保持する検証情報８１１ｂを含むサーバ情報８１０ｂは、それぞれ、図４のクライアント装置４のクライアント情報４１０及びサーバ装置５のサーバ情報５１０に対応する。つまり、クライアント装置６は、サーバ装置８の認証を受けた後に、サーバ装置８から値ＳＤＫ２を取得することでデータ鍵ＤＫを生成することができる。
【００１３】
さらに、サーバ装置８が保持するアカウント情報８１１ｃを含むクライアント情報８１０ｃ及びサーバ装置７が保持する検証情報７１１ｃを含むサーバ情報７１０ｃは、それぞれ、図４のクライアント装置４のクライアント情報４１０及びサーバ装置５のサーバ情報５１０に対応する。つまり、サーバ装置８は、サーバ装置７の認証を受けた後に、サーバ装置７から値ＳＤＫ３を取得することでデータ鍵ＤＫを生成することができる。
【００１４】
図５に示すクラスタモードにおいては、クライアント装置６、サーバ装置７及びサーバ装置８のいずれか１つが故障となったり、各装置を接続する伝送路の２つが障害となったりしてもユーザは、データ鍵ＤＫを生成することが可能である。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】Ｈｉｄｅｋｉ  Ｉｍａｉ、ｅｔ  ａｌ．、“Ｎｅｗ  Ｓｅｃｕｒｉｔｙ  Ｌａｙｅｒ  ｆｏｒ  ＯｖｅｒＬａｙ  Ｎｅｔｗｏｒｋｓ”、ＪＯＵＲＮＡＬ  ＯＦ  ＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＡＮＤ  ＮＥＴＷＯＲＫＳ、Ｖｏｌ.１１、Ｎｏ．３、２００９年６月
【非特許文献２】［ｏｎｌｉｎｅ］、ＲＣＩＳ、［平成２３年１月１１日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ.ｒｃｉｓ．ａｉｓｔ．ｇｏ．ｊｐ／ｐｒｏｊｅｃｔ／ＬＲ−ＡＫＥ／＞
【発明の概要】
【発明が解決しようとする課題】
【００１６】
近年提供されているクラウドコンピューティングサービスを利用して図５のサーバ装置７及び８を構築する場合、ユーザからはサーバ装置の設置環境等が把握しにくく、サーバ装置７及び８が同じ運用者により運用されている状態や、同じ場所に設置される状況が生じ得る。この様な状況において、クラウドサービスの提供者の内部に不正行為者がいるとデータ鍵ＤＫが探索され流出する危険性がある。このため、たとえ、サービス提供者の内部に不正行為者がいたとしても、データ鍵が流出する危険性を低減させることが望まれている。
【００１７】
また、図５のクラスタモードにおいて、例えば、クライアント装置６が故障した場合や、クライアント装置６が、サーバ装置７及び８と通信できなくなった場合、ユーザは、サーバ装置８が設置されている場所に出向き、サーバ装置８を操作してデータ鍵ＤＫを生成する必要がある。しかしながら、サーバ装置８がデータセンタ等の遠隔地に設置されている場合には、ユーザがサーバ装置８の設置場所に直ちに移動することが難しく、クラウドコンピューティングサービスを利用している場合の様に、ユーザがサーバ装置８の設置場所に立ち入れない場合もある。このため、クライアント装置６に障害が発生した場合でも、サーバ装置８の設置場所に移動することなく、データ鍵の復元が行える構成が望まれている。また、サーバ装置７のサーバ情報７１０ｃ又はサーバ装置８のクライアント情報８１０ｃが、サーバ装置７又はサーバ装置８の障害等により破損したとしても、クライアント装置６から各データの復旧を可能にする様な構成が望まれている。
【００１８】
したがって、本発明は、上記問題を解決し、保護すべきデータを生成する複数の値を保持している複数のサーバ装置を運用しているサービス提供者に不正行為者がいたとしても、保護すべきデータが流出する危険性を低減させるシステムを提供することを目的とする。また、クライアント装置やサーバ装置の障害後のデータ復旧を、クライント装置側で実施できるシステムを提供することを目的とする。さらに、これらシステムで使用される装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明におけるシステムによれば、パスワードに基づきアカウント情報及び検証情報の対を生成し、アカウント情報を保存している装置は、入力されたパスワード及びアカウント情報により認証データを生成し、アカウント情報の対となる検証情報を保存している装置は、認証データと検証情報によりアカウント情報を保存している装置を認証し、パスワードに基づき、保護すべきデータから、保護すべきデータを生成する複数の値を生成し、保護すべきデータを生成する複数の値を、アカウント情報を保存している装置と検証情報を保存している装置に分散して保存する、データ分散管理システムであって、第１のアカウント情報及び第２のアカウント情報を有する第１の装置と、第１のアカウント情報の対である第１の検証情報を有する第２の装置と、第２のアカウント情報の対である第２の検証情報を有する第３の装置とを備えており、第１の装置は、７０ビット以上のランダム値を生成して第１のパスワードとする手段と、第２の装置と通信して、第３のアカウント情報及び第３の検証情報の対を生成する手段と、第３のアカウント情報を第３の装置に送信する手段とを備えており、第２の装置は、第３の検証情報を保存する手段を備えており、第３の装置は、第３のアカウント情報を第１の装置から受信して保存する手段を備えていることを特徴とする。
【００２０】
本発明における装置によれば、パスワードに基づきアカウント情報及び検証情報の対を生成し、アカウント情報を保存している装置は、入力されたパスワード及びアカウント情報により認証データを生成し、アカウント情報の対となる検証情報を保存している装置は、認証データと検証情報によりアカウント情報を保存している装置を認証し、パスワードに基づき、保護すべきデータから、保護すべきデータを生成する複数の値を生成し、保護すべきデータを生成する複数の値を、アカウント情報を保存している装置と検証情報を保存している装置に分散して保存する、データ分散管理システムで使用される装置であって、第１のアカウント情報及び第２のアカウント情報を保存する手段と、７０ビット以上のランダム値を生成して第１のパスワードとする手段と、第１のアカウント情報の対である第１の検証情報を有する装置と通信して、第３のアカウント情報を第１のパスワードに基づき生成する手段と、第３のアカウント情報を第２のアカウント情報の対である第２の検証情報を有する装置に送信する手段とを備えていることを特徴とする。
【発明の効果】
【００２１】
第１の装置が、７０ビット以上のランダム値を生成して第１のパスワードとし、この第１のパスワードに基づき、第２の装置と第３の装置との間の認証に使用する第３のアカウント情報及び第３の検証情報を生成する。第１の装置が機械的に生成した、全数探索が不可能な長さの第１のパスワードにより、第３のアカウント情報及び第３の検証情報を生成することで、第２の装置と第３の装置が、同一の運用者による運用される場合であっても、データ鍵が流出する危険性を低減させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明によるシステム構成図。
【図２】クライアント装置及びサーバ装置の構成図。
【図３】本発明によるアカウント情報及び検証情報の対を生成するためのシーケンス図。
【図４】シングルモードの説明図。
【図５】クラスタモードの説明図。
【発明を実施するための形態】
【００２３】
本発明を実施するための形態について、以下では図面を用いて詳細に説明する。
【００２４】
図１は、本発明によるシステム構成図であり、システムは、互いに、通信ネットワークにより接続されているクライアント装置１と、サーバ装置２及び３を備えている。なお、各装置の記憶部に保存される情報が図１には示されている。また、図２は、クライアント装置１及びサーバ装置２の構成図である。なお、サーバ装置３の構成は、サーバ装置２と同様であるため、その詳細は省略する。図１及び図２に示す様に、クライアント装置１の記憶部１１は、クライアント情報１１０ａを保存しており、サーバ装置２の記憶部２１は、クライアント情報１１０ａの対であるサーバ情報２１０ａを保存している。
【００２５】
図１に示す様に、クライアント情報１１０ａは、アカウント情報１１１ａ、データ鍵ＤＫを生成するための値ＣＤＫ１及び公開鍵ＰＫ１を示す情報を含んでいる。また、サーバ情報２１０ａは、アカウント情報１１１ａの対である検証情報２１１ａ、値ＣＤＫ１の対である値ＳＤＫ１、及び、公開鍵ＰＫ１の対である秘密鍵ＳＫ１を示す情報を含んでいる。なお、値ＣＤＫ１及び値ＳＤＫ１は、データ鍵ＤＫ及びクライント装置１のユーザのパスワードに基づき生成されており、データ鍵ＤＫは、値ＣＤＫ１及び値ＳＤＫ１並びにクライント装置１のユーザのパスワードから生成可能である。また、公開鍵ＰＫ１及び秘密鍵ＳＫ１の対は、例えば、ＲＳＡ等の任意の公開鍵暗号方式に従うものを使用することができる。
【００２６】
さらに、アカウント情報１１１ａは、ユーザ識別子及びアカウント情報のインデックスとして使用されるランダム値ｐｃｉｄ１と、秘密値ｃｓ１を示す情報を含んでいる。また、検証情報２１１ａは、アカウント情報１１１ａに保存されているランダム値ｐｃｉｄ１のハッシュ値であるｈｐｃｉｄ１と、アカウント情報１１１ａに保存されている秘密値ｃｓ１とクライント装置１のユーザのパスワードに基づき生成した秘密値ｓｓ１を示す情報を含んでいる。
【００２７】
ユーザがサーバ装置２による認証を受けるためクライアント装置１にパスワードを入力すると、クライアント装置１の認証部１２は、まず、任意の値ｐｍｓ１を生成し、値ｐｍｓ１を公開鍵で暗号化し、ユーザのパスワードと秘密値ｃｓ１でマスクして、ランダム値ｐｃｉｄ１と共にサーバ装置２の認証部２２に送信する。その後、クライアント装置１の認証部１２は、パスワード及び秘密値ｃｓから、秘密値ｓｓを生成し、生成した秘密値ｓｓ、ランダム値ｐｃｉｄ１、値ｐｍｓ１を所定の方法で連結した値を生成し、この生成した値のハッシュ値であるマスタ鍵ｍｓ１を生成する。
【００２８】
サーバ装置２の認証部２２は、クライアント装置１から受信したランダム値ｐｃｉｄ１のハッシュ値によりユーザを特定し、暗号鍵ＳＫ１と秘密値ｓｓ１により値ｐｍｓ１を取得する。続いて、サーバ装置２の認証部２２は、クライアント装置１から受信したランダム値ｐｃｉｄ１、秘密値ｓｓ１及び値ｐｍｓ１を所定の方法で連結した値を生成し、この生成した値のハッシュ値であるマスタ鍵ｍｓ１を生成する。
【００２９】
クライアント装置１の認証部１２は、マスタ鍵ｍｓ１と所定の値を連結した値のハッシュ値である認証データを生成し、この認証データをサーバ装置２に送信し、サーバ装置２の認証部２２は、マスタ鍵ｍｓ１により、クライアント装置１から受信する認証データを検証する。クライアント装置１の認証成功後、クライアント装置１の通信処理部１３とサーバ装置２の通信処理部２３は、マスタ鍵ｍｓ１に基づき、クライアント装置１とサーバ装置２間の通信を暗号化するための通信用暗号鍵を生成する。つまり、クライアント装置１とサーバ装置２は、クライアント装置１とサーバ装置２との間に安全な通信路を確立する。
【００３０】
この安全な通信路を使用してクライアント装置１は、サーバ装置２から値ＳＤＫ１を受信し、これにより、クライアント装置１は、値ＣＤＫ１、値ＳＤＫ１及びユーザのパスワードからデータ鍵ＤＫを生成することができる。
【００３１】
さらに、クライアント装置１とサーバ装置２が認証データを交換して実行する、サーバ装置２によるクライアント装置１の認証が成功する度に、クライアント装置１の情報生成更新部１４は、マスタ鍵ｍｓ１を使用して秘密値ｃｓ１及び値ＣＤＫ１を更新し、新たなランダム値を生成してランダム値ｐｃｉｄ１を更新する。また、情報生成更新部１４は、更新後のランダム値ｐｃｉｄ１から新たなハッシュ値ｈｐｃｉｄ１を計算してサーバ装置２に送信する。また、サーバ装置２の情報生成更新部２４は、マスタ鍵ｍｓ１を使用して秘密値ｓｓ１及び値ＳＤＫ１を更新し、また、ハッシュ値ｈｐｃｉｄ１を、クライアント装置１から受信する値に更新する。よって、データ鍵ＤＫを生成するためには、同じ回に生成された値ＳＤＫ１及び値ＣＤＫ１を入手する必要がある。値ＳＤＫ１及び値ＣＤＫ１は分散して管理されており、かつ、認証の都度更新されるため、データ鍵ＤＫは安全に保護される。
【００３２】
図１において、クライアント装置１の記憶部１１が保存するアカウント情報１１１ｂを含むクライアント情報１１０ｂ及びサーバ装置３が保存する検証情報３１１ｂを含むサーバ情報３１０ｂは、それぞれ、クライアント装置１が保存するクライント情報１１０ａ及びサーバ装置２が保存するサーバ情報２１０ａに対応する。なお、アカウント情報１１１ｂ及び検証情報３１１ｂの対と、値ＣＤＫ２及び値ＳＤＫ２の対は、アカウント情報１１１ａ及び検証情報２１１ａの対と値ＣＤＫ１及び値ＳＤＫ１の対と同じく、ユーザのパスワードに基づき生成されている。なお、アカウント情報及び検証情報の対の生成には、ランダム値を使用するため、同じパスワードに基づき生成したとしても、アカウント情報１１１ｂ及び検証情報３１１ｂの対と、アカウント情報１１１ａ及び検証情報２１１ａの対は異なるものとなる。同様に、値ＣＤＫ及び値ＳＤＫの対の生成には、ランダム値を使用するため、同じパスワードに基づき生成したとしても、値ＣＤＫ２及び値ＳＤＫ２の対と、値ＣＤＫ１及び値ＳＤＫ１の対は異なるものとなる。
【００３３】
また、図１において、サーバ装置３の記憶部が保存するアカウント情報３１１ｃを含むクライアント情報３１０ｃ及びサーバ装置２が保存する検証情報２１１ｃを含むサーバ情報２１０ｃは、それぞれ、クライアント装置１が保存するクライント情報１１０ａ及びサーバ装置２が保存するサーバ情報２１０ａに対応する。しかしながら、アカウント情報３１１ｃ及び検証情報２１１ｃの対と、値ＣＤＫ３及び値ＳＤＫ３の対を生成する元となっているパスワード（第１のパスワード）は、アカウント情報１１１ａ及び検証情報２１１ａの対の生成に使用しているユーザのパスワード（第２のパスワード）とは異なる。
【００３４】
具体的には、アカウント情報１１１ａ及び検証情報２１１ａ等を生成するために使用する第２のパスワードは、クライアント装置１のユーザが、記憶しておき、クライアント装置１がサーバ装置２又は３により認証を受ける度に、ユーザがクライアント装置１に入力するものであるため、人が覚えることができる程度の短い値となる可能性が高くなる。本発明においては、図２に示す様に、クライアント装置１にパスワード生成部１５を設け、アカウント情報３１１ｃ及び検証情報２１１ｃの対と、値ＣＤＫ３及び値ＳＤＫ３を生成する元となっている第１のパスワードを生成する。パスワード生成部１５は、ランダム値を生成するものであり、そのランダム値の長さは、全数探索による攻撃が現実的に不可能となる長さとする。より具体的には、現在のコンピュータの計算能力から少なくとも７０ビット、好ましくは８０ビット以上の値とする。
【００３５】
本実施形態においては、クライアント装置１にてパスワードを生成するため、情報更新生成部１４が、サーバ装置２と通信しながらアカウント情報３１１ｃを生成する。以下、詳細を、図３を用いて説明する。
【００３６】
まず、クライアント装置１には、クライアント情報１１０ａ及び１１０ｂを、サーバ装置２には、サーバ情報２１０ａを、サーバ装置３には、サーバ情報３１０ｂを、予め保存しておくものとする。なお、例えば、クライアント情報１１０ａ及びサーバ情報２１０ａの対は、クライアント装置１の情報生成更新部１４とサーバ装置２の情報生成更新部２４が、非特許文献１に記載の初期化プロトコルを実行して生成することができる。同様に、クライアント情報１１０ｂ及びサーバ情報３１０ｂの対は、クライアント装置１の情報生成更新部１４とサーバ装置３の情報生成更新部が初期化プロトコルを実行して生成することができる。また、これらクライアント情報及びサーバ情報の対は、ユーザが記憶する第２のパスワードに基づき生成されているものとする。
【００３７】
クライアント装置１のユーザは、サーバ装置２及び３による認証を受けるため、クライアント装置１に第２のパスワードを入力し、ステップＳ１において、クライアント装置１の認証部１２は、上述した通り、アカウント情報１１０ａに基づきマスタ鍵ｍｓ１を生成し、マスタ鍵ｍｓ１に基づき認証データを生成し、生成した認証データをサーバ装置２に送信する。同様に、クライアント装置１の認証部１２は、アカウント情報１１０ｂに基づきマスタ鍵ｍｓ２を生成し、マスタ鍵ｍｓ２に基づき認証データを生成し、生成した認証データをサーバ装置３に送信する。
【００３８】
ステップＳ２において、サーバ装置２の認証部２２は、クライアント装置１と同じマスタ鍵ｍｓ１をサーバ情報２１０ａから生成し、クライアント装置１から受信した認証データを検証する。同様に、ステップＳ２において、サーバ装置３の認証部は、クライアント装置１と同じマスタ鍵ｍｓ２をサーバ情報３１０ｂから生成し、クライアント装置１から受信した認証データを検証する。サーバ装置２及びサーバ装置３によるクライアント装置１の認証成功後、クライアント装置１及びサーバ装置２と、クライアント装置１及びサーバ装置３には、上述した様に、安全な通信路が構築される。ステップＳ３において、クライアント装置１のパスワード生成部１５は、所定の長さの第１のパスワードを生成する。
【００３９】
ステップＳ４において、クライアント装置１の情報生成更新部１４とサーバ装置２の情報生成更新部２４は、互いに通信して、クライアント情報３１０ｃとサーバ情報２１０ｃの対を第１のパスワードに基づき生成する。具体的には、アカウント情報３１１ｃ及び検証情報２１１ｃの対と、値ＣＤＫ３及びＳＤＫ３の対と、公開鍵ＰＫ３及び秘密鍵ＳＫ３の対を生成する。ここで、アカウント情報３１１ｃの秘密値ｃｓ３の初期値は、例えば、任意の値であり、検証情報２１１ｃの秘密値ｓｓ３の初期値は、第１のパスワードと所定の値を連結させた値のハッシュ値と、秘密値ｃｓ３の初期値の和とする。また、値ＣＤＫ３の初期値は、例えば、任意の値とし、値ＳＤＫ３の初期値は、第１のパスワードと所定の値を連結させた値のハッシュ値と、データ鍵ＤＫと、値ＣＤＫ３の初期値の和とする。また、公開鍵ＰＫ３及び秘密鍵ＳＫ３は、利用する任意の公開鍵暗号方式での生成方法に従う。また、クライアント装置１は、生成した第１のパスワードを、記憶部１１にクライアント情報１１０ｂとして保存する。また、サーバ装置２は、生成したサーバ情報２１０ｃを記憶部２１に保存する。
【００４０】
ステップＳ５において、クライアント装置１は、クライアント情報３１０ｃをサーバ装置３に送信し、サーバ装置３は、ステップＳ６において、クライアント情報３１０ｃを記憶部に保存する。
【００４１】
本発明においては、クライアント装置１が、サーバ装置２によるサーバ装置３の認証のためのクライアント情報３１０ｃをクライアント装置１が生成し、事前に構築したクライアント装置１とサーバ装置３との間の安全な通信路を使用して、クライアント情報３１０ｃをサーバ装置３に送信する。その際、クライアント装置１が機械的に生成した、全数探索が現実的に不可能な程度に長いパスワードを使用することで、サーバ装置１及び２の運用者の悪意によるデータ鍵ＤＫの流出の危険性を低減させることができる。
【００４２】
また、本発明において、クライアント装置１の情報生成更新部１４は、サーバ装置３の情報生成更新部と通信して、バックアップ用のアカウント情報１１１ｚを含むクライアント情報１１０ｚと、検証情報３１１ｚを含むサーバ情報３１０ｚの対の生成を行う。サーバ情報３１０ｚは、サーバ装置３の記憶部に保存されるが、クライアント装置１の情報生成更新部１４は、クライアント情報１１０ｚを、クライアント装置１の記憶部１１ではなく、クライアント装置１に接続可能な外部の記憶装置１９に保存する。なお、クライアント情報１１０ｚは、第１のパスワードを含んでいる。
【００４３】
本発明においては、アカウント情報を使用して認証を受ける度に、アカウント情報と対応する検証情報、さらに、値ＣＤＫと対応する値ＳＤＫは、マスタ鍵により更新される。したがって、更新されてゆくクライアント情報１１０ｂを記憶装置１９に保存するのではなく、全く異なるクライアント情報１１０ｚと、それに対応するサーバ情報３１０ｚを生成して、クライアント装置１及びサーバ装置３はバックアップとする。
【００４４】
例えば、クライアント装置１が故障したとしても、記憶装置１９のクライアント情報１１０ｚを使用して、サーバ装置３のサーバ情報３１０ｚを使用した認証を受けることで、サーバ装置３とは安全な通信路を確保することができる。これにより、データ鍵ＤＫを復元することが可能となる。また、この安全な通信路によりクライアント情報３１０ｃをサーバ装置３から安全に取得することができるため、クライアント情報３１０ｃ及びサーバ情報２１０ｃの対のいずれかが破損したとしても、サーバ装置３の設置場所に出向くことこれら情報の復旧を行うことができる。
【００４５】
なお、本発明のクライアント装置１、サーバ装置２及びサーバ装置３は、コンピュータを、上述したクライアント装置１、サーバ装置２又はサーバ装置３として機能させるプラグラムにより実現することができる。コンピュータは、プロセッサ、プログラムを保存しているメモリを備えており、メモリに保存されているプログラムを実行することで、上述したクライアント装置１、サーバ装置２及びサーバ装置３として動作する。
【図１】
2012155360.tif 000003
【図２】
2012155360.tif 000004
【図３】
2012155360.tif 000005
【図４】
2012155360.tif 000006
【図５】
2012155360.tif 000007