(57)【要約】【課題】既存のファイルシステムを用いて、機密レベルに応じたファイルアクセスを強制する。【解決手段】  機能モードに応じたアクセスフォルダ切り替え方法は、アプリケーションからディスク装置へのファイルアクセス要求を受けたときに、アプリケーションが機密モードのプロセスとして動作している場合、指定されたファイルパス名を機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、これで指定される機密フォルダ内の機密ファイルに対するファイルアクセスをカーネルを介して実行させるステップ（Ａ１：ＹＥＳ、Ａ２〜Ａ６）と、アプリケーションが通常モードのプロセスとして動作している場合、機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップ（Ａ１：ＮＯ、Ａ５〜Ａ７）とを有する。【選択図】  図２
2006127127.tif 000002
【特許請求の範囲】
【請求項１】
ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いるアクセスフォルダ切り替え方法であって、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定するステップと、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを有することを特徴とする機密モードに応じたアクセスフォルダ切り替え方法。
【請求項２】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換えるステップを有することを請求項１記載の機密モードに応じたアクセスフォルダ切り替え方法。
【請求項３】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記ファイルアクセス要求が書き込み命令であるか否かを判断するステップと、
前記ファイルアクセス要求が書き込み命令である場合、前記機密フォルダ内の機密ファイルに対する書き込みを前記カーネルを介して実行させるステップと、
前記ファイルアクセス要求が書き込み命令でない場合、指定されたファイルパス名の先頭側に前記機密ルートディレクトリ名を書き足したファイルパス名に対応するファイルが存在するか否かを判断するステップと、
前記ファイルが存在する場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対する書き込み以外のファイルアクセスを前記カーネルを介して実行させるステップと、
前記ファイルが存在しない場合、指定されたファイルパス名に対応する前記通常フォルダ内の通常ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項１又は２記載の機密モードに応じたアクセスフォルダ切り替え方法。
【請求項４】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておくステップと、
前記機密ファイルが前記例外ファイルであれば、前記リスト内の設定ファイルのパス名に基づいて、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項１から３のいずれか１項に記載の機密モードに応じたアクセスフォルダ切り替え方法。
【請求項５】
ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いる機密モードに応じたアクセスフォルダ切り替え方法であって、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードとして動作させるかの機能レベルを指定するステップと、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名が前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名であれば、前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを有することを特徴とする機密モードに応じたアクセスフォルダ切り替え方法。
【請求項６】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合に前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておくステップと、
指定されたファイルパス名が前記機密ルートディレクトリ下のファイルパス名でない場合、指定されたファイルパス名のファイルが前記例外ファイルに該当すれば、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項５記載の機密モードに応じたアクセスフォルダ切り替え方法。
【請求項７】
ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いるプログラムであって、
前記コンピュータに、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定するステップと、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを実行させることを特徴とするプログラム。
【請求項８】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換えるステップを有することを請求項７記載のプログラム。
【請求項９】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記ファイルアクセス要求が書き込み命令であるか否かを判断するステップと、
前記ファイルアクセス要求が書き込み命令である場合、前記機密フォルダ内の機密ファイルに対する書き込みを前記カーネルを介して実行させるステップと、
前記ファイルアクセス要求が書き込み命令でない場合、指定されたファイルパス名の先頭側に前記機密ルートディレクトリ名を書き足したファイルパス名に対応するファイルが存在するか否かを判断するステップと、
前記ファイルが存在する場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対する書き込み以外のファイルアクセスを前記カーネルを介して実行させるステップと、
前記ファイルが存在しない場合、指定されたファイルパス名に対応する前記通常フォルダ内の通常ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項７又は８記載のプログラム。
【請求項１０】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておくステップと、
前記機密ファイルが前記例外ファイルであれば、前記リスト内の設定ファイルのパス名に基づいて、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項７から９のいずれか１項に記載のプログラム。
【請求項１１】
ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いるプログラムであって、
前記コンピュータに、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードとして動作させるかの機能レベルを指定するステップと、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名が前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名であれば、前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを実行させることを特徴とするプログラム。
【請求項１２】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させるステップは、
前記アプリケーションが前記機密モードのプロセスとして動作している場合に前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておくステップと、
指定されたファイルパス名が前記機密ルートディレクトリ下のファイルパス名でない場合、指定されたファイルパス名のファイルが前記例外ファイルに該当すれば、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップとを有することを特徴とする請求項１１記載のプログラム。
【請求項１３】
ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータシステムであって、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定する手段と、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定する手段と、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断する手段と、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段と、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しない手段とを有することを特徴とするコンピュータシステム。
【請求項１４】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させる手段は、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換える手段を有することを請求項１３記載のコンピュータシステム。
【請求項１５】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させる手段は、
前記ファイルアクセス要求が書き込み命令であるか否かを判断する手段と、
前記ファイルアクセス要求が書き込み命令である場合、前記機密フォルダ内の機密ファイルに対する書き込みを前記カーネルを介して実行させる手段と、
前記ファイルアクセス要求が書き込み命令でない場合、指定されたファイルパス名の先頭側に前記機密ルートディレクトリ名を書き足したファイルパス名に対応するファイルが存在するか否かを判断する手段と、
前記ファイルが存在する場合、指定されたファイルパス名をその先頭側に前記機密ルートディレクトリ名を書き足すことで前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対する書き込み以外のファイルアクセスを前記カーネルを介して実行させる手段と、
前記ファイルが存在しない場合、指定されたファイルパス名に対応する前記通常フォルダ内の通常ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段とを有することを特徴とする請求項１３又は１４記載のコンピュータシステム。
【請求項１６】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させる手段は、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておく手段と、
前記機密ファイルが前記例外ファイルであれば、前記リスト内の設定ファイルのパス名に基づいて、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段とを有することを特徴とする請求項１３から１５のいずれか１項に記載のコンピュータシステム。
【請求項１７】
ディスク装置に対するファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータシステムであって、
前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定する手段と、
任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードとして動作させるかの機能レベルを指定する手段と、
前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断する手段と、
前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名が前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名であれば、前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段と、
前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しない手段とを有することを特徴とするコンピュータシステム。
【請求項１８】
前記機密フォルダ内の機密ファイルに対するファイルアクセスを実行させる手段は、
前記アプリケーションが前記機密モードのプロセスとして動作している場合に前記アプリケーション毎に個別に前記通常フォルダへ出力可能な例外ファイルのリストを保持し、このリストに保持される例外ファイルとして前記アプリケーション固有の設定ファイルのパス名を予め設定しておく手段と、
指定されたファイルパス名が前記機密ルートディレクトリ下のファイルパス名でない場合、指定されたファイルパス名のファイルが前記例外ファイルに該当すれば、前記通常フォルダ内の前記例外ファイルに対応する設定ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段とを有することを特徴とする請求項１７記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密モードに応じたアクセスフォルダ切り替え方法、プログラム、及びコンピュータシステムに係り、とくに機密レベルに応じたファイルアクセス制御方式に関する。
【背景技術】
【０００２】
コンピュータ上でファイル等のアクセス制御を強化する方式として、「機密」及び「通常」という機密レベルを、ファイルなどのアクセス対象（オブジェクト）と、ユーザ・プロセスなどのアクセス主体（サブジェクト）とにそれぞれ割り当てておき、サブジェクトからオブジェクトへのアクセス可否をサブジェクト及びオブジェクト双方の機密レベルの比較によって決定するアクセス制御方式が知られている。この方式は、一般に「マルチレベルセキュリティ（ＭＬＳ）」と呼ばれる。
【０００３】
このようなＭＬＳの考え方は、例えばセキュリティ機能を強化したＯＳ（Operating System）として近年脚光を浴びている各種「トラステッドＯＳ」の中で、強制アクセス制御（ＭＡＣ：Mandatory Access Control）として実装されている。この強制アクセス制御下では、ユーザのプロセスは自分より機密レベルの低いファイルへの書き込みができず（このことを「ＮＷＤ原則：No Write-Down Principle」と呼ぶ）、逆に自分よりも機密レベルの高いファイルを読み出すことができない（このことを「ＮＲＵ原則：No Read-Up Principle」と呼ぶ）。これによって、機密レベルの高い情報が低い機密レベルしか持たないユーザに渡ることを厳格に防いでいる。なお、ＮＷＤ原則の代わりに、ユーザのプロセスは自分と同じ機密レベルの書き込みしかできない、という原則が用いられることも多い。これによって、柔軟性は損なわれるが、意図しない機密レベルへの昇格を防止することができる。
【０００４】
このような機密レベルに応じたファイルアクセス制御の実装方式には、従来次のような二つの実装方式が知られている。
（既存技術１）
本方式は、個々のファイルに機密レベルに関する属性情報を待たせ、ファイルＩ／Ｏ（入出力）時にこの属性情報と現在のプロセスの機密レベルとを比較するものである。その結果、アクセスがＮＷＤ原則やＮＲＵ原則を満たさない場合、そのファイルアクセスはブロックされる。これを特別に作られた専用のファイルシステムを用いて行う。また、プロセスの機密レベルより低い機密レベルのファイルにアクセスする場合、そのファイルはプロセスと同じ機密レベルに引き上げられる。
（既存技術２）
本方式は、トラステッドＯＳとして製品化されているサン・マイクロシステムズ社のTrusted Solaris（製品名）で実装されているものである。これは、機密モードに応じて、マルチレベルディレクトリ（ＭＬＤ）と、シングルレベルディレクトリ（ＳＬＤ）という２種類の特殊ディレクトリを有している。ＭＬＤは、その直下に複数のＳＬＤを配置できる特殊ディレクトリであり、ＳＬＤは、特定の機密レベルと１対１で対応する特殊ディレクトリである。これらの特殊ディレクトリを組み合わせることで、ユーザの機密レベルに応じてユーザから見えるディレクトリを機密レベルにあったものとしている。
【０００５】
なお、本発明に関連する先行技術文献としては、次のものがある。
【特許文献１】特開２００２−２８８０３０号公報
【特許文献２】特開２００４−１２６６３４号公報
【特許文献３】特開平０８−２４９２３８号公報
【特許文献４】特開平１０−３１２３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、ＭＬＳを実現する従来技術として、ファイルに機密レベルの属性を持たせて管理するもの（既存技術１）や、ディレクトリを機密レベル毎に分けて構成するもの（既存技術２）が既に知られているが、いずれも既存のファイルシステムを拡張する方法を採用している。このため、次のような問題点があった。
【０００７】
第一の問題点は、一つのアプリケーション（ＡＰ）に対して通常モードと機密モードでプロセスを同時にユーザが動かして作業することが困難な点である。その理由は、既存技術１では、両方のＡＰが出力する一時ファイルが同じファイルの場合、機密レベルがコンフリクトするため、同時に存在することができず、ＡＰの動作に制限が生じるためである。
【０００８】
第二の問題点は、通常モードと機密モードで異なる設定ファイルを用いざるを得ず、動作環境のモードによる設定の違いからユーザが混乱する点である。その理由は、既存技術１では、機密モードで設定ファイルの更新をおこなった場合、ファイルは機密レベルが昇格し、通常レベルのプロセスからは参照できなくなるためである。また、既存技術２では、そもそも設定ファイルが置かれるべきディレクトリが異なるシングルレベルディレクトリに置かれることになるためである。
【０００９】
第三の問題点は、既存のファイルシステムと互換性がない点である。そのため、既存のファイルシステムで管理されているアクセス権管理の存在を前提に作られたアプリケーションの移植が困難であるという問題が生じる。その理由は、個々のファイルに対して属性の情報を拡張してもたせているか、独自のディレクトリの属性を持たせることでファイルシステムを拡張しているためである。
【００１０】
本発明は、機密レベルに応じたファイルアクセス制御方式において、一つのアプリケーションに対して通常モードと機密モードでプロセスを同時にユーザが動かして作業することを可能にすることを目的とする。
【００１１】
また、本発明は、動作環境のモードによる設定の違いからユーザが混乱する事態を解消することを目的とする。
【００１２】
さらに、本発明は、既存のファイルシステムで管理されているアクセス権管理の存在を前提に作られたアプリケーションでも動作することを可能にすることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明は、機密情報が扱えるプロセスと扱えないプロセスを分け、機密情報が扱えるプロセスからのみアクセス可能なフォルダを構築し、通常のプロセスに対しては機密情報ファイルを隠蔽するとともに、機密情報を扱うプロセスからは機密情報及び非機密情報の両方に透過的なアクセスを可能とするものである。例えば、任意のアプリケーションからファイルアクセス要求があった場合、そのアプリケーションが機密プロセスであれば、ファイルパス書き換え機能によりアクセスを要求されたファイルのパスを、予め決められた機密フォルダ下のファイル名に置き換え、カーネルに伝える一方、そのアプリケーションが機密ファイルを扱えない通常のプロセスであれば、機密フォルダ下へのファイルアクセスを防止するようにアクセスフォルダの切り替えを制御する。これにより、既存のファイルシステムを用いて、機密レベルに応じたファイルアクセスを強制することが可能となる。
【００１４】
本発明は、このような着想の元に完成されたものである。
【００１５】
即ち、本発明に係る機密モードに応じたアクセスフォルダ切り替え方法は、ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いるアクセスフォルダ切り替え方法であって、前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定するステップと、前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを有することを特徴とする。
【００１６】
また、本発明に係るプログラムは、ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータで用いるプログラムであって、前記コンピュータに、前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定するステップと、任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定するステップと、前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断するステップと、前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させるステップと、前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しないステップとを実行させることを特徴とする。
【００１７】
さらに、本発明に係るコンピュータシステムは、ディスク装置のファイルアクセスを制御するファイルシステムを有するカーネルと、該カーネル内のファイルシステムを介して前記ディスク装置に対するファイルアクセスを行うアプリケーションとを有し、前記カーネル及びアプリケーションの動作をプロセスとして実行するコンピュータシステムであって、前記ディスク装置内のディレクトリ構造として、通常のルートディレクトリ下に階層的に配置され且つ非機密情報から成る通常ファイルを格納する少なくとも１つの通常フォルダと、機密ルートディレクトリ下に階層的に配置され且つ機密情報から成る機密ファイルを格納する少なくとも１つの機密フォルダとを有し、前記機密ルートディレクトリを前記通常のルートディレクトリ下に配置し、前記機密ルートディレクトリ以外の機密フォルダから成るディレクトリ構造が前記通常のルートディレクトリ以外の通常フォルダから成るディレクトリ構造と同一となるように設定する手段と、任意のアプリケーションの起動時に、当該アプリケーションを、前記機密ファイルを扱える機能モードのプロセスとして動作させるか、或いは前記機密ファイルを扱えない通常モードのプロセスとして動作させるかの機能レベルを指定する手段と、前記アプリケーションからファイルパス名を指定して前記ディスク装置へのファイルアクセス要求を受けたときに、前記機能レベルに基づいて、当該アプリケーションが、前記機能モードのプロセスとして動作しているか、或いは前記通常モードのプロセスとして動作しているかを判断する手段と、前記アプリケーションが前記機密モードのプロセスとして動作している場合、指定されたファイルパス名を前記機密ルートディレクトリ下の機能フォルダに対するファイルパス名に書き換え、当該ファイルパス名で指定される前記機密フォルダ内の機密ファイルに対するファイルアクセスを前記カーネルを介して実行させる手段と、前記アプリケーションが前記通常モードのプロセスとして動作している場合、前記機密フォルダ内の機密ファイルに対するファイルアクセスを許可しない手段とを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、既存のファイルシステムを用いて、機密レベルに応じたファイルアクセスを強制することが可能となるため、一つのアプリケーションに対して通常モードと機密モードでプロセスを同時にユーザが動かして作業することが可能となる。また、動作環境のモードによる設定の違いからユーザが混乱する事態も解消することができる。さらに、既存のファイルシステムで管理されているアクセス権管理の存在を前提に作られたアプリケーションでも、そのまま動作することが可能になる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明に係る機密モードに応じたアクセスフォルダ切り替え方法、プログラム、及びコンピュータシステムを実施するための最良の形態について図面を参照して詳細に説明する。
【実施例１】
【００２０】
図１は、本実施例に係るコンピュータシステムの全体構成を示す図である。
【００２１】
図１を参照すると、本実施例のコンピュータシステムには、ハードウェア構成上、予め設定されたソフトウェア（プログラム）１を実行することでその機能を実現させるＣＰＵ（Central Processing Unit）２と、このＣＰＵ２にバスを介して電気的に接続されるハードディスク駆動装置等のディスク装置１０３とが含まれる（図１中の例では、ディスク装置１０３以外の入出力（Ｉ／Ｏ）装置は省略している）。
【００２２】
ソフトウェア１には、アプリケーションプログラム（以下、単に「アプリケーション」と呼ぶ。）１０１と、ディスク装置１０３に対する各種ファイルアクセスを制御するファイルシステム１０２を有するカーネル１０のほか、本実施例では、ファイルパス書き換え機能１０４及びＡＰ（アプリケーション）起動検知機能１０５が含まれている。なお、アプリケーション１０１、ファイルシステム１０２を有するカーネル１０については、通常のコンピュータ及びそのＯＳが提供するものが用いられるので、その構成及び機能の詳細は省略する。ファイルパス書き換え機能１０４及びＡＰ起動検知機能１０５は、本発明のアクセスフォルダ切り替え方法及びプログラムの各処理ステップ並びにコンピュータシステムの各手段の主要部を成すものであり、カーネル１０及びアプリケーション１０１と共に、ＣＰＵ２により実行される制御プログラムとして実装されている。
【００２３】
ファイルパス書き換え機能１０４は、例えばダイナミックリンクライブラリ（ＤＬＬ）で実装され、アプリケーション１０１から前記ディスク装置１０３に対するファイルアクセス関連のシステムコールが呼ばれた場合に呼び出されて動作可能となっている。
【００２４】
ＡＰ検知機能１０５は、アプリケーション１０１の起動を監視し、任意のアプリケーション１０１が起動された場合、ファイルアクセス時にファイルパス書き換え機能１０４が呼び出されるように、アプリケーション１０１の関数ポインタを置き換える機能を持つ。
【００２５】
次に、図１〜図３を参照して、本実施例の動作について詳細に説明する。
【００２６】
図２は、ファイルパス書き換え機能の動作を表すフローチャート、図３はディスク装置１０３内のディレクトリ構成を表すものである。
【００２７】
まず、図３に示すように、ディスク装置１０３内のディレクトリ構成として、機密ルートディレクトリ「sec_root」下で機密情報である機密ファイルを書き込むための機密フォルダのパスを予め定義しておく。ここで、機密ルートディレクトリ「sec_root」は、通常のルートディレクトリ「\」下に配置されている。また、機密ルートディレクトリ「sec_root」下の機密フォルダ「bin」、「doc」、「tmp」、…のディレクトリ構造は、通常のルートディレクト下の非機密情報である通常ファイルを書き込むための通常フォルダ「bin」、「doc」、「tmp」、…のディレクトリ構造と同一に設定されている。
【００２８】
次いで、アプリケーション１０１を起動させる時に、利用者は、そのプロセスを、機密情報を扱える機密モードのプロセスとして起動するのか、機密情報を扱えない通常プロセスのプロセスとして起動するのかの機能レベルを予め指定しておく。この機密レベルの指定は、例えば環境変数などに設定することでファイルパス書き換え機能１０４に渡される。
【００２９】
次いで、ＡＰ起動検知機能１０５は、任意のアプリケーション１０１の起動を検知し、アプリケーション１０１によるファイルアクセスにおけるシステムコールの関数ポインタを書き換えて、ファイルアクセス時にファイルパス書き換え機能１０４の対応する関数が呼び出されるようにする。
【００３０】
次いで、ファイルパス書き換え機能１０４では、アプリケーション１０１から渡されるプロセスの機密モードとアクセスを要求されているファイルのパス名及びアクセス要求内容に基づいて、以下の処理（図２参照）を行う。
【００３１】
図２において、まず、ファイルパス書き換え機能１０４は、プロセスが機密モードか否かを判断する（ステップＡ１）。その結果、機密モードであった場合（ＹＥＳ）は、ファイルアクセス要求が書き込み命令であるか否かを判断する（ステップＡ２）。
【００３２】
その結果、書き込み命令であった場合（ＹＥＳ）、ファイルパスを書き換える（ステップＡ４）。ここでは、フルパスで書かれたファイル名の先頭に機密ルートディレクトリである「\sec_root」を書き足すことで、「\sec_root」をルートディレクトリとして見たパスに書き換える。例えば、与えられたファイルが「\doc\file1」というパスファイル名であった場合、このファイルパス名の書き換えによって、「\sec_root\doc\file1」というパス名に置き換えられる。次いで、このパス名に対して書き込み命令を実行する（ステップＡ６）。
【００３３】
一方、上記ステップＡ２でファイルアクセス要求が書き込み命令以外、例えば読み込みの命令である場合（ＮＯ）は、与えられたファイルパスの先頭に「\sec_root」を足したパスにファイルが存在するか否かを確認する（ステップＡ３）。その結果、存在する場合は、書き込み命令と同様にファイルパス名を書き換え（ステップＡ４）、存在しない場合は、書き換えを行わない。次いで、このパス名に対して読み込みの命令を実行する（ステップＡ６）。
【００３４】
また、上記ステップＡ１において、プロセスが通常モードであった場合は、与えられたファイルパスが「\sec_root」以下にあるファイル名であるかを確認する（ステップＡ５）。その結果、「\sec_root」以下のファイルであった場合は、アクセス不能である旨のエラーを返し（ステップＡ７）、「\sec_root」以外であった場合は、通常通りのファイルアクセス命令を実行する（ステップＡ６）。
【００３５】
従って、本実施例によれば、以下の効果を得ることができる。
【００３６】
第一の効果は、機密モードに応じてアクセスするファイルのフォルダを切り替え、通常モードのプロセスが機密フォルダ内のファイルをアクセスしたり、機密モードのプロセスが機密フォルダ以外にファイルを書き出したりすることを防ぐことができる点である。その理由は、ファイルパスを書き換えることにより、機密プロセスが書き出すファイルは全て機密フォルダ以下に置かれるようにするためである。また、通常モードのプロセスが機密フォルダ配下のファイルへアクセスに対してはエラーリターンするためである。
【００３７】
第二の効果は、アプリケーションからは機密モード/通常モードで同じファイル名で透過的にファイルを参照することができる点である。その理由は、機密フォルダ配下に通常のルート以下の全てのディレクトリ構成をそのまま対応させて持てる構造になっており、またパスの書き換えをおこなうため、アプリケーションからはどちらのモードでも同じファイル名を指定してアクセスするためである。これにより、機密モード/通常モードで同じ名前の一時ファイルをアプリケーションが意識せずに異なるディレクトリに置くことができ、機密モードと通常モードのプロセスが同時に動かした場合の一時ファイルの機密レベルのコンフリクトの問題を解決することができる。
【００３８】
第三の効果は、機密モードのプロセスが通常ファイルを読み込み、それを書き出した場合でも、元のファイルは通常ファイルのまま残るため、別の通常モードのアプリケーションからアクセス可能なことである。
【００３９】
第四の効果は、既存のファイルシステムを変更しないことである。その理由は、機密モードによるアクセス制御をカーネル内のファイルシステムの拡張によっておこなうのではなく、より上位でファイルパスを書き換えることで実現しているため、ファイルシステムは既存のものが使えるためである。
【００４０】
なお、本実施例では、通常モードでは機密フォルダへの読み込みも書き込みも禁止しているが、前述したＮＷＤ原則を厳密に適用して、機密フォルダへの書き込みを許可するように構成することも可能である。
【００４１】
また、本実施例では、機密モードのアプリケーション１０１が出力するファイルは全て機密フォルダ内に出力されることとしたが、アプリケーション１０１毎に個別に通常フォルダへ出力可能な例外ファイルのリストをファイルパス書き換え機能１０４に持たせるように構成してもよい。この場合、例外ファイルリストの例外ファイルとして、アプリケーション固有の設定ファイル（機密情報は含まない）のパスを書いておくことで、機密モードのプロセスにおいて、ユーザが設定変更をおこなった場合でも、この設定ファイルの機密レベルを昇格させることなく、通常のファイルパスのフォルダに書き込むことができ、通常モードと機密モードによって共通の設定ファイルを使い続けることができるようになる。
【実施例２】
【００４２】
図４は、本実施例のコンピュータシステムの全体構成を示す図である。
【００４３】
上記実施例１では、ファイルパス書き換え機能１０４（図１）によって機密モードでのファイル入出力を透過的に機密ルートディレクトリ「sec_root」に置き換えているが、本実施例では、図４に示すように、環境変数書き換え機能１０６とファイルアクセス強制機能１０７によってファイルパス書き換え機能１０４と類似の機能を実現するものである。その他の構成は上記実施例１と同様であるため、その説明を省略する。
【００４４】
ＡＰ検知機能１０５は、アプリケーション１０１の起動を監視し、任意のアプリケーション１０１が起動された場合、環境変数書き換え機能１０６とファイルアクセス強制機能１０７が呼び出されるように、アプリケーションの関数ポインタを置き換える機能を持つ。
【００４５】
環境変数書き換え機能１０６は、例えばダイナミックリンクライブラリ（ＤＬＬ）として実装され、アプリケーション１０１が環境変数やレジストリなど、プログラムの動作環境を取得するシステムコールの呼び出す際に、呼び出される。
【００４６】
この環境変数書き換え機能１０６は、プロセスが機密モードで動作している場合、テンポラリディレクトリを指定する環境変数や、キャッシュフォルダを指定するレジストリの値が、「\sec_root」以下にあるかのように書き換える。例えば、テンポラリディレクトリを指定する環境変数ＴＥＭＰが「\tmp」と設定されている場合、機密モードではこれが「\sec_root\tmp」と設定されているかのように書き換えられる。
【００４７】
ファイルアクセス強制機能１０７は、例えばダイナミックリンクライブラリで実装され、アプリケーション１０１がファイル操作のシステムコールの呼び出す際に、呼び出される。このファイルアクセス強制機能１０７は、アプリケーション１０１毎に個別に通常フォルダへ出力可能な例外ファイルリスト（前述参照）を保持している。
【００４８】
次に、図５を参照して、ファイルアクセス強制機能１０７の動作について説明する。
【００４９】
まず、プロセスが機密モードか判断し（ステップＢ１）、機密モードであった場合（ＹＥＳ）は、続いてファイルアクセス要求が書き込み命令であるかを判断する（ステップＢ２）。その結果、書き込み命令であった場合（ＹＥＳ）は、指定パスが機密フォルダ配下のものか否か、即ち与えられたファイルパスが「\sec_root」以下にあるファイル名であるかを確認し（ステップＢ３）、「\sec_root」以下のファイルである、即ち機密フォルダ配下のものである場合（ＹＥＳ）は、書き込みを許可する。また、「\sec_root」以下のファイルでない、即ち機密フォルダ配下のものでない場合（ＮＯ）は、例外ファイルかどうかを調べ（ステップＢ４）、例外ファイルであれば（ＹＥＳ）、そのアクセスを許可し、そうでなければ（ＮＯ）、アクセス不能である旨のエラーを返す（ステップＢ７）。
【００５０】
また、上記ステップＢ１にてプロセスが機密モードでない、即ち通常モードであった場合（ＮＯ）は、指定パスが機密フォルダ配下の機密ファイルを指しているか否か、即ち与えられたファイルパスが「\sec_root」以下にあるファイル名であるかを確認する（ステップＢ５）。その結果、「\sec_root」以下のファイル名であった場合（ＹＥＳ）は、アクセス不能である旨のエラーを返し（ステップＢ７）、「\sec_root」以外のファイル名であった場合（ＮＯ）は、通常通りのファイルアクセス命令を実行する（ステップＢ６）。
【００５１】
このように本実施例では、機密ファイルは「\sec_root」配下にしか保存できないため、上記実施例１と比べると柔軟性は損なわれるが、機密モードと通常モードとで異なるファイルが同一のファイルに見えることはなくなるので、一般のユーザにも動作がより一層理解しやすいものになる。また、環境変数書き換え機能１０６によって、アプリケーション１０１が一時的に書き込むファイルは機密フォルダ配下に書き込まれるようにすることで、機密モードで動作するアプリケーション１０１が通常ファイルに書き出そうとして、ブロックされ、誤動作することが防止される。
【００５２】
なお、本実施例では、通常モードでは機密フォルダへの読み込みも書き込みも禁止しているが、前述したＮＷＤ原則を厳密に適用して、機密フォルダへの書き込みを許可するように構成することも可能である。
【産業上の利用可能性】
【００５３】
本発明は、一般のコンピュータからの機密情報漏えいを防止するプログラムといった用途にも適用できる。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施例１のコンピュータシステムの全体構成を示す図である。
【図２】図１に示すファイルパス書き換え機能の動作を説明するフローチャートである。
【図３】ディスク装置内のディレクトリ構成を説明する図である。
【図４】本発明の実施例２のコンピュータシステムの全体構成を示す図である。
【図５】図４に示すファイルアクセス強制機能の動作を説明するフローチャートである。
【符号の説明】
【００５５】
１  ソフトウェア
２  ＣＰＵ
１０  カーネル
１０１  アプリケーションプログラム
１０２  ファイルシステム
１０３  ディスク装置
１０４  ファイルパス書き換え機能
１０５  ＡＰ起動検知機能
１０６  環境変数書き換え機能
１０７  ファイルアクセス強制機能
【図１】
2006127127.tif 000003
【図２】
2006127127.tif 000004
【図３】
2006127127.tif 000005
【図４】
2006127127.tif 000006
【図５】
2006127127.tif 000007