説明

データ分散保管システム

【課題】重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管するにあたり、秘密分散を実装するライブラリ等に依存せずにデータの可用性を向上させるデータ分散保管システムを提供する。
【解決手段】各サーバ100はクライアント端末300から受信した部分データを保管するデータ保管部110を有し、クライアント端末300は、重要データから秘密分散技術によりk個以上集めなければ重要データを復元できないn個(k≦n)の部分データを生成する分割処理部310と、n個の部分データおよびn個のコピーを2n個のサーバ100に保管し、重要データを復元するためのm個(k≦m≦n)の異なる部分データもしくはコピーをm個のサーバ100から収集する分散管理部320と、m個の部分データもしくはコピーから秘密分散技術により重要データを復元する復元処理部330とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子データの保管技術に関し、特に、重要データから秘密分散技術により複数の非重要データを生成して複数の拠点に分散保管するデータ分散保管システムに適用して有効な技術に関するものである。
【背景技術】
【0002】
情報システムを有する企業等においては、情報漏洩などの情報セキュリティ事故を防止するため、機密性の高いデータなどの重要なデータを保護する手段を講じる必要がある。一方でこれらを実現するための様々な手段も提案されている。
【0003】
重要データを保護するための手段として、例えば、企業等が重要データをセキュリティ対策が多重に施されたデータセンターに保管することが考えられる。しかしながら、外部からアクセス可能なプライベートなデータセンターを独自に構築・運用するのは技術面・コスト面等で多大な負荷を要し、容易に実現できるものではない。
【0004】
これに対して第三者が運用してサービスとして外部に提供しているデータセンターを利用することも考えられる。しかし、第三者が運用管理するデータセンターに自社の重要データを保管することはセキュリティ面で高いリスクが伴う。ましてや近年利用が拡大しているクラウドコンピューティング環境における仮想データセンターや仮想サーバに重要データを保管することは非常にリスクが高いことから、重要データを取り扱う業務を行う情報システムをクラウドコンピューティング環境を利用して構築するということがなかなか普及しない一因ともなっている。
【0005】
一方、重要データを保管する際に、データを秘匿化したり改竄を防止したりする手段を講じて保管することも行われている。一般的には、暗号鍵を用いて重要データを暗号化して保管することが行われているが、この場合、暗号化されたデータには重要データの情報が全て含まれている。従って、例えば暗号化データが第三者に取得されたような場合、何らかの理由で当該第三者に暗号鍵も取得、解読された場合は容易に重要データが復元されてしまう。また、暗号鍵を取得されなくとも、暗号鍵が有限長であることから、理論上は有限回数の試行によって暗号化されたデータから重要データが復元されてしまう可能性を有する。
【0006】
これに対し、重要データを強固に秘匿化する手法として、いわゆる秘密分散の技術も用いられている。秘密分散では、重要データを、それだけでは意味のない(重要データを復元・推測できない)非重要データに分割・分散することで、一部の非重要データが第三者に取得された場合でも、第三者による重要データの復元を理論上も不可能とすることができる。
【0007】
秘密分散の手法としては種々のものが提案されている。例えば、特許第4039810号明細書(特許文献1)には、電子情報ファイルを複数の情報エレメントに分割し、分割された情報エレメントを選択し順序を変えて組み合わせることにより、2個以上の情報ブロックであって全ての情報ブロックを統合しなければ全ての情報エレメントを含むことにならないような情報ブロックを生成し、情報エレメントに分割した方法に係る分割情報と情報ブロックを生成した方法に係る形成情報を記録した分割抽出データを生成し、各情報ブロックと分割抽出データとのうち、少なくとも1つを証明局に保管し、他を分離して別々に保管することで電子情報の安全を確保する技術が開示されている。
【0008】
一方、重要データに対応する非重要データや情報ブロック(以下では“部分データ”と記載する場合がある)を全て集めなくとも所定の個数以上集めれば重要データを復元可能な秘密分散の手法として、例えば、非特許文献1に記載されたような多項式補間を用いた(k,n)閾値秘密分散法が従来から用いられている。この手法によれば、n個に分散した部分データのうち少なくともk個(k≦n)を集めれば重要データを復元することができる。また、この手法をさらに改良した種々の閾値秘密分散法も提案されている。
【0009】
これに関連して、例えば、特開2009−139990号公報(特許文献2)には、記憶装置に格納されたデータを、復元の際に基準個数の部分データが必要となる秘密分散法により、基準個数以上の所定の個数の部分データに分割する分割部と、部分データを他の情報処理装置に送信するとともに記憶装置から削除する送信部と、記憶装置へデータを復元する場合に、他の情報処理装置から部分データを取得して記憶装置に格納する取得部と、基準個数の部分データが記憶装置に格納されたことを条件にデータを復元する復元部とを備える情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特許第4039810号明細書
【特許文献2】特開2009−139990号公報
【非特許文献】
【0011】
【非特許文献1】A.Shamir、"How to Share a Secret"、Communications of the ACM、vol.22 no.11 pp.612-613、1979.
【発明の概要】
【発明が解決しようとする課題】
【0012】
近年、ノート型PC(Personal Computer)などの携帯可能な情報処理端末が広く利用されるに従って、これらの端末自体の盗難や紛失等に伴う情報漏洩のリスクが高まっている。例えば、個人情報等を取り扱う企業などにおいては、従業員等がこれらの端末を紛失したような場合には、監督官庁への届出や報告等が必要となる場合がある。しかし、従来は実際の情報漏洩範囲については特定することができない場合がほとんどであり、紛失した時点で全てのデータが漏洩もしくはその可能性があると報告せざるを得なかった。
【0013】
これに対して、端末内の重要データを含むデータを外部のサーバ等に保管することで端末の紛失等に伴う情報漏洩のリスクを低減することが考えられる。このとき、重要データをそのまま外部のサーバ等に保管するのではなく、例えば、上述した秘密分散の技術を利用して重要データを非重要データに分割・分散して部分データとし、これを外部のサーバ等に分散保管するようにすることで、例えば、クラウドコンピューティング環境における仮想データセンターや仮想サーバなどに保管するような場合においても情報漏洩のリスクを低減させることが可能である。
【0014】
すなわち、各データセンター等に分散保管される部分データは、それ自体では意味をなさず、当該部分データのみからは重要データの内容を復元したり推測したりすることができない。従って、当該データセンターやサーバ等に不正に侵入し、当該部分データを取得した第三者はもちろん、例えば、各データセンターの管理者等の内部の者が悪意を持って当該部分データを取得した場合でも、取得された部分データから重要データの内容が漏洩する事態を防ぐことができる。
【0015】
また、秘密分散の技術により重要データを複数の部分データに分割・分散した場合、部分データの一部が滅失した場合でも、所定の個数以上の部分データを集めることができれば元の重要データを復元できることから、データの可用性を向上させることもできる。例えば、(k,n)閾値型の秘密分散により、重要データからn個の部分データを生成した場合、k個以上の部分データを集めることができれば重要データを復元することができる。換言すれば、(n−k)個までの部分データの滅失には耐えることが可能である。
【0016】
しかしながら、現実の情報システムの実装において、重要データのセキュアな取り扱いが必要とされる場面では、暗号化の技術が広く一般に用いられているのと比較して、上述した秘密分散の技術は未だあまり適用されていないのが現状である。このため、現時点では、利用実績や処理速度等の観点で、実用に耐え得る機能や性能を有する秘密分散のライブラリは限られている。
【0017】
これらのライブラリでは、例えば、秘密分散に係る機能が固定化されていたり、制約があったり等、秘密分散によって得られる可用性を拡張・変更することができないことが多く、データの可用性が、使用する秘密分散のライブラリの機能や仕様に依存してしまうという状況となっている。
【0018】
そこで本発明の目的は、重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管するにあたり、秘密分散を実装するライブラリ等の機能もしくは仕様に依存せずにデータの可用性を向上させることができるデータ分散保管システムを提供することにある。
【0019】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0020】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0021】
本発明の代表的な実施の形態によるデータ分散保管システムは、クライアント端末において、重要データから秘密分散技術により複数の非重要データである部分データを生成し、前記各部分データを、ネットワークを介して接続された複数のサーバに分散保管するデータ分散保管システムであって、以下の特徴を有するものである。
【0022】
すなわち、前記各サーバは、それぞれ、前記クライアント端末から受信した前記部分データを保管するデータ保管部を有する。
【0023】
また、前記クライアント端末は、ユーザから保管を指示された前記重要データから前記秘密分散技術によりk個以上集めなければ前記重要データを復元できないn個(k≦n)の前記部分データを生成する分割処理部と、前記分割処理部によって生成されたn個の前記部分データ、および前記各部分データのn個のコピーを、2n個の前記サーバの前記データ保管部にそれぞれ保管し、また、前記重要データを復元するためのm個(k≦m≦n)の異なる前記部分データもしくは前記部分データのコピーをm個の前記サーバからそれぞれ収集する分散管理部と、前記ユーザから利用を指示された前記重要データについて、前記分散管理部から取得したm個の異なる前記部分データもしくは前記部分データのコピーから前記秘密分散技術により前記重要データを復元する復元処理部とを有する。
【発明の効果】
【0024】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0025】
本発明の代表的な実施の形態によれば、重要データから秘密分散技術により生成された複数の部分データを複数のデータセンターに分散保管するにあたり、秘密分散を実装するライブラリ等の機能もしくは仕様に依存せずにデータの可用性を向上させることが可能となる。
【図面の簡単な説明】
【0026】
【図1】本発明の一実施の形態であるデータ分散保管システムの構成例について概要を示した図である。
【図2】本発明の一実施の形態におけるデータの保管の概念について説明した図である。
【図3】本発明の一実施の形態におけるデータの可用性の例について説明した図である。
【図4】本発明の一実施の形態におけるデータの可用性の別の例について説明した図である。
【図5】本発明の一実施の形態における部分データを保管するサーバの選択の例について示した図である。
【図6】本発明の一実施の形態における認証処理の流れの例について概要を示した図である。
【発明を実施するための形態】
【0027】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0028】
<概要>
本発明の一実施の形態であるデータ分散保管システムは、ユーザがクライアント端末上で、ユーザの重要データを保管する際に、当該重要データから秘密分散技術により複数の部分データを生成し、これらを複数のデータセンターのサーバに送信して分散保管する。このとき、各部分データのコピーをそれぞれ別のデータセンターに保管して二重化する。これにより、後述するように、使用する秘密分散のライブラリの機能や仕様に依存せず、データの可用性を大きく向上させることができる。
【0029】
また、各データセンターに対するシングルサインオンの仕組みを実装し、認証の際に、各データセンターで異なる固有情報(鍵)を用いて認証処理を行うことで、各データセンターへのアクセスを独立して安全に行えるようにし、各データセンター間でのセキュリティを確保する。これらにより、各データセンターの管理者等の内部の者であっても1つの部分データしか得ることができず、当該部分データから重要データを復元・推測することはできないため、ユーザは安全に重要データを保管することができる。
【0030】
図2は、本実施の形態のデータ分散保管システムにおけるデータの保管の概念について説明した図である。データ分散保管システム1は、クライアント端末300と、複数のデータセンター10(図2の例では10a〜hの8つ)が図示しないネットワークを介して接続された構成を有している。ここで、クライアント端末300は、ユーザが業務等で通常使用し、重要データ500の入力や参照などの処理を行う情報処理端末であり、例えば、PCや、タブレット型端末、スマートフォン、携帯電話などの携帯端末などが該当する。
【0031】
また、データセンター10は、サーバ機器を保管して運用管理を行う拠点であり、例えば、多数のサーバ機器等を保管して高度な運用管理を行うことができる専用のデータセンター施設や、いわゆるコンテナ型やモジュール型などの可搬型のデータセンターなどであってもよいし、オフィスビル内のマシンルームなど専用ではない施設であってもよい。また、クラウドコンピューティング環境における仮想データセンターであってもよい。本実施の形態での各データセンター10は、それぞれ、データを保持・記憶するためのストレージ機器等からなるデータ保管部110(図2の例では110a〜110h)を有するサーバ(図示しない)を1台以上有している。
【0032】
なお、これらの各データセンター10は、地理的にも組織的にも相互に関連のないものとするのが望ましい。すなわち、例えば同一の敷地内や隣接する敷地に存在したり、同一もしくは関連する事業者等により運用されていたりなど、データセンター10間で、管理者等が相互に物理的もしくは電子的にアクセスすることが可能な構成とはなっていないものとするのが望ましい。
【0033】
上記のような環境で、ユーザからの指示に基づいて、クライアント端末300に存在する重要データ500についてセキュアな保管を行う場合、まず、クライアント端末300において、重要データ500から秘密分散技術を利用して複数の部分データ510(図2の例では510a〜510dの4つ)を生成する。それぞれの部分データ510は、上述したように、単独では意味をなさない非重要データである。なお、重要データ500は漏洩を防止するために削除する。
【0034】
利用する秘密分散技術(秘密分散のアルゴリズム)については特に限定されず、例えば、n個の部分データ510うちk個以上集めれば重要データ500を復元することができるが、k個未満では原則として重要データ500を復元することができない、いわゆる(k,n)閾値型(1<k≦n)の秘密分散の手法を用いることができる。また、k、nの値も特に限定されず、セキュリティの強度や可用性、処理速度等の要件などに応じて適宜決定することができる。なお、nの値(生成する部分データ510の数)はデータセンター10の数の半分以下であるものとする。換言すれば、n個の部分データ510(図2の例では4つ)に対して2n個以上のデータセンター10(図2の例では8つ)が利用可能となるようにする。
【0035】
生成した4つの部分データ510は、それぞれコピーを作成して二重化し、図示するように、重複しないように8つのデータセンター10に振り分けて送信し、データ保管部110に分散保管する。すなわち、同一の重要データ500から生成した部分データ510(以下では、特に断らない限り部分データ510にはコピーも含むものとする)は、それぞれ別個に異なるデータセンター10に保管するものとし、いずれか2つ以上の部分データ510が同一のデータセンター10に保管されることがないようにする。なお、クライアント端末300上の各部分データ510は漏洩を防止するために削除する。
【0036】
以上のように、重要データ500から秘密分散技術により部分データ510を生成して各データセンター10に分散保管することで、クライアント端末300の盗難や紛失等による重要データ500の漏洩を防止することができる。また、各データセンター10は重要データ500につき部分データ510を1つしか有していないため、データセンター10に対して第三者が侵入して不正に部分データ510を取得したり、データセンター10の管理者等の内部の者が部分データ510を取得したりした場合でも、部分データ510を1つしか得ることができない。当該部分データ510だけでは重要データ500を復元・推測することはできないため、重要データ500の内容が漏洩することはない。
【0037】
また、各データセンター10が地理的にも組織的にも相互に関連のないものとなっている場合には、データセンター10の管理者等の内部の者が、他のデータセンター10にアクセスすることも、後述する認証処理と合わせて、困難である。従って、例えば、データセンター10の管理者等の内部の者が悪意を持った場合でも、他のデータセンター10から部分データ510を不正に取得し、k個以上集めて重要データ500を復元してしまうという事態を防止することができる。
【0038】
また、各部分データ510をそれぞれ異なるデータセンター10に保管して二重化することで、使用する秘密分散のライブラリの機能や仕様に依存せず、通常データの単なるバックアップの場合と比較して、リソースの必要量に対するデータの可用性を大きく向上させることができる。
【0039】
例えば、重要データ500から(3,4)閾値型の秘密分散により4つの部分データ510を生成し、これらを4つのデータセンター10にそれぞれ分散保管した場合、そのうちの3つの部分データ510を集めることができれば、元の重要データ500を復元することができる。すなわち、1つのデータセンター10での障害等による部分データ510の滅失等には耐えることができる。これに対し、上述の図2の例に示したように、4つの部分データ510およびそれらのコピーを、8つの異なるデータセンター10にそれぞれ分散保管することにより、リソースの必要量の増加分に比して、全体としてデータの可用性を大きく向上させることができる。
【0040】
図3および図4は、本実施の形態のデータ分散保管システムにおけるデータの可用性の例について説明した図である。図3の例では、図2の例に示したように、部分データ510を8つのデータセンター10に二重化して分散保管している状態で、5つのデータセンター10a、c、d、f、hにおいて障害等により部分データ510が取得できなくなった状態を示している。このような場合でも、正常に稼働している残りの3つのデータセンター10b、e、gから3つの異なる部分データ510a、b、cを集めることができ、重要データ500を復元することができる場合があることを示している。
【0041】
一方で、図4の例に示すように、5つ未満のデータセンター10の障害等であっても、特定の部分データ510とそのコピーを保管するデータセンター10に障害等が偏った場合などでは、重要データ500の復元ができなくなる場合もある。図4の例では、4つのデータセンター10c、d、g、hにおいて障害等により部分データ510が取得できなくなった状態を示している。この場合、異なる部分データ510としては、部分データ510a、bの2つしか集めることができず、重要データ500を復元することができない。
【0042】
ここで、図4の例に示すような状態で、障害等となっているデータセンター10のうちのいずれか1つが正常に稼働しているとした場合、当該データセンター10から取得できる部分データ510は、部分データ510cもしくはdのいずれかとなるため、取得可能な部分データ510a、bと合わせて、全体として異なる部分データ510を3つ集めることができることになり、重要データ500を復元することが可能となる。ここから、3つのデータセンター10の障害等であれば、いずれのデータセンター10の障害等であっても必ず3つ以上の異なる部分データ510を集めることができ、重要データ500を復元することが可能であることが分かる。
【0043】
上述したように、例えば、重要データ500から(3,4)閾値型の秘密分散により4つの部分データ510を生成し、これらを4つのデータセンター10にそれぞれ分散保管した場合、そのうちの1つのデータセンター10での障害等には耐えることができる。ここで、図2の例に示したように4つの部分データ510とそれらのコピーを、8つの異なるデータセンター10に二重化して分散保管した場合、データの保管に要するリソースの量としては2倍必要となる。一方で、耐えることができるデータセンター10の障害等の数は、2倍の2つではなく、上述したように、最低でも3つ、最大で5つとなり、全体としてデータの可用性が2倍以上向上することになる。
【0044】
上記の内容を一般化すると、重要データ500から(k,n)閾値型の秘密分散によりn個の部分データ510を生成し、これらをn個の異なるデータセンター10に分散保管した場合、そのうちの(n−k)個のデータセンター10の障害等には耐えられるが、n個の部分データ510およびそれらのコピーを、2n個の異なるデータセンター10に分散保管した場合、耐えることができるデータセンター10の障害等の数は、2倍の2(n−k)個ではなく、最低でも(2(n−k)+1)個、最大で(2n−k)個となる。ここで、1<k≦nの場合、2(n−k)<(2(n−k)+1)<(2n−k)であることから、全体としてデータの可用性が2倍以上向上することになる。
【0045】
<システム構成>
以下では、本実施の形態のデータ分散保管システム1のシステム構成について説明する。図1は、本発明の一実施の形態であるデータ分散保管システム1の構成例について概要を示した図である。データ分散保管システム1は、インターネット等のネットワーク400に対して、複数のサーバ100、マスタサーバ200、およびクライアント端末300が接続する構成を有する。なお、上述したように、各サーバ100は、地理的にも組織的にも相互に関連のないデータセンター10内においてそれぞれ運用管理されているものとする。また、サーバ100(データセンター10)の数は、重要データ500から(k,n)閾値型の秘密分散によって生成されるn個の部分データ510に対して、2n個以上が利用可能となるようにする。
【0046】
サーバ100は、サーバ機器によって構成されるコンピュータシステムであり、ファイルサーバもしくはストレージサーバ等として、ユーザ認証を経た後にクライアント端末300等からのアクセスを受け付けてデータ(部分データ510)の保管サービスを提供する機能を有する。サーバ100は、例えば、磁気ディスク等のストレージ機器からなるデータ保管部110およびソフトウェアプログラムにより実装される認証処理部120を有する。データ保管部110は、OS(Operating System)などの指示に基づいて、指定されたデータについての読み書きを行う。
【0047】
認証処理部120は、サーバ100へのアクセスに対しての認証処理を行う。認証処理部120は、認証処理を行う際に利用する情報として、ユーザ毎のアカウント情報からなるユーザ情報130を有する。ユーザ情報130は、例えば、データベースやファイルテーブル等によって構成され、例えば、登録されたユーザのユーザID毎に、ユーザ毎に異なる固有情報としてのユーザシーズ131、およびパスワードを所定の手順によりハッシュ化したハッシュ化パスワード132などのアカウント情報を有する。また、認証処理部120は、サーバ毎に異なる固有情報としてのサーバシーズ140を有する。
【0048】
本実施の形態では、認証処理部120は、後述するように、クライアント端末300との間でチャレンジ/レスポンス方式により認証処理を行う。すなわち、ユーザからの認証要求に対して、サーバシーズ140、ユーザシーズ131、およびチャレンジとしての乱数等を送信する。さらに、これらによってハッシュ化されたパスワード(ハッシュ値)をクライアント端末300からレスポンスとして受信して、受信したハッシュ値と、ハッシュ化パスワード132を上記乱数によってハッシュ化したものとを比較して認証を行う。従って、認証処理部120は、乱数生成の機能やハッシュアルゴリズムを実装している。なお、これらの実装には公知の各種技術やアルゴリズムを利用することができる。サーバ100とクライアント端末300との間の通信経路のセキュリティが確保されるなどの場合には、チャレンジ/レスポンス方式以外の他の方式を採用するなどしてもよい。
【0049】
マスタサーバ200は、サーバ機器やPC等によって構成されるコンピュータシステムであり、各サーバ100に保持するユーザシーズ131およびサーバシーズ140を生成して提供する。各サーバ100を代表して認証を行ういわゆる認証サーバではないため、ユーザ認証の機能は有さない。マスタサーバ200は、例えば、ソフトウェアプログラムにより実装されるシーズ生成部210を有する。シーズ生成部210は、管理者等からの指示もしくは各サーバ100からの要求等に基づいてシーズを生成し、ユーザシーズ131もしくはサーバシーズ140として、対象のサーバ100にネットワーク400を介して提供する。
【0050】
シーズの生成方法やシーズのフォーマット等については特に限定されないが、例えば、所定の長さのユニークな文字列やバイナリデータを生成してシーズとすることができる。なお、マスタサーバ200は、他のサーバ100とは独立したデータセンター10に設置されていてもよいし、いずれかのサーバ100と同一のデータセンター10に、外部からアクセス可能な構成により設置されていてもよい。
【0051】
クライアント端末300は、重要データ500から秘密分散技術を利用して部分データ510を複数生成し、さらに各部分データ510のコピーを生成して、これらをそれぞれ重複しないように各サーバ100(各データセンター10)に振り分けて送信し、データ保管部110に分散保管する機能を有する。クライアント端末300は、例えば、ソフトウェアプログラムにより実装される分割処理部310、分散管理部320、復元処理部330、認証要求部340およびインタフェース部350の各部と、データベースもしくはファイルテーブル等からなる分散状況321および設定情報301の各テーブルを有する。
【0052】
分割処理部310は、後述するインタフェース部350を介してユーザからセキュアな保管を指示された重要データ500から、設定情報301の設定内容等に従って秘密分散により各サーバ100に分散保管する複数の部分データ510を生成する。上述したように、秘密分散の手法は特に限定されず、公知の(k,n)閾値型の秘密分散の手法を用いることができる。設定情報301には、例えば、利用する秘密分散のアルゴリズムを特定する情報や、k、nなどのパラメータを予め設定しておくことができる。
【0053】
分散管理部320は、重要データ500の分散保管の際に、分割処理部310によって秘密分散により生成された各部分データ510について、それぞれコピーを生成し、これらを設定情報301の設定内容に基づく所定の条件に従って各サーバ100に送信して分散保管するとともに、各部分データ510がいずれのサーバ100に保管されているかの対応に係る情報を分散状況321に記録して管理する。
【0054】
各部分データ510をそれぞれどのサーバ100に保管するかを決定する手法については種々のものが考えられる。図5は、部分データ510を保管するサーバ100の選択の例について示した図である。図5の例では、各重要データ500(“重要データα”、“重要データβ”、“重要データγ”、…)から(3,4)閾値型の秘密分散により生成した4つの部分データ510(“A”、“B”、“C”、“D”)およびそれらのコピー(“a”、“b”、“c”、“d”)に対して、10個のサーバ100(“サーバ#1”〜“サーバ#10”)から保管先となるサーバ100を8つ選択して割り当てた場合を示している。
【0055】
例えば、各サーバ100(“サーバ#1”〜“サーバ#10”)をランダムあるいはスペック等に基づく優先順位等に従って順序付けしておき、そこからその時点で障害等により稼動していないサーバ100(図5の例では、“重要データγ”を保管する際の“サーバ#6”)を除外した上で、リストの順序に従って2n個のサーバ100を順に選択するようにしてもよい。このとき、毎回リストの先頭(例えば“サーバ#1”)から2n個のサーバ100を選択するようにしてもよいし、図5の例に示すように、選択する際の始点を保管する重要データ500毎にずらして、選択するサーバ100をローテーションするようにしてもよい。
【0056】
選択するサーバ100をローテーションすることで、複数の重要データ500について、部分データ510の分散保管のされ方がそれぞれ異なるようにすることができる。これにより、例えば、複数のサーバ100(図5の例では、網掛けされた“サーバ#1”、“サーバ#2”、“サーバ#5”、“サーバ#6”の4つ)で障害等により部分データ510の取得が不能となった場合に、復元できなくなる重要データ500の範囲を一部に抑え(図5の例では“重要データα”のみ)、全ての重要データ500が復元不能となるような事態を防止することができる。
【0057】
選択した2n個のサーバ100に対して部分データ510を割り当てる手法についても種々のものが考えられる。例えば、図5の例に示すように、2n個のサーバ100のリストに対して、n個の部分データ510、n個のコピーの順で順次割り当てるようにしてもよいし、各部分データ510をランダムに割り当てるようにしてもよい。また、ある部分データ510とそのコピーが相互に地理的に近いサーバ100(データセンター10)に保管されないように、例えば、2n個のサーバ100のリストを地理的距離に基づいて予め2つのグループに分類してから、それぞれのグループに属するサーバ100に、部分データ510とそのコピーをそれぞれ分離して割り当てる等の考慮を行ってもよい。
【0058】
設定情報301には、例えば、分散保管先となる各サーバ100に対するアクセス情報(IPアドレスやホスト名等)、複数のサーバ100の中から2n個のサーバ100を選択し、部分データ510とそのコピーを割り当てるための基準や条件(例えばサーバ100の優先順位や順序付けされたリスト、ローテーションの際の方法等)などを予め設定しておくことができる。
【0059】
また、分散管理部320は、後述する復元処理部330による重要データ500の復元の際に、復元処理部330からの要求に基づいて、分散状況321の内容、および設定情報301の設定内容に基づく所定の条件に従って、各サーバ100から、重要データ500を復元するための異なるm個の部分データ510(もしくはそのコピー)を収集して復元処理部330に受け渡す。
【0060】
なお、収集する部分データ510の個数mの値は、重要データ500を復元するために必要な閾値k以上である必要があり、また、n個全ての部分データ510を収集するものとしてもよい(k≦m≦n)。設定情報301には、例えば、mの値や、m<nである場合に、対象となるm個のサーバ100を選択するための基準や条件、障害等により対象のサーバ100から部分データ510を取得できなかった場合の代替となるサーバ100の決定方法(例えば、取得できなかった部分データ510に対するコピーを取得するのか、他の部分データ510を取得するのか等)などを予め設定しておくことができる。
【0061】
なお、サーバ100の障害等により、例えば、部分データ510の分散保管時にn個の部分データ510のうちいずれかとそのコピーの双方とも各サーバ100に保管できなかった場合や、部分データ510の収集時に異なるk個以上を収集できなかったなどの場合は、ユーザに対してエラーを応答するようにしてもよい。また、各サーバ100との間で部分データ510の送受信を行う際に、クライアント端末300および各サーバ100がそれぞれ部分データ510に対して所定の暗号化を施した上で送受信することで、情報漏洩のリスクをさらに低減させるようにしてもよい。
【0062】
復元処理部330は、インタフェース部350を介してユーザから参照や編集等の利用を指示された重要データ500について、これを復元するために必要な数以上の異なる部分データ510を分散管理部320に要求して取得し、取得した部分データ510から秘密分散の手法により重要データ500を復元する。
【0063】
認証要求部340は、分散管理部320が各サーバ100に対して部分データ510を分散保管する際、および各サーバ100から部分データ510を収集する際の、各サーバ100に対する認証の要求を行う。例えば、ログイン画面を介してユーザからユーザIDおよびパスワードの入力を受け付け、後述するように、チャレンジ/レスポンス方式等により、各サーバ100の認証処理部120との間で順次もしくは並行的にそれぞれ個別に認証処理を行うことで、シングルサインオンの機能を実現する。
【0064】
ここでは、後述するように、認証要求の送信に対してサーバ100の認証処理部120から送信されたサーバシーズ140、ユーザシーズ131、および乱数に基づいて、ユーザから指定されたパスワードを所定の手順によりハッシュ化し、これをサーバ100の認証処理部120に送信することで認証処理を行う。従って、認証要求部340は、サーバ100の認証処理部120が実装しているものと同一のハッシュアルゴリズムを実装している。
【0065】
インタフェース部350は、クライアント端末300における画面表示等のユーザインタフェースやデータの送受信などの入出力機能を有する。ユーザは、例えば、一般的なOSが有するファイル管理用の画面等を利用して、データ分散保管システム1の機能を利用することができる。
【0066】
例えば、ファイル管理用の画面において重要データを特定のフォルダ等にドラッグ&ドロップなどの簡易な操作により移動する。これをトリガとして、分割処理部310および分散管理部320によって、自動的に当該重要データ500から(k,n)閾値型の秘密分散によりn個の部分データ510を生成し、各部分データ510をユーザに意識させずに各サーバ100に分散保管することができる。なお、上述したように、このとき重要データ500はクライアント端末300から削除するが、ファイル管理用の画面上では、ユーザに意識させないよう、例えば、重要データ500に対応するダミーファイル等を作成して残しておく。
【0067】
また、例えば、ユーザは、ファイル管理用の画面において特定のフォルダにて管理されている重要データ500のダミーファイル等に対して操作を行うことで、重要データ500に対する参照や編集等の操作を行うことができる。すなわち、ダミーファイル等に対する操作をトリガとして、分散管理部320および復元処理部330によって、ダミーファイル等に対応する重要データ500について、自動的に各サーバ100から異なるm個(k≦m≦n)の部分データ510を収集し、重要データ500を復元してユーザに利用可能とすることができる。
【0068】
<認証処理>
以下では、本実施の形態のデータ分散保管システム1における認証処理の内容について説明する。本実施の形態のデータ分散保管システム1では、上述したように、複数のサーバ100に対して部分データ510を分散保管する際、および複数のサーバ100から部分データ510を収集する際に、ユーザによる各サーバ100に対する個別の認証処理に伴う煩雑さを回避するため、シングルサインオンの仕組みを有する。
【0069】
シングルサインオンの環境を実現する手法としては、例えば、各サーバ100がSAML(Security Assertion Markup Language)プロトコル等を用いてサーバ100間で通信を行って、認証サーバ等の特定のサーバで行った認証結果の情報を自動的に引き継ぐことで、各サーバ100でのユーザによる再度の認証手続きを不要とする手法などがある。
【0070】
しかしながら、このような手法によるシングルサインオンの環境は、例えば、イントラネット上の社内システムなど、サーバ100間で認証情報の引き継ぎ・受け入れを許容する信頼関係が成立していることが前提となる。従って、本実施の形態のように、各データセンター10が地理的にも組織的にも関連のないものである場合は、セキュリティ上の関係等からこのような信頼関係が成立しない場合もある。
【0071】
また、このような環境で上述したようなシングルサインオンの手法を用いると、例えば、あるサーバ100において、ユーザの認証処理のために認証サーバ等から取得した認証情報を、悪意を持った内部の者が利用して他のサーバ100に対して不正にアクセスを行い、当該他のサーバ100に保管されている部分データ510を取得してしまうということも考えられる。従って、本実施の形態のようなデータ分散保管システム1の環境では、各サーバ100(データセンター10)間での部分データ510の不正取得を防止するためのセキュリティについても考慮する必要がある。
【0072】
本実施の形態では、例えば代表となる認証サーバ等での認証結果をSAMLプロトコル等によって各サーバ100間で引き継ぐような認証手法ではなく、各データセンター10間で異なる固有情報(鍵)を用いて個別に認証処理を行うことで、各データセンター10へのアクセスを独立して安全に行える仕組みを有し、各データセンター10間でのセキュリティを確保する。
【0073】
認証処理を行うに当たっての初期状態として、各サーバ100では、予め、マスタサーバ200のシーズ生成部210によって生成されたシーズをそれぞれサーバシーズ140として保持しているものとする。さらに、各ユーザによって、ユーザID、パスワード等を含むアカウント情報の初期登録が事前に行われているものとする。このとき、アカウント情報として、ユーザID毎にそれぞれマスタサーバ200のシーズ生成部210によって生成されたシーズをユーザシーズ131として保持しておく。さらに、パスワードについては、当該ユーザシーズ131およびサーバシーズ140をシード値として、所定のハッシュアルゴリズムによりハッシュ化したハッシュ化パスワード132として保持しておく。
【0074】
パスワードを直接保持しないことで、パスワードの漏洩を防止することができる。また、ユーザ毎にユニークなユーザシーズ131をシード値としてハッシュ化を行うことで、例えば、複数のユーザによって偶然同一のパスワードが指定された場合でも、ユーザ毎にハッシュ値が異なるようにすることができる。
【0075】
図6は、本実施の形態における認証処理の流れの例について概要を示した図である。まず、ユーザはクライアント端末300の認証要求部340を介して、認証(ログイン)の要求を行う。このとき、例えば、ユーザIDおよびパスワードの情報をログイン画面等を介して指定する。認証要求部340は、指定されたユーザIDを含む認証の要求をサーバ100へ送信する(S01)。
【0076】
ユーザIDを受信したサーバ100の認証処理部120は、チャレンジ/レスポンス方式におけるチャレンジとしての乱数を生成し、さらにシーズを取得して、これらをクライアント端末300に送信する(S02)。ここでは、乱数に加えて、サーバシーズ140と、ユーザ情報130に保持されたユーザIDに対応するユーザシーズ131を取得する。
【0077】
サーバシーズ140とユーザシーズ131、および乱数を受信したクライアント端末300の認証要求部340では、ステップS01において指定されたパスワードを所定のハッシュアルゴリズムによりハッシュ化する(S03)。さらに、ステップS03で得られたハッシュ値を、ユーザシーズ131をシード値としてハッシュ化する(S04)。さらに、ステップS04で得られたハッシュ値を、サーバシーズ140をシード値としてハッシュ化する(S05)。さらに、ステップS05で得られたハッシュ値を、乱数をシード値としてハッシュ化することでワンタイム化し、得られたハッシュ値をサーバ100へ送信する(S06)。
【0078】
なお、上記のステップS03〜S05の一連のハッシュ化処理手順は、一例であり、同等の結果が得られる他の手順とすることも当然可能であるが、事前のユーザ登録の際にパスワードをハッシュ化してハッシュ化パスワード132を取得する際のハッシュ化処理と同一の手順である必要がある。また、例えば、ステップS02において、サーバ100からパスワードの有効期限が経過しているためパスワードを更新する旨の指示を受信した場合など、必要に応じて、ステップS03を実行する前にパスワード(およびハッシュ化パスワード132)の更新を行えるようにしてもよい。
【0079】
ハッシュ値を受信したサーバ100の認証処理部120は、ユーザ情報130から対象のユーザIDに対応するハッシュ化パスワード132を取得し(S07)、取得したハッシュ化パスワード132を、ステップS02で生成した乱数をシード値としてハッシュ化する(S08)。その後、得られたハッシュ値と、ステップS07でクライアント端末300から受信したハッシュ値とを比較することで認証処理を行い、認証結果をクライアント端末300に送信する(S09)。すなわち、比較の結果両者が一致すれば認証は成立し、不一致であれば認証は不成立となる。なお、このとき例えば、クライアント端末300からの要求電文からIPアドレス等の発信元の所在に係る情報を取得し、当該情報が所定の範囲内にあるか否か等の他の条件を認証の成否の判断に加えてもよい。
【0080】
クライアント端末300の認証要求部340は、認証結果を受領し(S10)、その後、必要に応じて他のサーバ100に対しても順次上記の一連の処理を自動的に行い、各サーバ100に対する認証処理を行う。各サーバ100での認証処理は独立していることから、必要な複数のサーバ100に対して上記の一連の処理を同時並行的に行うことも可能である。なお、必要なサーバ100の情報については、例えば、クライアント端末300の設定情報301等に予め設定しておいてもよいし、分散管理部320が、部分データ510の分散保管時や収集時に選択したサーバ100を対象としてもよい。
【0081】
以上の処理により、ユーザは、ユーザIDおよびパスワードの指定を1回行うだけで、必要な各サーバ100に対して認証処理を行うことができる。
【0082】
上述したような手法をとることにより、例えば、あるサーバ100やデータセンター10の管理者等が、対象のユーザのユーザシーズ131やハッシュ化パスワード132などのアカウント情報を自身のユーザ情報130から取得したとしても、これらの情報を利用して他のサーバ100(データセンター10)に対してなりすましによる認証を行うことはできず、サーバ100間でのセキュリティは確保される。
【0083】
これは、あるサーバ100でのユーザのハッシュ化パスワード132の値は、自身のサーバシーズ140によってハッシュ化されたものであり、他のサーバ100における当該ユーザのハッシュ化パスワード132は、当該他のサーバ100のサーバシーズ140によってハッシュ化されたものであるため値が異なるからである。従って、両者を同じ乱数をシード値としてハッシュ化しても同一のハッシュ値とはならず、図6のステップS09において認証は不成立となる。また、当該他のサーバ100のサーバシーズ140を何らかの手段で取得してきたとしても、対象のユーザのパスワードを知らない限り、当該他のサーバ100におけるハッシュ化パスワード132と同じ値のハッシュ値を生成することはできない。
【0084】
以上に説明したように、本発明の一実施の形態であるデータ分散保管システム1によれば、重要データ500から秘密分散技術により部分データ510を生成して各データセンター10に分散保管することで、クライアント端末300の盗難や紛失等による重要データ500の漏洩を防止することができる。また、各データセンター10は重要データ500につき部分データ510を1つしか有していないため、データセンター10に対して第三者が侵入して不正に部分データ510を取得したり、データセンター10の管理者等の内部の者が部分データ510を取得したりした場合でも、部分データ510を1つしか得ることができない。当該部分データ510だけでは重要データ500を復元・推測することはできないため、重要データ500の内容が漏洩することはない。
【0085】
また、各部分データ510を複数のデータセンター10に送信して分散保管する際に、各部分データ510のコピーをそれぞれ別のデータセンター10に保管して二重化する。これにより、使用する秘密分散のライブラリの機能や仕様に依存せず、必要となるリソースの増加量に比して、データの可用性を大きく向上させることができる。
【0086】
また、サーバ100毎に異なる固有情報(サーバシーズ140)を用いて認証を行うことで、データセンター10の管理者等の内部の者が、悪意を持って他のデータセンター10にアクセスすることも困難であることから、各データセンター10間での部分データ510の不正取得を防止するためのセキュリティを確保することが可能となる。
【0087】
また、ユーザによるクライアント端末300からの一度の認証処理によって複数のサーバ100に対するシングルサインオンを実現することができ、また、各サーバ100での認証を同時並行的に行うことが可能である。従って、重要データ500から生成された部分データ510の分散保管、および重要データ500を復元するために必要な数以上の部分データ510の収集において、認証に要する時間を削減してレスポンスの低下を抑止することが可能となる。
【0088】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0089】
本発明は、重要データから秘密分散技術により複数の非重要データを生成して複数の拠点に分散保管するデータ分散保管システムに利用可能である。
【符号の説明】
【0090】
1…データ分散保管システム、
10、10a〜h…データセンター、
100…サーバ、110、110a〜h…データ保管部、120…認証処理部、130…ユーザ情報、131…ユーザシーズ、132…ハッシュ化パスワード、140…サーバシーズ、
200…マスタサーバ、210…シーズ生成部、
300…クライアント端末、301…設定情報、310…分割処理部、320…分散管理部、321…分散状況、330…復元処理部、340…認証要求部、350…インタフェース部、
400…ネットワーク、
500…重要データ、510a〜d…部分データ。

【特許請求の範囲】
【請求項1】
クライアント端末において、重要データから秘密分散技術により複数の非重要データである部分データを生成し、前記各部分データを、ネットワークを介して接続された複数のサーバに分散保管するデータ分散保管システムであって、
前記各サーバは、それぞれ、前記クライアント端末から受信した前記部分データを保管するデータ保管部を有し、
前記クライアント端末は、ユーザから保管を指示された前記重要データから前記秘密分散技術によりk個以上集めなければ前記重要データを復元できないn個(k≦n)の前記部分データを生成する分割処理部と、
前記分割処理部によって生成されたn個の前記部分データ、および前記各部分データのn個のコピーを、2n個の前記サーバの前記データ保管部にそれぞれ保管し、また、前記重要データを復元するためのm個(k≦m≦n)の異なる前記部分データもしくは前記部分データのコピーをm個の前記サーバからそれぞれ収集する分散管理部と、
前記ユーザから利用を指示された前記重要データについて、前記分散管理部から取得したm個の異なる前記部分データもしくは前記部分データのコピーから前記秘密分散技術により前記重要データを復元する復元処理部とを有することを特徴とするデータ分散保管システム。
【請求項2】
請求項1に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、2n個以上の前記サーバの中から、n個の前記部分データおよび前記各部分データのn個のコピーを保管する対象となる2n個の前記サーバを選択する際に、選択する2n個の前記サーバを、保管する前記重要データ毎に順次ローテーションさせることを特徴とするデータ分散保管システム。
【請求項3】
請求項1または2に記載のデータ分散保管システムにおいて、
前記各サーバは、さらに、前記サーバへのアクセスに対しての認証処理を行う認証処理部を有し、
前記クライアント端末は、さらに、前記分散管理部が前記各サーバに対して前記部分データもしくは前記部分データのコピーを保管する際、および前記各サーバから前記部分データもしくは前記部分データのコピーを収集する際に、前記ユーザからユーザIDおよびパスワードの指定を受けて前記各サーバに対して順次もしくは並行的に認証の要求を送信する認証要求部を有し、
前記サーバの前記認証処理部は、前記サーバ毎に異なる固有情報であるサーバシーズと、登録されたユーザのユーザID毎に、前記ユーザ毎に異なる固有情報であるユーザシーズと、前記ユーザのパスワードを前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化したハッシュ化パスワードとを含むアカウント情報を保持するユーザ情報とを有し、前記クライアント端末から受信した前記認証の要求に対して、前記サーバシーズと対象の前記ユーザに係る前記ユーザシーズ、および生成した乱数を前記クライアント端末に対して送信し、
前記クライアント端末の前記認証要求部は、前記ユーザから指定されたパスワードを、前記サーバから受信した前記サーバシーズおよび前記ユーザシーズを用いて所定の手順でハッシュ化し、さらに前記乱数を用いてハッシュ化したハッシュ値を前記サーバに送信し、
前記サーバの前記認証処理部は、前記クライアント端末から受信した前記ハッシュ値と、対象の前記ユーザに係る前記ハッシュ化パスワードを前記乱数を用いてハッシュ化した値とを比較して認証を行い、認証結果を前記クライアント端末に送信することを特徴とするデータ分散保管システム。
【請求項4】
請求項1〜3のいずれか1項に記載のデータ分散保管システムにおいて、
さらに、前記ネットワークに接続され、前記各サーバからの要求に基づいて、前記各サーバに対して前記シーズとなるシード値を生成して提供するマスタサーバを有することを特徴とするデータ分散保管システム。
【請求項5】
請求項1〜4のいずれか1項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、n個の前記部分データおよび前記各部分データのn個のコピーを2n個の前記サーバにそれぞれ保管した際に、前記各部分データおよび前記各部分データのコピーがいずれの前記サーバに保管されているかの対応に係る情報を分散状況記録部に記録することを特徴とするデータ分散保管システム。
【請求項6】
請求項1〜5のいずれか1項に記載のデータ分散保管システムにおいて、
前記クライアント端末は、前記秘密分散技術に係るk、m、nの値、前記各サーバに対するアクセス情報、前記分散管理部がn個の前記部分データおよび前記各部分データのn個のコピーを保管する対象となる2n個の前記サーバを選択する条件、前記分散管理部がm個の異なる前記部分データもしくは前記部分データのコピーを収集する対象となるm個の前記サーバを選択する条件、および前記分散管理部が前記サーバから前記部分データもしくは前記部分データのコピーを取得できなかった場合の代替となる前記サーバの決定方法のうち、少なくとも1つ以上の情報が予め設定された設定情報を有することを特徴とするデータ分散保管システム。
【請求項7】
請求項1〜6のいずれか1項に記載のデータ分散保管システムにおいて、
前記クライアント端末の前記分散管理部は、n個の前記部分データおよび前記各部分データのn個のコピーを2n個の前記サーバにそれぞれ保管する際に、n個の前記部分データのいずれかと当該部分データのコピーの双方とも前記サーバに保管できなかった場合、もしくはm個の異なる前記部分データもしくは前記部分データのコピーを前記サーバからそれぞれ収集する際に、k個以上収集できなかった場合は、前記ユーザに対してエラーを応答することを特徴とするデータ分散保管システム。
【請求項8】
請求項1〜7のいずれか1項に記載のデータ分散保管システムにおいて、
前記クライアント端末および前記各サーバは、前記部分データもしくは前記部分データのコピーを送受信する際に、送信する前記部分データもしくは前記部分データのコピーを所定の手段で暗号化することを特徴とするデータ分散保管システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−20314(P2013−20314A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2011−151338(P2011−151338)
【出願日】平成23年7月8日(2011.7.8)
【特許番号】特許第4875781号(P4875781)
【特許公報発行日】平成24年2月15日(2012.2.15)
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】