(57)【特許請求の範囲】
【請求項１】
クラスタ単位で情報を管理する、ＦＡＴ領域、ディレクトリエントリ領域、およびデータ領域を含むファイルシステムにおいて一部のデータ領域を隠蔽領域として設定し、前記設定された隠蔽領域に対するアクセスを制御する隠蔽領域管理装置であって、
前記データ領域のうち一部領域を隠蔽領域として設定し、隠蔽領域と一般領域とを区別するクラスタ識別情報を含むクラスタ番号を記録する第１フィールドと、前記設定された隠蔽領域のルートディレクトリの最初のクラスタ番号を記録する第２フィールドと、所定の値が記録され、前記記録された値が変更される場合、前記第１フィールドまたは前記第２フィールドが有効でないことを示す少なくとも１つ以上の署名とを含むが、下位ディレクトリを辿るための情報は含まないメタデータを前記データ領域に記録する隠蔽領域生成部と、
ディスクボリュームがマウントされる時に前記ボリュームに隠蔽領域が存在するか否かを判断し、隠蔽領域が存在する場合には、前記メタデータをメモリにロードする初期化部と、
前記メタデータに含まれる署名を用いて前記隠蔽領域が存在するか否かを判断する隠蔽領域判断部と、
前記隠蔽領域のルートディレクトリのディレクトリエントリを前記ディレクトリエントリ領域に含ませ、前記メタデータが記録されたクラスタを空きクラスタとすることによって隠蔽領域の設定を解除する隠蔽領域解除部と、
前記隠蔽領域が設定された場合に前記隠蔽領域に対するアクセスを許容または遮断するアクセス制御部とを含む隠蔽領域管理装置。
【請求項２】
現在割り当てられた隠蔽領域が全て用いられた場合に、追加的に隠蔽領域を割り当てる隠蔽領域割当部をさらに含む請求項１に記載の隠蔽領域管理装置。
【請求項３】
前記隠蔽領域解除部は、
前記第２フィールドに記録された最初のクラスタ番号を前記ディレクトリエントリ領域に記録する請求項１に記載の隠蔽領域管理装置。
【請求項４】
前記隠蔽領域生成部は、
前記第１フィールドに記録されたクラスタ番号にマッピングされるクラスタに、前記クラスタ識別情報を各クラスタ毎に１ビットで表わす請求項１に記載の隠蔽領域管理装置。
【請求項５】
前記アクセス制御部は、
前記隠蔽領域が設定された場合、アプリケーションから前記ＦＡＴ領域のうち隠蔽クラスタ番号に対するアクセスが試みられる場合には、前記アプリケーションにバッドクラスタ表示を出力する請求項１に記載の隠蔽領域管理装置。
【請求項６】
前記アクセス制御部は、
アプリケーションから前記データ領域のうち隠蔽クラスタまたは隠蔽セクタに対する直接アクセスがある場合には、そのアクセスを遮断する請求項１に記載の隠蔽領域管理装置。
【請求項７】
前記アクセス制御部は、
前記メタデータを用いて正常にアクセスが行われる場合には、そのアクセスを許容する請求項１に記載の隠蔽領域管理装置。
【請求項８】
前記隠蔽領域判断部は、
前記署名が所定の値で変更されず、前記メタデータに含まれる第１フィールドおよび第２フィールドに含まれたクラスタ番号が、クラスタ範囲に含まれる場合に前記隠蔽領域が存在しないと判断する請求項１に記載の隠蔽領域管理装置。
【請求項９】
前記メタデータが記録されるクラスタは、前記データ領域のうち最後のクラスタである請求項１に記載の隠蔽領域管理装置。
【請求項１０】
前記メタデータが記録されるクラスタは、前記データ領域のうち固定された位置に存在する請求項１に記載の隠蔽領域管理装置。
【請求項１１】
クラスタ単位で情報を管理する、ＦＡＴ領域、ディレクトリエントリ領域、およびデータ領域を含むファイルシステムにおいて一部のデータ領域を隠蔽領域として設定し、前記設定された隠蔽領域に対するアクセスを制御する隠蔽領域管理方法であって、
前記データ領域のうち一部領域を隠蔽領域として設定するステップと、
前記隠蔽領域と一般領域とを区別するクラスタ識別情報を含むクラスタ番号を記録する第１フィールドと、前記設定された隠蔽領域のルートディレクトリの最初のクラスタ番号を記録する第２フィールドと、所定の値で記録され、前記記録された値が変更される場合、前記第１フィールドまたは前記第２フィールドが有効でないことを示す少なくとも１つ以上の署名とを含むが、下位ディレクトリを辿るための情報は含まないメタデータを前記データ領域に記録するステップと、
ディスクボリュームがマウントされる時に前記ボリュームに隠蔽領域が存在するか否かを判断するステップと、
前記判断の結果、隠蔽領域が存在する場合には、前記メタデータをメモリにロードするステップとを含み、
前記判断するステップは、前記メタデータに含まれる署名を用いて前記隠蔽領域が存在するか否かを判断するステップを含み、
前記方法は、さらに、
前記記録されたメタデータを用いて前記設定された隠蔽領域に対するアクセスを許容または遮断するステップとを含む隠蔽領域管理方法。
【請求項１２】
前記隠蔽領域のルートディレクトリのディレクトリエントリを前記ディレクトリエントリ領域に含めるステップと、
前記メタデータが記録されたクラスタを空きクラスタとするステップとをさらに含む請求項１１に記載の隠蔽領域管理方法。
【請求項１３】
現在割り当てられた隠蔽領域が全て用いられた場合に、追加的に隠蔽領域を割り当てるステップをさらに含む請求項１１に記載の隠蔽領域管理方法。
【請求項１４】
前記隠蔽領域のルートディレクトリのディレクトリエントリは、前記隠蔽領域のルートディレクトリの下位ディレクトリまたはファイルのディレクトリエントリを最初のクラスタ番号を前記ディレクトリエントリ領域に記録するステップを含む請求項１２に記載の隠蔽領域管理方法。
【請求項１５】
前記許容または遮断するステップは、
アプリケーションから前記ＦＡＴ領域のうち隠蔽クラスタ番号に対するアクセスが試みられる場合には、前記アプリケーションにバッドクラスタ表示を出力するステップを含む請求項１１に記載の隠蔽領域管理方法。
【請求項１６】
前記許容または遮断するステップは、
アプリケーションから前記データ領域のうち隠蔽クラスタまたは隠蔽セクタに対する直接アクセスがある場合には、そのアクセスを遮断するステップを含む請求項１１に記載の隠蔽領域管理方法。
【請求項１７】
前記許容または遮断するステップは、
前記メタデータを用いて正常にアクセスが行われる場合には、そのアクセスを許容するステップを含む請求項１１に記載の隠蔽領域管理方法。
【請求項１８】
前記判断するステップは、
前記署名が所定の値で変更されず、前記メタデータに含まれる第１フィールドおよび第２フィールドに含まれたクラスタ番号が、クラスタ範囲に含まれる場合に前記隠蔽領域が存在しないと判断するステップを含む請求項１１に記載の隠蔽領域管理方法。
【請求項１９】
前記メタデータが記録されるクラスタは、前記データ領域のうち最後のクラスタである請求項１１に記載の隠蔽領域管理方法。
【請求項２０】
前記メタデータが記録されるクラスタは、前記データ領域のうち固定された位置に存在する請求項１１に記載の隠蔽領域管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムに関し、より詳しくは、既存のファイルシステムの互換性に影響を与えず、特定ディレクトリを隠す方法に関するものである。
【背景技術】
【０００２】
一般に、オペレーティングシステム（ＯＳ）は、自身が設置されたシステム上に存在するデータを管理するためにファイルシステムを用いる。前記ファイルシステムというファイルを管理するために最初に構成されなければならない論理的な構造である。例えば、マイクロソフトウィンドウズ（登録商標）におけるフォーマット命令は、このようなファイルシステムを作って初期化する過程である。このようにファイルシステムが生成された後に、ユーザは始めてファイルを格納したり削除したりすることができるようになる。
【０００３】
ところで、ファイルシステムは、オペレーティングシステムに応じてその種類が非常に多様である。ウィンドウズ（登録商標）系列のオペレーティングシステムでは、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）またはＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）というファイルシステムが、Ｕｎｉｘ（登録商標）／Ｌｉｎｕｘ（登録商標）系列のオペレーティングシステムでは、ＵＦＳ（Ｕｎｉｘ（登録商標）Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＥＸＴ２（Ｅｘｔｅｎｄｅｄ  ２）、ＥＸＴ３（Ｅｘｔｅｎｄｅｄ  ３）、ＪＦＳ（ｊｏｕｒｎａｌｅｄ  ｆｉｌｅ  ｓｙｓｔｅｍ）など多様なファイルシステムが存在する。これら各ファイルシステム毎にデータの暗号化、データの圧縮など多様な付加的な機能を提供している。
【０００４】
ファイルを格納して管理するための従来のファイルシステムは、大きく２つの領域で構成されている。１つはファイルの実際データが格納されているデータ領域であり、他の１つはこのファイルの情報が格納されている情報領域である。情報領域にはファイルの属性、権限、名称、ファイルの位置情報などが格納される。
【０００５】
特に、ＦＡＴファイルシステム（ＦＡＴ１２、ＦＡＴ１６、ＦＡＴ３２など）は、ファイルやディレクトリにアクセスするために親ディレクトリの情報を用いる。この時、親ディレクトリや探そうとするディレクトリ、またはファイルが隠蔽領域にあるかを隠蔽領域管理者に要請するようになり、隠蔽領域にある場合には、正常なＦＡＴファイルシステムの動作方式のように物理格納装置からその情報を読み込むのではなく、隠蔽領域管理者に存在する情報を用いるようになる。
【０００６】
図１は、ＦＡＴファイルシステム５の概略的な構成を示す図面である。前記ファイルシステム５は、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）領域１と、ＦＡＴ領域２と、ディレクトリエントリ領域３とデータ領域４とからなる。この内、ＭＢＲ領域１、ＦＡＴ領域２、およびディレクトリエントリ領域３は、ファイルシステム５の情報領域に該当する。
【０００７】
ＭＢＲ領域１は、オペレーティングシステムに関わらず共通に存在する部分であり、一般的にハードディスクのような物理的格納媒体の最初の部分に位置する。ＭＢＲ領域１は、パーティションに対する情報とブートに関与する実行コードとを含んでいる。
【０００８】
ＦＡＴファイルシステム５上に存在する１つのファイルを読み取るためには次のような段階を経なければならない。先ず、ファイル名および拡張子によって、ディレクトリエントリ領域３から該当ファイル名の最初のクラスタ番号を読み取る。そして、前記最初のクラスタ番号によってＦＡＴ領域２に記録された位置情報から特定データが格納されているクラスタを接続して、データ領域に散在されているデータを読み取る。
【０００９】
逆に、ファイルシステムにファイルを格納する過程を説明すれば、先ず、格納するファイルの情報を情報領域に格納する。この時、ファイルのサイズ、最初のクラスタ番号などの情報はディレクトリエントリ領域３に、データの位置情報はＦＡＴ領域２に格納する。その次に、ファイルの実際データをデータ領域４に格納する。ＦＡＴ以外のファイルシステムも基本的にはこのように情報領域とデータ領域とで分れてファイルが管理される。
【００１０】
最近、個人情報や重要なデータの流出を防ぐために、モバイル機器または内装型機器で保安に対する要求事項が増加している。しかし、現在このような機器で多く用いられているＦＡＴファイルシステムには、特定ファイルやフォルダをファイルシステムレベルにおいて隠す機能が存在しない。
【００１１】
勿論、一般的なＦＡＴファイルシステムにおいても、ファイルやディレクトリの属性を隠すことによって設定することは可能である。しかし、このような方法は単にそのような属性を設定したものに過ぎず、あるアプリケーションにおいて前記隠蔽属性を有するファイルやディレクトリの内容を表わすようにしたり（隠蔽ファイル表示機能）、これにアクセスしたりすることはいつでも可能である。
【００１２】
したがって、ファイルシステムレベルにおいて、特定ファイルやディレクトリを隠すことによって任意のアプリケーションのアクセスから保安を維持できる技術を考案する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明が達成しようとする技術的課題は、特定アクセス方法を除いてはユーザに直接見られない隠蔽領域を構成することによって、ファイルシステムレベルにおいてファイル／ディレクトリの保安を提供する方法および装置を提供することにある。
【００１４】
本発明が達成しようとする他の技術的課題は、前記装置において、既存のファイルシステムと互換性を維持することにある。
【００１５】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及しないまた他の技術的課題は下記記載によって当業者に明確に理解できるものである。
【課題を解決するための手段】
【００１６】
前記技術的課題を達成するために、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）領域、ディレクトリエントリ領域、およびデータ領域を含むファイルシステムにおいて一部のデータ領域を隠蔽領域として設定し、前記設定された隠蔽領域に対するアクセスを制御する隠蔽領域管理装置は、前記データ領域のうち一部領域を隠蔽領域として設定し、前記設定された隠蔽領域に対するメタデータを記録する隠蔽領域生成部と、前記隠蔽領域のルートディレクトリのディレクトリエントリを前記ディレクトリエントリ領域に含めて、前記メタデータが記録されたクラスタを返還することによって隠蔽領域の設定を解除する隠蔽領域解除部と、および前記隠蔽領域が設定された場合に前記隠蔽領域に対するアクセスを許容または遮断するアクセス制御部とを含む。
【００１７】
前記技術的課題を達成するために、ＦＡＴ領域、ディレクトリエントリ領域、およびデータ領域を含むファイルシステムにおいて一部のデータ領域を隠蔽領域として設定し、前記設定された隠蔽領域に対するアクセスを制御する隠蔽領域管理方法は、前記データ領域のうち一部領域を隠蔽領域として設定するステップと、前記設定された隠蔽領域に対するメタデータを記録するステップと、および前記記録されたメタデータを用いて前記設定された隠蔽領域に対するアクセスを許容または遮断するステップとを含む。
【発明の効果】
【００１８】
本発明によれば、既存のファイルシステムと互換性を支援しながら、ファイルシステムレベルにおける隠蔽領域を提供することができるため、保安が必要なユーザデータを保護することができる。
【発明を実施するための最良の形態】
【００１９】
その他、実施形態の具体的な事項は、詳細な説明および図面に含まれている。
【００２０】
本発明の利点および特徴、そしてそれらを達成する方法は、添付する図面と共に詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下にて開示する実施形態に限定されず、互いに異なる多様な形態によって実施され、単に本実施形態は本発明の開示が完全なものとなるようにし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであって、本発明は請求項の範疇によってのみ定義されるものである。明細書の全体に亘り、同一参照符号は同一構成要素を示す。
【００２１】
図２は、本発明の一実施形態に係る隠蔽領域管理装置１００および前記装置１００を用いて物理格納装置３０に格納されたデータのアクセスを制御する機器の構成を示すブロック図である。前記機器２００は、コンピュータ、デジタルＴＶ、携帯電話、ＰＤＡ、ＰＭＰ、ＭＰ３プレーヤ、ＵＳＢメモリスティックなどを含み、物理格納装置３０を含んでファイルシステムを用いれば、その他機器でも関係ない。
【００２２】
前記物理格納装置３０は、フラッシュメモリ、ハードディスク、光ディスクのような不揮発性メモリ素子、またはラム（ＲＡＭ）のような揮発性メモリ素子、ハードディスク、光ディスク、磁気ディスク、その他該当分野で知られている任意の他の形態で具現され得る。
【００２３】
アプリケーション１０から特定データに対するアクセスが試みられる場合、隠蔽領域管理装置１００は、前記データが隠蔽領域に属するか否かを判断して、隠蔽領域に属しなければ従来のファイルシステム５によるアクセスを許容する。しかし、隠蔽領域に属すれば、本発明で提案する方法によってアクセスを許容するか否かが決定される。
【００２４】
前記隠蔽領域管理装置１００は、論理的構成要素として、隠蔽領域生成部１１０、隠蔽領域解除部１２０、初期化部１３０、隠蔽領域判断部１４０、アクセス制御部１５０、および隠蔽領域割当部１６０を含んで構成することができる。
【００２５】
図３は、本発明の一実施形態に係るファイルシステム５０の構成を示す図面である。従来のファイルシステム５と異なり前記ファイルシステム５０のＦＡＴ領域５１は、一般データに対するＦＡＴが記録される領域５２と、隠蔽データに対するＦＡＴが記録される領域５３とで分けられる。しかし、隠蔽データに対するＦＡＴが記録される領域５２も固定されているのではなく、実際データ領域５５で隠蔽データが記録される可変的な位置にマッピングされるＦＡＴが記録される領域を意味するだけである。ＦＡＴを記録する方式は、前記領域５１と前記領域５２とが同一である。
【００２６】
データ領域５５は、一般データが記録される領域５６と、隠蔽データが記録される領域５８（以下、隠蔽領域という）と、隠蔽領域５８に対するメタデータが記録される領域５７とを含む。
【００２７】
一般に、ユーザがファイルにデータを記録するためには、ＦＡＴ領域５１で空きクラスタ番号を探して、そのクラスタ番号が示すデータ領域５５にデータを記録する。ユーザがデータを削除する場合には、実際にデータ領域５５からデータが削除されるのではなく、マッピングされるＦＡＴ領域５１のクラスタ番号のみを削除するようになる。この後、前記削除されないデータは上書きされる時に実際に削除される。
【００２８】
ところで、ＦＡＴのクラスタ番号のうちバッドクラスタと表示されたものがあれば、このアドレスにマッピングされるデータ領域は使用しなくなる。物理的に、不良なデータ領域にデータを書き込むというデータの損失が生じるようになるためである。通常、ＦＡＴ１２では「０ｘ０ＦＦ７」を、ＦＡＴ１６では「０ｘＦＦＦ７」を、そして、ＦＡＴ３２では「０ｘ０ＦＦＦＦＦＦ７」をバッドクラスタ表示として用いる。
【００２９】
アクセス制御部１５０は、隠蔽領域が設定されている状態で、ＦＡＴ領域のうち隠蔽データにマッピングされるクラスタ番号に対するアプリケーション（またはオペレーティングシステム）のアクセスがあれば、実際そのアドレスに記録されたアドレスを知らせることではなく、前記バッドクラスタ表示を前記アプリケーションに出力する。このようにすることで、隠蔽データが格納されたデータ領域は、前記アプリケーションが読み取ることができないだけでなく、他のデータによる上書きなどを防止する。したがって、隠蔽データは、前記隠蔽領域の設定が解除される前まで前記アプリケーションから安全に保護される。
【００３０】
ところで、マイクロソフトウィンドウズ（登録商標）のようなオペレーティングシステムは、そのものでファイルシステム管理者を置いており、データ領域５５にセクタ単位で直接アクセスする場合もあり得る。隠蔽領域が設定されている状態で隠蔽領域に含まれるセクタに対する読み取り／書き込みなどの直接アクセスが試みられる場合、アクセス制御部１５０は、前記読み取り／書き込みなどのアクセスを全て拒否する。
【００３１】
本発明において、隠蔽領域にあるファイルまたはディレクトリにアクセスするためには、予め定義されている隠蔽ルートディレクトリの名称を用いる。前記隠蔽ルートディレクトリは、ユーザの設定に応じて変更されることもできるが、以下、本発明では、「ｃ：￥ｈｉｄｄｅｎ」を隠蔽ルートディレクトリとして説明する。
【００３２】
隠蔽領域生成部１１０は、データ領域５５の一部領域を隠蔽領域として設定する。このために、隠蔽領域生成部１１０は、隠蔽領域に対するメタデータを生成する。前記メタデータが記録される位置は、２つで決定されることができる。最後のクラスタを用いるか、固定されたクラスタ番号を用いるのである。
【００３３】
最後のクラスタを用いることは互換性に有利であり、固定されたクラスタを用いることは保安に有利である。各ファイルシステム毎に指定されたクラスタに隠蔽領域のメタデータを格納するようになれば、隠蔽領域管理機能があるファイルシステムでも隠蔽領域の初期情報を探すことができないためである。この方法を利用すれば保安性が一層高まる。
【００３４】
隠蔽領域が設定される前にはデータ領域５５全体が一般データ領域である。この時は、いかなる隠蔽データも記録されておらず、ＦＡＴ互換されるファイルシステム管理者２０によってこの領域がアクセス可能である。
【００３５】
図４は、隠蔽領域が設定された場合に、ファイルツリー構造を示す図面である。隠蔽ルートディレクトリである「ｃ：￥ｈｉｄｄｅｎ」は、ルートディレクトリ（ｃ：￥）の下位ディレクトリであるが、隠蔽領域が設定された時には前記ルートディレクトリとの接続が断絶され、前記隠蔽ルートディレクトリおよびその下位ファイルおよびディレクトリは全てバッドセクタと認識される。
【００３６】
隠蔽領域生成部１１０は、隠蔽領域を設定するためには、図５のような隠蔽領域に対するメタデータクラスタ５７を先ず記録しなければならない。メタデータクラスタ５７は、隠蔽ルートディレクトリのディレクトリエントリ５９ａと、隠蔽クラスタと一般クラスタとを区別するクラスタ識別情報が記録されるクラスタ番号を記録する第１フィールド５９ｂとを含み、クラスタ５７の最初の部分に記録される第１署名６０ａとクラスタ５７の最後の部分に記録される第２署名６０ｂとをさらに含むことができる。
【００３７】
一般に、ディレクトリエントリは、該当ディレクトリやファイルに対する詳細情報、すなわち、名称、拡張子、大きさ、生成された日付／時刻、該当ディレクトリまたはファイルの最初のクラスタ番号、属性などからなる。隠蔽ルートディレクトリのディレクトリエントリ５９ａも同様に構成されている。したがって、前記エントリ５９ａは、少なくとも隠蔽ルートディレクトリの最初のクラスタ番号を記録する第２フィールド５９ａ−１を含む。
【００３８】
前記フィールド５９ａ，５９ｂ，６０ａ，６０ｂの容量は、１つのクラスタを超過しないため、前記クラスタ５７のうち空き空間５９ｃが存在し得る。前記署名６０ａ，６０ｂは、その間に存在するデータの有効性を保障するために記録される値（数字列または文字列）である。これはシステム毎に固有値が記録されるが、第１署名６０ａと第２署名６０ｂには同一の値が記録されることもでき、各々互いに異なる固有値が記録されることもできる。第１署名６０ａと第２署名６０ｂのうちいずれか１つでも前記固有値を有さなければ、その間のデータは有効であるとは見られない。
【００３９】
隠蔽領域生成部１１０は、データ領域５５のうち前記第２フィールド５９ａ−１に記録された最初のクラスタ番号にマッピングされるクラスタに、隠蔽ルートディレクトリに含まれる下位ディレクトリまたはファイルのディレクトリエントリを記録する。
【００４０】
勿論、隠蔽領域生成時に隠蔽ルートディレクトリの外にその下位ディレクトリやファイルが存在しなければ、前記マッピングされるクラスタに前記ディレクトリエントリを記録する過程は省略される。
【００４１】
例えば、図４の「ｆｉｌｅ１．ｍｐｇ」の名称はｆｉｌｅ１であり、拡張子はｍｐｇである。このファイルのクラスタ番号を読み取れば、ｆｉｌｅ１．ｍｐｇが記録された最初のクラスタの位置を知ることができる。そして、最初のクラスタ以外の接続されるクラスタは、ＦＡＴ領域５１を読み取ることによって知ることができる。ＦＡＴ領域５１のうち前記ファイルの最初のクラスタ番号に該当する位置のクラスタ番号は、前記最初のクラスタの次に接続されたクラスタの位置を示すためである。このように、クラスタをＥＯＦ（Ｅｎｄ  ｏｆ  Ｆｉｌｅ）表示が表われるまで接続すれば、ｆｉｌｅ１．ｍｐｇという１つのファイルを完全に読み取ることができる。
【００４２】
同じ方法によって、「ｃ：￥ｈｉｄｄｅｎ」の下位ディレクトリである「ｃ：￥ｈｉｄｄｅｎ￥ｍｐ３」の内容、すなわち「ｃ：￥ｈｉｄｄｅｎ￥ｍｐ３」の下位ディレクトリまたはファイルに対するディレクトリエントリも読み取ることができる。
【００４３】
一方、隠蔽領域生成部１１０は、全体クラスタのうちのあるものが隠蔽領域に属するクラスタであって、あるものが一般データ領域に属するクラスタであるかを示すクラスタ識別情報を、前記第１フィールド５９ｂに記録されたクラスタ番号にマッピングされるクラスタに記録する。勿論、隠蔽ルートディレクトリの最初のクラスタ番号およびＦＡＴ領域５１を読み取ることによって、あるクラスタまたはセクタが隠蔽領域であるか否かを知ることができる。しかし、オペレーティングシステムのようなアプリケーションにおいては、そのものにＦＡＴを内蔵しており、ＦＡＴ領域５１を参照しなくともクラスタまたはセクタ単位でデータ領域５５に直接アクセスが行われることもある。このような場合、演算を減らして速い応答（アクセス許容または拒否）を提供するためには前記クラスタ識別情報を予め記録しておくことが好ましい。
【００４４】
前記クラスタ識別情報を該当クラスタに記録する方法には様々なものがあり得る。この方法では、全体クラスタに対して各々識別ビット（例：１であれば隠蔽クラスタ、０であれば一般クラスタ）を順に並べる方法、隠蔽クラスタ番号のみ記録する方法、またはＮ個の単位でグループにしたクラスタ群に対して各々識別ビットを並べる方法などがあり得る。但し、三番目の方法を適用するためには、実際に隠蔽データがＮ個のクラスタ（クラスタ群）単位で記録される場合だけである。
【００４５】
前記隠蔽領域生成過程において、隠蔽クラスタは実際に隠蔽ルートディレクトリに含まれたファイルまたはディレクトリのクラスタを含むだけでなく、将来隠蔽データが格納されるように割り当てられた所定サイズの空いた隠蔽クラスタも含む。このようにすることで、追加的な演算なしで隠蔽データを追加することができる。但し、隠蔽データが追加されるのに伴って、前記空いた隠蔽クラスタが全て消耗した場合には、追加的に隠蔽クラスタを確保する作業が必要である。このような作業は隠蔽領域割当部１６０によって行われる。
【００４６】
このように、隠蔽領域生成部１１０は、隠蔽領域に対するメタデータと、隠蔽ルートディレクトリの下位ディレクトリまたはファイルに対するディレクトリエントリと、クラスタ識別情報とを記録する。
【００４７】
再び、図２に戻ると、隠蔽領域解除部１２０はユーザの命令に応じて、隠蔽領域生成部１１０によって生成された隠蔽領域を解除する。隠蔽領域を解除する方法は、ルートディレクトリ（ｃ：￥）に含めず、別途の領域に存在した隠蔽ルートディレクトリ（ｃ：￥ｈｉｄｄｅｎ）のディレクトリエントリを前記ルートディレクトリに含めることだけで簡単に解決される。前記隠蔽ルートディレクトリのディレクトリエントリは、メタデータクラスタ５７のフィールド５９ａを読み取ることによって知ることができる。この時、前記隠蔽領域生成部１１０によって生成されたメタデータクラスタ５７、クラスタ識別情報が記録されたクラスタは、空きクラスタとして返還される。しかし、隠蔽ルートディレクトリの下位ファイルまたはディレクトリのディレクトリエントリはそのまま維持される。その理由は、隠蔽ルートディレクトリのディレクトリエントリがルートディレクトリに含まれていないだけで、前記隠蔽ルートディレクトリからその下位ディレクトリを辿る構造は、従来のＦＡＴ標準に従うためである。
【００４８】
このような隠蔽領域解除過程は、図４で「ｃ：￥」と「ｃ：￥ｈｉｄｄｅｎ」との間の接続を生成する過程に該当する。このように、隠蔽領域解除後のファイルシステムは、一般的なＦＡＴ互換ファイルシステムと同一の構造を有する。したがって、アクセス制御部１５０は、ＦＡＴ領域５１およびデータ領域５５のアクセスに対して制限を加えない。
【００４９】
また、隠蔽領域解除部１２０は、隠蔽領域設定が解除されたことを表示するために、第１署名６０ａおよび第２署名６０ｂのうち少なくとも１つを変更することによってメタデータクラスタ５７を無効にする。
【００５０】
図６は、前記隠蔽領域解除過程を示すフローチャートである。
【００５１】
先ず、隠蔽領域解除部１２０は、隠蔽領域が存在するかを判断する（Ｓ６１）。隠蔽領域が存在するかを判断する方法に関するより詳しい説明は次の図８を参照する。
【００５２】
隠蔽領域が存在する場合（Ｓ６１の「はい」）には、ルートディレクトリに隠蔽ルートディレクトリのディレクトリエントリを含める（Ｓ６２）。図４を例に挙げれば、隠蔽領域解除の前はルートディレクトリに「ｃ：￥ｄｉｒ１」および「ｃ：￥ｄｉｒ２」のディレクトリエントリだけが含まれていたが、その後には「ｃ：￥ｈｉｄｄｅｎ」のディレクトリエントリが追加的に含まれる。前述したように、前記ディレクトリエントリには、名称、拡張子、大きさ、生成された日付／時刻、隠蔽ルートディレクトリの最初のクラスタ番号、属性などが含まれる。
【００５３】
この時、前記詳細情報のうち最初のクラスタ番号には、隠蔽ルートディレクトリの最初のクラスタ番号が記録される（Ｓ６３）。前記最初のクラスタ番号は、メタデータクラスタ５７のうち第２フィールド５９ａ−１に記録されている。
【００５４】
最後に、隠蔽領域解除部１２０は、メタデータ領域５７、隠蔽クラスタ、および一般クラスタを区別するクラスタ識別情報が記録されたクラスタを返還する（Ｓ６４）。前記返還のために、前記クラスタにマッピングされるＦＡＴ領域５１内のクラスタ番号は削除される。
【００５５】
以上の隠蔽領域生成および解除過程はユーザの命令によって行われるが、前記命令の入力時には、暗号入力などユーザの同一性を識別するための情報が要求される。
【００５６】
初期化部１３０は、ディスクボリュームがマウントされる時にそのボリュームに隠蔽領域が存在するかを確認し、隠蔽領域が存在する場合には、隠蔽領域に対するメタデータクラスタに存在する隠蔽領域の情報をメモリにロードする。
【００５７】
図７は、初期化部１３０による初期化過程を示すフローチャートである。
【００５８】
先ず、初期化部１３０は、隠蔽領域が存在するかを判断する（Ｓ７１）。隠蔽領域が存在するかを判断する方法に関するより詳しい説明は、次の図８を参照する。
【００５９】
隠蔽領域が存在する場合（Ｓ７１の「はい」）には、隠蔽領域に対するメタデータ（５９ａ，５９ｂを含む）を読み取る（Ｓ７２）。前記メタデータには、隠蔽ルートディレクトリの最初のクラスタ番号と、クラスタ識別情報が記録されるクラスタ番号とが含まれる。その次に、初期化部１３０は、前記メタデータおよび前記クラスタ識別情報をメモリにロードする（Ｓ７３）。以後、アクセス制御部１５０は、アプリケーション１０のアクセスしようとするクラスタまたはセクタが隠蔽クラスタに属してアクセスを遮断すべきかを直ちに知ることができる。
【００６０】
一方、隠蔽領域判断部１４０は、メタデータクラスタ５７に含まれる署名６０ａ，６０ｂと、フィールド５０ａ，５０ｂに記録された内容を用いて隠蔽領域が存在するか（隠蔽領域が設定されているか）否かを判断する。図８は、このように、隠蔽領域が存在するか否かを判断する過程を示すフローチャートである。
【００６１】
先ず、隠蔽領域判断部１４０は、隠蔽領域に対するメタデータクラスタ５７を読み取る（Ｓ８１）。この時、第１署名６０ａおよび第２署名６０ｂが正常であるかを確認する（Ｓ８３）。前記署名が正常であるか否かはこの署名が全て所定の値を維持しているかによって確認される。２つのうち１つでも本来の値から変更されたとすれば署名は正常でないものと判断される。
【００６２】
署名が正常であれば（Ｓ８３の「はい」）、第２フィールド５９ａ−１に記録された隠蔽ルートディレクトリの最初のクラスタ番号がクラスタ範囲に含まれるかを判断する（Ｓ８４）。前記クラスタ範囲とは、特定物理格納装置３０に割り当てられたクラスタ番号が取ることができる範囲を意味する。クラスタ範囲から外れた値が第２フィールド５９ａ−１に記録されていると、これは正常なクラスタ番号であるとみなすことができない。
【００６３】
Ｓ８４の判断の結果、条件に該当すれば（Ｓ８４の「はい」）、第１フィールド５９ｂに記録されるクラスタ番号、すなわちクラスタ識別情報が記録されるクラスタ番号が隠蔽ルートディレクトリの最初のクラスタ番号がクラスタ範囲に含まれるかを判断する（Ｓ８５）。その結果、条件に該当すれば（Ｓ８５の「はい」）、最終的に隠蔽領域があると判断する（Ｓ８６）。
【００６４】
反面、Ｓ８３、Ｓ８４、およびＳ８５の判断ステップのうち１つでも条件に該当しなければ、隠蔽領域がないと判断する（Ｓ８７）。
【００６５】
隠蔽領域割当部１６０は、現在割り当てられた隠蔽クラスタが全て消耗した場合に追加的に隠蔽クラスタを割り当てる役割を行う。図９はこのように、追加的に隠蔽クラスタを割り当てる過程を示すフローチャートである。
【００６６】
隠蔽ルートディレクトリまたはその下位ディレクトリに、ファイルまたはディレクトリ書き込み命令が入力されれば、隠蔽領域割当部１６０は先ず、現在割り当てられた隠蔽クラスタのうち空いた隠蔽クラスタが存在するかを判断する（Ｓ９１）。条件に該当すれば、別途に隠蔽クラスタを割り当てる必要がないために終了する。
【００６７】
条件に該当しなければ（Ｓ９１の「いいえ」）、一般クラスタのうち一部を隠蔽クラスタとして割り当てる（Ｓ９２）。前記割り当てられる大きさは任意に定めることができるが、最初の隠蔽領域生成部１１０で割り当てる大きさと同一にすることができる。
【００６８】
そして、第１フィールド５９ｂのクラスタ番号にマッピングされるクラスタに格納されたクラスタ識別情報をアップデートする（Ｓ９３）。すなわち、前記割り当てられた一般クラスタの識別表示を隠蔽クラスタの識別表示に変更する。
【００６９】
アクセス制御部１５０は、ＦＡＴ領域５１またはデータ領域５５に対するアプリケーションのアクセス（読み取り、書き込みなど）がある場合には、隠蔽領域が存在するか否かによって前記アクセスを許したり遮断したりする。
【００７０】
隠蔽領域が設定された状態で、ＦＡＴ領域５１のうち隠蔽データにマッピングされるクラスタ番号に対するアプリケーションのアクセスがあれば、実際そのアドレスに記録されたアドレスを知らせるのではなく、バッドクラスタ表示を前記アプリケーションに出力する。また、隠蔽領域が設定された状態でデータ領域５５のうち隠蔽クラスタに対するアクセスが試みられる場合、アクセス制御部１５０は前記アクセスを拒否する。
【００７１】
この時、ＦＡＴ領域５１またはデータ領域５５のうち隠蔽クラスタに対するアクセスが試みられるものであるか、一般クラスタに対するアクセスが試みられるものであるかは、メモリにロードされているクラスタ識別情報を参照すれば簡単に知ることができる。
【００７２】
アクセス制御部１５０は、メタデータクラスタ５７によって正常にアクセスが行われる場合に限って、隠蔽領域に対する正常なアクセスを許容する。前記メタデータクラスタ５７によって隠蔽ルートディレクトリに含まれた下位ディレクトリまたはファイルのディレクトリエントリが記録されたクラスタ番号を知ることができる。前記ディレクトリエントリのうち最初のクラスタ番号およびＦＡＴ領域５１を確認することによって、前記アクセスするデータを読み取ることができ、その読み取った結果をアプリケーション１０に提供することができる。
【００７３】
隠蔽領域管理装置１００を備えていない従来の機器でファイルシステム５０にアクセスする場合であれば、前記メタデータクラスタ５７を読み取れないために隠蔽領域に含まれた如何なるデータにもアクセスすることができない。
【００７４】
ところで、隠蔽領域管理装置１００を備えた機器２００であっても、他の機器に対しは前記メタデータクラスタ５７を読み取れないようにできる。このための方法では、メタデータクラスタ５７の位置を各機器２００別に異なるように設定する方法と、前記メタデータクラスタ５７に含まれる署名６０ａ，６０ｂを互いに異なる値で設定する方法と、隠蔽ルートディレクトリの名称を異なるように設定する方法などがある。
【００７５】
上記方法のうち第１方法と第２方法は、隠蔽領域に対するメタデータが格納されている部分を探さないようにする方法である。その中、第１の方法は前記メタデータが格納されている部分の位置を異なるようにすることによって、隠蔽領域管理装置１００を備えた機器２００であっても、前記位置を知らない限り、アクセスが不可能になる。
【００７６】
第２方法は、隠蔽領域が存在するか否かを判断するために用いられる署名６０ａ，６０ｂを機器によって異なるように設定することで、他の機器は前記署名を確認できないため隠蔽領域が存在しないと判断する。
【００７７】
第３方法は、隠蔽ルートディレクトリと指定されるディレクトリ名（例：ｈｉｄｄｅｎ）を機器によって異なるように設定することで、他の機器が前記隠蔽ルートディレクトリにアクセスできないようにすることである。例えば、隠蔽ルートディレクトリが「ｃ：￥ｈｉｄｅ」と設定された機器では隠蔽ルートディレクトリが「ｃ：￥ｈｉｄｄｅｎ」と設定された機器の隠蔽領域にはアクセスすることができないのである。
【００７８】
今まで図２の各構成要素は、メモリの上の所定領域で行われるタスク、クラス、サブルーチン、プロセス、オブジェクト、実行スレッド、プログラムのようなソフトウェアや、ＦＰＧＡやＡＳＩＣのようなハードウェアで具現することができ、また、前記ソフトウェアおよびハードウェアの組合せで行われることもできる。前記構成要素はコンピュータで読み取り可能な格納媒体に含まれていることもでき、複数のコンピュータにその一部が分散して分布することもできる。
【００７９】
以上、添付した図面を参照して本発明の実施形態を説明したが、本発明が属する技術分野で通常の知識を有する者であれば、本発明がその技術的思想や必須の特徴を変更せず、他の具体的な形態によって実施することができるということを理解できる。したがって、以上で記述した実施形態はすべての面で例示的なものであり、限定的なものではないことを理解しなければならない。
【図面の簡単な説明】
【００８０】
【図１】一般的なＦＡＴファイルシステムの概略的な構成を示す図である。
【図２】本発明の一実施形態に係る隠蔽領域管理装置を用いて物理格納装置に格納されたデータのアクセスを制御するシステムの構成を示すブロック図である。
【図３】本発明の一実施形態に係るファイルシステムの構成を示す図である。
【図４】隠蔽領域が設定された場合にファイルツリー構造を示す図である。
【図５】本発明の一実施形態に係る隠蔽領域に対するメタデータクラスタの構造を示す図である。
【図６】隠蔽領域解除部による隠蔽領域解除過程を示すフローチャートである。
【図７】初期化部による初期化過程を示すフローチャートである。
【図８】隠蔽領域が存在するか否かを判断する過程を示すフローチャートである。
【図９】隠蔽クラスタを追加的に割り当てる過程を示すフローチャートである。
【符号の説明】
【００８１】
１０      アプリケーション
１１      ＭＢＲ
１３      ディレクトリエントリ
２０      ファイルシステム管理者
３０      物理格納装置
５０      ファイルシステム
５１      ＦＡＴ
５２      一般データに対するＦＡＴ記録領域
５３      隠蔽データに対するＦＡＴ記録領域
５５      データ領域
５６      一般データが記録される領域
５７      メタデータクラスタ
５８      隠蔽データが記録される領域
５９ａ    隠蔽ルートディレクトリのディレクトリエントリ
５９ｂ    第１フィールド
６０ａ    第１署名
６０ｂ    第２署名
１００    隠蔽領域管理装置
１１０    隠蔽領域生成部
１２０    隠蔽領域解除部
１３０    初期化部
１４０    隠蔽領域判断部
１５０    アクセス制御部
１６０    隠蔽領域割当部
２００    機器
【図１】
0004685038.tif 000002
【図２】
0004685038.tif 000003
【図３】
0004685038.tif 000004
【図４】
0004685038.tif 000005
【図５】
0004685038.tif 000006
【図６】
0004685038.tif 000007
【図７】
0004685038.tif 000008
【図８】
0004685038.tif 000009
【図９】
0004685038.tif 000010