説明

ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム

【課題】ユーザの秘密情報(ユーザのパスワードやファイル暗号鍵の復号鍵として用いる秘密鍵)が漏洩した場合であっても、事後的に当該ユーザの秘密情報を用いた不正アクセスを抑止することのできるファイル管理システムの提供。
【解決手段】ストレージサーバは、予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備え、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラムに関し、特に、暗号化してファイルを管理するファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラムに関する。
【背景技術】
【0002】
ストレージ上のファイルに対し、ある一定のユーザからのアクセスを許容し、情報共有、業務の分担に役立てることのできるファイル管理システムに対するニーズがある。例えば、異なる組織に所属するユーザに対してネットワークを介して直接的あるいは間接的にストレージサービスを提供するサービスなどが挙げられる。また、この種のファイル管理システムを用いて、複数ユーザ間のデータの相関分析やトレンド分析などに基づくリコメンデーションの作成・提供や、HSM(Hierarchical Storage Management)、ILM(Information Lifecycle Management)、またデータ圧縮や重複排除などを行うことも知られている。この種のファイル管理システムにおいては、ファイルの暗号化に使用した鍵やデータそのものを危険にさらすことなく、個々のユーザがその権限に応じたファイルにアクセスできるように制御することが望まれる。
【0003】
特許文献1に、共通鍵暗号方式と、公開鍵暗号方式を併用し、ユーザ秘密鍵で暗号化されたファイルを格納するファイル格納部及びユーザからのファイルアクセス要求に対して該当ファイルを検索・送信するファイル送信部を備える共有ファイルサーバと、前記ユーザ秘密鍵をユーザ公開鍵で暗号化し、ユーザID及びファイルIDに関連付けて格納するクライアント秘密鍵格納部を備える暗号管理サーバとを備えたファイル管理システムが開示されている。
【0004】
また、特許文献2には、暗号化ファイルのヘッダ部分に複数のキー情報を埋め込むことで、あるキー情報が正しくない場合でも別のキー情報を使用して復号することができ、また、あらかじめ共通のキー情報を作成し配布しておくことでこのグループキーを持つユーザだけがファイルを復号化できるようにしたセキュリティシステムが開示されている。
【0005】
さらに、非特許文献1には、ファイルの暗号化に使用した鍵(同文献の図8のコンテンツキー)をアクセス権を持つユーザのみが安全に取り出せるよう暗号化した上でファイルに付加し、安全にファイルの共有を実現する方法の一例が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−209181号公報
【特許文献2】特開2000−99385号公報
【非特許文献】
【0007】
【非特許文献1】Microsoft、“RMSとIRMによる情報保護”、テクニカルホワイトペーパー、2004年3月18日、[online]、[平成22年3月29日検索]、インターネット〈URL:http://technet.microsoft.com/ja-jp/library/CC984234.aspx〉
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上記した特許文献および非特許文献記載の各技術は、ユーザの秘密情報(ファイル暗号鍵や暗号化ファイル暗号鍵の復号鍵)が漏洩した際に、当該ユーザの秘密情報を利用した不正アクセスを遮断することが難しいという問題点がある。例えば、特許文献1の場合、ファイルの暗号化に用いたユーザ秘密鍵(ユーザDESキー)を復号するためのユーザ秘密鍵(RSA秘密鍵)が漏洩することはないとの前提の下に、クライアントからのファイルへのアクセス要求を受け付けた場合に、ユーザ公開鍵(RSA公開鍵)で暗号化したユーザ秘密鍵(ユーザDESキー)および暗号化ファイルをクライアントに送信する構成を採っているため、一度ユーザ秘密鍵(RSA秘密鍵)が漏洩してしまうと、当該ユーザがアクセス可能な他のファイルにアクセスされてしまう可能性がある。
【0009】
同様に、特許文献2や非特許文献1の技術も、ユーザの秘密情報が漏洩することはないとの前提の下に設計されているため、秘密情報(特許文献2のユーザ情報、パスワード等、非特許文献1のユーザ秘密鍵)を用いて、暗号化ファイルに添付された鍵(セッションキー、コンテンツキー)を入手して、暗号化ファイル内の平文やコンテンツにアクセスされてしまう可能性がある。
【0010】
上記の問題は、前記ユーザの秘密情報(ユーザのパスワードやファイル暗号鍵の復号鍵として用いる秘密鍵)が漏洩した場合のほか、当該ユーザの秘密情報を持った構成員の人事異動、休退職、あるいは、冒頭に述べた各種のサービスからのユーザの退会やサービス変更などの場合にも起こりうる。これらに対し、その都度、暗号化されたファイル自体を別の暗号鍵で暗号化し直すことは現実的ではない。
【0011】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記したユーザの秘密情報(ユーザのパスワードやファイル暗号鍵の復号鍵として用いる秘密鍵)が漏洩した場合であっても、可及的速やかに対策を講じ、当該ユーザの秘密情報を用いた不正アクセスを抑止できるようにしたファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明の第1の視点によれば、予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備えるストレージサーバと、前記ストレージサーバから受け取った前記暗号化ファイル暗号鍵(E−FEK)を前記公開鍵に対応する秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアントまたはサービスインスタンスと、を含み、前記ストレージサーバは、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すファイル管理システムが提供される。
【0013】
本発明の第2の視点によれば、ストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK;Encrypted−File Encryption Key)を秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK;File Encryption Key)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアントまたはサービスインスタンスと、接続され、ファイル暗号鍵(FEK)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備え、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すストレージサーバが提供される。
【0014】
本発明の第3の視点によれば、上記したストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK;Encrypted−File Encryption Key)を秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK;File Encryption Key)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアントまたはサービスインスタンスが提供される。
【0015】
本発明の第4の視点によれば、予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備えるストレージサーバが、クライアントまたはサービスインスタンスからの要求に応じて、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すステップと、前記クライアントまたはサービスインスタンスが、前記ストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK)を前記公開鍵に対応する秘密鍵で復号するステップと、前記復号したファイル暗号鍵(FEK)を用いてファイルを暗復号する暗復号ステップと、を含むファイル管理方法が提供される。本方法は、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すストレージサーバという、特定の機械に結びつけられている。
【0016】
本発明の第5の視点によれば、上記したストレージサーバ、クライアントまたはサービスインスタンスをそれぞれ構成するコンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0017】
本発明によれば、ユーザの秘密情報(ユーザのパスワードやファイル暗号鍵の復号鍵として用いる秘密鍵)が漏洩した場合であっても、事後的に当該ユーザの秘密情報を用いた不正アクセスを抑止することが可能になる。
【図面の簡単な説明】
【0018】
【図1】本発明の概要を説明するための図である。
【図2】本発明の第1の実施形態の構成を表したブロック図である。
【図3】図2の暗号化ファイル記憶部に記憶される暗号化ファイルの構成例を示す図である。
【図4】図2のE−FEK記憶部における暗号化ファイル暗号鍵(E−FEK)を管理するためのリストの構成例を示す図である。
【図5】本発明の第1の実施形態の動作(ファイル作成時)を示す流れ図である。
【図6】本発明の第1の実施形態の動作(ファイル利用時)を示す流れ図である。
【図7】本発明の第1の実施形態の動作(サービス開始時)を示す流れ図である。
【図8】本発明の変形実施形態の構成を表したブロック図である。
【発明を実施するための形態】
【0019】
はじめに、本発明の概要について説明する。図1に示すように、本発明は、予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部26と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて前記ファイル暗号鍵(FEK)を暗号化するファイル暗号鍵暗号化部22と、前記暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部25と、を備えるストレージサーバ20と、ネットワーク経由でストレージサーバ20にアクセス可能なクライアント10A、10Bと、を含んで構成される。
【0020】
ストレージサーバ20は、さらに、アクセス要求受付部21を備え、クライアント10A、10Bから、暗号化ファイル暗号鍵(E−FEK)の払い出し要求を受けた際に、無効化公開鍵情報記憶部23に、該当ユーザまたはサービスの公開鍵が登録されているか否かを確認し、公開鍵の有効性を確認できた場合に、暗号化ファイル暗号鍵(E−FEK)を払い出す。
【0021】
ストレージサーバ20から前記暗号化ファイル暗号鍵(E−FEK)を受け取ったクライアント10A、10Bは、自身の公開鍵に対応する秘密鍵を用いて暗号化ファイル暗号鍵(E−FEK)を復号し、得られたファイル暗号鍵(FEK)を用いてファイルを暗復号する。
【0022】
例えば、図1に示すように、クライアント10A、10Bが、それぞれ正規ユーザであり、暗号化ファイルが暗号化ファイル記憶部26に、自身のファイル暗号鍵(FEK_A、FEK_B)で暗号化した暗号化ファイルを登録していたものとする。その後、何らかの理由(例えば、クライアント10Aのユーザ秘密鍵_Aの漏洩)でクライアント10Aの公開鍵が無効になり、無効化公開鍵情報記憶部23に当該公開鍵が無効になった旨が記録されると、以後、ストレージサーバ20は、クライアント10Aの公開鍵にて暗号化された暗号化ファイル暗号鍵(E−FEK)を払い出し要求を拒否する。
【0023】
これにより、暗号化ファイル記憶部26に記憶した暗号化ファイルの再暗号化等を行わなくとも、暗号化ファイルの復号を阻止することが可能になる。
【0024】
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を表したブロック図である。図2を参照すると、クライアント100と、サービスインスタンス200と、暗号化ファイル記憶部401、E−FEK記憶部402、無効化公開鍵リスト記憶部403、サービスユーザリスト記憶部404にアクセス可能なストレージサーバ300と、を含む構成が示されている。
【0025】
クライアント100は、ファイルを取り扱う各種アプリケーションとの間で、ファイルの入出力処理を行うファイル入出力部101と、自身の秘密鍵(ファイルオーナー秘密鍵)や他のノードの公開鍵(ストレージサーバ公開鍵等)を用いて、ファイル暗号鍵(以下、「FEK」とする。)の暗復号を行うFEK暗復号処理部102と、FEK暗復号処理部102にて復号されたFEKを用いて、ストレージサーバ200から受信した暗号化ファイルの暗復号処理を行うファイル暗復号処理部103と、主にストレージサーバ300との通信を行う通信部105とを含んで構成される。なお、図2の例では、クライアント100が1台接続された構成を示しているが、クライアント100は、複数存在してかまわない。また、クライアント100がなく、サービスインスタンス200のみがあるという構成も採用可能である。
【0026】
サービスインスタンス200は、サービスの実行を行うサービス実行部201と、自身の秘密鍵(サービス秘密鍵)を用いて、FEKの暗復号処理を行うFEK暗復号処理部202と、FEK暗復号処理部202にて復号されたFEKを用いて、ストレージサーバ200から受信した暗号化ファイルの暗復号処理を行うファイル暗復号処理部203と、主にストレージサーバ300との通信を行う通信部205とを含んで構成される。サービスインスタンス200は、あるサービスをそのサービスを提供するユーザの集合ごとに準備したもので、複数存在しえる。また、サービス自体も複数存在してかまわない。また、サービスインスタンス200がなく、クライアント100のみがあるという構成も採用可能である。
【0027】
ストレージサーバ300は、クライアント100から受信したメッセージに付されたデジタル署名の検証を行うデジタル署名検証部301と、所定の認証方式を用いてクライアント100やサービスインスタンス200の認証を行う認証部302と、クライアント100やサービスインスタンス200との通信を行う通信部303と、所定の鍵生成方式を用いてFEKを生成するFEK生成器304と、FEKの暗復号処理を行うFEK暗復号処理部305と、暗号化ファイル記憶部401、E−FEK記憶部402、無効化公開鍵リスト記憶部403、サービスユーザリスト記憶部404へのアクセスを行うストレージアクセス部306と、アクセスリクエストを依頼してきたクライアント100やサービスインスタンス200のリクエストの有効性を検証するリクエスト有効性検証部307とを含んで構成される。なお、図2の例では、ストレージサーバ300が1台接続された構成を示しているが、ストレージサーバ300は複数存在してかまわない。
【0028】
暗号化ファイル記憶部401は、FEKで暗号化した状態でファイルを保管するデータベース等により構成される。暗号化ファイルの具体的な構成については後に図3を用いて説明する。
【0029】
E−FEK記憶部402は、ユーザあるいはサービス毎に定められた公開鍵と、この公開鍵でFEKを暗号化した暗号化ファイル暗号鍵(E−FEK)とを対応付けて記憶する。FEK記憶部402の具体的な構成については後に図4を用いて説明する。
【0030】
無効化公開鍵リスト記憶部403は、無効化されたユーザあるいはサービスの公開鍵のリスト(Revoked Pub Key List)を記憶する。無効化公開鍵リスト記憶部403への無効化公開鍵の追加・削除は、例えば、ユーザからの通報等により、ストレージサーバの管理者により行われる。無効化公開鍵リストに代えて、有効な公開鍵のリストを記憶して、当該リストに記載されていない公開鍵は無効であると判断する構成であってもよい。
【0031】
サービスユーザリスト記憶部404は、サービスインスタンスとそのサービスインスタンスを利用するユーザ群の組を格納するサービスユーザリストを記憶する。
【0032】
以上の暗号化ファイル記憶部401、E−FEK記憶部402、無効化公開鍵リスト記憶部403、サービスユーザリスト記憶部404は、一または複数の記憶装置によって実現することができる。また、図2の例では、ストレージサーバ300の外部に暗号化ファイル記憶部401、E−FEK記憶部402、無効化公開鍵リスト記憶部403、サービスユーザリスト記憶部404が接続されている構成を示しているが、ストレージサーバ300に内蔵された記憶装置に暗号化ファイル、E−FEK、無効化公開鍵リスト、サービスユーザリストのうちの一部または全部を記憶する構成も採用可能である。
【0033】
ここで、暗号化ファイル記憶部401に記憶される暗号化ファイルと、E−FEK記憶部402の具体的構成例を説明する。
【0034】
図3は、暗号化ファイルの構成を模式的に表した図である。図3の例では、暗号化ファイル500は、データ本体をFEKで暗号化した暗号化ファイル本体501に、その暗号化に使用したFEK ID502を付加して構成されている。このように、暗号化ファイル自体に、鍵情報やこれに関連する情報を添付しない構成とすることで、鍵情報の解析を困難化することができる。
【0035】
図4は、E−FEK記憶部402に保持される、公開鍵とE−FEKを管理するためのリスト600の構造を表した図である。図4の例では、あるファイルを暗号化した際に用いたFEKのID毎に、そのファイルに対しアクセス権限を持つアクセス主体(ファイルオーナ、ストレージサーバ、他のユーザ、他のサービス)の公開鍵と、該当アクセス主体の公開鍵で暗号化されたE−FEKと、を組にして、必要な数(1〜n;nは当該ファイルにアクセスを許可された主体の数)だけ一まとめに格納される。このようなリストをFEK(FEK ID)毎に用意することで、公開鍵と、その公開鍵を用いて暗号化したE−FEKの管理が容易化される。
【0036】
図3、図4からも明らかなように、公開鍵によって暗号化されていないFEKそのものは、図2の示すシステム全体のどこにも保存されない。あるアクセス主体が、あるファイルについてアクセスしようとする場合、E−FEK記憶部402から、図3のFEK IDに対応するE−FEKのリストを参照し、自身の公開鍵にて暗号化されたE−FEKを取り出す。前記アクセス主体は、自身の公開鍵に対応する秘密鍵を保持しているので、E−FEKを復号することができる。前記復号の結果、得られたFEKを用いて、目的とするファイルの暗復号が可能となる。
【0037】
なお、図2に示したクライアント100、サービスインスタンス200、ストレージサーバ300の各部(処理手段)は、これらを構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することができる。
【0038】
続いて、本実施形態の動作についてファイルの作成、ファイルの利用、ファイルを利用するサービスの開始に分けて、詳細に説明する。
【0039】
[ファイルの作成]
図5は、本発明の第1の実施形態の動作(ファイル作成時)を示す流れ図である。図5を参照すると、まず、ファイルの作成者(ファイルオーナ)がファイルの作成に先立ってクライアント100を利用してストレージサーバ300に認証を依頼する(ステップS100)。
【0040】
ストレージサーバ300は、認証部302を利用しファイルオーナの認証を行いファイルオーナの公開鍵を確定する(ステップS101)。なお、ステップS100、S101における認証方式については、特に限定するものではなく、パスワードやバイオメトリクス情報を用いる方式などを適宜採用することができる。また、ここで確定する公開鍵としてファイルオーナから受信したものを用いてもよいし、あるいは、ストレージサーバ300側に保持されている正規ユーザ(認証済みユーザ)の公開鍵を読み出して公開鍵を確定することとしてもよい。
【0041】
次に、ストレージサーバ300は、無効化公開鍵リスト記憶部403から無効化された公開鍵のリストを読み出し(ステップS102)、ファイルオーナの公開鍵の有効性を検証する(ステップS103)。なお、図5では省略されているが、前記公開鍵の有効性の検証の結果、ファイルオーナの公開鍵が無効化されていた場合には、ファイルオーナにその旨通達するなどのエラー処理を行った後、処理を終了する。
【0042】
ファイルオーナの公開鍵の有効性が検証されると、クライアント100にて、その搭載アプリケーションを利用してファイルの作成が行われる(ステップS104)。前記ファイルの作成が完了すると、クライアント100から、ストレージサーバ300に対し、そのファイルの暗号化に使用するFEKの生成依頼が行われる(ステップS105)。
【0043】
前記生成依頼を受けたストレージサーバ300は、FEK生成器304を利用してFEKを生成する(ステップS106)。また、生成したFEKには、FEKを一意に特定するためのFEK IDが付与される。
【0044】
続いて、ストレージサーバ300は、FEK暗復号処理部305を用いて、当該ファイルにアクセスが認められている各アクセス主体の公開鍵を用いて、前記生成したFEKを暗号化する。ストレージサーバ300は、ファイルオーナの公開鍵でFEKを暗号化する(ステップS107)。同様に、ストレージサーバ300は、ストレージサーバ自身の公開鍵でFEKを暗号化する(ステップS108)。さらに、ストレージサーバ300は、サービスユーザリスト記憶部404からサービスユーザリストを読み出し(ステップS109)、ファイルオーナが当該ファイルへのアクセスを許可している他のユーザもしくはサービスの公開鍵でFEKを暗号化する(ステップS110)。
【0045】
ストレージサーバ300は、上記ステップS107、S108、S110で作成したE−FEKと、当該E−FEKの暗号化に使用した各公開鍵とを組にして、FEK IDを付加したリストを作成し(図4のリスト600参照)、E−FEK記憶部402に格納する(ステップS111)。
【0046】
ストレージサーバ300は、ステップS105のFEK生成依頼の応答として、ファイルオーナの公開鍵を用いて暗号化したE−FEKをFEK−IDとともにクライアント100に送信する。
【0047】
E−FEKを受信したクライアント100は、ファイルオーナの秘密鍵を用いて、前記受信したE−FEKを復号化する(ステップS112)。
【0048】
クライアント100は、FEK暗復号処理部102にて、ステップS112で得られたFEKを用いて、ステップS104にて作成したファイルを暗号化する(ステップS113)。その後、クライアント100は、図4に示したようにFEK IDを付加した暗号化ファイル(図4の暗号化ファイル500参照)をストレージサーバ300に送信する(ステップS114)。
【0049】
ストレージサーバ300は、クライアント100から受信した暗号化ファイルを、暗号化ファイル記憶部401に格納する(ステップS115)。
【0050】
以上により、暗号化ファイルが暗号化ファイル記憶部401に記憶されるとともに、ファイルオーナを含む当該ファイルにアクセス可能な主体のE−FEKが、E−FEK記憶部402に記憶されて、いつでも利用可能な状態となる。
【0051】
[ファイルの利用]
図6は、本発明の第1の実施形態の動作(ファイル利用時)を示す流れ図である。図6を参照すると、まず、ファイル利用者(ユーザあるいはサービス)がファイルの利用に先立ってクライアント100あるいはサービスインスタンス200を利用してストレージサーバ300に認証を依頼する(ステップS200)。
【0052】
ストレージサーバ300は、認証部302を利用しファイル利用者の認証を行い、その公開鍵を確定する(ステップS201)。なお、ステップS200、S201における認証方式については、ステップS100、S101と同様、特に限定するものではなく、パスワードやバイオメトリクス情報を用いる方式などを適宜採用することができる。また、ここで確定する公開鍵としてファイル利用者から受信したものを用いてもよいし、あるいは、ストレージサーバ300側に保持されている正規ユーザ(認証済みユーザ)の公開鍵を読み出して公開鍵を確定することとしてもよい。
【0053】
次に、ストレージサーバ300は、無効化公開鍵リスト記憶部403から無効化された公開鍵のリストを読み出し(ステップS202)、ファイル利用者の公開鍵の有効性を検証する(ステップS203)。
【0054】
前記公開鍵の有効性の検証の結果、ファイル利用者の公開鍵が無効化されていた場合、ストレージサーバ300は、E−FEK記憶部402に記憶されているリスト600を読み出し(ステップS207)、無効化された公開鍵と対応するE−FEKが登録されているリスト600から、無効化された公開鍵とE−FEKを削除する(ステップS204)。これにより、無効化された公開鍵にて暗号化されたE−FEKがシステム全体から削除され、無効化された公開鍵に対応する秘密鍵にて復号可能なFEKが存在しなくなる。なお、前記無効化された公開鍵とE−FEKの削除に代えて、これらを利用できないように、別の情報に書き換えてしまうなどの方法も適宜採用可能である。
【0055】
ファイル利用者の公開鍵の有効性が検証されると、ファイル利用者はストレージサーバ300に対し、ファイルのリクエストを行うことが可能となる。ファイル利用者がファイルのリクエストを行うと(ステップS205)、ストレージサーバ300は暗号化ファイル記憶部401からリクエストされた暗号化ファイルを読み出すとともに(ステップS206)、FEK IDおよび公開鍵に基づいて、E−FEK記憶部402から該当ファイル利用者の公開鍵で暗号化したE−FEKを読み出し(ステップS207)、ファイルリ利用者に返送する(ステップS208)。
【0056】
ファイル利用者は、まず、ストレージサーバ300から受信したE−FEKを自身の秘密鍵で復号化し(ステップS209)、復号化したFEKを用いて暗号化ファイルを復号する(ステップS210)。
【0057】
その後、ファイル利用者は、ファイルを利用し(ステップS211)、再度ファイルをFEKで暗号化する(ステップS212)。
【0058】
その後、ファイル利用者は、図4に示したようにFEK IDを付加した暗号化ファイル(図4の暗号化ファイル500参照)をストレージサーバ300に送信する(ステップS213)。
【0059】
ストレージサーバ300は、ファイル利用者から受信した暗号化ファイルを、暗号化ファイル記憶部401に格納する(ステップS214)。
【0060】
以上により、利用後の暗号化ファイルが暗号化ファイル記憶部401に記憶される。
【0061】
[ファイルを利用するサービスの開始]
図7は、本発明の第1の実施形態の動作(サービス開始時)を示す流れ図である。図7を参照すると、まず、サービスインスタンス200は新ユーザへのサービス提供開始指示をどこかから受けると(ステップS300)、ストレージサーバ300に認証を依頼する(ステップS301)。
【0062】
ストレージサーバ300は、認証部302を利用しサービスインスタンス200の認証を行い、その公開鍵を確定する(ステップS302)。なお、ステップS301、S302における認証方式については、ステップS100、S101と同様、特に限定するものではなく、パスワードやバイオメトリクス情報を用いる方式などを適宜採用することができる。また、ここで確定する公開鍵としてサービスインスタンス200側から受信したものを用いてもよいし、あるいは、ストレージサーバ300側に保持されている正規ユーザ(認証済みユーザ)の公開鍵を読み出して公開鍵を確定することとしてもよい。
【0063】
次に、ストレージサーバ300は、無効化公開鍵リスト記憶部403から無効化された公開鍵のリストを読み出し(ステップS303)、サービスインスタンス200の公開鍵の有効性を検証する(ステップS304)。
【0064】
前記公開鍵の有効性の検証の結果、サービスインスタンス200の公開鍵が無効化されていた場合、ストレージサーバ300は、E−FEK記憶部402に記憶されているリスト600を読み出し、無効化された公開鍵と対応するE−FEKが登録されているリスト600から、無効化された公開鍵とE−FEKを削除する(ステップS305)。これにより、無効化された公開鍵にて暗号化されたE−FEKがシステム全体から削除され、無効化された公開鍵に対応する秘密鍵にて復号可能なFEKが存在しなくなる。なお、前記無効化された公開鍵とE−FEKの削除に代えて、これらを利用できないように、別の情報に書き換えてしまうなどの方法も適宜採用可能である。
【0065】
サービスインスタンス200の公開鍵の有効性が検証されると、サービスインスタンス200は、ストレージサーバ300に対し、新ユーザへのサービス開始依頼を行うことが可能となる。サービスインスタンス200が新ユーザへのサービス開始依頼を行うと(ステップS306)、ストレージサーバ300は、サービスユーザリスト記憶部404からサービスユーザリストを読み出すとともに(ステップS307)、新ユーザと既存ユーザのそれぞれに対し、サービス提供伺いを送信する(ステップS308)。
【0066】
前記サービス提供伺いを受信した新ユーザおよび既存ユーザは、それぞれサービスの利用を判断し(ステップS309、S311)、返答にデジタル署名をして返信する(ステップS310、S312)。
【0067】
ストレージサーバ300は、デジタル署名検証部301を用いてそれらの回答の正当性を検証し(ステップS313)、新ユーザへのサービスを開始する場合、サービスユーザリスト記憶部404のサービスユーザリストに新ユーザを追加する(ステップS314)。
【0068】
さらに、ストレージサーバ300は、すでに暗号化ファイル記憶部401に登録されている新ユーザの暗号化ファイルに、サービスインスタンス200経由でアクセスできるようにするため、サービスの公開鍵と、前記新ユーザの暗号化ファイルを復号するためのFEKを暗号化したE−FEKをE−FEK記憶部402に追加する(ステップS315)。より具体的には、E−FEK記憶部402に記憶されているリストのうち、新ユーザの暗号化ファイルに対応するリストを抽出し、当該リストの中のストレージサーバの公開鍵で暗号化されているE−FEKを、ストレージサーバ300の秘密鍵で復号化し、サービスの公開鍵で再度暗号化し、リストに格納する処理が行われる。
【0069】
以上のように、本実施の形態によれば、データの復号化に必要な秘密情報(おもにFEK)や、秘密情報から計算されるキー情報(おもにE−FEK)を必要以上にストレージシステムの外部に出さずともユーザ間あるいはユーザとサービスの間でデータの共有を実現することができる。その理由は、ファイルの復号化に必要なFEKを、アクセスが許可されたユーザあるいはサービスの公開鍵で暗号化(E−FEK)し、暗号化ファイルとは別の記憶媒体に保管し、暗号化ファイルへのアクセス時にはアクセス主体のE−FEKのみを選択使用するように構成したためである。
【0070】
また、本実施の形態では、FEKとして、ファイル毎に生成したランダムな情報を用いることができる。前記FEKの暗号化には公開鍵暗号が使用されているため、あるデータのFEKが漏洩したとしても他のデータの安全性は脅かされることはないし、あるユーザのE−FEKが漏洩したとしてもそこからユーザのパスワードに代表される秘密情報が漏洩することはない。
【0071】
また、本実施の形態では、さらに、無効化された公開鍵のリストを持ち、ストレージアクセスの際にストレージサーバ300がアクセス主体からのアクセスリクエストの有効性を検証した上で、適切なE−FEKを返却するようになっている。このため、秘密情報漏洩の検知と、該当する公開鍵の無効化公開鍵リストへの登録ができている場合においては、たとえ一部のユーザあるいはサービスのパスワードあるいは公開鍵暗号の秘密鍵に代表される秘密情報が漏洩したとしても、システムの他の部分の安全性が守られる。
【0072】
また、本実施の形態では、さらに、暗号化ファイルにそのファイルの暗号化に使用したFEKのIDを付加するとともに、E−FEK記憶部402には、FEK ID毎に、アクセス主体の公開鍵とE−FEKとを組にしたリストを格納するようにしている。このため、データアクセスの際の認証時にアクセス主体の公開鍵が特定されれば、E−FEK記憶部402から、当該公開鍵に対応するE−FEKを読みだすことができる。つまり、E−FEKを総当り的に探索せずに済み、オーバーヘッドを抑えることのできる構成となっている。
【0073】
また、本実施の形態では、さらに、ファイルアクセスの際あるいはサービス開始の際に行われるファイル利用者あるいはサービスインスタンスの有効性検証の結果(図6のステップS203、図7のステップS304参照)、ファイル利用者あるいはサービスインスタンスの公開鍵が無効化されていた場合、ストレージサーバ300が、E−FEK記憶部402から、無効化された公開鍵と対応するE−FEKを削除するようになっている(図6のステップS204、図7のステップS305参照)。このため、たとえE−FEK記憶部402の漏洩と、無効化された公開鍵のユーザの秘密鍵の漏洩が発生してしまった場合にも、当該ユーザの秘密鍵からFEKを計算されないようにすることができる。
【0074】
また、本実施の形態では、さらに、ユーザがサービスの利用を開始した際に、特に何かアクションを起こさずとも、ユーザが新たにサービスの利用を開始した場合に既存のファイルに関してもそのサービスのアクセス範囲に含めることができる。その理由は、ストレージサーバ300は、ユーザがサービスの利用を開始した際に、該当ユーザの既存ファイルにサービスインスタンス200経由でアクセスできるようにするため、サービスの公開鍵と、前記新ユーザの暗号化ファイルを復号するためのFEKを暗号化したE−FEKをE−FEK記憶部402を追加するようにしているためである(図7のステップS315)。
【0075】
また、本実施の形態では、E−FEK記憶部402にストレージサーバ300の公開鍵と、その公開鍵で暗号化したE−FEKを格納しているため、非常時に、ストレージサービス提供者側が、ファイルの内容を復元あるいはアクセスすることも可能となっている。
【0076】
[第2の実施形態]
続いて、上記本発明の第1の実施形態に変更を加えた第2の実施形態について説明する。本発明の第2の実施形態は、上記第1の実施形態と同一の構成で実現可能であり、基本的な動作も共通するので、以下、その相違点を説明する。
【0077】
本発明の第2の実施形態では、上記第1の実施形態における図6のステップS204と、図7のステップS305をそれぞれ省略するものである。
【0078】
このように、図6のステップS204と、図7のステップS305を省略することで処理の高速化が期待できる。なお、E−FEK記憶部402の漏洩と、ユーザやサービスの秘密鍵の漏洩が同時に起こった場合に、各ファイルの暗号化に使用したFEKが計算されてしまう可能性が生じるが、これについては、別途、既存の情報漏洩策を講ずればよい。
【0079】
[第3の実施形態]
続いて、上記本発明の第1の実施形態に変更を加えた第3の実施形態について説明する。本発明の第3の実施形態は、上記第1の実施形態と同一の構成で実現可能であり、基本的な動作も共通するので、以下、その相違点を説明する。
【0080】
本発明の第3の実施形態では、上記第1の実施形態における図7のステップS315を省略するとともに、図5のステップS108を省略するものである。
【0081】
このように、図7のステップS315と、図5のステップS108を省略することで、
E−FEK記憶部402に、ストレージサーバの公開鍵と対応するE−FEKを格納しなくて済むようになる。これは、ストレージサービス提供者側ですらファイルの内容にアクセスすることはできないという厳格なファイル管理ができることを意味する。
【0082】
[第4の実施形態]
続いて、上記本発明の第1の実施形態に変更を加えた第4の実施形態について説明する。本発明の第4の実施形態は、上記第1の実施形態とほぼ同一の構成で実現可能であり、基本的な動作も共通するので、以下、その相違点を説明する。
【0083】
本発明の第4の実施形態では、ストレージサーバ300が、E−FEK記憶部402に記憶するリスト600(図4参照)を、別途定めた共通鍵暗号等を用いて、暗号化するものである。
【0084】
このようにE−FEK記憶部402に記憶するリスト600(図4参照)を暗号化することで、ユーザやサービスインスタンスの秘密鍵が漏洩してしまい、かつ、その情報が無効化公開鍵リスト記憶部403に登録される前であっても、各ファイルの暗号化に用いたFEKの安全性を向上させることができる。
【0085】
[第5の実施形態]
続いて、上記本発明の第1の実施形態に変更を加えた第5の実施形態について説明する。本発明の第5の実施形態は、上記第1の実施形態とほぼ同一の構成で実現可能であり、基本的な動作も共通するので、以下、その相違点を説明する。
【0086】
本発明の第5の実施形態では、クライアント100またはサービスインスタンス200のファイル暗復号処理部103、203が、FEKでファイル全体を一度に暗号化するのではなく、ファイルをより小さな構成単位に分割したものを単位に、暗復号するようにしたものである。
【0087】
このようにより細かい単位で暗復号するようにすることで、ファイルの部分更新時の性能が改善される。
【0088】
以上、本発明の実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
【0089】
例えば、上記した各実施形態では、ストレージサーバ300側にFEK生成器を備えた構成を前提に説明したが、図8に示すように、クライアント100(サービスインスタンス200も同様)側に、FEK生成器104を配置する構成も採用可能である。この場合、原則として、クライアント100でFEKの暗復号が行われることになる。また、この場合、システム全体で、ユニークなFEK IDを採番する必要があるが、例えば、各クライアント100に、予めクライアント毎に、FEK IDを割り当てておく方法やFEK IDの作成ルールを取り決めておく方法を採用できる。後者のFEK IDの作成ルールとしては、例えば、FEKのハッシュ値などを元にFEK IDを採番して払い出すモジュールをストレージサーバ300および各クライアント100側に備えておく方法が考えられる。
【0090】
例えば、上記した各実施形態では、サービスユーザリスト記憶部404は、ストレージサーバ300からアクセスされるものとして説明したが、図8に示すように、サービスインスタンス200側でサービスユーザリスト記憶部206を管理する構成も採用可能である。
【産業上の利用可能性】
【0091】
本発明は、ネットワークを介して複数のユーザにディスクスペースを提供するストレージサービスや、ウェブベースのサービスのバックエンドのストレージシステムといった用途に適用できる。
【0092】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるファイル管理システム参照)
[第2の形態]
第1の形態において、
前記暗号化ファイル暗号鍵記憶部は、ファイル暗号鍵毎に、各ユーザまたはサービスの公開鍵と、当該公開鍵を用いて暗号化した暗号化ファイル暗号鍵(E−FEK)の組を列記したリストにより、公開鍵と暗号化ファイル暗号鍵(E−FEK)の組を管理するファイル管理システム。
[第3の形態]
第1、2の形態において、
前記ストレージサーバが、無効化された公開鍵を格納するリストに、前記ユーザまたはサービス毎に定められた公開鍵が格納されているか否かにより、前記公開鍵の有効性を確認するファイル管理システム。
[第4の形態]
第1−3の形態において、
前記ストレージサーバが、前記公開鍵の有効性の確認の結果、有効でないと判定された公開鍵にて暗号化された前記暗号化ファイル暗号鍵(E−FEK)を、書き換えまたは削除するファイル管理システム。
[第5の形態]
第1−4の形態において、
前記暗号化ファイル暗号鍵記憶部には、前記ストレージサーバの公開鍵で暗号化した暗号化ファイル暗号鍵(E−FEK)が格納されており、
前記ストレージサーバは、前記自身の公開鍵で暗号化した暗号化ファイル暗号鍵(E−FEK)を、前記公開鍵に対応する秘密鍵で復号して得られたファイル暗号鍵(FEK)を、新規に追加するユーザまたはサービスの公開鍵で暗号化することにより、前記暗号化ファイル暗号鍵記憶部に、ファイルへのアクセス権を持つユーザまたはサービスの暗号化ファイル暗号鍵(E−FEK)を追加するファイル管理システム。
[第6の形態]
第1−5の形態において、
さらに、サービスインスタンスとそのサービスインスタンスを利用するユーザの組を格納するサービスユーザリストを用いてユーザを管理するファイル管理システム。
[第7の形態]
(上記第2の視点によるストレージサーバ参照)
[第8の形態]
(上記第3の視点によるクライアント参照)
[第9の形態]
(上記第3の視点によるサービスインスタンス参照)
[第10の形態]
(上記第4の視点によるファイル管理方法参照)
[第11の形態]
(上記第5の視点によるプログラム参照)
[第12の形態]
(上記第5の視点によるプログラム参照)
なお、上記第7〜第12の形態は、第1の形態から派生する第2〜第6の形態と同様に展開することが可能である。
【符号の説明】
【0093】
10A、10B、100 クライアント
20、300 ストレージサーバ
21 アクセス要求受付部
22 ファイル暗号鍵暗号化部
23 無効化公開鍵情報記憶部
25、402 暗号化ファイル暗号鍵記憶部(E−FEK記憶部)
26、401 暗号化ファイル記憶部
101 ファイル入出力部
102 FEK暗復号処理部
103 ファイル暗復号処理部
104、304 FEK生成器
105、205、303 通信部
200 サービスインスタンス
201 サービス実行部
202 FEK暗復号処理部
203 ファイル暗復号処理部
206、404 サービスユーザリスト記憶部
301 デジタル署名検証部
302 認証部
305 FEK暗復号処理部
306 ストレージアクセス部
307 リクエスト有効性検証部
401 暗号化ファイル記憶部
402 E−FEK記憶部
403 無効化公開鍵リスト記憶部
500 暗号化ファイル
501 暗号化ファイル本体
502 FEK ID
600 リスト

