(57)【要約】【課題】重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管し、各データセンター間での部分データの不正取得を防止するためのセキュリティを確保するデータ分散保管システムを提供する。【解決手段】各サーバ１００はそれぞれクライアント端末３００から受信した部分データを保管するデータ保管部１１０を有し、クライアント端末３００は、重要データから秘密分散技術によりｋ個以上集めなければ重要データを復元できないｎ個（ｋ≦ｎ）の部分データを生成する分割処理部３１０と、ｎ個の部分データをｎ個のサーバ１００に保管し、重要データを復元するためのｍ個（ｋ≦ｍ≦ｎ）の部分データをｍ個のサーバ１００から収集する分散管理部３２０と、ｍ個の部分データから秘密分散技術により重要データを復元する復元処理部３３０とを有する。【選択図】図１
2013020313.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末において、重要データから秘密分散技術により複数の非重要データである部分データを生成し、前記各部分データを、ネットワークを介して接続された複数のサーバに分散保管するデータ分散保管システムであって、
前記各サーバは、それぞれ、前記クライアント端末から受信した前記部分データを保管するデータ保管部を有し、
前記クライアント端末は、ユーザから保管を指示された前記重要データから前記秘密分散技術によりｋ個以上集めなければ前記重要データを復元できないｎ個（ｋ≦ｎ）の前記部分データを生成する分割処理部と、
前記分割処理部によって生成されたｎ個の前記部分データを、ｎ個の前記サーバの前記データ保管部にそれぞれ保管し、また、前記重要データを復元するためのｍ個（ｋ≦ｍ≦ｎ）の前記部分データをｍ個の前記サーバからそれぞれ収集する分散管理部と、
前記ユーザから利用を指示された前記重要データについて、前記分散管理部から取得したｍ個の前記部分データから前記秘密分散技術により前記重要データを復元する復元処理部とを有することを特徴とするデータ分散保管システム。
【請求項２】
請求項１に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、ｎ個以上の前記サーバの中から、ｎ個の前記部分データを保管する対象となるｎ個の前記サーバを選択する際に、選択するｎ個の前記サーバを、保管する前記重要データ毎に順次ローテーションさせることを特徴とするデータ分散保管システム。
【請求項３】
請求項１または２に記載のデータ分散保管システムにおいて、
前記各サーバは、さらに、前記サーバへのアクセスに対しての認証処理を行う認証処理部を有し、
前記クライアント端末は、さらに、前記分散管理部が前記各サーバに対して前記部分データを保管する際、および前記各サーバから前記部分データを収集する際に、前記ユーザからユーザＩＤおよびパスワードの指定を受けて前記各サーバに対して順次もしくは並行的に認証の要求を送信する認証要求部を有し、
前記サーバの前記認証処理部は、前記サーバ毎に固有情報であるサーバシーズと、登録されたユーザのユーザＩＤ毎に、前記ユーザ毎に固有情報であるユーザシーズと、前記ユーザのパスワードを前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化したハッシュ化パスワードとを含むアカウント情報を保持するユーザ情報とを有し、前記クライアント端末から受信した前記認証の要求に対して、前記サーバシーズと対象の前記ユーザに係る前記ユーザシーズ、および生成した乱数を前記クライアント端末に対して送信し、
前記クライアント端末の前記認証要求部は、前記ユーザから指定されたパスワードを、前記サーバから受信した前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化し、さらに前記乱数を用いてハッシュ化したハッシュ値を前記サーバに送信し、
前記サーバの前記認証処理部は、前記クライアント端末から受信した前記ハッシュ値と、対象の前記ユーザに係る前記ハッシュ化パスワードを前記乱数を用いてハッシュ化した値とを比較して認証を行い、認証結果を前記クライアント端末に送信することを特徴とするデータ分散保管システム。
【請求項４】
請求項１〜３のいずれか１項に記載のデータ分散保管システムにおいて、
さらに、前記ネットワークに接続され、前記各サーバからの要求に基づいて、前記各サーバに対して前記シーズとなるシード値を生成して提供するマスタサーバを有することを特徴とするデータ分散保管システム。
【請求項５】
請求項１〜４のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、ｎ個の前記部分データをｎ個の前記サーバにそれぞれ保管した際に、前記各部分データがいずれの前記サーバに保管されているかの対応に係る情報を分散状況記録部に記録することを特徴とするデータ分散保管システム。
【請求項６】
請求項１〜５のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末は、前記秘密分散技術に係るｋ、ｍ、ｎの値、前記各サーバに対するアクセス情報、前記分散管理部がｎ個の前記部分データを保管する対象となるｎ個の前記サーバを選択する条件、前記分散管理部がｍ個の前記部分データを収集する対象となるｍ個の前記サーバを選択する条件、および前記分散管理部が前記サーバから前記部分データを取得できなかった場合の代替となる前記サーバの決定方法のうち、少なくとも１つ以上の情報が予め設定された設定情報を有することを特徴とするデータ分散保管システム。
【請求項７】
請求項１〜６のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、ｎ個の前記部分データをｎ個の前記サーバにそれぞれ保管する際に、ｎ個の前記部分データのいずれかを前記サーバに保管できなかった場合、もしくはｍ個の前記部分データをｍ個の前記サーバからそれぞれ収集する際に、ｋ個以上収集できなかった場合は、前記ユーザに対してエラーを応答することを特徴とするデータ分散保管システム。
【請求項８】
請求項１〜７のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末および前記各サーバは、前記部分データを送受信する際に、送信する前記部分データを所定の手段で暗号化することを特徴とするデータ分散保管システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子データの保管技術に関し、特に、重要データから秘密分散技術により複数の非重要データを生成して複数の拠点に分散保管するデータ分散保管システムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
情報システムを有する企業等においては、情報漏洩などの情報セキュリティ事故を防止するため、機密性の高いデータなどの重要なデータを保護する手段を講じる必要がある。一方でこれらを実現するための様々な手段も提案されている。
【０００３】
重要データを保護するための手段として、例えば、企業等が重要データをセキュリティ対策が多重に施されたデータセンターに保管することが考えられる。しかしながら、外部からアクセス可能なプライベートなデータセンターを独自に構築・運用するのは技術面・コスト面等で多大な負荷を要し、容易に実現できるものではない。
【０００４】
これに対して第三者が運用してサービスとして外部に提供しているデータセンターを利用することも考えられる。しかし、第三者が運用管理するデータセンターに自社の重要データを保管することはセキュリティ面で高いリスクが伴う。ましてや近年利用が拡大しているクラウドコンピューティング環境における仮想データセンターや仮想サーバに重要データを保管することは非常にリスクが高いことから、重要データを取り扱う業務を行う情報システムをクラウドコンピューティング環境を利用して構築するということがなかなか普及しない一因ともなっている。
【０００５】
一方、重要データを保管する際に、データを秘匿化したり改竄を防止したりする手段を講じて保管することも行われている。一般的には、暗号鍵を用いて重要データを暗号化して保管することが行われているが、この場合、暗号化されたデータには重要データの情報が全て含まれている。従って、例えば暗号化データが第三者に取得されたような場合、何らかの理由で当該第三者に暗号鍵も取得、解読された場合は容易に重要データが復元されてしまう。また、暗号鍵を取得されなくとも、暗号鍵が有限長であることから、理論上は有限回数の試行によって暗号化されたデータから重要データが復元されてしまう可能性を有する。
【０００６】
これに対し、重要データを強固に秘匿化する手法として、いわゆる秘密分散の技術も用いられている。秘密分散では、重要データを、それだけでは意味のない（重要データを復元・推測できない）非重要データに分割・分散することで、一部の非重要データが第三者に取得された場合でも、第三者による重要データの復元を理論上も不可能とすることができる。
【０００７】
秘密分散の手法としては種々のものが提案されている。例えば、特許第４０３９８１０号明細書（特許文献１）には、電子情報ファイルを複数の情報エレメントに分割し、分割された情報エレメントを選択し順序を変えて組み合わせることにより、２個以上の情報ブロックであって全ての情報ブロックを統合しなければ全ての情報エレメントを含むことにならないような情報ブロックを生成し、情報エレメントに分割した方法に係る分割情報と情報ブロックを生成した方法に係る形成情報を記録した分割抽出データを生成し、各情報ブロックと分割抽出データとのうち、少なくとも１つを証明局に保管し、他を分離して別々に保管することで電子情報の安全を確保する技術が開示されている。
【０００８】
一方、重要データに対応する非重要データや情報ブロック（以下では“部分データ”と記載する場合がある）を全て集めなくとも所定の個数以上集めれば重要データを復元可能な秘密分散の手法として、例えば、非特許文献１に記載されたような多項式補間を用いた（ｋ，ｎ）閾値秘密分散法が従来から用いられている。この手法によれば、ｎ個に分散した部分データのうち少なくともｋ個（ｋ≦ｎ）を集めれば重要データを復元することができる。また、この手法をさらに改良した種々の閾値秘密分散法も提案されている。
【０００９】
これに関連して、例えば、特開２００９−１３９９９０号公報（特許文献２）には、記憶装置に格納されたデータを、復元の際に基準個数の部分データが必要となる秘密分散法により、基準個数以上の所定の個数の部分データに分割する分割部と、部分データを他の情報処理装置に送信するとともに記憶装置から削除する送信部と、記憶装置へデータを復元する場合に、他の情報処理装置から部分データを取得して記憶装置に格納する取得部と、基準個数の部分データが記憶装置に格納されたことを条件にデータを復元する復元部とを備える情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４０３９８１０号明細書
【特許文献２】特開２００９−１３９９９０号公報
【非特許文献】
【００１１】
【非特許文献１】A.Shamir、"How to Share a Secret"、Communications of the ACM、vol.22 no.11 pp.612-613、1979.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
近年、ノート型ＰＣ（Personal Computer）などの携帯可能な情報処理端末が広く利用されるに従って、これらの端末自体の盗難や紛失等に伴う情報漏洩のリスクが高まっている。例えば、個人情報等を取り扱う企業などにおいては、従業員等がこれらの端末を紛失したような場合には、監督官庁への届出や報告等が必要となる場合がある。しかし、従来は実際の情報漏洩範囲については特定することができない場合がほとんどであり、紛失した時点で全てのデータが漏洩もしくはその可能性があると報告せざるを得なかった。
【００１３】
これに対して、端末内の重要データを含むデータを外部のサーバ等に保管することで端末の紛失等に伴う情報漏洩のリスクを低減することが考えられる。このとき、重要データをそのまま外部のサーバ等に保管するのではなく、例えば、上述した秘密分散の技術を利用して重要データを非重要データに分割・分散して部分データとし、これを外部のサーバ等に分散保管するようにすることで、例えば、クラウドコンピューティング環境における仮想データセンターや仮想サーバなどに保管するような場合においても情報漏洩のリスクを低減させることが可能である。
【００１４】
すなわち、各データセンター等に分散保管される部分データは、それ自体では意味をなさず、当該部分データのみからは重要データの内容を復元したり推測したりすることができない。従って、当該データセンターやサーバ等に不正に侵入し、当該部分データを取得した第三者はもちろん、例えば、各データセンターの管理者等の内部の者が悪意を持って当該部分データを取得した場合でも、取得された部分データから重要データの内容が漏洩する事態を防ぐことができる。
【００１５】
ここで、複数のデータセンター等に部分データを分散保管するシステム構成を考えた場合、通常は、ユーザが各データセンター等に対してそれぞれ個別にユーザ認証を行う必要があるが、この場合ユーザ認証の処理が煩雑となり、業務効率が低下することが懸念される。これに対して、通常は、ユーザが一度の認証を行うことで、ユーザ認証が必要な複数のデータセンターやサーバ等に対して個別の認証手続きを行わずにアクセスすることを可能とするいわゆるシングルサインオンの技術が用いられる。
【００１６】
シングルサインオンの環境を実現する手法としては、例えば、各サーバやシステムがＳＡＭＬ（Security Assertion Markup Language）プロトコル等を用いてサーバ間で通信を行って、認証サーバ等の特定のサーバで行った認証結果の情報を自動的に引き継ぐことで、各サーバ等でのユーザによる再度の認証手続きを不要とする手法などがある。
【００１７】
しかしながら、このような手法によるシングルサインオンの環境は、例えば、イントラネット上の社内システムなど、サーバやシステム間で認証情報の引き継ぎ・受け入れを許容する信頼関係が成立していることが前提となる。従って、各データセンターやサーバ等が異なる事業者等によって運用されている場合などでは、セキュリティ上の関係等からこのような信頼関係が成立しない場合もある。
【００１８】
また、このような環境で上述したようなシングルサインオンの手法を用いると、例えば、あるデータセンター等において、ユーザの認証処理のために認証サーバ等から取得した認証情報を、悪意を持った内部の者が利用して他のデータセンター等に対して不正にアクセスを行い、当該他のデータセンターに保管されている部分データを取得してしまうということも考えられる。従って、上述したような、重要データから秘密分散技術により生成された複数の部分データを各データセンター等に分散保管する仕組みにおいては、各データセンター間での部分データの不正取得を防止するためのセキュリティについても考慮する必要がある。
【００１９】
ここで、例えば特許文献１に記載された技術では、秘密分散された部分データ（情報ブロック）のうちの１つをいわゆる“信頼できる第三者機関（Trusted Third Party）”である証明局に供託しておくことで、重要データの復元の際に必ず証明局を介在させることができ、悪意を持った内部の者からの不正なアクセスに対しても対応することが可能である。しかしながら、システム構成として“信頼できる第三者機関”を設置する必要があり、コストや運用負荷の面で負担が大きくなってしまうことが考えられる。
【００２０】
一方、特許文献２に記載された技術では、主に、部分データをサーバや地理的に離れた他のクライアント端末などに分散保管することで、第三者によるクライアント端末の盗難やネットワークを介した不正侵入に対する情報漏洩のリスクを低下させることが目的とされているが、悪意を持った内部の者（例えば、他のクライアント端末の所有者など）からの不正なアクセスに対する考慮はされていない。
【００２１】
そこで本発明の目的は、重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管し、各データセンター間での部分データの不正取得を防止するためのセキュリティを確保することが可能なデータ分散保管システムを提供することにある。
【００２２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００２４】
本発明の代表的な実施の形態によるデータ分散保管システムは、クライアント端末において、重要データから秘密分散技術により複数の非重要データである部分データを生成し、前記各部分データを、ネットワークを介して接続された複数のサーバに分散保管するデータ分散保管システムであって、以下の特徴を有するものである。
【００２５】
すなわち、前記各サーバは、それぞれ、前記クライアント端末から受信した前記部分データを保管するデータ保管部を有し、前記クライアント端末は、ユーザから保管を指示された前記重要データから前記秘密分散技術によりｋ個以上集めなければ前記重要データを復元できないｎ個（ｋ≦ｎ）の前記部分データを生成する分割処理部と、前記分割処理部によって生成されたｎ個の前記部分データを、それぞれ異なる前記サーバの前記データ保管部に保管し、また、前記重要データを復元するためのｍ個（ｋ≦ｍ≦ｎ）の前記部分データを前記サーバからそれぞれ収集する分散管理部と、前記ユーザから利用を指示された前記重要データについて、前記分散管理部から取得したｍ個の前記部分データから前記秘密分散技術により前記重要データを復元する復元処理部とを有することを特徴とする。
【発明の効果】
【００２６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２７】
本発明の代表的な実施の形態によれば、重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管し、各データセンター間での部分データの不正取得を防止するためのセキュリティを確保することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態であるデータ分散保管システムの構成例について概要を示した図である。
【図２】本発明の一実施の形態におけるデータの保管の概念について説明した図である。
【図３】本発明の一実施の形態における部分データを保管するサーバの選択の例について示した図である
【図４】本発明の一実施の形態における認証処理の流れの例について概要を示した図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３０】
＜概要＞
本発明の一実施の形態であるデータ分散保管システムは、ユーザがクライアント端末上で、ユーザの重要データを保管する際に、当該重要データから秘密分散技術により複数の部分データを生成し、これらを複数のデータセンターのサーバに送信して分散保管する。また、各データセンターに対するシングルサインオンの仕組みを実装し、認証の際に、各データセンターで異なる固有情報（鍵）を用いて認証処理を行うことで、各データセンターへのアクセスを独立して安全に行えるようにし、各データセンター間でのセキュリティを確保する。これらにより、各データセンターの管理者等の内部の者であっても１つの部分データしか得ることができず、当該部分データから重要データを復元・推測することはできないため、ユーザは安全に重要データを保管することができる。
【００３１】
図２は、本実施の形態のデータ分散保管システムにおけるデータの保管の概念について説明した図である。データ分散保管システム１は、インターネット等のネットワーク４００に、クライアント端末３００と、複数のデータセンター１０（図２の例では１０ａ〜１０ｄの４つ）が接続された構成を有している。ここで、クライアント端末３００は、ユーザが業務等で通常使用し、重要データ５００の入力や参照などの処理を行う情報処理端末であり、例えば、ＰＣや、タブレット型端末、スマートフォン、携帯電話などの携帯端末などが該当する。
【００３２】
また、データセンター１０は、サーバ機器を保管して運用管理を行う拠点であり、例えば、多数のサーバ機器等を保管して高度な運用管理を行うことができる専用のデータセンター施設や、いわゆるコンテナ型やモジュール型などの可搬型のデータセンターなどであってもよいし、オフィスビル内のマシンルームなど専用ではない施設であってもよい。また、クラウドコンピューティング環境における仮想データセンターであってもよい。本実施の形態での各データセンター１０は、それぞれ、データを保持・記憶するためのストレージ機器等からなるデータ保管部１１０（図２の例では１１０ａ〜１１０ｄ）を有するサーバ１００（図２の例では１００ａ〜１００ｄ）を１台以上有している。
【００３３】
なお、これらの各データセンター１０は、地理的にも組織的にも相互に関連のないものとするのが望ましい。すなわち、例えば同一の敷地内や隣接する敷地に存在したり、同一もしくは関連する事業者等により運用されていたりなど、データセンター１０間で、管理者等が相互に物理的もしくは電子的にアクセスすることが可能な構成とはなっていないものとするのが望ましい。
【００３４】
上記のような環境で、ユーザからの指示に基づいて、クライアント端末３００に存在する重要データ５００についてセキュアな保管を行う場合、まず、クライアント端末３００において、重要データ５００から秘密分散技術を利用して複数の部分データ５１０（図２の例では５１０ａ〜５１０ｄの４つ）を生成する。それぞれの部分データ５１０は、上述したように、単独では意味をなさない非重要データである。なお、重要データ５００は漏洩を防止するために削除する。
【００３５】
利用する秘密分散技術（秘密分散のアルゴリズム）については特に限定されず、例えば、ｎ個の部分データ５１０うちｋ個以上集めれば重要データ５００を復元することができるが、ｋ個未満では原則として重要データ５００を復元することができない、いわゆる（ｋ，ｎ）閾値型（１＜ｋ≦ｎ）の秘密分散の手法を用いることができる。また、ｋ、ｎの値も特に限定されず、セキュリティの強度や処理速度等の要件などに応じて適宜決定することができる。なお、ｎの値（生成する部分データ５１０の数）はデータセンター１０の数以下であるものとする。換言すれば、ｎ個の部分データ５１０に対してｎ個以上のデータセンター１０を用意するものとする。
【００３６】
生成した部分データ５１０は、それぞれ重複しないように各データセンター１０に振り分けて送信し、データ保管部１１０に分散保管する。すなわち、同一の重要データ５００から生成した部分データ５１０は、それぞれ別個に異なるデータセンター１０に保管するものとし、いずれか２つ以上の部分データ５１０が同一のデータセンター１０に保管されることがないようにする。なお、クライアント端末３００上の各部分データ５１０は漏洩を防止するために削除する。
【００３７】
以上のように、重要データ５００から秘密分散技術により部分データ５１０を生成して各データセンター１０に分散保管することで、クライアント端末３００の盗難や紛失等による重要データ５００の漏洩を防止することができる。また、各データセンター１０は重要データ５００につき部分データ５１０を１つしか有していないため、データセンター１０に対して第三者が侵入して不正に部分データ５１０を取得したり、データセンター１０の管理者等の内部の者が部分データ５１０を取得したりした場合でも、部分データ５１０を１つしか得ることができない。当該部分データ５１０だけでは重要データ５００を復元・推測することはできないため、重要データ５００の内容が漏洩することはない。
【００３８】
また、各データセンター１０が地理的にも組織的にも相互に関連のないものとなっている場合には、データセンター１０の管理者等の内部の者が、他のデータセンター１０にアクセスすることも、後述する認証処理と合わせて、困難である。従って、例えば、データセンター１０の管理者等の内部の者が悪意を持った場合でも、他のデータセンター１０から部分データ５１０を不正に取得し、ｋ個以上集めて重要データ５００を復元してしまうという事態を防止することができる。
【００３９】
＜システム構成＞
以下では、本実施の形態のデータ分散保管システム１のシステム構成について説明する。図１は、本発明の一実施の形態であるデータ分散保管システム１の構成例について概要を示した図である。データ分散保管システム１は、ネットワーク４００に対して、複数のサーバ１００、マスタサーバ２００、およびクライアント端末３００が接続する構成を有する。なお、各サーバ１００は、上述の図２に示したとおり、地理的にも組織的にも相互に関連のないデータセンター１０内においてそれぞれ運用管理されているものとする。
【００４０】
サーバ１００は、サーバ機器によって構成されるコンピュータシステムであり、ファイルサーバもしくはストレージサーバ等として、ユーザ認証を経た後にクライアント端末３００等からのアクセスを受け付けてデータ（部分データ５１０）の保管サービスを提供する機能を有する。サーバ１００は、例えば、磁気ディスク等のストレージ機器からなるデータ保管部１１０およびソフトウェアプログラムにより実装される認証処理部１２０を有する。データ保管部１１０は、ＯＳ（Operating System）などの指示に基づいて、指定されたデータについての読み書きを行う。
【００４１】
認証処理部１２０は、サーバ１００へのアクセスに対しての認証処理を行う。認証処理部１２０は、認証処理を行う際に利用する情報として、ユーザ毎のアカウント情報からなるユーザ情報１３０を有する。ユーザ情報１３０は、例えば、データベースやファイルテーブル等によって構成され、例えば、登録されたユーザのユーザＩＤ毎に、ユーザ毎に異なる固有情報としてのユーザシーズ１３１、およびパスワードを所定の手順によりハッシュ化したハッシュ化パスワード１３２などのアカウント情報を有する。また、認証処理部１２０は、サーバ毎に異なる固有情報としてのサーバシーズ１４０を有する。
【００４２】
本実施の形態では、認証処理部１２０は、後述するように、クライアント端末３００との間でチャレンジ／レスポンス方式により認証処理を行う。すなわち、ユーザからの認証要求に対して、サーバシーズ１４０、ユーザシーズ１３１、およびチャレンジとしての乱数等を送信する。さらに、これらによってハッシュ化されたパスワード（ハッシュ値）をクライアント端末３００からレスポンスとして受信して、受信したハッシュ値と、ハッシュ化パスワード１３２を上記乱数によってハッシュ化したものとを比較して認証を行う。従って、認証処理部１２０は、乱数生成の機能やハッシュアルゴリズムを実装している。なお、これらの実装には公知の各種技術やアルゴリズムを利用することができる。サーバ１００とクライアント端末３００との間の通信経路のセキュリティが確保されるなどの場合には、チャレンジ／レスポンス方式以外の他の方式を採用するなどしてもよい。
【００４３】
マスタサーバ２００は、サーバ機器やＰＣ等によって構成されるコンピュータシステムであり、各サーバ１００に保持するユーザシーズ１３１およびサーバシーズ１４０を生成して提供する。各サーバ１００を代表して認証を行ういわゆる認証サーバではないため、ユーザ認証の機能は有さない。マスタサーバ２００は、例えば、ソフトウェアプログラムにより実装されるシーズ生成部２１０を有する。シーズ生成部２１０は、管理者等からの指示もしくは各サーバ１００からの要求等に基づいてシーズを生成し、ユーザシーズ１３１もしくはサーバシーズ１４０として、対象のサーバ１００にネットワーク４００を介して提供する。
【００４４】
シーズの生成方法やシーズのフォーマット等については特に限定されないが、例えば、所定の長さのユニークな文字列やバイナリデータを生成してシーズとすることができる。なお、マスタサーバ２００は、他のサーバ１００とは独立したデータセンター１０に設置されていてもよいし、いずれかのサーバ１００と同一のデータセンター１０に、外部からアクセス可能な構成により設置されていてもよい。
【００４５】
クライアント端末３００は、重要データ５００から秘密分散技術を利用して部分データ５１０を複数生成し、これらをそれぞれ重複しないように各サーバ１００（各データセンター１０）に振り分けて送信し、データ保管部１１０に分散保管する機能を有する。クライアント端末３００は、例えば、ソフトウェアプログラムにより実装される分割処理部３１０、分散管理部３２０、復元処理部３３０、認証要求部３４０およびインタフェース部３５０の各部と、データベースもしくはファイルテーブル等からなる分散状況３２１および設定情報３０１の各テーブルを有する。
【００４６】
分割処理部３１０は、後述するインタフェース部３５０を介してユーザからセキュアな保管を指示された重要データ５００から、設定情報３０１の設定内容等に従って秘密分散により各サーバ１００に分散保管する複数の部分データ５１０を生成する。上述したように、秘密分散の手法は特に限定されず、公知の（ｋ，ｎ）閾値型の秘密分散の手法を用いることができる。設定情報３０１には、例えば、利用する秘密分散のアルゴリズムを特定する情報や、ｋ、ｎなどのパラメータを予め設定しておくことができる。
【００４７】
分散管理部３２０は、重要データ５００の分散保管の際に、分割処理部３１０によって生成された部分データ５１０を、設定情報３０１の設定内容に基づく所定の条件に従って各サーバ１００に送信して分散保管するとともに、各部分データ５１０がいずれのサーバ１００に保管されているかの対応に係る情報を分散状況３２１に記録して管理する。
【００４８】
ｎ個より多数のサーバ１００が存在する場合、ｎ個のサーバ１００を選択し、各部分データ５１０をそれぞれどのサーバ１００に保管するかを決定する手法については種々のものが考えられる。
【００４９】
図３は、部分データ５１０を保管するサーバ１００の選択の例について示した図である。図３の例では、各重要データ５００（“重要データα”、“重要データβ”、“重要データγ”、…）から（３，４）閾値型の秘密分散により生成した４つの部分データ５１０（“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”）に対して、６つのサーバ１００（“サーバ＃１”〜“サーバ＃６”）から保管先となるサーバ１００を４つ選択して割り当てた場合を示している。
【００５０】
例えば、各サーバ１００（“サーバ＃１”〜“サーバ＃６”）をランダムあるいはスペック等に基づく優先順位等に従って順序付けしておき、そこからその時点で障害等により稼動していないサーバ１００（図３の例では、“重要データγ”を保管する際の“サーバ＃６”）を除外した上で、リストの順序に従ってｎ個のサーバ１００を順に選択するようにしてもよい。このとき、毎回リストの先頭（例えば“サーバ＃１”）からｎ個のサーバ１００を選択するようにしてもよいし、図３の例に示すように、選択する際の始点を保管する重要データ５００毎にずらして、選択するサーバ１００をローテーションするようにしてもよい。
【００５１】
選択するサーバ１００をローテーションすることで、複数の重要データ５００について、部分データ５１０の分散保管のされ方がそれぞれ異なるようにすることができる。これにより、例えば、複数のサーバ１００（図３の例では、網掛けされた“サーバ＃１”、“サーバ＃２”の２つ）で障害等により部分データ５１０の取得が不能となった場合に、復元できなくなる重要データ５００の範囲を一部に抑え（図３の例では“重要データα”のみ）、全ての重要データ５００が復元不能となるような事態を防止することができる。
【００５２】
選択したｎ個のサーバ１００に対して部分データ５１０を割り当てる手法についても種々のものが考えられる。例えば、図３の例に示すように、ｎ個のサーバ１００のリストに対して、ｎ個の部分データ５１０を順次割り当てるようにしてもよいし、各部分データ５１０をランダムに割り当てるようにしてもよい。
【００５３】
設定情報３０１には、例えば、分散保管先となる各サーバ１００に対するアクセス情報（ＩＰアドレスやホスト名等）、ｎ個より多数のサーバ１００が存在する場合にｎ個のサーバ１００を選択するための基準や条件（例えばサーバ１００の優先順位や順序付けされたリスト、ローテーションの際の方法等）などを予め設定しておくことができる。
【００５４】
また、分散管理部３２０は、後述する復元処理部３３０による重要データ５００の復元の際に、復元処理部３３０からの要求に基づいて、分散状況３２１の内容、および設定情報３０１の設定内容に基づく所定の条件に従って、各サーバ１００から、重要データ５００を復元するためのｍ個の部分データ５１０を収集して復元処理部３３０に受け渡す。
【００５５】
なお、収集する部分データ５１０の個数ｍの値は、重要データ５００を復元するために必要な部分データ５１０の数ｋ以上である必要があり、また、ｎ個全ての部分データ５１０を収集するものとしてもよい（ｋ≦ｍ≦ｎ）。設定情報３０１には、例えば、ｍの値や、ｍ＜ｎである場合に、対象となるｍ個のサーバ１００を選択するための基準や条件、障害等により対象のサーバ１００から部分データ５１０を取得できなかった場合の代替となるサーバ１００の決定方法などを予め設定しておくことができる。
【００５６】
なお、サーバ１００の障害等により、部分データ５１０の分散保管時にｎ個の部分データ５１０のうちいずれかを各サーバ１００に保管できなかった場合や、部分データ５１０の収集時にｋ個以上収集できなかった場合は、ユーザに対してエラーを応答するようにしてもよい。また、各サーバ１００との間で部分データ５１０の送受信を行う際に、クライアント端末３００および各サーバ１００がそれぞれ部分データ５１０に対して所定の暗号化を施した上で送受信することで、情報漏洩のリスクをさらに低減させるようにしてもよい。
【００５７】
復元処理部３３０は、インタフェース部３５０を介してユーザから参照や編集等の利用を指示された重要データ５００について、これを復元するために必要な数以上の部分データ５１０を分散管理部３２０に要求して取得し、取得した部分データ５１０から秘密分散の手法により重要データ５００を復元する。
【００５８】
認証要求部３４０は、分散管理部３２０が各サーバ１００に対して部分データ５１０を分散保管する際、および各サーバ１００から部分データ５１０を収集する際の、各サーバ１００に対する認証の要求を行う。例えば、ログイン画面を介してユーザからユーザＩＤおよびパスワードの入力を受け付け、後述するように、チャレンジ／レスポンス方式等により、各サーバ１００の認証処理部１２０との間で順次もしくは並行的にそれぞれ個別に認証処理を行うことで、シングルサインオンの機能を実現する。
【００５９】
ここでは、後述するように、認証要求の送信に対してサーバ１００の認証処理部１２０から送信されたサーバシーズ１４０、ユーザシーズ１３１、および乱数に基づいて、ユーザから指定されたパスワードを所定の手順によりハッシュ化し、これをサーバ１００の認証処理部１２０に送信することで認証処理を行う。従って、認証要求部３４０は、サーバ１００の認証処理部１２０が実装しているものと同一のハッシュアルゴリズムを実装している。
【００６０】
インタフェース部３５０は、クライアント端末３００における画面表示等のユーザインタフェースやデータの送受信などの入出力機能を有する。ユーザは、例えば、一般的なＯＳが有するファイル管理用の画面等を利用して、データ分散保管システム１の機能を利用することができる。
【００６１】
例えば、ファイル管理用の画面において重要データを特定のフォルダ等にドラッグ＆ドロップなどの簡易な操作により移動する。これをトリガとして、分割処理部３１０および分散管理部３２０によって、自動的に当該重要データ５００から（ｋ，ｎ）閾値型の秘密分散によりｎ個の部分データ５１０を生成し、各部分データ５１０をユーザに意識させずに各サーバ１００に分散保管することができる。なお、上述したように、このとき重要データ５００はクライアント端末３００から削除するが、ファイル管理用の画面上では、ユーザに意識させないよう、例えば、重要データ５００に対応するダミーファイル等を作成して残しておく。
【００６２】
また、例えば、ユーザは、ファイル管理用の画面において特定のフォルダにて管理されている重要データ５００のダミーファイル等に対して操作を行うことで、重要データ５００に対する参照や編集等の操作を行うことができる。すなわち、ダミーファイル等に対する操作をトリガとして、分散管理部３２０および復元処理部３３０によって、ダミーファイル等に対応する重要データ５００について、自動的に各サーバ１００からｍ個（ｋ≦ｍ≦ｎ）の部分データ５１０を収集し、重要データ５００を復元してユーザに利用可能とすることができる。
【００６３】
＜認証処理＞
以下では、本実施の形態のデータ分散保管システム１における認証処理の内容について説明する。本実施の形態のデータ分散保管システム１では、上述したように、複数のサーバ１００に対して部分データ５１０を分散保管する際、および複数のサーバ１００から部分データ５１０を収集する際に、ユーザによる各サーバ１００に対する個別の認証処理に伴う煩雑さを回避するため、シングルサインオンの仕組みを有する。
【００６４】
本実施の形態では、各データセンター１０が地理的にも組織的にも関連のないものであることから、例えば代表となる認証サーバ等での認証結果を、ＳＡＭＬプロトコル等によって各サーバ１００間で引き継ぐような認証手法ではなく、各データセンター１０間で異なる固有情報（鍵）を用いて個別に認証処理を行うことで、各データセンター１０へのアクセスを独立して安全に行える仕組みを有し、各データセンター１０間でのセキュリティを確保する。
【００６５】
認証処理を行うに当たっての初期状態として、各サーバ１００では、予め、マスタサーバ２００のシーズ生成部２１０によって生成されたシーズをそれぞれサーバシーズ１４０として保持しているものとする。さらに、各ユーザによって、ユーザＩＤ、パスワード等を含むアカウント情報の初期登録が事前に行われているものとする。このとき、アカウント情報として、ユーザＩＤ毎にそれぞれマスタサーバ２００のシーズ生成部２１０によって生成されたシーズをユーザシーズ１３１として保持しておく。さらに、パスワードについては、当該ユーザシーズ１３１およびサーバシーズ１４０をシード値として、所定のハッシュアルゴリズムによりハッシュ化したハッシュ化パスワード１３２として保持しておく。
【００６６】
パスワードを直接保持しないことで、パスワードの漏洩を防止することができる。また、ユーザ毎にユニークなユーザシーズ１３１をシード値としてハッシュ化を行うことで、例えば、複数のユーザによって偶然同一のパスワードが指定された場合でも、ユーザ毎にハッシュ値が異なるようにすることができる。
【００６７】
図４は、本実施の形態における認証処理の流れの例について概要を示した図である。まず、ユーザはクライアント端末３００の認証要求部３４０を介して、認証（ログイン）の要求を行う。このとき、例えば、ユーザＩＤおよびパスワードの情報をログイン画面等を介して指定する。認証要求部３４０は、指定されたユーザＩＤを含む認証の要求をサーバ１００へ送信する（Ｓ０１）。
【００６８】
ユーザＩＤを受信したサーバ１００の認証処理部１２０は、チャレンジ／レスポンス方式におけるチャレンジとしての乱数を生成し、さらにシーズを取得して、これらをクライアント端末３００に送信する（Ｓ０２）。ここでは、乱数に加えて、サーバシーズ１４０と、ユーザ情報１３０に保持されたユーザＩＤに対応するユーザシーズ１３１を取得する。
【００６９】
サーバシーズ１４０とユーザシーズ１３１、および乱数を受信したクライアント端末３００の認証要求部３４０では、ステップＳ０１において指定されたパスワードを所定のハッシュアルゴリズムによりハッシュ化する（Ｓ０３）。さらに、ステップＳ０３で得られたハッシュ値を、ユーザシーズ１３１をシード値としてハッシュ化する（Ｓ０４）。さらに、ステップＳ０４で得られたハッシュ値を、サーバシーズ１４０をシード値としてハッシュ化する（Ｓ０５）。さらに、ステップＳ０５で得られたハッシュ値を、乱数をシード値としてハッシュ化することでワンタイム化し、得られたハッシュ値をサーバ１００へ送信する（Ｓ０６）。
【００７０】
なお、上記のステップＳ０３〜Ｓ０５の一連のハッシュ化処理手順は、一例であり、同等の結果が得られる他の手順とすることも当然可能であるが、事前のユーザ登録の際にパスワードをハッシュ化してハッシュ化パスワード１３２を取得する際のハッシュ化処理と同一の手順である必要がある。また、例えば、ステップＳ０２において、サーバ１００からパスワードの有効期限が経過しているためパスワードを更新する旨の指示を受信した場合など、必要に応じて、ステップＳ０３を実行する前にパスワード（およびハッシュ化パスワード１３２）の更新を行えるようにしてもよい。
【００７１】
ハッシュ値を受信したサーバ１００の認証処理部１２０は、ユーザ情報１３０から対象のユーザＩＤに対応するハッシュ化パスワード１３２を取得し（Ｓ０７）、取得したハッシュ化パスワード１３２を、ステップＳ０２で生成した乱数をシード値としてハッシュ化する（Ｓ０８）。その後、得られたハッシュ値と、ステップＳ０７でクライアント端末３００から受信したハッシュ値とを比較することで認証処理を行い、認証結果をクライアント端末３００に送信する（Ｓ０９）。すなわち、比較の結果両者が一致すれば認証は成立し、不一致であれば認証は不成立となる。なお、このとき例えば、クライアント端末３００からの要求電文からＩＰアドレス等の発信元の所在に係る情報を取得し、当該情報が所定の範囲内にあるか否か等の他の条件を認証の成否の判断に加えてもよい。
【００７２】
クライアント端末３００の認証要求部３４０は、認証結果を受領し（Ｓ１０）、その後、必要に応じて他のサーバ１００に対しても順次上記の一連の処理を自動的に行い、各サーバ１００に対する認証処理を行う。各サーバ１００での認証処理は独立していることから、必要な複数のサーバ１００に対して上記の一連の処理を同時並行的に行うことも可能である。なお、必要なサーバ１００の情報については、例えば、クライアント端末３００の設定情報３０１等に予め設定しておいてもよいし、分散管理部３２０が、部分データ５１０の分散保管時や収集時に選択したサーバ１００を対象としてもよい。
【００７３】
以上の処理により、ユーザは、ユーザＩＤおよびパスワードの指定を１回行うだけで、必要な各サーバ１００に対して認証処理を行うことができる。
【００７４】
上述したような手法をとることにより、例えば、あるサーバ１００やデータセンター１０の管理者等が、対象のユーザのユーザシーズ１３１やハッシュ化パスワード１３２などのアカウント情報を自身のユーザ情報１３０から取得したとしても、これらの情報を利用して他のサーバ１００（データセンター１０）に対してなりすましによる認証を行うことはできず、サーバ１００間でのセキュリティは確保される。
【００７５】
これは、あるサーバ１００でのユーザのハッシュ化パスワード１３２の値は、自身のサーバシーズ１４０によってハッシュ化されたものであり、他のサーバ１００における当該ユーザのハッシュ化パスワード１３２は、当該他のサーバ１００のサーバシーズ１４０によってハッシュ化されたものであるため値が異なるからである。従って、両者を同じ乱数をシード値としてハッシュ化しても同一のハッシュ値とはならず、図４のステップＳ０９において認証は不成立となる。また、当該他のサーバ１００のサーバシーズ１４０を何らかの手段で取得してきたとしても、対象のユーザのパスワードを知らない限り、当該他のサーバ１００におけるハッシュ化パスワード１３２と同じ値のハッシュ値を生成することはできない。
【００７６】
以上に説明したように、本発明の一実施の形態であるデータ分散保管システム１によれば、重要データ５００から秘密分散技術により部分データ５１０を生成して各データセンター１０に分散保管することで、クライアント端末３００の盗難や紛失等による重要データ５００の漏洩を防止することができる。また、各データセンター１０は重要データ５００につき部分データ５１０を１つしか有していないため、データセンター１０に対して第三者が侵入して不正に部分データ５１０を取得したり、データセンター１０の管理者等の内部の者が部分データ５１０を取得したりした場合でも、部分データ５１０を１つしか得ることができない。当該部分データ５１０だけでは重要データ５００を復元・推測することはできないため、重要データ５００の内容が漏洩することはない。
【００７７】
また、サーバ１００毎に異なる固有情報（サーバシーズ１４０）を用いて認証を行うことで、データセンター１０の管理者等の内部の者が、悪意を持って他のデータセンター１０にアクセスすることも困難であることから、各データセンター１０間での部分データ５１０の不正取得を防止するためのセキュリティを確保することが可能となる。
【００７８】
また、ユーザによるクライアント端末３００からの一度の認証処理によって複数のサーバ１００に対するシングルサインオンを実現することができ、また、各サーバ１００での認証を同時並行的に行うことが可能である。従って、重要データ５００から生成された部分データ５１０の分散保管、および重要データ５００を復元するために必要な数以上の部分データ５１０の収集において、認証に要する時間を削減してレスポンスの低下を抑止することが可能となる。
【００７９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００８０】
本発明は、重要データから秘密分散技術により複数の非重要データを生成して複数の拠点に分散保管するデータ分散保管システムに利用可能である。
【符号の説明】
【００８１】
１…データ分散保管システム、
１０、１０ａ〜ｄ…データセンター、
１００、１００ａ〜ｄ…サーバ、１１０、１１０ａ〜ｄ…データ保管部、１２０…認証処理部、１３０…ユーザ情報、１３１…ユーザシーズ、１３２…ハッシュ化パスワード、１４０…サーバシーズ、
２００…マスタサーバ、２１０…シーズ生成部、
３００…クライアント端末、３０１…設定情報、３１０…分割処理部、３２０…分散管理部、３２１…分散状況、３３０…復元処理部、３４０…認証要求部、３５０…インタフェース部、
４００…ネットワーク、
５００…重要データ、５１０ａ〜ｄ…部分データ。
【図１】
2013020313.tif 000003
【図２】
2013020313.tif 000004
【図３】
2013020313.tif 000005
【図４】
2013020313.tif 000006
【手続補正書】
【提出日】平成23年9月14日(2011.9.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアント端末において、重要データから秘密分散技術により複数の非重要データである部分データを生成し、前記各部分データを、ネットワークを介して接続された複数のサーバに分散保管するデータ分散保管システムであって、
前記各サーバは、それぞれ、前記クライアント端末から受信した前記部分データを保管するデータ保管部を有し、
前記クライアント端末は、ユーザから保管を指示された前記重要データから前記秘密分散技術によりｋ個以上集めなければ前記重要データを復元できないｎ個（ｋ≦ｎ）の前記部分データを生成する分割処理部と、
前記分割処理部によって生成されたｎ個の前記部分データを、ｎ個以上の前記サーバの中から、保管する前記重要データ毎に順次ローテーションさせて選択したｎ個の前記サーバの前記データ保管部にそれぞれ保管し、また、前記重要データを復元するためのｍ個（ｋ≦ｍ≦ｎ）の前記部分データをｍ個の前記サーバからそれぞれ収集する分散管理部と、
前記ユーザから利用を指示された前記重要データについて、前記分散管理部から取得したｍ個の前記部分データから前記秘密分散技術により前記重要データを復元する復元処理部とを有することを特徴とするデータ分散保管システム。
【請求項２】
請求項１に記載のデータ分散保管システムにおいて、
前記各サーバは、さらに、前記サーバへのアクセスに対しての認証処理を行う認証処理部を有し、
前記クライアント端末は、さらに、前記分散管理部が前記各サーバに対して前記部分データを保管する際、および前記各サーバから前記部分データを収集する際に、前記ユーザからユーザＩＤおよびパスワードの指定を受けて前記各サーバに対して順次もしくは並行的に認証の要求を送信する認証要求部を有し、
前記サーバの前記認証処理部は、前記サーバ毎に固有情報であるサーバシーズと、登録されたユーザのユーザＩＤ毎に、前記ユーザ毎に固有情報であるユーザシーズと、前記ユーザのパスワードを前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化したハッシュ化パスワードとを含むアカウント情報を保持するユーザ情報とを有し、前記クライアント端末から受信した前記認証の要求に対して、前記サーバシーズと対象の前記ユーザに係る前記ユーザシーズ、および生成した乱数を前記クライアント端末に対して送信し、
前記クライアント端末の前記認証要求部は、前記ユーザから指定されたパスワードを、前記サーバから受信した前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化し、さらに前記乱数を用いてハッシュ化したハッシュ値を前記サーバに送信し、
前記サーバの前記認証処理部は、前記クライアント端末から受信した前記ハッシュ値と、対象の前記ユーザに係る前記ハッシュ化パスワードを前記乱数を用いてハッシュ化した値とを比較して認証を行い、認証結果を前記クライアント端末に送信することを特徴とするデータ分散保管システム。
【請求項３】
請求項２に記載のデータ分散保管システムにおいて、
さらに、前記ネットワークに接続され、前記各サーバからの要求に基づいて、前記各サーバに対して前記シーズとなるシード値を生成して提供するマスタサーバを有することを特徴とするデータ分散保管システム。
【請求項４】
請求項１〜３のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、ｎ個の前記部分データをｎ個の前記サーバにそれぞれ保管した際に、前記各部分データがいずれの前記サーバに保管されているかの対応に係る情報を分散状況記録部に記録することを特徴とするデータ分散保管システム。
【請求項５】
請求項１〜４のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末は、前記秘密分散技術に係るｋ、ｍ、ｎの値、前記各サーバに対するアクセス情報、前記分散管理部がｎ個の前記部分データを保管する対象となるｎ個の前記サーバを選択する条件、前記分散管理部がｍ個の前記部分データを収集する対象となるｍ個の前記サーバを選択する条件、および前記分散管理部が前記サーバから前記部分データを取得できなかった場合の代替となる前記サーバの決定方法のうち、少なくとも１つ以上の情報が予め設定された設定情報を有することを特徴とするデータ分散保管システム。
【請求項６】
請求項１〜５のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、ｎ個の前記部分データをｎ個の前記サーバにそれぞれ保管する際に、ｎ個の前記部分データのいずれかを前記サーバに保管できなかった場合、もしくはｍ個の前記部分データをｍ個の前記サーバからそれぞれ収集する際に、ｋ個以上収集できなかった場合は、前記ユーザに対してエラーを応答することを特徴とするデータ分散保管システム。
【請求項７】
請求項１〜６のいずれか１項に記載のデータ分散保管システムにおいて、
前記クライアント端末および前記各サーバは、前記部分データを送受信する際に、送信する前記部分データを所定の手段で暗号化することを特徴とするデータ分散保管システム。