(57)【特許請求の範囲】
【請求項１】
主記憶装置と不揮発性の二次記憶装置とを用いて、データを処理する情報処理装置であって、
不揮発性の主記憶装置と、
揮発性の主記憶装置と、
前記データが機密のデータであるか否かを判定する判定手段と、
前記判定手段において前記データが機密のデータであると判定された場合、前記データ
を前記揮発性の主記憶装置に記憶させ、前記判定手段において前記データが機密のデータ
でないと判定された場合、前記データを前記不揮発性の主記憶装置に記憶させる制御手段
と、
前記揮発性の主記憶装置に記憶されているデータを二次記憶装置にスワップアウトさせ
る場合、前記二次記憶装置に暗号化機構が備えられている場合、当該スワップアウトを許
可し、前記二次記憶装置に暗号化機構が備えられていない場合、当該スワップアウトを拒
絶するスワップアウト制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記データの取得元が機密指定の記憶領域である場合、前記データを
機密のデータと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記揮発性の主記憶装置内に、前記機密指定の記憶領域を設定する設定手段を更に有す
ることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判定手段は、前記データの取得元が揮発性の記憶装置である場合、前記データを機
密のデータと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記判定手段は、前記データの取得元が暗号化機構を備えた記憶装置である場合、前記
データを機密のデータであると判定し、前記データの取得元が暗号化機構を備えた記憶装
置でない場合、前記データを機密のデータでないと判定することを特徴とする請求項１に
記載の情報処理装置。
【請求項６】
前記揮発性の主記憶装置に記憶されているデータを二次記憶装置にスワップアウトさせ
る場合、当該データを暗号化して前記二次記憶装置に記憶するスワップアウト制御手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記不揮発性の主記憶装置に記憶されているデータをスワップインさせる場合、当該データを復号して前記揮発性の主記憶装置に記憶するスワップイン制御手段を更に有することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記判定手段は、前記データが暗号化されたデータを復号したデータである場合、前記
データを機密のデータと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
不揮発性の主記憶装置と揮発性の主記憶装置と不揮発性の二次記憶装置とを用いて、データを処理する情報処理方法であって、
前記データが機密のデータであるか否かを判定する判定工程と、
前記判定工程において前記データが機密のデータであると判定された場合、前記データ
を前記揮発性の主記憶装置に記憶させ、前記判定工程において前記データが機密のデータ
でないと判定された場合、前記データを前記不揮発性の主記憶装置に記憶させる制御工程
と、
前記揮発性の主記憶装置に記憶されているデータを二次記憶装置にスワップアウトさせ
る場合、前記二次記憶装置に暗号化機構が備えられている場合、当該スワップアウトを許
可し、前記二次記憶装置に暗号化機構が備えられていない場合、当該スワップアウトを拒
絶するスワップアウト制御工程と、
を有することを特徴とする情報処理方法。
【請求項１０】
コンピュータを、主記憶装置と不揮発性の二次記憶装置とを用いて、データを処理する
情報処理装置であって、
不揮発性の主記憶装置と、
揮発性の主記憶装置と、
前記データが機密のデータであるか否かを判定する判定手段と、
前記判定手段において前記データが機密のデータであると判定された場合、前記データ
を前記揮発性の主記憶装置に記憶させ、前記判定手段において前記データが機密のデータ
でないと判定された場合、前記データを前記不揮発性の主記憶装置に記憶させる制御手段
と、
前記揮発性の主記憶装置に記憶されているデータを二次記憶装置にスワップアウトさせ
る場合、前記二次記憶装置に暗号化機構が備えられている場合、当該スワップアウトを許
可し、前記二次記憶装置に暗号化機構が備えられていない場合、当該スワップアウトを拒
絶するスワップアウト制御手段と、を有することを特徴とする情報処理装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性の主記憶装置を備えた情報処理装置に関する。
【背景技術】
【０００２】
不揮発性で高速な読み書きが可能なメモリが実用化され、パーソナルコンピュータなどの情報処理装置内における主記憶装置としての実装が現実的になってきている。不揮発性の主記憶装置としては、磁気抵抗メモリ（ＭＲＡＭ）、強誘電体メモリ（ＦｅＲＡＭ）、抵抗変化メモリ（ＲｅＲＡＭ）、相変化メモリ（ＰＲＡＭ）などがある。
【０００３】
不揮発性の主記憶装置は、メモリに通電を行うことなくデータを記憶し続けることができる。そのため、不揮発性の主記憶装置を実装した情報処理装置のサスペンド時の電力消費は、揮発性の主記憶装置を実装した情報処理装置に比べてほぼ不要になる。
【０００４】
また、常に、コンピュータプログラムを不揮発性の主記憶装置に保持し続けることができるため、プログラム実行前のロード処理を省略することができ、情報処理装置の起動時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２０４５０７号公報
【特許文献２】特開２０１２−１６８７３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、不揮発性の主記憶装置を実装した情報処理装置のデメリットとして、記憶されている情報の漏えい防止が難しいことが挙げられる。
【０００７】
すなわち、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）などの揮発性の主記憶装置を実装した情報処理装置においては、メモリへの電源供給が停止した場合には、主記憶装置内に記憶されている情報は自然に失われる。
【０００８】
しかしながら、不揮発性の主記憶装置を実装した情報処理装置においては、電源供給が停止しても、主記憶装置内に記憶されている情報は保持されてしまう。よって、電源供給を停止した後、情報が保持されたままの主記憶装置を、情報処理装置から物理的に取り外すことも可能である。
【０００９】
すなわち、不揮発性の主記憶装置を実装した情報処理装置においては、主記憶装置の抜き取りによる情報漏えいのリスクが高くなってしまうという課題がある。
【００１０】
特に、一般的なオペレーティング・システムにおいては、メモリを有効に活用するためのメモリ管理機構が備わっているが、当該メモリ管理機構の処理に起因して情報漏えいが起きる可能性がある。例えば、Ｌｉｎｕｘ（登録商標）のメモリ管理機構では、ユーザもしくはユーザ・プログラムの指示がなかったとしても、オペレーティング・システムの自動的な処理によって、憶装置同士との間で、データのコピーがなされてしまうことがある。
【００１１】
つまり、コンピュータに対してユーザからの明示的な指示がなかったとしても、機密性の高いデータが不揮発性の主記憶装置に記憶されてしまう可能性がある。
【００１２】
上記の情報漏えいの防止策としては、主記憶装置内に記憶されている情報を暗号化するという方法がある。特許文献１には、ＭＲＡＭを実装した情報処理装置における情報漏えい防止技術が開示されている。特許文献１に開示されている技術では、スクランブル情報によって暗号化されたデータをＭＲＡＭに記憶する。暗号化されたデータは、復号用の鍵情報がないと復号することは出来ないようになっている。
【００１３】
しかしながら、特許文献１に開示されている技術においては、スクランブル処理・スクランブル解除処理のための仕組みが必要である。よって、ＭＲＡＭ内のデータを直接利用することができず、データの読み込みおよび書き込みの処理速度が低下するおそれがある。
【００１４】
また、引用文献２には、揮発性のメモリ部と不揮発性のメモリ部とで構成された情報処理装置において、情報漏えいを防止することが開示されている。具体的な情報漏えいを防止する仕組みとしては、データの一部を揮発性のメモリ部に記憶させる。上記処理によって、仮に、不揮発性のメモリ部に記憶されたデータが漏えいしたとしても、データの一部は揮発性のメモリ部に記憶されているため、全てのデータが漏えいすることは防止することが出来る。引用文献２に開示されている技術では、メモリ部に記憶されているデータを暗号化するわけではないので、処理速度が損なわれる可能性は低い。
【００１５】
しかしながら、データの一部については漏えいのリスクがあり、引用文献２に開示されている技術では、保護技術としては必ずしも完全ではなかった。
【００１６】
本発明は、上記課題を鑑みてなされたものであり、不揮発性の主記憶装置を備えた情報処理装置において、データの書き込みおよび読み込みに関する処理速度の低下を抑えつつ、機密データの漏えいを防止することを目的とする。
【課題を解決するための手段】
【００１７】
本発明における情報処理装置は、主記憶装置と不揮発性の二次記憶装置とを用いて、データを処理する情報処理装置であって、不揮発性の主記憶装置と、揮発性の主記憶装置と、前記データが機密のデータであるか否かを判定する判定手段と、前記判定手段において
前記データが機密のデータであると判定された場合、前記データを前記揮発性の主記憶装置に記憶させ、前記判定手段において前記データが機密のデータでないと判定された場合、前記データを前記不揮発性の主記憶装置に記憶させる制御手段と、前記揮発性の主記憶装置に記憶されているデータを二次記憶装置にスワップアウトさせる場合、前記二次記憶装置に暗号化機構が備えられている場合、当該スワップアウトを許可し、前記二次記憶装置に暗号化機構が備えられていない場合、当該スワップアウトを拒絶するスワップアウト制御手段と、を有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、不揮発性の主記憶装置を備えた情報処理装置において、データの書き込みおよび読み込みに関する処理速度の低下を抑えつつ、機密データの漏えいを防止することができる。
【図面の簡単な説明】
【００１９】
【図１】第一の実施形態における情報処理装置の構成を示す図である。
【図２】第一の実施形態における情報処理装置のメモリ管理機構の構成を示す図である。
【図３】第一の実施形態におけるメモリ確保部の処理を示すフローチャートである。
【図４】第一の実施形態におけるデータコピー制限部の処理を示すフローチャートである。
【図５】第一の実施形態におけるデータ出力制限部の処理を示すフローチャートである。
【図６】第一の実施形態におけるデータ入力制限部の処理を示すフローチャートである。
【図７】第二の実施形態における情報処理装置の構成を示す図である。
【図８】第二の実施形態における情報処理装置のメモリ管理機構の構成を示す図である。
【図９】第二の実施形態におけるデータ退避部の処理を示すフローチャートである。
【図１０】第二の実施形態におけるデータ復帰部の処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
（第一の実施形態）
図１は、本実施形態における情報処理装置の概略構成を示す図である。
【００２１】
１００は、本実施形態における情報処理装置の各構成装置を制御するためのＣＰＵ１００である。
【００２２】
１０１は、主記憶装置として機能し、コンピュータプログラムや各種データなどを記憶することが可能な揮発性の主記憶装置１０１である。揮発性の主記憶装置１０１の具体例としては、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）などがある。揮発性の主記憶装置１０１は、通電状態においては、データを保持することが出来るが、通電が停止されると、データは消失してしまう。
【００２３】
１０２は、主記憶装置として機能し、揮発性の主記憶装置１０１と同様に、コンピュータプログラムや各種データなどを記憶することが可能な不揮発性の主記憶装置１０２である。揮発性の主記憶装置１０１に記憶されたデータは、通電が停止されると消失してしまうが、不揮発性の主記憶装置１０２は、通電が停止されたとしても、データを保持することが可能である。不揮発性の主記憶装置１０２の具体例としては、磁気抵抗メモリ（ＭＲＡＭ）、強誘電体メモリ（ＦｅＲＡＭ）、抵抗変化メモリ（ＲｅＲＡＭ）、相変化メモリ（ＰＲＡＭ）などがある。
【００２４】
１０３は、後述する不揮発性の外部記憶装置１０４に備え付けられた暗号化装置１０３である。暗号化装置１０３は、データの暗号化および復号を行う機能を有し、不揮発性の外部記憶装置１０４に入出力されるデータの暗号化および復号を行う。尚、暗号化装置１０３は、不揮発性の外部記憶装置１０４の同一個体内に搭載されていてもよい。
【００２５】
１０４は、コンピュータプログラムや各種データを記憶することが出来る不揮発性の外部記憶装置１０４である。不揮発性の外部記憶装置１０４は、二次記憶装置として機能する。不揮発性の外部記憶装置１０４の具体例としては、ハードディスク・ドライブ（ＨＤＤ）やソリッド・ステイト・ドライブ（ＳＳＤ）などである。
【００２６】
１０５は、不揮発性の外部記憶装置１０４と同様に、コンピュータプログラムや各種データを記憶することが出来る不揮発性の外部記憶装置１０５である。不揮発性の外部記憶装置１０４には、暗号化装置１０３が備え付けられていたが、不揮発性の外部記憶装置１０５には備え付けられていない。
【００２７】
デバイス１０６は、ＣＰＵ１００によって初期化される周辺機器であって、ＰＣＩ接続のグラフィックボードやＵＳＢ接続のスキャナ、プリンタなど様々な機器である。尚、デバイス１０６は、複数の周辺機器から構成されても良い。
【００２８】
システム起動の際には、ブートローダはオペレーティング・システムを不揮発性の主記憶装置１０２にロードする。オペレーティング・システムは、不揮発性の主記憶装置１０２の領域を用いて、オペレーティング・システム自身の初期化の処理を行う。更に、オペレーティング・システムは、揮発性の主記憶装置１０１と不揮発性の主記憶装置１０２とをコンピュータプログラムで利用可能な状態にする。
【００２９】
システム起動後、コンピュータプログラムを実行する処理は以下の通りとなる。すなわち、ＣＰＵ１００は、不揮発性の外部記憶装置１０４もしくは不揮発性の外部記憶装置１０５に記憶されているコンピュータプログラムを揮発性の主記憶装置１０１または不揮発性の主記憶装置１０２に展開する。
【００３０】
ただし、不揮発性の主記憶装置１０２に既にコンピュータプログラムが記憶されている場合、上記展開の処理を省略することが可能である。ＣＰＵ１００は、揮発性の主記憶装置１０１または不揮発性の主記憶装置１０２からコンピュータプログラムをフェッチして処理を実行する。
【００３１】
図２は、本実施形態における情報処理装置のメモリ管理機構の構成を示す図である。
【００３２】
図２に示す通り、本実施形態におけるメモリ管理機構は、メモリ確保部２００、データコピー制限部２０１、データ出力制限部２０２、データ入力制限部２０３から構成されている。尚、メモリ管理機構を構成する各機構は、オペレーティング・システム２０４の制御によって実現され、情報処理装置のメモリ管理を担う。具体的には、メモリ確保部２００は、ディマンド・ページングのメモリ確保処理などを行う。データコピー制限部２０１は、コピー・オン・ライト機構などに含まれるメモリコピー処理などを行う。データ出力制限部２０２は、スワップアウトのデータ出力処理などを行う。データ入力制限部２０３は、キャッシュ入力処理などを行う。
【００３３】
図２における主記憶装置２０５は、図１における揮発性の主記憶装置１０１及び不揮発性の主記憶装置１０２から構成される。不揮発性の外部記憶装置２０６は、図１における暗号化装置１０３、不揮発性の外部記憶装置１０４、不揮発性の外部記憶装置１０５から構成される。
【００３４】
メモリ管理機構を構成する各機構は、オペレーティング・システム２０４から要求を受け付け、主記憶装置２０５へアクセスすることで、主記憶装置２０５を構成する揮発性の主記憶装置１０１及び不揮発性の主記憶装置１０２を利用する。
【００３５】
また、データ出力制限部２０２及びデータ入力制限部２０３は、不揮発性の外部記憶装置２０６へ暗号化装置１０３を介してアクセスするか、不揮発性の外部記憶装置２０６へ直接アクセスする。不揮発性の外部記憶装置２０６は複数あってもよく、単体でもよい。
【００３６】
続いて、メモリ管理機構を構成する各機構が行う処理について、図３〜図６を用いて説明する。
【００３７】
図３は、本実実施形態におけるメモリ確保部２００の処理を示したフローチャートである。同時に、本実施形態におけるディマンド・ページングのメモリ確保処理を示すフローチャートでもある。以下、各ステップの処理について説明する。
【００３８】
（ステップＳ３００）本ステップから処理を開始する。
【００３９】
（ステップＳ３０１）ステップＳ３０１においては、メモリ確保部２００は、ユーザもしくはユーザ・プログラムがシステムコールによりメモリ確保要求を行ったことを検知する。メモリ確保要求は、オペレーティング・システム２０４を介して受け付ける。
【００４０】
（ステップＳ３０２）ステップＳ３０２においては、ステップＳ３０１におけるメモリ確保要求に基づき、メモリ確保部２００は、仮想メモリのメモリ領域を確保する。
【００４１】
（ステップＳ３０３）ステップＳ３０３においては、メモリ確保部２００は、ユーザもしくはユーザ・プログラムがシステムコールに基づき、機密情報の指定を受け付ける。本システムコールは、仮想メモリ領域を機密データ用とする要求であり、オペレーティング・システム２０４から受け付ける。尚、機密情報の指定は、仮想メモリ領域の一部を指定するものであっても良いし、仮想メモリ領域の全体を指定するものであっても良い。また、本システムコールは、ステップＳ３０１のシステムコールと統一しても良い。
【００４２】
（ステップＳ３０４）ステップＳ３０４においては、メモリ確保部２００は、判定手段として機能し、ステップＳ３０３において機密情報の指定があるか否かを判定する。機密情報の指定があると判定された場合は、ステップＳ３０５に処理を進める。機密情報の指定がないと判定された場合は、ステップＳ３０６に処理を進める。
【００４３】
（ステップＳ３０５）ステップＳ３０５において、メモリ確保部２００は、機密とする領域情報を主記憶装置２０５に記憶する。
【００４４】
（ステップＳ３０６）ステップＳ３０６においては、メモリ確保部２００は、ページフォルト例外を受け付ける。ユーザもしくはユーザ・プログラムの確保した領域に書き込みが行われると、メモリ確保部２００は、ＣＰＵ１００からページフォルト例外を受け付けることになる。
【００４５】
（ステップＳ３０７）ステップＳ３０７においては、メモリ確保部２００は、制御手段として機能し、ステップＳ３０４において機密情報の指定があったか否かを判定する。機密情報の指定があった場合、ステップＳ３０８に処理を進める。機密情報の指定がなかった場合、ステップＳ３０９に処理を進める。
【００４６】
（ステップＳ３０８）ステップＳ３０８においては、ページフォルト例外対象の仮想メモリアドレスと主記憶装置２０５に記憶された機密とする領域情報とが重なるか否かを判定する。ページフォルト例外対象の仮想メモリアドレスと領域情報が重なると判定された場合、ステップＳ３１０に処理を進める。ページフォルト例外対象の仮想メモリアドレスと領域情報が重ならないと判定された場合、ステップＳ３０９に処理を進める。
【００４７】
（ステップＳ３０９）ステップＳ３０９においては、メモリ確保部２００は、不揮発性の主記憶装置１０２の空き容量を確認した上で、物理メモリ領域を確保する。物理メモリ確保後、ステップＳ３１１に処理を進める。尚、本ステップにおける処理は、空き容量が十分かどうかという指標だけではなく、主記憶装置の転送速度を考慮し、メモリ確保を行うべき主記憶装置を決定してもよい。
【００４８】
（ステップＳ３１０）ステップＳ３１０においては、メモリ確保部２００は、機密データ用の領域として、揮発性の主記憶装置１０１から物理メモリを確保する。空き容量が十分であれば、物理メモリ確保後、ステップＳ３１１に処理を進める。
【００４９】
（ステップＳ３１１）ステップＳ３１１においては、メモリ確保部２００は、仮想メモリアドレスと、確保された物理メモリアドレスとを関連付ける。
【００５０】
（ステップＳ３１２）本ステップで処理を終了させる。
【００５１】
尚、メモリ確保部２００は、上述のステップＳ３１０において、オペレーティング・システム２０４から直接、機密として物理メモリを確保する要求を受け付け、揮発性の主記憶装置１０１から物理メモリを確保してもよい。
【００５２】
また、メモリ確保部２００は、既に通常データとしてメモリが確保されている場合であっても、対象となるメモリ領域を機密データ用とする指定を受け付けることも可能である。
【００５３】
この場合、メモリ確保部２００は、機密指定の記憶領域を設定する設定手段として金城する。
【００５４】
まず、ユーザもしくはユーザ・プログラムは、システムコールにより、既に物理メモリが割り当てられた仮想メモリ領域を機密データ用と指定する。指定された仮想メモリ領域に対応する物理メモリ領域が不揮発性の主記憶装置１０２に属する場合、メモリ確保部２００は、不揮発性の主記憶装置１０２から確保した物理メモリの替わりに、揮発性の主記憶装置１０１から物理メモリを確保する。メモリ確保部２００は、元の物理メモリのデータを新たに確保した物理メモリへコピーし、仮想メモリの関連付けを新たに確保した物理メモリ領域へ変更する。元の物理メモリが、他の仮想メモリと関連付けられていない場合、メモリ確保部２００は元の物理メモリ領域を解放する。データが暗号化されたデータを復号したデータである場合、揮発性の主記憶装置に記憶するように制御しても良い。以上が、メモリ確保部２００の処理の説明である。
【００５５】
図４は、本実施形態におけるデータコピー制限部２０１の処理を示すフローチャートである。同時に、本実施形態におけるコピー・オン・ライト機構などに含まれるメモリコピー処理を示すフローチャートである。以下、各ステップの処理について説明する。
【００５６】
（ステップＳ４００）本ステップから処理を開始する。
【００５７】
（ステップＳ４０１）ステップＳ４０１において、データコピー制限部２０１は、主記憶装置２０５内でのメモリコピー要求をオペレーティング・システム２０４から受け付ける。
【００５８】
（ステップＳ４０２）ステップＳ４０２においては、コピー元の物理メモリアドレスが揮発性の主記憶装置２０６であるか否かを判定する。本ステップにおいて、コピー元が揮発性の主記憶装置２０６に属すると判定された場合は、ステップＳ４０４に処理を進める。また、コピー元が揮発性の主記憶装置２０６に属すると判定されなかった場合、すなわち、不揮発性の主記憶装置２０７に属すると判定された場合は、ステップＳ４０３に処理を進める。
【００５９】
（ステップＳ４０３）ステップＳ４０３においては、データコピー制限部２０１は不揮発性の主記憶装置２０７から物理メモリを確保する。
【００６０】
（ステップＳ４０４）ステップＳ４０４においては、データコピー制限部２０１は揮発性の主記憶装置２０６から物理メモリを確保する。
【００６１】
（ステップＳ４０５）ステップＳ４０５において、データコピー制限部２０１はコピー元の物理メモリのデータを新たに確保した物理メモリへコピーする。
【００６２】
（ステップＳ４０６）本ステップで処理を終了させる。
【００６３】
以上の処理により、データコピー制限部２０１は、異なる種類の主記憶装置の間でデータのコピー処理を制限することで、機密データと一般データの混在を防ぐことが可能となる。
【００６４】
尚、データコピー制限部２０１は、メモリコピー処理だけでなく、移動処理及びマージ処理についても、同一種類の主記憶装置内で処理するように制限してもよい。ここでのマージ処理とは、データが重複する物理メモリ領域が存在する場合、重複するデータを一つの物理メモリ領域にまとめ、他の物理メモリ領域を解放する処理である。本実施形態におけるデータコピー制限部２０１は、メモリ領域の内容が同一であっても、主記憶装置の種類が異なる場合は、マージ処理を行わないようにする。
【００６５】
図５は、本実施形態におけるデータ出力制限部２０２の処理を示すフローチャートである。同時に、本実施形態におけるスワップアウトのデータ出力処理を示すフローチャートである。以下、各ステップの処理について説明する。
【００６６】
（ステップＳ５００）本ステップから処理を開始する。
【００６７】
（ステップＳ５０１）ステップＳ５０１において、データ出力制限部２０２は、オペレーティング・システム２０４からスワップアウトの要求を受け付ける。
【００６８】
（ステップＳ５０２）ステップＳ５０２において、データ出力制限部２０２は、スワップアウト元の物理メモリアドレスが揮発性の主記憶装置１０１と不揮発性の主記憶装置１０２のどちらに属するかを判定する。
【００６９】
（ステップＳ５０３）ステップＳ５０３において、スワップアウト元が不揮発性の主記憶装置１０２であると判定された場合、スワップアウトが許可されたものとして、ステップＳ５０５へ進める。また、スワップアウト元が揮発性の主記憶装置１０１であると判定された場合、ステップＳ５０４に処理を進める。
【００７０】
（ステップＳ５０４）ステップＳ５０３においては、暗号機構が存在しないか否かを判定する。暗号機構が存在しないと判定された場合は、ステップＳ５０７に処理を進める。また、暗号機構が存在すると判定された場合は、ステップＳ５０６に処理を進める。
【００７１】
（ステップＳ５０５）ステップＳ５０５においては、データ出力制限部２０２は、ユーザもしくはユーザ・プログラムが予め指定した不揮発性の主記憶装置１０２のスワップアウト先へデータをスワップアウトする。
【００７２】
（ステップＳ５０６）ステップＳ５０６においては、データ出力制限部２０２は、ユーザもしくはユーザ・プログラムが予め指定した揮発性の主記憶装置１０１のスワップアウト先へデータをスワップアウトする。
【００７３】
（ステップＳ５０７）ステップＳ５０７においては、データ出力制限部２０２は、オペレーティング・システム２０４から受け付けたスワップアウトの要求を拒絶する。
【００７４】
（ステップＳ５０８）本ステップにおいて処理を終了させる。
【００７５】
以上の処理により、データ出力制限部２０２は、スワップアウトによるデータ出力を制限することで、揮発性の主記憶装置１０１に記憶されている機密データの漏えいを防ぐことが出来る。
【００７６】
尚、ステップＳ５０４において、暗号機構が存在しないと判定された場合であっても、ユーザもしくはユーザ・プログラムによってスワップアウト対象のデータが予め暗号化されている場合は、ステップＳ５０６へ進む処理を行っても良い。ステップＳ５０４において、暗号機構が存在しないと判定され、かつスワップアウト対象のデータが予め暗号化されていない場合は、ステップＳ５０７へ進む処理を行っても良い。
【００７７】
また、不揮発性の外部記憶装置２０８の構成及び設定は、動的に変化する可能性がある。そのため、本実施形態におけるオペレーティング・システム２０４は、不揮発性の外部記憶装置２０８の構成及び設定の変更の際に情報を再取得しても良い。すなわち、装置構成や設定の変更がなされた場合、各不揮発性の外部記憶装置１０４および不揮発性の外部記憶装置１０５に暗号化装置１０３が備わっているか否かの情報を再度、取得する。もしくはオペレーティング・システム２０４による暗号化が行われるか否かの情報を再度取得しても良い。取得された情報は主記憶装置２０５に保存される。
【００７８】
また、本実施形態におけるオペレーティング・システム２０４は、揮発性の主記憶装置１０１のスワップアウト先と、不揮発性の主記憶装置１０２のスワップアウト先を、同一のスワップ・パーティションにする指示を受け付けないようにしても良い。同一のスワップ・パーティションにデータをスワップアウトしてしまうと、スワップ元が不明になり、スワップ元と同種の主記憶装置へスワップインできなくなるためである。
【００７９】
また、不揮発性の外部記憶装置２０８へ通常のデータを書き込む際に、データをまとまったサイズで出力するため、オペレーティング・システム２０４はデータを一時的に主記憶装置２０５へキャッシュしても良い。データ出力制限部２０２は、このキャッシュ出力処理にも制限を行っても良い。データ出力制限部２０２は、不揮発性の主記憶装置２０６内のデータを一時的にキャッシュする場合、キャッシュするメモリを揮発性の主記憶装置１０１からのみ確保し、データをキャッシュへ出力し、キャッシュから不揮発性の外部記憶装置２０８へ出力する。
【００８０】
以上の処理によって、揮発性の主記憶装置１０１の機密データの漏えいを防ぐことが可能となる。
【００８１】
図６は、本実施形態におけるデータ入力制限部２０３の処理を示すフローチャートである。同時に、本実施形態における不揮発性の外部記憶装置２０８のキャッシュ入力処理を示すフローチャートである。以下、各ステップの処理について説明する。
【００８２】
（ステップＳ６００）本ステップから処理を開始する。
【００８３】
（ステップＳ６０１）ステップＳ６０１においては、データ入力制限部２０３は、不揮発性の外部記憶装置２０８内のデータをキャッシュとして読み込む要求をオペレーティング・システム２０４から受け付ける。
【００８４】
（ステップＳ６０２）ステップＳ６０２においては、読み込み元となる不揮発性の外部記憶装置２０８に暗号化機構が存在しないか否かを判定する。暗号化機構が存在しないと判定された場合、ステップＳ６０４に処理を進める。暗号化機構が存在すると判定された場合、ステップＳ６０３に処理を進める。
【００８５】
（ステップＳ６０３）ステップＳ６０３においては、データ入力制限部２０３は揮発性の主記憶装置２０６から物理メモリを確保する。
【００８６】
（ステップＳ６０４）ステップＳ６０４においては、データ入力制限部２０３は不揮発性の主記憶装置２０７から物理メモリを確保する。
【００８７】
（ステップＳ６０５）ステップＳ６０５において、データ入力制限部２０３は、読み込み対象である不揮発性の外部記憶装置２０８内のデータを確保した物理メモリにキャッシュとして読み込む。
【００８８】
（ステップＳ６０６）本ステップにおいて処理を終了させる。
【００８９】
尚、データ入力制限部２０３は、スワップインの処理を制御しても良い。データ入力制限部２０３は、ユーザもしくはユーザ・プログラムが指定したスワップアウト先の情報を遡り、スワップアウト元と同一の主記憶装置２０５である揮発性の主記憶装置２０６もしくは不揮発性の主記憶装置２０７から物理メモリを確保する。そして、データ入力制限部２０３は、揮発性の主記憶装置２０６のスワップアウトされたデータを、確保した物理メモリへ入力することでスワップインを行う。
【００９０】
また、サスペンド時は、オペレーティング・システム２０４が揮発性の主記憶装置２０６の全てのデータを不揮発性の外部記憶装置２０８にスワップアウトする。そして、サスペンドから復帰する際に、不揮発性の外部記憶装置２０８から揮発性の主記憶装置２０６にスワップインするか、ページが要求された段階で不揮発性の外部記憶装置２０８から揮発性の主記憶装置２０６に読み込みを行う。これにより、電源断を伴うサスペンドであっても、揮発性の主記憶装置２０６内のデータが失われることを防止することが出来る。以上の処理により、本実施形態によれば、データの取得元の情報に基づき記憶すべき主記憶装置を選択するため、処理速度の低下を防止しつつ、機密情報の漏えいを防止することが出来る。
【００９１】
（第二の実施形態）
次に、第二の実施形態に係る情報処理装置の情報漏えい防止手法について説明する。本実施形態は、不揮発性の主記憶装置を備えた情報処理装置において、揮発性の主記憶装置内のデータのスワップアウト制御・スワップイン制御を行う手法に関する。尚、第一実施形態と同様の構成及び動作については、説明を省略する。
【００９２】
図７は、本実施形態における情報処理装置の概略構成を示す図である。前述の通り、１００〜１０６の構成は第一の実施形態と同様であるため、説明を省略する。
【００９３】
７００は、暗号化のための機構を備えた耐タンパ性の機器であるセキュリティ・チップ７００である。暗号化のための機構としては、ＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）などがある。尚、図７においては、第一の実施形態における暗号化装置１０３及び不揮発性の外部記憶装置１０４は図示されていない。しかしながら、本実施形態においても、情報処理装置は、暗号化装置１０３及び不揮発性の外部記憶装置１０４を備えても良い。
【００９４】
図８は、本実施形態における情報処理装置のメモリ管理機構の構成を示す図である。
【００９５】
本メモリ管理機構は、メモリ確保部２００及びデータコピー制限部２０１、データ入力制限部２０３、データ退避部８００、データ復帰部８０１から構成されている。データ退避部８００及びデータ復帰部８０１は、オペレーティング・システム８０２から要求を受け付け、主記憶装置２０５へアクセスする。主記憶装置２０５にアクセスすることによって、主記記憶装置２０５を構成する揮発性記憶装置１０１及び不揮発性記憶装置１０２を利用する。
【００９６】
また、データ入力制限部２０３及びデータ退避部８００、データ復帰部８０１は、不揮発性の外部記憶装置８０３へアクセスする。不揮発性の外部記憶装置８０３へアクセスすることによって、不揮発性の外部記憶８０３を構成する不揮発性の外部記憶装置１０５を利用する。不揮発性の外部記憶装置８０３は、暗号化装置１０３を介して不揮発性の外部記憶装置１０４へアクセスしても良い。
【００９７】
データ退避部８００もしくはデータ復帰部８０１は、オペレーティング・システム８０２を初期化する際には、不揮発性の主記憶装置１０２の領域を一定サイズ確保する。そして、不揮発性の主記憶装置１０２を、スワップデバイスとしてオペレーティング・システム８０２に登録する。
【００９８】
ここで、オペレーティング・システム８０２におけるスワップアウトの判断処理の概要について説明する。オペレーティング・システム８０２は、揮発性の主記憶装置１０１に記憶されているデータのページをリスト管理することで、ページ回収順を決定する。このリストは、先頭から順にページごとの使用頻度を示している。オペレーティング・システム８０２は、揮発性の主記憶装置１０１の空き容量が足りなくなると、最低使用頻度のページから順に回収処理を行う。回収処理において、実際に使用されていないページであると判断されたデータはスワップアウトの対象となり、対象ページのスワップアウトをデータ退避部８００へ要求する。回収処理において、実際は使用されているページであると判断されたデータに関しては、対象ページをリストの末尾へ移動させる。
【００９９】
図９は、本実施形態におけるデータ退避部８００の処理を示すフローチャートである。同時に、本実施形態におけるスワップアウトのデータ出力処理を示すフローチャートである。以下、各ステップの処理について説明する。
【０１００】
（ステップＳ９００）本ステップから処理を開始する。
【０１０１】
（ステップＳ９０１）ステップＳ９０１において、データ退避部８００は、オペレーティング・システム８０２からスワップアウトの要求を受け付ける。
【０１０２】
（ステップＳ９０２）ステップＳ９０２において、データ退避部８００は、スワップアウト元の物理メモリアドレスが揮発性の主記憶装置１０１と不揮発性の主記憶装置１０２のどちらに属するかを判定する。
【０１０３】
（ステップＳ９０３）ステップＳ９０３において、スワップアウト元が不揮発性の主記憶装置１０２であるか否かを判定する。スワップアウト元が不揮発性の主記憶装置１０２であると判定された場合は、ステップＳ９０５に処理を進める。また、スワップアウト元が不揮発性の主記憶装置１０２でないと判定された場合は、ステップＳ９０４に処理を進める。
【０１０４】
（ステップＳ９０４）ステップＳ９０４においては、不揮発性の外部記憶８０３へデータをスワップアウトする。
【０１０５】
（ステップＳ９０５）ステップＳ９０５においては、データを暗号化するためのメモリ領域を揮発性の主記憶から確保する。
【０１０６】
（ステップＳ９０６）ステップＳ９０６においては、オペレーティング・システム８０２が生成する共通鍵を用いて、ステップＳ９０５で確保したメモリ領域上でスワップアウト対象のデータを暗号化する。
【０１０７】
（ステップＳ９０７）ステップＳ９０７において、暗号化したデータを不揮発性の主記憶装置１０２へスワップアウトする。
【０１０８】
（ステップＳ９０８）ステップＳ９０８において処理を終了させる。
【０１０９】
本実施形態において、暗号化にＴＰＭを利用する場合、オペレーティング・システム８０２はコールド・ブートの際に、揮発性の主記憶装置１０１からスワップアウト対象にはならないメモリ領域を確保する。そして、確保したメモリ領域に対して適切な共通鍵を生成する。
【０１１０】
ＴＰＭは、生成した共通鍵をＴＰＭ内部の公開鍵を用いて暗号化し、確保したメモリ領域にＴＰＭの子孫鍵を保存する。この鍵は、データ退避部８００及びデータ復帰部８０１が、暗号化・複合のために共通鍵として用いる。データ退避部８００及びデータ復帰部８０１は、生成した共通鍵を用いて暗号化・復号を行う。揮発性の主記憶装置１０１のイメージを生成する際は、共通鍵を暗号化した上でスワップアウトする必要がある。そのため、共通鍵を保存したメモリ領域を揮発性の主記憶装置１０１内でコピーし、共通鍵を保存したオリジナルのメモリ領域をスワップアウト対象に変更し、コピーした共通鍵によりスワップアウトを行う。
【０１１１】
サスペンドからブートする際に、オペレーティング・システム８０２は、揮発性の主記憶装置１０１からメモリ領域を確保し、ＴＰＭから秘密鍵を取得する。共通鍵を保存したメモリ領域は、スワップアウト対象から除外する。
【０１１２】
データ退避部８００もしくはデータ復帰部８０１は、不揮発性の外部記憶装置８０３にもスワップアウト・スワップインを行う。不揮発性の外部記憶装置８０３へのスワップアウト・スワップインの処理は第一の実施形態と同様であるため、説明は省略する。
【０１１３】
尚、暗号化・復号は、ＴＰＭ内部の機能により処理しても良い。また、データ退避部８００及びデータ復帰部８０１は、機密データを暗号化もしくは復号する際には、データの圧縮もしくは伸張を行っても良い。
【０１１４】
不揮発性の主記憶装置１０２のスワップデバイスのサイズは、動的に変更しても良い。オペレーティング・システム８０２は一定時間ごとにスワップデバイスのサイズを監視する。スワップデバイスの使用量が一定サイズ以上になると、オペレーティング・システム８０２が不揮発性の主記憶装置１０２から新たな領域を確保してスワップデバイスに追加登録することで、スワップデバイスのサイズを拡大する。オペレーティング・システム８０２は、スワップデバイスの使用量が一定サイズ以下になると、スワップデバイスから解放可能な領域を解放することでスワップデバイスのサイズを縮小する。
【０１１５】
図１０は、本実施形態におけるデータ復帰部８０１の処理を示すフローチャートである。同時に、本実施形態におけるスワップインのデータ入力処理を示すフローチャートである。以下、各ステップの処理について説明する。
【０１１６】
（ステップＳ１０００）本ステップから処理を開始する。
【０１１７】
（ステップＳ１００１）ステップＳ１００１において、データ復帰部８０１は、オペレーティング・システム８０２からスワップインの要求を受け付ける。
【０１１８】
（ステップＳ１００２）ステップＳ１００２において、データ復帰部８０１は、スワップアウト先の物理メモリアドレスが揮発性の主記憶装置１０１と不揮発性の主記憶装置１０２のどちらに属するかを判定する。
【０１１９】
（ステップＳ１００３）ステップＳ１００３において、スワップアウト先が不揮発性の主記憶装置１０２であるか否かを判定する。不揮発性の主記憶装置１０２であると判定された場合は、ステップＳ１００６に処理を進める。一方、不揮発性の主記憶装置１０２でないと判定された場合は、ステップＳ１００４に処理を進める。
【０１２０】
（ステップＳ１００４）ステップＳ１００４においては、不揮発性の主記憶装置でメモリ領域を確保する。
【０１２１】
（ステップＳ１００５）揮発性の外部記憶８０３のスワップデータをステップＳ１００４で確保したメモリ領域へスワップインする。
【０１２２】
（ステップＳ１００６）ステップＳ１００６においては、スワップアウトしたデータが不揮発性の主記憶装置１０２に存在するか否かを判定する。スワップアウトしたデータが不揮発性の主記憶装置１０２に存在しないと判定された場合、すなわち、スワップアウト先が不揮発性の外部記憶８０３である場合、ステップＳ１０１０に処理を進める。一方で、スワップアウトしたデータが不揮発性の主記憶装置１０２に存在すると判定された場合、ステップＳ１００７に処理を進める。
【０１２３】
（ステップＳ１００７）ステップＳ１００７においては、揮発性の主記憶装置でメモリ領域を確保する。
【０１２４】
（ステップＳ１００８）ステップＳ１００８において、不揮発性の主記憶装置１０２のスワップデータを、ステップＳ１００７で確保したメモリ領域（揮発性の主記憶装置）へスワップインする。
【０１２５】
（ステップＳ１００９）ステップＳ１００９において、ステップＳ１００８でスワップインしたデータを、ステップＳ１００７で確保したメモリ領域を用いて復号する。
【０１２６】
（ステップＳ１０１０）ステップＳ１０１０においては、揮発性の主記憶装置でメモリ領域を確保する。
【０１２７】
（ステップＳ１０１１）ステップＳ１０１１において、不揮発性の外部記憶８０３のスワップデータをステップＳ１０１０で確保したメモリ領域へスワップインし、ステップＳ１００７へ処理を進める。
【０１２８】
（ステップＳ１０１２）ステップＳ１０００において、処理を終了させる。
【０１２９】
オペレーティング・システム８０２は、メモリ領域の解放やプロセスの終了によりスワップアウトされたデータが不要になった場合、該当するスワップアウト先のデータを破棄しても良い。機密データが不揮発性の主記憶装置１０２で暗号化され、さらに、不揮発性の外部記憶装置１０５へスワップアウトされている場合、不揮発性の主記憶装置１０２と不揮発性の外部記憶装置１０５の両方のデータを破棄する。
【０１３０】
サスペンド時は、オペレーティング・システム８０２が揮発性の主記憶装置１０１の全てのデータを不揮発性の主記憶装置１０２に、暗号化を行った上でスワップアウトする。不揮発性の主記憶装置１０２に十分な空き容量がない場合は、不揮発性の主記憶装置１０２のデータを不揮発性の外部記憶装置８０３にスワップアウトする。そして、サスペンドから復帰する際に、不揮発性の主記憶装置１０２から揮発性の主記憶装置１０１に復号を行った上でスワップインし、必要であれば不揮発性の外部記憶装置８０３から不揮発性の主記憶装置１０２にスワップインする。もしくは、ページが要求された段階でスワップインする。これにより、電源断を伴うサスペンドであっても、揮発性の主記憶装置１０１内のデータが失われない。
【０１３１】
以上のように本実施形態では、揮発性の主記憶と不揮発性の主記憶を備えた装置に対し、機密データを揮発性の主記憶で管理することにより、機密情報の漏えいを防止することができる。
【０１３２】
本実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が、コンピュータが読み取り可能なプログラムを読み出して実行する処理である。
【０１３３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006351397.tif 000002
【図２】
0006351397.tif 000003
【図３】
0006351397.tif 000004
【図４】
0006351397.tif 000005
【図５】
0006351397.tif 000006
【図６】
0006351397.tif 000007
【図７】
0006351397.tif 000008
【図８】
0006351397.tif 000009
【図９】
0006351397.tif 000010
【図１０】
0006351397.tif 000011