説明

共有ファイルのアクセス制御方法、システム、サーバ装置、及びプログラム

【課題】権限のある人物が機密情報を記録した共有ファイルを取得した場合でも、より精度の高いログを残すことを可能にする。
【解決手段】サーバ10は、ファイル格納領域121を作成しそのアクセス権限を専用ユーザのみに制限するファイルシステムACL122を保存する。またファイル125のアクセス権限を制限するためのACL123をファイルデータ124に付加して保存する。ユーザ偽装機能114は、ファイル125のアクセス時に、認証ユーザが専用ユーザに偽装してファイルシステムACL122を元にファイル格納領域121へアクセスしてファイル125を読み込む。ユーザ認証機能111は、ファイル125に付加されたACL123を元に認証ユーザによるファイル125のアクセス可否を決定する。ログ出力機能113は、ファイル格納領域121内へのアクセスのログを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共有ファイルのアクセス制御方法、システム、サーバ装置、及びプログラムに係り、特にサーバクライアント型のコンピュータシステムにおいて、サーバ上の共有ファイルに対しアクセス権限をもつユーザにより実行されるアクセスのログを取得する際のアクセス制御に関する。
【背景技術】
【0002】
従来、機密情報を記録したファイルをサーバ上で共有する場合、オペレーティングシステムで用いるファイルシステムのアクセス許可設定(ACL:Access Control List)や、特許文献1に記載されているファイルと共にACLを保管する技術などにより、ファイルを閲覧できる人物を制限することは可能であった。
【0003】
しかし、ファイルの閲覧方法には様々な方法があるため、閲覧を許可されたユーザがファイルを閲覧した場合にその記録を確実にログに残すのは困難であった。例えば、あるプログラムを用いてファイルにアクセスした場合のファイルアクセスの記録をログに採取することができても、それ以外のプログラムを用いてファイルにアクセスする手段がある場合は、その操作の記録をログに残すことができない。また、すべてのファイルアクセスの記録をログに採取しようとした場合、そのログは低レベルな内容となり、解析やその後の再利用が困難なものとなる。
【特許文献1】特開2004−164604号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
前述したように、機密情報を記録したファイルをサーバ上で保管する場合、ファイルシステムのACLや、特許文献1に記載されているファイルと共にACLを保管する技術など、権限のないユーザがファイル取得することを防止する技術は、従来からあった。しかしながら、これらの技術は、権限のあるユーザがファイルを取得した場合の記録を残すという観点がない。
【0005】
昨今発生している情報漏洩事件の大半は、権限のあるユーザからの漏洩であり、権限のあるユーザがファイルを取得した場合の記録を残すことが情報漏洩対策としては重要とされている。その際、ファイル取得後の追跡が可能であるぐらいに精度の高いログを残すには、ファイルを取得する専用のアクセス手段(専用プログラム)を作成することが必要である。しかし、この場合の問題点は、専用のアクセス手段以外に、ファイルにアクセスする他のアクセス手段が存在すれば、そのログは意味のないものとなってしまうことである。
【0006】
本発明は、このような従来の事情を考慮してなされたもので、権限のある人物が機密情報を記録した共有ファイルを取得した場合でも、より精度の高いログを残すことを可能にすることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明に係るアクセス制御方法は、複数のユーザにより共有可能なファイルのアクセス制御方法であって、前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存するステップと、前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存するステップと、前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込むステップと、読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するステップとを有することを特徴とする。
【0008】
本発明において、前記ファイル格納領域内へのアクセスに関するログを出力するステップをさらに有してもよい。前記第2のアクセス許可情報を保存するステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するステップであり、前記ファイルを読み込むステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むステップであってもよい。また、前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存するステップを有してもよい。さらに、前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存するステップを有してもよい。
【0009】
本発明に係る共有ファイルのアクセス制御システムは、複数のユーザにより共有可能なファイルのアクセス制御システムであって、前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存する第1の保存手段と、前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存する第2の保存手段と、前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込む偽装手段と、読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するアクセス可否決定手段とを有することを特徴とする。
【0010】
本発明において、前記ファイル格納領域内へのアクセスに関するログを出力するログ出力手段をさらに有してもよい。前記第2の保存手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するものであり、前記偽装手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むものであってもよい。また、前記第2の保存手段は、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存する手段を有してもよい。さらに、前記第2の保存手段は、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存する手段を有してもよい。
【0011】
またさらに、前記アクセス制御システムは、前記共有ファイルを保存する記憶装置を有し且つプログラム制御で動作するサーバ装置と、このサーバ装置に通信可能に接続され且つプログラム制御で動作するクライアント装置とを備え、前記第1及び第2の保存手段、前記偽装手段、前記アクセス可否決定手段、及び前記ログ出力手段は、前記サーバ装置によるプログラム制御で機能するよう構成されてもよい。
【0012】
本発明に係るサーバ装置は、クライアント装置に通信可能に接続され、且つ、当該クライアント装置の複数のユーザにより共有可能なファイルをアクセス可能に保存するサーバ装置であって、前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存する第1の保存手段と、前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存する第2の保存手段と、前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込む偽装手段と、読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するアクセス可否決定手段とを有する。
【0013】
本発明において、前記ファイル格納領域内へのアクセスに関するログを出力するログ出力手段をさらに有してもよい。
【0014】
本発明に係る共有ファイルのアクセス制御プログラムは、複数のユーザにより共有可能なファイルのアクセス制御プログラムであって、前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存するステップと、前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存するステップと、前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込むステップと、読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するステップとをコンピュータに実行させることを特徴とする。
【0015】
本発明において、前記ファイル格納領域内へのアクセスに関するログを出力するステップをさらにコンピュータに実行させてもよい。
【発明の効果】
【0016】
本発明によれば、ファイルを取得する専用のアクセス手段以外からファイルにアクセスする手段を排除することができ、これにより、権限のある人物が機密情報を記録した共有ファイルを取得した場合でも、より精度の高いログをより確実に残すことが可能になる。
【発明を実施するための最良の形態】
【0017】
次に、本発明に係る共有ファイルのアクセス制御方法、システム、サーバ装置、及びプログラムを実施するための最良の形態について図面を参照して詳細に説明する。
【0018】
本実施の形態に係る共有ファイルのアクセス制御システムは、以下の1)〜6)の各手段を備え、機密情報を記録したファイルにアクセスできるプログラムを一つだけに限定し(以下、これを「ファイルアクセスプログラム」と呼ぶ)、他のプログラムからはアクセスできないようにしている。
【0019】
1)サーバのオペレーティングシステム上に、専用ユーザのユーザアカウントを作成する。このユーザアカウントは、オペレーティングシステムに対話的にログオンすることはできないユーザとして作成し、このユーザのパスワードは、ファイルアクセスプログラムのみが知っているものとする。
【0020】
2)対象となるファイルのファイルシステム上のACLは、専用ユーザのみがアクセス可能な状態とする。
【0021】
3)ファイルには、ファイルシステム上のACLとは別のACLがファイル内に付加されて保存されている。
【0022】
4)ファイルアクセスプログラムは、ユーザ認証を行った後、プロセス(スレッド)を上記1)の専用ユーザアカウントに偽装してファイルを読み込み、ファイル内に付加されているACLと認証済みのユーザ情報を比較し、アクセス可否を決定する。
【0023】
これにより、一般のユーザプログラムから、対象のファイルにアクセスすることはできない。ただし、オペレーティングシステムには、ファイルシステム上のACLを無視する特権が存在するため、さらに以下の対策を行う。
【0024】
5)ファイル及びファイルに付加されているACLは、暗号化して保存し、ファイルアクセスプログラムのみが復号化可能とする。
【0025】
6)ファイルの配置構造を仮想化し、実際のファイル名はユーザから見えるファイル名とは異なる名前で保存する。
【0026】
本実施の形態によれば、機密情報を記録したファイルをサーバ上で共有する場合に、ファイルを閲覧できる人物を制限するとともに、閲覧を許可された人物がファイルを閲覧した場合にそのファイルアクセスの記録を確実にログに残すことができる。
【0027】
以下、図1〜図11を参照して、本発明の実施例を説明する。
【実施例】
【0028】
図1に示す本実施例による共有ファイルのアクセス制御システムは、サーバクライアント型のコンピュータシステムを適用したもので、サーバ10と、このサーバ10にLAN(Local Area Network)等の通信ネットワークを介して通信可能に接続されるクライアント20とを備える。図1の例では、サーバ10及びクライアント20は、説明の都合上、それぞれ1台配置されている場合を例示しているが、複数台配置される構成でも適用可能である。
【0029】
クライアント20は、例えばPC(Personal Computer)等のユーザによる各種操作が可能なコンピュータマシンで構成される。このコンピュータマシンには、ハードウェア構成上、CPU(Central Processing Unit)201のほか、このCPU201にバスを介して接続されるメモリ(ROM/RAM)202や、CPU201と記憶装置(ハードディスクドライブ、光ディスクドライブ等)、表示器(CRT、液晶ディスプレイ等)、入力器(キーボード/マウス等)、通信インターフェース(LANカード等)等の各種入出力(IO)デバイス204とを接続する各種IOコントローラ203が搭載されている。
【0030】
CPU201によりプロセスとして実行されるソフトウェアには、ファイルシステムを含むオペレーティングシステム(OS)22と、このOS22上で動作する図示しない各種IOデバイス用のドライバプログラム、通信プログラムや、その他のアプリケーションプログラム(ワードプロセッサ、表計算プログラム等)23が実装されている。OS22には、例えばWindows(登録商標)系OSが使用されるが、本発明は必ずしもこれに限らず、Linux等のUNIX(登録商標)系OS等、他のOSでも適用可能である。
【0031】
本実施例では、クライアント20側で使用されるソフトウェアとして、OS22上で動作するクライアントプログラム21が含まれる。クライアントプログラム21は、サーバ10上の機密情報等の情報が記録された共有ファイルにアクセスしてそのファイル操作を行う際の閲覧プログラム(ビューア)として機能する。このクライアントプログラム21により表示器上に表示される画面上には、サーバ10上で共有されるフォルダ/ファイルの配置が容易に視認可能となっており、ユーザがこれを見ながら操作すべきフォルダ/ファイルの選択やアクセス等のファイル操作が行えるようになっている(例えば、後述の図9〜図11参照)。
【0032】
サーバ10は、例えばPCサーバや専用サーバ等の1台又は複数台のコンピュータマシンで構成される。このコンピュータマシンには、ハードウェア構成上、CPU(Central Processing Unit)101のほか、このCPU101にバスを介して接続されるメモリ(ROM/RAM)102や、HDD(ハードディスクドライブ)等の記憶装置(本発明の第1及び第2の保存手段の主要部を含む)12、LANカード等の通信インターフェース等の各種入出力(IO)デバイスが搭載されている。
【0033】
CPU101によりプロセスとして実行されるソフトウェアには、記憶装置12のファイル管理を担うファイルシステムを含むオペレーティングシステム(OS)17と、このOS17上で動作する図示しない各種IOデバイス用のドライバプログラム、通信プログラム、データベース管理システム(DBMS)や、その他のアプリケーションプログラムが実装されている。OS17には、例えばWindows(登録商標)系OSが使用されるが、本発明は必ずしもこれに限らず、Linux等のUNIX(登録商標)系OS等、他のOSでも適用可能である。
【0034】
本実施例では、サーバ10側で使用されるソフトウェアとして、OS17上で動作し且つ本発明の共有ファイルのアクセス制御方法を用いたファイルアクセスプログラム11と、このファイルアクセスプログラム11と連携して動作可能なデータベース(DB)として、アカウントデータベース(A)14、アカウントデータベース(B)15、ログデータベース13、及びレジストリデータベース16が含まれている。
【0035】
アカウントデータベース(A)14には、クライアント20からサーバ10にアクセスしてくるユーザに対しそのユーザ認証等に必要なユーザ名、パスワード等のユーザアカウント141が予め登録されている。このユーザアカウント141の一例を図2に示す。図2の例では、複数のユーザ(「ユーザ名」:「User 1」、「User 2」、…、「User 5」、「パスワード」:「xxxxxxx1」、「xxxxxxx2」、…、「xxxxxxx5」)のユーザアカウント141が例示されている。
【0036】
アカウントデータベース(B)15には、サーバ10上で共有されるフォルダ/ファイル(以下、必要に応じて「ファイル」と総称する)125にアクセスする際にファイルアクセスプログラム11が用いる専用ユーザのユーザ名、パスワード等のユーザアカウント151が予め登録されている。このユーザアカウント151の一例を図3に示す。図3の例では、専用ユーザ(「ユーザ名」:「User X」、「パスワード」:「xxxxxxxx」)のユーザアカウント151が例示されている。このユーザアカウント151は、OSに対話的にログオンすることはできない(ローカルでのログオンの権限が与えられない)ユーザとして作成され、この専用ユーザのパスワードは、ファイルアクセスプログラム11のみが認識可能となっている。このユーザアカウント151は、例えばファイルアクセスプログラム11の実装時等に作成される。
【0037】
ログデータベース13には、ファイルアクセスプログラム11から出力されるログ131が記録される。このログ131には、例えば記憶装置12上に共有されるフォルダ/ファイルに対して、何時/誰が/何から/何に/どのような操作を行ったかの情報、操作の対象となったクライアント20側及びサーバ10側のファイル名及びフォルダ名等の情報(後述の図13参照)が格納される。
【0038】
記憶装置12上には、サーバ10上で共有されるファイル125を格納するフォルダ(ディレクトリ)から成るファイル格納領域121が作成される。このファイル格納領域121は、例えばファイルアクセスプログラム11の実装時等に作成される。このファイル格納領域121を成すフォルダ及びこのフォルダ配下のファイル125へのアクセスを制限するためのOS17のファイルシステムで用いるアクセス許可情報(本発明の第1のアクセス許可情報を成す)であるACL(以下、「ファイルシステムACL」と呼ぶ)122には、ユーザアカウント151を持つ専用ユーザのみがアクセス可能な状態に設定される。
【0039】
ファイルシステムACL122は、例えばファイルアクセスプログラム11の実装時等に、記憶装置12上に作成されるフォルダから成るファイル格納領域121と関連付けられて作成される。このACL122の例を図4に示す。
【0040】
図4の例では、ファイル格納領域121を成すフォルダへのアクセスを制限するためのアクセス許可情報であるファイルシステム上のACL122として、「種類」:「許可」(アクセス許可)、「権限」:「フルコントロール」(ファイルの参照、書き込み、アップロード、ダウンロード等の全ての権限が与えられる)、「対象ユーザ(又は対象グループ)」:「User X」(専用ユーザ)が設定されている。即ち、ファイル格納領域121を成すフォルダへのアクセス許可は、専用ユーザのみ全ての権限が与えられ、それ以外のユーザにはアクセス許可が設定されていない。
【0041】
ファイル格納領域121に関連付けられたファイルシステムACL122とは別に、ファイル格納領域121内の実ファイル125には、ファイルデータ124に加え、実ファイル125へのアクセスを制限するためのアクセス許可情報(本発明の第2のアクセス許可情報を成す)であるACL123が付加されている。この実ファイル125に付加されているACL123の例を図5に示す。
【0042】
図5の例では、実ファイル125のACL123が複数のユーザ(「対象ユーザ」:「User 1」…「User 5」)毎に「種類」(「許可」又は「拒否」)及び「権限」(「参照」、「書き込み」、「ファイルのダウンロード」、「フルコントロール」等)が設定されている。例えば、「User 1」では、ファイル125への参照許可が、「User 2」では実ファイル125への書き込み許可が、「User 3」では、実ファイル125へのアクセス拒否が、「User 4」では、実ファイル125のダウンロード許可が、「User 5」では、実ファイル125への参照許可がそれぞれ設定されている。
【0043】
図6は、実ファイル125の詳細構成を示す。図6の例では、実ファイル125は、ファイルデータ124と、上記のACL123とから構成される。ファイルデータ124は、セキュリティ確保上、後述の暗号化機能115により例えばランダムな鍵で暗号化され、鍵は例えばACL123内に格納されている。一方、ACL123は、独自のタグを指定できる等の拡張性の高いマークアップ記述言語であるXML(eXtensible Markup Language)形式のファイルとして、暗号化機能115によりサーバ10のみが認識可能な暗号鍵で暗号化されている。
【0044】
図6の例では、実ファイル125のACL123を構成するXMLデータのタグとして、<file>(ファイルデータであることを示す最上位要素)、<enc>(ファイルの暗号化に使用した鍵情報)、<security>(アイテム(ファイル/フォルダ)のアクセス権に関する情報を表す)、<owner>(アイテム(ファイル/フォルダ)の所有者)、<Acl>(ACLを表す)、及び<Ace>(ACLのエントリを表す)等が設定されている。
【0045】
図中の例では、<file>の属性/子要素には、data(ファイルの作成日時)、<enc>(ファイルの暗号化に使用した鍵情報)、<security>(フォルダのアクセス許可に関する情報)等が、<enc>の属性/子要素には、key(ファイルの暗号化に使用したKeyの値)等が、<security>の属性/子要素には、<owner>及び<Acl>等が、<owner>の属性/子要素には、name(所有者のユーザ名)等が、<Acl>の属性/子要素には、inherit(ACLを上位アイテム(フォルダ)から継承するかどうかを表す)、<Ace>の属性/子要素には、type(ACLの種類(許可又は拒否))、access(対象となる権限の種類を表すビットマスクの値(例えば32ビットのビットマスクとして予め定義される))、role(対象となるユーザ又はグループ)等がそれぞれ設定可能となっている。ここで、<Ace>のtype、access、及びroleが、図5に示すACL123の「種類」、「権限」、及び「対象ユーザ」にそれぞれ対応する。
【0046】
ファイルアクセスプログラム11は、図1に示すように、機能上、ユーザ認証機能111、ファイル配置仮想化機能112、ログ出力機能113、ユーザ偽装機能114、及び暗号化機能115を備えている。これら各機能111〜115は、本発明の偽装手段、アクセス可否決定手段、及びログ出力手段を含むものであり、サーバ10上でCPU101がファイルアクセスプログラム11の命令を実行することによって実現される。
【0047】
ユーザ認証機能111は、クライアントプログラム21からのファイル操作(参照、書き込み、ダウンロード、アップロード、削除等)の要求を受けたときに、要求を出したユーザのユーザ情報(ユーザ名及びパスワード等)と、アカウントデータベース(A)14のユーザアカウント141(ユーザ名及びパスワード等)とを比較して、ユーザ認証の処理を実行する。また、要求対象の実ファイル125のACL123に基づき、ユーザの権限確認の処理を実行する。
【0048】
ファイル配置仮想化機能112は、図7に示すように、記憶装置12のファイル格納領域121内で階層構造をとらずに全て同じ階層に配置される実ファイル125を、クライアントプログラム21により表示されるクライアント20上の表示画面では、フォルダ配下で階層構造をとって異なる階層に配置可能なファイルとして、仮想的に見せかける機能を有している。
【0049】
このとき、クライアントプログラム21から見えるフォルダは、仮想的なものであり、実際には、図8に示すように、ファイル格納領域121内でXML形式のファイルとして格納される。この仮想的なフォルダに対応するXMLファイル(以下、「仮想フォルダ定義ファイル」と呼ぶ)は、暗号化機能115により暗号化されて格納される。本実施例では、仮想フォルダ定義ファイル161は、ファイル格納領域121内に格納される。また、仮想フォルダ定義ファイル161のルート情報は、レジストリデータベース16内に格納される。
【0050】
この仮想フォルダ定義ファイル161には、仮想フォルダ配下に含まれるファイル及びフォルダ(サブ仮想フォルダ)のリストと、仮想フォルダのACLとが記述される。リストには、クライアントプログラム21から見える仮想的なファイルの「ファイル名」又はフォルダの「フォルダ名」と、これに対応するファイル格納領域121内の実ファイル125の「実ファイル名」とが互いに関連付けられてペアで記述される。
【0051】
また、クライアントプログラム21から見えるファイルは、仮想的なものであり、実際には、ファイル格納領域121内では実ファイル125のファイルデータ124にACL123を付加した形で格納される。この実ファイル125のファイルデータ124及びACL123は、暗号化機能115によりそれぞれ暗号化されて格納される。
【0052】
図9は、仮想フォルダ定義ファイル161の詳細構成を示す。
【0053】
図9の例では、仮想フォルダ定義ファイル161として、<folder>(フォルダ定義ファイルであることを示す最上位要素)、<items>(フォルダ内のアイテム(ファイル/フォルダ)のリストを表す)、<item>(フォルダ内のサブアイテム(ファイル/フォルダ)のリストを表す)、<security>(ファイル/フォルダのアクセス権に関する情報を表す)、<Acl>(ACLを表す)、<Ace>(ACLのエントリを表す)等が設定されている。
【0054】
図中の例では、<folder>の属性/子要素には、<items>及び<security>(フォルダのアクセス許可に関する情報)等が、<items>の属性/子要素には、<item>等が、<item>の属性/子要素には、type(アイテムの種類)、name(アイテムの表示名)id(アイテムの実アイテム名)、data(アイテムの作成日時)、size(ファイルのサイズ)が、<security>の属性/子要素には、<owner>及び<Acl>等が、<owner>の属性/子要素には、name(所有者のユーザ名)等が、<Acl>の属性/子要素には、inherit(ACLを上位アイテム(フォルダ)から継承するかどうかを表す)、<Ace>の属性/子要素には、type(ACLの種類(許可又は拒否))、access(対象となる権限の種類を表すビットマスクの値(例えば32ビットのビットマスクとして予め定義される))、role(対象となるユーザ又はグループ)等がそれぞれ設定可能となっている。ここで、<Ace>のtype、access、及びroleが、図5に示すACL123の「種類」、「権限」、及び「対象ユーザ」にそれぞれ対応する。
【0055】
前述の図8の例では、クライアント20側のクライアントプログラム21から見える仮想的なフォルダ(Folder A)に対応する仮想フォルダ定義ファイル161を成すXMLファイルには、フォルダ内のサブアイテム及びフォルダのアクセス権の情報が書き込まれている。この場合、フォルダ内のサブアイテムとしてFolder B及び文書1.docが含まれ、Folder Bが実ファイル名「18ACB256-486-...」の実ファイルに、文書1.docが実ファイル名「24987A45-FF14-...」の実ファイルにそれぞれ対応するように設定されている。また、フォルダのアクセス権の「対象ユーザ」として3つのグループ(フルパス名:「\Domain\group1」、「\Domain\group2」、「\Domain\group3」)が含まれ、各グループ毎にアクセス権の「種類」(許可又は拒否)及び「権限」(読み込み、フルコントロール等)が設定されている。
【0056】
ログ出力機能113は、クライアントプログラム21からのファイルアクセスの要求に対して、何時/誰が/何から/何に/どのような操作を行ったかの情報、操作の対象となったクライアント20側及びサーバ10側のファイル名及びフォルダ名等の情報を、ログ131(後述の図13参照)としてログデータベース13に出力する。
【0057】
ユーザ偽装機能114は、ファイル格納領域121内へファイルアクセスする際、実行中のプロセス(スレッド)内で実行ユーザのユーザアカウント141を変更して、専用ユーザのユーザアカウント151に偽装させる機能を有する。
【0058】
次に、本実施例の全体動作について説明する。
【0059】
ここでは、図10〜図13を参照して、クライアント20からサーバ10上のファイル125を取得する場合の動作を説明する。
【0060】
図10は、サーバ10側及びクライアント20側のそれぞれの動作シーケンスを示すフローチャート、図11は、その動作の流れを模式的に示す概略図である。図10のフローチャートに示す処理のうち、サーバ10側の処理は、CPU201がOS17の動作環境下でファイルアクセスプログラム11を実行することにより行われる。また、クライアント20側の処理は、CPU201がOS22の動作環境下でクライアントプログラム21を実行することにより行われる。
【0061】
ここでは、ファイル格納領域121内に実ファイル125が保存され、この保存時に、ACL123がファイルデータ124に付加されると共に、それぞれ暗号化機能115により暗号化されているものとする。このとき、ファイル配置仮想化機能112にて、実ファイル125のファイル名は、クライアントプログラム21側のファイル名とは異なるように保存されている。また、ファイル配置仮想化機能112により作成される仮想フォルダ定義ファイル161は、クライアントプログラム21側の実ファイル125のパス名と、ファイル格納領域121内の実ファイルの実ファイル名とが互いに関連付け可能なXMLファイルとして作成され、暗号化機能115により暗号化されて、ファイル格納領域121内に保存されている。
【0062】
このような状態で、まず、クライアント20側にて、サーバ10上のファイル125へのファイルアクセスに際し、クライアントプログラム21が起動され(ステップA1)、その画面(図7中のクライアントプログラム側表示画面参照)が表示される(ステップA2)。ユーザがこの画面を見ながら取得対象のファイルが選択され、選択されたファイルに対するファイル取得の要求がユーザ認証に必要なユーザ情報(ユーザ名及びパスワード等)と共にサーバ10側に転送される(ステップA1)。
【0063】
これに応答して、サーバ10側では、クライアント20側のクライアントプログラム21からファイル取得の要求を受けると、ファイルアクセスプログラム11が起動され(ステップB1)、ユーザ認証機能111にて、ユーザアカウントデータベース(A)14のユーザアカウント141を参照して、ユーザ認証が行われる(ステップB2)。これにより、認証された場合(ステップB3:YES)は、次処理に移行し、認証が行えなかった場合(ステップB3:NO)は、この時点で処理が中止される。
【0064】
次いで、ログ出力機能113にて、クライアント20側からの要求内容をログデータベース13に出力する(ステップB4)。このとき、ログが出力できなかった場合は、処理が中止される。
【0065】
次いで、ユーザ偽装機能114にて、アカウントデータベース(B)15の専用ユーザのユーザアカウント151を参照して、ファイルシステムACL122に基づき専用ユーザ151に偽装する(ステップB5)。そして、ファイル配置仮想化機能112にて、ファイル格納領域121内の仮想フォルダ定義ファイル161を参照して、要求があった仮想ファイルのパス名を解析して、そのパス名に対応する実ファイル125の実ファイル名を得る(ステップB6)。この処理例を図12に示す。
【0066】
図12の例では、クライアントプログラム21側の表示画面上で、最上位フォルダであるルートフォルダ(\)の下位階層に形成されたサブフォルダ(Folder A)内のさらに下位階層に形成されたサブフォルダ(Folder B)内に保管されている文書2.doc(パス名:\FolderA\FolderB\文書2.doc)にアクセスした場合を示す。
【0067】
この場合、ファイル配置仮想化機能112は、レジストリデータベース16内のルート情報及びファイル格納領域121内の仮想フォルダ定義ファイル161を参照しながら、まず、レジストリデータベース16内のルート情報(Root=...)から、パス名の最上位フォルダであるルートフォルダ(\)に対応する仮想フォルダ定義ファイル161(XMLファイル)のフォルダ名「7481AD43-02DF...」を得る。次いで、ファイル格納領域121内の該当フォルダ名の仮想フォルダ定義ファイル161から、パス名中の「FolderA」に対応する仮想フォルダ定義ファイル161(XMLファイル)のフォルダ名「936DA01F-9ABD...」を得る。次いで、ファイル格納領域121内の該当フォルダ名の仮想フォルダ定義ファイル161から、パス名中の「FolderB」に対応する仮想フォルダ定義ファイル161(XMLファイル)のフォルダ名「18ACB256-4876...」を得る。次いで、ファイル格納領域121内の該当フォルダ名の仮想フォルダ定義ファイル161から、パス名中の「文書2.doc」に対応する実ファイル125の実ファイル名「24987A45-FF14...」を得る。
【0068】
次いで、ファイル格納領域121内から実ファイル125のACL123及びファイルデータ124を読み込み(ステップB7)、暗号化機能115にて、実ファイル125内のACL123を復号化し、復号化されたACL123と認証済みのユーザ情報(ユーザ名等)とを比較して(ステップB8)、該当ユーザにファイル取得の権限があるかどうかを判断する(ステップB9)。
【0069】
次いで、上記ステップB9の処理でファイル取得可(YES)の場合は、実ファイル125内のファイルデータ124を復号し、クライアントプログラム21に転送する(ステップB10)。これにより、クライアント20側では、サーバ側10からファイルデータ124を取得し(ステップA4)、そのファイルデータ124に対する各種ファイル操作が行われる(ステップA5)。一方、上記ステップB9の処理でファイル取得付加(NO)の場合は、上記ステップB10の処理は行わない。
【0070】
一方、サーバ10側では、ログ出力機能113にて、上記ステップB9の処理によるファイル取得の可否情報をログデータベース13に出力する(ステップB11)。ここで、ログデータベース13に出力される内容は、クライアント20の「ユーザ名」、「マシン名」等の他、クライアント10側から受け取った情報を出力することも可能なため、自由度の高いログ131を出力することが可能となる。このログ131の出力例を図13に示す。
【0071】
図13の例では、ログ131の情報として、「日時」(ファイル格納領域121に対して操作された日時)、「ユーザ名」(ファイル格納領域121に対して操作を行ったユーザ名)、「操作の種類」(ファイル格納領域121に対して実行した操作の種類:フォルダの生成、フォルダの削除、フォルダの名前変更、ファイルをアップロード、ファイルをダウンロード、ファイルの削除、ファイルの名前変更、アクセス許可情報(ACL)設定、所有権設定等)、「サーバ側操作対象1」(ファイル格納領域121内の操作対象フォルダ/ファイルのフルパス名)、「サーバ側操作対象2」(ファイル格納領域121内の操作対象ファイル名:ファイルの名前変更時のみ変更後の名前として表示される)、「クライアント側操作対象」(操作対象となったクライアント10側のファイル名)、「操作の結果」(ファイル格納領域121に対する操作結果:受付、許可、非許可、異常等)、「マシン名」(操作が行われたクライアント10側のマシン名)、「IPアドレス」(操作が行われたクライアント10側のマシンのIPアドレス)等が出力されている。
【0072】
従って、本実施例によれば、ファイルを取得する専用のプログラムを提供することと、それ以外のプログラムからファイルにアクセスできないようにしたため、権限のあるユーザがファイルを取得した場合に確実で精度の高いログを残すことができ、これにより権限のあるユーザによる情報漏洩を効果的に抑止することが可能となる。
【0073】
なお、本発明の他の実施例として、ファイルにアクセスできるプログラムを限定する方法には、以下の方法もある。また、これは前述の実施例と併用することもできる。この例では、ファイルシステムフィルタドライバにより対象ファイルへのイベントを監視し、ファイルアクセスプログラム11以外のプロセスからのアクセスを拒否する。ファイルアクセスプログラム11のユーザ認証機能111は、外部の機能、例えば統合Windows(登録商標)認証等のオペレーティングシステムの機能を使用して、認証済みのユーザ情報のみを取得する構成であっても構わない。
【0074】
また、本実施例では、クライアント側でファイル取得後に実行されるコピー等のファイル操作については特に言及していないが、応用例として、例えば本出願人が先行して出願している特願2004−275383で開示されている文書ファイルコピー移動監視システムを組み合わせることにより、上記ファイルアクセスプログラム11から出力されるログに加え、ファイル取得後のクライアント側のファイル操作により最終的にどこにコピー又は移動されたか等の記録をログに残すことが可能となる。これによれば、上記効果をより一層高めることができる。
【0075】
なお、本実施例では、第2のアクセス許可情報を成すACL123は、実ファイル125のファイルデータ124に付加して保存される場合を例示しているが、本発明は必ずしもこれに限定されるものではなく、第2のアクセス許可情報はファイルデータ124に関連付けて保存可能な構成であればよく、例えばファイル格納領域121内に実ファイル125のファイルデータ124とそのACL123とが互いに関連付けられた個別のファイルとして格納されていてもよい。
【産業上の利用可能性】
【0076】
本発明によれば、より高度にセキュリティが要求されるファイルの管理や、企業の情報漏洩対策といった用途に適用できる。
【図面の簡単な説明】
【0077】
【図1】本発明の一実施例に係る共有ファイルのアクセス制御方法を用いたサーバクライアント型のコンピュータシステムの全体構成を示す図である。
【図2】アカウントデータベース(A)の構成例を示す図である。
【図3】アカウントデータベース(B)の構成例を示す図である。
【図4】ファイルシステムACLの構成例を示す図である。
【図5】ファイル又はフォルダに付加されるACLの構成例を示す図である。
【図6】ファイルの詳細構成例を示す図である。
【図7】ファイル格納領域内の実データのファイル配置とクライアント側表示画面上のファイル配置との関係を説明する図である。
【図8】ファイル格納領域内の実データを成す仮想フォルダ定義ファイルとクライアントプログラム側表示画面上のファイルとの関係を説明する図である。
【図9】仮想フォルダ定義ファイルの詳細構成例を示す図である。
【図10】クライアント側とサーバ側の間でファイルを取得する場合の動作を説明する概略フローチャートである。
【図11】図10に示す動作を模式的に説明する概略図である。
【図12】ファイル配置仮想化機能の動作例を説明する図である。
【図13】ログの出力例を示す図である。
【符号の説明】
【0078】
10 サーバ
11 ファイルアクセスプログラム
12 記憶装置
13 ログデータベース
14 アカウントデータベース(A)
15 アカウントデータベース(B)
16 レジストリデータベース
17 オペレーティングシステム
20 クライアント
21 クライアントプログラム
22 オペレーティングシステム
23 アプリケーションプログラム
101 CPU(サーバ)
102 メモリ(サーバ)
111 ユーザ認証機能
112 ファイル配置仮想化機能
113 ログ出力機能
114 ユーザ偽装機能
115 暗号化機能
121 ファイル格納領域
122 ファイルシステムACL
123 ACL
124 ファイルデータ(ファイル)
125 ファイル(実ファイル)
161 仮想フォルダ定義ファイル
201 CPU(クライアント)
202 メモリ(クライアント)
203 IOコントローラ
204 IOデバイス

