JPWO2008065725A1 - セキュアファイルサーバシステム - Google Patents
セキュアファイルサーバシステム Download PDFInfo
- Publication number
- JPWO2008065725A1 JPWO2008065725A1 JP2008546863A JP2008546863A JPWO2008065725A1 JP WO2008065725 A1 JPWO2008065725 A1 JP WO2008065725A1 JP 2008546863 A JP2008546863 A JP 2008546863A JP 2008546863 A JP2008546863 A JP 2008546863A JP WO2008065725 A1 JPWO2008065725 A1 JP WO2008065725A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- computer
- fat
- cluster
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本発明は、Windows(登録商標)オペレーティングシステムを使用するクライアントコンピュータと、クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムを提供し、このシステムでは、ネットワークを介して送受信される書き込みデータまたは読み出しデータは、クラスタ単位に分割されたデータ(クラスタデータ)を含み、クラスタデータは、クラスタ単位で暗号化されてデータベースに保存される。
Description
本発明は、一般的には情報管理システムに関し、より詳細にはクライアントサーバネットワークにおいて情報をより安全性高く管理するためのセキュアファイルサーバシステムに関する。
ファイルサーバシステムの運用管理において、システムのセキュリティの確保、業務効率の改善、運用コストの削減等は重要な課題である。このような課題に取り組んだ例として、例えば、SSLを利用してクライアントのフォルダやファイルをサーバのデータベースにおいて集中管理する、オラクル(登録商標)社のOracle Content Databaseが知られている。しかしながら、このファイルシステムには、オラクル社製のアプリケーションしか使用できないという制限がある。
したがって、アプリケーションによる制限を最小化し、かつ高いセキュリティ性、業務効率、運用コストの削減等を確保することができるセキュアなファイルサーバシステムが求められている。
このような状況に鑑み、本発明者らは、現在汎用されているMicrosoft(登録商標)社のWindows(登録商標)のファイルシステムに対応したセキュアファイルサーバシステムを提供する。
具体的には、本発明は、以下のセキュアファイルサーバシステム、該システムにおけるクライアントまたはサーバコンピュータに搭載されるコンピュータプログラム、およびそのようなコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体を提供する。
(1)Windows(登録商標)オペレーティングシステム(OS)を使用するクライアントコンピュータと、
上記クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムであって、
上記クライアントコンピュータは、
上記ネットワークを介して上記サーバコンピュータと通信するための通信手段と、
Windows I/Oシステムからの初期化、ファイル読み出し、またはファイル書き込みの要求に応じて、上記初期化もしくはファイル読み出し要求または上記ファイル書き込み要求および書き込みデータを上記通信手段を介して上記サーバコンピュータに送信し、上記初期化要求または上記ファイル読み出し要求に応じて上記サーバコンピュータから送信されたデータを上記通信手段を介して受信するように該クライアントコンピュータを制御するための制御手段と、を少なくとも備え、
上記サーバコンピュータは、
上記ネットワークを介して上記クライアントコンピュータと通信するための通信手段と、
上記通信手段を介して受信した上記クライアントコンピュータからの上記書き込みデータを上記データベースに保存するか、または上記クライアントコンピュータからの初期化要求もしくは読み出し要求に応じて要求されたデータを上記データベースから取得して、上記通信手段を介して上記クライアントコンピュータに送信するように該サーバコンピュータを制御するための制御手段と、を少なくとも備え、
上記ネットワークを介して送受信される上記書き込みデータまたは上記読み出しデータは、クラスタ単位に分割されたデータ(クラスタデータ)を含み、
上記クラスタデータは、クラスタ単位で暗号化されて上記データベースに保存される、セキュアファイルサーバシステム。
(2)上記書き込みデータはさらに、上記クラスタデータに関連するファイル・アロケーション・テーブル(FAT)のデータを含む、上記(1)に記載のセキュアファイルサーバシステム。
(3)上記FATデータが、上記クラスタデータとは異なるデータベースに保存される、上記(2)に記載のセキュアファイルサーバシステム。
(4)上記ネットワークを介して送受信するデータが暗号化されている、上記(1)〜(3)のいずれかに記載のセキュアファイルサーバシステム。
(5)上記ネットワークがイントラネットである、上記(1)〜(4)のいずれかに記載のセキュアファイルサーバシステム。
(6)上記ネットワークの通信プロトコルが、HTTPプロトコルである、上記(1)〜(5)のいずれかに記載のセキュアファイルサーバシステム。
(7)上記Windows(登録商標)オペレーティングシステムが、FAT32ファイルシステムを使用する、上記(1)〜(6)のいずれかに記載のセキュアファイルサーバシステム。
(8)上記Windows(登録商標)オペレーティングシステムが、NTFSを使用する、上記(1)に記載のセキュアファイルサーバシステム。
(9)上記(1)〜(7)のいずれかに記載のセキュアファイルサーバシステムにおいて、クライアントコンピュータに搭載されるコンピュータプログラムであって、
Windows(登録商標)のI/Oシステムからの要求に応じて、上記クライアントコンピュータに以下の処理:
(i)上記要求が初期化である場合には、
上記初期化の要求をサーバコンピュータへ送信するステップと、
上記サーバコンピュータからFATデータを取得するステップと、
上記取得したFATデータに基づいて仮想ディスクを作成するステップと。
上記仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(ii)上記要求がファイル読み出しである場合には、
読み出しデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
上記FATデータを仮想ディスクから取得するステップと、
取得した仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
ファイル読み出し要求をサーバコンピュータに送信するステップと、
上記サーバコンピュータから読み出しデータを受信するステップと、
上記受信した読み出しデータをWindows I/Oへ返すステップとを含む処理、または
(iii)上記要求がファイル書き込みである場合には、
書き込みデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
仮想ディスクのFATデータを更新するステップと、
上記更新の成否の情報をWindows I/Oに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
上記データに基づいてクラスタデータを作成するステップと、
上記クラスタデータを含むデータをサーバコンピュータに送信するステップと、
上記送信の成否の情報をWindows I/Oに返すステップとを含む処理、
を実行させるための、コンピュータプログラム。
(10)上記(9)に記載のコンピュータプログラムであって、
上記(i)の処理が、上記サーバコンピュータからFATデータを取得するステップの後に、さらに、以下のステップ:
上記取得したデータが暗号化されている場合には、上記暗号化されているデータを復号化するステップ、および
上記取得したデータが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
(11)上記(9)に記載のコンピュータプログラムであって、
上記(ii)(b)の処理が、上記サーバコンピュータから読み出しデータを受信するステップの後に、さらに、以下のステップ:
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
(12)上記(9)に記載のコンピュータプログラムであって、
上記(iii)(b)の処理が、上記クラスタデータを作成するステップの後に、さらに、
上記クラスタデータを圧縮するステップ、および/または
上記クラスタデータを暗号化するステップ、
を含む、コンピュータプログラム。
(13)上記(9)に記載のコンピュータプログラムであって、
上記(iii)(b)の処理において、上記クラスタデータを含むデータがさらにFATデータを含む、コンピュータプログラム。
(14)上記(1)〜(7)のいずれかに記載のセキュアファイルサーバシステムにおいて、サーバコンピュータに搭載されるコンピュータプログラムであって、
上記クライアントコンピュータからの要求に応じて、上記サーバコンピュータに以下の処理:
(i)上記要求が初期化である場合には、
FATデータを上記データベースから取得するステップと、
上記データを復号化するステップと、
上記データをクライアントコンピュータに送信するステップとを含む処理、
(ii)上記要求がファイル読み出しである場合には、
読み出しデータを上記データベースから取得するステップと、
上記読み出しデータを復号化するステップと、
上記読み出しデータをクライアントコンピュータに送信するステップとを含む処理、
(iii)上記要求がファイル書き込みである場合には、
書き込みデータをクライアントコンピュータから受信するステップと、
上記受信した書き込みデータを暗号化するステップと、
上記暗号化した書き込みデータを上記データベースに保存するステップとを含む処理、
を実行させるための、コンピュータプログラム。
(15)上記(14)に記載のコンピュータプログラムであって、
上記(i)の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および/または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
(16)上記(14)に記載のコンピュータプログラムであって、
上記(ii)の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および/または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
(17)上記(14)に記載のコンピュータプログラムであって、
上記(iii)の処理が、上記書き込みデータを上記クライアントコンピュータから受信するステップの後に、さらに、
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
をさらに含む、コンピュータプログラム。
(18)上記(14)に記載のコンピュータプログラムであって、
上記(iii)の処理において、
上記受信した書き込みデータを暗号化するステップが、FATデータとクラスタデータとを別々に暗号化することを含み、該クラスタデータはクラスタ単位で暗号化され、
上記暗号化した書き込みデータを上記データベースに保存するステップが、上記暗号化したFATデータを、上記暗号化したクラスタデータとは異なるデータベースに保存することを含む、コンピュータプログラム。
(19)上記(9)〜(13)のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
(20)上記(14)〜(18)のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
本発明において、データはクラスタ単位で送受信され、クラスタ単位で暗号化してサーバに保存され、クラスタはハードディスク上にランダムな順序で保存される。そのため、不正なユーザがクラスタデータベースにアクセスしたとしても、ファイルを構成するクラスタデータを正確に抽出することが困難なため、従来のファイルシステムよりも高いセキュリティ性を確保することができる。さらに、FATデータをクラスタデータとは別のデータベースに保存することによって、よりセキュアなファイルサーバシステムが提供される。
本発明によれば、このようにデータベースシステムにクラスタデータを暗号化し保存することで高レベルのセキュリティ機能を実現しつつ、データベースシステムの機能を利用して無停止対応や、バックアップなどの高可用性をシンプルに実現することができる。また、データベースシステムをファイルサーバとして利用するため、従来のように業務系システムとは別にファイルサーバを構築する必要がなく、システム統合による全体の維持運営コスト削減を実現することが可能となる。
本発明は、サーバをWindows(登録商標)ファイルシステムとして用いることを実現し、それによって、ユーザがサーバから必要なデータを取得して用いる場合でも、あたかもWindows(登録商標)上のドライブを使用しているような高速性と簡易性とを実感することができるシステムを提供することができる。
このような状況に鑑み、本発明者らは、現在汎用されているMicrosoft(登録商標)社のWindows(登録商標)のファイルシステムに対応したセキュアファイルサーバシステムを提供する。
具体的には、本発明は、以下のセキュアファイルサーバシステム、該システムにおけるクライアントまたはサーバコンピュータに搭載されるコンピュータプログラム、およびそのようなコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体を提供する。
(1)Windows(登録商標)オペレーティングシステム(OS)を使用するクライアントコンピュータと、
上記クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムであって、
上記クライアントコンピュータは、
上記ネットワークを介して上記サーバコンピュータと通信するための通信手段と、
Windows I/Oシステムからの初期化、ファイル読み出し、またはファイル書き込みの要求に応じて、上記初期化もしくはファイル読み出し要求または上記ファイル書き込み要求および書き込みデータを上記通信手段を介して上記サーバコンピュータに送信し、上記初期化要求または上記ファイル読み出し要求に応じて上記サーバコンピュータから送信されたデータを上記通信手段を介して受信するように該クライアントコンピュータを制御するための制御手段と、を少なくとも備え、
上記サーバコンピュータは、
上記ネットワークを介して上記クライアントコンピュータと通信するための通信手段と、
上記通信手段を介して受信した上記クライアントコンピュータからの上記書き込みデータを上記データベースに保存するか、または上記クライアントコンピュータからの初期化要求もしくは読み出し要求に応じて要求されたデータを上記データベースから取得して、上記通信手段を介して上記クライアントコンピュータに送信するように該サーバコンピュータを制御するための制御手段と、を少なくとも備え、
上記ネットワークを介して送受信される上記書き込みデータまたは上記読み出しデータは、クラスタ単位に分割されたデータ(クラスタデータ)を含み、
上記クラスタデータは、クラスタ単位で暗号化されて上記データベースに保存される、セキュアファイルサーバシステム。
(2)上記書き込みデータはさらに、上記クラスタデータに関連するファイル・アロケーション・テーブル(FAT)のデータを含む、上記(1)に記載のセキュアファイルサーバシステム。
(3)上記FATデータが、上記クラスタデータとは異なるデータベースに保存される、上記(2)に記載のセキュアファイルサーバシステム。
(4)上記ネットワークを介して送受信するデータが暗号化されている、上記(1)〜(3)のいずれかに記載のセキュアファイルサーバシステム。
(5)上記ネットワークがイントラネットである、上記(1)〜(4)のいずれかに記載のセキュアファイルサーバシステム。
(6)上記ネットワークの通信プロトコルが、HTTPプロトコルである、上記(1)〜(5)のいずれかに記載のセキュアファイルサーバシステム。
(7)上記Windows(登録商標)オペレーティングシステムが、FAT32ファイルシステムを使用する、上記(1)〜(6)のいずれかに記載のセキュアファイルサーバシステム。
(8)上記Windows(登録商標)オペレーティングシステムが、NTFSを使用する、上記(1)に記載のセキュアファイルサーバシステム。
(9)上記(1)〜(7)のいずれかに記載のセキュアファイルサーバシステムにおいて、クライアントコンピュータに搭載されるコンピュータプログラムであって、
Windows(登録商標)のI/Oシステムからの要求に応じて、上記クライアントコンピュータに以下の処理:
(i)上記要求が初期化である場合には、
上記初期化の要求をサーバコンピュータへ送信するステップと、
上記サーバコンピュータからFATデータを取得するステップと、
上記取得したFATデータに基づいて仮想ディスクを作成するステップと。
上記仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(ii)上記要求がファイル読み出しである場合には、
読み出しデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
上記FATデータを仮想ディスクから取得するステップと、
取得した仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
ファイル読み出し要求をサーバコンピュータに送信するステップと、
上記サーバコンピュータから読み出しデータを受信するステップと、
上記受信した読み出しデータをWindows I/Oへ返すステップとを含む処理、または
(iii)上記要求がファイル書き込みである場合には、
書き込みデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
仮想ディスクのFATデータを更新するステップと、
上記更新の成否の情報をWindows I/Oに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
上記データに基づいてクラスタデータを作成するステップと、
上記クラスタデータを含むデータをサーバコンピュータに送信するステップと、
上記送信の成否の情報をWindows I/Oに返すステップとを含む処理、
を実行させるための、コンピュータプログラム。
(10)上記(9)に記載のコンピュータプログラムであって、
上記(i)の処理が、上記サーバコンピュータからFATデータを取得するステップの後に、さらに、以下のステップ:
上記取得したデータが暗号化されている場合には、上記暗号化されているデータを復号化するステップ、および
上記取得したデータが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
(11)上記(9)に記載のコンピュータプログラムであって、
上記(ii)(b)の処理が、上記サーバコンピュータから読み出しデータを受信するステップの後に、さらに、以下のステップ:
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
(12)上記(9)に記載のコンピュータプログラムであって、
上記(iii)(b)の処理が、上記クラスタデータを作成するステップの後に、さらに、
上記クラスタデータを圧縮するステップ、および/または
上記クラスタデータを暗号化するステップ、
を含む、コンピュータプログラム。
(13)上記(9)に記載のコンピュータプログラムであって、
上記(iii)(b)の処理において、上記クラスタデータを含むデータがさらにFATデータを含む、コンピュータプログラム。
(14)上記(1)〜(7)のいずれかに記載のセキュアファイルサーバシステムにおいて、サーバコンピュータに搭載されるコンピュータプログラムであって、
上記クライアントコンピュータからの要求に応じて、上記サーバコンピュータに以下の処理:
(i)上記要求が初期化である場合には、
FATデータを上記データベースから取得するステップと、
上記データを復号化するステップと、
上記データをクライアントコンピュータに送信するステップとを含む処理、
(ii)上記要求がファイル読み出しである場合には、
読み出しデータを上記データベースから取得するステップと、
上記読み出しデータを復号化するステップと、
上記読み出しデータをクライアントコンピュータに送信するステップとを含む処理、
(iii)上記要求がファイル書き込みである場合には、
書き込みデータをクライアントコンピュータから受信するステップと、
上記受信した書き込みデータを暗号化するステップと、
上記暗号化した書き込みデータを上記データベースに保存するステップとを含む処理、
を実行させるための、コンピュータプログラム。
(15)上記(14)に記載のコンピュータプログラムであって、
上記(i)の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および/または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
(16)上記(14)に記載のコンピュータプログラムであって、
上記(ii)の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および/または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
(17)上記(14)に記載のコンピュータプログラムであって、
上記(iii)の処理が、上記書き込みデータを上記クライアントコンピュータから受信するステップの後に、さらに、
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
をさらに含む、コンピュータプログラム。
(18)上記(14)に記載のコンピュータプログラムであって、
上記(iii)の処理において、
上記受信した書き込みデータを暗号化するステップが、FATデータとクラスタデータとを別々に暗号化することを含み、該クラスタデータはクラスタ単位で暗号化され、
上記暗号化した書き込みデータを上記データベースに保存するステップが、上記暗号化したFATデータを、上記暗号化したクラスタデータとは異なるデータベースに保存することを含む、コンピュータプログラム。
(19)上記(9)〜(13)のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
(20)上記(14)〜(18)のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
本発明において、データはクラスタ単位で送受信され、クラスタ単位で暗号化してサーバに保存され、クラスタはハードディスク上にランダムな順序で保存される。そのため、不正なユーザがクラスタデータベースにアクセスしたとしても、ファイルを構成するクラスタデータを正確に抽出することが困難なため、従来のファイルシステムよりも高いセキュリティ性を確保することができる。さらに、FATデータをクラスタデータとは別のデータベースに保存することによって、よりセキュアなファイルサーバシステムが提供される。
本発明によれば、このようにデータベースシステムにクラスタデータを暗号化し保存することで高レベルのセキュリティ機能を実現しつつ、データベースシステムの機能を利用して無停止対応や、バックアップなどの高可用性をシンプルに実現することができる。また、データベースシステムをファイルサーバとして利用するため、従来のように業務系システムとは別にファイルサーバを構築する必要がなく、システム統合による全体の維持運営コスト削減を実現することが可能となる。
本発明は、サーバをWindows(登録商標)ファイルシステムとして用いることを実現し、それによって、ユーザがサーバから必要なデータを取得して用いる場合でも、あたかもWindows(登録商標)上のドライブを使用しているような高速性と簡易性とを実感することができるシステムを提供することができる。
図1は、本発明のセキュアファイルサーバシステムの一実施形態の例示的構成を示す模式図である。
図2は、図1におけるクライアントコンピュータ11、サーバコンピュータ21、およびネットワーク31から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示したブロック図である。
図3は、本発明のセキュアファイルサーバシステムの一実施形態に含まれるクライアントコンピュータ(11,12,13)に搭載されたWindows(登録商標)アプリケーション121、Windows I/Oシステム122、仮想ディスクドライバ123、および仮想ディスク(ファイル・アロケーション・テーブル(FAT))124、ならびにサーバコンピュータ21に搭載されたサーバアプリケーション221、およびデータベース212の間の相互関係を示す。
図4は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行する初期化の処理を示すフローチャートである。
図5は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行するファイル読み出しの処理を示すフローチャートである。
図6は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行するファイル書き込みの処理を示すフローチャートである。
図7AおよびBは、サーバコンピュータ21において、サーバアプリケーション221に従って制御手段が実行する、(A):初期化およびファイル読み出し、ならびに(B):ファイル書き込みの処理を示すフローチャートである。
図2は、図1におけるクライアントコンピュータ11、サーバコンピュータ21、およびネットワーク31から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示したブロック図である。
図3は、本発明のセキュアファイルサーバシステムの一実施形態に含まれるクライアントコンピュータ(11,12,13)に搭載されたWindows(登録商標)アプリケーション121、Windows I/Oシステム122、仮想ディスクドライバ123、および仮想ディスク(ファイル・アロケーション・テーブル(FAT))124、ならびにサーバコンピュータ21に搭載されたサーバアプリケーション221、およびデータベース212の間の相互関係を示す。
図4は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行する初期化の処理を示すフローチャートである。
図5は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行するファイル読み出しの処理を示すフローチャートである。
図6は、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段が実行するファイル書き込みの処理を示すフローチャートである。
図7AおよびBは、サーバコンピュータ21において、サーバアプリケーション221に従って制御手段が実行する、(A):初期化およびファイル読み出し、ならびに(B):ファイル書き込みの処理を示すフローチャートである。
本明細書中で言及されるすべての刊行物は、刊行物がそれに関連して引用される本発明の特徴を開示および記載する目的のために本明細書中で参考として援用される。
図1は、本発明のセキュアファイルサーバシステムの一実施形態の例示的構成を示す模式図である。本発明のセキュアファイルサーバシステム1は、クライアントコンピュータ11、12、および13、これらとネットワーク31を介して接続されたサーバコンピュータ21から構成される。クライアントコンピュータの数は、1以上の任意の数であり得る。ネットワーク31は、ルータ32などを介してインターネット4と接続されている。ネットワーク31は、典型的には、例えば、企業内のイントラネット等であり得る。ここでは、ネットワーク31が外部ネットワークであるインターネット4と接続されている例を示したが、ネットワーク31は、必ずしも外部ネットワークに接続されている必要はない。また、本発明は、例えば、クライアントコンピュータ(11,12,13)とサーバコンピュータ21とがインターネットを介して接続されているような形態(例えば、サーバコンピュータ21が社外のサーバ管理会社に配置されているような形態)であってもよい。
ネットワーク31は、LAN、WAN、インターネットなどで実現することができる。ネットワーク31を介したクライアントコンピュータ(11,12,13)と、サーバコンピュータ21との通信プロトコルとしては、HTTPプロトコル、TCP/IPなどが含まれるが、とりわけHTTPプロトコルが好ましい。HTTPプロトコルを用いることによって、複雑なネットワークのポリシーの設定を行う必要がない、などの利点が得られる。
ネットワーク31を介して、データをクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信する際には、より高いセキュリティ性を実現するため、データを暗号化してもよい。使用され得る暗号化方法には特に制限はないが、対称方式(たとえば乱数により生成される暗号化キー)または非対称方式(公開鍵方式もしくは秘密鍵方式)を用いた暗号化法などが使用され得る。
本発明において、サーバコンピュータ21のデータベースは、典型的には、リレーショナルデータベースで構成される。リレーショナルデータベースとは、1件のデータを複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式を有するデータベースのことをいう。ID番号や名前などのキーとなるデータを利用して、データの結合や抽出を容易に行なうことができる。本発明においてリレーショナルデータベースを用いる利点としては、クラスタ単位でデータベースに保存するデータを、管理テーブルで管理するという本発明の方式と適合することが挙げられる。その他、本発明のサーバコンピュータのデータベースとして使用できるものとしては、IBM社のUDB(Universal DataBase)、Oracle社のOracleなどが挙げられる。
図2は、代表的な例としてクライアントコンピュータ11、サーバコンピュータ21、およびネットワーク31から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示した、ブロック図である。
クライアントコンピュータ11は、ディスプレイ、プリンタなどから構成される出力装置111、マイクロプロセッサで構成される中央処理装置(CPU)112、CPUに対する命令やデータを一時的に記憶するRAM、ROMなどで構成される主記憶装置113、ハードディスク、フロッピーディスク、MO、CD−ROM、メモリカードなどから構成される補助記憶装置114、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置115、およびネットワーク31を介した通信を可能にするためのネットワークインターフェースカード(NIC)(例えば、LANカード、LANアダプタ、LANボード、ネットワークカード)などから構成される通信装置116を備える。
サーバコンピュータ21も同様に、ディスプレイ、プリンタなどから構成される出力装置211、マイクロプロセッサで構成される中央処理装置(CPU)212、CPUに対する命令やデータを一時的に記憶するRAM、ROMなどで構成される主記憶装置213、ハードディスク、フロッピーディスク、MO、CD−ROM、メモリカードなどから構成される補助記憶装置214、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置215、およびネットワーク31を介した通信を可能にするためのネットワークインターフェースカード(NIC)(例えば、LANカード、LANアダプタ、LANボード、ネットワークカード)などから構成される通信装置216を備え、さらにクライアントコンピュータ11から送信されるデータを格納するためのデータベース212を備える。
図3は、本発明のセキュアファイルサーバシステムの一実施形態の構成をソフトウェアレベルで示したものであり、クライアントコンピュータ(11,12,13)に含まれるWindows(登録商標)アプリケーション121、Windows I/Oシステム122、仮想ディスクドライバ123、および仮想ディスク124、ならびにサーバコンピュータ21に含まれるサーバアプリケーション221、およびデータベース212の間の相互関係を示す。このように、ソフトウェアレベルでは、本発明のセキュアファイルサーバシステム110は、仮想ディスクドライバ123、仮想ディスク124、ネットワーク31、サーバアプリケーション221、およびデータベース212から構成される。仮想ディスク124には、クラスタデータを管理するファイル・アロケーション・テーブル(FAT)の情報が含まれる。「仮想ディスク」は、仮想ディスクドライバ123によりWindows(登録商標)のファイルシステムと適合するようディスクをエミュレートすることによって作成される。
クライアントコンピュータ(11,12,13)において、Windows(登録商標)アプリケーション121は、ユーザーモードで動作し、Windows(登録商標)I/Oシステム122および仮想ディスクドライバ123は、カーネルモードで動作する。ここで、カーネルモードとは、全てのシステムメモリおよび全てのCPU命令へのアクセスを許す、プロセッサが備える実行モードの1つである(例えば、インサイド Microsoft Windows 第4版 (上)および(下)(2005)、日経BPソフトプレスを参照)。
本発明において使用されるWindows(登録商標)ファイルシステムとしては、FATファイルシステム(例えば、FAT12、FAT16、およびFAT32)、およびNTFSが挙げられる。FATファイルシステムでは、複数のセクタをまとめたクラスタ(常に、セクタの大きさの倍数となっている)という単位でディスクを管理する。さらにこのクラスタを、ファイル・アロケーション・テーブル(FAT)で管理する。クラスタのサイズは、2kB、4kB、8kB、16kB、32kB、64kB、128kB等が可能である。
FATボリュームは、いくつかの領域に分割されており、FATは、ボリューム上の個々のクラスタのエントリを有している。FAT内のエントリは、ディレクトリおよびファイル用のファイルアロケーションチェインを定義する。チェイン内のリンクは、ファイルデータの次のクラスタへのインデックスとなっている。ファイルディレクトリエントリは、ファイル名、その大きさ、開始クラスタ、およびタイムスタンプ(最新アクセス日、作成日など)などの情報を記憶する。FATボリュームからのファイル読み出し時には、FATのほとんどが読み込まれ、ファイルアロケーションチェインの検索処理が行われることがある。(例えば、インサイド Microsoft Windows 第4版 (下)(2005)、日経BPソフトプレスを参照)
NTFSは、64ビットクラスタを使用して、256TBより若干少ないボリュームを管理する。NTFSは、マスタファイルテーブル(MFT)の各エントリにファイル名、タイムスタンプなどの種々の属性を格納する。データ本体などのエントリに入りきらない情報は、別の領域に保存する。MFTは、各ファイルの情報を管理するディスク上にある全てのファイルと1対1に対応している。(例えば、インサイド Microsoft Windows 第4版 (下)(2005)、日経BPソフトプレスを参照)
本明細書中、「クラスタデータ」という場合、上記FATファイルシステムまたはNTFSファイルシステムにおいて、クラスタに分割されたファイルのデータを意味する。また、本明細書中、「FATデータ」という場合、FATファイルシステムにおけるFAT内のエントリのデータを意味する。さらに、「MFTデータ」という場合、NTFSファイルシステムにおけるMFT内のエントリのデータを意味する。本発明において利用可能なFATファイルシステムまたはNTFSファイルシステムは、現在利用可能なものに限定されず、クラスタを単位としてファイルを分割してデータをやりとりしたり、データベースに保存したりすることを可能にするものであれば、将来的にバージョンアップしたFATファイルシステムまたはNTFSファイルシステムあるいはその他のファイルシステムも本発明において利用可能なファイルシステムに含まれる。
図4、図5および図6はそれぞれ、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段(CPU112)が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図4を参照し、クライアントコンピュータ(11,12,13)のCPU112が行う初期化処理について説明する。スタートにおいて待機状態にあるCPU112がステップS111でWindows I/Oから初期化の要求を受けると、ステップS112で初期化の要求をネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。次に、ステップS113でサーバコンピュータ21からネットワーク31を介して通信装置116によりFATデータを取得する。サーバコンピュータ21から送られてくるFATデータは、通常、セキュリティを考慮して暗号化されている。したがって、データが暗号化されている場合には、ステップS114において、暗号化されたデータを復号化する。また、通常、送信速度、セキュリティ性などを高めるためにクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信されるデータは、圧縮されている。したがって、データが圧縮されている場合には、ステップS115において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、ステップS116において、CPU112は、FATデータにもとづいて仮想ディスクを主記憶装置113内に作成し、ステップS117で作成した仮想ディスクの情報をWindows(登録商標)I/Oに返し、処理を終了する。
図5を参照し、クライアントコンピュータ(11,12,13)の制御手段(CPU112)が行うファイル読み出し処理について説明する。スタートにおいて待機状態にあるCPU112がステップS121でWindows(登録商標)I/Oからファイル読み出しの要求を受けると、ステップS122でその要求がFATデータのみを含むデータの読み出し要求か否かを判断する。FATデータのみを含むデータの読み出し要求である場合には(S122:YES)、ステップS123に進んで主記憶装置113内に作成されている仮想ディスクのFATデータの情報を取得し、ステップS128に進んでFATデータの情報をWindows(登録商標)I/Oシステムに返し、処理を終了する。ステップS122において、その要求がFATデータ以外のデータも含むデータの読み出し要求である場合には(S122:NO)、ステップS124に進み、ファイル読み出し要求をネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。次に、ステップS125において、サーバコンピュータ21からネットワーク31を介して送られてきたデータを通信装置116を介して取得する。データには要求されたファイルを構成するクラスタのデータ(クラスタデータ)が含まれる。サーバコンピュータ21から送られてくるデータは、通常、セキュリティを考慮して暗号化されている。したがって、ステップS126において、暗号化されたデータを復号化する。また、通常、送信速度および/またはセキュリティを高めるためにクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信されるデータは、圧縮されている。したがって、ステップS127において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、CPU112は、ステップS128において、クラスタデータを含むデータをWindows I/Oに返し、処理を終了する。
図6を参照し、クライアントコンピュータ(11,12,13)の制御手段(CPU112)が行うファイル書き込み処理について説明する。スタートにおいて待機状態にあるCPU112がステップS131でWindows(登録商標)I/Oからファイル書き込みの要求を受けると、ステップS132において、その要求がFATデータのみに関するデータの書き込み要求か否かを判断する。FATデータのみに関するデータの書き込み要求である場合(S132:YES)、ステップS133に進み、主記憶装置113内の仮想ディスク上のFATデータを更新する。次いで、ステップS138において更新の可否の情報をWindows(登録商標)I/Oに返し、処理を終了する。ステップS132でその要求がFATデータ以外のデータも含むデータに関する書き込み要求である場合には(S132:NO)、ステップS134に進み、上記データに基づいてクラスタデータを作成する。次いで、ステップS135において、データを圧縮し、ステップS136において、圧縮したデータを暗号化し、ステップS137において暗号化したデータをネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。このような暗号化、圧縮などの処理は、プログラムにより実現することができる。なお、ステップS135および/またはステップS136は省略することもできる。次いで、ステップS138において、送信の成否についての情報をWindows(登録商標)I/Oに返し、処理を終了する。
図7AおよびBは、サーバコンピュータ21において、サーバアプリケーション221に従って制御手段(CPU212)が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図7Aを参照して、サーバコンピュータ21の制御手段(CPU212)が行う初期化およびファイル読み出しの処理について説明する。スタートにおいて待機状態にあるCPU212がステップS211でクライアントコンピュータ(11,12,13)からネットワーク31を介して初期化またはファイル読み出しの要求を、通信手段(通信装置216)を介して受信する。次に、ステップS212において、データベース212にアクセスし、要求されたデータ(初期化の場合は、FATデータ、ファイル読み出しの場合はクラスタデータ)を取得する。データは、データベース212に暗号化して保存されている。したがって、ステップS213において、データベース212から取得したデータを復号化し、さらにステップS214において、送信速度、セキュリティ性の改善等のためにデータを圧縮し、ステップS215においてそのデータを暗号化する。ステップS216において暗号化したFATデータまたはクラスタデータを通信装置216によりネットワーク31を介してクライアントへ送信し、処理を終了する。なお、ステップS214およびステップS215は省略することもできる。
図7Bを参照して、サーバコンピュータ21の制御手段(CPU212)が行うファイル書き込みの処理について説明する。スタートにおいて待機状態にあるCPU212がステップS221においてクライアントコンピュータ(11,12,13)からネットワーク31を介してファイル書き込み要求およびファイルを構成するデータを通信手段(通信装置216)により受信する。クライアントコンピュータ(11,12,13)から受信するデータは通常暗号化されているため、ステップS222において、受信したデータを復号化する。また、クライアントコンピュータ(11,12,13)から受信するデータは通常圧縮されているため、ステップS223において、受信したデータを解凍する。なお、データが暗号化または圧縮されていない場合には、ステップS222またはステップS223は省略することができる。次いで、ステップS224において、そのデータをデータベースへの保存のために暗号化する。ここで、クラスタデータについては、クラスタ単位で暗号化する。データベースへ保存する際のデータの暗号化は、対称方式(たとえば乱数により生成される暗号化キー)または非対称方式(公開鍵方式もしくは秘密鍵方式)を用いた暗号化法などによって行うことができる。次いで、ステップS225でその暗号化したクラスタデータおよびFATデータをデータベース212に保存する。クラスタデータはクラスタ単位で暗号化してデータベース212に保存され、各クラスタの位置はディスク上にランダムに割り当てられるため、不正ユーザによる閲覧、改ざん、取得などに対してよりセキュアなサーバシステムが提供される。ここで、このシステムのセキュリティ性をさらに高めるために、データベース212において、クラスタデータ用のデータベースとFATデータ用のデータベースとを別々に設け、暗号化したこれらのデータをそれぞれのデータベースに別々に保存してもよい。それによって、不正ユーザが侵入した場合でも、クラスタデータのみにアクセスしただけでは元のファイルを復元することは不可能であり、よりセキュリティ性を高めることができる。
本明細書記載の処理動作を実現するためのプログラムは、コピュータ読みとり可能な記録媒体(例:半導体メモリ、フレキシブルディスク、ハードディスク等または光読出手段(例:CD−ROM、DVD))に格納した製品としてユーザに供給することができる他、プログラム情報を搬送波として伝播させて供給するためのコンピュータネットワーク(LAN、インターネット等のWAN、無線通信ネットワーク等)を介してユーザに供給することもできる。
図1は、本発明のセキュアファイルサーバシステムの一実施形態の例示的構成を示す模式図である。本発明のセキュアファイルサーバシステム1は、クライアントコンピュータ11、12、および13、これらとネットワーク31を介して接続されたサーバコンピュータ21から構成される。クライアントコンピュータの数は、1以上の任意の数であり得る。ネットワーク31は、ルータ32などを介してインターネット4と接続されている。ネットワーク31は、典型的には、例えば、企業内のイントラネット等であり得る。ここでは、ネットワーク31が外部ネットワークであるインターネット4と接続されている例を示したが、ネットワーク31は、必ずしも外部ネットワークに接続されている必要はない。また、本発明は、例えば、クライアントコンピュータ(11,12,13)とサーバコンピュータ21とがインターネットを介して接続されているような形態(例えば、サーバコンピュータ21が社外のサーバ管理会社に配置されているような形態)であってもよい。
ネットワーク31は、LAN、WAN、インターネットなどで実現することができる。ネットワーク31を介したクライアントコンピュータ(11,12,13)と、サーバコンピュータ21との通信プロトコルとしては、HTTPプロトコル、TCP/IPなどが含まれるが、とりわけHTTPプロトコルが好ましい。HTTPプロトコルを用いることによって、複雑なネットワークのポリシーの設定を行う必要がない、などの利点が得られる。
ネットワーク31を介して、データをクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信する際には、より高いセキュリティ性を実現するため、データを暗号化してもよい。使用され得る暗号化方法には特に制限はないが、対称方式(たとえば乱数により生成される暗号化キー)または非対称方式(公開鍵方式もしくは秘密鍵方式)を用いた暗号化法などが使用され得る。
本発明において、サーバコンピュータ21のデータベースは、典型的には、リレーショナルデータベースで構成される。リレーショナルデータベースとは、1件のデータを複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式を有するデータベースのことをいう。ID番号や名前などのキーとなるデータを利用して、データの結合や抽出を容易に行なうことができる。本発明においてリレーショナルデータベースを用いる利点としては、クラスタ単位でデータベースに保存するデータを、管理テーブルで管理するという本発明の方式と適合することが挙げられる。その他、本発明のサーバコンピュータのデータベースとして使用できるものとしては、IBM社のUDB(Universal DataBase)、Oracle社のOracleなどが挙げられる。
図2は、代表的な例としてクライアントコンピュータ11、サーバコンピュータ21、およびネットワーク31から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示した、ブロック図である。
クライアントコンピュータ11は、ディスプレイ、プリンタなどから構成される出力装置111、マイクロプロセッサで構成される中央処理装置(CPU)112、CPUに対する命令やデータを一時的に記憶するRAM、ROMなどで構成される主記憶装置113、ハードディスク、フロッピーディスク、MO、CD−ROM、メモリカードなどから構成される補助記憶装置114、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置115、およびネットワーク31を介した通信を可能にするためのネットワークインターフェースカード(NIC)(例えば、LANカード、LANアダプタ、LANボード、ネットワークカード)などから構成される通信装置116を備える。
サーバコンピュータ21も同様に、ディスプレイ、プリンタなどから構成される出力装置211、マイクロプロセッサで構成される中央処理装置(CPU)212、CPUに対する命令やデータを一時的に記憶するRAM、ROMなどで構成される主記憶装置213、ハードディスク、フロッピーディスク、MO、CD−ROM、メモリカードなどから構成される補助記憶装置214、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置215、およびネットワーク31を介した通信を可能にするためのネットワークインターフェースカード(NIC)(例えば、LANカード、LANアダプタ、LANボード、ネットワークカード)などから構成される通信装置216を備え、さらにクライアントコンピュータ11から送信されるデータを格納するためのデータベース212を備える。
図3は、本発明のセキュアファイルサーバシステムの一実施形態の構成をソフトウェアレベルで示したものであり、クライアントコンピュータ(11,12,13)に含まれるWindows(登録商標)アプリケーション121、Windows I/Oシステム122、仮想ディスクドライバ123、および仮想ディスク124、ならびにサーバコンピュータ21に含まれるサーバアプリケーション221、およびデータベース212の間の相互関係を示す。このように、ソフトウェアレベルでは、本発明のセキュアファイルサーバシステム110は、仮想ディスクドライバ123、仮想ディスク124、ネットワーク31、サーバアプリケーション221、およびデータベース212から構成される。仮想ディスク124には、クラスタデータを管理するファイル・アロケーション・テーブル(FAT)の情報が含まれる。「仮想ディスク」は、仮想ディスクドライバ123によりWindows(登録商標)のファイルシステムと適合するようディスクをエミュレートすることによって作成される。
クライアントコンピュータ(11,12,13)において、Windows(登録商標)アプリケーション121は、ユーザーモードで動作し、Windows(登録商標)I/Oシステム122および仮想ディスクドライバ123は、カーネルモードで動作する。ここで、カーネルモードとは、全てのシステムメモリおよび全てのCPU命令へのアクセスを許す、プロセッサが備える実行モードの1つである(例えば、インサイド Microsoft Windows 第4版 (上)および(下)(2005)、日経BPソフトプレスを参照)。
本発明において使用されるWindows(登録商標)ファイルシステムとしては、FATファイルシステム(例えば、FAT12、FAT16、およびFAT32)、およびNTFSが挙げられる。FATファイルシステムでは、複数のセクタをまとめたクラスタ(常に、セクタの大きさの倍数となっている)という単位でディスクを管理する。さらにこのクラスタを、ファイル・アロケーション・テーブル(FAT)で管理する。クラスタのサイズは、2kB、4kB、8kB、16kB、32kB、64kB、128kB等が可能である。
FATボリュームは、いくつかの領域に分割されており、FATは、ボリューム上の個々のクラスタのエントリを有している。FAT内のエントリは、ディレクトリおよびファイル用のファイルアロケーションチェインを定義する。チェイン内のリンクは、ファイルデータの次のクラスタへのインデックスとなっている。ファイルディレクトリエントリは、ファイル名、その大きさ、開始クラスタ、およびタイムスタンプ(最新アクセス日、作成日など)などの情報を記憶する。FATボリュームからのファイル読み出し時には、FATのほとんどが読み込まれ、ファイルアロケーションチェインの検索処理が行われることがある。(例えば、インサイド Microsoft Windows 第4版 (下)(2005)、日経BPソフトプレスを参照)
NTFSは、64ビットクラスタを使用して、256TBより若干少ないボリュームを管理する。NTFSは、マスタファイルテーブル(MFT)の各エントリにファイル名、タイムスタンプなどの種々の属性を格納する。データ本体などのエントリに入りきらない情報は、別の領域に保存する。MFTは、各ファイルの情報を管理するディスク上にある全てのファイルと1対1に対応している。(例えば、インサイド Microsoft Windows 第4版 (下)(2005)、日経BPソフトプレスを参照)
本明細書中、「クラスタデータ」という場合、上記FATファイルシステムまたはNTFSファイルシステムにおいて、クラスタに分割されたファイルのデータを意味する。また、本明細書中、「FATデータ」という場合、FATファイルシステムにおけるFAT内のエントリのデータを意味する。さらに、「MFTデータ」という場合、NTFSファイルシステムにおけるMFT内のエントリのデータを意味する。本発明において利用可能なFATファイルシステムまたはNTFSファイルシステムは、現在利用可能なものに限定されず、クラスタを単位としてファイルを分割してデータをやりとりしたり、データベースに保存したりすることを可能にするものであれば、将来的にバージョンアップしたFATファイルシステムまたはNTFSファイルシステムあるいはその他のファイルシステムも本発明において利用可能なファイルシステムに含まれる。
図4、図5および図6はそれぞれ、クライアントコンピュータ(11,12,13)において、仮想ディスクドライバ123に従って制御手段(CPU112)が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図4を参照し、クライアントコンピュータ(11,12,13)のCPU112が行う初期化処理について説明する。スタートにおいて待機状態にあるCPU112がステップS111でWindows I/Oから初期化の要求を受けると、ステップS112で初期化の要求をネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。次に、ステップS113でサーバコンピュータ21からネットワーク31を介して通信装置116によりFATデータを取得する。サーバコンピュータ21から送られてくるFATデータは、通常、セキュリティを考慮して暗号化されている。したがって、データが暗号化されている場合には、ステップS114において、暗号化されたデータを復号化する。また、通常、送信速度、セキュリティ性などを高めるためにクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信されるデータは、圧縮されている。したがって、データが圧縮されている場合には、ステップS115において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、ステップS116において、CPU112は、FATデータにもとづいて仮想ディスクを主記憶装置113内に作成し、ステップS117で作成した仮想ディスクの情報をWindows(登録商標)I/Oに返し、処理を終了する。
図5を参照し、クライアントコンピュータ(11,12,13)の制御手段(CPU112)が行うファイル読み出し処理について説明する。スタートにおいて待機状態にあるCPU112がステップS121でWindows(登録商標)I/Oからファイル読み出しの要求を受けると、ステップS122でその要求がFATデータのみを含むデータの読み出し要求か否かを判断する。FATデータのみを含むデータの読み出し要求である場合には(S122:YES)、ステップS123に進んで主記憶装置113内に作成されている仮想ディスクのFATデータの情報を取得し、ステップS128に進んでFATデータの情報をWindows(登録商標)I/Oシステムに返し、処理を終了する。ステップS122において、その要求がFATデータ以外のデータも含むデータの読み出し要求である場合には(S122:NO)、ステップS124に進み、ファイル読み出し要求をネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。次に、ステップS125において、サーバコンピュータ21からネットワーク31を介して送られてきたデータを通信装置116を介して取得する。データには要求されたファイルを構成するクラスタのデータ(クラスタデータ)が含まれる。サーバコンピュータ21から送られてくるデータは、通常、セキュリティを考慮して暗号化されている。したがって、ステップS126において、暗号化されたデータを復号化する。また、通常、送信速度および/またはセキュリティを高めるためにクライアントコンピュータ(11,12,13)とサーバコンピュータ21との間で送受信されるデータは、圧縮されている。したがって、ステップS127において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、CPU112は、ステップS128において、クラスタデータを含むデータをWindows I/Oに返し、処理を終了する。
図6を参照し、クライアントコンピュータ(11,12,13)の制御手段(CPU112)が行うファイル書き込み処理について説明する。スタートにおいて待機状態にあるCPU112がステップS131でWindows(登録商標)I/Oからファイル書き込みの要求を受けると、ステップS132において、その要求がFATデータのみに関するデータの書き込み要求か否かを判断する。FATデータのみに関するデータの書き込み要求である場合(S132:YES)、ステップS133に進み、主記憶装置113内の仮想ディスク上のFATデータを更新する。次いで、ステップS138において更新の可否の情報をWindows(登録商標)I/Oに返し、処理を終了する。ステップS132でその要求がFATデータ以外のデータも含むデータに関する書き込み要求である場合には(S132:NO)、ステップS134に進み、上記データに基づいてクラスタデータを作成する。次いで、ステップS135において、データを圧縮し、ステップS136において、圧縮したデータを暗号化し、ステップS137において暗号化したデータをネットワーク31を介してサーバコンピュータ21へ通信手段(通信装置116)により送信する。このような暗号化、圧縮などの処理は、プログラムにより実現することができる。なお、ステップS135および/またはステップS136は省略することもできる。次いで、ステップS138において、送信の成否についての情報をWindows(登録商標)I/Oに返し、処理を終了する。
図7AおよびBは、サーバコンピュータ21において、サーバアプリケーション221に従って制御手段(CPU212)が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図7Aを参照して、サーバコンピュータ21の制御手段(CPU212)が行う初期化およびファイル読み出しの処理について説明する。スタートにおいて待機状態にあるCPU212がステップS211でクライアントコンピュータ(11,12,13)からネットワーク31を介して初期化またはファイル読み出しの要求を、通信手段(通信装置216)を介して受信する。次に、ステップS212において、データベース212にアクセスし、要求されたデータ(初期化の場合は、FATデータ、ファイル読み出しの場合はクラスタデータ)を取得する。データは、データベース212に暗号化して保存されている。したがって、ステップS213において、データベース212から取得したデータを復号化し、さらにステップS214において、送信速度、セキュリティ性の改善等のためにデータを圧縮し、ステップS215においてそのデータを暗号化する。ステップS216において暗号化したFATデータまたはクラスタデータを通信装置216によりネットワーク31を介してクライアントへ送信し、処理を終了する。なお、ステップS214およびステップS215は省略することもできる。
図7Bを参照して、サーバコンピュータ21の制御手段(CPU212)が行うファイル書き込みの処理について説明する。スタートにおいて待機状態にあるCPU212がステップS221においてクライアントコンピュータ(11,12,13)からネットワーク31を介してファイル書き込み要求およびファイルを構成するデータを通信手段(通信装置216)により受信する。クライアントコンピュータ(11,12,13)から受信するデータは通常暗号化されているため、ステップS222において、受信したデータを復号化する。また、クライアントコンピュータ(11,12,13)から受信するデータは通常圧縮されているため、ステップS223において、受信したデータを解凍する。なお、データが暗号化または圧縮されていない場合には、ステップS222またはステップS223は省略することができる。次いで、ステップS224において、そのデータをデータベースへの保存のために暗号化する。ここで、クラスタデータについては、クラスタ単位で暗号化する。データベースへ保存する際のデータの暗号化は、対称方式(たとえば乱数により生成される暗号化キー)または非対称方式(公開鍵方式もしくは秘密鍵方式)を用いた暗号化法などによって行うことができる。次いで、ステップS225でその暗号化したクラスタデータおよびFATデータをデータベース212に保存する。クラスタデータはクラスタ単位で暗号化してデータベース212に保存され、各クラスタの位置はディスク上にランダムに割り当てられるため、不正ユーザによる閲覧、改ざん、取得などに対してよりセキュアなサーバシステムが提供される。ここで、このシステムのセキュリティ性をさらに高めるために、データベース212において、クラスタデータ用のデータベースとFATデータ用のデータベースとを別々に設け、暗号化したこれらのデータをそれぞれのデータベースに別々に保存してもよい。それによって、不正ユーザが侵入した場合でも、クラスタデータのみにアクセスしただけでは元のファイルを復元することは不可能であり、よりセキュリティ性を高めることができる。
本明細書記載の処理動作を実現するためのプログラムは、コピュータ読みとり可能な記録媒体(例:半導体メモリ、フレキシブルディスク、ハードディスク等または光読出手段(例:CD−ROM、DVD))に格納した製品としてユーザに供給することができる他、プログラム情報を搬送波として伝播させて供給するためのコンピュータネットワーク(LAN、インターネット等のWAN、無線通信ネットワーク等)を介してユーザに供給することもできる。
本発明は、アプリケーションによる制限を最小化し、かつ高いセキュリティ性、業務効率、運用コストの削減等を確保することができるセキュアなファイルサーバシステムとして用いることができる。
Claims (20)
- Windows(登録商標)オペレーティングシステムを使用するクライアントコンピュータと、
前記クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムであって、
前記クライアントコンピュータは、
前記ネットワークを介して前記サーバコンピュータと通信するための通信手段と、
Windows I/Oシステムからの初期化、ファイル読み出し、またはファイル書き込みの要求に応じて、前記初期化もしくはファイル読み出し要求または前記ファイル書き込み要求および書き込みデータを前記通信手段を介して前記サーバコンピュータに送信し、前記初期化要求または前記ファイル読み出し要求に応じて前記サーバコンピュータから送信されたデータを前記通信手段を介して受信するように該クライアントコンピュータを制御するための制御手段と、を少なくとも備え、
前記サーバコンピュータは、
前記ネットワークを介して前記クライアントコンピュータと通信するための通信手段と、
前記通信手段を介して受信した前記クライアントコンピュータからの前記書き込みデータを前記データベースに保存するか、または前記クライアントコンピュータからの初期化要求もしくは読み出し要求に応じて要求されたデータを前記データベースから取得して、前記通信手段を介して前記クライアントコンピュータに送信するように該サーバコンピュータを制御するための制御手段と、を少なくとも備え、
前記ネットワークを介して送受信される前記書き込みデータまたは前記読み出しデータは、クラスタ単位に分割されたデータ(クラスタデータ)を含み、
前記クラスタデータは、クラスタ単位で暗号化されて前記データベースに保存される、セキュアファイルサーバシステム。 - 前記書き込みデータはさらに、前記クラスタデータに関連するファイル・アロケーション・テーブル(FAT)のデータを含む、請求項1に記載のセキュアファイルサーバシステム。
- 前記FATデータが、前記クラスタデータとは異なるデータベースに保存される、請求項2に記載のセキュアファイルサーバシステム。
- 前記ネットワークを介して送受信するデータが暗号化されている、請求項1〜3のいずれかに記載のセキュアファイルサーバシステム。
- 前記ネットワークがイントラネットである、請求項1〜4のいずれかに記載のセキュアファイルサーバシステム。
- 前記ネットワークの通信プロトコルが、HTTPプロトコルである、請求項1〜5のいずれかに記載のセキュアファイルサーバシステム。
- 前記Windows(登録商標)オペレーティングシステムが、FAT32ファイルシステムを使用する、請求項1〜6のいずれかに記載のセキュアファイルサーバシステム。
- 前記Windows(登録商標)オペレーティングシステムが、NTFSを使用する、請求項1に記載のセキュアファイルサーバシステム。
- 請求項1〜7のいずれかに記載のセキュアファイルサーバシステムにおいて、クライアントコンピュータに搭載されるコンピュータプログラムであって、
Windows(登録商標)のI/Oシステムからの要求に応じて、前記クライアントコンピュータに以下の処理:
(i)前記要求が初期化である場合には、
前記初期化の要求をサーバコンピュータへ送信するステップと、
前記サーバコンピュータからFATデータを取得するステップと、
前記取得したFATデータに基づいて仮想ディスクを作成するステップと、
前記仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(ii)前記要求がファイル読み出しである場合には、
読み出しデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
前記FATデータを仮想ディスクから取得するステップと、
取得した仮想ディスクの情報をWindows I/Oシステムに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
ファイル読み出し要求をサーバコンピュータに送信するステップと、
前記サーバコンピュータから読み出しデータを受信するステップと、
前記受信した読み出しデータをWindows I/Oへ返すステップとを含む処理、または
(iii)前記要求がファイル書き込みである場合には、
書き込みデータがFATデータのみを含むデータであるか否かを判断するステップと、
(a)FATデータのみを含むデータである場合には、
仮想ディスクのFATデータを更新するステップと、
前記更新の成否の情報をWindows I/Oに返すステップとを含む処理、
(b)FATデータ以外も含むデータである場合には、
前記データに基づいてクラスタデータを作成するステップと、
前記クラスタデータを含むデータをサーバコンピュータに送信するステップと、
前記送信の成否の情報をWindows I/Oに返すステップとを含む処理、
を実行させるための、コンピュータプログラム。 - 請求項9に記載のコンピュータプログラムであって、
前記(i)の処理が、前記サーバコンピュータからFATデータを取得するステップの後に、さらに、以下のステップ:
前記取得したデータが暗号化されている場合には、前記暗号化されているデータを復号化するステップ、および
前記取得したデータが圧縮されている場合には、前記データを解凍するステップ、
を含む、コンピュータプログラム。 - 請求項9に記載のコンピュータプログラムであって、
前記(ii)(b)の処理が、前記サーバコンピュータから読み出しデータを受信するステップの後に、さらに、以下のステップ:
前記データが暗号化されている場合には、前記データを復号化するステップ、および
前記データが圧縮されている場合には、前記データを解凍するステップ、
を含む、コンピュータプログラム。 - 請求項9に記載のコンピュータプログラムであって、
前記(iii)(b)の処理が、前記クラスタデータを作成するステップの後に、さらに、
前記クラスタデータを圧縮するステップ、および/または
前記クラスタデータを暗号化するステップ、
を含む、コンピュータプログラム。 - 請求項9に記載のコンピュータプログラムであって、
前記(iii)(b)の処理において、前記クラスタデータを含むデータがさらにFATデータを含む、コンピュータプログラム。 - 請求項1〜7のいずれかに記載のセキュアファイルサーバシステムにおいて、サーバコンピュータに搭載されるコンピュータプログラムであって、
前記クライアントコンピュータからの要求に応じて、前記サーバコンピュータに以下の処理:
(i)前記要求が初期化である場合には、
FATデータを前記データベースから取得するステップと、
前記データを復号化するステップと、
前記データをクライアントコンピュータに送信するステップとを含む処理、
(ii)前記要求がファイル読み出しである場合には、
読み出しデータを前記データベースから取得するステップと、
前記読み出しデータを復号化するステップと、
前記読み出しデータをクライアントコンピュータに送信するステップとを含む処理、
(iii)前記要求がファイル書き込みである場合には、
書き込みデータをクライアントコンピュータから受信するステップと、
前記受信した書き込みデータを暗号化するステップと、
前記暗号化した書き込みデータを前記データベースに保存するステップとを含む処理、
を実行させるための、コンピュータプログラム。 - 請求項14に記載のコンピュータプログラムであって、
前記(i)の処理が、前記データを復号化するステップの後に、さらに、
前記データを圧縮するステップ、および/または
前記データを暗号化するステップ、
を含む、コンピュータプログラム。 - 請求項14に記載のコンピュータプログラムであって、
前記(ii)の処理が、前記データを復号化するステップの後に、さらに、
前記データを圧縮するステップ、および/または
前記データを暗号化するステップ、
を含む、コンピュータプログラム。 - 請求項14に記載のコンピュータプログラムであって、
前記(iii)の処理が、前記書き込みデータを前記クライアントコンピュータから受信するステップの後に、さらに、
前記データが暗号化されている場合には、前記データを復号化するステップ、および
前記データが圧縮されている場合には、前記データを解凍するステップ、
をさらに含む、コンピュータプログラム。 - 請求項14に記載のコンピュータプログラムであって、
前記(iii)の処理において、
前記受信した書き込みデータを暗号化するステップが、FATデータとクラスタデータとを別々に暗号化することを含み、該クラスタデータはクラスタ単位で暗号化され、
前記暗号化した書き込みデータを前記データベースに保存するステップが、前記暗号化したFATデータを、前記暗号化したクラスタデータとは異なるデータベースに保存することを含む、コンピュータプログラム。 - 請求項9〜13のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
- 請求項14〜18のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/324307 WO2008065725A1 (fr) | 2006-11-29 | 2006-11-29 | Système serveur de fichiers sécurisés |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2008065725A1 true JPWO2008065725A1 (ja) | 2010-03-04 |
Family
ID=39467529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008546863A Pending JPWO2008065725A1 (ja) | 2006-11-29 | 2006-11-29 | セキュアファイルサーバシステム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2008065725A1 (ja) |
WO (1) | WO2008065725A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5304229B2 (ja) * | 2008-12-25 | 2013-10-02 | 富士通株式会社 | 端末装置 |
KR101526515B1 (ko) * | 2010-07-02 | 2015-06-05 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 의사 랜덤 수열을 이용하여 데이터를 저장하기 위한 장치 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006293583A (ja) * | 2005-04-08 | 2006-10-26 | Hitachi Ltd | ファイル管理方法 |
-
2006
- 2006-11-29 WO PCT/JP2006/324307 patent/WO2008065725A1/ja active Application Filing
- 2006-11-29 JP JP2008546863A patent/JPWO2008065725A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2008065725A1 (fr) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110100228B (zh) | 利用云对象存储的文件系统层次结构的高效增量备份和恢复 | |
US8805951B1 (en) | Virtual machines and cloud storage caching for cloud computing applications | |
US9767070B2 (en) | Storage system with a memory blade that generates a computational result for a storage device | |
JP4456909B2 (ja) | バックアップ方法、ストレージシステム及びそのプログラム | |
TWI544333B (zh) | 用於備份應用程式的儲存器結構之方法、電腦儲存媒體及系統 | |
CN1822004B (zh) | 使用文件系统将文件自动备份为世代文件的系统和方法 | |
US8301909B2 (en) | System and method for managing external storage devices | |
CN112889054B (zh) | 多租户数据库管理系统中数据库加密的系统和方法 | |
US8990228B2 (en) | Systems and methods for arbitrary data transformations | |
JP2012083803A (ja) | ストレージ装置、データ複写方法およびストレージシステム | |
US10846270B2 (en) | Nearline cloud storage based on fuse framework | |
US20100241619A1 (en) | Backup apparatus with higher security and lower network bandwidth consumption | |
JP4722519B2 (ja) | 計算機システム及びストレージサーバ、検索サーバ、端末装置並びに検索方法 | |
JPWO2008065725A1 (ja) | セキュアファイルサーバシステム | |
US10019383B2 (en) | Rotatable-key encrypted volumes in a multi-tier disk partition system | |
JP2009258922A (ja) | 多地点のコンピュータ管理システム及び方法 | |
JP5090149B2 (ja) | データベースを管理する方法、装置及びシステム | |
JP2014215686A (ja) | データ移行方法、この方法に用いるスクリプトの生成方法、及び情報処理装置 |