【特許請求の範囲】
【請求項1】
予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備えるストレージサーバと、
前記ストレージサーバから受け取った前記暗号化ファイル暗号鍵(E−FEK)を前記公開鍵に対応する秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアントまたはサービスインスタンスと、を含み、
前記ストレージサーバは、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すファイル管理システム。
【請求項2】
前記暗号化ファイル暗号鍵記憶部は、ファイル暗号鍵毎に、各ユーザまたはサービスの公開鍵と、当該公開鍵を用いて暗号化した暗号化ファイル暗号鍵(E−FEK)の組を列記したリストにより、公開鍵と暗号化ファイル暗号鍵(E−FEK)の組を管理する請求項1のファイル管理システム。
【請求項3】
前記ストレージサーバは、無効化された公開鍵を格納するリストに、前記ユーザまたはサービス毎に定められた公開鍵が格納されているか否かにより、前記公開鍵の有効性を確認する請求項1または2のファイル管理システム。
【請求項4】
前記ストレージサーバは、前記公開鍵の有効性の確認の結果、有効でないと判定された公開鍵にて暗号化された前記暗号化ファイル暗号鍵(E−FEK)を、書き換えまたは削除する請求項1から3いずれか一のファイル管理システム。
【請求項5】
前記暗号化ファイル暗号鍵記憶部には、前記ストレージサーバの公開鍵で暗号化した暗号化ファイル暗号鍵(E−FEK)が格納されており、
前記ストレージサーバは、前記自身の公開鍵で暗号化した暗号化ファイル暗号鍵(E−FEK)を、前記公開鍵に対応する秘密鍵で復号して得られたファイル暗号鍵(FEK)を、新規に追加するユーザまたはサービスの公開鍵で暗号化することにより、前記暗号化ファイル暗号鍵記憶部に、ファイルへのアクセス権を持つユーザまたはサービスの暗号化ファイル暗号鍵(E−FEK)を追加する請求項1から4いずれか一のファイル管理システム。
【請求項6】
さらに、サービスインスタンスとそのサービスインスタンスを利用するユーザの組を格納するサービスユーザリストを用いてユーザを管理する請求項1から5いずれか一のファイル管理システム。
【請求項7】
ストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK;Encrypted−File Encryption Key)を秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK;File Encryption Key)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアントまたはサービスインスタンスと、接続され、
ファイル暗号鍵(FEK)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備え、
前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すストレージサーバ。
【請求項8】
請求項7のストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK;Encrypted−File Encryption Key)を秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK;File Encryption Key)を用いてファイルを暗復号する暗復号処理部と、を備えるクライアント。
【請求項9】
請求項7のストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK;Encrypted−File Encryption Key)を秘密鍵で復号する復号処理部と、前記復号したファイル暗号鍵(FEK;File Encryption Key)を用いてファイルを暗復号する暗復号処理部と、を備えるサービスインスタンス。
【請求項10】
予め定められたファイル暗号鍵(FEK;File Encryption Key)を用いて暗号化されたファイルを格納する暗号化ファイル記憶部と、ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵を用いて、前記ファイル暗号鍵(FEK)を暗号化した暗号化ファイル暗号鍵(E−FEK)を格納する暗号化ファイル暗号鍵記憶部と、を備えるストレージサーバが、クライアントまたはサービスインスタンスからの要求に応じて、前記ファイルへのアクセス権を持つユーザまたはサービス毎に定められた公開鍵の有効性を確認してから、前記クライアントまたはサービスインスタンスに対し、暗号化ファイル暗号鍵(E−FEK)を払い出すステップと、
前記クライアントまたはサービスインスタンスが、前記ストレージサーバから受け取った暗号化ファイル暗号鍵(E−FEK)を前記公開鍵に対応する秘密鍵で復号するステップと、
前記復号したファイル暗号鍵(FEK)を用いてファイルを暗復号する暗復号ステップと、
を含むファイル管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−227673(P2011−227673A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2010−96275(P2010−96275)
【出願日】平成22年4月19日(2010.4.19)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】