【特許請求の範囲】
【請求項1】
複数のユーザにより共有可能なファイルのアクセス制御方法であって、
前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存するステップと、
前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存するステップと、
前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込むステップと、
読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するステップと、
を有することを特徴とする共有ファイルのアクセス制御方法。
【請求項2】
前記ファイル格納領域内へのアクセスに関するログを出力するステップをさらに有することを特徴とする請求項1に記載の共有ファイルのアクセス制御方法。
【請求項3】
前記第2のアクセス許可情報を保存するステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するステップであり、
前記ファイルを読み込むステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むステップであることを特徴とする請求項1又は2に記載の共有ファイルのアクセス制御方法。
【請求項4】
前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存するステップを有することを特徴とする請求項1から3のいずれか1項に記載の共有ファイルのアクセス制御方法。
【請求項5】
前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存するステップを有することを特徴とする請求項1から4のいずれか1項に記載の共有ファイルのアクセス制御方法。
【請求項6】
複数のユーザにより共有可能なファイルのアクセス制御システムであって、
前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存する第1の保存手段と、
前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存する第2の保存手段と、
前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込む偽装手段と、
読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するアクセス可否決定手段と、
を有することを特徴とする共有ファイルのアクセス制御システム。
【請求項7】
前記ファイル格納領域内へのアクセスに関するログを出力するログ出力手段をさらに有することを特徴とする請求項6に記載の共有ファイルのアクセス制御システム。
【請求項8】
前記第2の保存手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するものであり、
前記偽装手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むものであることを特徴とする請求項6又は7に記載の共有ファイルのアクセス制御システム。
【請求項9】
前記第2の保存手段は、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存する手段を有することを特徴とする請求項6から8のいずれか1項に記載の共有ファイルのアクセス制御システム。
【請求項10】
前記第2の保存手段は、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存する手段を有することを特徴とする請求項6から9のいずれか1項に記載の共有ファイルのアクセス制御システム。
【請求項11】
前記アクセス制御システムは、前記共有ファイルを保存する記憶装置を有し且つプログラム制御で動作するサーバ装置と、このサーバ装置に通信可能に接続され且つプログラム制御で動作するクライアント装置とを備え、
前記第1及び第2の保存手段、前記偽装手段、前記アクセス可否決定手段、及び前記ログ出力手段は、前記サーバ装置によるプログラム制御で機能するよう構成されていることを特徴とする請求項6から10のいずれか1項に記載の共有ファイルのアクセス制御システム。
【請求項12】
クライアント装置に通信可能に接続され、且つ、当該クライアント装置の複数のユーザにより共有可能なファイルをアクセス可能に保存するサーバ装置であって、
前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存する第1の保存手段と、
前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存する第2の保存手段と、
前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込む偽装手段と、
読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するアクセス可否決定手段と、
を有することを特徴とするサーバ装置。
【請求項13】
前記ファイル格納領域内へのアクセスに関するログを出力するログ出力手段をさらに有することを特徴とする請求項12に記載のサーバ装置。
【請求項14】
前記第2の保存手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するものであり、
前記偽装手段は、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むものであることを特徴とする請求項12又は13に記載のサーバ装置。
【請求項15】
前記第2の保存手段は、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存する手段を有することを特徴とする請求項12から14のいずれか1項に記載のサーバ装置。
【請求項16】
前記第2の保存手段は、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存する手段を有することを特徴とする請求項12から15のいずれか1項に記載のサーバ装置。
【請求項17】
複数のユーザにより共有可能なファイルのアクセス制御プログラムであって、
前記ファイルを格納するためのファイル格納領域内のアクセス権限を予め専用ユーザ用のユーザアカウントが設定された専用ユーザのみに制限するための第1のアクセス許可情報を保存するステップと、
前記ファイル格納領域内に前記ファイルが保存されるときに、当該ファイルのアクセス権限を前記複数のユーザ毎に制限するための第2のアクセス許可情報を当該ファイルに関連付けて保存するステップと、
前記ファイルがアクセスされるときに、ユーザ認証されたユーザが前記専用ユーザとなるように偽装して前記第1のアクセス許可情報を元に前記ファイル格納領域へアクセスして前記ファイルを読み込むステップと、
読み込まれた前記ファイルに関連付けられた前記第2のアクセス許可情報を元に前記ユーザ認証されたユーザによる前記ファイルのアクセス可否を決定するステップと、
をコンピュータに実行させることを特徴とする共有ファイルのアクセス制御プログラム。
【請求項18】
前記ファイル格納領域内へのアクセスに関するログを出力するステップをさらにコンピュータに実行させることを特徴とする請求項17に記載の共有ファイルのアクセス制御プログラム。
【請求項19】
前記第2のアクセス許可情報を保存するステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に暗号化して保存するステップであり、
前記ファイルを読み込むステップは、前記第2のアクセス許可情報及び前記ファイルのデータを個別に複合化して読み込むステップであることを特徴とする請求項17又は18に記載の共有ファイルのアクセス制御プログラム。
【請求項20】
前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に前記ファイルが保存されるときに当該ファイルのファイル名を前記ユーザにより使用されるファイル名とは異ならせて保存するステップを有することを特徴とする請求項17から19のいずれか1項に記載の共有ファイルのアクセス制御プログラム。
【請求項21】
前記第2のアクセス許可情報を保存するステップは、前記ファイル格納領域内に保存される前記ファイルの配置構造を前記ユーザ側の表示画面上で仮想的な階層構造として視認可能に仮想化するための定義ファイルを作成して保存するステップを有することを特徴とする請求項17から20のいずれか1項に記載の共有ファイルのアクセス制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2006−178724(P2006−178724A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2004−371037(P2004−371037)
【出願日】平成16年12月22日(2004.12.22)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(390001395)エヌイーシーシステムテクノロジー株式会社 (438)
【Fターム(参考)】