(57)【要約】【課題】クラウドストレージの利便性を大きく損なうことなく、クラウドストレージが提供するファイル共有機能のセキュリティを確保する。【解決手段】本発明に係る暗号鍵管理プログラムは、ユーザグループ内で共有するグループ共有鍵をさらにユーザの認証情報で暗号化して暗号化グループ共有鍵として保存しておき、ユーザからリクエストがあるとそのユーザに対応する暗号化グループ共有鍵を返信する。【選択図】図３
2014127721.tif 000002
【特許請求の範囲】
【請求項１】
暗号鍵を管理する処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
複数のユーザが所属するグループ内で共有する暗号鍵であるグループ共有鍵を、各前記ユーザを認証するために用いる認証情報を用いて暗号化した、暗号化グループ共有鍵を生成し、記憶装置にその暗号化グループ共有鍵を格納するグループ共有鍵暗号化ステップ、
暗号鍵を送信するよう要求するリクエストを受信すると、前記リクエストを発行したクライアント端末に対してユーザ認証を実施し、認証許可する場合はそのユーザに対応する前記暗号化グループ共有鍵を前記リクエストに対する返信として送信する暗号鍵送信ステップ、
を実行させることを特徴とする暗号鍵管理プログラム。
【請求項２】
前記グループ共有鍵暗号化ステップにおいて、前記コンピュータに、
前記暗号化グループ共有鍵を復号して得た前記グループ共有鍵が前記グループ毎に異なる暗号鍵となるように、前記暗号化グループ共有鍵を生成させる
ことを特徴とする請求項１記載の暗号鍵管理プログラム。
【請求項３】
前記コンピュータに、
各前記ユーザのみが使用する暗号鍵であるプライベート鍵を、各前記ユーザを認証するために用いる認証情報を用いて暗号化した、暗号化プライベート鍵を生成し、記憶装置にその暗号化プライベート鍵を格納するプライベート鍵暗号化ステップを実行させ、
前記暗号鍵送信ステップにおいては、前記コンピュータに、
前記ユーザ認証において認証許可する場合は、そのユーザに対応する前記暗号化プライベート鍵を、前記リクエストに対する返信として前記暗号化グループ共有鍵と併せて送信させる
を実行させることを特徴とする請求項２記載の暗号鍵管理プログラム。
【請求項４】
前記コンピュータに、
いずれの前記グループにも属さないユーザが使用する暗号鍵であるシステム共有鍵を、各前記ユーザを認証するために用いる認証情報を用いて暗号化した、暗号化システム共有鍵を生成し、記憶装置にその暗号化システム共有鍵を格納するシステム共有鍵暗号化ステップを実行させ、
前記暗号鍵送信ステップにおいては、前記コンピュータに、
前記ユーザ認証において認証許可する場合は、そのユーザに対応する前記暗号化システム共有鍵を、前記リクエストに対する返信として前記暗号化グループ共有鍵と併せて送信させる
を実行させることを特徴とする請求項２記載の暗号鍵管理プログラム。
【請求項５】
前記コンピュータに、
前記グループ共有鍵を暗号化する際に用いる暗号鍵を、各前記ユーザおよび各前記グループについて共通に使用する暗号鍵である管理鍵を用いて暗号化し、前記記憶装置に格納するステップを実行させる
ことを特徴とする請求項２記載の暗号鍵管理プログラム。
【請求項６】
請求項１記載の暗号鍵管理プログラムを格納したことを特徴とする記憶媒体。
【請求項７】
暗号鍵を管理する装置であって、
複数のユーザが所属するグループ内で共有する暗号鍵であるグループ共有鍵を、各前記ユーザを認証するために用いる認証情報を用いて暗号化した、暗号化グループ共有鍵を生成し、記憶装置にその暗号化グループ共有鍵を格納するグループ共有鍵暗号化部、
暗号鍵を送信するよう要求するリクエストを受信すると、前記リクエストを発行したクライアント端末に対してユーザ認証を実施し、認証許可する場合はそのユーザに対応する前記暗号化グループ共有鍵を前記リクエストに対する返信として送信する暗号鍵送信部、
を備えることを特徴とする暗号鍵管理装置。
【請求項８】
請求項１記載の暗号鍵管理プログラムを実行するサーバと、
前記サーバに対して前記リクエストを発行するクライアント端末と、
を有することを特徴とするデータ管理システム。
【請求項９】
前記クライアント端末は、
前記リクエストに対する返信として受信した前記暗号化グループ共有鍵を、前記認証情報を用いて復号化することにより、前記グループ共有鍵を取得し、
前記グループ共有鍵を用いてデータを暗号化した上で、その暗号化した前記データを前記サーバへ格納する
ことを特徴とする請求項８記載のデータ管理システム。
【請求項１０】
前記クライアント端末は、
前記データを前記サーバから取得し、前記認証情報を用いて復号化することにより取得した前記グループ共有鍵を用いて、そのデータを復号化する
ことを特徴とする請求項９記載のデータ管理システム。
【請求項１１】
請求項３記載の暗号鍵管理プログラムを実行するサーバと、
前記サーバに対して前記リクエストを発行するクライアント端末と、
を有し、
前記クライアント端末は、
前記リクエストに対する返信として受信した前記暗号化グループ共有鍵と前記暗号化プライベート鍵を、前記認証情報を用いて復号化することにより、前記グループ共有鍵と前記プライベート鍵を取得し、
前記グループ共有鍵または前記プライベート鍵を用いてデータを暗号化した上で、その暗号化した前記データを前記サーバへ格納し、
前記グループ共有鍵を用いて前記データを暗号化する場合は、複数のユーザが所属するグループ内で共有する暗号鍵を用いて前記データを暗号化した旨を示す第１情報を前記データ内に埋め込み、
前記プライベート鍵を用いて前記データを暗号化する場合は、各前記ユーザのみが使用する暗号鍵を用いて前記プライベート鍵を暗号化した旨を示す第２情報を前記データ内に埋め込む
ことを特徴とするデータ管理システム。
【請求項１２】
前記クライアント端末は、
前記データを前記サーバから取得するとともに、前記認証情報を用いて復号化することにより前記グループ共有鍵と前記プライベート鍵を取得し、
前記第１情報が前記データ内に埋め込まれている場合は、前記グループ共有鍵を用いて前記データを復号化し、
前記第２情報が前記データ内に埋め込まれている場合は、前記プライベート鍵を用いて前記データを復号化する
ことを特徴とする請求項１１記載のデータ管理システム。
【請求項１３】
前記クライアント端末は、
ファイルシステム上の第１フォルダ内に格納されているデータは前記グループ共有鍵を用いて暗号化した上で、その暗号化した前記データを前記サーバへ格納し、
前記ファイルシステム上の第２フォルダ内に格納されているデータは前記プライベート鍵を用いて暗号化した上で、その暗号化した前記データを前記サーバへ格納する
ことを特徴とする請求項１１記載のデータ管理システム。
【請求項１４】
前記クライアント端末は、
前記ファイルシステム上の第３フォルダ内に格納されているデータは前記グループ共有鍵を用いて復号化し、
前記ファイルシステム上の第４フォルダ内に格納されているデータは前記プライベート鍵を用いて復号化する
ことを特徴とする請求項１１記載のデータ管理システム。
【請求項１５】
前記暗号鍵管理プログラムと前記記憶装置は、異なる事業者に属する
ことを特徴とする請求項８記載のデータ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウドストレージを用いてデータファイルを管理する技術に関する。
【背景技術】
【０００２】
近年、コンシューマ向けに提供されていたパブリッククラウドストレージサービスを業務利用することの検討が始まっている。パブリッククラウドストレージサービスが提供するファイル共有機能は、クラウドストレージを利用するメリットの１つとなっている。しかしながら、パブリッククラウドストレージを業務利用する際にセキュリティ面の不安を抱くユーザが多く、現状は個人での利用用途に留まっている。そのためセキュリティ対策の１つとして、クラウドストレージに格納するファイルを暗号化して運用する方式が考えられている。これに関連して、クラウドストレージに格納するファイルを暗号化することに対応したソフトウェア製品が販売されているが、パブリッククラウドストレージサービスのファイル共有機能と暗号化を両立させている製品は少ない。
【０００３】
下記特許文献１には、クラウドストレージを利用せずに暗号化したファイルを複数人で共有する場合において、暗号化されたファイルをリムーバブルメディアに保存し、あらかじめ許可したユーザグループが使用するコンピュータ上のみでファイルを復号することができるシステムが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１１５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載されているような、リムーバブルメディアによるファイル交換においては、情報を自グループ外に持ち運ぶ場合、暗号化ファイルを格納したリムーバブルメディアを持ち運ぶ必要がある。そのため、紛失や故障等が発生するとデータそのものが復元できなくなる。また、暗号化されたファイルを複数人間で同時に共有する場合、人数分のリムーバブルメディアを用意して配布し、暗号化パスワード等、復号のための情報を事前に通知しておく必要がある。そのため、即時性、利便性、安全性などの観点で課題がある。さらには、暗号化されたファイルとパスワード等の復号のための情報の２つが入手できればそのファイルを復号することができるため、セキュリティ面で課題がある。
【０００６】
次に、リムーバブルメディアによるファイル共有の代替手段としてクラウドストレージを使用することを考える。パブリッククラウドストレージサービスが提供するファイル共有機能を利用すると、自グループ内外の人間との間でファイルを共有することができる。しかし、クラウドストレージを運営するサービス事業者の運営ミスによる情報漏えい、あるいはクラウドストレージに対するハッキング等によるリスクなどが考えられるため、さらなるセキュリティ対策が必要となっている。
【０００７】
クラウドストレージに対するセキュリティ対策としては、クラウドストレージ上に格納されたファイルを暗号化することが考えられる。しかし、パスワードによるファイルの暗号化は、ファイル共有するために複数人にパスワードを公開する必要があり、安全面に課題がある。また、クラウドストレージ全体を暗号化する手法も考えられるが、共有ファイルを提供する者がアクセス権設定を誤ると容易に情報漏えいにつながる可能性がある。
【０００８】
本発明は、上記のような課題に鑑みてなされたものであり、クラウドストレージの利便性を大きく損なうことなく、クラウドストレージが提供するファイル共有機能のセキュリティを確保することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る暗号鍵管理プログラムは、ユーザグループ内で共有するグループ共有鍵をさらにユーザの認証情報で暗号化して暗号化グループ共有鍵として保存しておき、ユーザからリクエストがあるとそのユーザに対応する暗号化グループ共有鍵を返信する。
【発明の効果】
【００１０】
本発明に係る暗号鍵管理プログラムによれば、クラウドストレージの利便性を大きく損なうことなく、安全性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】データ管理システム１０００の構成図である。
【図２】管理サーバ１００の詳細を示す機能ブロック図である。
【図３】管理サーバ１００によるユーザ認証処理を説明する図である。
【図４】クライアント端末２００がデータファイル２１２を暗号化してクラウドストレージ３００に格納する処理を説明する図である。
【図５】クライアント端末２００がデータファイル２１２をクラウドストレージ３００から取得して復号化する処理を説明する図である。
【図６】クライアント端末２００のＯＳ上におけるファイルシステムの構成図である。
【図７】クライアント端末２００が暗号化フォルダ２３０内に格納された新たなデータファイルをクラウドストレージ３００に送信する処理を説明するフローチャートである。
【図８】クライアント端末２００がクラウドストレージ３００から暗号化データファイルをダウンロードする処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本発明に係るデータ管理システム１０００の構成図である。データ管理システム１０００は、管理サーバ１００、クライアント端末２００、クラウドストレージ３００を有し、これらは例えばインターネットなどのネットワーク４００を介して接続されている。
【００１３】
管理サーバ１００は、クライアント端末２００を利用するユーザのユーザＩＤと各ユーザが所属するグループを管理する認証サーバとして動作する。また、後述の図２で説明するように、クライアント端末２００がデータファイルを暗号化する際に使用する暗号鍵を管理する。
【００１４】
クライアント端末２００は、管理サーバ１００から取得した暗号鍵を用いてデータファイルを暗号化し、暗号化後のデータファイルをクラウドストレージ３００に格納する。また、管理サーバ１００から取得した暗号鍵を用いて、クラウドストレージ３００から取得した暗号化データファイルを復号化する。クライアント端末２００が管理サーバ１００から暗号鍵を取得する際には、管理サーバ１００による認証を受ける必要がある。説明の簡易のため、クラウドストレージ３００にアクセスする際には必ずしも認証は必要でないものとするが、認証処理を設けてもよい。クライアント端末２００は、例えばパーソナルコンピュータ２１０やモバイル端末２２０などのコンピュータである。以下では総称してクライアント端末２００とする。
【００１５】
クラウドストレージ３００は、クライアント端末２００が暗号化したデータファイルを格納する。クラウドストレージ３００は、ネットワーク４００に接続された記憶装置によって構成されており、ネットワーク４００を介してデータを読み書きすることができる。クラウドストレージ３００を提供している事業者は、管理サーバ１００（およびその構成要素）やクライアント端末２００が所属する事業者とは必ずしも同じではない。
【００１６】
図２は、管理サーバ１００の詳細を示す機能ブロック図である。管理サーバ１００は、クライアント端末２００がデータファイルを暗号化する際に使用する暗号鍵を、ユーザ毎の認証を用いて暗号化した上で管理し、クライアント端末２００からのリクエストに応じてその暗号鍵を暗号化したままで送信する。
【００１７】
管理サーバ１００は、プライベート鍵暗号化部１１０、グループ共有鍵暗号化部１２０、システム共有鍵暗号化部１３０、ＰＷ鍵暗号化部１４０、暗号鍵送信部１５０、データベース１６０を備える。暗号鍵送信部１５０はさらに、認証部１５１と送信部１５２を備える。データベース１６０以外の機能部については、後述の図３以降で改めて説明する。
【００１８】
データベース１６０は、クライアント端末２００がデータファイルを暗号化する際に使用する暗号鍵を管理するデータベースである。この暗号鍵は３種類存在する。プライベート鍵１６１２は、クライアント端末２００を使用する各ユーザ固有の暗号鍵である。グループ共有鍵１６１４は、クライアント端末２００を使用するユーザが所属するユーザグループ内で共有する暗号鍵である。システム共有鍵１６１６は、データ管理システム１０００内で共有する暗号鍵である。
【００１９】
データベース１６０は、ユーザ毎の認証情報を用いて上記３種類の鍵を暗号化し、ユーザ毎に設けたユーザテーブル１６１内の各レコードとして格納する。ここでは説明を簡易化するため、管理サーバ１００はパスワードによって各ユーザを認証するものと仮定し、そのパスワードを暗号鍵（以下ではＰＷ鍵１６１８と呼ぶ）として上記３種類の暗号鍵を暗号化するものとする。レコード１６１１、１６１３、１６１５は、それぞれプライベート鍵１６１２、グループ共有鍵１６１４、システム共有鍵１６１６をＰＷ鍵１６１８によって暗号化したデータである。
【００２０】
ユーザテーブル１６１はさらに、ユーザ毎のＰＷ鍵１６１８を、システム管理者のみが管理する管理鍵１６２によって暗号化し、レコード１６１７として格納する。管理鍵１６２は、ユーザテーブル１６１とは別の記憶領域に保持する。例えばセッション管理領域に格納することができる。ＰＷ鍵１６１８を複製して管理することにより、ユーザがパスワードを忘れた場合であっても、管理者が管理鍵１６２を用いてＰＷ鍵１６１８を復号した上で、これを用いてプライベート鍵１６１２、グループ共有鍵１６１４、システム共有鍵１６１６をそれぞれ復号し、新たなパスワードを発行してそのパスワードにより各暗号鍵を再暗号化することができる。すなわち、図２に示すように暗号鍵を２重に暗号化している場合であっても、認証情報を再発行することができる。
【００２１】
データベース１６０は、ハードディスク装置などの記憶装置を用いて構成することができる。その他の機能部は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、これらの機能を実装したプログラムをＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置が実行することによって実現することもできる。プログラムによって実現する場合、これら機能部は「暗号鍵管理プログラム」に相当し、コンピュータ読取可能な記憶媒体（例えば、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体）に格納することができる。管理サーバ１００は、「暗号鍵管理装置」に相当する。
【００２２】
図３は、管理サーバ１００によるユーザ認証処理を説明する図である。図３（ａ）は新たなユーザを登録する処理、図３（ｂ）は登録後のユーザを認証する処理を説明する。以下ではｕｓｅｒ＿Ａに関する処理を例として各処理を説明する。
【００２３】
クライアント端末２００のユーザであるｕｓｅｒ＿Ａは、管理サーバ１００にアクセスし、ｕｓｅｒ＿Ａを新規ユーザとして登録するよう依頼する。このとき、ｕｓｅｒ＿Ａが所属すべきユーザグループであるＧｒｏｕｐ＿Ａを併せて指定してもよいし、所属グループについては管理サーバ１００に委譲してもよい。さらに、ｕｓｅｒ＿Ａを認証するために用いるパスワードを併せて指定してもよい。以下では管理サーバ１００がパスワードを自動的に発行するものと仮定する。
【００２４】
認証部１５１は、クライアント端末２００から新規ユーザであるｕｓｅｒ＿Ａを登録するよう要求するリクエストを受け取ると、ｕｓｅｒ＿Ａに対応するパスワードｕｓｅｒ＿Ａ＿ＰＷを発行し、その対応関係を保持する。以後ｕｓｅｒ＿Ａは、パスワードｕｓｅｒ＿Ａ＿ＰＷを用いて管理サーバ１００にログインすることができる。新規ユーザを登録する処理は自動化してもよいし、管理者が介在してそのユーザを新規登録してもよいか否かを判断した後に登録するようにしてもよい。
【００２５】
認証部１５１は、ｕｓｅｒ＿Ａ固有のプライベート鍵１６１２を例えば乱数によって生成する。Ｇｒｏｕｐ＿Ａが新規グループである場合は、同様にＧｒｏｕｐ＿Ａ固有のグループ共有鍵１６１４を例えば乱数によって生成する。システム共有鍵１６１６と管理鍵１６２はあらかじめ適当な手法によって生成しておく。
【００２６】
プライベート鍵暗号化部１１０は、パスワードｕｓｅｒ＿Ａ＿ＰＷまたはこれから一意に導出した値をＰＷ鍵１６１８としてプライベート鍵１６１２を暗号化し、レコード１６１１としてユーザテーブル１６１に格納する。ｕｓｅｒ＿Ａとレコード１６１１の対応関係は、例えばｕｓｅｒ＿ＡのユーザＩＤをレコード１６１１と対応付けることによって定義してもよいし、ユーザ毎にユーザテーブル１６１を作成することによって定義してもよい。
【００２７】
グループ共有鍵暗号化部１２０、システム共有鍵暗号化部１３０も同様に、ＰＷ鍵１６１８を用いてそれぞれグループ共有鍵１６１４とシステム共有鍵１６１６を暗号化し、それぞれレコード１６１３、１６１５として格納する。ＰＷ鍵暗号化部１４０は、ＰＷ鍵１６１８を複製して管理鍵１６２によって暗号化し、レコード１６１７として格納する。
【００２８】
クライアント端末２００のユーザがデータファイルを暗号化または復号化するときは、まず管理サーバ１００にログインして各暗号鍵を取得する必要がある。ユーザはクライアント端末２００を介して管理サーバ１００にユーザＩＤｕｓｅｒ＿Ａとパスワードｕｓｅｒ＿Ａ＿ＰＷを送信する。認証部１５１はそのユーザＩＤとパスワードを用いて認証処理を実施する。認証許可する場合は、送信部１５２がそのユーザに対応するプライベート鍵１６１２、グループ共有鍵１６１４、システム共有鍵１６１６をデータベース１６０から読み出し、クライアント端末２００に送信する。ただしこれら３つの鍵は、ＰＷ鍵１６１８によって暗号化されたままである。
【００２９】
図４は、クライアント端末２００がデータファイル２１２を暗号化してクラウドストレージ３００に格納（アップロード）する処理を説明する図である。ここではｕｓｅｒ＿Ａのみがデータファイル２１２を使用する場合を想定する。
【００３０】
ユーザはデータファイル２１２をクラウドストレージ３００に格納する前に、あらかじめ図３で説明したように管理サーバ１００にログインして各暗号鍵を取得しておく。クライアント端末２００は、パスワードｕｓｅｒ＿Ａ＿ＰＷを用いて管理サーバ１００から取得した各レコードを復号し、３つの暗号鍵を取得する。データファイル２１２はｕｓｅｒ＿Ａ専用であるため、ユーザはデータファイル２１２を暗号化するための暗号鍵としてプライベート鍵１６１２を選択する。クライアント端末２００はプライベート鍵１６１２を用いてデータファイル２１２を暗号化し、暗号化データファイル２１１を作成する。クライアント端末２００は、暗号化データファイル２１１をクラウドストレージ３００に格納（送信）する。
【００３１】
同様に、Ｇｒｏｕｐ＿Ａに属するユーザ間でデータファイル２１２を共有する場合は、ユーザはデータファイル２１２を暗号化するための暗号鍵としてグループ共有鍵１６１４を選択する。Ｇｒｏｕｐ＿Ａに属さないユーザとの間でデータファイル２１２を共有する場合は、ユーザはデータファイル２１２を暗号化するための暗号鍵としてシステム共有鍵１６１６を選択する。クライアント端末２００は選択された暗号鍵を用いてデータファイル２１２を暗号化し、クラウドストレージ３００に格納する。
【００３２】
クライアント端末２００は、データファイル２１２を暗号化する際に、上記３種類の暗号鍵のうちいずれの種類のものを用いたかを示す情報を、暗号化データファイル２１１内に埋め込む。ただし暗号鍵の種類が分かれば足りるため、個々の暗号鍵そのものを個別に特定する情報を埋め込む必要はない。
【００３３】
図５は、クライアント端末２００がデータファイル２１２をクラウドストレージ３００から取得（ダウンロード）して復号化する処理を説明する図である。ここでは図４と同様に、ｕｓｅｒ＿Ａのみがデータファイル２１２を使用する場合を想定する。
【００３４】
ユーザはデータファイル２１２をクラウドストレージ３００から取得する前に、図４と同様にあらかじめ各暗号鍵を管理サーバ１００から取得する。クライアント端末２００は各暗号鍵を復号する。
【００３５】
ユーザはクライアント端末２００を介してクラウドストレージ３００にアクセスし、暗号化データファイル２１１を取得する。暗号化データファイル２１１内には、同ファイルが各ユーザ固有の暗号鍵を用いて暗号化されている旨を示す情報が埋め込まれている。したがってクライアント端末２００は、ｕｓｅｒ＿Ａのプライベート鍵１６１２を用いて暗号化データファイル２１１を復号するよう試みる。暗号化データファイル２１１がｕｓｅｒ＿Ａのプライベート鍵１６１２によって暗号化されている場合は、データファイル２１２を復号化することができる。
【００３６】
同様に、データファイル２１２がＧｒｏｕｐ＿Ａに属するユーザ間で共有するファイルである場合は、クライアント端末２００はグループ共有鍵１６１４を用いてデータファイル２１２を復号化し、データファイル２１２がＧｒｏｕｐ＿Ａに属さないユーザとの間で共有するファイルである場合は、クライアント端末２００はシステム共有鍵１６１６を用いてデータファイル２１２を復号化する。
【００３７】
ｕｓｅｒ＿Ａがクラウドストレージ３００に格納した暗号化データファイル２１１を別のユーザ（例えばｕｓｅｒ＿Ｂ）が取得する場合もあり得る。この場合クライアント端末２００は、ｕｓｅｒ＿Ｂに対応するプライベート鍵１６１２、グループ共有鍵１６１４、システム共有鍵１６１６を取得しているので、これらを用いて暗号化データファイル２１１を復号することを試みる。このときの処理パターンについて以下に説明する。
【００３８】
（処理パターン１）データファイル２１２がｕｓｅｒ＿Ａ固有のプライベート鍵１６１２によって暗号化されている場合は、クライアント端末２００はデータファイル２１２を復号することができない。
【００３９】
（処理パターン２）ｕｓｅｒ＿Ａとｕｓｅｒ＿Ｂが同じグループ（例えばＧｒｏｕｐ＿Ａ）に所属し、かつデータファイル２１２がＧｒｏｕｐ＿Ａに属するユーザ間で共有するグループ共有鍵１６１４によって暗号化されている場合は、ｕｓｅｒ＿Ｂに対応するグループ共有鍵１６１４を用いてデータファイル２１２を復号化することができる。
【００４０】
（処理パターン３）データファイル２１２がシステム共有鍵１６１６を用いて暗号化されている場合は、ｕｓｅｒ＿Ｂに対応するシステム共有鍵１６１６を用いてデータファイル２１２を復号化することができる。
【００４１】
図６は、クライアント端末２００のＯＳ（オペレーティングシステム）上におけるファイルシステムの構成図である。クライアント端末２００は、図４〜図５で説明したように個々のデータファイル２１２を暗号化または復号化することができるが、ユーザがその都度暗号鍵を選択するなどの作業が発生するため、ユーザにとって負担が生じる。そこでクライアント端末２００は、ファイルシステム上の所定フォルダ以下に格納したデータファイルを一括して暗号化または復号化し、さらにはクラウドストレージ３００との間でファイルを同期化することができる。図６はそのフォルダ構成例を説明するものである。クライアント端末２００のファイルシステムは、同期フォルダ２２０と暗号化フォルダ２３０を有する。
【００４２】
同期フォルダ２２０は、クライアント端末２００がクラウドストレージ３００に送信し、またはクライアント端末２００がクラウドストレージ３００から取得したデータファイルを格納するフォルダである。クライアント端末２００は、同期フォルダ２２０を常時監視しており、同期フォルダ２２０内に新たなデータファイルが格納されると、そのデータファイルをクラウドストレージ３００に送信する。またクライアント端末２００は、必要に応じて定期的にクラウドストレージ３００に接続し、新たな暗号化データファイルが存在する場合はダウンロードして同期フォルダ２２０内に格納する。
【００４３】
同期フォルダ２２０内には、サブフォルダを設けることができる。同期フォルダ２２０内のフォルダ／ファイル構成とクラウドストレージ３００上のフォルダ／ファイル構成は同期させることが望ましい。
【００４４】
クライアント端末２００が複数のクラウドストレージ３００を利用する場合は、同期フォルダ２２０内に、各クラウドストレージ３００に対応するサブフォルダを設け、クラウドストレージ３００毎に同期処理を実施することができる。図６に示すサブフォルダ２２１と２２２は、２つのクラウドストレージ３００（ＣｌｏｕｄＳｔｏｒａｇｅＡ、ＣｌｏｕｄＳｔｏｒａｇｅＢ）に対応する。
【００４５】
暗号化フォルダ２３０は、クライアント端末２００がクラウドストレージ３００に送信する前に暗号化すべきデータファイルを格納し、またはクラウドストレージ３００から取得した暗号化データファイルを復号したデータファイルを格納するフォルダである。クライアント端末２００は、暗号化フォルダ２３０を常時監視しており、暗号化フォルダ２３０内に新たなデータファイルが格納されると、そのデータファイルを暗号化して同期フォルダ２２０に格納する。同期フォルダ２２０に格納されたデータファイルは、上述のようにクラウドストレージ３００へ送信される。またクライアント端末２００は、同期フォルダ２２０内に新たな暗号化データファイルが格納されると、その暗号化データファイルを復号化して暗号化フォルダ２３０に格納する。
【００４６】
クライアント端末２００は、暗号化フォルダ２３０内のフォルダ／ファイル構成を、同期フォルダ２２０内のファイル／フォルダ構成と同期させる。したがって、同期フォルダ２２０内に複数のクラウドストレージ３００毎のサブフォルダが存在する場合は、暗号化フォルダ２３０内にも同じフォルダ構成を作成する。サブフォルダ２３１と２３２は、それぞれサブフォルダ２２１と２２２に対応する。ただしファイルの拡張子については、暗号化されているか否かを区別するため適当に変更することができる。図６においては、暗号化されているデータファイルには元の「ファイル名＋拡張子」に加えて拡張子「．ｃｒｙｐｔｏ」を付与した例を示した。
【００４７】
次に、使用する暗号鍵を区別する手法について説明する。クラウドストレージ３００は一般に、データファイルを共有すべきユーザをフォルダ毎に指定する機能を備えている。そこでクライアント端末２００は、クラウドストレージ３００上の各フォルダに格納されているデータファイルを共有すべきユーザをクラウドストレージ３００に問い合わせ、その結果に応じて使用すべき暗号鍵を特定する。例えばＧｒｏｕｐ＿Ａ内で共有すべきデータファイルを格納するフォルダ内のデータファイルについてはＧｒｏｕｐ＿Ａ固有のグループ共有鍵１６１４を用いて暗号化する。図６においては、サブフォルダ２３２内のフォルダ「ＳｈａｒｅＡ」がこれに相当する。グループをまたがって共有すべきデータファイルについてはシステム共有鍵１６１６を用いて暗号化する。図６には示していないが、システム共有鍵１６１６に対応するフォルダを設けることができる。これらに当てはまらないデータファイルについてはプライベート鍵１６１２を用いて暗号化する。
【００４８】
クライアント端末２００がクラウドストレージ３００から新たな暗号化データファイルを取得した際には、図５において説明したように、いずれの種類の暗号鍵を用いるべきかを示す情報が暗号化データファイル内に埋め込まれているので、その情報に対応する暗号鍵を用いて暗号化データファイルを復号することができる。あるいはデータファイルを暗号化する場合と同様に、例えばＧｒｏｕｐ＿Ａ内で共有すべきデータファイルを格納するフォルダ内のデータファイルについてはＧｒｏｕｐ＿Ａ固有のグループ共有鍵１６１４を用いて復号化してもよい。
【００４９】
暗号化データファイル内に埋め込まれている情報とフォルダの間の対応関係が矛盾する場合は、どのように処理すべきかを別途設定ファイルなどに定義しておき、その設定にしたがって処理すればよい。例えば、Ｇｒｏｕｐ＿Ａ内で共有すべきデータファイルを格納するフォルダ内に、プライベート鍵１６１２を用いて暗号化されている旨の情報が埋め込まれている暗号化データファイルが格納されている場合は、プライベート鍵１６１２とグループ共有鍵１６１４を双方用いて復号化を試行し、復号に成功した方を採用することができる。あるいはその暗号化データファイルについては復号化せずそのまま暗号化フォルダ２３０内に格納することもできる。この処理は、後述するステップＳ８０５〜Ｓ８１０において適用することができる。
【００５０】
図７は、クライアント端末２００が暗号化フォルダ２３０内に格納された新たなデータファイルをクラウドストレージ３００に送信する処理を説明するフローチャートである。以下、図７の各ステップについて説明する。
【００５１】
（図７：ステップＳ７０１）
ユーザはクライアント端末２００を介して認証情報（ユーザＩＤとパスワード）を入力し、必要に応じてグループ情報（当該ユーザが所属するグループＩＤ）を指定して、管理サーバ１００に送信する。
【００５２】
（図７：ステップＳ７０２〜Ｓ７０３）
管理サーバ１００の認証部１５１は、クライアント端末２００から受け取った認証情報を用いてユーザ認証を実施する（Ｓ７０２）。認証拒否する場合はその旨を示す応答をクライアント端末２００に送信し、クライアント端末２００はユーザ認証に失敗した旨を示すダイアログを画面表示して、本フローチャートは終了する。認証許可する場合はステップＳ７０４へ進む。
【００５３】
（図７：ステップＳ７０４）
送信部１５２は、データベース１６０から当該ユーザに対応するプライベート鍵１６１２、グループ共通鍵１６１４、システム共有鍵１６１６を取得し、クライアント端末２００に送信する。ただし図３で説明したように、これら３つの鍵はＰＷ鍵１６１８によって暗号化されているので、クライアント端末２００は当該ユーザの認証情報を用いてこれら暗号鍵を復号化する。
【００５４】
（図７：ステップＳ７０５）
クライアント端末２００は、同期フォルダ２２０内に格納されているファイル構成と暗号化フォルダ２３０内に格納されているファイル構成を比較し、同期フォルダ２３０内に格納されているファイル構成に追加や更新が発生しているか否かを判定する。追加や更新が発生している場合はステップＳ７０６へ進み、発生していない場合はステップＳ７０７へスキップする。
【００５５】
（図７：ステップＳ７０６）
クライアント端末２００は、暗号化データファイルに埋め込まれた情報に基づき、対応する暗号鍵を用いてその暗号化データファイルを復号し、暗号化フォルダ２３０にコピーする。同期フォルダ２３０内の暗号化データファイルが削除されていた場合は、暗号化フォルダ２３０内の対応するデータファイルを削除する。
【００５６】
（図７：ステップＳ７０７）
クライアント端末２００は、暗号化フォルダ２３０内のファイル構成に追加や更新があったかを定期的に確認する。追加や更新が発生している場合はステップＳ７０８へ進み、発生していない場合はステップＳ７０９へスキップする。
【００５７】
（図７：ステップＳ７０８）
クライアント端末２００は、暗号化フォルダ２３０内において追加または更新されたデータファイルを対応する暗号鍵で暗号化し、同期フォルダ２２０にコピーする。クライアント端末２００は、同期フォルダ２２０にコピーされた暗号化データファイルをクラウドストレージ３００にアップロードする。
【００５８】
（図７：ステップＳ７０９〜Ｓ７１０）
クライアント端末２００は、ユーザがログアウトしたか否かを判定し（Ｓ７１０）、ログアウトした場合は暗号化フォルダ２３０の監視を終了する。ログアウトしていない場合はステップＳ７０５に戻って同様の処理を繰り返す（Ｓ７１０）。
【００５９】
図８は、クライアント端末２００がクラウドストレージ３００から暗号化データファイルをダウンロードする処理を説明するフローチャートである。ステップＳ８０１〜Ｓ８０４は図７のステップＳ７０１〜Ｓ７０４と同様であるため、以下ではステップＳ８０５以降のみについて説明する。
【００６０】
（図８：ステップＳ８０５）
クライアント端末２００は、クラウドストレージ３００からダウンロードした暗号化データファイルを、同期フォルダ２２０に格納する。クライアント端末２００は、クラウドストレージ３００からダウンロードした暗号化データファイルに埋め込まれた識別情報を確認することにより、復号化処理において使用すべき暗号鍵を特定する。
【００６１】
（図８：ステップＳ８０６〜Ｓ８１０）
クライアント端末２００は、ステップＳ８０５における判定結果に基づき、対応する暗号鍵を用いて暗号化データファイルを復号化する。復号化によって得られたデータファイルは、暗号化フォルダ２３０内の対応するフォルダに格納される。
【００６２】
＜本発明のまとめ＞
以上のように、本発明における管理サーバ１００は、同じユーザグループ内に属するユーザ間で共有するグループ共有鍵１６１４を各ユーザのＰＷ鍵１６１８によって暗号化したレコード１６１３を保持し、クライアント端末２００からのリクエストに応じて各ユーザに対応するレコード１６１３を送信する。グループ共有鍵１６１４はグループ内で共通であるため、それぞれ異なるＰＷ鍵１６１８によって暗号化されていたとしても、同じグループに属するユーザは同じグループ共有鍵１６１４を取得することができる。これにより、グループ内の他ユーザとの間で暗号化データファイル２１１を共有する場合であっても、パスワードを互いに通知する必要がなくなるので、クラウドストレージ３００の利便性を保ちつつ、クラウドストレージ３００上のデータファイルを暗号化してセキュリティを高めることができる。
【００６３】
また、本発明における管理サーバ１００によれば、クラウドストレージ３００上の暗号化データファイル２１１、管理サーバ１００上で管理する暗号化された各暗号鍵、ユーザのみが知り得るパスワード等の認証情報の３要素のうちいずれか２つが漏えいしたとしても、３つの要素が全て揃わない限り、暗号化データファイル２１１を復号することができない。そのため、データ管理システム１０００全体としてセキュリティを向上させることができる。この特性は、いずれの暗号鍵についても共通である。
【００６４】
また、本発明におけるクライアント端末２００は、同期フォルダ２２０内と暗号化フォルダ２３０内それぞれにおいて、各クラウドストレージ３００に対応するサブフォルダを設け、クラウドストレージ３００毎にデータファイルを各フォルダと同期させる。これにより、クラウドストレージ３００毎の仕様差異の影響を受けずに、統一した操作感とインタフェースで複数の異なるクラウドストレージ３００を利用することができる。
【００６５】
また、本発明におけるクライアント端末２００は、クラウドストレージ３００上においてデータファイルを共有すべきユーザについてのルールをクラウドストレージ３００に問い合わせ、そのルールに対応するフォルダ毎に設定された暗号鍵を用いてデータファイルを暗号化または復号化する。これにより、ユーザはどのフォルダに格納すれば他ユーザとデータファイルを共有することができるかのみを意識すればよく、各データファイルをどの暗号鍵で暗号化するかについて意識する必要がないため、パスワードを用いて個々のデータファイルを暗号化する場合と比較して利便性がよい。また、パスワードを他ユーザに伝える必要がないため、セキュリティ面でも好ましい。
【００６６】
また、本発明におけるクライアント端末２００は、データファイル２１２を暗号化する際に、いずれの種類の暗号鍵を用いたかを示す情報を暗号化データファイル２１１内に埋め込んでおき、暗号化データファイル２１１を復号化する際にその情報を参照して対応する暗号鍵を用いる。これにより、ユーザは暗号鍵の種類や暗号方式を逐一選択する必要がなくなるので、ユーザにとっての利便性を向上させることができる。
【００６７】
＜本発明の変形例＞
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【００６８】
例えば、上記実施形態においては、暗号鍵と復号鍵が同一である暗号方式を前提としたが、暗号鍵と復号鍵が異なる場合（例えば公開鍵暗号方式）においても適用することができる。この場合は、管理サーバ１００が暗号鍵と復号鍵のペアをそれぞれ管理しておき、クライアント端末２００は暗号鍵と復号鍵のいずれを必要とするかを管理サーバ１００へ通知するようにすればよい。
【００６９】
また、上記実施形態においては、ユーザを認証するための認証情報としてパスワードを例示したが、クライアント端末２００が各暗号鍵を復号することができれば、その他の認証情報を用いることもできる。
【００７０】
また、上記実施形態においては、フォルダ構成としてＷｉｎｄｏｗｓ（登録商標）を想定したが、その他のＯＳ上においても同様の仕組みを提供することができる。
【符号の説明】
【００７１】
１００：管理サーバ、１１０：プライベート鍵暗号化部、１２０：グループ共有鍵暗号化部、１３０：システム共有鍵暗号化部、１４０：ＰＷ鍵暗号化部、１５０：暗号鍵送信部、１６０：データベース、１６１２：プライベート鍵、１６１４：グループ共有鍵、１６１６：システム共有鍵、１６１８：ＰＷ鍵、１６２：管理鍵、２００：クライアント端末、３００：クラウドストレージ、４００：ネットワーク。
【図１】
2014127721.tif 000003
【図２】
2014127721.tif 000004
【図３】
2014127721.tif 000005
【図４】
2014127721.tif 000006
【図５】
2014127721.tif 000007
【図６】
2014127721.tif 000008
【図７】
2014127721.tif 000009
【図８】
2014127721.tif 000010