(57)【要約】【課題】  キャッシュあるいは複製の利用により性能の劣化を抑えつつ、データの漏えいを防止することのできるシステムを提供する。【解決手段】  ストレージシステムは、第１のサブシステム１２、１３と第２のサブシステム１５を有し、ユーザ１４からアクセス可能にオブジェクトを格納する。第１のサブシステム１２、１３は、オブジェクトの元データを格納する。第２のサブシステム１５は、オブジェクトへのアクセスに対して、元データのキャッシュ２５あるいは複製２６を提供する。そして、第２サブシステム１５は、しきい値秘密分散法の特性を利用してキャッシュ２５あるいは複製２６を保護する。【選択図】      図１
2007058771.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからアクセス可能にオブジェクトを格納するストレージシステムであって、
前記オブジェクトの元データを格納する第１のサブシステムと、
前記オブジェクトへのアクセスに対して、前記元データのキャッシュあるいは複製を提供し、しきい値秘密分散法の特性を利用して前記キャッシュあるいは複製を保護する第２のサブシステムとを有するストレージシステム。
【請求項２】
前記第２のサブシステムは、前記第１のサブシステムの前記オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存する、請求項１記載のストレージシステム。
【請求項３】
前記第２のサブシステムは、前記オブジェクトのデータ漏えい防止が必要か否か判定し、データ漏えい防止が不要であれば該オブジェクトの全体をキャッシュあるいは複製として保存する、請求項２記載のストレージシステム。
【請求項４】
前記第２のサブシステムは、前記第１のサブシステムの前記オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、しきい値未満の数のフラグメントを除いたフラグメントが、データ漏えいに対して安全な安全領域に配置されるように、前記フラグメントをキャッシュあるいは複製として保存する、請求項１記載のストレージシステム。
【請求項５】
前記第２のサブシステムは、前記オブジェクトについてデータ漏えい防止の必要性の程度を判定し、その判定結果に応じて前記安全領域を定める、請求項４記載のストレージシステム。
【請求項６】
前記第２のサブシステムは、前記オブジェクトのデータ漏えい防止が必要か否か判定し、データ漏えい防止が不要であれば、前記安全領域か否かによらず任意の領域に、該オブジェクトの全体をキャッシュあるいは複製として保存する、請求項４記載のストレージシステム。
【請求項７】
前記第２のサブシステムは、データ漏えい防止の必要性を、前記オブジェクトの種類で判定する、請求項３、５または６に記載のストレージシステム。
【請求項８】
前記第２のサブシステムは、データ漏えい防止の必要性を、前記オブジェクトを格納している第１のサブシステム毎に判定する、請求項３、５または６に記載のストレージシステム。
【請求項９】
ユーザからアクセス可能にオブジェクトを格納するストレージシステムにおいて、他のサブシステムに元データが格納された前記オブジェクトのキャッシュあるいは複製を提供するストレージサブシステムであって、
前記他のサブシステムの前記オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解する秘密分散部と、
前記秘密分散部で得られた前記フラグメントを用いて、しきい値秘密分散法の特性を利用して保護した前記キャッシュあるいは複製を保存するキャッシュ・複製管理部とを有するストレージサブシステム。
【請求項１０】
前記キャッシュ・複製管理部は、しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存する、請求項９記載のストレージサブシステム。
【請求項１１】
前記キャッシュ・複製管理部は、しきい値未満の数のフラグメントを除いたフラグメントが、データ漏えいに対して安全な安全領域に配置されるように、前記フラグメントをキャッシュあるいは複製として保存する、請求項９記載のストレージサブシステム。
【請求項１２】
ユーザからアクセス可能にオブジェクトを格納するストレージシステムにおいて、前記オブジェクトのキャッシュあるいは複製を保存するキャッシュ・複製保存方法であって、
前記オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解するステップと、
前記フラグメントを用いて、しきい値秘密分散法の特性を利用して保護したキャッシュあるいは複製を保存するステップとを有するキャッシュ・複製保存方法。
【請求項１３】
しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存することで、該キャッシュあるいは該複製を保護する、請求項１２記載のキャッシュ・複製保存方法。
【請求項１４】
しきい値未満の数のフラグメントを除いたフラグメントが、データ漏えいに対して安全な安全領域に配置されるように、前記フラグメントをキャッシュあるいは複製として保存することで、該キャシュあるいは該複製を保護する、請求項１２記載のキャッシュ・複製保存方法。
【請求項１５】
ユーザからアクセス可能にオブジェクトを格納するストレージシステムにおいて、前記オブジェクトのキャッシュあるいは複製を提供するためのキャッシュ・複製保存プログラムであって、
前記オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解する手順と、
前記フラグメントを用いて、しきい値秘密分散法の特性を利用して保護したキャッシュあるいは複製を保存する手順とをコンピュータに実行させるためのキャッシュ・複製提供プログラム。
【請求項１６】
しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存することで、該キャッシュあるいは該複製を保護する、請求項１５記載のキャッシュ・複製保存プログラム。
【請求項１７】
しきい値未満の数のフラグメントを除いたフラグメントが、データ漏えいに対して安全な安全領域に配置されるように、前記フラグメントをキャッシュあるいは複製として保存することで、該キャシュあるいは該複製を保護する、請求項１５記載のキャッシュ・複製保存プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを格納するストレージシステムに関し、特に、アクセスに対してキャッシュあるいは複製を提供するストレージシステムに関する。
【背景技術】
【０００２】
個人情報保護法（個人情報の保護に関する法律）が施行されたことなどを背景に、近年では企業にとってデータ漏えいの防止は不可欠の課題となってきた。データ漏えいには様々な原因があるが、それらの中で大きな割合を占めているものに装置の盗難がある。例えば、ノートパソコンあるいはデスクトップパソコンの盗難、携帯電話の盗難などがある。
【０００３】
その対策として、厳重に監視する特定のストレージ装置にデータを集約して格納し、他の装置にはデータを格納しないという方法がある。これにより、データを格納していない装置が盗まれてもデータの漏えいは発生しないこととなる。
【０００４】
また、他の対策として、データを複数のストレージ装置に分割して保管する方法がある（例えば、特許文献１参照）。特許文献１には、しきい値を設定できる秘密分散法を用いてデータを分解する方法が示されている。データを複数のストレージ装置に分割して保管することにより、あるストレージ装置が盗まれてもデータが漏えいしないようにするものである。
【特許文献１】特開２００４−１４７２１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データを特定のストレージ装置に集約する方法では、クライアントとストレージ装置の距離が長くなる場合がある。そして、距離が長くなることによりアクセス性能が大きく劣化する場合がある。そのため、クライアント装置あるいはその近くのストレージ装置にてキャッシュあるいは複製を行ってアクセス性能を向上させることがある。しかし、キャッシュあるいは複製を行うこととすると、キャッシュあるいは複製のデータが新たな漏えいの原因となってしまう。
【０００６】
また、データを分割して保管する方法でも、データを集約する方法と同様に、クライアントとストレージ装置の距離が長くなり、アクセス性能が大きく劣化する場合がある。この場合もやはり、性能向上のためにキャッシュあるいは複製を行うこととすると、キャッシュあるいは複製のデータが新たな漏えいの原因となってしまう。
【０００７】
本発明の目的は、キャッシュあるいは複製の利用により性能の劣化を抑えつつ、データの漏えいを防止することのできるシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のストレージシステムは、
ユーザからアクセス可能にオブジェクトを格納するストレージシステムであって、
オブジェクトの元データを格納する第１のサブシステムと、
オブジェクトへのアクセスに対して、元データのキャッシュあるいは複製を提供し、しきい値秘密分散法の特性を利用してキャッシュあるいは複製を保護する第２のサブシステムとを有している。
【０００９】
本発明によれば、アクセスに対するキャッシュあるいは複製がしきい値秘密分散法によって保護されるので、キャッシュの利用により性能の劣化を抑え、かつキャッシュあるいは複製の部分からのデータ漏えいを防止することができる。
【００１０】
また、第２のサブシステムは、第１のサブシステムのオブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存することとしてもよい。
【００１１】
これによれば、オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、第２のサブシステムには、しきい値未満の数のフラグメントのみを保存するので、第２のサブシステムが盗難に遭ってもデータの漏えいが起こらない。
【００１２】
また、第２のサブシステムは、オブジェクトのデータ漏えい防止が必要か否か判定し、データ漏えい防止が不要であればオブジェクトの全体をキャッシュあるいは複製として保存することとしてもよい。
【００１３】
これによれば、データ漏えい防止が必要なオブジェクトについては、しきい値より少ない数のフラグメントだけを保存し、データ漏えい防止が不要なオブジェクトでは、オブジェクト全体を保存するので、漏えいを防止しつつ、さらに性能向上を図ることができる。
【００１４】
また、第２のサブシステムは、第１のサブシステムのオブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、しきい値未満の数のフラグメントを除いたフラグメントが、データ漏えいに対して安全な安全領域に配置されるように、フラグメントをキャッシュあるいは複製として保存することとしてもよい。
【００１５】
これによれば、しきい値未満の数のフラグメントを除いたフラグメントが安全領域に配置されるので、盗難によるデータの漏えいを防止しつつ、さらに性能向上を図ることができる。
【００１６】
また、第２のサブシステムは、オブジェクトについてデータ漏えい防止の必要性の程度を判定し、その判定結果に応じて安全領域を定めることとしてもよい。
【００１７】
これによれば、データ漏えい防止が必要なオブジェクトについては、しきい値以上のフラグメントを、漏えい防止の必要性の程度に応じた安全領域に格納するので、漏えいを防止すべきデータを保護しつつ、さらに性能向上を図ることができる。
【００１８】
また、第２のサブシステムは、オブジェクトのデータ漏えい防止が必要か否か判定し、データ漏えい防止が不要であれば、安全領域か否かによらず任意の領域に、そのオブジェクトの全体をキャッシュあるいは複製として保存することとしてもよい。
【００１９】
これによれば、データ漏えい防止が必要なオブジェクトについては、しきい値以上のフラグメントを安全領域に格納することによりデータ漏えいを防止し、データ漏えい防止が不要なオブジェクトについては、オブジェクト全体を保存するので、漏えいを防止すべきデータを保護しつつ、さらに性能向上を図ることができる。
【００２０】
また、第２のサブシステムは、データ漏えい防止の必要性を、オブジェクトの種類で判定することとしてもよい。
【００２１】
また、第２のサブシステムは、データ漏えい防止の必要性を、オブジェクトを格納している第１のサブシステム毎に判定することとしてもよい。
【発明の効果】
【００２２】
本発明によれば、アクセスに対するキャッシュあるいは複製がしきい値秘密分散法によって保護されるので、キャッシュの利用により性能の劣化を抑え、かつキャッシュあるいは複製の部分からのデータ漏えいを防止することができる。
【発明を実施するための最良の形態】
【００２３】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００２４】
（第１の実施形態）
図１は、本発明の第１の実施形態におけるデータ漏えい防止ストレージシステムの構成の一例を示すブロック図である。
【００２５】
図１を参照すると、データ漏えい防止ストレージシステムは、クライアント装置１１およびストレージ装置１２、１３がネットワーク１０に接続されている。ここでネットワークは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）あるいはインターネット等である。
【００２６】
本実施形態では、ストレージ装置１２、１３がオブジェクトの元データを格納している。オブジェクトへのアクセスに対してキャッシュあるいは複製が提供される場合があるが、元データはそのキャッシュあるいは複製の元となるオリジナルのデータである。そして、クライアント装置１１内のユーザ１４がそのオブジェクトにアクセスするとき、クライアント装置１１内でキャッシュあるいは複製がユーザ１４に対して提供される。本発明とは直接には関係がないが、ストレージ装置１２、１３に格納されている元データは漏えいに対する保護がされていることとする。この保護については、一例として、しきい値秘密分散法が用いられていることとする。
【００２７】
本実施形態では、クライアント装置１１内のキャッシュあるいは複製についてもデータ漏えいに対する保護がされており、この保護に本発明の特徴がある。保護には、しきい値秘密分散法が用いられている。
【００２８】
図１において、ストレージ装置１２はストレージサブシステム１６を有し、ストレージ装置１３はストレージサブシステム１７を有している。本実施形態は、一例として、しきい値秘密分散法により元データが複数のストレージサブシステム１６、１７に分割して保管されている。ここでは、各々にストレージサブシステムを有する２つのストレージ装置１２、１３が存在する構成が示されているが、ストレージサブシステムは２つ以上であればよい。
【００２９】
しきい値秘密分散法では、オブジェクトが複数のフラグメントに分解される。そして、所定のしきい値以上のフラグメントがないと、元のオブジェクトを復元することができない。
【００３０】
ここでは、複数のフラグメントは、ストレージ装置１２、１３の各々に格納されるフラグメントの数がしきい値未満となるように、ストレージ装置１２、１３に分割して格納されている。これにより、ストレージ装置１２、１３のいずれか一方が盗まれただけではデータの漏えいが起こらないようになっている。
【００３１】
クライアント装置１１は、ユーザ１４およびストレージサブシステム１５を有している。ここでは１つのユーザが示されているが、１つ以上であればよい。
【００３２】
ユーザ１４は、ストレージシステムを利用する主体であるが、特に人間だけを指すわけではない。人間の他、ストレージシステムを利用するデータベースやワードプロセッサのようなアプリケーションもユーザ１４に該当する。ユーザ１４は、ネットワーク１０および少なくとも１つのストレージサブシステム１５を通じてストレージシステムを利用する。
【００３３】
ストレージサブシステム１５は、機能部として、リダイレクタ部２１、秘密分散キャッシュ・複製管理部２２、および秘密分散部２３を有している。また、ストレージサブシステム１５は、データとして、キャッシュ・複製管理データ２４、キャッシュデータ２５、および複製データ２６を格納している。
【００３４】
キャッシュデータとは、ストレージシステムにおいてデータの読み込みまたは書き込みに必要な実行時間の短縮用に書き込まれた部分的なデータのことを指している。また、複製データとは、アプリケーションから使用可能な状態のデータのコピーを作成しようとした際に書き込まれるデータのことを指している。
【００３５】
ストレージサブシステム１５は、ストレージ装置１２、１３に元データが格納されているオブジェクトのキャッシュを行い、ユーザ１４からのアクセスの性能向上を実現する。このキャッシュをする際に、しきい値秘密分散法を用いる点に特徴がある。
【００３６】
リダイレクタ部２１は、ユーザ１４からの要求を受信し、その要求の種類に応じて適切なリダイレクト動作を行う。リダイレクトを行うとき、リダイレクタ部２１は、必要があれば、他のストレージサブシステムに要求を送信し、ユーザに応答を返すという役割を担う。
【００３７】
秘密分散部２３は、秘密分散法に基づいて、オブジェクトを複数のフラグメントに分解する。ここでオブジェクトとはデータの固まりを指し、具体的にはファイル群（コンテンツ群）、ファイル（コンテンツ）、ブロック、チャンクなどを指す。秘密分散法のアルゴリズムには様々な種類があるが、本実施形態では、しきい値秘密分散法のアルゴリズムによりオブジェクトが総数ｎ個のフラグメントに分解され、何個以上があれば元のオブジュエクトを復元できるかを示すしきい値がｋであるとする。フラグメントの総数ｎと、しきい値ｋは設定可能であってもよい。
【００３８】
図２は、秘密分散部の動作の詳細を示す図である。しきい値秘密分散アルゴリズムにおいては、ｎは２以上の整数、ｋは１以上かつｎ以下の整数である。オブジェクトを解読するためにはｋ個以上のフラグメントを集める必要がある。
【００３９】
秘密分散部２３は、オブジェクトをｎ個のフラグメントに分割する。そして、秘密分散部２３は、オブジェクトＩＤおよびフラグメント番号（図中では「フラグメント＃」）からなるフラグメントＩＤを各フラグメントに付与する。また、秘密分散部２３は、ｎ個のフラグメントを（ｋ−ｘ）個のノンセキュアフラグメントと、（ｎ−ｋ＋ｘ）個のセキュアフラグメントとに分類する。ここで、ｘは１以上かつｋ以下の整数である。
【００４０】
図２では、ｎ＝８、ｋ＝６、ｘ＝１の例が示されている。オブジェクトＩＤ＝０２５６８９のオブジェクトが、フラグメント＃０〜７の８個のフラグメントに分割されている。フラグメント＃０〜４の５個がノンセキュアフラグメントと分類され、フラグメント＃５〜７の３個がセキュアフラグメントと分類されている。この例では６個以上のフラグメントを集めなければオブジェクトを復元できないので、５個のノンセキュアフラグメントだけではオブジェクトを復元することはできない。
【００４１】
図１に戻り、秘密分散キャッシュ・複製管理部２２は、秘密分散部２２で分割されたフラグメントを用いて、秘密分散法の特性を活かして保護したセキュアなキャッシュあるいは複製を作成し、管理する。秘密分散法は、しきい値以上のフラグメントがないとオブジェクトを再現することができないという特性を有する。そこで、盗難による漏えいが想定される領域（本実施形態ではキャッシュあるいは複製を保存する領域）には、しきい値未満のフラグメントであるノンセキュアフラグメントのみしか保存しないこととすれば、キャッシュあるいは複製の保護が可能である。これに関する秘密分散キャッシュ・複製管理部２２の具体的な動作は「セキュアオブジェクトＷＲＩＴＥ」として後述する。
【００４２】
キャッシュ・複製管理データ２４は、オブジェクト毎に、キャッシュあるいは複製の有無および格納場所、キャッシュがダーティかクリーンか、キャッシュあるいは複製が完全か否かを記録したものである。
【００４３】
キャッシュあるいは複製が完全か否かの定義は以下のようである。キャッシュあるいは複製がしきい値ｋ以上のフラグメントを含んでいれば完全であるとみなされる。また、キャッシュあるいは複製がしきい値ｋ以上のフラグメントを含んでいなければ不完全であるとみなされる。
【００４４】
キャッシュデータ２５は、フラグメントをキャッシュしたものである。
【００４５】
複製データ２６は、フラグメントを複製したものである。
【００４６】
次に、第１の実施形態におけるストレージサブシステム１５の動作について説明する。ストレージサブシステム１５の動作には、ユーザ１４の要求に基づく動作と、ストレージサブシステム１５自身の判断に基づく動作とがある。
【００４７】
まずは、ユーザ１４からの要求に基づく動作について説明する。
【００４８】
ユーザ１４からの要求には、「オブジェクト書き込み要求」、「オブジェクト読み込み要求」、および「その他の要求」の３種類がある。本発明は、主に、オブジェクト書き込み要求、およびオブジェクト読み込み要求に関するものである。その他の要求には、初期化、セッション開設、認証などが含まれる。ユーザ１４からの要求は、ストレージサブシステム１５のリダイレクタ部２１に送られる。
【００４９】
図３は、第１の実施形態におけるオブジェクト書き込み要求に基づく動作を示すフローチャートである。
【００５０】
図３を参照すると、リダイレクタ部２１は、ユーザ１４からオブジェクト書き込み要求を受けると（ステップ１０１）、秘密分散部２３にフラグメント化を指示する。
【００５１】
リダイレクタ部２１からの指示を受けた秘密分散部２３は、「セキュアフラグメント化」の処理を行った後、秘密分散キャッシュ・複製管理部２２にＷＲＩＴＥキャッシュ判定を指示する（ステップ１０２）。「セキュアフラグメント化」の処理については後述する。
【００５２】
秘密分散部２３からの指示を受けた秘密分散キャッシュ・複製管理部２２は、ＷＲＩＴＥキャッシュを行うか否か判断する（ステップ１０３）。この判断の方法は任意であるが、例えば、予め管理者がストレージサブシステム毎にＷＲＩＴＥキャッシュのＯＮ/ＯＦＦを設定しておくという方法が考えられる。
【００５３】
ＷＲＩＴＥキャッシュを行うと判断すると、秘密分散キャッシュ・複製管理部２２は、「セキュアオブジェクトＷＲＩＴＥ」の処理を行った後、リダイレクタ部２１にフラグメント書き込みを指示する（ステップ１０４）。「セキュアオブジェクトＷＲＩＴＥ」の処理については後述する。
【００５４】
一方、ＷＲＩＴＥキャッシュを行わないと判断すると、秘密分散キャッシュ・複製管理部２２は、「セキュアオブジェクトＷＲＩＴＥ」の処理を行うことなく、リダイレクタ部２１にフラグメント書き込みを指示する。
【００５５】
秘密分散キャッシュ・複製管理部２２からの指示を受けたリダイレクタ部２１は、キャッシュされなかったフラグメントを他のストレージサブシステム（例えばストレージサブシステム１６、１７）に書き込む（ステップ１０５）。そして、リダイレクタ部２１は、ユーザ１４に応答を返す（ステップ１０６）。
【００５６】
図４は、第１の実施形態におけるオブジェクト読み込み要求に基づく動作を示すフローチャートである。
【００５７】
図４を参照すると、リダイレクタ部２１は、ユーザ１４からオブジェクト読み込み要求を受けると（ステップ２０１）、秘密分散キャッシュ・複製管理部２２にキャッシュあるいは複製が存在するか否かの確認を指示する。
【００５８】
秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製に関する管理データを参照し、読み込みを指示されたオブジェクトに関するキャッシュあるいは複製が存在するか否か判断する（ステップ２０２）。
【００５９】
キャッシュあるいは複製が存在すれば、秘密分散キャッシュ・複製管理部２２は、どのキャッシュあるいは複製から読み込みを行うか選択する（ステップ２０３）。この選択方法は任意であるが、例えば、最も新しいキャッシュあるいは複製を選択するという方法が考えられる。
【００６０】
キャッシュあるいは複製を選択すると、次に、秘密分散キャッシュ・複製管理部２２は、「セキュアオブジェクトＲＥＡＤ」の処理を行い（ステップ２０４）、リダイレクタ部２１にフラグメント読み込みを指示する。「セキュアオブジェクトＲＥＡＤ」の処理については後述する。
【００６１】
また、ステップ２０２の判定において、キャッシュあるいは複製が存在しなければ、秘密分散キャッシュ・複製管理部２２は、ステップ２０３、２０４の処理を行うことなく、リダイレクタ部２１にフラグメント読み込みを指示する。
【００６２】
秘密分散キャッシュ・複製管理部２２からの指示を受けたリダイレクタ部２１は、キャッシュあるいは複製から読み込まれなかったフラグメントを他のストレージサブシステム（例えばストレージサブシステム１６、１７）から読み込む（ステップ２０５）。そして、リダイレクタ部２１は、ユーザ１４に応答を返す（ステップ２０６）。
【００６３】
前述した「セキュアフラグメント化」について説明する。
【００６４】
図５は、セキュアフラグメント化の処理を示すフローチャートである。図５を参照すると、秘密分散部２３は、所定のしきい値秘密分散アルゴリズムに基づいてオブジェクトをフラグメント化する（ステップ３０１）。このフラグメント化において、フラグメントの総数はｎであり、しきい値はｋである。
【００６５】
次に、秘密分散部２３は、ｎ個のフラグメントのうち、（ｋ−ｘ）個をノンセキュアフラグメントとし、（ｎ−ｋ＋ｘ）個をセキュアフラグメントとして分類する（ステップ３０２）。さらに、秘密分散部２３は、各フラグメントにＩＤを付与する（ステップ３０３）。
【００６６】
前述した「セキュアオブジェクトＷＲＩＴＥ」について説明する。
【００６７】
図６は、セキュアオブジェクトＷＲＩＴＥの処理を示すフローチャートである。図６を参照すると、秘密分散キャッシュ・複製管理部２２は、まず、ノンセキュアフラグメントを格納するための領域を選択する（ステップ４０１）。秘密分散キャッシュ・複製管理部２２は、次に、その領域にノンセキュアフラグメントを書き込む（ステップ４０２）。そして、秘密分散キャッシュ・複製管理部２２は、次に、キャッシュあるいは複製の管理データを書き込む（ステップ４０３）。なお、ここではキャッシュあるいは複製だけにノンセキュアフラグメントを書き込むので、キャッシュあるいは複製は不完全かつダーティなものとなる。
【００６８】
前述した「セキュアオブジェクトＲＥＡＤ」について説明する。
【００６９】
図７は、セキュアオブジェクトＲＥＡＤの処理を示すフローチャートである。図７を参照すると、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製からノンセキュアフラグメントを読み込んで（ステップ５０１）、処理を終了する。
【００７０】
次に、ストレージサブシステム１５自身の判断に基づく動作について説明する。
【００７１】
ストレージサブシステム１５の判断には、主として「複製」、「ＲＥＡＤキャッシュ」、「ＷＲＩＴＥキャッシュ掃き出し」の３種類があり、これら全ては、キャッシュあるいは複製に関するものであり、秘密分散キャッシュ・複製管理部２２により行われる。
【００７２】
図８は、第１の実施形態における「複製」の動作を示すフローチャートである。
【００７３】
図８を参照すると、秘密分散キャッシュ・複製管理部２２は、まず、オブジェクトの複製を開始することを決断する（ステップ６０１）。この決断の方法は任意であるが、例えば、管理者からの指示があったときに複製を開始することとしてもよく、また、管理者が予め設定したポリシー（Ｗｈａｔ，Ｗｈｅｎ，Ｗｈｅｒｅ，Ｈｏｗ）の条件にあったときに複製を開始することとしてもよい。次に、秘密分散キャッシュ・複製管理部２２は、複製を作成する対象のオブジェクトについて「セキュアオブジェクトＷＲＩＴＥ」を行って複製を作成し（ステップ６０２）、処理を終了する（ステップ６０３）。「セキュアオブジェクトＷＲＩＴＥ」については前述したとおりである。
【００７４】
図９は、第１の実施形態における「ＲＥＡＤキャッシュ」の動作を示すフローチャートである。ＲＥＡＤキャッシュは、オブジェクトをキャッシュに読み込む処理である。図９を参照すると、秘密分散キャッシュ・複製管理部２２は、ＲＥＡＤキャッシュの開始を決断する。この決断の方法は任意であるが、例えば、ユーザ１４があるオブジェクトを読み出したときに、そのオブジェクトのＲＥＡＤキャッシュを決断することとしてもよい。また、ユーザ１４のアクセスパターンを監視し、読み出される可能性の高いオブジェクトのＲＥＡＤキャッシュを決断することとしてもよい。次に、秘密分散キャッシュ・複製管理部２２は、対象となるオブジェクトについて「セキュアオブジェクトＷＲＩＴＥ」を行ってＲＥＡＤキャッシュをし（ステップ７０２）、処理を終了する（ステップ７０３）。
【００７５】
図１０は、第１の実施形態における「ＷＲＩＴＥキャッシュ掃き出し」の動作を示すフローチャートである。
【００７６】
図１０を参照すると、秘密分散キャッシュ・複製管理部２２は、まず、ＷＲＩＴＥキャッシュ掃き出しを決断する（ステップ８０１）。この決断の方法は任意であるが、例えば、管理者からの指示があったときに掃き出しを開始することとしてもよく、また、管理者が予め設定したポリシー（Ｗｈａｔ，Ｗｈｅｎ，Ｗｈｅｒｅ，Ｈｏｗ）の条件にあったときに掃き出しを開始することとしてもよい。
【００７７】
次に、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製として格納されているノンセキュアフラグメントを読み出して他のストレージサブシステム（例えばストレージサブシステム１６、１７）に書き込む（ステップ８０２）。さらに、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製の管理データの書き込みを行って（ステップ８０３）、処理を終了する（ステップ８０４）。
【００７８】
なお、ここでは、キャッシュあるいは複製としてあった最新のノンセキュアフラグメントが他のストレージサブシステムに反映されるので、キャッシュあるいは複製はダーティでない（クリーンな）ものとなり、管理データにもクリーンなキャッシュあるいは複製として登録しなおされる。また、このとき、ＷＲＩＴＥキャッシュ掃き出しを行ったキャッシュあるいは複製を消去することとしてもよい。その場合、管理データから、そのキャッシュあるいは複製に関するデータは消去される。
【００７９】
以上説明したように、本実施形態によれば、アクセスに対するキャッシュあるいは複製がしきい値秘密分散法によって保護されるので、キャッシュの利用により性能の劣化を抑え、かつキャッシュあるいは複製の部分からのデータ漏えいを防止することができる。
【００８０】
また、本実施形態では、オブジェクトをしきい値秘密分散法に基づいて複数のフラグメントに分解し、ストレージサブシステム１５には、しきい値未満の数のフラグメントのみをキャッシュあるいは複製として保存する。したがって、ストレージサブシステム１５が盗難に遭ってもデータの漏えいが起こらない。
【００８１】
なお、本実施形態では、「セキュアオブジェクトＷＲＩＴＥ」、「セキュアオブジェクトＲＥＡＤ」、および「ＷＲＩＴＥキャッシュ掃き出し」は、オブジェクトの種類、ストレージサブシステムの存在する装置などによらず共通の処理としたが、本発明はこれに限定されるものではない。必ずしも全てのオブジェクトにデータ漏えい防止が必要とは限らないので、データ漏えいを防止すべきオブジェクトについては、しきい値より少ない数のフラグメントだけをキャッシュあるいは複製として格納し、データ漏えいを防止しなくてもよいオブジェクトでは、全てのフラグメントをキャッシュあるいは複製として格納することとしてもよい。また、データ漏えいを防止しなくてもよいオブジェクトでは、書き込み時にセキュアフラグメントを行わず、元のオブジェクトのまま通常通りに管理する方法としてもよい。データ漏えいを防止すべきか否かの判定については様々なポリシーを用いることが考えられる。
【００８２】
ポリシーの一例として、そのオブジェクトを保有するストレージサブシステムの存在する装置によって判定することとしてもよい。本実施形態に示したキャッシュあるいは複製のＲＥＡＤ／ＷＲＩＴＥの方法と、通常のオブジェクトＲＥＡＤ／ＷＲＩＴＥの方法とを、ストレージサブシステムが存在する装置の特性により切り換えるとしてもよい。具体的には、ＩＰアドレスに基づいて切り換える方法が考えられる。
【００８３】
より具体的には、オブジェクトを保有するストレージサブシステムの存在する装置が、その特性上、データ漏えいの生じないものであれば、データ漏えいを防止しないと判定すればよい。また、あるストレージサブシステムにはデータ漏えいの防止が不要なような種類のデータのみが格納される場合、そのストレージサブシステムについてはデータ漏えいを防止する必要がないと判定できる。また、様々な事情を考慮して管理者がデータ漏えいを防止すべきか否かストレージサブシステム毎に予め設定しておくこととしてもよい。
【００８４】
これによれば、データ漏えいを防止すべきオブジェクトについては、しきい値より少ない数のフラグメントだけをキャッシュあるいは複製として格納し、データ漏えいを防止しなくてもよいオブジェクトでは、オブジェクト全体をキャッシュあるいは複製として格納するので、漏えいを防止すべきデータを保護しつつ、さらに性能向上を図ることができる。
【００８５】
ポリシーの他の例として、本実施形態に示したノンセキュアフラグメントのみをキャッシュあるいは複製にＲＥＡＤ／ＷＲＩＴＥする方法と、通常のオブジェクトＲＥＡＤ／ＷＲＩＴＥ、すなわち全て（ｎ個）のフラグメントをキャッシュあるいは複製にＲＥＡＤ／ＷＲＩＴＥする方法とをオブジェクトの種類やメタデータにより切り換えるとしてもよい。具体的には、ファイル拡張子、所有者、または更新時間といった、オブジェクトのメタデータによって切り換える方法が考えられる。
【００８６】
また、本実施形態では、図１に示したように、ユーザ１４の接続するストレージサブシステム１５がクライアント装置１１上に存在する構成を例示したが、本発明はこの構成に限定されるものではない。他の構成例として、ユーザ１４の接続するストレージサブシステム１５がクライアント装置ではなくストレージ装置上に存在することとしてもよい。
【００８７】
図１１は、第１の実施形態におけるデータ漏えい防止ストレージシステムの他の構成例を示すブロック図である。図１１に示したストレージシステムでは、クライアント装置３１およびストレージ装置３２がネットワーク１０1に接続されている。ストレージ装置３２、１２、１３がネットワーク１０2に接続されている。また、クライアント装置３１はユーザ１４を有し、ストレージ装置３２はストレージサブシステム１５を有している。
【００８８】
この構成では、ユーザ１４は、ネットワーク１０1、１０2およびストレージサブシステム１５を通じてストレージシステムを利用することとなるが、前述したようなストレージサブシステム１５の動作は図１のものと同様である。
【００８９】
また、本実施形態では、ストレージサブシステム１５の秘密分散部２３がオブジェクトを複数のフラグメントに分解する例を示したが、本発明はこの実施形態に限定されるものではない。他の例として、ストレームサブシステム１５は、既に元データを分割して得られており、ストレージサブシステム１６、１７に分割して保管されている複数のフラグメントを用いてキャッシュあるいは複製を保護することとしてもよい。その場合、ストレージサブシステム１５は自身で元データを分割する必要がなく、しきい値秘密分散法の特性を利用してデータ漏えいが生じないような数（言い換えれば、しきい値未満の数）だけのキャッシュあるいは複製を格納すればよい。
【００９０】
（第２の実施形態）
第１の実施形態では、ノンセキュアフラグメントのみをキャッシュあるいは複製として格納し、セキュアフラグラメントをキャッシュあるいは複製として格納しないこととしたが、本発明はその形態に限定されるものではない。通常の領域よりもデータ漏えいに対する安全性の高い領域があれば、そこにセキュアフラグメントを格納することが考えられる。例えば、セキュアフラグメントについて、ストレージ装置が盗まれてもデータが漏えいしない領域や不正アクセスを受けてもデータが漏えいしない領域（以下、これらの領域を「安全領域」という）にキャッシュあるいは複製を格納することとしてもよい。
【００９１】
安全領域の例として、ストレージ装置の電源が切断されると、内容がクリアされる領域が考えられる。具体例としては、バッテリバックアップのない装置のＲＡＭ領域がある。一般には、ストレージ装置は電源が切断された状態で盗まれると考えられる。しかし、バッテリバックアップの無いストレージ装置のＲＡＭ領域であれば、電源が切断されているとき有効なデータが存在しないので装置の盗難によるデータ漏えいが起こりにくい。
【００９２】
また、安全領域の他の例として、イベントに応じて内容が消去される領域が考えられる。具体例としては、ログイン／ログオフ、電源オン／オフなどのイベントの際に内容が消去されるＲＡＭ領域またはディスク領域がある。一般に、コンピュータは、ログイン／ログオフ、電源オン／オフなど様々なイベントの際に所定の処理を実行する。そのような処理の中に所定領域のクリアが含まれることがあり、その場合、イベントが発生するとその領域の内容は消去される。一般に、ストレージ装置を盗もうとするとき、まずストレージ装置の電源をオフにする。あるいは、その前にログオフすることも考えられる。また、盗んだストレージ装置からデータを取り出そうとするとき、まずストレージ装置の電源を投入してログインする。そのようなイベントの処理により内容が消去される領域であれば、たとえバッテリバックアップがあったとしても装置の盗難によるデータの漏えいは起こりにくい。
【００９３】
また、安全領域の他の例として、ユーザアプリケーションからデータを読み取ることのできないという意味で、カーネル領域や非スタック領域が考えられる。盗んだストレージ装置からデータを取り出す方法として、ユーザアプリケーションを起動し、そのアプリケーション上で行う方法が簡単である。したがって、ユーザアプリケーションから読み取れない領域は、ユーザアプリケーションから読み取れる領域に比べて安全性が高いといえる。
【００９４】
第２の実施形態において、データ漏えい防止ストレージシステムは、安全領域を確保できれば、セキュアフラグメントのキャッシュあるいは複製を安全領域に格納し、安全領域を確保できなければ、第１の実施形態と同様の処理を行う。
【００９５】
第２の実施形態によるデータ漏えい防止ストレージシステムは、図１または図１１に示した第１の実施形態と同様の構成である。ただし、第２の実施形態によるストレージシステムは、ストレージサブシステム１５の秘密分散キャッシュ・複製管理部２２の動作の一部が第１の実施形態と異なる。具体的には、「セキュアオブジェクトＷＲＩＴＥ」、「セキュアオブジェクトＲＥＡＤ」、「ＷＲＩＴＥキャッシュ掃き出し」の３つの動作が異なる。
【００９６】
以下、フローチャートを参照してこれらの動作について詳細に説明する。
【００９７】
図１２は、第２の実施形態におけるセキュアオブジェクトＷＲＩＴＥの処理を示すフローチャートである。図１２を参照すると、秘密分散キャッシュ・複製管理部２２は、まず、セキュアフラグメントを格納するための安全領域が確保できるか否か判定する（ステップ９０１）。
【００９８】
安全領域を確保できれば、秘密分散キャッシュ・複製管理部２２は、セキュアフラグメントを格納する領域を選択する（ステップ９０２）。秘密分散キャッシュ・複製管理部２２は、その領域にセキュアフラグメントを書き込む（ステップ９０３）。
【００９９】
ステップ９０１の判定にて安全領域を確保できないと判断したとき、またはステップ９０３の処理を終了したとき、秘密分散キャッシュ・複製管理部２２は、ノンセキュアフラグメントを格納するための領域を選択する（ステップ９０４）。秘密分散キャッシュ・複製管理部２２は、次に、その領域にノンセキュアフラグメントを書き込む（ステップ９０５）。そして、秘密分散キャッシュ・複製管理部２２は、次に、キャッシュあるいは複製の管理データを書き込む（ステップ９０６）。なお、ステップ９０４〜９０６の処理は、図６に示した第１の実施形態におけるステップ４０１〜４０３の処理と同じものである。
【０１００】
ここではセキュアフラグメントのキャッシュあるいは複製を安全領域に書き込んだ場合、キャッシュあるいは複製は完全なものとなる。一方、安全領域を確保できず、セキュアフラグメントのキャッシュあるいは複製を書き込まなかった場合、キャッシュあるいは複製は不完全なものとなる。なお、キャッシュあるいは複製が完全か否かの定義は第１の実施形態と同様に以下のようである。キャッシュあるいは複製がしきい値ｋ以上のフラグメントを含んでいれば完全であるとみなされる。また、キャッシュあるいは複製がしきい値ｋ以上のフラグメントを含んでいなければ不完全であるとみなされる。いずれも、キャッシュあるいは複製だけにフラグメントを書き込むので、キャッシュあるいは複製はダーティなものとなる。それらキャッシュあるいは複製の状態を示す管理データが記録される。
【０１０１】
図１３は、第２の実施形態におけるセキュアオブジェクトＲＥＡＤの処理を示すフローチャートである。図１３を参照すると、秘密分散キャッシュ・複製管理部２２は、管理データに基づき、読み込み対象のオブジェクトが完全か否か判定する（ステップステップ１００１）。完全なオブジェクトであれば、秘密分散キャッシュ・複製管理部２２は、安全領域のキャッシュあるいは複製からセキュアフラグメントを読み込む（ステップ１００２）。
【０１０２】
ステップ１００１の判定において完全なオブジェクトでないとき、またはステップ１００２の処理を終了したとき、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製からノンセキュアフラグメントを読み込んで（ステップ１００３）、処理を終了する。
【０１０３】
図１４は、第２の実施形態におけるＷＲＩＴＥキャッシュ掃き出しの処理を示すフローチャートである。図１４を参照すると、秘密分散キャッシュ・複製管理部２２は、まず、ＷＲＩＴＥキャッシュ掃き出しを決断する（ステップ１１０１）。この決断方法は任意である。
【０１０４】
次に、秘密分散キャッシュ・複製管理部２２は、掃き出し対象のオブジェクトのキャッシュあるいは複製が完全か否か判定する（ステップ１１０２）。キャッシュあるいは複製が完全であれば、秘密分散キャッシュ・複製管理部２２は、安全領域のキャッシュあるいは複製からセキュアフラグメントを読み出して他のストレージサブシステムに書き込む（ステップ１１０３）。
【０１０５】
ステップ１１０２の判定において不完全と判定されたとき、またはステップ１１０３の処理を終了したとき、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製として格納されているノンセキュアフラグメントを読み出して他のストレージサブシステムに書き込む（ステップ１１０４）。さらに、秘密分散キャッシュ・複製管理部２２は、キャッシュあるいは複製の管理データの書き込みを行って（ステップ１１０５）、処理を終了する（ステップ１１０６）。
【０１０６】
なお、キャッシュあるいは複製としてあった最新のフラグメントが他のストレージサブシステムに反映されるので、キャッシュあるいは複製はダーティでない（クリーンな）ものとなり、管理データにもクリーンなキャッシュあるいは複製として登録しなおされる。また、このとき、ＷＲＩＴＥキャッシュ掃き出しを行ったキャッシュあるいは複製を消去することとしてもよい。その場合、管理データから、そのキャッシュあるいは複製に関するデータは消去される。
【０１０７】
以上説明したように、本実施形態によれば、しきい値未満の数のフラグメント（ノンセキュアフラグメント）を除いたフラグメント（セキュアフラグメント）が安全領域に配置されるので、装置の盗難によるデータの漏えいを防止しつつ、キャッシュあるいは複製による更なる性能向上を図ることができる。
【０１０８】
なお、本実施形態では、安全領域を確保できるか否かの判断は、オブジェクトの種類、ストレージサブシステムの存在する装置によらず共通としたが、本発明はこれに限定されるものではない。必ずしも全てのオブジェクトにデータ漏えい防止の必要性が同程度とは限らないので、その必要性の程度に応じて安全領域を定めることとしてもよい。また、データ漏えいを防止しなくてもよいオブジェクトについては、キャッシュあるいは複製を格納できる全ての領域を安全領域として判定することとしてもよい。データ漏えいを防止しなくてよいオブジェクトの場合には、全てのフラグメントがキャッシュあるいは複製として格納されることとなる。データ漏えい防止の必要性、またはデータ漏えいを防止すべきか否かは、オブジェクトの種類、またはそのオブジェクトを保有するストレージサブシステムの存在する装置によって判定することとしてもよい。
【０１０９】
これによれば、データ漏えいを防止すべきオブジェクトについては、しきい値以上のフラグメントのキャッシュあるいは複製を、漏えい防止の必要性の程度に応じた安全領域に格納するので、漏えいを防止すべきデータを保護しつつ、さらに性能向上を図ることができる。
【０１１０】
また、データ漏えいを防止すべきオブジェクトについては、しきい値以上のフラグメントのキャッシュあるいは複製を安全領域に格納することによりデータ漏えいを防止し、データ漏えいを防止しなくてもよいオブジェクトについては、全てのフラグメントをキャッシュあるいは複製として格納するので、漏えいを防止すべきデータを保護しつつ、さらに性能向上を図ることができる。
【０１１１】
例えば、以下のようなポリシーが考えられる。
【０１１２】
安全領域を確保できるか否かの判定をオブジェクトの種類やメタデータにより変えることとしてもよい。ファイル拡張子、所有者、または更新時間といった、オブジェクトのメタデータによって判断を変える方法が考えられる。具体的には、漏えい防止の必要がないようなオブジェクトであれば、いずれの領域でも安全であるといえるので、常に安全領域を確保できると判定することとしてもよい。
【０１１３】
また、安全領域を確保できるか否かの判定を、ストレージサブシステムの存在する装置の特性により変えることとしてもよい。具体的には、ＩＰアドレスに基づいて判断を変える方法が考えられる。
【図面の簡単な説明】
【０１１４】
【図１】第１の実施形態におけるデータ漏えい防止ストレージシステムの構成の一例を示すブロック図である。
【図２】秘密分散部の動作の詳細を示す図である。
【図３】第１の実施形態におけるオブジェクト書き込み要求に基づく動作を示すフローチャートである。
【図４】第１の実施形態におけるオブジェクト読み込み要求に基づく動作を示すフローチャートである。
【図５】セキュアフラグメント化の処理を示すフローチャートである。
【図６】セキュアオブジェクトＷＲＩＴＥの処理を示すフローチャートである。
【図７】セキュアオブジェクトＲＥＡＤの処理を示すフローチャートである。
【図８】第１の実施形態における「複製」の動作を示すフローチャートである。
【図９】第１の実施形態における「ＲＥＡＤキャッシュ」の動作を示すフローチャートである。
【図１０】第１の実施形態における「ＷＲＩＴＥキャッシュ掃き出し」の動作を示すフローチャートである。
【図１１】第１の実施形態におけるデータ漏えい防止ストレージシステムの他の構成例を示すブロック図である。
【図１２】第２の実施形態におけるセキュアオブジェクトＷＲＩＴＥの処理を示すフローチャートである。
【図１３】第２の実施形態におけるセキュアオブジェクトＲＥＡＤの処理を示すフローチャートである。
【図１４】第２の実施形態におけるＷＲＩＴＥキャッシュ掃き出しの処理を示すフローチャートである。
【符号の説明】
【０１１５】
１０、１０1、１０2    ネットワーク
１０、３１    クライアント装置
１２、１３    ストレージ装置
１４    ユーザ
１５、１６、１７、３２    ストレージサブシステム
２１    リダイレクタ部
２２    秘密分散キャッシュ・複製管理部
２３    秘密分散部
２４    キャッシュ・複製管理データ
２５    キャッシュデータ
２６    複製データ
１０１〜１０６、２０１〜２０６、３０１〜３０３、４０１〜４０３、５０１、６０１〜６０３、７０１〜７０３、８０１〜８０４、９０１〜９０６、１００１〜１００３、１１０１〜１１０６、    ステップ
【図１】
2007058771.tif 000003
【図２】
2007058771.tif 000004
【図３】
2007058771.tif 000005
【図４】
2007058771.tif 000006
【図５】
2007058771.tif 000007
【図６】
2007058771.tif 000008
【図７】
2007058771.tif 000009
【図８】
2007058771.tif 000010
【図９】
2007058771.tif 000011
【図１０】
2007058771.tif 000012
【図１１】
2007058771.tif 000013
【図１２】
2007058771.tif 000014
【図１３】
2007058771.tif 000015
【図１４】
2007058771.tif 000016