JP4375980B2 - マルチタスク実行システム及びマルチタスク実行方法 - Google Patents
マルチタスク実行システム及びマルチタスク実行方法 Download PDFInfo
- Publication number
- JP4375980B2 JP4375980B2 JP2003065685A JP2003065685A JP4375980B2 JP 4375980 B2 JP4375980 B2 JP 4375980B2 JP 2003065685 A JP2003065685 A JP 2003065685A JP 2003065685 A JP2003065685 A JP 2003065685A JP 4375980 B2 JP4375980 B2 JP 4375980B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- confidential information
- information
- confidential
- holding area
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータにおけるセキュリティ技術に係り、擬似的(TSS環境)もしくは実際に(SMP環境)複数のタスクを同時並列に実行することができるマルチタスク実行システム及びマルチタスク実行方法に関する。
【0002】
【従来の技術】
近年、個人の使用するパーソナルコンピュータ(PC)から電子商取引(EC)等のサービスを提供するサーバコンピュータ、さらにはスーパーコンピュータまで、事実上あらゆる計算機がマルチタスク環境を提供するものとなっている。
【0003】
ここでいうマルチタスク環境とは、計算機が扱う処理の単位である『タスク』を複数個同時に実行させることを可能とする環境であり、それらのタスクは、単一の中央演算装置(CPU)を用いた計算機では、TSS(Time Sharing System,時分割型)による擬似的な並列実行を、複数のCPUを実装した計算機ではSMP(Symmetric Multi Processor)構成を取ることで、真に同時並列的な実行を実現している。
【0004】
このようなマルチタスク環境では、どのようにして個々のタスクが保持する機密データを他のタスクから保護するのかが問題となる。これは電子商取引に用いるサーバなど重要な情報を扱わなければならない計算機では特に影響が大きいと考えられる。
【0005】
例えば、インターネットを利用して電子商取引を行う場合、SSL(Secure Sockets Layer、米国特許第5,825,890号。Elgamal, et al. "Secure socket layer application program apparatus and method",October 20,1998)と呼ばれる仕組みでブラウザ/ウェブサーバ間の通信を保護するというのが一般的となっている。
【0006】
ところが、このSSLを安全に機能させるためには、ウェブサーバに当該サーバ以外には知ることのできない固有の秘密鍵をインストールする必要がある。サーバはアクセスしたユーザに対してその秘密鍵を利用して自らの身元を証明するが、万一この秘密鍵が他者の知るところになれば、当該他者は
1.当該秘密鍵を利用して当該サーバへのなりすまし
2.当該秘密鍵に対応した公開鍵によって暗号化されるブラウザ/サーバの通信セッション開始時のやり取りを傍受することにより、そこで交換された共通鍵によって暗号化される実際の通信の復号及び内容の傍受
といった攻撃が可能となってしまう。
【0007】
このような危険を避けるため、従来では、当該秘密鍵は一般的には暗号化処理を受けた上でファイル等に保管されるような運用がなされている。これにより、ディスク上に保管されている状態では秘密鍵の安全性は保護のために利用される暗号技術の強度の範囲内で保証されるが、ウェブサーバプログラムが実行されるときには、当該秘密鍵はファイルから読み出され、復号された上で当該アプリケーションプログラムのために確保されたメモリ上に平文(非暗号文)のままで保存されることになる。
【0008】
このとき、同じサーバ計算機上で同時に実行される他のタスクが当該秘密鍵情報の保存されているメモリ領域にアクセスし、平文状態のデータを読み出すことができれば、容易にウェブサーバの秘密鍵を知ることができてしまうため、上に述べたような攻撃の実施が可能となる。このように、機密情報を保持するメモリを同時実行される他のタスクから保護することは、マルチタスクが一般的となっている現代的な計算機環境では特に重要性を増している。
【0009】
マルチタスク環境をサポートする多くのオペレーティングシステムでは、タスク毎に仮想記憶空間を割り当て、各タスクがアクセスする仮想的なメモリ領域と物理的なメモリ領域とのマッピングを管理することにより、一つのタスクが保持するメモリ上のデータに対して他のタスクがアクセスすることはできないような配慮がなされている。
【0010】
しかしながら、実際には、稼動中のタスクに関してデバッグが必要な場合等のために実行中のタスクに対してデバッガを接続し、当該タスクのメモリ領域や実行状態をモニタリングする機能が提供されているため、このモニタリング機能を悪用した精査、いわゆるハッキングが可能となることから、上述したようなオペレーティングシステムによる保護は完全ではない。特に悪意を持った計算機の管理者権限を持つユーザが存在する場合、上記モニタリング機能を利用して、秘匿情報の読み出しが可能となる。
【0011】
なお、ここでいう『管理者権限を持つユーザ』は、必ずしも正規の計算機管理者であるとは限らない。近年の計算機環境に対して大きな脅威となっているのは、管理者権限下で実行することが要請されるタスクのプログラムコード中に存在するセキュリティ・ホールを利用して、"シェル"と呼ばれるコマンド実行環境を奪取するというものであり、管理者権限の下で動作するそのようなシェルを入手した攻撃者は、管理者として事実上任意の操作を行えることになる。そのような操作としては、先に述べたデバッガによる実行中タスクの精査の他に
・タスクのメモリ空間に存在する全情報のファイルへの書き出し
・実メモリ容量の枯渇に伴いスワップファイルと呼ばれるハードディスク等の二次記憶領域に待避されたタスクメモリの精査
等の攻撃が考えられる。
【0012】
また、前述したSSLを始めとして暗号技術を利用した通信データの保護を提供する仕組みは各種考案されているが、それらは事実上すべて秘密鍵をメモリに読みこんだ形でタスクが実行されるようになっているため、ネットワーク上ではなくその実行環境である計算機自体に対して攻撃が加えられる場合、いずれも大きな脆弱性を持つことが知られている。
【0013】
このような問題を解決するための従来技術としては、大別して二種類の解決策が考案されいる。一つは管理者権限の細分化という主としてソフトウェア的な解決策であり、もう一つは機密情報を物理的/論理的に隔離するという手立てである。
【0014】
前者に属する技術としては、いわゆる"トラステッドOS"として知られるオペレーティングシステムが該当する。これらのオペレーティングシステムは、基本的には管理者権限を細分化することで絶対的な権限を持ったタスクの実行を可能な限り減らすという戦略を採っている。また、アクセスコントロールリストと呼ばれる機能を用いることで、ファイル等のデータに対するアクセス管理も従来のオペレーティングシステムより詳細に設定可能となっており、あるタスクが同時並列的に実行される他のタスクの情報にアクセスすることが非常に困難であるように図られている。
【0015】
この種のトラステッドOSが採用している権限及びアクセス管理手法の詳細化による保護強化という方針は、基本的にはオペレーティングシステムというソフトウェアのみで実現できるため、特別なハードウェアを必要とせず比較的低コストで済むという利点がある。一方、オペレーティングシステムの保護機能によって他のタスクから隔離されているとはいえ、タスクのメモリ上ではデータは平文のまま保持されているため、同メモリ上のデータに攻撃者がアクセスする手段が開発された場合、機密情報が漏洩する可能性がある。
【0016】
一方、後者の対策に関してはさらに
a)機密情報を扱う部分を計算機から物理的に分離することによる隔離
b)機密情報を含むデータを単一のタスクのみが復号できる形で暗号化することによる保護
という二つの方向性がある。
【0017】
a)はいわゆる"耐タンパー性デバイス"、すなわち、内部に保持されているデータを読み出すことが困難であるような機器に機密データを保持することで他者からの干渉を排除しようというものである。耐タンパー性デバイスは一般にデータの保存領域の他に独自の演算処理装置も装備されているため、機密情報を外部に洩らすことなく処理することを可能とする。
【0018】
このような耐タンパー性デバイスによって機密情報の防御を行う例としては、個人の秘密情報を保護するためのスマート・カードや、公開鍵暗号技術を利用してデジタル証明書を発行する認証機関の秘密鍵を保護するために主として使われるHSM(ハードウェア・セキュリティ・モジュール)等がある。また、暗号関連処理の高速化を主目的とするSSLアクセラレータ等のハードウェア製品のなかにも、秘密鍵等の機密情報を外から読み出すことができないような構成となっているものが存在するが、そのような製品もこのa)に相当する対策とみなすことができる。
【0019】
しかしながら、このような耐タンパー性デバイスを用いる対策には本質的に柔軟性に欠けるという欠点が存在する。大半の耐タンパー性デバイスは例えば『入力として与えられた暗号化済みデータを秘密鍵によって復号する』といった特定の機能しか持っていないため、当該デバイスがサポートしている以外の形で機密情報を保護することは困難となる。
【0020】
耐タンパー性デバイスのなかにはJava(登録商標)アプレット等の形で任意のアプリケーションをインストールすることにより、機能を拡張できるようになっているものも存在するが、そのような形で柔軟性を得ようとすると、今度はインストールされるアプリケーション自体がウイルス等の悪意あるものではないことを保証することが難しくなる。
【0021】
また、大半の機密情報というものはその値そのものを知られないことが重要である他、実際にはその機密情報を用いた処理を権限者以外に行われてしまうという状況も防がなければならない。攻撃者にとっては秘密鍵そのものを知ることとその秘密鍵を用いて任意のデータに対して電子署名をすることとはほとんど差異がないからである。耐タンパー性デバイスによって秘密情報そのものを他者に知られる可能性自体は低く抑えられるとしても、当該デバイスが権限を持たない者による指示に基づいて当該秘密情報を用いた操作(例えば秘密鍵による暗号化済みデータの復号処理)を行い、その結果を返してしまうときには、所期の目的は達成されないことになる。
【0022】
一般に、計算機に接続される耐タンパー性デバイス等の外部デバイスへのアクセスはオペレーティングシステムにより管理されることになるが、そのアクセス管理機能が侵された場合、マルチタスク環境では権限を持たないユーザにより当該耐タンパー性デバイスを濫用される可能性が排除できない。
【0023】
一方、上記b)は、タスクのメモリ中に存在するデータを暗号化することによって他のタスクによる干渉から回避するものである。この方法では、メモリに保存されたデータをそのタスクでしか復号できないような形で暗号化しておくことにより、他のタスクが当該タスクのメモリにアクセスしたとしても、そのデータは解読できない暗号データとしてしか認識されないため、機密データに対してa)の方策よりも強力な保護を提供することが可能となる。
【0024】
例えば、従来技術である米国特許第5,224,166号(Hartman,Jr."System for seamless processing of encrypted and non-encrypted data and instructions",June 29,1993)では、外部記憶及びメモリ上ではデータ領域/コード領域ともに暗号化された形で保存され、それらのデータ/コードを中央演算装置内の物理的に安全な領域に置かれたキャッシュ領域に読み込む際に復号することで他のタスクからの不正なアクセスを排除するシステムが提案されている。
【0025】
暗号化されたデータを復号するための鍵も同じく物理的に安全な領域中に置かれ、不正な利用が不可能となるように管理される。このシステムでは復号された平文データは物理的に安全な領域に位置するキャッシュ領域のみに置かれ、それらがCPUのキャッシュ・ライトバックによりメモリに書き戻される際には自動的に暗号化されることで機密性が確保される。
【0026】
また、別の従来技術である日本国特許、特開2001-318787号(橋本幹生他,"マイクロプロセッサ、これを用いたマルチタスク実行方法、及びマルチスレッド実行方法",平成12年5月8日出願)(特許文献2)では、同様にメモリ上のデータをキャッシュに読み出す、もしくは逆方向に書き出す際に復号処理/暗号化処理を行うことに加えて、コンテクスト切り替えと呼ばれるオペレーティングシステム機能実施時に実行レジスタ等のタスクの固有情報をも暗号化することで、前述したデバッガ利用等による攻撃をも未然に防ぐシステムが提案されている。
【0027】
【特許文献1】
米国特許第5,224,166号明細書
【0028】
【特許文献2】
特開2001-318787号公報
【0029】
【発明が解決しようとする課題】
上述した、二例の従来技術は、基本的にはマイクロプロセッサに対する追加機能としてデータもしくはコードの暗号化/復号を行うためのハードウェアモジュールをプロセッサ内部(プロセッサ内キャッシュとシステムバスとの間)に実装するというものである。
【0030】
これらの従来技術では、ハードウェア的にマイクロプロセッサを拡張するという手法は最大限のパフォーマンス的な利益を得ることをできるため、これら従来技術のようにメモリ中に置かれるデータ領域及びコード領域すべてを暗号化し、実行の過程でそれらをリアルタイムに復号/再暗号化するというようなシステムを実現するためには、最適なものと考えられる。
【0031】
しかしながら、近年の最先端のマイクロプロセッサは高度な研究開発力及び技術的ノウハウの集積物であり、そのような既存のマイクロプロセッサシステムのなかに新たなハードウェアを追加することで全体的な複雑性を増大させることは実用的ではない。
【0032】
また、すべてのデータをメモリからキャッシュへの読み出し、もしくは書き出しというタイミングで動的に復号/暗号化処理を行うという仕組みは、実行性能に関して大きな悪影響を与えることが考えられる。例えば、メモリアクセスに関して現在の最新テクノロジーでは数GB/secという最大性能が得られるが、ハードウェアによる暗号化処理性能は高々Gb/secレベルであるため、それだけでも純粋なメモリアクセス性能が1/10以下に落ちる可能性がある。
【0033】
近年のマイクロプロセッサでは、基本的により高速なプロセッサをより低コストで提供する要請が大きいため、このような性能に対して負の影響を与えるような機能追加は妥当ではないといえる。このため、マルチタスク環境での機密保護という仕組みも、マイクロプロセッサ本体の機能とは分離して実現することが望まれる。
【0034】
そこで、本発明は、以上の点に鑑みてなされたもので、マルチタスク環境をサポートする現代的な計算機オペレーティングシステムにおいて、同時並列的に実行される複数のタスクが他のタスクから重要な情報を読み出されることなしに実行できる環境を実現することのできるマルチタスク実行システム及びマルチタスク実行方法を提供することを目的とする。
【0035】
【課題を解決するための手段】
上記課題を解決するために、本発明は、単一のCPUによって複数のタスクを順次実行し、複数のタスクを仮想的に並列処理するマルチタスク実行システムであって、各タスク毎に対応付けられる機密情報保持領域と、各機密情報保持領域に固有に設定され、各機密情報保持領域を暗号化するための鍵情報を格納する暗号化鍵記憶領域と、オペレーティングシステムによるタスク切り替え時に停止状態となるタスクに関連付けられた機密情報保持領域を、当該タスク切り替え時に、鍵情報により暗号化する暗号処理部とを備える。
【0036】
また、本発明は、複数のCPUにより複数のタスクを並列処理するマルチタスク実行システムであって、各タスク毎に対応付けられる機密情報保持領域と、各機密情報保持領域に固有に設定され、各機密情報保持領域を暗号化するための鍵情報を格納する暗号化鍵記憶領域と、オペレーティングシステムによるタスク切り替え時に停止状態となるタスクに関連付けられた機密情報保持領域を、当該タスク切り替え時に、鍵情報により暗号化する暗号処理部と、機密情報保持領域毎にアクセス権を設定し、機密情報保持領域に対するアクセス制限を行うアクセス制御部とを備える。
【0037】
上記発明においては、暗号処理部により暗号化された機密情報保持領域を、当該タスク切り替え時に、前記鍵情報により復号する復号処理部を有することが好ましい。なお、上記暗号処理部及び復号処理部は、CPUとは別途独立に設けられたハードウェアとすることができる。
【0038】
上記発明においては、鍵情報は、タスクの生成処理時や、オペレーティングシステムの起動時に生成することができる。この場合、新規なタスクの生成処理時に、既存のタスクから複製され、新規なタスクと既存のタスクとで共有される機密情報保持領域に格納される情報について、当該新規なタスクに対し、既存のタスクに対応付けられた鍵情報とは別途独立な鍵情報を生成することが好ましい。
【0039】
このような上記発明では、タスクの切り替え、すなわちコンテクストスイッチを行うオペレーティングシステムのカーネルの動作に基づいて、コンテクストスイッチが実行されるタイミングで機密情報の暗号化及び復号処理を行う。詳述すると、あるタスクに割り当てられたCPU利用時間が終了した、或いは入出力待ち等で実行が中断する等の原因で発生するコンテクストスイッチ処理では、レジスタ上のデータも含めて当該タスクの実行に必要なすべての情報が当該タスク専用に割り当てられる領域に保存された上で、同様に保存されている別のタスクの情報をレジスタにロードし実行が再開される、という処理が行われる。
【0040】
すなわち、本発明においてカーネルは、コンテクストスイッチに際し、
(1)実行状態から休止状態に移行させられるタスクに関しては当該タスクが保持する機密情報をそのタスク専用の鍵で暗号化する
(2)休止状態から実行状態に復帰させられるタスクに関しては、前回休止状態に移行される際に暗号化されている機密情報を当該タスク専用の鍵で復号する
といった処理を実行する。
【0041】
また、本発明によれば、システムコールを利用するアプリケーションプログラムのプログラミング時において、機密性が必要とされるデータ及び当該データを格納する機密情報保持領域を明示的に指定し、その特定領域のみを、リアルタイムにではなく必要に応じた特定のタイミング、すなわちタスクの切り替え時に秘匿処理を行うことができる。なお、ここでいうデータの秘匿処理には、従来より利用されているような各種暗号技術利用したものの他、情報隠蔽技術(Steganography)を用いることができる。
【0042】
さらに、本発明によれば、プログラム実行中にリアルタイムでの秘匿処理を実施する必要はなくなるため、マイクロプロセッサ内部に特別な機構を加える必要がなく、チップセットや拡張ボード等のハードウェアを追加するという形態や、さらにはソフトウェアのみによる形態で実現することが可能となり、既存のシステム及び装置を有効に利用することができる。
【0043】
また、上記発明においては、タスクの仮想メモリ中の機密情報がスワップファイル等の二次記憶領域に保存されたか否かを判断する退避判定手段を備え、暗号処理部は、保存が実行されていない場合に、暗号化処理を実行することが好ましい。
【0044】
この場合には、二次記憶上のスワップファイルに退避させられたデータを精査し、タスクのメモリ上に存在する重要な機密データがハッキングされる可能性を回避することができる。すなわち、複数のタスクが仮想的に同時並列的に実行されるマルチタスク実行環境において、一つのタスクが実行されている場合に、それ以外のすべてのタスクが停止状態となり、実行継続に必要となる情報を保存するシステムであっても、デバッガによる実行中のタスク内部状態を精査し、保存された情報を解析し、秘匿情報が漏洩することを回避することができる。
【0045】
また、本発明では、スワップファイルへの書き出しの時点における暗号化処理を要することなく、退避が必要なデータを保護することができる。詳述すると、スワップファイルへのメモリデータの書き出しという処理が発生するのは、実行中のタスクからのメモリ要求が満たせなかった場合であり、この書き出し処理はカーネルの機能によって行われる。カーネルが動作する際には通常のユーザタスクはすべて休止状態にあるため、本発明を適用されたシステムの場合、それらタスクが保持する機密情報は既に暗号化された状態となっており、メモリ上に存在する任意のデータがスワップファイルに書き出され、さらにそのスワップファイルの中身が攻撃者によって精査されたとしても、機密情報の漏洩を回避することができる。。
【0046】
さらに、本発明によれば、複数のCPUを搭載するいわゆるSMP(Symmetric Multi Processor)構成の計算機において、同時に複数のタスクがそれぞれ別個のCPUを占有することにより、真に同時並列的に実行が行うシステムであっても、あるタスクの実行中に、機密データ保持領域が平文のままという状態で存在するのを回避し、他のタスクからの操作により、当該領域が漏出するのを防止することができる。
【0047】
すなわち、本発明では、他のタスクによって機密データが漏出するのを防止するために、SMP構成の計算機で用いる場合には、単にコンテクストスイッチ時に暗号化/復号化を行うだけではなく、実行中の機密情報を保持するメモリ領域が他のタスクからアクセスできないように制限することができる。
【0048】
具体的には、メモリ領域に対して特定のタスクのみからしか参照できないという属性の付与するとともに、機密情報保持用メモリ領域には同属性を付与する、といった機能をSMP対応オペレーティングシステムカーネルに追加する。
【0049】
なお、メモリデータにも一般的なファイルと同じく書き込み権限、読み出し権限、実行権限等の各種属性が存在し、これらの各属性の設定をサポートするために通常オペレーティングシステムにはあるメモリ領域がどのような属性を持っているのかを管理する機能が備えられていることから、既存のオペレーティングシステムの構成を大幅に変更することなく、上記属性を追加することは可能である。
【0050】
【発明の実施の形態】
[第1実施形態]
本発明の第1実施形態について説明する。図1は、本発明のマルチタスク実行システムを単一CPUシステムに適用した場合を例示するブロック図である。
【0051】
同図に示すように、本実施形態の情報秘匿システムは、ハードウェア100と、メモリ空間200とから構成されている。ハードウェア100は、マイクロプロセッサ101と、メモリ102と、暗号処理エンジン103とがシステムバス104によって結合されている構成される。
【0052】
なお、暗号処理エンジン103は、システムバス104ではなくPCIのような、I/Oコントローラ105を介して、ハードウェア100の外部に接続された外部バス107に実装される増設ボード106など、メモリ102との間でのDMA転送が可能な装置を採用することができる。また、暗号処理エンジン103としては、上述した103や106のように、ハードウェアを用いずに、オペレーティングシステム自身がソフトウェア的に暗号化処理を実施するようにしてもよい。すなわち、本実施形態に係るマルチタスク実行システムでは、特定のハードウェア形態に捕らわれずに情報秘匿を実施できるという柔軟性を確保することができる。
【0053】
上記メモリ空間200は、ハードウェア100の上で動作するオペレーティングシステムで確保される仮想メモリ領域であり、各タスクに対応付けられた機密情報保持領域202〜204と、オペレーティングシステムカーネルメモリ内に設けられ、前記機密情報保持領域202〜204に対応付けられた鍵を保持する暗号化鍵保持用配列201を有する。
【0054】
機密情報保持領域202〜204は、実行中のタスクが、オペレーティングシステムカーネルによって休止状態に遷移させられる際に、当該タスクに対応する鍵によって暗号化され、休止状態のタスクが実行状態に遷移させられる際に、当該タスクに対応する鍵によって復号化される記憶領域である。
【0055】
暗号化鍵保持用配列201は、当該オペレーティングシステムがサポートする最大タスク数(例えば、一般的なUNIX(登録商標)系オペレーティングシステムであれば65536個)に等しい要素数を持つ暗号化鍵を保持するための記憶領域であり、この暗号化鍵保持用配列201は、オペレーティングシステムカーネルのみからアクセス可能とするようにアクセス権が設定されている。このアクセス権については、後述する。
【0056】
そして、暗号化鍵保持用配列201に保持される個々の鍵は、対応するタスク番号を持つタスクのメモリ中でプログラミング時に指定される機密情報保持領域202〜204を処理するために用いられる。具体的には、実行中のタスクがオペレーティングシステムカーネルによって休止状態に遷移させられる際に、当該タスクに対応付けられた機密情報保持領域(202,203,204等)が当該タスクに対応する鍵によって暗号化される。
【0057】
逆に、休止状態から実行状態に遷移させられるタスクに関しては、当該タスクの休止処理時に暗号化された機密情報保持領域205を当該タスクに対応する鍵によって復号した上で、実行が再開されることになる。
【0058】
図2は、本実施形態において、オペレーティングシステム起動時に必要とされる処理を示すフローチャート図である。ここでは具体例として4.4BSDオペレーティングシステムで行われる処理を挙げるが、本発明はこれに限定されるものではなく、他の方式のオペレーティングシステムでも利用することが可能である。
【0059】
同図に示すように、オペレーティングシステム起動時にあっては、先ずブートプログラムと呼ばれる小規模なプログラムが起動され(S101)、そのブートプログラムによってオペレーティングシステム本体がメモリ上にロードされる。次いで、CPUの種類の同定や搭載メモリ容量の検査等のアセンブリ言語によって記述されたスタートアップルーチンが実行され(S102)、C言語で記述されたオペレーティングシステム主要部分の実行準備が行われる。
【0060】
その後、実行される機種に依存する初期化処理により、オペレーティングシステムが利用する各種システムデータの準備が行われる(S103)、これにより、暗号化鍵保持用の暗号化鍵保持用配列201が占めるメモリ領域は、この部分で割り当てられることになる。その後、機種に依存しない初期化処理を(S104)を行う。
【0061】
ここで、オペレーティングシステムが実行されるマイクロプロセッサ101のメモリ管理ユニットが適切な機能(例えば、後述するMIPS等)を持っている場合について説明する。
【0062】
本実施形態において、暗号化鍵保持用配列201は、カーネル中の、機密情報保持に関連する部分が実行されている期間のみ当該領域を読み書きできる状態に設定する機能を備え、管理者権限で実行されるタスクであっても当該領域に対してアクセスできないように制限されている。
【0063】
これにより、オペレーティングシステムがデバッグ等の目的で物理メモリに対するアクセスを可能とするようなインターフェースを備えている環境であっても、機密情報を保持することができる。例えば、4BSDではファイルシステム中に/dev/memという名前で物理メモリを読み書きするためのインターフェースが提供され、管理者権限をもったユーザタスクであれば、このインターフェースを利用して暗号化鍵保持用配列部分を読み出せるような場合であっても、本実施形態のように、暗号化鍵保持用配列201に対する読み書きについて制限を設けることで、機密情報が漏出のを回避することができる。
【0064】
なお、上述した適切なメモリ管理ユニットを持つハードウェアの例としては、図3に示すような、マイクロプロセッサのひとつであるMIPSが挙げられる。
【0065】
すなわち、同図に示すように、このMIPSアーキテクチャでは、マイクロプロセッサ101中に存在するハードウェアであるTLB(Translation Look−aside Buffer)101aにより仮想アドレスと物理アドレスとの対応付けが行われる。この対応付けの際、具体的にどの仮想アドレスをどの物理アドレスにマッピングするかという決定はオペレーティングシステムカーネルによってなされる。
【0066】
本実施形態では、このようなマッピングを管理するため、オペレーティングシステムカーネルは自らの管理するメモリ中にTLB管理領域206を確保し、維持する。このようなハードウェア上で本実施形態を用いる場合にはTLB管理領域206及びマイクロプロセッサ中のTLB101aにおいて、秘密情報保持処理が実行されている間以外は暗号化鍵保持用の暗号化鍵保持用配列201に対してアクセスできないように設定しておく。これについて本実施形態におけるMIPSアーキテクチャの場合では、当該ページに対応するTLBエントリのValid(V)ビットをoffにすることで実現できる。
【0067】
なお、本実施形態では、MIPSマイクロプロセッサのアーキテクチャを具体例として挙げたが、本発明は、このような個別のマイクロプロセッサのみを対象とするものではなく、既存及び将来のマイクロプロセッサ全般に対して適用可能である。
【0068】
一般に、仮想アドレス及び物理アドレス間のマッピングは、メモリ管理ユニットがサポートするページ単位で行われるため、このようなハードウェアによるアクセス管理を適用する場合、暗号化鍵保持用配列201は、ページ単位で確保する。
【0069】
なお、本実施形態では、オペレーティングシステム起動時に行われるのは暗号化鍵保持用配列201に相当する領域の確保及びそのアクセス権設定操作のみであり、実際の暗号化鍵の生成は、タスク生成処理まで遅延される。
【0070】
これにより重要な機密情報である当該暗号鍵の生成を真に必要となるまで遅らせることで最大限の安全性を確保することができ、また、タスク番号は再利用され得るデータであるため、個々の鍵の寿命をひとつのタスク限りとすることで長期間同じ鍵を使い続けることによる機密情報漏洩の可能性を低減させることが可能となる。なお、タスク番号の再利用を考慮する必要がない環境ではオペレーティングシステム起動時に必要な鍵を生成するようにしてもよい。
【0071】
次いで、タスク生成処理時における暗号化鍵の生成処理について説明する。ここでは、システムコールに応じてタスクを生成する。新しくタスクを生成するための処理を図4に示す。
【0072】
本実施形態では、4.4BSDを含むUNIX(登録商標)系オペレーティングシステムを前提とし、このUNIX(登録商標)系オペレーティングシステムにおけるタスクの生成は、forkシステムコールの実行によって実現される。forkシステムコールは新しく生成されるタスクのための管理用データをオペレーティングシステム内に割り当て、さらに同システムコールを実行したタスクの仮想メモリ空間の完全な複製を、新規タスク用のメモリ空間として確保することで新しいタスクの実行環境を構築する。
【0073】
なお、本実施形態においてメモリ空間の複製の確保については、コピーオンライトとして知られるテクニックを用いることにより、古いタスクから複製された新しいタスクがメモリ領域に対してデータを書き込むまでは、実際に専用の物理メモリの確保は実行されない。一般に、forkシステムコールで生成された新しいタスクでは、続けてそれまで実行していたものとは異なる新しいプログラムコードをロードした上でゼロから実行を開始するため、このコピーオンライトのメカニズムを有効に実行することができる。
【0074】
図4では、タスクxが実行中にforkシステムコールを呼び出した結果として、新たにタスクyが生成された状態を表している。同図に示すように、この状態においては、タスクy用の管理データ210が新しく生成され、当該管理データ210は、forkシステムコール呼び出し元であるタスクx管理データ209の機密情報保持領域208を、コピーオンライト型参照で共有している。
【0075】
このようなタスク関連データ構造の他に、オペレーティングシステムカーネルメモリ中の暗号化鍵保持用配列201中には、新しいタスク番号yに相当する要素位置にタスクyのメモリ中の機密情報保護のための鍵を新規に設定する。この鍵は、タスクxのための鍵とは別途独立な異なる値であり、安全な擬似乱数データとしてforkシステムコール処理のなかで生成される。
【0076】
この結果、機密情報保持領域208は、タスクxとy双方によって共有されることになるが、当該領域を正しく復号できる鍵は同領域を生成したタスクxの鍵のみであるため、forkシステムコールの結果生成されたタスクyが同情報の内容を知ることはできない。このように親子関係にあるようなタスク間であっても、機密情報は当該情報を生成したタスクのみしかアクセスできないように規制される。
【0077】
また、タスク管理データ209や210中にはタスクの実行コンテクストの一部として、コンテクスト切り替え時にハードウェア資源の一部である各種レジスタに保存されていた値を退避するレジスタ退避領域209aや210aが確保されている。
【0078】
コンテクスト切り替え処理が発生した時点で機密情報の一部もしくは全部がこれらレジスタに格納されている可能性が存在するため、タスク管理データ中のレジスタ退避領域209aや210aに対しても、同様にタスク専用暗号化鍵で暗号化を行う。この場合、新しいタスクyのレジスタ退避領域210aに関してはタスクxのレジスタ退避領域をコピーした後、当該領域をタスクxの鍵で復号し、さらにタスクyの鍵で暗号化する処理を行う。
【0079】
さらに、本実施形態では、プログラマに対して機密情報保持領域を確保するために提供されるインターフェースが設けられている。図5はプログラマに対して機密情報保持領域を確保するために提供されるインターフェースの説明図である。
【0080】
この機能は、基本的に、C言語において動的なメモリ領域割り当てを提供するライブラリ関数malloc()と同等のインターフェースを持つsallocシステムコールによって実現される。
【0081】
すなわち、図5に示すように、このsallocシステムコールは、引数で与えられるサイズの連続したメモリ領域を新たにタスクのメモリ空間に割り付け(S201)、この割付けが成功したかを判断し(S202)、成功した場合には(図中ステップS202における”Y”)、その部分が機密情報保持領域に関する情報(先頭アドレス及びサイズ)をカーネルメモリ空間中に記録する(S204)。その後、確保されたアドレス空間の次の領域のアドレスを返却する(S205)。ステップS202において、割付けが成功しなかった場合(図中ステップS202における”N”)、NULL値を返却し(S203)、ステップS204以降の処理は実行しない。
【0082】
そして、このように確保されたメモリ空間に対して暗号化及び復号化を実行する処理は、以下の手順により行う。図6及び図7は、コンテクストスイッチ処理発生時に行われる暗号化及び復号化処理の概要を示す説明図である。
【0083】
先ず、暗号化を行う場合は、図6に示すように、コンテクストスイッチ処理により実行が中断させられ休止状態に遷移させられるタスクに関し、当該タスク用の機密情報暗号化鍵により退避されたレジスタ情報の暗号化を行った後(S301)、当該タスクの機密情報保持領域が存在するか否かについて判断を行い(S302)、機密保持領域が存在する場合(図中ステップS302における”Y”)、その存在する機密保持領域がスワップファイルに退避されているか否かについて判断を行う(S304)。ステップS302において、機密保持領域が存在しないと判断した場合(図中ステップS302における”N”)は、そのまま処理を終了する(S303)。
【0084】
ステップS304において、退避されていない領域が存在すると判断した場合(図中ステップS304における”N”)には、その領域を機密情報暗号化鍵によって暗号化する(S305)。一方、ステップS304において、当該領域がスワップファイルに退避されていると判断した場合(図中ステップS304における”Y”)、上記ステップS302に戻り、上記同様の処理を繰り返す。
【0085】
なお、ステップS304で、スワップファイルに退避されているかどうかを判定しているのは、最適化を図るためである。すなわち、このように判定することにより、機密情報保持領域すべて、一律に暗号化されるのを回避し、スワップファイルに退避されている情報を一時的に実メモリに読み込んだ上で暗号化処理を行うという重い処理を不要とすることができる。
【0086】
なお、本実施形態において、当該データ部分をスワップファイルに退避する処理は、カーネルにしか行えないことから、当該タスクがまさに実行されているコンテクストの途中でスワップ退避処理が行われることはなく、当該タスクが休止状態になった後に、スワップ退避処理が実行される。
【0087】
従って、本実施形態では、スワップ退避処理が実行される時点において、機密情報保持領域に対する暗号化による保護は実施されていることとなり、スワップファイルに退避される時点で機密情報保持領域は既に安全な状態となっており、そのようなスワップファイルに退避された機密情報保持領域に対しては、当該タスクの休止処理時における機密保持処理は、不要となる。
【0088】
次いで、休止状態から実行状態へと遷移させられるタスクに関する復号処理について説明する。
【0089】
図7に示すように、先ず、機密保持領域が存在するか否かについて判断を行い(S401)、機密保持領域が存在すると判断した場合(図中ステップS401における”Y”)には、当該領域がスワップファイルに退避されているか否かについて判断を行う(S402)。当該ステップS402において、等が要ろう域がスワップファイルへ退避されている場合には、ステップS401に戻り、ステップ401以降の処理を繰り返す。
【0090】
このステップS402において、スワップファイルに退避されていない領域が存在すると判断した場合(図中ステップS402における”N”)、当該タスクの機密情報保持領域のうち、先頭アドレスから、当該領域のサイズ分、機密情報暗号化鍵によって復号化を行う(S403)。
【0091】
一方、ステップS401において、機密保持領域が存在しないと判断した場合(図中ステップS401における”N”)、当該タスク用の機密情報暗号化鍵により退避されたレジスタ情報の復号処理を行い(S404)、実行状態への遷移処理を終了する。
【0092】
この復号処理においても、ステップS402において、機密情報保持領域中でスワップファイルへの退避が行われているかどうかの判定を行っているが、これも休止処理時の場合と同様に、最適化を図るためである。すなわち、上述した通り、スワップファイル上では機密情報保持領域は既に暗号化によって保護されているので安全性は問題ない。
【0093】
また、既にスワップファイル上への退避処理が行われている場合には、当該領域に対するアクセスが比較的長期間行われていなかったこととなり、ここでタスクの実行が再開されたとしても当該領域に対するアクセスが行われるとは限らず、この時点でスワップファイルから実メモリに当該領域を読み込み、それを復号して当該タスクが利用できるように準備したとしても無駄となる可能性が高いのである。
【0094】
実際に当該タスクがスワップファイルに退避させられている当該領域へのアクセスを行った場合には、ページフォールトが発生してオペレーティングシステムにより当該領域の実メモリへの読み込みが行われる。しかも、その処理自体は当然当該タスクを再度休止状態にした上で実施されることになるため、オペレーティングシステムによるスワップファイルから実メモリへのデータの読み込みが終了して改めて当該タスクが実行させられる時点になって再度コンテクストスイッチが発生し、その時点では当該機密情報保持領域はスワップファイルではなく実メモリに存在することとなり、ステップS404において、データの復号が行われることになる。
【0095】
以上の結果、スワップファイル上に退避された機密情報保持領域の処置という例外的な事象も、特別扱いすることもなくきわめて自然に処理できることになるのである。
【0096】
[第2実施形態]
次いで、本発明の第5の実施形態について説明する。図8は、本実施形態に係るシステムの構成を示すブロック図である。本実施形態では、複数CPUのSMPシステムに本発明を適用することを前提とする。すなわち、SMPシステムでは、複数のタスクが実際に同時並列的に実行することになるため、前述した第1実施形態における機能に加えて、機密情報保持領域に対して同時に動く他のタスクからのアクセスを禁止する機構を備えることを特徴とする。
【0097】
なお、図8では、実際にタスク3とタスク4が同時に動いている状態を示している。この状態にあっては、機密情報保持領域205と206は復号されて平文状態であることから、本実施形態では、それぞれ他タスクからのアクセスが行えないようにアクセスを規制する。
【0098】
具体的には、図9に示すように、このsallocシステムコールは、引数で与えられるサイズの連続したメモリ領域を新たにタスクのメモリ空間に割り付け(S501)、この割付けが成功したかを判断し(S502)、成功した場合には(図中ステップS502における”Y”)、その部分が機密情報保持領域に関する情報(先頭アドレス及びサイズ)をカーネルメモリ空間中に記録する(S504)。ステップS502において、割付けが成功しなかった場合(図中ステップS502における”N”)、NULL値を返却し(S503)、ステップS504以降の処理は実行しない。
【0099】
ステップS504の後、実行環境がSMPシステムであるかどうかを判定し(S505)、SMPである場合(図中ステップS506における”Y”)には、割り当てた領域に対して、当該タスクが専有的に利用するような指定を行う(S506)。なお、このステップS506において、このような指定がハードウェア的なメモリ管理機構を用いて実現できる場合には、機密情報保持領域の割り当てを同メモリ管理機構が扱うページ単位とする。
【0100】
一方、ステップS505において、実行環境がSMPシステムでないと判断した場合(図中ステップS505における”N”)、或いは、ステップS506の後、確保されたアドレス空間の次の領域のアドレスを返却する(S507)。
【0101】
このような本実施形態に係るマルチタスク実行システムによれば、複数のCPUを搭載するいわゆるSMP(Symmetric Multi Processor)構成の計算機において、同時に複数のタスクがそれぞれ別個のCPUを占有することにより、真に同時並列的に実行が行うシステムであっても、あるタスクの実行中に、機密データ保持領域が平文のままという状態で存在するのを回避し、他のタスクからの操作により、当該領域が漏出するのを防止することができる。
【0102】
すなわち、本実施形態では、他のタスクによって機密データが漏出するのを防止するために、SMP構成の計算機で用いる場合には、単にコンテクストスイッチ時に暗号化/復号化を行うだけではなく、実行中の機密情報を保持するメモリ領域が他のタスクからアクセスできないように制限することができる。
【0103】
具体的には、メモリ領域に対して特定のタスクのみからしか参照できないという属性の付与するとともに、機密情報保持用メモリ領域には同属性を付与する、といった機能をSMP対応オペレーティングシステムカーネルに追加する。
【0104】
なお、メモリデータにも一般的なファイルと同じく書き込み権限、読み出し権限、実行権限等の各種属性が存在し、そういった属性をサポートするために通常オペレーティングシステムにはあるメモリ領域がどのような属性を持っているのかを管理する機能が備えられていることから、既存のオペレーティングシステムの構成を大幅に変更することなく、上記属性を追加することは可能である。
【0105】
【発明の効果】
以上述べたように、この発明によれば、プログラマによって指定される機密情報保持領域を、当該プログラムが実行されているタスク以外のタスクからは読み出すことができないよう保護することが可能となり、機密情報を保持しながら実行するタスクをマルチタスク環境下で安全に実行させることができる。
【0106】
また、本発明によれば、保護機構は管理者権限を備えた悪意あるタスクに対してもアクセス制限を行うことができるため、管理者権限の漏洩や盗用という攻撃にも耐え得ることができる。
【図面の簡単な説明】
【図1】第1実施形態に係るマルチタスク実行システムの構成を示すブロック図である。
【図2】第1実施形態における起動時の処理を示すフローチャート図である。
【図3】第1実施形態において、適切なメモリ管理ユニットを持つハードウェア構成を備えた例を示す説明図である。
【図4】第1実施形態において、システムコールに応じて新しくタスクを生成するための処理を示す説明図である。
【図5】第1実施形態において、プログラマに対して機密情報保持領域を確保するために提供されるインターフェースの説明図である。
【図6】第1実施形態における、コンテクストスイッチ処理発生時に行われる暗号化処理の概要を示す説明図である。
【図7】第1実施形態における、コンテクストスイッチ処理発生時に行われる復号化処理の概要を示す説明図である。
【図8】第2実施形態に係るシステムの構成を示すブロック図である。
【図9】第2実施形態における、マルチタスク実行システムの動作を示す説明図である。
【符号の説明】
100…ハードウェア
101…マイクロプロセッサ
101a…TLB
102…メモリ
103…暗号処理エンジン
104…システムバス
105…コントローラ
106…増設ボード
107…外部バス
200…メモリ空間
201…暗号化鍵保持用配列
202〜205,208…機密情報保持領域
206…TLB管理領域
209…タスク管理データ
209a…レジスタ退避領域
210…管理データ
210a…レジスタ退避領域
Claims (13)
- 単一のCPUによって第1タスクおよび第2タスクを含む複数のタスクを順次実行し、前記複数のタスクを仮想的に並列処理するマルチタスク実行システムであって、
前記第1タスクに対応付けられ、前記第1タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第1機密情報を格納する第1機密情報保持領域と、
前記第2タスクに対応付けられ、前記第2タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第2機密情報を格納する第2機密情報保持領域と、
前記第1機密情報の暗号化に用いられる第1鍵情報と、前記第2機密情報の暗号化に用いられる第2鍵情報とを格納する暗号化鍵記憶領域と、
前記CPUが実行するタスクをオペレーティングシステムによって前記第1タスクから前記第2タスクへ切り替えるタスク切り替えの際に、停止状態となる前記第1タスクの前記第1機密情報を前記第1鍵情報を用いて暗号化する暗号処理部と
を備え、
前記第1機密情報保持領域は、仮想メモリ内に設けられ、
前記マルチタスク実行システムは、前記第1機密情報がスワップファイル等の二次記憶領域に保存されたか否かを判定する退避判定手段をさらに備え、
前記暗号処理部は、前記保存が実行されていない場合に、前記第1機密情報に対する暗号化を実行することを特徴とするマルチタスク実行システム。 - 複数のCPUによって第1タスクおよび第2タスクを含む複数のタスクを順次実行し、前記複数のタスクを仮想的に並列処理するマルチタスク実行システムであって、
前記第1タスクに対応付けられ、前記第1タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第1機密情報を格納する第1機密情報保持領域と、
前記第2タスクに対応付けられ、前記第2タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第2機密情報を格納する第2機密情報保持領域と、
前記第1機密情報の暗号化に用いられる第1鍵情報と、前記第2機密情報の暗号化に用いられる第2鍵情報とを格納する暗号化鍵記憶領域と、
前記CPUが実行するタスクをオペレーティングシステムによって前記第1タスクから前記第2タスクへ切り替えるタスク切り替えの際に、停止状態となる前記第1タスクの前記第1機密情報を前記第1鍵情報を用いて暗号化する暗号処理部と、
前記第1機密情報保持領域および前記第2機密情報保持領域にアクセス権を設定し、前記第1機密情報保持領域および前記第2機密情報保持領域に対するアクセス制限を行うアクセス制御部と
を備えるマルチタスク実行システム。 - 前記暗号処理部は、前記CPUとは別途独立に設けられたハードウェアであることを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 前記暗号処理部により暗号化された前記第1機密情報を、前記タスク切り替え時に、前記第1鍵情報を用いて復号する復号処理部を有することを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 前記復号処理部は、前記CPUとは別途独立に設けられたハードウェアであることを特徴とする請求項4に記載のマルチタスク実行システム。
- 前記第1機密情報保持領域に格納される前記第1機密情報及び格納先の前記第1機密情報保持領域は、前記オペレーティングシステム上で実行されるアプリケーション内で指定されること特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 前記第1機密情報保持領域は、仮想アドレスと物理アドレスとのマッピングによって確保され、前記マッピングに際し、前記暗号化鍵記憶領域に対するアクセス制限を行うマッピング管理部を備えることを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 前記第1鍵情報は、前記第1タスクの生成処理時に生成されるものであることを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 前記第1鍵情報は、前記オペレーティングシステムの起動時に生成されるものであることを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 新規なタスクの生成処理時に、前記複数のタスクのいずれかである既存のタスクを複製して生成された新規なタスクと、前記既存のタスクとで共有される機密情報保持領域に格納される情報について、前記新規なタスクに対し、前記既存のタスクに対応付けられた鍵情報とは別途独立な鍵情報を生成することを特徴とする請求項1又は2に記載のマルチタスク実行システム。
- 単一のCPUによって第1タスクおよび第2タスクを含む複数のタスクを順次実行し、前記複数のタスクを仮想的に並列処理するマルチタスク実行方法であって、
前記第1タスクに対応付けられ、前記第1タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第1機密情報を格納する第1機密情報保持領域を確保するステップ(1)と、
前記第2タスクに対応付けられ、前記第2タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第2機密情報を格納する第2機密情報保持領域を確保するステップ(2)と、
前記第1機密情報の暗号化に用いられる第1鍵情報と、前記第2機密情報の暗号化に用いられる第2鍵情報とを生成するステップ(3)と、
前記CPUが実行するタスクをオペレーティングシステムによって前記第1タスクから前記第2タスクへ切り替えるタスク切り替えの際に、停止状態となる前記第1タスクの前記第1機密情報を前記第1鍵情報を用いて暗号化するステップ(4)と
を備え、
前記第1機密情報保持領域は、仮想メモリ内に設けられ、
前記ステップ(4)では、前記第1機密情報がスワップファイル等の二次記憶領域に保存されていない場合に、前記第1機密情報に対する暗号化を実行することを特徴とするマルチタスク実行方法。 - 複数のCPUによって第1タスクおよび第2タスクを含む複数のタスクを順次実行し、前記複数のタスクを仮想的に並列処理するマルチタスク実行方法であって、
前記第1タスクに対応付けられ、前記第1タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第1機密情報を格納する第1機密情報保持領域を確保するステップ(1)と、
前記第2タスクに対応付けられ、前記第2タスクが処理する情報の少なくとも一部であって他のタスクから機密にすべき第2機密情報を格納する第2機密情報保持領域を確保するステップ(2)と、
前記第1機密情報の暗号化に用いられる第1鍵情報と、前記第2機密情報の暗号化に用いられる第2鍵情報とを生成するステップ(3)と、
前記CPUが実行するタスクをオペレーティングシステムによって前記第1タスクから前記第2タスクへ切り替えるタスク切り替えの際に、停止状態となる前記第1タスクの前記第1機密情報を前記第1鍵情報を用いて暗号化するステップ(4)と、
前記第1機密情報保持領域および前記第2機密情報保持領域にアクセス権を設定し、前記第1機密情報保持領域および前記第2機密情報保持領域に対するアクセス制限を行うステップ(4)と
を備えることを特徴とするマルチタスク実行方法。 - 暗号化された前記第1機密情報を、前記タスク切り替え時に、前記第1鍵情報を用いて復号するステップをさらに有することを特徴とする請求項11又は12に記載のマルチタスク実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003065685A JP4375980B2 (ja) | 2003-03-11 | 2003-03-11 | マルチタスク実行システム及びマルチタスク実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003065685A JP4375980B2 (ja) | 2003-03-11 | 2003-03-11 | マルチタスク実行システム及びマルチタスク実行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004272816A JP2004272816A (ja) | 2004-09-30 |
JP4375980B2 true JP4375980B2 (ja) | 2009-12-02 |
Family
ID=33126642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003065685A Expired - Fee Related JP4375980B2 (ja) | 2003-03-11 | 2003-03-11 | マルチタスク実行システム及びマルチタスク実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4375980B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657754B2 (en) * | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
US8588421B2 (en) * | 2007-01-26 | 2013-11-19 | Microsoft Corporation | Cryptographic key containers on a USB token |
JP4631974B2 (ja) * | 2009-01-08 | 2011-02-16 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および情報処理システム |
DE102009022850A1 (de) | 2009-05-27 | 2010-12-02 | Siemens Aktiengesellschaft | Authentifikation eines RFID-Tags mit einem asymmetrischen Kryptographieverfahren |
WO2011096073A1 (ja) * | 2010-02-08 | 2011-08-11 | Ogawa Mutsumi | メモリ管理方法 |
KR101458479B1 (ko) * | 2012-10-12 | 2014-11-07 | 한국전자통신연구원 | 세션상태정보의 암호화 및 복호화 방법 |
JP6095330B2 (ja) * | 2012-11-13 | 2017-03-15 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
JP6899308B2 (ja) * | 2017-10-16 | 2021-07-07 | 株式会社日立製作所 | 情報処理装置および情報処理装置のデータ処理方法 |
CN113407434B (zh) * | 2020-03-16 | 2024-06-14 | 腾讯科技(深圳)有限公司 | 调试文件的处理方法、装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3627384B2 (ja) * | 1996-01-17 | 2005-03-09 | 富士ゼロックス株式会社 | ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法 |
JP4226760B2 (ja) * | 2000-05-08 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
-
2003
- 2003-03-11 JP JP2003065685A patent/JP4375980B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004272816A (ja) | 2004-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200349265A1 (en) | Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine | |
CN109766165B (zh) | 一种内存访问控制方法、装置、内存控制器及计算机系统 | |
CN109901911B (zh) | 一种信息设置方法、控制方法、装置及相关设备 | |
Jin et al. | Architectural support for secure virtualization under a vulnerable hypervisor | |
JP5249399B2 (ja) | 安全なメモリ区分を使用した安全な実行のための方法および装置 | |
US10095890B2 (en) | Secure processor and a program for a secure processor | |
JP4226760B2 (ja) | マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法 | |
KR100375158B1 (ko) | 변조방지 마이크로프로세서 | |
US7073059B2 (en) | Secure machine platform that interfaces to operating systems and customized control programs | |
US10095862B2 (en) | System for executing code with blind hypervision mechanism | |
JP3866597B2 (ja) | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 | |
US7293173B2 (en) | Methods and systems for protecting information in paging operating systems | |
US7975117B2 (en) | Enforcing isolation among plural operating systems | |
JP4115759B2 (ja) | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム | |
US9756048B2 (en) | System and methods for executing encrypted managed programs | |
KR20190142910A (ko) | 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
Richter et al. | Isolating operating system components with Intel SGX | |
Guan et al. | Building a trustworthy execution environment to defeat exploits from both cyber space and physical space for ARM | |
Huber et al. | Freeze and Crypt: Linux kernel support for main memory encryption | |
JP4375980B2 (ja) | マルチタスク実行システム及びマルチタスク実行方法 | |
Dubrulle et al. | Blind hypervision to protect virtual machine privacy against hypervisor escape vulnerabilities | |
Park et al. | Libmpk: software abstraction for Intel memory protection keys | |
Lie et al. | Using hypervisors to secure commodity operating systems | |
Gutstein | Towards Efficient and Effective IOMMU-based Protection from DMA Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050411 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081006 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090702 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090721 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090811 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090908 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120918 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130918 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |