JP2007122391A - 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 - Google Patents
暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 Download PDFInfo
- Publication number
- JP2007122391A JP2007122391A JP2005313368A JP2005313368A JP2007122391A JP 2007122391 A JP2007122391 A JP 2007122391A JP 2005313368 A JP2005313368 A JP 2005313368A JP 2005313368 A JP2005313368 A JP 2005313368A JP 2007122391 A JP2007122391 A JP 2007122391A
- Authority
- JP
- Japan
- Prior art keywords
- page
- segment
- address space
- memory
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】暗号化プログラムの耐タンパ性を向上できるようにする。
【解決手段】HDD1は、実行時にプロセスアドレス空間に配置される、暗号化プログラム11を含む各種プログラムを格納する。プロセスアドレス空間に配置されたプログラムはページ単位にメモリ3にロードされる。仮想メモリ管理(VMM)モジュール320は、プロセスアドレス空間とメモリ3のアドレス空間としての実メモリ空間との間のページ単位のマッピングを管理する。仮想メモリ管理モジュール320のセグメント管理部321は、プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で管理すると共に、プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な実メモリ空間のページ数の上限を表す制限値を設定する。
【選択図】 図1
【解決手段】HDD1は、実行時にプロセスアドレス空間に配置される、暗号化プログラム11を含む各種プログラムを格納する。プロセスアドレス空間に配置されたプログラムはページ単位にメモリ3にロードされる。仮想メモリ管理(VMM)モジュール320は、プロセスアドレス空間とメモリ3のアドレス空間としての実メモリ空間との間のページ単位のマッピングを管理する。仮想メモリ管理モジュール320のセグメント管理部321は、プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で管理すると共に、プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な実メモリ空間のページ数の上限を表す制限値を設定する。
【選択図】 図1
Description
本発明は、ストレージ装置に格納された暗号化プログラムを復号して実行するのに好適な情報処理装置及びメモリ管理方法に関する。
最近、情報処理装置(電子装置)で実行されるプログラムとして、暗号化されたプログラム(暗号化プログラム)が用いられることがある。この暗号化プログラムは、暗号化されていない通常のプログラム(つまり非暗号化プログラム)と同様に、ハードディスクドライブのようなストレージ装置に格納されている。このストレージ装置に格納されている暗号化プログラムは、情報処理装置における当該プログラムの実行時に復号されて、当該情報処理装置のメモリに展開される。つまりメモリには、復号されたプログラムが存在する。この状態では、メモリに存在する復号されたプログラムは、第3者によるリバースエンジニアリングによって不正に解析される可能性がある。
そこで、例えば特許文献1は、復号されたプログラムを、装置毎に、或いは時刻などのパラメータに基づき、メモリの異なる位置にロード(展開)する技術(先行技術)を開示している。この先行技術によれば、復号されたプログラムは、当該プログラムが実行される情報処理装置毎に、或いは実行される時刻等の状況に応じて、メモリの異なる位置にロードされる。このため先行技術においては、メモリに存在する復号されたプログラムが第3者によるリバースエンジニアリングによって不正に解析されるのを困難にすることができる。
特開2005−071055号公報(段落0007)
上記先行技術において、復号されたプログラムがロードされるメモリの位置が、情報処理装置毎に、或いは時刻等に応じて変えられる。しかしながら、復号されたプログラム自体はメモリに存在する。このため先行技術においては、復号されたプログラムが第3者により不正に解析されるおそれは依然として残り、耐タンパ性の点で必ずしも十分ではない。
本発明は上記事情を考慮してなされたものでその目的は、実行時に復号される暗号化プログラムの耐タンパ性を向上できる情報処理装置及びメモリ管理方法を提供することにある。
本発明の1つの観点によれば暗号化プログラムを復号して実行する情報処理装置が提供される。この情報処理装置は、実行時にプロセスアドレス空間に配置される、暗号化プログラムを含む各種プログラムを格納するストレージ装置と、前記プロセスアドレス空間に配置されたプログラムがページ単位にロードされるメモリと、前記メモリにロードされたプログラムを実行するCPUと、前記プロセスアドレス空間と前記メモリのアドレス空間としての実メモリ空間との間のページ単位のマッピングを管理する仮想メモリ管理モジュールであって、前記プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で管理すると共に、前記プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な前記実メモリ空間のページ数の上限を表す制限値を設定するセグメント管理手段を含む仮想メモリ管理モジュールとを具備する。
本発明によれば、仮想メモリ管理モジュールによるメモリ管理として、暗号化の有無をプロセスアドレス空間のセグメント単位で管理すると共に、プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な実メモリ空間のページ数の上限を管理することにより、暗号化プログラムのうち復号された状態でメモリに存在するプログラム部分のサイズを制限することができ、当該暗号化プログラムの耐タンパ性を向上することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。この情報処理装置は例えばパーソナルコンピュータであり、主として、ハードディスクドライブ(HDD)1、ハードディスクドライブコントローラ(HDDコントローラ)2、メモリ3、CPU4及びシステムバス5から構成される。
図1は本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。この情報処理装置は例えばパーソナルコンピュータであり、主として、ハードディスクドライブ(HDD)1、ハードディスクドライブコントローラ(HDDコントローラ)2、メモリ3、CPU4及びシステムバス5から構成される。
HDD1は、各種のプログラム、データを格納するストレージ装置として用いられる。本実施形態では、HDD1に格納されているプログラムが、暗号化プログラム11及び非暗号化プログラム12を含むものとする。暗号化プログラム11及び非暗号化プログラム12は、記憶媒体、例えば光ディスクにより提供されるものとする。この光ディスクに記憶された暗号化プログラム11及び非暗号化プログラム12は例えば光ディスクドライブ(図示せず)により図1の情報処理装置に読み込まれてHDD1に格納される。HDD1に格納されるプログラムが、ネットワークを介して転送されても構わない。またHDD1に代えて、フラッシュROMのような書き換え可能な不揮発性メモリをストレージ装置として用いても構わない。HDDコントローラ2は、HDD11へのアクセスを制御する。
メモリ3は、実行中のアプリケーションプログラム(アプリケーション)31等を格納する主記憶を構成する。アプリケーション31は、実行時に例えばHDD1からメモリ3に一定サイズのページ単位でロードされる。メモリ3はまた、オペレーティングシステム(OS)32を格納する。OS32は情報処理装置の起動時に例えばHDD1からメモリ3にロードされる。
OS32は仮想メモリ管理モジュール(以下、VMMモジュールと称する)320を含む。VMMモジュール320は、プロセスアドレス空間と呼ばれる仮想アドレス空間(仮想メモリアドレス空間)とメモリ3のアドレス空間としての実メモリ空間との間のページ単位のマッピングを管理する。仮想メモリ管理モジュール320は、セグメント管理部321、ページフォールト処理部322及び制限判定部323を含む。
セグメント管理部321は、プロセスアドレス空間に配置される実行中のプログラムをセグメント単位及びページ単位で管理する。セグメント管理部321はまた、プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で管理すると共に、プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な実メモリ空間のページ数の上限を表す制限値を設定する。
ページフォールト処理部322は、プロセスアドレス空間に配置されたプログラムの実行のために当該プロセスアドレス空間内の目的のページがアクセスされた結果ページフォールトが発生した場合に以下のページフォールト処理を実行する。即ちページフォールト処理部322は、目的のページが属するセグメントに割り当てられる実メモリ空間のページ数がセグメント管理部321によって設定されている制限値を超えないように、上記目的のページに実メモリ空間のページを割り当てるメモリ割り当てを実行し、当該割り当てられたページに上記目的のページの内容をロードする。
制限判定部323は、上記ページフォールトが発生した場合、上記目的のページに実メモリ空間のページが割り当てられたならば、上記目的のページが属するセグメントに割り当てられる実メモリ空間のページ数が上記制限値を超えるかを判定する。
ページフォールト処理部322は、消去部322a、割り当て部322b、暗号化判定部322c及び復号部322dを含む。
消去部322aは、制限判定部323の判定結果に応じて、目的のページが属するセグメントにおいて制限値を超える既にメモリ割り当て済みのプロセスアドレス空間のページの内容を実メモリ空間から消去する。割り当て部322bは、実行中のプログラムの各ページ(仮想ページ)に対する実アドレス空間(実メモリアドレス空間)のページ(実ページ)の割り当てを次のように行う。即ち割り当て部322bは、目的のページが属するセグメントにおいて上記制限値を超える既にメモリ割り当て済みのプロセスアドレス空間のページの内容がロードされている実メモリ空間のページを、当該目的のページに割り当てる。
暗号化判定部322cは、プロセスアドレス空間に配置された実行すべきプログラムのうち、目的のページが属するセグメントに配置されたプログラム部分が暗号化されているかを判定する。復号部322dは、割り当て部322bによって割り当てられたページにロードされたプログラム部分を、暗号化判定部322cの判定結果に応じて復号する。
VMMモジュール320は、プロセスアドレス空間に配置されるプログラムの各ページ(仮想ページ)に、実メモリ空間内のいずれのページ(実ページ)が割り当てられているかを管理するためのマッピングテーブル33を例えばメモリ3の特定領域に保持する。本実施形態ではマッピングテーブル33としてページテーブルが用いられる。一般にプロセスアドレス空間のサイズは実メモリ空間サイズよりも大きい。このため、プロセスアドレス空間に配置されるプログラムの一部のページのみが実メモリ空間に配置される。
VMMモジュール320はまた、プロセスアドレス空間管理構造体34を例えばメモリ3の特定領域に保持する。プロセスアドレス空間管理構造体34はVMMモジュール320のセグメント管理部321によって生成される。このプロセスアドレス空間管理構造体34の生成は、実行中のアプリケーション31からの要求に応じて、HDD1に格納されているプログラムを実行するために当該プログラムがメモリ3にロードされる際に行われる。
実行中のプログラムはプロセスアドレス空間に配置される。プロセスアドレス空間管理構造体34は、このプロセスアドレス空間に配置されるプログラムをセグメント#i(i=1,2,…)単位に管理する情報(セグメント管理情報)SMiを含む。セグメントはプログラムの論理的な構造に基づく単位であり、例えばコード領域、テキスト領域、データ領域、スタック領域、共有ライブラリ領域などに対応して定義される。
プロセスアドレス空間管理構造体34に含まれる各セグメント管理情報SMiは、フラグFiとメモリ割り当て制限値MALiとを有する。フラグFiは、対応するセグメント#iに配置されているプログラム部分(命令/データ)が暗号化されているか否か、つまりセグメント#iが暗号化セグメントであるか否かを示す。メモリ割り当て制限値MALiは、セグメント#iに対し、ある時点において割り当て可能な実メモリ空間(つまりメモリ3)のページ数(実メモリ領域サイズ)の上限を示す。
HDD1に格納されているプログラムは、セグメント#i単位でセグメント情報を含む。各セグメント情報は、対応するセグメント#iに配置されているプログラム部分が暗号化されているか否か(「暗号有」か「暗号無」か)を示す情報を有する。そこでセグメント管理部321はHDD1に格納されているプログラムをメモリ3にロードする際に、即ち当該プログラムの実行開始時に、当該プログラムの各セグメント情報に基づいてセグメント#i毎にフラグFiを生成する。このときセグメント管理部321は、セグメント#i毎にメモリ割り当て制限値MALiも生成する。生成されたメモリ割り当て制限値MALiがMALi=N(Limit N)の場合、セグメント#iに対し、実メモリ空間のページをNページを超えて割り当てることはできない。これに対し、MALi=制限無の場合、セグメント#iに対し、実メモリ空間のページを当該実メモリ空間から空きページ(Freeページ)を取得できる範囲で割り当てることができる。
CPU4は、メモリ3にロードされているアプリケーション31及びOS32等を実行する。但し本実施形態では煩雑さを避けるために、OS32に含まれるVMMモジュール320の処理を、当該VMMモジュール320自身が実行するものとして説明する。システムバス5は、HDDコントローラ2、メモリ3及びCPU4を相互接続する。
図2は、暗号化プログラム11が実行中の場合に、当該暗号化プログラム11が配置されているプロセスアドレス空間(仮想アドレス空間)201のページと、実メモリ空間202のページとの対応付けの例を示す。図2において、プロセスアドレス空間201の各ページには、「Assign」または「N.A」が記述されている。「Assign」は、当該「Assign」が記述されたページ(仮想ページ)に、矢印で指定される実メモリ空間202のページ(実ページ)が割り当てられていること、つまり「Assign」が記述されたページの実体(内容)がメモリ3に存在することを示す。一方、「N.A」は、当該「N.A」が記述されたページに実メモリ空間202のページが割り当てられていないこと、つまり「N.A」が記述されたページの実体がメモリ3に存在しないことを示す。以下の説明では、プロセスアドレス空間201のページに実メモリ空間202のページを割り当てることを、煩雑な表現を避けるために、プロセスアドレス空間201のページに実メモリ空間202(またはメモリもしくはメモリ3)を割り当てると表現することもある。
本実施形態において、暗号化プログラム11は3つのセグメントに分割して管理される。つまり暗号化プログラム11が配置されるプロセスアドレス空間201は、図2に示すように3つのセグメント#1,#2及び#3に分割して管理される。この場合、プロセスアドレス空間管理構造体34は、図2に示すように、セグメント#1,#2及び#3にそれぞれ対応付けられるセグメント管理情報SM1,SM2及びSM3を含む。
セグメント管理情報SM1は、例えば、「制限無(Limit無し)」を示すメモリ割り当て制限値MAL1及び「暗号無」を示すフラグF1を有する。セグメント管理情報SM2は、例えば、「制限1(Limit 1)」を示すメモリ割り当て制限値MAL2及び「暗号有」を示すフラグF2を有する。セグメント管理情報SM3は、例えば、「制限無」を示すメモリ割り当て制限値MAL3及び「暗号無」を示すフラグF3を有する。
次に、本実施形態の動作について説明する。
今、暗号化プログラム11の実行中であり、したがって当該暗号化プログラム11がプロセスアドレス空間201に配置されているものとする。この状態で、アプリケーション31からの要求により、暗号化プログラム11のうち、プロセスアドレス空間201のあるページ(目的のページ)に配置されているプログラム部分を実行する必要があるものとする。この場合、目的のページへのアクセスが発生する。するとVMMモジュール320はマッピングテーブル33を参照して、目的のページ(仮想ページ)の仮想ページアドレスを、当該ページに割り当てられている実メモリ空間202のページ(実ページ)の実ページアドレスに変換するためのアドレス変換を実行する。
今、暗号化プログラム11の実行中であり、したがって当該暗号化プログラム11がプロセスアドレス空間201に配置されているものとする。この状態で、アプリケーション31からの要求により、暗号化プログラム11のうち、プロセスアドレス空間201のあるページ(目的のページ)に配置されているプログラム部分を実行する必要があるものとする。この場合、目的のページへのアクセスが発生する。するとVMMモジュール320はマッピングテーブル33を参照して、目的のページ(仮想ページ)の仮想ページアドレスを、当該ページに割り当てられている実メモリ空間202のページ(実ページ)の実ページアドレスに変換するためのアドレス変換を実行する。
ところが、暗号化プログラム11の実行中であっても、当該暗号化プログラム11の全てがメモリ3にロードされているとは限らない。もし、目的のページが、当該目的のページにメモリ3が割り当てられていない「N.A」ページの場合、当該目的のページの仮想ページアドレスを実ページアドレスに変換できない。この場合、ページフォールトが発生する。ここでは、目的のページが、プロセスアドレス空間201におけるセグメント#2のページP22であるものとする。つまり、ページP22へのアクセスでページフォールトが発生したものとする。
以下、図2に示す状態におけるページP22へのアクセスでページフォールトが発生した場合を例に、図3及び図4を参照して説明する。図3はページフォールト発生時のVMMモジュール320の処理手順を示すフローチャート、図4は図2に示す状態でページフォールトが発生した場合におけるプロセスアドレス空間201のページと実メモリ空間202のページとの対応付けの例を示す図である。
VMMモジュール320の制限判定部323は、ページP22へのアクセスでページフォールトが発生した場合、当該ページP22が属するセグメント#2がメモリ割り当て制限のあるセグメントであるか否かを判定する(ステップS1)。このステップS1の判定のために本実施形態では、セグメント#2に対応する、プロセスアドレス空間管理構造体34中のセグメント管理情報SM2が参照される。そして参照されたセグメント管理情報SM2に含まれているメモリ割り当て制限値MAL2が「制限無」でないかが判定される。もし、メモリ割り当て制限値MAL2が「制限無」でないならば、制限判定部323は、セグメント#2がメモリ割り当て制限のあるセグメントであると判定する。これに対し、メモリ割り当て制限値MAL2が「制限無」であるならば、制限判定部323は、セグメント#2がメモリ割り当て制限の無いセグメントであると判定する。
制限判定部323は、セグメント#2がメモリ割り当て制限の有るセグメントである場合、次の判定(ステップS2)を行う。即ち制限判定部323は、ページP22に実メモリ空間202(メモリ3)を仮に割り当てたとしても、セグメント#2に対して割り当てられる実メモリ空間202のページ数が、メモリ割り当て制限値MAL2で示されるページ数の範囲内に収まるかを判定する。
もし、セグメント#2に対して割り当てられる実メモリ空間202のページ数が、メモリ割り当て制限値MAL2で示されるページ数を超えるならば(ステップS2)、制限判定部323はページフォールト処理部322に制御を渡す。するとページフォールト処理部322は、以下に述べるページフォールト処理(ステップS3)を実行する。
まずページフォールト処理部322の消去部322aは、セグメント#2においてメモリ割り当て制限値MAL2で示されるページ数を超える既にメモリ割り当て済みのページの内容を、実メモリ空間202(メモリ3)から消去する(ステップS3a)。
本実施形態では、MAL2=1(Limit 1)である。このとき、図2に示すプロセスアドレス空間201のセグメント#2では、ページP21に対して実メモリ空間202(メモリ3)のページ210が割り当てられている。この状態で、ページP22に実メモリ空間202が割り当てられると、セグメント#2に対して割り当てられる実メモリ空間202のページの数が、MAL2で示されるページ数を超えてしまう。そこで消去部322aは、セグメント#2においてMAL2で示されるページ数を超える既に割り当て済みのページの内容、例えばプロセスアドレス空間201内の当該セグメント#2に属するページP21に対して割り当てられている実メモリ空間202内のページP210の内容(実体)を消去する(ステップS3a)。このとき、ページP21の仮想アドレスに対応するマッピングテーブル33のエントリには、当該ページP21にメモリ(実メモリ空間202)が割り当てられていないことを示す第1の特定フラグが設定される。これにより図4に示すように、ページ(仮想ページ)P21は「Assign」から「N.A.」に、ページ(実ページ)P210は「Assign」から空きページを表す「Free」に、それぞれ変更されて、ページP21及びP210の対応関係は解消される。
消去部322aによってステップS3aが実行されると、ページフォールト処理部322の割り当て部322bに制御が渡される。割り当て部322bは、プロセスアドレス空間201内の目的ページP22に、実メモリ空間202内の「Free」ページ、例えばページP220を割り当てる(ステップS3b)。これにより図4に示すように、目的ページ(仮想ページ)P22は「N.A.」から「Assign」に、ページ(実ページ)P220は「Free」から「Assign」に、それぞれ変更される。このとき、ページP22の仮想アドレスに対応するマッピングテーブル33のエントリには、ページP220の実ページアドレスと、当該ページP22に実メモリ空間202(メモリ3)が割り当てられていることを示す特定フラグが設定される。
なお、ページP22に実メモリ空間202(メモリ3)が割り当てられても、セグメント#2に対して割り当てられる実メモリ空間202のページ数が、MAL2で示されるページ数の範囲内であるならば(ステップS2)、ステップS3aをスキップしてステップS3bの割り当て処理が行われる。また、メモリ割り当て制限値MAL2が「制限無」であるならば、つまりセグメント#2がメモリ割り当て制限の無いセグメントであるならば(ステップS1)、ステップS2及びS3aをスキップしてステップS3bの割り当て処理が行われる。
割り当て部322bはステップS3bを実行するとロード手段として機能して、目的ページP22に割り当てられた実メモリ空間202(メモリ3)内のページP220に、暗号化プログラム11のうち目的ページP22に格納されているプログラム部分(命令/データ)をHDD1からロードする(ステップS3c)。するとページフォールト処理部322の暗号化判定部322cは、目的ページP22が属するセグメント#2が暗号化セグメントであるか否かを判定する(ステップS3d)。この判定は、目的ページP22が属するセグメント#2のセグメント管理情報SM2に含まれているフラグF2を参照することにより行われる。
もし、目的ページP22が属するセグメント#2が本実施形態のように暗号化セグメントである場合、ページフォールト処理部322の復号部322dは実メモリ空間202(メモリ3)内のページP220にロードされた当該目的ページP22のプログラム部分を復号する復号処理を実行する(ステップS3e)。
このように本実施形態において、VMMモジュール320は、プログラムの暗号化の有無をセグメント#i単位で管理する。またVMMモジュール320は、プログラムが配置されるプロセスアドレス空間201に対して割り当て可能な実メモリ空間202のページ数の上限を、セグメント#i単位で管理する。これにより、メモリ3に存在する復号されたプログラム部分のサイズ(ページ数)をセグメント#i毎に常に指定サイズ(ページ数)の範囲内に制限することができる。即ち本実施形態においては、暗号化プログラム11のうち、メモリ3に存在する復号されたプログラム部分のサイズを常に制限することで、たとえ当該メモリ3の状態を観測しても、暗号化プログラム11の解析を行う行為を困難とすることができ、暗号化プログラム11の耐タンパ性を向上できる。しかも、復号されたプログラム部分のサイズが、OS32の仮想メモリ管理モジュール320の管理によって指定サイズの範囲内に制限されるため、この制限のために特別なハードウェアや、特別なアプリケーションプログラムを必要としない。
[変形例]
上記実施形態では、メモリ割り当て制限値MALiで示されるページ数を超える既にメモリ割り当て済みのページの内容を、実メモリ空間202(メモリ3)から消去する処理が必要となる。そこで、この消去処理を不要とする上記実施形態の変形例について図5のフローチャートを参照して説明する。ここでは、上記実施形態と同様にページP22へのアクセスでページフォールトが発生したものとする。なお、図3のフローチャートと同様の処理ステップには同一参照符号を付して説明を省略する。
上記実施形態では、メモリ割り当て制限値MALiで示されるページ数を超える既にメモリ割り当て済みのページの内容を、実メモリ空間202(メモリ3)から消去する処理が必要となる。そこで、この消去処理を不要とする上記実施形態の変形例について図5のフローチャートを参照して説明する。ここでは、上記実施形態と同様にページP22へのアクセスでページフォールトが発生したものとする。なお、図3のフローチャートと同様の処理ステップには同一参照符号を付して説明を省略する。
この変形例においてページフォールト処理部322の割り当て部322bは、上記ステップS3a及びS3bに代わるステップS30aを次のように実行する。即ち割り当て部322bは、メモリ割り当て制限値MAL2で示されるページ数「1」を超える既にメモリ割り当て済みの仮想ページP21の内容がロードされている実メモリ空間202内の実ページP210を、目的ページP2に割り当てる。
割り当て部322bはステップS30aを実行すると、当該ステップS30aで目的ページP22に割り当てられた実メモリ空間202内のページP210に、暗号化プログラム11のうち当該目的ページP22に格納されているプログラム部分をHDD1からロードする(ステップS3c)。
このように上記実施形態の変形例によれば、上記実施形態において必要であった消去処理(ステップS3a)を不要とすることができ、これによりページフォールト発生時における情報処理装置のオーバヘッドを軽減できる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
1…HDD、2…HDDコントローラ、3…メモリ、4…CPU、11…暗号化プログラム、12…非暗号化プログラム、31…アプリケーション(アプリケーションプログラム)、32…OS(オペレーティングシステム)、33…マッピングテーブル、34…プロセスアドレス空間管理構造体、201…プロセスアドレス空間、202…実メモリ空間、320…VMMモジュール(仮想メモリ管理モジュール)、321…セグメント管理部、322…ページフォールト処理部、322a…消去部、322b…割り当て部、322c…暗号化判定部、322d…復号部、SM1〜SM3…セグメント管理情報、F1〜F3…フラグ、MAL1〜MAL3…メモリ割り当て制限値。
Claims (6)
- 暗号化プログラムを復号して実行する情報処理装置において、
実行時にプロセスアドレス空間に配置される、暗号化プログラムを含む各種プログラムを格納するストレージ装置と、
前記プロセスアドレス空間に配置されたプログラムがページ単位にロードされるメモリと、
前記メモリにロードされたプログラムを実行するCPUと、
前記プロセスアドレス空間と前記メモリのアドレス空間としての実メモリ空間との間のページ単位のマッピングを管理する仮想メモリ管理モジュールであって、前記プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で管理すると共に、前記プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な前記実メモリ空間のページ数の上限を表す制限値を設定するセグメント管理手段を含む仮想メモリ管理モジュールと
を具備することを特徴とする情報処理装置。 - 前記仮想メモリ管理モジュールは、前記プロセスアドレス空間に配置されたプログラムの実行のために当該プロセスアドレス空間内の目的のページがアクセスされた結果ページフォールトが発生した場合、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記セグメント管理手段によって設定されている前記制限値を超えないように、前記目的のページに前記実メモリ空間のページを割り当てるメモリ割り当てを実行し、当該割り当てられたページに前記目的のページの内容をロードするページフォールト処理手段を含むことを特徴とする請求項1記載の情報処理装置。
- 前記仮想メモリ管理モジュールは、前記目的のページに前記実メモリ空間のページが割り当てられたならば、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記制限値を超えるかを判定する制限判定手段を更に含み、
前記ページフォールト処理手段は、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記制限値を超えると前記制限判定手段によって判定された場合、前記目的のページが属するセグメントにおいて前記制限値を超える既にメモリ割り当て済みの前記プロセスアドレス空間のページの内容を前記実メモリ空間から消去する消去手段を含む
ことを特徴とする請求項2記載の情報処理装置。 - 前記仮想メモリ管理モジュールは、前記目的のページに前記実メモリ空間のページが割り当てられたならば、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記制限値を超えるかを判定する制限判定手段を更に含み、
前記ページフォールト処理手段は、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記制限値を超えると前記制限判定手段によって判定された場合、前記目的のページが属するセグメントにおいて前記制限値を超える既にメモリ割り当て済みの前記プロセスアドレス空間のページの内容がロードされている当該実メモリ空間のページを、前記目的のページに割り当てる割り当て手段を含む
ことを特徴とする請求項2記載の情報処理装置。 - 前記ページフォールト処理手段は、
前記プロセスアドレス空間に配置された実行すべきプログラムのうち、前記目的のページが属するセグメントに配置されたプログラム部分が暗号化されているかを判定する暗号化判定手段と、
前記目的のページが属するセグメントに配置されたプログラム部分が暗号化されている場合、前記割り当てられたページにロードされたプログラム部分を復号する復号手段と
を含むことを特徴とする請求項2記載の情報処理装置。 - 実行時にプロセスアドレス空間に配置される、暗号化プログラムを含む各種プログラムを格納するストレージ装置を備え、前記プロセスアドレス空間に配置されたプログラムがページ単位にメモリにロードされることにより、当該メモリにロードされたプログラムが実行される情報処理装置に適用されるメモリ管理方法であって、
前記プロセスアドレス空間に配置された実行すべきプログラムが暗号化されているかをセグメント単位で指定するフラグ及び前記プロセスアドレス空間のセグメント毎に当該セグメントに割り当て可能な前記実メモリ空間のページ数の上限を表す制限値が設定されたプロセスアドレス空間管理構造体を生成するステップと、
前記プロセスアドレス空間に配置されたプログラムの実行のために当該プロセスアドレス空間内の目的のページがアクセスされた結果ページフォールトが発生した場合、前記目的のページが属するセグメントに割り当てられる前記実メモリ空間のページ数が前記セグメント管理手段によって設定されている前記制限値を超えないように、前記目的のページに前記実メモリ空間のページを割り当てて、当該割り当てられたページに前記目的のページの内容をロードするステップと、
前記目的のページが属するセグメントに配置されたプログラム部分が暗号化されていることが前記プロセスアドレス空間管理構造体によって指定されている場合、前記割り当てられたページにロードされたプログラム部分を復号するステップと
を具備することを特徴とするメモリ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005313368A JP2007122391A (ja) | 2005-10-27 | 2005-10-27 | 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005313368A JP2007122391A (ja) | 2005-10-27 | 2005-10-27 | 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007122391A true JP2007122391A (ja) | 2007-05-17 |
Family
ID=38146180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005313368A Pending JP2007122391A (ja) | 2005-10-27 | 2005-10-27 | 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007122391A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008022107A1 (de) | 2007-05-07 | 2008-11-13 | Denso Corp., Kariya-shi | Raderkennungs-Vorrichtung und Reifendruckerfassungs-Vorrichtung mit der Funktion der Raderkennung |
JP2010039576A (ja) * | 2008-07-31 | 2010-02-18 | Mutsumi Ogawa | メモリ管理方法 |
JP2013205604A (ja) * | 2012-03-28 | 2013-10-07 | Toshiba Corp | 通信装置および鍵管理方法 |
US10749672B2 (en) | 2016-05-30 | 2020-08-18 | Samsung Electronics Co., Ltd. | Computing system having an on-the-fly encryptor and an operating method thereof |
-
2005
- 2005-10-27 JP JP2005313368A patent/JP2007122391A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008022107A1 (de) | 2007-05-07 | 2008-11-13 | Denso Corp., Kariya-shi | Raderkennungs-Vorrichtung und Reifendruckerfassungs-Vorrichtung mit der Funktion der Raderkennung |
JP2010039576A (ja) * | 2008-07-31 | 2010-02-18 | Mutsumi Ogawa | メモリ管理方法 |
JP2013205604A (ja) * | 2012-03-28 | 2013-10-07 | Toshiba Corp | 通信装置および鍵管理方法 |
CN103368726A (zh) * | 2012-03-28 | 2013-10-23 | 株式会社东芝 | 通信设备及密钥管理方法 |
US9106406B2 (en) | 2012-03-28 | 2015-08-11 | Kabushiki Kaisha Toshiba | Communication apparatus and key managing method |
US10749672B2 (en) | 2016-05-30 | 2020-08-18 | Samsung Electronics Co., Ltd. | Computing system having an on-the-fly encryptor and an operating method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101288700B1 (ko) | 멀티 오퍼레이팅 시스템(os) 기동 장치, 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법 | |
JP5260081B2 (ja) | 情報処理装置及びその制御方法 | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
US20180082077A1 (en) | Creating distinct user spaces through user identifiers | |
KR101081118B1 (ko) | 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及系统 | |
KR101054981B1 (ko) | 프로그램의 콘텍스트를 보안적으로 저장하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
KR20130101147A (ko) | 인플레이스 암호화 시스템 및 방법 | |
JP2008527532A (ja) | 非セキュリティ領域にセキュリティ領域を割り当てる方法及び携帯用保存装置 | |
US7325115B2 (en) | Encryption of system paging file | |
JP2010237480A (ja) | コンテンツ保護装置およびコンテンツ保護方法 | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
JP5721901B2 (ja) | ウェアレベリングを有するメモリ装置の暗号化 | |
JP2007122391A (ja) | 暗号化プログラムを復号して実行する情報処理装置及びメモリ管理方法 | |
JP5374751B2 (ja) | メモリ管理方法 | |
JP2000250817A (ja) | 記憶システム、記憶装置及び記憶データ保護方法 | |
JP3033562B2 (ja) | 再配置可能な実行プログラムの生成方法及び実行プログラム生成装置 | |
JP4429215B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
JP2007026105A (ja) | ファイル管理装置、ファイル管理方法、及びファイル管理プログラム | |
WO2011096073A1 (ja) | メモリ管理方法 | |
JP6215468B2 (ja) | プログラム保護装置 | |
US20160357470A1 (en) | Computer readable medium, information processing apparatus, and method | |
JP2008061035A (ja) | ファイルシステム、仮想記憶システム、耐タンパ性向上化システムおよび耐タンパ性向上化方法 | |
KR20090072620A (ko) | 메모리 해킹 차단 방법 및 시스템 |