(57)【要約】【課題】本発明は、ハイバネーション状態への移行時であっても、不揮発性メモリに保存されたデータから機密情報が漏洩することを防止する情報処理装置を提供する。【解決手段】ハイバネーションデータ状態への移行時に、アプリケーションに割り当てられたメモリ領域（セキュリティ領域）のデータを含まないようにハイバネーションデータを生成して不揮発性メモリに保存する。そして、ハイバネーション状態からの復帰時には、不揮発性メモリからハイバネーションデータを揮発性メモリに書き戻した後、メモリ領域の割り当て要求と共に渡された通知関数を呼び出すことで、アプリケーションによりセキュリティデータを再生成する。【選択図】図７
2014098977.tif 000002
【特許請求の範囲】
【請求項１】
ハイバネーション機能を備え、揮発性メモリと不揮発性メモリとを有する情報処理装置において、
前記ハイバネーション機能によりハイバネーション状態に移行する前に、前記揮発性メモリに保存されているデータを前記不揮発性メモリに保存するハイバネーション手段と、
前記揮発性メモリに割り当てられたメモリ領域がセキュリティ領域か否かを判定するセキュリティ領域判定手段とを備え、
前記ハイバネーション手段は、前記セキュリティ領域判定手段によりセキュリティ領域でないと判定されたメモリ領域に保存されたデータのみを前記不揮発性メモリに保存するデータとすることを特徴とする情報処理装置。
【請求項２】
前記揮発性メモリに割り当てられたメモリ領域の先頭アドレスと対応付けて通知関数を管理するメモリ領域管理手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記セキュリティ領域判定手段は、前記揮発性メモリのメモリ領域のうち前記メモリ領域管理手段により管理された領域をセキュリティ領域と判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ハイバネーション手段は、前記ハイバネーション機能によるハイバネーション状態からの復帰時に、前記不揮発性メモリに保存されていたデータを前記揮発性メモリに書き戻す際に、前記メモリ領域の先頭アドレスと対応付けられた通知関数を呼び出して、前記セキュリティ領域に保存されていたデータを再生成することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
データを暗号化及び復号化するセキュリティ手段の有無を判定するセキュリティ有無判定手段をさらに備え、
前記セキュリティ有無判定手段によりセキュリティ手段がないと判定された場合、前記ハイバネーション手段は、前記セキュリティ領域判定手段によりセキュリティ領域でないと判定されたメモリ領域に保存されたデータのみを前記不揮発性メモリに保存するデータとすることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ハイバネーション手段は、前記セキュリティ領域判定手段によりセキュリティ領域でないと判定されたメモリ領域に保存されたデータを消去することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
ハイバネーション機能を備え、揮発性メモリと不揮発性メモリとを有する情報処理装置の制御方法において、
前記ハイバネーション機能によりハイバネーション状態に移行する前に、前記揮発性メモリに保存されているデータを前記不揮発性メモリに保存するハイバネーション工程と、
前記揮発性メモリに割り当てられたメモリ領域がセキュリティ領域か否かを判定するセキュリティ領域判定工程と、
前記セキュリティ領域判定工程にてセキュリティ領域でないと判定されたメモリ領域に保存されたデータのみを前記不揮発性メモリに保存する保存工程とを備えることを特徴とする制御方法。
【請求項８】
請求項７に記載の制御方法を情報処理装置に実行させるためのコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、プログラムに関し、特に、ハイバネーション実行時のセキュリティ管理に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）等の情報処理装置や当該装置上で動作するプログラムに対して複数の機能が付加されるのに伴い、各機能を有効にするための処理が追加され、電源投入から装置が利用可能になるまでの起動時間が長くなる傾向にある。起動時間を短縮する技術の一つとして、ハイバネーション技術が挙げられる。ハイバネーション技術を用いた場合、例えば、情報処理装置では、電源断の直前に、ＣＰＵレジスタやＤＲＡＭなどの揮発性メモリに保存されているデータをハードディスク等の不揮発性メモリに保存する。そして、装置の起動時に、不揮発性メモリに保存されたデータを揮発性メモリに書き戻す。これにより、電源断の直前の動作状態が実現されることから、ハードウェアやソフトウェアの初期化処理を行う必要があるコールドブートと比べて、起動時間を短縮することが可能となる。
【０００３】
しかしながら、揮発性メモリ上の全てのデータを不揮発性メモリに保存する場合、当該データに機密情報が含まれていることもあるため、不揮発性メモリからデータを取り出して解析することにより、機密情報が漏洩する可能性がある。このような問題に対処するため、秘密分散法を用いて揮発性メモリ上のデータを分散する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１３９９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、揮発性メモリの全てのデータが機密情報である場合は稀であることから、データ配置に手を加えることは一定のオーバヘッドを伴う。
【０００６】
また、情報処理装置では、様々なアプリケーションプログラムが動作するため、暗号化しようとすると、データ全体を対象にせざるを得ず、暗号化や復号化の処理に時間がかかってしまう。
【０００７】
本発明は、上記問題に鑑みて成されたものであり、ハイバネーション状態への移行時であっても、不揮発性メモリに保存されたデータから機密情報が漏洩することを防止する情報処理装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の情報処理装置は、ハイバネーション機能を備え、揮発性メモリと不揮発性メモリとを有する情報処理装置において、前記ハイバネーション機能によりハイバネーション状態に移行する前に、前記揮発性メモリに保存されているデータを前記不揮発性メモリに保存するハイバネーション手段と、前記揮発性メモリに割り当てられたメモリ領域がセキュリティ領域か否かを判定するセキュリティ領域判定手段とを備え、前記ハイバネーション手段は、前記セキュリティ領域判定手段によりセキュリティ領域でないと判定されたメモリ領域に保存されたデータのみを前記不揮発性メモリに保存するデータとすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ハイバネーション状態に移行する前に、揮発性メモリに保存されていたデータのうち機密情報が含まれていないデータのみを不揮発性メモリに保存する。これにより、ハイバネーション状態への移行時であっても、不揮発性メモリに保存されたデータから機密情報が漏洩することを防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【図２】アプリケーションによりＤＲＡＭ１０３に割り当てられるメモリ領域の一例を示す図である。
【図３】メモリマネージャによりＤＲＡＭ１０３に割り当てられるメモリ領域の一例を示す図である。
【図４】メモリマネージャによるＤＲＡＭ１０３のメモリ領域割り当て処理を示すフローチャートである。
【図５】情報処理装置１００における装置停止処理の一例を示すフローチャートである。
【図６】情報処理装置１００における装置起動処理の一例を示すフローチャートである。
【図７】本発明の第１の実形態におけるハイバネーション移行処理の一例を示すフローチャートである。
【図８】本発明の第１の実施形態におけるハイバネーション復帰処理の一例を示すフローチャートである。
【図９】本発明の第２の実施形態におけるハイバネーション移行処理の一例を示すフローチャートである。
【図１０】本発明の第２の実施形態におけるハイバネーション復帰処理の一例を示すフローチャートである。
【図１１】情報処理装置１００における通知関数の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１２】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【００１３】
情報処理装置１００は、ブートＲＯＭ１０１、ＣＰＵ１０２、ＤＲＡＭ１０３、ビデオコントローラ１０４、ＬＡＮコントローラ１０６、ＬＡＮ＿Ｉ／Ｆ１０７、ＵＳＢコントローラ１０８、ディスクコントローラ１１１、ＳＳＤ１１２、ＨＤＤ１１３を備える。また、情報処理装置１００の本体は、表示手段であるディスプレイ装置１０５、操作手段であるキーボード１０９やマウス１１０に接続されている。
【００１４】
電源ＯＮにより情報処理装置１００に電力が供給されると、ＣＰＵ１０２は、ブートＲＯＭ１０１に保存された初期化プログラムを実行する。初期化プログラムによる初期化処理を実行した後、ＣＰＵ１０２は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）１１２やＨＤＤ１１３に保存されたプログラムを、揮発性メモリであるＤＲＡＭ１０３にコピーして逐次実行する。不揮発性メモリであるＳＳＤ１１２やＨＤＤ１１３には、情報処理装置１００を制御するためのオペレーティングシステム（ＯＳ）や各種アプリケーションプログラム、プログラムファイルやデータファイルが保存される。
【００１５】
ビデオコントローラ１０４は、ディスプレイ装置１０５に出力する画面情報を制御する。ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コントローラ１０６は、ＬＡＮ＿Ｉ／Ｆ１０７を介して接続されたネットワークとの間で情報の授受を行う。
【００１６】
ＵＳＢコントローラ１０８は、接続されたキーボード１０９やマウス１１０等の操作装置の制御を行う。ディスクコントローラ１１１は、ＳＳＤ１１２やＨＤＤ１１３の制御を行う。
【００１７】
情報処理装置１００は、ハイバネーション機能を備える。ハイバネーション機能とは、上述したように、装置がハイバネーション状態移行時に、揮発性メモリであるＤＲＡＭ１０３に保存されているデータを不揮発性メモリであるＳＳＤ１１２やＨＤＤ１１３に保存する。そして、ハイバネーション状態からの復帰時に、ＳＳＤ１１２やＨＤＤ１１３に保存されていたデータをＤＲＡＭ１０３に書き戻して、装置の状態を電源断前の状態に復元する機能である。
【００１８】
本実施形態では、ハイバネーション状態移行時にＤＲＡＭ１０３からＨＤＤ１１３等に保存され、ハイバネーション状態からの復帰時にＨＤＤ１１３等からＤＲＡＭ１０３に書き戻されるデータをハイバネーションデータとも呼ぶ。このハイバネーションデータは、ＤＲＡＭ１０３に保存されていたデータからセキュリティデータが除外されたものであり、ハイバネーション状態移行時に生成される。
【００１９】
次に、情報処理装置１００上で動作するアプリケーションプログラム（以下、単に「アプリケーション」とも呼ぶ。）によりＤＲＡＭ１０３に割り当てられるメモリ領域の一例について説明する。
【００２０】
図２は、アプリケーションによりＤＲＡＭ１０３に割り当てられるメモリ領域の一例を示す図である。
【００２１】
アプリケーションからメモリ領域の割り当て要求を受けると、ＯＳは、ＤＲＡＭ１０３のうち利用可能な未使用のメモリ領域を検出し、そのメモリ領域の先頭アドレスをアプリケーションに返却する。例えば、図示のメモリ領域２０２，２０３がアプリケーションのメモリ領域として割り当てられる。一般的に、アプリケーションからのメモリ領域の割り当て要求に対して、ＤＲＡＭ１０３内のメモリ領域が非連続に分割されて割り当てられてしまう。そのため、ハイバネーション状態移行時に、各メモリ領域に保存されているデータに対してセキュリティデータを含むか否かを判定する必要がある。
【００２２】
図３は、メモリマネージャによりＤＲＡＭ１０３に割り当てられるメモリ領域の一例を示す図である。
【００２３】
情報処理装置１００では、メモリ領域を管理する不図示のメモリマネージャ（メモリ領域管理手段）がＯＳに対して要求することで、図示のように、システム設計時に設定されたサイズ分のメモリ領域３０２が装置起動時に割り当てられる。メモリ領域３０２は、管理ブロック３０３とアプリケーションへの割り当て領域３０４から構成される。
【００２４】
管理ブロック３０３は、メモリ領域の先頭アドレス３０５、メモリ領域の領域サイズ３０６、及び通知関数アドレス３０７から構成される管理エントリーが複数集まったものである。通知関数は、ハイバネーション状態からの復帰時に呼び出され、データ初期化のきっかけとなる。
【００２５】
１つ目の管理エントリーには、アプリケーションへの割り当て領域３０４の先頭アドレスと領域サイズが設定される。２つ目以降の管理エントリーには、アプリケーションからのメモリ領域の割り当て要求に対して割り当てられたメモリ領域と対応付けられた先頭アドレス、領域サイズ、及び通知関数のアドレスが設定される。
【００２６】
図４は、メモリマネージャによるＤＲＡＭ１０３のメモリ領域割り当て処理を示すフローチャートである。
【００２７】
メモリマネージャは、アプリケーションからメモリ領域の割り当て要求があると、要求に含まれる引数が正常かどうかを判定する（ステップＳ４０１）。正常でないと判定した場合は、エラーを返却して（ステップＳ４０２）、本処理を終了する。
【００２８】
一方、ステップＳ４０１で引数が正常であると判定した場合、メモリマネージャは、予め確保されたメモリ領域３０２に、要求されたサイズ分のメモリ領域を割り当てることができるかどうかを判定する（ステップＳ４０３）。この判定は、図３の管理ブロック３０３を検索することで、割り当て領域３０４のうち空き領域サイズと要求サイズとの比較により行われる。
【００２９】
ステップＳ４０３で要求サイズ分のメモリ領域を割り当てることができないと判定した場合は、エラーを返却して（ステップＳ４０２）、本処理を終了する。一方、ステップＳ４０３で要求サイズ分のメモリ領域を割り当てることができると判定した場合（ステップＳ４０３でＹＥＳ）、ステップＳ４０４へ進む。
【００３０】
ステップＳ４０４では、メモリマネージャは、割り当てるメモリ領域の先頭アドレスと領域サイズ及び要求に含まれる通知関数のアドレスが設定された管理エントリーを管理ブロック３０３に追加する。
【００３１】
次に、メモリマネージャは、割り当てたメモリ領域の先頭アドレスをアプリケーションに返却して（ステップＳ４０５）、本処理を終了する。
【００３２】
図５は、情報処理装置１００における装置停止処理の流れを示すフローチャートである。図６は、情報処理装置１００における装置起動処理の流れを示すフローチャートである。なお、図示の処理は、ＣＰＵ１０２が実行するものとする。
【００３３】
図５において、情報処理装置１００の操作者や管理者等から停止指示があると、ＣＰＵ１０２は、ＣＰＵ１０２内のレジスタ（不図示）やＤＲＡＭ１０３にキャッシュされているデータをＨＤＤ１１３等に書き込むことで状態を確定させる（ステップＳ５０１）。
【００３４】
次に、ステップＳ５０２では、ＣＰＵ１０２は、停止モードがハイバネーションモードか通常モードかを判定する。停止モードについては、情報処理装置１００の操作者等がディスプレイ装置１０５等を介して予め設定し、その設定情報がＨＤＤ１１３等に保存されている。ＣＰＵ１０２は、保存されている設定情報を参照することで停止モードがハイバネーションモードか通常モードかの判定を行う。なお、停止モードには、ハイバネーションモードと通常モードの２種類があるものとするが、他のモードがあってもよい。
【００３５】
ステップＳ５０２で停止モードがハイバネーションモードであると判定した場合、ハイバネーション移行処理が実行され（ステップＳ５０３）、ステップＳ５０４に進む。ステップＳ５０３のハイバネーション移行処理の詳細については後述する。
【００３６】
ステップＳ５０２で停止モードが通常モードであると判定した場合、ステップＳ５０４に進み、ＣＰＵ１０２は、情報処理装置１００に搭載された各種ハードウェアの終了処理を行って装置を停止状態にする。
【００３７】
図６において、操作者等から起動要求があると、ＣＰＵ１０２は、ブートＲＯＭ１０１から読み出したＯＳにより、情報処理装置１００に搭載された各種ハードウェアの初期化処理を行い、ハードウェアを利用可能な状態とする（ステップＳ６０１）。
【００３８】
次に、ステップＳ６０２では、ＣＰＵ１０２は、図５のステップＳ５０２と同様に、停止モードがハイバネーションモードか通常モードかを判定する。停止モードがハイバネーションモードであると判定した場合、ハイバネーション復帰処理が実行（ステップＳ６０３）された後、本処理を終了する。ステップＳ６０３のハイバネーション復帰処理の詳細については後述する。
【００３９】
一方、ステップＳ６０２において停止モードが通常モードであると判定した場合、ＣＰＵ１０２は、アプリケーションをＨＤＤ１１３等からＤＲＡＭ１０３に読み込んで実行（ステップＳ６０４）して、本処理を終了する。
【００４０】
次に、図５のステップＳ５０３におけるハイバネーション移行処理と図６のステップＳ６０３におけるハイバネーション復帰処理について図７及び図８を用いて説明する。
【００４１】
図７は、図５のステップＳ５０３におけるハイバネーション移行処理の一例を示すフローチャートである。
【００４２】
ステップＳ７０１では、ＣＰＵ１０２は、ＤＲＡＭ１０３に割り当てられたメモリ領域のうち、先頭の揮発領域ブロックから順にセキュリティ領域か否かを判定する。ここで揮発領域ブロックとは、ハイバネーションデータ生成時に、一度にＤＲＡＭ１０３に保存されたデータを読み込む単位（サイズ）である。セキュリティ領域か否かの判定は、対象となる揮発領域ブロックが、メモリマネージャにより割り当てられた割り当て領域３０４に含まれるか否かで行われる。メモリマネージャは、アプリケーションからメモリ領域の割り当て要求があると、割り当て領域３０４内のメモリ領域が割り当てられることから、このメモリ領域はセキュリティ領域と判定される。そして、このメモリ領域に保存されているデータはハイバネーションデータには書き込まれない。
【００４３】
一方、メモリマネージャによらずメモリ領域の割り当てが行われた場合は、ＤＲＡＭ１０３内の何れの領域にメモリ領域が割り当てられるかが不定になるので、この領域はセキュリティ領域では無いと判定される。そして、この領域に保存されているデータは、ハイバネーションデータに書き込まれる。ステップＳ７０１は、ＣＰＵ１０２はセキュリティ領域判定手段として機能する。
【００４４】
ステップＳ７０１で揮発領域ブロックがセキュリティ領域であると判定した場合、ＣＰＵ１０２は、当該揮発領域ブロックを１ブロック分スキップして（ステップＳ７０２）、ステップＳ７０４へ進む。なお、ＤＲＡＭ１０３のうち、割り当て領域３０４をセキュリティ領域として判断して当該領域をスキップするが、管理ブロック３０３はスキップされることはない。つまり、管理ブロック３０３のデータはハイバネーションデータに含まれることになる。
【００４５】
一方、ステップＳ７０２で揮発領域ブロックがセキュリティ領域ではないと判定した場合、ステップＳ７０３に進む。
【００４６】
ステップＳ７０３では、ＣＰＵ１０２は、当該揮発領域ブロックに保存されているデータをハイバネーションデータに書き込む。そして、対象となる揮発領域ブロックを１つ進める（ステップＳ７０４）。
【００４７】
次に、ステップＳ７０５では、ＣＰＵ１０２は、揮発領域の終端に達したかどうかを判定する。揮発領域の終端とは、ＤＲＡＭ１０３の終端を指す。ステップＳ７０５で終端に達していないと判定した場合、ステップＳ７０１の処理に戻る一方、終端に達している判定した場合、ＣＰＵ１０２は、生成したハイバネーションデータをＨＤＤ１１３等に保存して（ステップＳ７０６）、リターンする。
【００４８】
このように、ＤＲＡＭ１０３内の先頭から終端まで、揮発領域ブロック分ずつセキュリティ領域かどうかを判定し、当該領域に保存されているデータをハイバネーションデータに書き込む処理を繰り返し行う。
【００４９】
図８は、図６のステップＳ６０３におけるハイバネーション復帰処理の一例を示すフローチャートである。
【００５０】
ステップＳ８０１では、ＣＰＵ１０２は、ＨＤＤ１１３等に保存されているハイバネーションデータを１ブロック分だけＤＲＡＭ１０３に書き戻す。ここでいうブロックとは、上述した揮発領域ブロックを意味する。
【００５１】
次に、ステップＳ８０２では、ＣＰＵ１０２は、ハイバネーションデータにおける対象となるブロックを１ブロック分先に進め、ステップＳ８０３でハイバネーションデータの終端に達したかどうかを判定する。ステップＳ８０３でハイバネーションデータの終端に達していないと判定した場合、ステップＳ８０１の処理に戻る。
【００５２】
一方、ステップＳ８０３でハイバネーションデータの終端に達していると判定した場合、ステップＳ８０４へ進む。
【００５３】
ステップＳ８０４では、メモリマネージャの制御により、管理ブロック３０３の２つ目以降の管理エントリーを参照して、通知関数アドレス３０７に基づく通知関数を呼び出してセキュリティデータを再生成して、リターンする。このように、アプリケーションが通知関数を呼び出すことでセキュリティデータが再生成される。
【００５４】
通知関数は、割り当てられたメモリ領域がハイバネーション移行処理によりクリアされることから、ハイバネーション復帰処理が完了した後に呼び出されている。例えば、暗号化を行うプログラムが暗号鍵を保持するためにメモリ領域を利用している場合の通知関数の処理を図１１に示す。
【００５５】
通知関数の処理では、まず、鍵情報の構築が行われ（ステップＳ１１０１）、鍵情報を当該メモリ領域に書き込む（ステップＳ１１０２）といった処理が実行される。
【００５６】
メモリ領域毎に用途は異なるため、その用途により通知関数の処理は異なり、例えば、メモリ領域を一時的な情報の保持に用いている場合は、メモリ領域には利用する毎に値が設定されるため、通知関数の処理として何も行わないこともあり得る。
【００５７】
本実施形態によれば、アプリケーションからのメモリ領域の割り当て要求に対して、メモリマネージャが予め確保されたメモリ領域からメモリ領域を割り当てるようにする。そして、ハイバネーションデータ生成時に、予め確保されたメモリ領域のデータをハイバネーションデータに含ませないようにして、ハイバネーション状態からの復帰時には、ハイバネーションデータを揮発性メモリに書き戻す。その後、メモリ領域の割り当て要求と共に渡された通知関数を呼び出すことで、アプリケーションによりセキュリティデータを再生成する。このように、セキュリティデータがハイバネーションデータに含まれないことから、ＨＤＤ１１３等の不揮発性メモリを取り外してハイバネーションデータを抽出することにより機密情報が漏えいすることを抑止することが可能となる。
【００５８】
［第２の実施形態］
本発明の第２の実施の形態では、図１に示す構成が上記第１の実施の形態と同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第１の実施の形態と異なる点のみを説明する。
【００５９】
本発明の第２の実施形態に係る情報処理装置は、データを暗号化及び復号化するセキュリティ装置に接続することができる。ハイバネーション状態移行時に揮発性メモリに保存されているデータをセキリュティ装置により暗号化してハイバネーションデータを生成する。そして、ハイバネーション状態からの復帰時には、不揮発性メモリに保存されている、暗号化されたハイバネーションデータをセキリュティ装置により復号化して揮発性メモリに書き戻す構成を有する。
【００６０】
図９は、本発明の第２の実施形態におけるハイバネーション移行処理の一例を示すフローチャートである。
【００６１】
ステップＳ９０１では、ＣＰＵ１０２は、装置１００本体にセキュリティ装置（不図示）が接続されているか否かを判定する。ステップＳ９０１では、ＣＰＵ１０２はセキュリティ有無判定手段として機能する。
【００６２】
ステップＳ９０１でセキュリティ装置が接続されていないと判定した場合は、図７に示した第１の実施形態におけるハイバネーション移行処理が実行される（ステップＳ９０２）。一方、ステップＳ９０１でセキュリティ装置が接続されていると判定した場合には、セキュリティ装置によりＤＲＡＭ１０３に保存されている全てのデータが暗号化され（ステップＳ９０３）、ハイバネーションデータが生成される（ステップＳ９０４）。ＣＰＵ１０２は、ステップＳ９０４で生成されたハイバネーションデータをＨＤＤ１１３等に保存して（ステップＳ９０５）、本処理を終了する。
【００６３】
図１０は、本発明の第２の実施形態におけるハイバネーション復帰処理の一例を示すフローチャートである。
【００６４】
ステップＳ１００１では、ＣＰＵ１０２は、装置１００本体にセキュリティ装置が接続されているか否かを判定する。ステップＳ１００１では、ＣＰＵ１０２はセキュリティ有無判定手段として機能する。
【００６５】
ステップＳ１００１でセキュリティ装置が接続されていないと判定した場合は、図８に示した第１の実施形態におけるハイバネーション復帰処理が実行される（ステップＳ１００２）。一方、ステップＳ１００１でセキュリティ装置が接続されていると判定した場合には、ＨＤＤ１１３等に保存されていたハイバネーションデータが読み出されてセキュリティ装置により復号化される（ステップＳ１００３）。そして、ＤＲＡＭ１０３に書き戻される（ステップＳ１００４）。その後、装置１００が起動状態に復帰する。
【００６６】
なお、本実施形態では、情報処理装置にセキュリティ装置（セキュリティ手段）を接続する形態について説明するが、情報処理装置にデータを暗号化及び復号化するセキュリティ機能を付加する構成であってもよい。この場合、ステップＳ９０１，Ｓ１００１では、セキュリティ機能の有無を判定する構成となる。また、セキュリティ装置による暗号化、復号化の方法はどのような方法であってもよい。
【００６７】
本実施形態によれば、情報処理装置１００にセキュリティ装置が接続されている場合には、ハイバネーション状態移行時に、揮発性メモリに保存されているデータを暗号化してハイバネーションデータを生成する。そして、ハイバネーション状態から復帰時に、ハイバネーションデータをセキュリティ装置で復号化して、揮発性メモリに書き戻す。このように、情報処理装置がセキュリティ機能を有する場合には、揮発性メモリに機密情報が保存されていても、暗号化されてハイバネーションデータに書き込まれるため、ハイバネーションデータからの機密情報の漏洩を防止することが可能となる。
【００６８】
［第３の実施形態］
本発明の第３の実施の形態では、図１に示す構成が上記第１の実施の形態と同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第１の実施の形態と異なる点のみを説明する。
【００６９】
上記第１及び第２の実施形態では、一時的に揮発性メモリ或いは不揮発性メモリに保持されたセキュリティ情報が漏洩する場合もある。そこで、セキュリティ領域に保存されているデータを完全消去処理する。完全消去処理とは、使用したデータを削除する時或いはシステム終了時に、完全消去対象となるデータやファイルに対して、オールゼロや乱数等の特定パターンで上書きを行うものである。
【００７０】
本実施形態における情報処理装置１００では、完全消去処理が有効になっている場合、アプリケーションへの割り当て領域３０４を完全消去対象として完全消去処理後に、通常のハイバネーション処理を行う。そして、揮発性メモリに保存されている全データをハイバネーションデータに保存した後に、情報処理装置１００をハイバネーション状態とする。そして、ハイバネーション状態から復帰時には、図８に示したハイバネーション復帰処理を行うようにする。
【００７１】
本実施形態によれば、完全消去処理が有効になっている場合に、アプリケーションへの割り当て領域３０４を完全消去処理対象として完全消去処理を行った後、通常のハイバネーション処理を行う。そして、揮発性メモリに保存されている全データをハイバネーションデータに保存する。さらに、ハイバネーション状態からの復帰時に、第１の実施形態におけるハイバネーションデータの揮発性メモリへの書き戻しと、アプリケーションに対する通知を行う。ハイバネーションデータには完全消去処理により無効化されたデータが含まれるため、機密情報が漏えいすることを抑止することが可能となる。
【００７２】
上記第１から第３の実施形態では、本発明を情報処理装置に適用した形態について説明したが、これ限定されず、画像形成装置や画像処理装置、その他の電子機器等に対しても適用可能であり、上述した本発明の効果が得られることは言うまでもない。
【００７３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７４】
１００  情報処理装置
１０２  ＣＰＵ
１０３  ＤＲＡＭ
１１３  ＨＤＤ
【図１】
2014098977.tif 000003
【図２】
2014098977.tif 000004
【図３】
2014098977.tif 000005
【図４】
2014098977.tif 000006
【図５】
2014098977.tif 000007
【図６】
2014098977.tif 000008
【図７】
2014098977.tif 000009
【図８】
2014098977.tif 000010
【図９】
2014098977.tif 000011
【図１０】
2014098977.tif 000012
【図１１】
2014098977.tif 000013