(57)【要約】      （修正有）【課題】情報処理装置の電源ＯＮＯＦＦに関わらず、暗号化されたファイルを保護する情報処理装置を提供する。【解決手段】情報処理装置はＯＳ１０７に、ポリシー処理部１１０、ポリシーＤＢ１１１、暗号処理部１１３、アクセス制御部１１５及びシステムコール処理部１１６を備える。ポリシー処理部１１０は、ファイルシステム１０９から機密データを受け取り、暗号化が必要な場合は、暗号化範囲を決定する。そして、暗号化範囲を元にポリシーＤＢ１１１にあるポリシーを変更する。暗号処理部１１３は、決定した暗号化範囲で機密データを暗号鍵１１４を使用して暗号化又は復号する。アクセス制御部１１５は、制御対象のアプリケーション１０８に対応するポリシーに基づいて、システムコールから取得した要求を拒絶する。要求が拒絶されない場合は、システムコール処理部１１６に要求を入力する。【選択図】図２
2019067132.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの暗号化を行う情報処理装置であって、
前記情報処理装置のシステムにおいて暗号化する範囲を決定する決定手段と、
前記暗号化する範囲に基づき、強制アクセス制御を行う範囲を示すセキュリティポリシーを設定する設定手段と、
前記暗号化する範囲に含まれるファイルの暗号化および復号を行う処理手段と、
前記セキュリティポリシーに基づき、強制アクセス制御によるアクセス制御を行う制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記決定手段は、ユーザインタフェースからの入力または暗号化する範囲を示すファイルに基づき、前記暗号化する範囲を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記セキュリティポリシーに基づき、強制アクセス制御により、前記処理手段による暗号化を制限することを特徴とする請求項１または請求項２のいずれか１項に記載の情報処理装置。
【請求項４】
前記制御手段は、前記セキュリティポリシーに基づき、強制アクセス制御により、前記処理手段により復号されたファイルへのアクセスを制限することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記セキュリティポリシーが変更された場合、前記暗号化する範囲を変更する変更手段を更に有することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記暗号化する範囲が変更された場合、前記セキュリティポリシーを変更する変更手段を更に有することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
システム管理者でない一般ユーザの権限による前記設定手段もしくは前記処理手段の処理は制限されることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
ファイルの暗号化を行う情報処理方法であって、
決定手段が、前記情報処理装置のシステムにおいて暗号化する範囲を決定する決定工程と、
設定手段が、前記暗号化する範囲に基づき、強制アクセス制御を行う範囲を示すセキュリティポリシーを設定する設定工程と、
処理手段が、前記暗号化する範囲に含まれるファイルの暗号化および復号を行う処理工程と、
制御手段が、前記セキュリティポリシーに基づき、強制アクセス制御によるアクセス制御を行う制御工程と、を有することを特徴とする情報処理方法。
【請求項９】
コンピュータを、
ファイルの暗号化を行う情報処理装置であって、
前記情報処理装置のシステムにおいて暗号化する範囲を決定する決定手段と、
前記暗号化する範囲に基づき、強制アクセス制御を行う範囲を示すセキュリティポリシーを設定する設定手段と、
前記暗号化する範囲に含まれるファイルの暗号化および復号を行う処理手段と、
前記セキュリティポリシーに基づき、強制アクセス制御によるアクセス制御を行う制御手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの暗号化を行う情報処理装置、情報処理方法、およびコンピュータプログラムに関するものである。
【背景技術】
【０００２】
コンピュータ内のファイルシステムを暗号化する方法として、例えば、特許文献１のようなファイル暗号化キーを用いて一つ一つのファイルを暗号化している。また、Ｌｉｎｕｘ（登録商標）では、例えば、ＬＵＫＳやｅＣｒｙｐｔｆｓなどが使用されている。これらは暗号化ファイルシステムと呼ばれている。コンピュータが電源ＯＦＦの場合に、ＨＤＤやＳＳＤなどを抜き取られても、暗号化ファイルシステムを使用して、機密データを暗号化していれば、情報漏えいを防ぐことができる。また、コンピュータが電源ＯＮの場合でも、機密データを復号しない場合は暗号化されているので、同様に情報漏えいを防ぐことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５１７４４８号公報
【特許文献２】特開２０１２−１８１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、コンピュータが電源ＯＮかつ暗号化ファイルシステムで暗号化されたファイルを復号している間は、機密データにファイルの所有者ではない第三者からアクセスされる可能性があった。
【０００５】
一方、強制アクセス制御（Ｍａｎｄａｔｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、以下ＭＡＣとする）がある。これは、予め作成したセキュリティポリシー（以下、ポリシー）に基づいて、実行プロセスやファイルへのアクセスを制御するものである。ＭＡＣに関する技術としては、特許文献２などが提案されている。
【０００６】
本発明は、上記課題を鑑みてなされたものであり、情報処理装置の電源ＯＮＯＦＦに関わらず、暗号化されたファイルを保護する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、ファイルの暗号化を行う情報処理装置であって、前記情報処理装置のシステムにおいて暗号化する範囲を決定する決定手段と、前記暗号化する範囲に基づき、強制アクセス制御を行う範囲を示すセキュリティポリシーを設定する設定手段と、前記暗号化する範囲に含まれるファイルの暗号化および復号を行う処理手段と、前記セキュリティポリシーに基づき、強制アクセス制御によるアクセス制御を行う制御手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、情報処理装置の電源ＯＮＯＦＦに関わらず、暗号化されたファイルを保護する情報処理装置を提供することが出来る。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の全体構成を示す模式図（Ａ）および情報処理装置のプログラム構成を示す模式図（Ｂ）である。
【図２】第１の実施形態におけるＯＳ１０７の構成を示す概略図（Ａ）およびプロセス情報１１２の例を示す図（Ｂ）である。
【図３】第１の実施形態における暗号化処理のフローチャートである。
【図４】第１の実施形態におけるファイルアクセス処理のフローチャートである。
【図５】第２の実施形態における暗号化範囲変更処理のフローチャートである。
【図６】ポリシーの例を示す図である。
【図７】暗号化対象ではなくなることを警告する表示の例を示す図である。
【図８】権限の例を示す表である。
【図９】ポリシーの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態である第１の実施形態について図面を用いて説明する。
【００１１】
（第１の実施形態）
本実施形態では、機密データを暗号化ファイルシステムで暗号化する際に、ＭＡＣ（強制アクセス制御）のセキュリティポリシーも更新し、機密データを暗号化した範囲にアクセス制御を実施する。これによって、コンピュータが電源ＯＮかつ暗号化ファイルシステムで暗号化されている間は、暗号化ファイルシステムで機密データを保護する。そして、コンピュータが電源ＯＮかつ暗号化ファイルシステムで暗号化されたファイルを復号している間は、ＭＡＣで機密データを保護する。その結果、いかなる場合も機密データを保護することができる。
【００１２】
＜情報処理装置の全体構成＞
本実施形態における情報処理装置１００の全体構成例を図１（Ａ）に示す。
【００１３】
図１（Ａ）において情報処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、Ｉ／Ｆ１０４およびＨＤＤ１０５を有し、それぞれの構成はバス１０６で接続されている。
【００１４】
ＣＰＵ１０１はＲＯＭ１０２の内容に沿って情報処理装置１００内の各部の動作を制御したり、ＲＡＭ１０３にロードしたコンピュータプログラム（ＯＳやアプリケーション）を実行したりする。ＲＯＭ１０２は読み出し専用メモリであり、ブートプログラムやファームウェア、後述する処理を実現するための各種処理プログラム、各種データを格納している。ＲＡＭ１０３はＣＰＵ１０１にて処理を行うために一時的にプログラムやデータを格納しておくワークメモリであり、ＣＰＵ１０１により各種処理プログラムやデータがロードされる。
【００１５】
Ｉ／Ｆ１０４はネットワーク機器やＵＳＢデバイスといった外部装置と通信するためのインタフェースであり、ネットワークを通じたデータ通信や、外部装置とデータの送受信を行う。ＨＤＤ１０５はＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種プログラム、または各種データを保持するものである。
【００１６】
次に、本実施形態における情報処理装置１００のプログラム構成を図１（Ｂ）に示す。本実施形態における情報処理装置１００は、ＯＳ１０７と複数のアプリケーション１０８を動作させ、ＯＳ１０７より上位に複数のアプリケーション１０８を動作させている。
【００１７】
アプリケーション１０８としては情報処理を実施するものであればよい。例えば、文書編集アプリケーション、画像編集アプリケーションおよびＷｅｂ接続アプリケーション、プリント処理アプリケーション、スキャン処理アプリケーション、コピー処理アプリケーションなどがある。アプリケーション１０８はデータをＨＤＤ１０５に書き込む場合には、ＯＳ１０７を介して書込み処理を実施する。読出し処理も同様である。ここで、ＯＳ１０７側ではＨＤＤ１０５の論理アドレスを指定してＨＤＤ１０５に対する読み書きを実施する。
【００１８】
＜ＯＳ１０７の論理構成＞
図２（Ａ）は図１のＯＳ１０７の機能構成を示す模式図である。また、図２（Ｂ）はＯＳ１０７で使用されるプロセス情報１１２の例を示す図である。なお、ＯＳ１０７の各機能はＣＰＵ１０１がＯＳのプログラムコードを実行することにより実現される。
【００１９】
ファイルシステム１０９は、ＨＤＤ１０５やＩ／Ｆ１０４から接続されたＵＳＢデバイスなどの記憶媒体に保存されているデータを管理する方式である。ファイルシステムの中には、Ｌｉｎｕｘ（登録商標）で使用されているｅｘｔ３や前述した通り、データを暗号化して管理できる暗号化ファイルシステムであるＬＵＫＳなどがある。
【００２０】
ポリシー処理部１１０は、ファイルシステム１０９から機密データを受け取り、暗号化が必要な場合は、暗号化範囲を決定する。そして、暗号化範囲を元にポリシーＤＢ１１１にあるポリシーを変更する。一方、システムコールおよびプロセス情報１１２を受け取った場合、ポリシー処理部１１０は、システムコールと対応するポリシーをアクセス制御部１１５へ渡す。ここで、プロセス情報１１２は例えば、図２（Ｂ）で示される。１行目の「Ｓｔａｔｕｓ」はプロセスの情報を示しており、例えば、休眠中を示す「ｓｌｅｅｐｉｎｇ」や実行中を示す「ｒｕｎｎｉｎｇ」などがある。２行目の「Ｐｉｄ」は各プロセスの識別子、３行目の「Ｃｍｄｌｉｎｅ」は、実行ファイルのパスを示している。
【００２１】
暗号処理部１１３は、暗号化を必要とする場合は、暗号鍵１１４を使用して決定した暗号化範囲で機密データを暗号化する。また、アプリケーション１０８が暗号化した機密データにアクセスするために復号を必要とする場合は、暗号鍵１１４を使用して機密データを復号する。
【００２２】
アクセス制御部１１５は、制御対象のアプリケーション１０８に対応するポリシーに基づいて、システムコールから取得した要求を拒絶する。拒絶されない場合は、システムコール処理部１１６に要求を入力する。
【００２３】
システムコール処理部１１６は、要求に対応したシステムコール処理を行う。
【００２４】
以下では、ＯＳ１０７の＜暗号化処理＞と＜ファイルアクセス処理＞について説明する。
【００２５】
＜暗号化処理＞
図３は、ＲＯＭに格納されたＯＳ１０７における暗号化処理を示すフローチャートである。図２（Ａ）の各構成と対応づけて説明する。
【００２６】
まず、図３のステップＳ３０１において、図２（Ａ）のポリシー処理部１１０が暗号化およびポリシーの変更が可能か否かを判定する。暗号化およびポリシーの変更が可能な場合（ＹＥＳ）は、ステップＳ３０２に進む。一方、暗号化およびポリシーの変更が不可能な場合（ＮＯ）は、＜暗号化処理＞を終了する。
【００２７】
この可能／不可能の判定は、処理を実行するユーザに基づいて行う。図８（ａ）に示す通り、システム管理者の場合は、暗号化処理およびポリシー変更が可能である。一方、一般ユーザの場合は、暗号化処理およびポリシーの変更は不可能である。これを実現するために、暗号化処理を実施するアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」やポリシーファイルである「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへのアクセスをパーミッションで制限する。さらに、各ユーザが使用するシェルのポリシーに上記ファイルへの制限を記載することで、一般ユーザの暗号化処理およびポリシー変更を不可能にする。
【００２８】
例えば、図６（ｂ）は一般ユーザが使用するシェル「ｇｅｎｅｒａｌ＿ｕｓｅｒ＿ｓｈｅｌｌ」のポリシーである。６０２ａが実際のファイルのアクセスに関して記載しており、６０２ｂの１行目は暗号化処理を実施するアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。これによって、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の実行は不可能にしている。２行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。また、３行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの書き込み権限「ｗｒｉｔｅ」を拒否「ｄｅｎｙ」している。これによって、ポリシーの変更を不可能にしている。一方、図６（ｃ）はシステム管理者が使用するシェル「ｓｙｓｔｅｍ＿ａｄｍｉｎ＿ｓｈｅｌｌ」のポリシーである。６０３ａが実際のファイルのアクセスに関して記載しており、６０３ｂは、前述した６０２ｂの各ルールから拒否「ｄｅｎｙ」がなくなっているものである。その結果、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の実行およびポリシーの変更を許可している。
【００２９】
また、暗号化処理を実施するアプリケーションに基づいて判定しても良い。例えば、暗号化処理を実施するアプリケーションが「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の他に「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」があったとする。そして、ユーザサポートがある「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」のみに暗号化処理を実施したい場合は、図８（ｂ）に示す通りの権限で制御する。図８（ｂ）によれば、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」を使用する場合は、暗号化処理およびポリシー変更が可能である。一方、「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」を使用する場合は、暗号化処理およびポリシーの変更は不可能である。これを実現するために、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」および「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」のポリシーファイルで、アプリケーション自体および「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへのアクセスをパーミッションで制限する。
【００３０】
例えば、図９（ａ）は「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」のポリシーである。９０１ａが実際のファイルのアクセスに関して記載しており、９０１ｂの１行目は「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の読み込み権限「ｒｅａｄ」を許可している。これによって、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の実行を可能にしている。９０１ｃの１行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの読み込み権限「ｒｅａｄ」を許可している。また、９０１ｃの２行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの書き込み権限「ｗｒｉｔｅ」を許可している。これによって、ポリシーの変更を可能にしている。一方、図９（ｂ）は「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」のポリシーである。９０２ａが実際のファイルのアクセスに関して記載しており、９０１ｂの１行目は「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」の読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。これによって、「ｃｒｙｐｔ＿ｆｓ＿ａｐｐ」の実行を不可能にしている。９０２ｃの１行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。また、９０２ｃの２行目は「／ｐｏｌｉｃｙ＿ｄｉｒ／」ディレクトリ以下のファイルへの書き込み権限「ｗｒｉｔｅ」を拒否「ｄｅｎｙ」している。これによって、ポリシーの変更を不可能にしている。
【００３１】
さらに、上述したユーザおよび実施するアプリケーションの組み合わせに基づいて判定しても良い。
【００３２】
例えば、ユーザがシステム管理者かつ、実施するアプリケーションが「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の場合は暗号化処理およびポリシーの変更が可能とする。そして、それ以外の組み合わせでは、暗号化処理およびポリシーの変更が不可能とする。
【００３３】
ステップＳ３０２では、ポリシー処理部１１０が暗号化範囲を決定する。暗号化範囲は例えば、コマンドライン上で前述したアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」を実行した際の引数に暗号化範囲を設定した際に決定する。また、暗号化範囲一覧を示すファイルを作成しても良い。この場合は、このファイルへのアクセスを制限する皆をポリシーに追記する。
【００３４】
ステップＳ３０３では、ポリシー処理部１１０がステップＳ３０２で決定した暗号化範囲を元にポリシーを変更する。具体的には、前述した図６（ｂ）と図６（ｃ）のポリシーを変更する。決定した暗号化範囲の機密データを復号したデータの場所が「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ」フォルダ以外のファイルであるとする。その場合は、図６（ｂ）の一般ユーザのポリシーには、６０２ａの一番下に「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｒｅａｄ，」と「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｗｒｉｔｅ，」を追記する。「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｒｅａｄ，」は、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」ディレクトリ以下のファイルへの読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。また、「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｗｒｉｔｅ，」は「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」ディレクトリ以下のファイルへの書き込み権限「ｗｒｉｔｅ」を拒否「ｄｅｎｙ」している。これによって、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」へのアクセスを不可能にする。
【００３５】
一方、図６（ｃ）のシステム管理者のポリシーには、６０３ａの一番下に「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｒｅａｄ，」と「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｗｒｉｔｅ，」を追記する。前述した一般ユーザのルールから拒否「ｄｅｎｙ」がなくなっているものである。その結果、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」へのアクセスを可能にする。
【００３６】
上記は、ステップＳ３０１において、ユーザ種別で判定した場合のポリシー図６（ｂ）と図６（ｃ）への追記方法を記載した。ステップＳ３０１において、暗号化処理を実施するアプリケーションに基づいて判定した場合のポリシー図９（ａ）と図９（ｂ）への追記方法は以下の通りとする。まず、図９（ａ）は上記した図６（ｃ）の追記方法と同様である。また、図９（ｂ）は上記した図６（ｂ）の追記方法と同様である。
【００３７】
最後に、ステップＳ３０４では、暗号処理部１１３が暗号鍵１１４を使用して暗号化範囲を暗号化する。なお、暗号化で使用するアルゴリズムは危殆化していないアルゴリズム（例えば、ＡＥＳ）を使用する。また、暗号鍵１１４はそのままだと意図しない復号に使用されるので、セキュアチップに保存したり、ユーザが入力するパスフレーズを使用して暗号化を行う。
【００３８】
＜ファイルアクセス処理＞
図４は、ＲＯＭに格納されたＯＳ１０７におけるファイルアクセス処理を示すフローチャートである。図２（Ａ）の各構成と対応づけて説明する。
【００３９】
まず、図４のステップＳ４０１において、図２（Ａ）のポリシー処理部１１０がアプリケーション１０８から発行されたシステムコールよりＯＳへの要求を取得する。
【００４０】
ステップＳ４０２において、図２（Ａ）のポリシー処理部１１０がポリシーＤＢ１１１から各ユーザのポリシーおよび各アプリケーションのポリシーを入力し、アクセス制御部１１５に渡す。
【００４１】
ステップＳ４０３において、図２（Ａ）の暗号処理部１１３はファイルが暗号化されているかを判定する。判定方法は暗号化されているファイルは暗号鍵に関する情報や使用した暗号化アルゴリズムの情報などをヘッダに含んだ一般的なファイルとは異なる独自の構造であるため、独自の構造か否かで判定できる。暗号化されている場合（ＹＥＳ）はステップＳ４０４に進む。一方、暗号化されていない場合、すなわち既に復号されたデータもしくは元々暗号化されていないファイルの場合（ＮＯ）はステップＳ４０５に進む。
【００４２】
ステップＳ４０４において、図２（Ａ）の暗号処理部１１３が暗号鍵１１４を使用して、ファイルを復号する。なお、暗号鍵１１４がパスフレーズを用いて暗号化された場合は、例えば、ユーザインタフェースを使用して、パスフレーズを入力し、暗号鍵を復号する。
【００４３】
ステップＳ４０５において、図２（Ａ）のアクセス制御部１１５が入力したポリシーに基づいてアプリケーション１０８がアクセスするコンピュータ資源のアクセス要求を許可するか否かを判定する。アクセス要求を許可する場合（ＹＥＳ）は、ステップＳ４０６に進む。一方、ステップＳ４０５において、アクセス要求を許可しない場合（ＮＯ）は、要求を拒否し、＜ファイルアクセス処理＞の処理を終了する。
【００４４】
ステップＳ４０６において、図２（Ａ）のシステムコール処理部１１６がアプリケーションからの要求を処理するシステムコール処理を行い、＜ファイルアクセス処理＞の処理を終了する。例えば、アプリケーション「Ａｐｐ１」がファイル「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ／ｔｅｘｔ．ｔｘｔ」を読み込む要求が入力され、図６（ａ）の６０１にあるポリシーが入力された場合を考える。
【００４５】
６０１の６０１ａは、どのアプリケーションのポリシーかを示すために、アプリケーションの実行ファイルのパスが記述されている。６０１ｂは、具体的なルールが記載されており、ファイル毎に一行ずつ記載されている。各行の前半はファイルのパス名を示し、後半は許可する制御情報が記載される。「ｒｅａｄ」と記載されていれば、読み取りを許可し、「ｗｒｉｔｅ」と記載されていれば、書き込みを許可する。例えば、６０１ｃの行は、ファイル「／ｕｓｒ／ｂｉｎ／Ａｐｐ１」の読み取りを許可する。なお、特殊な記号を使用して一行で複数のファイルのルールをまとめて記載しても良い。例えば、６０２ｄの「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ／＊  ｒｅａｄ」は「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ」フォルダ以下にあるファイル全ての読み取りを許可することになる。
【００４６】
そして、今回は、「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ」フォルダ以下にある「ｔｅｘｔ．ｔｘｔ」の読み取りは許可されているため、この要求は許可され、処理を実行する。
【００４７】
さらに、アプリケーションのポリシーにアクセスに関して記載されていなくても、シェルのポリシーにアクセスを制限する記載がある場合は適応される。図６（ｂ）は一般ユーザのシェルのポリシーであるが、前述した通り、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の実行およびポリシーの変更を拒否する。それに加えて、＜暗号化処理＞のステップＳ３０３のように、復号したデータの場所へのアクセスを拒否する。また、図６（ｃ）はシステム管理者のシェルのポリシーであるが、前述した通り、「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」の実行およびポリシーの変更を許可する。それに加えて、＜暗号化処理＞のステップＳ３０３のように、復号したデータの場所へのアクセスを許可する。これによって、図８のように、ユーザ種別に応じて権限を制限できる。
【００４８】
なお、上記実施形態では、ＭＡＣを使用して機密データを暗号化した範囲にアクセス制御を実施した。しかしながら、機密データの機密データに応じて、アクセス制御レベルを変更しても良い。例えば、３段階に分ける。機密レベルが「低」の場合は、復号したデータの場所を初期設定時から変更し、初期設定の場所を知る第三者からアクセスを防止する。機密レベルが「中」の場合は、復号したデータの場所のパーミッションを変更し、一般ユーザの読み書き権限を無くし、アクセスを防止する。機密レベルが「高」の場合は、ＭＡＣを使用する。これによって、ＭＡＣのポリシー書き換えの負荷を軽減する。
【００４９】
（第２の実施形態）
第１の実施形態では、機密データを暗号化ファイルシステムで暗号化する際に、ＭＡＣのポリシーも更新し、機密データを暗号化した範囲にアクセス制御を実施した。
【００５０】
本実施形態では、第１の実施形態に加えて、暗号化の範囲またはＭＡＣのポリシーのどちらかが変更されたら、変更をもう片方に反映されるようにする。これによって、暗号化範囲決定後でも、柔軟かつセキュアに暗号化範囲の変更ができる。
【００５１】
第１の実施形態とは、＜ＯＳ１０７の論理構成＞の一部が異なり、＜暗号化範囲変更処理＞が追加される以外は全て同じである。以下では、＜ＯＳ１０７の論理構成＞の第１の実施形態からの差分と＜暗号化範囲変更処理＞のみ説明する。
【００５２】
＜ＯＳ１０７の論理構成＞
変更点はポリシー処理部１１０と暗号処理部１１３の関係である。第１の実施形態では、ポリシー処理部１１０から暗号処理部１１３へポリシーやファイルなどのデータが渡された。本実施形態では、一度暗号化した機密データを復号した後、暗号化範囲の変更を可能にするために、ポリシー処理部１１０と暗号処理部１１３の双方向でデータのやり取りを実施する。
【００５３】
＜暗号化範囲変更処理＞
図５は、ＲＯＭに格納されたＯＳ１０７における暗号化範囲変更処理を示すフローチャートである。図２（Ａ）の各構成と対応づけて説明する。
【００５４】
まず、図３のステップＳ５０１において、図２（Ａ）のポリシー処理部１１０が暗号化およびポリシーの変更が可能か否かを判定する。暗号化およびポリシーの変更が可能な場合（ＹＥＳ）は、ステップＳ５０２に進む。一方、暗号化およびポリシーの変更が不可能な場合（ＮＯ）は、＜暗号化範囲変更処理＞を終了する。判定方法は第１の実施形態と同様である。
【００５５】
ステップＳ５０２において、図２（Ａ）の暗号処理部１１３はファイルが暗号化されているかを判定する。判定方法は第１の実施形態と同様である。暗号化されている場合（ＹＥＳ）はステップＳ５０３に進む。一方、暗号化されていない場合、すなわち既に復号されたデータもしくは元々暗号化されていないファイルの場合（ＮＯ）はステップＳ５０４に進む。
【００５６】
ステップＳ５０３において、図２（Ａ）の暗号処理部１１３が暗号鍵１１４を使用して、ファイルを復号する。なお、暗号鍵１１４がパスフレーズを用いて暗号化された場合は、例えば、ユーザインタフェースを使用して、パスフレーズを入力し、暗号鍵を復号する。
【００５７】
ステップＳ５０４において、図２（Ａ）のポリシー処理部１１０が暗号化範囲を変更するか否かを判定する。判定は例えば、ユーザインタフェースで「暗号化範囲を変更しますか？」と変更を問い合わせて、ユーザの「はい」「いいえ」の返答で行う。また、コマンドライン上で前述したアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」を実行した際の引数で暗号化範囲を変更した時点で変更を判定しても良い。暗号化範囲を変更する場合（ＹＥＳ）は、ステップＳ５０５に進む。一方、暗号化範囲を変更しない場合（ＮＯ）は、ステップＳ５０７に進む。
【００５８】
ステップＳ５０５において、図２（Ａ）のポリシー処理部１１０が暗号化範囲を変更する。暗号化範囲の変更はコマンドライン上で前述したアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」を実行した際に暗号化範囲を設定する引数を変更して実施できる。例えば、引数を「／ｄｉｒ＿Ｘ／」から「／ｄｉｒ＿Ｘ，／ｄｉｒ＿Ｙ」（／ｄｉｒ＿Ｘ／および／ｄｉｒ＿Ｙ／であることを意味する）へ変更する。また、暗号化範囲一覧を示すファイルを変更しても良い。この場合は、このファイルへのアクセスを制限する皆をポリシーに追記する。
【００５９】
ステップＳ５０６において、図２（Ａ）のポリシー処理部１１０が暗号化範囲の変更をポリシーに反映する。前述した図６（ｂ）と図６（ｃ）のポリシーを変更する。機密データを復号したデータの場所が「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」フォルダ以下から「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／」と「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／」フォルダ以下へ変更されるものとする。その場合は、図６（ｂ）の一般ユーザのポリシーには、元々６０２ａの一番下に「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｒｅａｄ，」と「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｗｒｉｔｅ，」が記載されている。そこに、「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｒｅａｄ，」と「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｗｒｉｔｅ，」を追記する。「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｒｅａｄ，」は、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／」ディレクトリ以下のファイルへの読み込み権限「ｒｅａｄ」を拒否「ｄｅｎｙ」している。また、「ｄｅｎｙ／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｗｒｉｔｅ，」は「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／」ディレクトリ以下のファイルへの書き込み権限「ｗｒｉｔｅ」を拒否「ｄｅｎｙ」している。これによって、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／」へのアクセスを不可能にする。
【００６０】
一方、図６（ｃ）のシステム管理者のポリシーには、元々６０３ａの一番下に「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｒｅａｄ，」と「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｘ／＊  ｗｒｉｔｅ，」が記載されている。そこに、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｒｅａｄ，」と「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／＊  ｗｒｉｔｅ，」を追記する。前述した一般ユーザのルールから拒否「ｄｅｎｙ」がなくなっているものである。その結果、「／ｄｅｃｒｙｐｔｅｄ＿ｄｉｒ／ｄｉｒ＿Ｙ／」へのアクセスを可能にする。
【００６１】
ステップＳ５０７において、図２（Ａ）のポリシー処理部１１０がポリシーを変更するか否かを判定する。判定は例えば、ユーザインタフェースで「ポリシーを変更しますか？」と変更を問い合わせて、ユーザの「はい」「いいえ」の返答で行う。また、ポリシーを変更した時点でｉｏｎｏｔｉｆｙを使用して変更を通知し、判定しても良い。その場合は次のステップＳ５０８はスキップし、ステップＳ５０９に進む。
【００６２】
ステップＳ５０８において、図２（Ａ）のポリシー処理部１１０がポリシーを変更する。例えば、テキストエディタでポリシーを書き換える。ユーザインタフェースで各ファイルのアクセスに関して質問し、変更しても良い。
【００６３】
ステップＳ５０９において、図２（Ａ）のポリシー処理部１１０がポリシーの変更を暗号化範囲に反映させる。例えば、ステップＳ５０６で説明したようなポリシーの変更があったとする。その場合は、例えば、シェルスクリプトでアプリケーション「ｅｎｃｒｙｐｔｅｄ＿ａｐｐ」を実行する。その際に暗号化範囲を設定する引数を「／ｄｉｒ＿Ｘ／」から「／ｄｉｒ＿Ｘ，／ｄｉｒ＿Ｙ」（／ｄｉｒ＿Ｘ／および／ｄｉｒ＿Ｙ／であることを意味する）へ変更する。また、暗号化範囲一覧を示すファイルを変更しても良い。
【００６４】
最後に、ステップＳ５１０では、暗号処理部１１３が暗号鍵１１４を使用して暗号化範囲を暗号化する。この処理の詳細は第１の実施形態と同様である。
【００６５】
なお、上記実施形態では、暗号化範囲が広がった場合の記載を行った。暗号化範囲を狭めることも可能である。ただし、狭めることはセキュアな状態ではなくなるので、誤操作の可能性がある。そのため、例えば、ステップＳ５０５またはステップＳ５０８において、範囲を狭めるような操作を行った場合は、図７の占めるような警告を出しても良い。
【００６６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019067132.tif 000003
【図２】
2019067132.tif 000004
【図３】
2019067132.tif 000005
【図４】
2019067132.tif 000006
【図５】
2019067132.tif 000007
【図６】
2019067132.tif 000008
【図７】
2019067132.tif 000009
【図８】
2019067132.tif 000010
【図９】
2019067132.tif 000011