(57)【要約】【課題】安全に機密情報を管理し、かつ、使用利便性を向上させたファイルシステムおよびファイル管理方法を提供する。【解決手段】ファイルシステム１００は、演算部１と、この演算部１からの指示で読み書き可能に接続される主記憶装置２と、主記憶装置２とは別体で設けられて、演算部１からの指示で読み書き可能に接続される外部記憶装置３と、複数のアプリケーション４と、秘匿データ格納領域管理アプリケーション５とを備えている。秘匿データ格納領域はいかなるユーザプロセスからも読出し・書込みが防止され、秘匿データ格納領域を管理する手段と、秘匿データ格納領域の読出し・書込みをする手段を、ある特定のカーネルプロセスのみが持つ。【選択図】図１
2018169740.tif 000002
【特許請求の範囲】
【請求項１】
保護したい秘匿データ格納領域を有する主記憶装置と、
前記秘匿データ格納領域にて、ユーザプロセスからの読出し・書込みを防止する制御手段と、
前記秘匿データ格納領域の読出し・書込みをするカーネルプロセスを用いて、前記秘匿データ格納領域を管理する管理手段と、
を備えていることを特徴とするファイルシステム。
【請求項２】
前記管理手段は、前記秘匿データ格納領域を永続化する際に暗号化する、
ことを特徴とする請求項１に記載のファイルシステム。
【請求項３】
前記管理手段は、前記カーネルプロセスが起動した際に、永続化され暗号化された前記秘匿データ格納領域を復号化し、前記カーネルプロセスが管理する主記憶領域に書込む、ことを特徴とする請求項２に記載のファイルシステム。
【請求項４】
前記管理手段は、ファイルを暗号化するための暗号化鍵を、前記カーネルプロセスによって保護された前記秘匿データ格納領域に保存する、ことを特徴とする請求項３に記載のファイルシステム。
【請求項５】
前記管理手段は、前記秘匿データ格納領域に保存されたファイルについて、前記暗号化鍵による暗号化、および復号化を、前記カーネルプロセスのみにて実行する、ことを特徴とする請求項４に記載のファイルシステム。
【請求項６】
前記管理手段は、暗号化されたファイルのユーザプロセスからの読出し要求に対して、前記カーネルプロセスは、予め許可されたユーザプロセスからの要求に対してのみ、前記暗号化されたファイルを、前記秘匿データ格納領域に保存された暗号化鍵を使って復号化し、その結果をユーザプロセスが管理する主記憶領域に書込むことで、ユーザプロセスに代わって前記読出し要求を前記カーネルプロセスが実行する、ことを特徴とする請求項５に記載のファイルシステム。
【請求項７】
前記管理手段は、ユーザプロセスが許可されたプロセスであるか否かを、要求元ユーザプロセスリストを参照して判定する、ことを特徴とする請求項６に記載のファイルシステム。
【請求項８】
前記管理手段は、暗号化処理の対象を、ある特定のディレクトリパス配下に存在するファイルのみとする、ことを特徴とする請求項４〜請求項７の何れか一項に記載のファイルシステム。
【請求項９】
前記管理手段は、公開鍵認証基盤（ＰＫＩ）またはこれに準じた仕組みを用いて、前記カーネルプロセスを実行可能とする正当性を検証する、ことを特徴とする請求項１〜８の何れか一項に記載のファイルシステム。
【請求項１０】
秘匿データ格納領域管理アプリケーションが、秘匿データ格納領域管理ドライバに対し、秘匿データの取得を要求するステップと、
秘匿データ格納領域管理ドライバが、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであることを検証するステップと、
検証結果を判定するステップと、
検証結果によって、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであると判定された場合は、秘匿データ格納領域管理ドライバが主記憶装置に展開している秘匿データに応答するステップと、
検証結果によって、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションでないと判定された場合は、秘匿データ格納領域管理ドライバが、要求を拒否してデータに応答しないまま、処理を終了するステップとを備える、ことを特徴とするファイル管理方法。
【請求項１１】
前記管理手段は、公開鍵認証基盤（ＰＫＩ）またはこれに準じた仕組みを用いて、前記カーネルプロセスを実行可能とする正当性を検証するステップを備える、ことを特徴とする請求項１０に記載のファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムおよびファイル管理方法に関する。
【背景技術】
【０００２】
従来、計算機の外部記憶装置に機密情報を格納する際は、その情報をファイルシステム上にファイルとして格納し、さらには、暗号化するなどの難読化を行っている（例えば、特許文献１等参照）。
暗号化の方法としては、ファイル単位に暗号化する方法、ファイルシステム単位にディレクトリ全体、ドライブ全体を暗号化する方法、外部記憶装置全体を暗号化する方法などがある。
また、セキュリティチップを用いて、チップ内に暗号鍵を格納し、その鍵を持って外部記憶装置全体を暗号化する、という方法もある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２３０７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来のファイルシステムでは、ファイル単位の暗号化を行う場合、または、暗号化ファイルシステムを用いてディレクトリ全体、ドライブ全体の暗号化を行う場合、ファイルシステム上のファイルは、ユーザプロセスから参照・更新することができる。
【０００５】
このため、マルウェアなど悪意のあるアプリケーションからの機密情報へのアクセスも可能となり、ネットワークを介した機密情報の外部への流出、内容の改ざんが行われるおそれがあった。
また、同時に暗号化に用いる鍵の管理方法、どこにどのように鍵を管理するかを慎重に検討する必要があった。
【０００６】
さらに、外部記憶装置全体を暗号化する場合、暗号化に用いる鍵の管理方法は、同様に問題となり、セキュリティチップを用いた暗号化の場合は、チップの価格が導入障壁となる、という課題があった。
【０００７】
そこで、本発明は、安全に機密情報を管理し、かつ、使用利便性を向上させたファイルシステムおよびファイル管理方法を提供することを課題としている。
【課題を解決するための手段】
【０００８】
本発明に係るファイルシステムは、保護したい秘匿データ格納領域を有する主記憶装置と、秘匿データ格納領域にて、ユーザプロセスからの読出し・書込みを防止する制御手段と、秘匿データ格納領域の読出し・書込みをするカーネルプロセスを用いて、秘匿データ格納領域を管理する管理手段とを備えていることを特徴としている。
【０００９】
このような構成によれば、保護したいデータ格納領域に対するユーザプロセスからの書き込み要求に対して、特定のカーネルプロセスが、例えば予め許可されたユーザプロセスからの要求に対してのみ、この要求をユーザプロセスに代わって実行する。
【発明の効果】
【００１０】
本発明によれば、計算機内に、安全な秘匿データ格納領域を容易に構築できる。
また、その実現方法は、特別なハードウエアを必要とせず、ソフトウエアのみで実現することができる。さらに、秘匿データ格納領域内にファイル暗号化の鍵を格納することができる。
これにより、暗号化ファイルシステムとして活用することができ、暗号鍵の管理方法も単純化することが可能なファイルシステムが提供される。
【図面の簡単な説明】
【００１１】
【図１】実施形態のファイルシステムで、保護したい秘匿データ格納領域を持つファイルシステムのソフトウエア構成を説明する模式的なブロック図である。
【図２】実施形態のファイルシステムで、システムの終了の際に、秘匿データ格納領域管理ドライバが主記憶装置上の秘匿データ領域の内容を、外部記憶装置へ秘匿データファイルとして格納した様子を説明する模式的なブロック図である。
【図３】実施形態のファイルシステムで、秘匿データ格納領域管理ドライバが、システムの起動の際に外部記憶装置に格納されている秘匿データファイルを読み込み、その内容を主記憶装置に展開する際のフローチャートである。
【図４】実施形態のファイルシステムで、秘匿データ格納領域管理ドライバがシステムの終了の際に主記憶装置に展開された秘匿データを外部記憶装置に秘匿データファイルとして格納する際のフローチャートである。
【図５】実施形態のファイルシステムで、秘匿データ格納領域管理ドライバが管理する主記憶装置に展開した秘匿データを秘匿データ格納領域管理アプリケーションから参照する際のフローチャートである。
【図６】実施形態のファイルシステムで、秘匿データ格納領域管理アプリケーションによって秘匿データ格納領域管理ドライバが管理する主記憶装置に展開した保護対象データを更新する際のフローチャートである。
【図７】他の実施形態のファイルシステムで、本発明の保護したいデータ領域を持つファイルシステムを暗号化ファイルシステムとして利用する場合のソフトウエア構成の一実施例を示す図である。
【図８】他の実施形態のファイルシステムで、任意アプリケーションがファイルの書き込みを行う際の暗号化処理に関するフローチャートである。
【図９】他の実施形態のファイルシステムで、任意アプリケーションがファイルの読み込みを行う際の復号化処理に関するフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の実施形態について、図１乃至図７を参照して詳細に示す。説明において、同一の要素には同一の番号を付し、重複する説明は省略する。
【００１３】
図１は、実施形態のファイルシステムの構成を示すものである。
まず、全体の構成から説明すると、実施形態のファイルシステム１００は、演算部１と、演算部１からの指示で読み書き可能に接続される主記憶装置２と、主記憶装置２とは別体で設けられて、演算部１からの指示で読み書き可能に接続される外部記憶装置３と、複数のアプリケーション４と、秘匿データ格納領域管理アプリケーション５とを備えている。
このうち、演算部１は、オペレーティングシステムを含み、アプリケーション４との間で入出力の管理を行う入出力管理部１１と、ファイルシステムフィルタ１２と、ファイルシステムドライバ１３と、ファイル操作システム１４と、秘匿データ格納領域管理ドライバ１５とを有している。
【００１４】
本発明の実施形態では、一般的な計算機に対し、任意アプリケーションからのファイルシステムへの様々な要求をフィルタリングし、本発明固有の処理を備えたファイルシステムフィルタ１２、および秘匿データ格納領域の管理を目的としたカーネルプロセスとなりうる秘匿データ格納領域管理ドライバ１５が追加されている。
【００１５】
また、図１に示すシステムが稼働している状態では、主記憶装置２に秘匿データが格納されている。
さらに、秘匿データ格納領域管理アプリケーション５に、要求元プロセスリストを格納するようにしてもよい。要求元プロセスリストは、アクセス権の設定、要求元が特定されないように、不可視化し、あるいは改ざん防止の措置や、容易になりすまし等が行われないようにするとなおよい。
【００１６】
図２は、実施形態のファイルシステムで、システムの終了の際の様子を説明するものである。
外部記憶装置３には、秘匿データファイル５０が格納されている。
他の構成は、図１と同様であるので、同一符号を付して説明を省略する。
【００１７】
図３は、実施形態のファイルシステムで、秘匿データ格納領域管理ドライバ１５が、システムの起動の際に外部記憶装置に格納されている秘匿データファイルを読み込み、その内容を主記憶装置に展開する際のフローチャートである。
演算部１で処理が開始されると、ステップＳ１では、オペレーティングシステムが秘匿データ格納領域管理ドライバ１５をロードする。
ステップＳ２では、秘匿データ格納領域管理ドライバ１５が外部記憶装置３から秘匿データファイルを読み込み、内容を主記憶装置２に展開する。 
ステップＳ３では、秘匿データ格納領域管理ドライバ１５が秘匿データファイルを外部記憶装置３より削除して、処理を終了する。 
【００１８】
図４は、実施形態で、秘匿データ格納領域管理ドライバ１５がファイルシステム１００の終了の際に主記憶装置２に展開された秘匿データを外部記憶装置３に秘匿データファイルとして格納する際のフローチャートである。
演算部１で処理が開始されると、ステップＳ１１では、秘匿データ格納領域管理ドライバ１５が主記憶装置２に展開している秘匿データを外部記憶装置３に秘匿データファイルとして格納する。 
ステップＳ１２では、オペレーティングシステムが秘匿データ格納領域管理ドライバ１５をアンロードして処理を終了する。
【００１９】
図５は、実施形態のファイルシステムで、秘匿データ格納領域管理ドライバ１５が管理する主記憶装置２に展開した秘匿データを秘匿データ格納領域管理アプリケーションから参照する際のフローチャートである。
演算部１で処理が開始されると、ステップＳ２１では、秘匿データ格納領域管理アプリケーション５は、秘匿データ格納領域管理ドライバ１５に対し、秘匿データの取得を要求する。
ステップＳ２２では、秘匿データ格納領域管理ドライバ１５は、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであり、カーネルプロセスを実行可能とする正当性があることを検証する。前記要求元アプリケーションは、公開鍵認証基盤（ＰＫＩ）またはこれに準じた仕組みを用いて検証されることが好ましい。
ステップＳ２３では、検証結果が判定される。検証結果がＯＫ、すなわち、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであると判定された場合は、ステップＳ２４に進み（ステップＳ２３にて、検証ＯＫ）、検証結果がＮＧ、すなわち、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションではないと判定された場合は、ステップＳ２５に進む（ステップＳ２３にて、検証ＮＧ）。
ステップＳ２４では、秘匿データ格納領域管理ドライバ１５が主記憶装置２に展開している秘匿データに応答して、処理を終了する。
ステップＳ２５では、秘匿データ格納領域管理ドライバ１５は、要求を拒否してデータに応答しないまま、処理を終了する。
【００２０】
図６は、実施形態のファイルシステムで、秘匿データ格納領域管理アプリケーション５によって秘匿データ格納領域管理ドライバ１５が管理する主記憶装置２に展開した保護対象データを更新する際のフローチャートである。
演算部１で処理が開始されると、ステップＳ３１では、秘匿データ格納領域管理アプリケーション５が秘匿データ格納領域管理ドライバ１５に対し、秘匿データの更新を要求する。
ステップＳ３２では、秘匿データ格納領域管理ドライバ１５が要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであることを検証する。
【００２１】
ステップＳ３３では、検証結果が判定される。検証結果がＯＫ、すなわち、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションであると判定された場合は、ステップＳ３４に進み（ステップＳ３３にて、検証ＯＫ）、検証結果がＮＧ、すなわち、要求元アプリケーションが正当な秘匿データ格納領域管理アプリケーションではないと判定された場合は、ステップＳ３５に進む（ステップＳ３３にて、検証ＮＧ）。
ステップＳ３４では、秘匿データ格納領域管理ドライバ１５が主記憶装置２に展開している秘匿データを更新して、処理を終了する。
ステップＳ３５では、秘匿データ格納領域管理ドライバ１５は、要求を拒否してデータを更新しないまま、処理を終了する。
［他の実施形態］
図７は、他の実施形態のファイルシステム２００で、保護したいデータ領域を持つファイルシステムを暗号化ファイルシステムとして利用する場合のソフトウエア構成の一実施例を示す図である。なお、前記実施形態と同一乃至均等な部分については、同一符号を付して説明を省略する。
ファイルシステム２００では、秘匿データ格納領域管理アプリケーション５に、要求元プロセスリスト１６が格納されている。要求元プロセスリスト１６には、アクセス権が設定されていて、改ざんが防止されている。なお、要求元プロセスリスト１６は、要求元が特定されないように、不可視化したり、あるいは他の改ざん防止の措置や、容易になりすまし等が行われないようにするとなおよい。また、秘匿データ格納領域管理ドライバ１５は、公開鍵認証基盤（ＰＫＩ）またはこれに準じた仕組みを用いて要求元プロセスリスト１６の正当性を検証するようにするとなおよい。
この場合、ファイルシステムフィルタ１２には、暗号化・復号化部１７が接続されている。そして、暗号化・復号化部１７の内部の秘匿データ領域には、ファイルの暗号化・復号化に用いる暗号鍵が格納されている。
【００２２】
暗号化・復号化部１７は、書き込み対象となるファイルのファイルパスが予め指定された暗号化対象ディレクトリ配下のファイルである場合のみ、暗号化を行う。また、暗号化・復号化部１７は、読み込み対象となるファイルのファイルパスが予め指定された暗号化対象ディレクトリ配下のファイルである場合のみ、復号化を行う。
【００２３】
図８は、他の実施形態のファイルシステム２００で、任意のアプリケーション４がファイルの書き込み処理を行う際の暗号化処理に関するフローチャートである。
演算部１で書き込み処理が開始されると、ステップＳ５１では、任意のアプリケーション４がオペレーティングシステムの入出力管理部１１を経由して、ファイル操作システム１４に対し、ファイルの書き込みを要求する。
【００２４】
ステップＳ５２では、入出力管理部１１はファイルシステムフィルタ１２に対し、ファイルの書き込み要求を通知する。 
ステップＳ５３では、ファイルシステムフィルタ１２が、秘匿データ格納領域管理ドライバ１５からファイル暗号化に用いる暗号鍵を取得する。秘匿データ格納領域管理ドライバ１５は、公開鍵認証基盤（ＰＫＩ）またはこれに準じた仕組みを用いて暗号鍵の正当性を検証するようにするとなおよい。
ステップＳ５４で、ファイルシステムフィルタ１２は、取得した暗号鍵を用いて、書き込みデータを暗号化する。
ステップＳ５５では、ファイルシステムフィルタ１２が暗号化したデータを持って、ファイルシステムドライバ１３を経由してファイル操作システム１４に対し、ファイルの書き込みを要求する。
ステップＳ５６では、ファイル操作システムが、暗号化したデータをファイルとして格納して書き込み処理が終了する。
【００２５】
図９は、他の実施形態のファイルシステム２００で、任意のアプリケーション４がファイルの読み込みを行う際の復号化処理に関するフローチャートである。
演算部１で読み込み処理が開始されると、ステップＳ７１では、任意のアプリケーション４がオペレーティングシステムの入出力管理部１１を経由して、ファイル操作システム１４に対し、ファイルの読み込みを要求する。
ステップＳ７２では、入出力管理部１１がファイルシステムフィルタ１２に対し、ファイルの読み込み要求を通知する。
ステップＳ７３では、ファイルシステムフィルタ１２は、ファイルシステムドライバ１３を経由して、ファイル操作システム１４より読み込み対象ファイルデータを取得する。
ステップＳ７４では、ファイルシステムフィルタ１２がファイル読み込み要求元プロセス情報を取得する。ファイルシステムフィルタ１２は、予めファイルの復号化を許可されたプロセスリスト１６にファイル読み込み要求元プロセスが含まれるか否かを、秘匿データ格納領域管理ドライバ１５に問い合わせる。 
【００２６】
ステップＳ７５では、ファイルシステムフィルタ１２は、ファイル読み込み要求元プロセスが、予めファイルの復号化を許可された要求元プロセスリストに含まれるか否か、を秘匿データ格納領域管理ドライバ１５に問い合わせる。
ステップＳ７６では、 ファイル読み込み要求元プロセス情報が、予めファイルの復号化を許可された要求元プロセスリストに含まれるか否かが判定される。
要求元プロセスリストに含まれない場合（ステップＳ７６でＮＯ）は、ステップＳ７７に処理が進む。
ステップＳ７７では、ファイルシステムフィルタ１２は、ファイルデータの復号化をすることなく、要求元プロセスに暗号化されたままの読み込み対象ファイルデータを返して処理を終了する。
【００２７】
一方、要求元プロセスリストに含まれる場合（ステップＳ７６でＹＥＳ）は、ステップＳ７８に進む。ステップＳ７８では、ファイルシステムフィルタ１２は、ファイルデータの復号化に用いる暗号鍵を秘匿データ格納領域管理ドライバ１５から取得する。
ステップＳ７９で、ファイルシステムフィルタ１２は、読み込み対象ファイルデータの復号化を行う。
ステップＳ８０で、ファイルシステムフィルタ１２は、要求元プロセスに復号化されたデータを返して処理を終了する。 
【００２８】
以上、本実施形態に係るファイルシステムおよびファイル管理方法について詳述してきたが、本発明はこれらの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは言うまでもない。
たとえば、秘匿データ格納領域管理ドライバ１５は、秘匿データ格納領域を永続化（不揮発性メモリや外部記憶装置３への保存）する際、すなわち、不揮発性メモリや外部記憶装置３に暗号化して記憶し、カーネルプロセスが起動した際に、永続化され、暗号化された秘匿データ格納領域を復号化し、カーネルプロセスが管理する主記憶領域に書込むようにしてもよい。
【００２９】
そして、任意のファイルを暗号化するための暗号化鍵を、カーネルプロセスによって保護された秘匿データ格納領域に保存する。秘匿データ格納領域に保存されたファイルは、暗号化鍵による暗号化、および復号化を、カーネルプロセスのみにて直接実行するようにしてもよい。
この場合、暗号化されたファイルのユーザプロセスからの読出し要求に対して、カーネルプロセスは、予め許可されたユーザプロセスからの要求に対してのみ、前記暗号化されたファイルを、前記秘匿データ格納領域に保存された暗号化鍵を使って復号化し、その結果をユーザプロセスが管理する主記憶領域に書込むことで、ユーザプロセスに代わって前記読出し要求を前記カーネルプロセスが実行することが望ましい。
【００３０】
また、ユーザプロセスが許可されたプロセスであるか否かを、要求元ユーザプロセスリストを参照して判定する。このため、さらにセキュリティレベルを向上させることができる。
【００３１】
そして、暗号化処理は、ある特定のディレクトリパス配下に存在するファイルのみを対象としている。このため、ディレクトリパスを用いてファイルの属性を容易に判断出来て、利便性が向上する。
【００３２】
さらに、前記要求元ユーザプロセスリストは、公開鍵認証基盤（ＰＫＩ）およびこれに準じた仕組みを用いて正当性を検証するとなおよい。
他の構成、及び作用効果については、実施形態と同様であるので、説明を省略する。
【００３３】
上述してきたように、この発明のファイルシステムおよびファイル管理方法は、専用領域をファイルシステム上に構築し、その領域へアクセスできるプロセスを制限し、安全に機密情報を管理しながら利用することが出来、機密情報を保持するファイルシステムである。このため、機密情報ファイルの暗号化・復号化に用いる暗号鍵をユーザプロセスではアクセスできないカーネルプロセスを用いて格納し、ファイルシステムに暗号化・復号化の機能を具備させた。
このため、従来、計算機上の機密情報を暗号化によって保護する際に、暗号鍵を通常ファイルとして保存すると十分なセキュリティが担保できず、高セキィリティ化のためには専用ハードウエア セキュリティチップを必要としていたものが、ソフトウエアによって行えるようになった。
【００３４】
すなわち、実施形態のファイルシステムでは、専用ハードウエアセキィリティチップが提供する、例えば暗号鍵などの秘匿データ保護機能を、ソフトウエアのみで構築することができる。
このため、秘匿データ領域へのアプリケーションによるユーザプロセスからの完全な遮断機構と、特定オペレーティングカーネルプロセスによる、これらの秘匿データ領域の永続的管理機構が得られる。
これにより、これまでは実現困難であったソフトウエア機構のみによる高セキュリティデータ保護機構の構築が可能となった。さらに、この秘匿データ領域で暗号鍵を管理する高セキュリティファイル暗号化システムが提供されて、ユーザ側に意識させることなく、安全に機密情報を管理できるファイルシステムおよびファイル管理方法が提供される。
【符号の説明】
【００３５】
１      演算部
２      主記憶装置
３      外部記憶装置
４      アプリケーション
５      秘匿データ格納領域管理アプリケーション
１１    入出力管理部
１２    ファイルシステムフィルタ
１３    ファイルシステムドライバ
１４    ファイル操作システム
１５    秘匿データ格納領域管理ドライバ（管理手段）
１６    要求元プロセスリスト
１７    暗号化・復号化部
５０    秘匿データファイル
１００，２００  ファイルシステム
【図１】
2018169740.tif 000003
【図２】
2018169740.tif 000004
【図３】
2018169740.tif 000005
【図４】
2018169740.tif 000006
【図５】
2018169740.tif 000007
【図６】
2018169740.tif 000008
【図７】
2018169740.tif 000009
【図８】
2018169740.tif 000010
【図９】
2018169740.tif 000011