(57)【要約】【課題】  共有暗号ファイルの作成／リネーム／削除操作や他のファイルサーバへの移行に際して、暗号鍵の更新、暗号ファイルの再暗号化などの面倒な処理を行うことなく、複数のクライアントが共有する共有暗号ファイルの暗号化、復号を実現すること。【解決手段】  共有暗号フォルダ毎に鍵を割り当て、フォルダ配下のファイルは全てその鍵で暗号する。また全てフォルダ配下に暗号フォルダであることを示すマーカファイルを作成し、マーカファイル内に暗号に使用された鍵を一意に識別する識別子を記述しておく。クライアントはマーカファイルから得られる識別子に基づいて使用すべき鍵を決定し、ファイルの暗号／復号を行う。【選択図】    図４
2008085448.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータ内に設けたファイルアクセス制御手段が、
任意のアプリケーションからの共有暗号ファイルの読出し要求または格納要求に対し、当該読出し要求または格納要求を一時捕捉し、当該クライアントコンピュータのクライアント認証を鍵管理サーバで受け、当該クライアントコンピュータに対してアクセスが許可されているファイルサーバ内の複数の共有暗号フォルダのそれぞれに対応する暗号鍵ＩＤと暗号鍵の対から成る鍵リストを前記鍵管理サーバから取得する第１のステップと、
前記ファイルサーバ内の複数の共有暗号フォルダのうち前記読み出し要求先または格納要求先の共有暗号フォルダにアクセスし、当該共有暗号フォルダに対応して作成された暗号マーカファイルから当該共有暗号フォルダ内の共有暗号ファイルの暗号化・復号に用いる暗号鍵ＩＤを取得し、当該暗号鍵ＩＤと一致する暗号鍵ＩＤが前記鍵リスト内に存在していた場合には、当該暗号鍵ＩＤに対応する前記鍵リスト内の暗号鍵を用いて共有暗号ファイルの復号または暗号化を行う第２のステップとを備えることを特徴とする共有暗号ファイルの暗号化・復号処理方法。
【請求項２】
クライアントコンピュータに実装された任意のアプリケーションからの共有暗号ファイルの読出し要求または格納要求に対し、当該読出し要求または格納要求を一時捕捉し、当該クライアントコンピュータのクライアント認証を鍵管理サーバで受け、当該クライアントコンピュータに対してアクセスが許可されているファイルサーバ内の複数の共有暗号フォルダのそれぞれに対応する暗号鍵ＩＤと暗号鍵の対から成る鍵リストを前記鍵管理サーバから取得する第１のステップと、
前記ファイルサーバ内の複数の共有暗号フォルダのうち前記読み出し要求先または格納要求先の共有暗号フォルダにアクセスし、当該共有暗号フォルダに対応して作成された暗号マーカファイルから当該共有暗号フォルダ内の共有暗号ファイルの暗号化・復号に用いる暗号鍵ＩＤを取得し、当該暗号鍵ＩＤと一致する暗号鍵ＩＤが前記鍵リスト内に存在していた場合には、当該暗号鍵ＩＤに対応する前記鍵リスト内の暗号鍵を用いて共有暗号ファイルの復号または暗号化を行う第２のステップとをコンピュータに実行させることを特徴とする共有暗号ファイルの暗号化・復号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のクライアントで共有する共有暗号ファイルの暗号化・復号処理方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来、複数のクライアントで共有する暗号された共有ファイルの鍵管理方式として、例えば、下記特許文献１に開示されたものがある。
下記特許文献１に記載のものは、認証サーバと各ファイルの暗号鍵を管理する鍵管理サーバを設け、クライアントが認証サーバにおいてクライアント認証を受けた後に、クライアント名を鍵管理サーバに送信し、クライアントがアクセス可能なファイル名と対応する暗号鍵の一覧を鍵管理サーバから取得し、暗号された共有ファイルに対してクライアントがアクセスする際にクライアント側で鍵管理サーバより取得した暗号鍵を用いて暗号／復号処理を行うという構成になっている。
【０００３】
【特許文献１】特開２００５−２８６０４２号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術では、ファイル毎に鍵を設定できるため高い安全性を実現することができる反面、ファイルの新規作成／リネーム／削除の度に鍵管理サーバと通信し、鍵管理サーバに登録する暗号鍵を更新することが必要となり、ファイルの新規作成／リネーム等に際して暗号鍵の更新が極めて面倒であるという問題がある。
また、クライアントＢの認証後にクライアントＡによって新規作成された暗号ファイルＡについてはその鍵をクライアントＢは鍵管理サーバより新たに取得しなければならないため、その新規作成された暗号ファイルＡを参照することができない。
この場合、ファイルオープン時にファイルの暗号状態を識別し、暗号かつ対応する鍵を取得できていなければ鍵管理サーバより動的に鍵を取得するという方法も考えられるが、ファイルに暗号化フラグなどの印をつける必要がある。一般的にファイルデータの中身に余分な印を付けるのは望ましくなく、それによって上位アプリケーションが正しく動作しなくなる危険性がある。
また、ユーザ規模の拡大や分割に伴い、あるファイルサーバ上の暗号された共有ファイルを他ファイルサーバへ移行する必要があった場合、一度ファイルを復号し、他ファイルサーバへ移行する際に再度暗号化し、鍵管理サーバに対して該当する鍵を登録するという手間のかかる運用が必要となってしまうという問題がある。
一方、１つのファイルサーバに１つの暗号鍵を設定するようにした場合、暗号鍵の管理は容易になるが、安全性が低くなるというトレードオフがある。
【０００５】
本発明の目的は、共有暗号ファイルの作成／リネーム／削除操作や他のファイルサーバへの移行に際して、暗号鍵の更新、暗号ファイルの再暗号化などの面倒な処理を行うことなく、複数のクライアントが共有する共有暗号ファイルの暗号化、復号を実現することができる共有暗号ファイルの暗号化・復号処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係る共有暗号ファイルの暗号化・復号処理方法は、クライアントコンピュータ内に設けたファイルアクセス制御手段が、
任意のアプリケーションからの共有暗号ファイルの読出し要求または格納要求に対し、当該読出し要求または格納要求を一時捕捉し、当該クライアントコンピュータのクライアント認証を鍵管理サーバで受け、当該クライアントコンピュータに対してアクセスが許可されているファイルサーバ内の複数の共有暗号フォルダのそれぞれに対応する暗号鍵ＩＤと暗号鍵の対から成る鍵リストを前記鍵管理サーバから取得する第１のステップと、
前記ファイルサーバ内の複数の共有暗号フォルダのうち前記読み出し要求先または格納要求先の共有暗号フォルダにアクセスし、当該共有暗号フォルダに対応して作成された暗号マーカファイルから当該共有暗号フォルダ内の共有暗号ファイルの暗号化・復号に用いる暗号鍵ＩＤを取得し、当該暗号鍵ＩＤと一致する暗号鍵ＩＤが前記鍵リスト内に存在していた場合には、当該暗号鍵ＩＤに対応する前記鍵リスト内の暗号鍵を用いて共有暗号ファイルの復号または暗号化を行う第２のステップとを備えることを特徴とする。
【０００７】
また、本発明に係る共有暗号ファイルの暗号化・復号処理プログラムは、コンピュータに実装された任意のアプリケーションからの共有暗号ファイルの読出し要求または格納要求に対し、当該読出し要求または格納要求を一時捕捉し、当該クライアントコンピュータのクライアント認証を鍵管理サーバで受け、当該クライアントコンピュータに対してアクセスが許可されているファイルサーバ内の複数の共有暗号フォルダのそれぞれに対応する暗号鍵ＩＤと暗号鍵の対から成る鍵リストを前記鍵管理サーバから取得する第１のステップと、
前記ファイルサーバ内の複数の共有暗号フォルダのうち前記読み出し要求先または格納要求先の共有暗号フォルダにアクセスし、当該共有暗号フォルダに対応して作成された暗号マーカファイルから当該共有暗号フォルダ内の共有暗号ファイルの暗号化・復号に用いる暗号鍵ＩＤを取得し、当該暗号鍵ＩＤと一致する暗号鍵ＩＤが前記鍵リスト内に存在していた場合には、当該暗号鍵ＩＤに対応する前記鍵リスト内の暗号鍵を用いて共有暗号ファイルの復号または暗号化を行う第２のステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ファイルサーバ上で共有暗号ファイルを格納する共有暗号フォルダ毎に異なる暗号鍵ＩＤを割り当て、かつ鍵管理サーバには各クライアントコンピュータにアクセスが許可されている共有暗号フォルダの暗号鍵ＩＤと暗号鍵の対から成る鍵リストを登録しておき、ファイルサーバ内の共有暗号ファイルの読出し、または書込みを行う際には、鍵管理サーバでのクライアントコンピュータの認証を受け、各クライアントコンピュータにアクセスが許可された鍵リストを取得し、その鍵リスト内にアクセス対象の共有暗号フォルダの暗号鍵ＩＤと一致する暗号鍵ＩＤが存在する場合には、その暗号鍵ＩＤに対応する鍵リスト内の暗号鍵を用いて共有ファイルの暗号化、または復号を行う。
従って、共有暗号ファイルの新規作成／リネーム／削除を行う場合であっても、新たな鍵を生成したり、削除する必要はなくなり、鍵管理サーバでの暗号鍵の管理が極めて容易になる。
また、共有暗号フォルダ単位で暗号鍵ＩＤを設定できるため、共有暗号フォルダを他のファイルサーバに移動した場合であっても、鍵管理サーバで暗号鍵ＩＤと暗号鍵の対から成る鍵リストが保持されているため、クライアントコンピュータではこの鍵リストを取得することにより移動先のファイルサーバから移動前と同様に共有暗号ファイルを読み出したり、書き込んだりすることができ、移動対象の共有暗号フォルダ内の共有暗号ファイルを復号し、新たな暗号鍵で再暗号して移動するといった面倒な作業を実施する必要が無くなる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
図１は、本発明の実施の形態を示すシステム構成図であり、クライアントコンピュータ１と、鍵管理サーバ２、ファイルサーバ３で構成され、これらはネットワーク４で接続されている。
クライアントコンピュータ１には、文書作成プログラムなどの任意のアプリケーション１１、本発明の主要な構成要素であるフィルタドライバ（ファイルアクセス制御プログラム）１２、オペレーティングシステム（ＯＳ）１３が実装されている。
フィルタドライバ１２は、アプリケーション１１からの共有暗号フォルダに対するアクセス要求（読出し要求、書込み要求）をフックし、共有暗号フォルダ内の暗号ファイルを復号、または共有暗号フォルダ内に書き込む共有ファイルを暗号化するための鍵リスト１４を鍵管理サーバ２から取得し、この鍵リスト１４内の鍵データを用いて自動的に復号または暗号化処理を行い、復号した平文データをアプリケーション１１に転送し、あるいは暗号化した共有ファイルをファイルサーバ３に転送して格納させるものである。
【００１０】
鍵管理サーバ２には、クライアントコンピュータ１がアクセス可能な共有暗号フォルダの鍵リストを格納した鍵管理ＤＢ２１が設けられている。
ファイルサーバ３には、複数の共有暗号フォルダ３１ａ，３１ｎが格納可能になっている。
鍵管理ＤＢ２１には、図２に示すように、ファイルサーバ３の各共有暗号フォルダ毎に、それぞれのフォルダ内の共有ファイルを暗号化したり、復号するための暗号鍵の識別情報である鍵ＩＤ、暗号化・復号に用いる鍵データ、共有暗号フォルダへのＵＮＣパス（UNC=Universal Naming Convention）が対になった鍵リスト２１１が登録されている。
鍵リスト２０１は、図３に示すように、ファイルサーバ３の管理者が共有暗号フォルダ３１ａ，３１ｎ毎に設定した鍵ＩＤと、登録プログラム３２を用いてランダムに各鍵ＩＤ毎に生成した鍵データとを対にして鍵管理サーバ２に登録されるものである。
【００１１】
ファイルサーバ３内の共有暗号フォルダ３１ａ，３１ｎは、ファイルサーバ３の管理者が１つずつのファイルを暗号し、その各鍵を鍵管理サーバ２へ登録するのではなく、ルートとなる共有暗号フォルダ（ルート共有暗号フォルダと呼ぶ）を指定する（典型的には￥￥Ｓerver￥SharelのようなＵＮＣ（Universal Naming Convention）パスで指定する）ことによって登録する。
ルート共有暗号フォルダ下の全てのファイル（サブフォルダがあればその下に存在する全てのファイルも含む）は同一の鍵で暗号化される。この登録操作時にルート共有暗号フォルダに対する一意でランダムな鍵ＩＤとランダム生成の鍵データの対がルート共有暗号フォルダのＵＮＣパスと共に鍵管理ＤＢ２１に登録される。
また、この登録時にルート共有暗号フォルダの直下に暗号フォルダであることを示すファイル（暗号マーカファイルと呼ぶ）が作成される。
【００１２】
暗号マーカファイル３１ａａ，３１ｎｎは、固有の名前（例えばEncMarker.sysのような名前）で作成され、ファイル内容として鍵ＩＤを含んでいる。
暗号マーカファイル３１ａａ，３１ｎｎは、ルート共有暗号フォルダ配下の全てのサブフォルダ下に作成される。このとき１つのファイルサーバ３には複数のルート共有暗号フォルダ３１ａ，３１ｎの登録が可能で、それぞれに異なる鍵データと鍵ＩＤの対が生成される。
【００１３】
図４は、クライアントコンピュータ１が共有暗号フォルダ内のファイルにアクセスする場合の手順を示す説明図である。
クライアントコンピュータ１のアプリケーション１１が共有暗号フォルダ内のファイルにアクセス（ファイル読出し、または書込み）する場合、まず、フィルタドライバ１２が、アクセス要求を一時捕捉し、鍵管理サーバ２のクライアント認証要求を送信し（Ｓ４０１）、当該クライアントコンピュータ１に対しアクセスが許可されている鍵ＩＤと鍵データの対からなる鍵リスト１４を鍵管理サーバ２より取得する（Ｓ４０２）。
【００１４】
フィルタドライバ１２は、共有暗号フォルダ内の共有暗号ファイルにアクセスしたとき、暗号マーカファイル（EncMarker.sys）の存在をチェックする。もし暗号マーカファイルが存在すればそのフォルダ内のファイルは暗号されているものと判断する。そして、暗号マーカファイルに記述された鍵ＩＤを取得し（Ｓ４０３）、鍵リスト１４から鍵ＩＤに対応する鍵データを取り出し、その鍵データを用いて共有暗号ファイルの暗号／復号処理を行う（Ｓ４０４）。
図４の例では、ルートＵＮＣ１の共有暗号フォルダ３１ａの暗号マーカファイル３１ａａから鍵ＩＤ＝１を取得し、その鍵ＩＤ＝１に対応する鍵データ１により暗号／復号を行うことを示している。
【００１５】
図５は、フィルタドライバ１２による共有暗号ファイルアクセス処理の概要を示すフローチャートである。
まず、アプリケーション１１からの共有暗号ファイルのアクセス要求（読出し要求、または書込み要求）に対し、当該アクセス要求を一時捕捉し、当該クライアントコンピュータ１のクライアント認証を鍵サーバ２で受け（ステップ５０１）、クライアント認証が成功したならば（ステップ５０２）、当該クライアントコンピュータに対してアクセスが許可されているファイルサーバ３内の複数の共有暗号フォルダ３１ａ，３１ｎのそれぞれに対応する暗号鍵ＩＤと暗号鍵の対から成る鍵リスト１４を鍵サーバ２から取得する（ステップ５０４）。
認証不成功の場合には、エラーとなり、終了する（ステップ５０３）。
【００１６】
次に、アクセス要求先の共有暗号ファイルが格納されている共有暗号フォルダ（例えば３１ａ）にアクセスし（ステップ５０５）、当該共有暗号フォルダ３１ａに対応して作成された暗号マーカファイル３１ａａが存在するかを判定し（ステップ５０６）、存在する場合には当該暗号マーカファイル３１ａａから当該共有暗号フォルダ３１ａ内の共有暗号ファイルの暗号化・復号に用いる鍵ＩＤを取得し（ステップ５０８）、当該鍵ＩＤと一致する鍵ＩＤが鍵リスト１４内に存在しているかを判定し（ステップ５０９）、存在していた場合には、当該鍵ＩＤに対応する鍵リスト１４内の鍵データを用いて当該共有暗号フォルダ内のアクセス要求先の共有暗号ファイルを復号、または暗号化する（ステップ５０９）。
ステップ５０６において、暗号マーカファイル３１ａａが存在しない場合には、暗号ファイルではないので通常の読み書き処理を行う（ステップ５１４）。
【００１７】
一方、ステップ５０８において、鍵ＩＤと一致する鍵ＩＤが鍵リスト１４内に存在しない場合には、鍵管理サーバ２に対し、鍵ＩＤ指定で鍵データ要求を送信し、鍵データの取得を試みる（ステップ５１０）。
鍵データを取得できた場合（ステップ５１１）、その取得した鍵データにより、暗号化、または復号を行う。
もし、鍵データを取得できなかった場合には、エラーとし、処理を終了する（ステップ５１３）。
なお、アプリケーション１１からのアクセス要求が読出し要求であった場合には、共有暗号ファイルを復号した平文の復号結果がフィルタドライバ１２からアプリケーション１１に転送される。
また、書込み要求であった場合には、アプリケーション１１からフィルタドライバ１２に渡された平文の共有ファイルが暗号化されてファイルサーバ３に転送され、共有暗号フォルダに保存される。
【００１８】
図６は、実際の運用におけるシステム構成の具体的構成例を示すシステム構成図であり、複数のファイルサーバ（１）３Ａ、ファイルサーバ（２）３Ｂが設けられ、各ファイルサーバの共有暗号フォルダへのアクセスが鍵管理サーバ２からクライアントコンピュータ１に配布された鍵リスト１４によって実施される。
この場合、クライアントコンピュータ１は、ファイルサーバ（１）３Ａ及び（２）３Ｂの共有暗号フォルダに対する鍵リストをクライアント認証によって取得していた場合には、両方のファイルサーバ（１）３Ａ、（２）３Ｂの共有暗号フォルダにアクセスすることが可能である。
【００１９】
以上のように、本実施形態では、共有暗号フォルダ毎に１つの暗号鍵を設定するのではなく、暗号鍵に対応する鍵ＩＤを設定し、アクセス先の共有暗号フォルダにアクセスした時に対応するマーカファイルから鍵ＩＤを取得し、その鍵ＩＤに対応する鍵データをクライアントコンピュータ内に保持していた場合のみアクセス可能に構成したため、共有暗号フォルダを他のファイルサーバに移動した場合でも、鍵管理サーバ内の鍵管理ＤＢ２１に登録している鍵リストを何ら更新することなく、他のファイルサーバに移動した共有暗号フォルダ内の共有暗号ファイルにアクセスすることができる。
これにより、組織の再編成により共有暗号フォルダを移動する必要が生じた場合であっても、鍵管理サーバ２の鍵管理ＤＢを再構築するといった面倒な作業を不要にすることができる。
また、共有暗号ファイルの削除、リネーム、新規作成の際にも、共有暗号フォルダを指定すれば自動的に暗号化／復号のための鍵データが鍵リスト内から選択されるため、暗号鍵の登録、削除、変更などの面倒な作業を不要にすることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態を示すシステム構成図である。
【図２】鍵管理ＤＢに格納されるデータの概略構成図である。
【図３】管理者による共有暗号フォルダ登録時の動作を示す説明図である。
【図４】共有暗号フォルダへアクセスする処理の説明図である。
【図５】フィルタドライバによる共有暗号フォルダへのアクセス処理を示すフローチャートである。
【図６】実際の運用における具体的なシステム構成図である。
【符号の説明】
【００２１】
１  クライアントコンピュータ
２  鍵管理サーバ
３  ファイルサーバ
４  ネットワーク
１１  アプリケーション
１２  フィルタドライバ
１３  オペレーティングシステム
１４  鍵リスト
２１  鍵管理データベース
３１ａ  共有暗号フォルダ
３１ｎ  共有暗号フォルダ
３１ａａ  暗号マーカファイル
【図１】
2008085448.tif 000003
【図２】
2008085448.tif 000004
【図３】
2008085448.tif 000005
【図４】
2008085448.tif 000006
【図５】
2008085448.tif 000007
【図６】
2008085448.tif 000008