JP2001318797A - 自動データ処理装置 - Google Patents

自動データ処理装置

Info

Publication number
JP2001318797A
JP2001318797A JP2000281632A JP2000281632A JP2001318797A JP 2001318797 A JP2001318797 A JP 2001318797A JP 2000281632 A JP2000281632 A JP 2000281632A JP 2000281632 A JP2000281632 A JP 2000281632A JP 2001318797 A JP2001318797 A JP 2001318797A
Authority
JP
Japan
Prior art keywords
virtual
environment
virtual machine
ring
data processing
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.)
Granted
Application number
JP2000281632A
Other languages
English (en)
Other versions
JP3630087B2 (ja
Inventor
J French Leslie
レスリー・ジェイ・フレンチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JP2001318797A publication Critical patent/JP2001318797A/ja
Application granted granted Critical
Publication of JP3630087B2 publication Critical patent/JP3630087B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 コードがプロセッサ上で直接に実行される仮
想環境を提供し、各仮想環境の周りにセキュリティシェ
ルを実装した、仮想マシンアーキテクチャを実現する。 【解決手段】 仮想環境内の特権リング階層が、ハード
ウェアにより利用される特権リング階層のサブセットか
ら提供される。仮想環境内からは、最上位特権を要求す
るハードウェアへのアクセスは厳格に制御される。仮想
マシンと外界との間の通信は、シミュレートされたネッ
トワークを通じて行われる。ネットワークは、ファイア
ウォールとして作用する仮想マシンによって保護され、
暗号化を用いてデータトランザクションが保護される。
ハードウェアは、仮想環境には利用可能でない暗号化鍵
を保持する。仮想環境は、ハードウェア鍵を利用した安
全なトランザクションで外部サーバから取得可能な固有
の鍵を受信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は階層的保護リングを
利用してシステムオペレーションを規制するディジタル
データ処理システムの分野に係り、特に、1以上の仮想
マシン(VM:virtual machine)を備えるとともに、
メモリ内のロケーションへのアクセスおよび一部の命令
の実行可能性を規制する階層構成された3個以上の保護
リングを有し、仮想マシンの外部にアクティブセキュリ
ティ層を備えたコンピュータシステムに関する。
【0002】
【従来の技術】「パーソナル」コンピューティングデバ
イス(PC)のセキュリティ(安全性)に関する問題
は、多くのコンピューティングの領域を通じてますます
重要になっている。PCはデスクトップマシンの主流に
なりつつあり、同時にスタンドアローン型コンピュータ
とネットワークマシンとの間の境界線は曖昧になってい
る。従来のワークステーションは、小型メインフレーム
とともに、PCに取って代わられているが、PCは安全
性が低いことでも知られている。オープン(開放型)ア
クセスネットワーク(例えば、インターネットや、ケー
ブルモデムプロバイダのアクセスネットワーク)にます
ます多くのシステムが接続されることにより、これらの
システムは、さまざまなアクセスレベルでの侵入を受け
やすくなっている。モデムデータトランザクションのう
ちの最も単純なものでもそれに関わる情報は大量であ
り、また、ネットワーク駆動型アプリケーションが急増
しているため、システムセキュリティの最初で最後の防
衛線はいつも「信頼」ということになってしまう。
【0003】セキュリティの問題に対するパッチワーク
的な解決法がいくつか提案され、あるいは実装されてい
る。最も単純なアプローチの1つは、コンピュータがリ
ムーバブルメディア(通常はフロッピー(登録商標)デ
ィスク)からブートしないようにすることにより、「ブ
ートブロック」ウィルスの拡散を防ぐことである。この
方法では、ユーザがファームウェア基本入出力システム
(BIOS)にアクセスし(これはパスワード保護され
ていることが多い)、フロッピーからブートすることが
できる前にマシンをリブートすることが必要である。
【0004】第2のアプローチは、システム内のすべて
の既存のソフトウェアを、より安全なバージョンで置き
換えることである。しかし、ソフトウェアアプリケーシ
ョンの複雑さは増大しているため、悪意のあるプログラ
マが利用しようとする(セキュリティ)ホールやバグの
供給は尽きることがない。
【0005】第3のアプローチは、パスワードの使用お
よび記憶データの暗号化による「秘密のベール」であ
る。しかし、秘密性をセキュリティと同視するのは見当
違いである。データを秘匿することは、発見を困難にす
るかもしれないが、問題の解決にはならない。データお
よびパスワードファイルを窃取した後に力ずくで解読す
る方法は別としても、秘密化方式は、「内部」からの攻
撃に非常に弱い。このような攻撃の一例は、偽装プロセ
スが、ユーザの鍵(キー)入力をモニタすることによっ
て、コンピュータの暗号化鍵のコピー、または、ユーザ
のパスワードのコピーを取得するというものである。そ
の後、偽装プロセスは情報を外界にブロードキャスト
し、侵入者が、最も高度な暗号化技術でさえもバイパス
することを可能にしてしまう。
【0006】第4のアプローチは、ソフトウェアまたは
ハードウェアの「ファイアウォール」を使用し、データ
ダウンロードおよびネットワークトランザクションをモ
ニタするというものである。しかし、ファイアウォール
は、そのフィルタと同程度にしか有用ではなく、情報の
通過を許可するかどうかを決定するのに信頼に頼らなけ
ればならないことが多い。
【0007】第5の方法は、ウィルスのコードや攻撃に
対して、コードをスキャンしソフトウェア実行をモニタ
することである。この方法はPCで広まっているが、そ
の弱点も多く文書化されている。特に、未認知のコード
がオペレーティングシステムの欠陥から侵入し、アンチ
ウィルスモニタより下の動作レベルにあるシステムリソ
ースへのアクセスが可能となるときには、この方法は弱
い。この方法は、ワードプロセッサのマクロやネットワ
ークブラウザアプリケーションのような、アプリケーシ
ョン環境内で実行するためのコードにとっては、特に弱
い。必然的に、マシンを完全に孤立させたままにすると
いう「軍用型」アプローチを実装するのでなければ、未
検出の侵入による内部からの攻撃は、このようなセキュ
リティ方式を危うくする。
【0008】第6のアプローチは、「軍用型」アプロー
チと同様に、エミュレートされた「サンドボックス」環
境内でソフトウェアを実行することである。ソフトウェ
アは、コンピュータシステムエミュレータ内にロードさ
れて実行され、疑いのある活動がモニタされることによ
り、汚染された可能性のあるアプリケーションに、より
大きいシステムがさらされる危険が最小化または除去さ
れる。しかし、多くのウィルスは、特定のイベントが発
生するまで眠っているため、安全性を確実にするには、
疑わしいアプリケーションを無期限に隔離する必要があ
る。そうでなければ、誤ってウィルスがないとみなされ
た汚染したアプリケーションがサンドボックスの外に出
て、そのアプリケーションが許可されたマシン「全体」
に感染する。しかし、アプリケーションを環境エミュレ
ータ内で無期限に実行することは、長期間の動作にとっ
ては望ましくない。エミュレータは、コードの実行にか
なりの複雑さを追加する。サンドボックス環境内のソフ
トウェアは、コンピュータのプロセッサによって直接に
実行されるのではなく、命令ごとにシミュレートされる
ことにより、システム動作が遅くなるからである。
【0009】さらに、一部の解決法では、サンドボック
ス環境を従来のオペレーティングシステムのフレームワ
ーク内に作成しようとしている。このような実装は、そ
れが実行される基礎となるオペレーティングシステムと
同程度にしか安全ではない。例えば、サンドボックスと
同じコンピュータ上で実行される特権プロセスは、サン
ドボックス環境のデータおよびメソッドにアクセスする
ことが可能である。このような特権プロセスは、サンド
ボックス環境の制御下にないコンピュータの一部で実行
されている悪意のあるアプリケーションの結果である可
能性があり、あるいは、サンドボックス実装における不
測の抜け穴から生じた可能性がある。
【0010】セキュリティに対するこれらのさまざまな
「2レベル」モデルは、「全か無か」の保護であり、検
証コードがオペレーティングシステムと高い特権レベル
を共有するという欠点を有する。そのコードが正しく動
作することをどのくらい信頼することができるかが問題
となる。インタフェースにおける小さい穴(ホール)の
存在でさえ、保護方式の全体を破壊する可能性がある。
【0011】レガシー(従来の)オペレーティングシス
テムの主な問題点のうちの1つは、「意図」(intentio
n)を判断することにある。セキュリティモニタが、ある
オペレーションが意図されたものかどうかを推論するこ
とは困難である。ディスクフォーマットユーティリティ
は、ウィルスとは区別できない方法で、デバイスのブー
トブロックに書き込みをしようとする。ユーザがメーリ
ングリストのすべてのユーザに電子メールを送るのは、
ネットワークを通じて拡散するメールワームとは区別で
きないことがある。どれが正当なオペレーションである
かを「後知恵」で判断しようとすることは、最終的に失
敗しやすい。ハッカーは、発見的なプロセスで、自分の
コードが本当に真正であると確信させることがうまくな
っているからである。
【0012】これらのセキュリティ方法の下の、ハード
ウェア・ファームウェアのレベルでは、PC(例えば、
Intelのアーキテクチャに基づくもの)は、特権リング
とセグメントテーブルの階層を利用して、プロセスどう
しが干渉や妨害をしあわないようにしている。
【0013】メモリ4a(図1のA)は、セグメント6
a〜6eと呼ばれるブロックに分けられる。あるプロセ
スから個々のセグメントが見えるかどうか(可視性)
と、そのプロセスに与えられるアクセス権は、各プロセ
スに割り当てられるセグメントテーブルによって決定さ
れる。ひとまとめにして、プロセスの権利は、1つ以上
のディスクリプタテーブル(DT:descriptor table)
8によって決定される。メモリセグメント6a〜6eに
関連づけられたディスクリプタ10a〜10e(図1の
B)は、セグメントの開始アドレスおよび大きさ(長
さ)、ならびに、その領域に対するアクセス権を指定す
る。
【0014】セグメントは、プロセッサのアーキテクチ
ャにより、複数のプロセスどうしの間で共有されること
も可能である。あるセグメントが同一のアクセス権です
べてのプロセスから見えるようにされる場合、セグメン
トはグローバルテーブルにおかれることが可能である。
さらに、各プロセスは、そのプロセスのみに関連づけら
れたディスクリプタを保持するローカルテーブルを有す
ることも可能である。このようにして、同じメモリ領域
が、相異なるプロセスからの相異なるアクセス権を有す
ることが可能となる。
【0015】例えばIntelアーキテクチャのCPUを用
いたコンピュータでは、メインメモリに配置された単一
のグローバルディスクリプタテーブル(GDT:Global
Descriptor Table)があり、これは、アーキテクチャ
固有のグローバルディスクリプタテーブルレジスタ(G
DTR:Global Descriptor Table Register)を通じて
アクセスされる。このアーキテクチャでは、複数のGD
Tを設け、プログラム実行中に動的にアクティブにする
ことが可能である。さらに、各プロセスはローカルディ
スクリプタテーブル(LDT:Local Descriptor Tabl
e)を有することが可能であり、これは、上記と同様に
して設けられたローカルディスクリプタテーブルレジス
タ(LDTR:Local Descriptor Table Register)を
通じてアクセスされる。
【0016】このプロセッサアーキテクチャは、外部ソ
ースからまたはソフトウェアによって生成される割込み
に応答してのプロセッサの動作を決定するために用いら
れる、もう1つのテーブルを備える。このテーブルは、
割込みディスクリプタテーブルレジスタ(IDTR:In
terrupt Descriptor Table Register)を通じてアクセ
スされる。
【0017】ハードウェアは、ディスクリプタテーブル
を参照することによって、プロセスにより使用されるア
ドレスをチェックし、アドレスがそのプロセスに割り当
てられた空間の外部にある場合、例外が発生する。しか
し、いくつかのセグメントは、いくつかのプロセスによ
って共有されている。これらの共有セグメントを保護す
るため、図2に示すような、特権リングの階層を設け
る。各ディスクリプタテーブルエントリは、テーブル内
のそのエントリに対するアクセス権を決定するために使
用されるリング保護レベルに関連づけられる。実行中の
プロセスの一部として実行されるプロシージャを含め
て、すべての情報は1つのある特権リングに割り当てら
れる。プロシージャのカレント実行リングは、プロセス
の実行中に変化することがあり、さらに、そのプロシー
ジャに関連づけられたメモリの可視性を決定する。
【0018】4個のリング0〜3の階層において、最も
内側のリング0は最上位の特権のリングであり、最も外
側のリング3は最下位の特権のリングである。内側のリ
ングにあるプロシージャは、外側のリングにあるデータ
にアクセスすることができる(矢印12)。そのため、
最も内側のリングで動作するプロシージャ(例えば、オ
ペレーティングシステムのプロシージャ)は、すべての
リングにあるデータにアクセスすることができる。
【0019】逆に、外側のリングにあるプロシージャ
は、保護違反例外を引き起こさずには、内側のリングに
あるデータにアクセスすることはできない(矢印1
4)。内側リングにあるデータにアクセスするために
は、プロシージャは「コールゲート」18を通じて、そ
のデータを含むリングに分岐しなければならない。コー
ルゲートとは、ハードウェアによって認識される特殊な
「プロシージャコール」ディスクリプタである。いった
んゲートを通ると、上位に分岐することを許されたプロ
シージャが下位のリングに戻る保証はない。また、プロ
シージャが目標のリングに達した後、そのプロシージャ
が害悪を働かないという保証もない。
【0020】仮想マシン環境は、システムセキュリティ
を維持するための有用なツールである。上記のエミュレ
ートされたサンドボックスはその一例である。1つ以上
の仮想マシンを備えたコンピュータシステムは通常、リ
ングの階層を、より少数の実リング(単一のリングのこ
ともある)に圧縮している。実リングには仮想マシン環
境が存在し、仮想マシン内から命令が実行されるとき
に、この人工的環境を受け持つソフトウェアに、特権を
決定することをまかせている。例えば、仮想マシンがリ
ング3内でエミュレートされるとき、仮想マシン内のす
べてのリングはリング3内からシミュレートされる。
【0021】仮想マシン内からのコードをプロセッサ上
で直接に実行することによって、エミュレータの実行が
遅いという問題点を克服する、別の仮想マシン環境が開
発されている。各仮想マシン環境内からのコードは、通
常のタスクと同様にして実行される。環境管理ソフトウ
ェアは、既存のオペレーティングシステム内の、また
は、オペレーティングシステムと連携して、オペレーテ
ィングシステム内のデバイスドライバを利用し、システ
ムリソースへのアクセスを規制するプロセスとして動作
する。残念ながら、これらの方法は、環境シミュレーシ
ョンの速度の欠点は克服するものの、安全でないレガシ
ー環境に埋め込まれたサンドボックスは、コード実行を
シミュレートするソフトウェアベースのエミュレータの
セキュリティ保護に欠けている。
【0022】
【発明が解決しようとする課題】これらはすべて、過度
のエミュレーションを避けながら、インタフェースにお
けるホール(穴)を塞ぐ環境についてのものである。環
境は、修正なしのレガシーオペレーティングシステムの
使用が可能になるように、オープンでしかもサンドボッ
クス的でなければならず、同時に、信頼性の高い多層保
護および防御可能なセキュリティ制限を提供しなければ
ならない。
【0023】
【課題を解決するための手段】上記の問題点を解決する
ため、本発明の目的は、コードがプロセッサ上で直接に
実行されるが、各仮想環境の周りにセキュリティシェル
を実装した、仮想マシンアーキテクチャを提供すること
である。シェルを通じてクリティカルなシステムリソー
スにアクセスすること(ネットワークアクセスを含む)
は、制限的であるが透過的に制御される。セキュリティ
制限は、各「サンドボックス」の完全性を維持しなが
ら、ネットワークおよびシステムのリソースへの見かけ
上オープンなアクセスを可能にする。
【0024】本発明は、すべてのインタラクションを検
証しようとするのではなく、データが通る非常に狭く定
義されたインタフェースを有する仮想マシンを通じて、
孤立した環境を提供する。この実装は、仮想マシン内で
動作するゲストレガシーオペレーティングシステムから
は見えない。
【0025】データ検証メカニズムは、同じハードウェ
ア内に存在する孤立した仮想環境どうしの間での転送に
適用される。セキュリティメカニズムはモジュール的で
あり、仮想ファイアウォール、ハードウェア間およびハ
ードウェア内暗号化、ならびに、ブートブロック検証を
含む。「安全でない」環境に物理ディスクを移動し、オ
ペレーティングシステムコンフィグレーションを変更
し、「安全な」環境にそのディスクを戻すことに対する
保護が設けられる。廃棄または窃取されたドライブから
のデータ窃取は、ディスクブートブロックの破壊ととも
に、防止される。不揮発性RAMデータは、制限された
アクセスによって隠され、あるいは、保護されることが
可能である。各オペレーティング環境は孤立している。
ファイアウォールが、マシンデータとネットワークの間
に作成され、機密データを含む安全な環境から「高リス
ク」アプリケーションを隔離する。
【0026】本発明は、好ましくは、物理リソースを保
護する小型のコアオペレーティングシステム(例えば、
1000行のオーダーのコード)であり、それにより、
マシンパフォーマンスの損失を最小にし、オペレーティ
ングシステムの全部または一部をROMのような保護さ
れたブート可能メモリに記憶することを可能にする。コ
アを小さくすることにより、将来変化するセキュリティ
モデルに従っていることを示すために正当性証明を適用
すること、および、既存のシステムへの影響を最小にし
てマシンパフォーマンスの損失を防ぐことが可能とな
る。
【0027】仮想マシンコアオペレーティングシステム
は、特権アプリケーションとして動作する仮想マシンマ
ネージャと同様、最上位特権リング内で動作する。仮想
マシンマネージャは、各仮想環境のためのシステムリソ
ースのエミュレーションを管理する。データ転送マネー
ジャ(DTM:data transfer manager)は、2番目に
高い特権リング内で動作し、各仮想環境を出入りするデ
ータ転送を管理する。仮想環境内には、通常のオペレー
ティング環境をシミュレートするために仮想特権リング
が作成される。各仮想マシンは自分自身のオペレーティ
ングシステムを有するが、マシンリソースへのすべての
アクセスは仮想マシンコアを通して検証されるという制
限された環境にある。
【0028】一般に、仮想マシンにおけるほとんどの命
令は「ネイティブ」に実行されるが、リング0実行レベ
ルを必要とする命令のみはコアにトラップされる。実装
の一部は、仮想マシンのための特権オペレーションを隠
すデータ構造体(例えば、プロセッサステータスレジス
タ)の管理である。この方式では、レガシーオペレーテ
ィングシステムには、自分自身の特権レベルの変化を見
かけ上追跡するシステムレジスタのセットが見えること
になるが、リング0命令の使用、物理メモリへのアクセ
スあるいは物理デバイスへのアクセスをしようとする
と、まず仮想マシンコアを通ることになる。
【0029】修正されていないオペレーティングシステ
ムを仮想環境で実行するため、ゲストシステムには、ネ
イティブマシンと同一であるように見えるメモリモデル
が提示される。例えば、各マシンには、(仮想)リセッ
ト時にロケーションFFFF:FFF0に(おそらくは
相異なる)ブートROMが見えなければならない。その
ため、仮想メモリ管理システムは、実マシン上の相異な
る物理アドレスに同じ論理アドレスをマップする。
【0030】各マシンが自分自身のブートシーケンスを
通して動作することを保証するため、相異なる仮想マシ
ンに返される結果は実際のハードウェアを反映しないこ
とがある。例えば、マシンは、ハードウェアにあるより
も多いまたは少ない物理メモリにアクセス可能であるこ
とがあり、また、プローブに応答するバス上のすべての
デバイスが見えるとは限らない。各仮想環境に個別化さ
れたブートROMを設けることにより、BIOSデータ
構造体が、その仮想マシンに必要な仮想状態を反映する
ようにされる。
【0031】同様に、ゲストマシンは、ハードウェアリ
ソースにアクセスすることを阻止される。入出力命令、
および、メモリマップドページを通じて外部デバイスに
アクセスする命令もまた、コアにトラップされる。これ
を実現するため、コアは、可能な場合、与えられたタス
クに対して個々の入出力空間アドレスがロックアウトさ
れることが可能であるようなメモリ管理システムを使用
する。
【0032】ハードウェア割込みは、コアハンドラにト
ラップされ、そこから適当なマシンにディスパッチされ
る。このメカニズムは、1つの仮想マシンしかない場合
でも適用しなければならない。割込みをイネーブル(有
効)またはディスエーブル(無効)にする命令は、仮想
環境内でエミュレートされているだけだからである。仮
想マシンのリング0にデバイスドライバをロードするこ
とが許可される場合に限り、割込みを直接にそのハンド
ラにディスパッチすることができる。これが当てはまる
唯一の場合は、パフォーマンスが問題となる場合であろ
う。例えば、自分自身の検証領域で実行されている大容
量デバイス(例えばイーサネット(登録商標)コントロ
ーラ)に対する複数回のデータコピーやマシン再スケジ
ュールを避けるためである。明らかに、このメカニズム
は、ファイアウォールのような高度に信頼されたアプリ
ケーションに対してのみ利用可能である。
【0033】仮想マシンの概念は、ハード(ディスク)
ドライブのような、マシン上の補助メモリ(補助記憶領
域)にも拡張される。マシンどうしが同じ物理デバイス
を共有していても、それらが専用のドライブを有してい
るかのように、絶対ブロックアドレスへのアクセスは、
トラップされ、仮想ディスクアドレスに変換される。
【0034】ディスクへの物理攻撃を考慮して、すべて
のアクセスをトラップすることにより、本発明のアーキ
テクチャ内で他の付加価値サービスが可能となる。例え
ば、本発明は、透過的なディスクミラーリング、あるい
はRAID(Redundant Arrayof Independent Disks)シ
ステムを実装して、故障したハードウェアからのデータ
回復を改善することができる。また、このレベルで可能
なこととして、コアは、不揮発性RAMに記憶された鍵
を用いて仮想マシン上のすべてのデータを暗号化し、デ
ィスクが他のマシン上では読むことができないようにす
ることができる。さらに完全な保護のために、コアシス
テムをマシンごとの不揮発性RAM鍵によって保護し、
仮想マシンデータが、マシン鍵とユーザによる鍵入力の
両方からなる2レベル鍵を使用することが可能である。
【0035】これらの方式を使用することを選択する
と、システムセキュリティと全体としてのシステムパフ
ォーマンスへの影響との間の妥協を必要とする。暗号化
方法は、コンポーネント障害時にコンポーネントを「ホ
ットスワップ」することがほとんど不可能であるという
欠点を有する。また、ディスククラッシュからのデータ
回復がずっと困難になる。
【0036】可能性として、ネイティブシステム上では
別個のリング(1〜3)で実行されるコードが、ゲスト
システムでは同じ物理リング内で実行される心配があ
る。これにより、ユーザレベルのアプリケーションが、
アクセスすることができないはずのデータ構造体を変更
することができてしまう可能性がある。この心配は、メ
モリ管理サブシステムを用いた仮想リングシステムを実
装することにより解決される。このようにして、異なる
仮想リングのページは別個のまま保持され、同じ物理リ
ング内のタスクどうしの間のタスク切り替えは、メモリ
アクセス制御をも切り替える。
【0037】本発明の基本的な実装は、 ・好ましくは安全なブートROMに記憶された、仮想マ
シンコアおよび仮想マシンマネージャのためのローダ、 ・コンフィグレーションデータおよびセキュリティ鍵を
保持するための不揮発性RAM内の領域、 ・個々の仮想マシンを実行することを担当する仮想マシ
ンコアスケジューラ、 ・ゲスト仮想マシンのコンフィグレーション(設定)、
ロード、およびセキュリティポリシーを処理する仮想マ
シンマネージャ、 ・ゲスト仮想マシンのコンフィグレーション仕様、 ・ゲスト仮想マシンのための仮想ブートROM、 ・ゲスト仮想マシンのための仮想不揮発性RAMパラメ
ータ領域、 ・ゲスト仮想マシンのためのリング1タスクにロードさ
れる安全なアプリケーション、 ・ゲスト仮想マシンのためのファイルシステムを含むデ
ィスクパーティション(オペレーティングシステムおよ
びアプリケーションコードを含む) を有する。
【0038】ほとんどのマシンは、さまざまなハードウ
ェアを含む。例えば、リムーバブルメディアデバイス、
ネットワークインタフェース、および補助ハードドライ
ブがある。これらのリソースは、コアを通じてゲストマ
シンどうしの間で共有されることも、特定のマシンに専
用とすることも可能である。これらのコンポーネントの
正確な配置は、セキュリティモデルによって決定するこ
とも可能である。例えば、仮想マシンマネージャがディ
スクからロードされるようにすることにより、ドライバ
およびポリシーのアップグレード(おそらくは、新たな
ハードウェアコンフィグレーションに応じての)を容易
にすることが可能である。しかし、自動ハードウェア再
設定がセキュリティの脅威となる状況では、システム全
体をブートROMからロードすることが可能である。
【0039】他のセキュリティ特有のハードウェアコン
ポーネントをアーキテクチャに組み込むことも可能であ
る。一例としては、2鍵暗号化方式の隠し鍵部分を実装
するフュージブル(fusible)ROM(すなわち、いった
ん書き込んだデータを読み出すことができないROM)
がある。このようなPROMがあれば、隠し鍵は、マシ
ン上に可読形式で格納されない。このようなPROM
は、チャレンジ・レスポンス認証メカニズムを実装する
ために使用することも可能である。
【0040】リムーバブルメディアから安全なシステム
をブートすることができることは、特に、感染したメデ
ィアがサイト付近に運ばれてきたことが知られていると
きには、許容できないセキュリティの抜け穴となる。既
知の良好なメディアからマシンをブートすることができ
る場合でも、ユーザには、保護されているはずのマシン
のセキュリティオプションにアクセスする機会が与えら
れる。しかし、このオプションを除去すれば、新たなマ
シンをセットアップすることは困難または不可能になっ
てしまう。
【0041】この問題点にはいくつかの解決法がある。
第1の解決法は、ハードドライブを既存のシステムから
設定することができる特殊な「セットアップ」マシンを
作成することである。第2の解決法は、リムーバブルメ
ディアからのブートを可能にするハードウェアジャンパ
を設けることである。第3の解決法は、リムーバブルメ
ディアからブートできないようにする不揮発性RAMの
「ディスエーブル」ビットをを設け、マシンが設定され
たらそれをセットすることである。第4の解決法は、マ
シンが稼働し始めたら置換される特殊なブートROMを
ダウンロードまたは挿入することである。どのようにし
てリムーバブルメディアからブートできないようにする
かに関して、これらの選択肢のうちのいずれを選択する
かは、個々のサイトのセキュリティ環境および運用手続
きに依存する。コアがロードされ、仮想マシンマネージ
ャが起動した後は、個々の仮想マシンが作成され、その
マシンの仮想の「リムーバブルメディアからブート」オ
プションを有効にする(これは後でコアから無効にする
ことが可能)ことによって、それらのオペレーティング
システムは従来のメカニズムによりインストールされ
る。
【0042】インストールに手作業の介入を必要とする
ことは、デスクトップ型の企業環境ではポリシーの本質
的な部分かもしれないが、国際的なインフラストラクチ
ャ内に深く埋め込まれたアクティブなネットワークコン
ポーネントには不適当なことがある。このようなシステ
ムでは、システムソフトウェアのアクティブアップグレ
ードが重要となることがある。このような状況では、ネ
ットワークを通じてコアシステムをロードすることが好
ましい場合がある。ブートROMに復号鍵を埋め込むこ
とにより、権限のあるサーバのみがこの初期イメージを
供給することができることを保証することが可能とな
る。
【0043】固定システムのインストール手続きにおけ
るその後のステップは、システムが実際にどのように管
理される場合でも本質的に同じままである。ブート可能
ハードドライブをフォーマットしパーティションを切る
ためのユーティリティ(そのマシン上で、または、別の
システム上で実行される)が必要である。ターゲットハ
ードウェア上のブートROMは、適当なブート環境で再
プログラムされなければならない(なお、ゲストシステ
ムが使用するためにオリジナルのROMをイメージとし
て保存することも可能である)。ブート可能コアと、仮
想マシンマネージャのイメージは、安全なパーティショ
ンにインストールしなければならない。
【0044】不揮発性RAMデータは、適当なハードウ
ェアおよびセキュリティオプションで設定されなければ
ならない。マシンのセキュリティ鍵を生成し、システム
にインストールしなければならない。おそらくは、新た
にロードされるパーティション全体が暗号化されること
になる。
【0045】この時点で、システムは、仮想マシンマネ
ージャのマシンにブート可能となる。このマシンからタ
ーゲットマシンに、コンフィグレーションを引き継ぐこ
と、あるいは、ディスクおよびプログラミングの情報を
転送することが可能である。
【0046】個々のゲスト仮想マシンのプロファイルを
作成しなければならない。これには次のものが含まれ
る。 a)そのマシンのブートROMとしてインストールされ
るイメージ。これは、オリジナルマシンのROMである
か、あるいは、例えば別のシステムがエミュレートまた
は開発される場合には別のソースからのROMであるこ
とが可能である。 b)不揮発性RAM要求に対して供給されるデータを含
むファイル。これは、最初は空であるか、または、その
仮想システムにとって適当な最小限のコンフィグレーシ
ョンデータを含むことが可能である。 c)リング0またはリング1タスク領域にロードされる
アプリケーション。 d)仮想マシンのディスクドライブにマップされるディ
スクの領域、および、その領域内の保護ブロックの指定
(例えば、ブートセクタへの書き込み不可)。 e)専用ハードウェアや外部割り込みソースの指定。 f)専用入出力空間アドレスへのアクセス権。
【0047】これらのデータが入力された後、ゲスト仮
想マシンは、そのブートROMイメージをマップし、仮
想リング0内でリセットベクタから開始することによっ
て起動することができる。最初のブート時に、マシンは
新たな未設定のシステムのように見える。ブートROM
セットアッププログラム、または、ブート可能リムーバ
ブルメディアを用いて、不揮発性RAMシャドウイメー
ジ内のパラメータを設定することができる。例示的なマ
シンイメージを図13に示す。
【0048】その後、個々のマシンは、自分自身のディ
スク領域をフォーマットし、オペレーティングシステム
をインストールする。これは、コンフィグレーションシ
ステムを、ファイルシステムフォーマット(例えば、D
OSやLinux)とは独立にする。例示的なディスク
レイアウトを図5に示す。
【0049】補助メモリディスク60は、パーティショ
ンテーブル102、実環境パーティションおよびファイ
ルシステム104、ファイアウォールパーティション1
06、および、それぞれの仮想環境専用のパーティショ
ン108a〜108dを有する。実環境パーティション
104は、仮想マシンコアイメージ104a、仮想マシ
ンマネージャリング0タスクイメージ104b、他の実
環境特権タスクのイメージ104c、仮想マシンマネー
ジャ20のデータ領域104d、および、データ転送マ
ネージャ30(後述)のスプール領域104eを有す
る。仮想マシンマネージャデータ領域104dは、それ
ぞれの仮想環境ごとに、仕様140、ブートROMイメ
ージ150、および不揮発性RAMエミュレーションイ
メージ160を有する。
【0050】通常の動作条件下では、電源投入時に、ハ
ードウェアはブートROMからブートされる。このRO
Mは、不揮発性RAM格納データまたは他のソースから
の低レベルマシンパラメータを設定し、(非リムーバブ
ル)ブートディスクにアクセスして仮想マシンコアをロ
ードする。セキュリティモデルに依存して、ROMは、
ロードされるシステムに対する基本的な検証を実行する
ために、組み込みチェックサムおよび復号機能を有する
ことも可能である。
【0051】仮想マシンコア初期化プロシージャは、仮
想マシンマネージャをリング0タスクとしてロードし、
このマネージャを実行キューに入れる。次に、コアは、
仮想マシンスケジューラを起動する。これは、メインエ
ントリポイントから仮想マシンマネージャのマシンに入
る。
【0052】この時点で、仮想マシンコアは、タスクご
とではなく仮想マシンごとに、オリジナルのコアと同様
の「ファンクション」のセットを実行している。ただ
し、仮想マシンの作成および削除という追加機能があ
る。これらのファンクションは、リング0コードからの
み直接にアクセス可能であり、次のものを含む。 a)物理メモリの割当ておよび解放。 b)割込みおよびトラップハンドラのインストール。 c)仮想マシンの作成および削除。 d)所定のメッセージングプロトコルを用いた仮想マシ
ン環境どうしの間のタスク間通信(リング0およびリン
グ1のみ) e)割込み無効化サービスによるクリティカルセクショ
ンの実装。 f)仮想マシン間のスケジューリングおよびコンテクス
ト切り替え。 g)登録されたハンドラへの第1レベル割込みディスパ
ッチ。
【0053】通信プリミティブにより、データは、仮想
マシンどうしの間で渡されるが、これは特権プログラム
を通じてのみ行われる。仮想マシンマネージャは、外部
イベント、入出力空間アドレスへの非リング0アクセ
ス、および、特権命令の実行に対するトラップおよび割
込みハンドラをインストールする。また、仮想マシンマ
ネージャは、物理ディスク、キーボード、マウスおよび
グラフィクスデバイスにアクセスするためのドライバ、
ならびに、不揮発性RAMおよびリアルタイムクロック
情報を読み出すためのドライバも含む。
【0054】「実」環境内(仮想マシン環境の外部)で
は、アプリケーションは、システムのコンフィグレーシ
ョン情報を含む実際のファイルシステムにアクセスする
ことができる。この場合も、セキュリティモデルに依存
して、このブートストラップ環境で実行されるアプリケ
ーションは、仮想マシンのディスク領域にアクセスする
ことも可能である。これは、例えば、既知の保存された
コピーと対照して仮想セクタ0の内容を確認するため、
あるいは、既知のブートブロックウィルスがないかどう
かを検査するためである。
【0055】その後、仮想マシンマネージャは、コアフ
ァイルシステム内のコンフィグレーション情報に基づい
て、他のゲスト仮想マシンを作成する。これらのマシン
は、中央スケジューラの実行リストに追加される。
【0056】個々のマシンのためのページテーブルの作
成および管理、ならびにマシンの制御レジスタのシャド
ウテーブルの管理を担当するのは仮想マシンマネージャ
である。このように、中央コアは、個々のセキュリティ
ポリシーや管理ストラテジを知っている必要がない。
【0057】個々のマシンは、それらの機能に適当な状
態で起動する。例えば、ほとんどの保護モードマシン
は、それらのリセット(仮想)アドレスから起動する
が、リング2で実行される。安全なマシン(例えば、フ
ァイアウォールマシン)は、リング0アプリケーション
エントリポイントから起動することが必要とされる可能
性がある。
【0058】特権のあるオペレーションやデータへのす
べての企図されたアクセスは、仮想マシンマネージャに
トラップされる。仮想マシンマネージャは、そのマシン
に対して設定されたポリシーと、仮想マシンのシャドウ
制御レジスタの現在の状態とに従って結果をエミュレー
トする。
【0059】他の特権マシンに引き継がれない外部割込
みは、コアによって、仮想マシンマネージャへとスケジ
ュールされ、仮想マシンマネージャは、それらの割込み
をゲスト仮想マシンに、それらのマシンの状態に従って
分配する。共有リソース(例えばキーボード)につい
て、仮想マシンマネージャは、デバイスの現在の「所有
権」(ownership)を追跡し、正しい入力が正しいデバイ
スに送られることを保証する。ディスクアクセスについ
ては、データは、そのディスク領域にアクセス可能なマ
シンに送られなければならない(あるいは、そのような
マシンから取得されなければならない)。また、見かけ
上の物理アドレスは、マシンごとにマップされなければ
ならない。同様に、不揮発性RAMのような「エミュレ
ーション」デバイスは、要求元のマシンに適当なデータ
を返す。
【0060】一般に、すべてのアプリケーションは、仮
想環境で透過的に動作する。各システムは、そのシステ
ム専用のディスクエリアのみを有するように見える。デ
ータの暗号化および復号は、透過的に処理される。マシ
ンにマップされるデバイスは、通常のインタフェース
(例えば、BIOSコンフィグレーションメニュー)を
通じてアクセスされるように見える。
【0061】仮想マシンを動作させる主な動機は、各環
境が固有の保護およびセキュリティ領域を有することで
ある。例示的な構成は、次の4つの仮想マシンを含む。 a)外部ネットワークにアクセス可能で、ウェブブラウ
ザや電子メールアプリケーションのようなソフトウェア
を実行する、安全でない「オープン」なマシン。このよ
うなマシンは、データ窃取アプリケーションが盗んだデ
ータを送信しないように、発信電子メールを阻止するこ
とがある。 b)発信電子メールアクセスが可能な低機密性ファイル
システム。これは、ワードプロセッサアプリケーション
やその他のウィルスターゲットも実行可能である。 c)機密(または個人に損害を与える)情報を格納し操
作するために使用される、外部アクセス不可能な、高機
密性マシン。 d)外界に対するファイアウォールとして作用し、イー
サネットインタフェースに対する直接制御を有する仮想
マシン。このようなマシンは、SMTP(Simple Mail T
ransfer Protocol)トランザクションをエミュレート
し、そのローカルスプールの限り、他のマシンが電子メ
ールを「送信」することを可能にする。ただし、データ
がマシンを出る前に(例えば、物理マシンから外への、
または、仮想マシンどうしの間で仮想ネットワークアダ
プタを通じて、送信される前に)、明示的なユーザ確認
を必要とする。
【0062】このように、アクセスおよび損害は、個々
のプログラムが実行される環境に制限される。この構成
でセキュリティを維持することは依然としてある程度の
ユーザ規律を必要とすることは確かであるが、手続きお
よびポリシーが定められるだけではなく守られるという
環境では、隔離規則は有効である。実際、ユーザが「作
業」(play)環境を作成することを可能にすることによっ
て、ユーザに自分のデスクトップ上での自由度をより多
く与えながら、データを不要にさらさないことにより全
体のセキュリティを向上させることができる。
【0063】このモデルはビジネス用途に制限されな
い。例えば、家庭では、1つの仮想マシンは「子供向
け」ウェブブラウザのみを実行し、監視なしのバージョ
ンは、異なるパスワード保護された仮想領域でのみアク
セス可能である(従って、暗に、フルバージョンを用い
てダウンロードされたデータは他人の眼からは隠される
ということになる)。
【0064】マルチマシン仮想環境モデルを考えると、
データを仮想マシンどうしの間で受け渡ししなければな
らない場合がある。例えば、安全でない環境で受信され
た電子メールメッセージを、機密領域に渡す必要があ
る。このようなデータ転送は、リング1アプリケーショ
ンを通じて処理される。
【0065】リング1アプリケーションは、NFS(Net
work File System)によって使用されるのと同様の「シ
ャドウドライブ」を作成し、セキュリティの高い環境の
アプリケーションから開始されたオペレーションが、セ
キュリティの低い環境にアクセスすると、リング1にト
ラップされるようにする。この方式の1つの利点は、こ
のようなインタフェースを通じてウィルスチェックを適
用することができることである。リング1で特別のアプ
リケーションを動作させることにより、転送コードは、
マシン間でデータを探索しマップするためにリング0ゲ
ートコールのセットを使用する。
【0066】このアプローチの欠点は、共有デバイス
が、相異なるマシンからの要求が正しく処理されるとと
もに適当な正当性チェックとともに処理されることを保
証するドライバを通じて、制御されなければならないこ
とである。入出力アクセスは、例えばディスクアドレス
を変換し、あるいは、データを読み書きするためのバッ
ファを設けるように、必要に応じて修正されなければな
らない。
【0067】本発明は、安全な小型のオペレーティング
システム上で動作することを意図しているため、ドライ
バはこれに応じてポートされなければならない。さまざ
まなハードウェアコンポーネントのための最新のドライ
バを維持しようとする労力は、特に、Linuxグラフ
ィクスカードドライバに対するソースレベルサポートが
ほとんど全くないことにも見られるように、さまざまな
メーカによる非開示に対する苦労が増大していることを
考えると、過小評価されるべきでない。XFree86
の場合のように、多くの場合、メーカは、ドライバのバ
イナリバージョンのみを供給している。
【0068】必要とされるセキュリティが絶対的か相対
的かに依存して、実行時間を改善するためのトレードオ
フを考慮することが可能である。例えば、「カレント」
仮想マシン環境に対して、ビデオバッファに用いられる
メモリマップドアパーチャへの直接アクセスを可能にす
ることにより、モニタへの直接書き込みが可能となる。
しかし、同じビデオカードの制御レジスタへのアクセス
を可能にすると、(潜在的に)アプリケーションがシス
テムをロックアップさせることが可能になるおそれがあ
る。
【0069】また、本発明は、コンピューティングデバ
イスがオープンアクセスネットワーキングフレームワー
クに埋め込まれている場合に、より安全な相互作用を可
能にする。このようなアプリケーションの1つは、アク
ティブネットワーク(ActiveNetwork)の領域にある。こ
の場合、データストリームがコンピュータネットワーク
を流れるのとともに処理がデータストリームに適用され
る。アクティブネットワークの重要な特徴は、処理が事
前に固定されておらず、処理されるデータストリームの
内容に従って処理ユニットに動的にロードされるデータ
およびメソッドを含むことが可能であることである。こ
れらのプログラム自体、データと同じオープンネットワ
ークを通じてプロセッサに転送され、従って、悪意のあ
る第三者による観測や干渉にさらされる。
【0070】通常のシステムでは、アプリケーション
(例えば、Java対応ウェブブラウザ)は、公衆の安
全でないインターネットを通じて、信頼されるソースか
らモジュールをダウンロードする。セキュリティ(安全
性)を高めるには、公開鍵暗号化を使用する。アプリケ
ーションは、モジュールリポジトリへの安全なチャネル
を開設しようとする場合、秘密鍵を用いて暗号化された
メッセージをリポジトリに送り、リポジトリは、公開鍵
でこのメッセージを復号し、それに応答して、(公開鍵
で暗号化した)適当なモジュールを送信する。モジュー
ルは、アプリケーションに到達すると、秘密鍵で復号さ
れる。
【0071】通常、秘密鍵は1つのマシンによって保有
され、その上で実行されるアプリケーションどうしで共
有される。秘密鍵は、その重要性が高いため、ブートR
OMまたは不揮発性RAMに記憶され、あるいは、それ
らに記憶された情報から導出されることが多い。この従
来の方法の問題点は、悪意のあるアプリケーションもま
た鍵を要求することが可能であることにより、他のアプ
リケーションの活動に対するデータスヌーピング(data
snooping)が可能となってしまう。同様に危険なことと
して、悪意のあるアプリケーションは、鍵を盗み、それ
を他の場所にブロードキャストすることができてしま
う。
【0072】安全な仮想環境の作成により、ある仮想環
境で実行されるアプリケーションが、別の仮想環境で実
行されるアプリケーションに対するスヌーピングをする
ことができないようになるが、鍵の公然の窃取は妨げら
れない。
【0073】鍵の窃取を防ぐため、仮想環境で動作して
いるアプリケーションにより鍵に対する要求(例えば、
所定のアドレスへのコール)がなされると、その要求は
リング0コアにトラップされる。その場合、マシンの実
際の鍵を提供する代わりに、仮想マシンマネージャ(ま
たはその他の実環境タスク)は、物理マシンの鍵を用い
て暗号化されたメッセージを鍵サーバに送り、1回限り
のまたは短寿命の秘密鍵を要求する。
【0074】その後、この短寿命秘密鍵は、セッション
中に使用するために、要求元のアプリケーションに渡さ
れる。これらの公開鍵および秘密鍵は、個々の仮想環境
に固有である。従って、その仮想環境内のすべては、他
のすべての仮想環境とは独立の鍵を有し、この鍵は、仮
想環境内のアプリケーションが全く知らない間に変更可
能である。さらに、コアが実マシンの秘密鍵を隠してい
るため、この鍵は仮想環境内からは決して見えず、従っ
て、安全である。
【0075】
【発明の実施の形態】本発明による自動データ装置は、
仮想マシン環境の周りにセキュリティシェルを作成する
と同時に、仮想環境内からコードを直接に実行する。
【0076】図2に示すように、装置は、実特権リング
0〜3の階層を使用してアクセス特権を制御する。これ
らの実特権リングは、装置の「実」すなわち通常の処理
環境からなる。図3のAは、仮想マシン環境を含む、本
発明の基本コンポーネントを示す図であり、図3のB
は、Aの仮想マシン環境内の仮想リングの階層を示す図
である。図3のAに示すように、実環境内には、タスク
切り替え、リソース管理および割込みディスパッチを含
むファンクションのセットを実装した小型のコアシステ
ム50がある。このようなタスクの1つは、最上位特権
の実リング内にある仮想マシンマネージャ20(以下
「VMマネージャ」という)であり、実リングのプロパ
ティを変更するすべての処理はこれに制約される。実環
境内には、VMマネージャ20によって作成された複数
の仮想マシン環境40があり、これらは実特権リング2
および3に存在する。
【0077】仮想環境40内から見ると、あらゆるもの
は「実」の幻影を有する。しかし、物理リソースへのコ
ールは実際にはVMマネージャ20によって処理され
る。VMマネージャ20は、このようなコールを直接に
トラップするか、または、コールをマスクして、アクセ
スが制限されるようにする。図4は仮想環境専用のメモ
リのパーティションを示す図である。例えば、仮想環境
40はメモリ4b内のメモリ部分40′内にある。通
常、仮想環境40内で実行されるプロセスは、アドレス
0から始まる連続したアドレスの範囲が見えることを期
待する。しかし、仮想環境に割り当てられるメモリの部
分は0から始まる可能性は低く、必ずしも連続している
わけでもない。これを調整するため、VMマネージャ2
0は、プロセッサのメモリ管理ユニット(MMU)のフ
ァシリティを用いて、メモリ部分40′のアドレスをマ
ップし、仮想環境40内からすべてが通常のように見え
るようにする。このようなマッピングは一般に、ページ
メモリ管理ユニットまたはコントローラによって実行さ
れるため、VMマネージャ20は、利用可能なときにこ
のようなツールを利用することが好ましい。
【0078】同様に、ハードドライブのような補助メモ
リの場合、仮想環境40内から絶対ブロックアドレスに
アクセスしようとする試みは、VMマネージャ20によ
ってトラップされ変換されなければならない。仮想環境
40内からは、たとえ複数の「仮想」ドライブが物理的
には同じデバイスであっても、ドライブは専用ドライブ
のように見える。これもまた、透過的なドライブパーテ
ィショニングによって実現することができるが、これは
IntelアーキテクチャのPCによって直接にはサポート
されていない。しかし、透過的パーティショニングがハ
ードウェア・ファームウェアによってサポートされてい
る場合、VMマネージャ20は、「仮想ドライブ」を管
理するためにこのようなツールを利用することが好まし
い。
【0079】仮想環境との間のデータ転送は、特権リン
グ1にあるデータ転送マネージャ30を通じて行われ
る。仮想環境40内で実行されるプロセスから見ると、
データ転送マネージャ30は、イーサネットネットワー
クコネクションのような通信ポートであるように見え
る。複数の仮想環境がある場合、環境間の通信はデータ
転送マネージャを通じて行われ、仮想環境どうしは通信
媒体(例えば物理ローカルエリアネットワーク)を通じ
て接続された別個のエンティティとして互いを認識す
る。仮想環境40が物理コンピュータの外部のマシンと
通信しようとするとき、情報は、データ転送マネージャ
30からポートあるいはゲートウェイ22を通じて外界
に渡る。このようなゲートウェイの例としては、イーサ
ネット接続を行うイーサネットドライバや、モデムドラ
イバがある。
【0080】仮想環境40は、仮想特権リング(図3の
B)に分かれる。通常、実リングと同数の仮想特権リン
グがあるが、仮想環境は実リングの残りの部分(すなわ
ち、実リング2および3)のみを含むため、VMマネー
ジャ20がディスクリプタテーブルの制御権を有する。
【0081】第1実施例は、さらに2種類のディスクリ
プタテーブルを有する。第1のものは、仮想環境ディス
クリプタテーブル(VEDT:virtual environment de
scriptor table)である。VEDTは、仮想マシン内で
実行されるオペレーティングシステムソフトウェアによ
って作成され、そのシステムによってセグメントに割り
当てられた仮想リング番号を有する。仮想マシンに関す
る限り、VEDTは、GDTまたはLDTとして使用す
ることが可能である。VEDTは、仮想環境内の情報
を、実リングにではなく仮想リングにマップし、セグメ
ントを、実アドレスにではなく、仮想環境を含むメモリ
部分40′のマップされたアドレスにマップする。
【0082】追加の2番目の種類のディスクリプタテー
ブルは、シャドウディスクリプタテーブル(SDT:sh
adow descriptor table)である。SDTは、VMマネ
ージャによって生成され、ローカル環境内のセグメント
を実特権リングの階層にマップする。プロセッサが、仮
想環境内から発した命令を実行しているとき、SDT
は、特権を決定するために使用される。実際には、仮想
環境内で使用されるVEDTごとに固有のSDTが生成
される。SDTは、命令がどの特権で実行されるかに基
づいて選択される。
【0083】図6は、第1実施例の実環境および仮想環
境の両方に対する特権リングおよびコールゲートを示す
図である。第1実施例では、図6に示すように、仮想環
境を含む実リング以外の残りの部分は、VEDTにおけ
る仮想リング0に関連づけられたすべてのセグメントが
SDTにおける実リング2に関連づけられるように分け
られる。仮想リング1〜3における仮想環境内で実行さ
れる命令は、SDTにより実リング3に割り当てられ
る。このリング割当ての分配が好ましいのは、仮想環境
40内では、レガシーOSが(ほとんどの場合)、例え
ば入出力オペレーションを処理するためのドライバと同
様に、仮想リング0にあるからである。コールゲートが
最も多く使用される場合の1つは、このような特権にア
クセスする場合である。後述するように、低い特権の圧
縮仮想リングから高い特権の圧縮仮想リングへのアクセ
スを要求するために仮想環境コールゲート118(図
6)が使用されるときにはVMマネージャ20が介在し
なければならないため、非圧縮リングとして仮想リング
0を構成することによりVMマネージャの介入の必要が
少なくなることにより、処理が高速になる。
【0084】仮想環境内の仮想特権リングどうしの間の
特権規則は、図2に関して説明したような実環境のもの
と同じである。仮想環境内の命令は、同位または下位の
特権の仮想リングに関連づけられた情報およびリソース
にアクセスすることができる。上位の特権リングにアク
セスしようとする命令は、仮想コールゲート118のう
ちの1つを使用しなければならない。これらの仮想コー
ルゲート118はVEDT内に現れ、対応するコールゲ
ートがSDT内にマップされる。
【0085】第1実施例では、仮想環境内のプロセスか
ら情報を求める要求は、上位、下位、または同位のいず
れの特権であるかにかかわらず、VEDTではなくSD
Tを用いて決定される。
【0086】図7に、VEDT70および4個のSDT
80a〜dを示す。(説明のため、この図のディスクリ
プタテーブルには特権情報のみを示すが、実際には、こ
れらのテーブルは、メモリアドレスのような、ディスク
リプタテーブルに通常見られる他の情報も含む。)SD
T80a〜dのそれぞれは、仮想特権リングの階層の1
つの仮想特権リングに関連づけられる。
【0087】例えば、仮想リング0で動作する命令が情
報を要求するとき、仮想リング0(80a)のSDT
が、ディスクリプタ情報のためにプロセッサによって使
用される。プロセッサは、この命令を、実リング2で動
作する命令と見なす。命令が最上位の仮想特権リングで
動作しているため、これは、仮想環境40全体の情報に
アクセス可能である。従って、VMマネージャ20は、
仮想環境内のすべてのセグメントについて、実リング2
をSDT0(80a)に入れる。仮想リング0で動作す
る命令が、仮想環境内のあるセグメントへのアクセスを
要求すると、プロセッサは、命令が動作している実特権
リング(実リング2)を、SDT0(80a)に記録さ
れている実特権リングと比較する。これらは等しいた
め、プロセッサはアクセスを許可する。
【0088】これに対して、仮想リング3で動作する命
令は、仮想リング3の外側にアクセスするには、仮想コ
ールゲート118を使用しなければならない。仮想リン
グ3で動作する命令に対して、プロセッサは、SDT3
(80d)を用いて、特権を決定する。この場合、VE
DT70に示されるように、仮想リング3に関連づけら
れたすべてのセグメントに対して、VMマネージャ20
は、実リング3を対応するSDT3(80d)ロケーシ
ョンに入れる。こうして、仮想特権リング3内の要求は
合法となり、プロセッサはアクセスを許可する。
【0089】SDT3(80d)内で、VMマネージャ
20は、すべてのセグメントに対して実リング2を仮想
リング0に入れる。仮想リング3内の命令が仮想リング
0へのアクセスを要求すると、プロセッサは、命令の実
リング(実リング3)を、要求される特権(実リング
2)と比較し、例外を発行する。この遷移は、コールゲ
ートを通じて実行されるのでなければ不法であるからで
ある。遷移が適当なコールゲートを通じて試みられた場
合、遷移は許可される。
【0090】ある圧縮仮想リングから上位の特権の圧縮
仮想リングへのアクセスが要求されると、VMマネージ
ャが介入する。SDT3(80d)内で、VMマネージ
ャ20は、すべてのセグメントに対して、実リング0
を、上位の特権の圧縮仮想リング(リング1および2)
に入れる。前と同様に、仮想リング3から仮想リング1
または2への遷移がコールゲートを使用せずに試みられ
た場合、例外が発生する。しかし、実リング0への仮想
環境コールゲート要求の実行は、VMマネージャ20に
トラップされる。これは、仮想環境40内から特権オペ
レーションまたは特権データにアクセスしようとする場
合と同様である。これらの場合、コールのターゲットア
ドレスが存在するメモリセグメントに要求される実特権
レベルは、仮想ゲートの特権レベルにとって十分ではな
い。これにより、VMマネージャ20へのトラップが引
き起こされるために、VMマネージャ20は、仮想リン
グを変更し、新たな仮想環境を反映するように実SDT
テーブルを切り替えることができる。その後、VMマネ
ージャ20は、その仮想マシンのために設定されたポリ
シーに従い、要求されたセグメントの対応するVEDT
エントリの内容に基づいて、結果をエミュレートする。
【0091】シャドウディスクリプタテーブル(SD
T)80a〜dは、一度に1個ずつ、または、仮想環境
40の形成時に全部、VMマネージャ20によって作成
される。第1実施例では、SDT形成ポリシーは、仮想
環境40の既知のまたは観測される挙動に基づいて、V
Mマネージャ20によって適応的に選択される。
【0092】最も単純なポリシーは、個々の仮想特権リ
ングに対して、そのリング内でプロセスが実行を開始す
るときに1個のSDTを作成するというものである。こ
のSDTは、セグメントがメモリ部分40′内でロケー
ションを変更する(または削除もしくは追加される)
か、または、その他の何らかの変更がVEDTに生じた
が、実行中のプロセスはアクセス特権を変更しない場合
に、修正される。実行中のプロセスが特権リングを変更
すると、このSDTは廃棄され、新たなSDTが生成さ
れる。このポリシーは、仮想リング変更が頻繁である場
合に、オーバーヘッドは増大するが、維持されるSDT
が最小限になるという利点を有する。
【0093】第2のSDTポリシーは、仮想環境40の
形成時に仮想リングの階層全体に対してSDTを作成す
るというものである。VEDTに変更が生じるたびにす
べてのSDTが修正される。このポリシーは、維持され
るSDTは増大するが、仮想リングどうしの間の遷移は
高速になるという利点を有する。このポリシーは、仮想
環境内のプロセスが頻繁にリングを変更する状況に最も
よく適している。
【0094】第3のSDTポリシーは、上記の2つの混
成であり、SDTは必要に応じて一度に1個ずつ作成さ
れるが、いったん作成された後は、維持され再使用され
るというものである。
【0095】VMマネージャ20が、仮想環境40内の
レガシーオペレーティングシステムを認識した場合、こ
のレガシーOSの特性に適したSDTポリシーが実行さ
れる。環境の内容が認識されない場合、VMマネージャ
20はデフォルトポリシー(例えば、第1実施例の第1
のポリシー)を選択し、効率が示すところに応じてポリ
シーを切り替える。
【0096】複数のディスクリプタテーブルが存在する
システムでは、それぞれをシャドウ化しなければならな
い。これは、グローバルテーブルとローカルテーブルの
両方があるときにも当てはまる。本発明の代表的な実装
では、グローバルテーブルは、VMマネージャ20が仮
想マシンどうしの間を切り替えるときに変更され、ロー
カルテーブルは、仮想マシンのオペレーティングシステ
ムがタスクどうしの間を切り替えるときに変更される。
【0097】図8は、第2実施例の実環境および仮想環
境の両方に対する特権リングおよびコールゲートを示す
図である。本発明の第2実施例では、仮想環境は、2個
の仮想リングのみを有する。一例として、Intelアーキ
テクチャマシンでは、標準的なDOSの実装は、2個の
リング、すなわち、最上位および最下位の特権のリング
のみを使用する。VMマネージャ20がこのようなレガ
シーオペレーティングシステムを認識すると、仮想環境
40は、「クイックパススルー」(quick-pass-through)
を利用して形成される。図8に示すように、2つの仮想
リングは、仮想環境40を含む2つの実リングに直接に
マップされる。その結果、すべてのリングに対するSD
Tを維持するシャドウディスクリプタテーブル(SD
T)ポリシーを使用する場合、2個のSDTのみを維持
すればよい。そのため、第2実施例では、すべてのシャ
ドウディスクリプタテーブルが環境の作成時に形成され
るというSDTポリシーが、好ましいデフォルトとな
る。
【0098】本発明の第3実施例では、シャドウディス
クリプタテーブル(SDT)を使用する代わりに、VM
マネージャ20は、仮想環境ディスクリプタテーブル
(VEDT)を修正して、実特権リングの関連づけを、
対応する仮想リングの関連づけの代わりに置き換える。
仮想環境内から命令が実行されると、プロセッサは、V
EDTを用いて、アクセス特権を決定する。
【0099】仮想環境内からのコードがこの置換を認識
しないようにするため、VEDTを含むメモリは、仮想
環境内からは読むことができないものとしてマークされ
る。仮想環境40内からVEDTを読もうとすると、V
Mマネージャ20にトラップされる。VMマネージャ2
0は、実特権置換を適当な仮想環境情報でマスクする。
【0100】VEDTへの修正は、2つの方法のうちの
一方により実行される。第1の方法では、仮想環境40
内からVEDTに書き込みをしようとすると、VMマネ
ージャ20にトラップされる。これにより、VMマネー
ジャは、目的とされたエントリを横取りし、置換エント
リを入れる。第1の方法は、ゲストOSがVEDTエン
トリを確認(読み出しを必要とする)しようとしない場
合に好ましい。第2の方法は、仮想環境40内の命令
が、VEDTに書き込みをすることを許容し、その後、
エントリを適当な実特権リング割当てで上書きするもの
である。ゲストOSがエントリへの書き込みの後にその
エントリを確認する場合、VEDTを読み出そうとする
試みが、VMマネージャに上書きを実行することを指示
するトラップとして使用される。動作時の環境の観測に
基づいて、VEDT修正あたりのトラップ数が最小とな
る方法を選択することが好ましい。
【0101】本発明の実施例について説明を続けると、
仮想環境との間の情報転送は、実リング1で動作するデ
ータ転送マネージャ(DTM)によって処理される。デ
ータストリームを管理するため、DTMは、必要に応じ
て、データを記憶領域にスプールする(図5、DTMス
プール104e)。図9は仮想マシン環境との間の通信
のための例示的なコンフィグレーションを示す図であ
り、ここではDTM30を用いた例示的な構成を示す。
使用される個々の構成は、ユーザ初期設定、ハードウェ
ア能力、およびマシンの要求のようなファクタに基づ
く。ゲートウェイ22は、リング0通信ドライバおよび
データコネクションを含む。
【0102】図9のAに示す第1の構成では、仮想マシ
ン40は、DTM30をローカルハブ34と見なす。完
全なトランザクションのみが仮想環境どうしの間で伝達
されることを保証するため、あるいは、トランザクショ
ンの内容を確認するため、DTM30は、さらに、複数
のデータブロックをバッファリングするためのスプーリ
ングシステムを実装する。ハブ34は、いかなる通信プ
ロトコルが要求される場合でも、それを用いて実装する
ことができる。ユーザが希望すれば、スプーリングが通
常使用されるため、相異なる仮想環境に対して相異なる
プロトコルをシミュレートすることも可能であり、その
場合、DTM30は不可視的に変換を行う。
【0103】図9のBに示す第2の構成では、DTM3
0は、各仮想環境ごとに通信チャネル(xfer)32
をシミュレートする。チャネルの例としては、モデムコ
ネクションや、NFSのような仮想ファイルシステムサ
ービスがある。チャネルは、リング0ゲートウェイドラ
イバ22が実際に接続されている実際のネットワークの
ように見えることも可能であり、また、何か他のものの
シミュレーションであることも可能である。例えば、ゲ
ートウェイは、イーサネットTCP/IPリンクである
ことが可能であるが、何らかの理由で、ユーザは、DT
M30がモデムをシミュレートするということがある。
【0104】図9のCに示す第3の構成では、複数のD
TM30が動作し、相異なるタスクとして管理される。
この場合、DTM30は、仮想マシンどうしの間のスプ
ーリングのために共有スプーリング領域を有することが
必要である。この構成は、ユーザが、さまざまな環境固
有の通信機能を必要とする場合に適当である。この場
合、カスタマイズされたリング1マネージャを設けるこ
とが好ましいからである。
【0105】DTM構成(図9)において、セキュリテ
ィと速度との間で選択をしなければならない。最も高速
の構成は、DTM30による関与なしにゲートウェイ2
2から直接に仮想マシン40にデータを流すものであ
る。これは、サンドボックスを崩壊させる危険がある。
一般に、これにより、ゲートウェイ22と仮想環境40
の間のインタラクションが可能になるからである。もち
ろん、DTM30によるプロトコルエミュレーション
は、動作を遅くする。最も安全であるが最も低速の構成
は、すべてのデータをスプールし、ウィルスがないかど
うか、および、データ盗取アプリケーションによる送信
がないかどうかを(DTM30やその他の実環境アプリ
ケーションによって)検査することである。ハードウェ
アの通信能力(例えば、複数のデータコネクション)
や、ユーザによって個々の仮想環境に与えられている信
頼度に基づいて、複数の構成を組み合わせて使用するこ
とも可能である。
【0106】本発明の実施例について説明を続けると、
システムは、自己の仮想環境から動作するファイアウォ
ールを含むようにセットアップすることが可能である。
図10は仮想環境内から動作するファイアウォールを使
用する本発明の例示的なコンフィグレーションを示す図
であり、3つの構成例が示されている。ファイアウォー
ルソフトウェアは、本発明のアーキテクチャ用にカスタ
ム開発することも可能であり、あるいは、スタンドアロ
ーンマシン用の市販のファイアウォールソフトウェアに
よることも可能である。各ファイアウォールは、2つの
側、すなわち、内側と外側を有する。保護される環境は
ファイアウォールの内側にある。ファイアウォールの外
側には、ネットワークおよび信頼されない環境がある。
ファイアウォールのそれぞれの側での通信は互いに隔離
される。
【0107】図10に示す3つの構成例は、図9に関し
て説明したデータ通信構成の変形である。図10のAに
おいて、ファイアウォール42を含む仮想マシンは、内
側および外側のリンクのために個別のDTM30を有す
る。図10のBでは、DTM30は、内側および外側の
リンクのための個別のチャネル32をシミュレートす
る。図10のCでは、DTM30は、ファイアウォール
の内側においてローカルハブ34をシミュレートする一
方、専用のDTM30がゲートウェイ22に接続され
る。これらの構成は単なる例示であり、明らかに、これ
ら以外の多くの組合せが存在する。曲げることができな
い要件は、ファイアウォール42の内側と外側の隔離で
ある。ファイアウォール42は単純な必要物であるた
め、ファイアウォールが存在する環境には、コンパクト
でセキュリティの厳格なオペレーティングシステムが好
ましい。
【0108】ファイアウォール42を含む仮想環境は、
ファイアウォール42に与えられる信頼度に依存して、
ゲートウェイ22からの直接データストリームが所望さ
れる環境の一例である。さらに、同じく信頼度に依存し
て、セキュリティ制限の重複を避けるために、ファイア
ウォール42の内側のDTM30には、データ窃取に対
するデータストリームスキャニングのようなセキュリテ
ィ制限を少なくすることが好ましい場合がある。
【0109】本発明の実施例への追加として、DTM3
0またはファイアウォール42は、データ転送が許可さ
れる前にユーザの確認を要求するように設定される。そ
の間、データはスプール(図5、DTMスプール104
eまたはファイアウォールスプール106a)に格納さ
れる。この機能は、特に、データ盗取を検出するために
有用である。
【0110】図11は、仮想環境内からディスクパーテ
ィションに格納されたデータを暗号化する例示的なコン
フィグレーションを示す図である。本発明の実施例につ
いて説明を続けると、仮想マシン40と、補助メモリ6
0内の仮想マシンパーティション108の間でデータは
暗号化される。この暗号化は、仮想マシン40内からは
不可視であり、好ましくは、仮想マシンのパーティショ
ン内のすべてのデータを含む。この暗号化を、物理マシ
ンに固有の鍵と組み合わせることにより、盗まれたハー
ドドライブ上のすべてのデータは、覗こうとする他人の
目からさらに良好に保護される。仮想マシン環境の形成
時のパスワード保護は、さらにセキュリティを向上させ
る。この保護は、レガシーオペレーティングシステムへ
の変更や、データが暗号化されているという表示を仮想
環境内に有することなしに得られる。
【0111】暗号化は、暗号化部分90および復号部分
92を含むVMマネージャ20(図11のA)によっ
て、または、別個の暗号化・復号フィルタ94を通じ
て、実行される。フィルタ94は、すべてのデータが通
る層(レイヤ)として、または、特権実環境アプリケー
ションを支援する協調的な「ヘルパー」として、実装さ
れる。フィルタ94は、特殊化されたソフトウェア(例
えば、リング0または1におけるアプリケーションとし
て動作する(図11のB))、または、特殊化されたハ
ードウェア(例えば、フュージブルROM)とすること
が可能である。さらに、相異なるパーティションに対し
て相異なる暗号化方式を使用することが可能である。同
様の方法は、リムーバブル記憶装置にも使用され、最も
極端な場合には、主メモリの仮想環境部分40′を暗号
化するために使用される(これは、不揮発性メインメモ
リを用いたシステムに有用となる)。
【0112】同様に、暗号化は、仮想マシンを出入りす
るデータストリームに対しても行われる。たとえば、図
12は仮想環境と外部ネットワークの間のデータ転送の
暗号化および復号を行う例示的なコンフィグレーション
を示す図であるが、図12のAにおいて、暗号化部分9
0および復号部分92は、データ転送マネージャ30に
組み込まれ、図12のBでは、データは暗号化・復号フ
ィルタ94を通る。
【0113】もう1つの実施例として、本発明は、アク
ティブネットワークのコンポーネント上で動作するアプ
リケーションを保護するために有用である。このような
構成に対するセキュリティ要求は、より高度な相互信頼
が仮定される環境に対して採用されるモデルとは異な
る。このことは、例えば、さまざまな文献に記載されて
いるように、安全でないインフラストラクチャで動作す
るときのKerberos鍵配送方式の制限によって示されてい
る。上記の実施例をアクティブネットワーク環境に組み
込んだ場合、データセキュリティは改善される。一例と
して、再プログラム可能なネットワークの一部を図14
に示す。これは、 ・他のネットワーキングエレメントから供給されるダウ
ンロード可能モジュールを実行可能で、公衆の、安全で
ないインターネットを通じて到達可能な、アクティブネ
ットワークコンポーネント(ANC:Active Network C
omponent)200、 ・ダウンロード可能モジュールを含むアクティブリポジ
トリ(AR:Active Repository)210、 ・ネットワーク内の「鍵サーバ」であるKServ1
(230a)およびKServ2(230b)、 ・正当な権限のあるアクティブコンポーネントによって
のみアクセスされるアプリケーション固有データ(AS
D:application-specific data)240(例えば課金
データ)、 を有する。ANC200は、暗号化鍵が必要な仮想環境
40を含むマシンからなる。
【0114】このような構成では、2つの異なるセキュ
リティ領域がある。第1のセキュリティ領域に、アクテ
ィブネットワークでのANCマシンの認証である。第2
のセキュリティ領域は、ANC200にロードされるア
クティブコンポーネントの検証である。ANC200上
に、本発明によって提供されるような安全な環境がなけ
れば、第1のセキュリティは達成することができない。
さらに、ダウンロードされたコンポーネントが移動中
に、またはANC200上で、悪意のある第三者による
修正を受けた場合、第2のセキュリティは保証すること
ができない。本発明の安全な構成を用いた場合、周知の
2鍵暗号方式を用いて、どのようにして両方のレベルの
認証が可能となるかを以下で説明する。
【0115】本発明によれば、アクティブエレメントは
Name(名前)によって表される。Nameは、マシ
ンまたはアプリケーションを表すことが可能である。D
NS(Domain Name System、分散型インターネットディ
レクトリサービス)のように、階層的にドメインとして
構造化されたNameの空間が考えられるかもしれない
が、マシンに対するアクティブなNameがそのインタ
ーネット構成と関係を有する必要はない(すなわち、N
ameは、異なる時点では異なる物理インスタンスに関
連づけられる可能性のある抽象的エンティティであ
る)。
【0116】それぞれのNameには、そのNameを
インスタンス化しているエンティティにのみ知られるK
ey(秘密鍵)と、外界に知らされるClef(公開
鍵)が関連づけられる。通常のモデルに従って、Key
で暗号化されたデータは、Clefで(のみ)復号可能
であり、その逆も成り立つ。
【0117】ANCマシン200は、設定されると、権
限3項組{Name,Clef,Key}が与えられ
る。また、少なくとも1つのアクセス2項組{Nam
e,Clef}と、鍵サーバマシン230a/bの対応
するIP情報{マシン名,アドレス}(これは、ANC
マシン200が鍵問合せを行うために使用することが可
能)も供給される。同時に、ANCマシン200のアク
セス2項組{Name−ANC,Clef−ANC}が
鍵サーバ230aに入力される。秘密鍵の生成およびイ
ンストールに関するすべてのオペレーションは、安全に
実行される。
【0118】仮想環境40は、固有のClef(公開
鍵)を、秘密のKey(秘密鍵)とともに受信する。こ
のKeyは、ANC200が鍵サーバ230aに対して
要求する用途限定の鍵(Key−ANC)である。好ま
しくは、仮想環境40内のアプリケーションがマシンの
秘密鍵に関連づけられたアドレスをコールするときに最
初の要求が行われ、これが自動的にリング0コアにトラ
ップされる。実環境の暗号化を利用して、限定用途の秘
密鍵に対してコアからなされる要求は、実際のハードウ
ェアの秘密鍵を用いて符号化される。鍵サーバが応答す
ると、限定用途秘密鍵Keyは仮想環境(もともとコー
ルがなされたアドレスにあるかのように)に渡されるこ
とにより、その内部のアプリケーションは、その限定用
途Keyを利用して、アクティブリポジトリ210に対
してモジュールを要求する。このような方式で標準とな
っているように、公開鍵で符号化された情報は、秘密鍵
を用いてのみ復号可能であり、秘密鍵で符号化された情
報は、公開鍵を用いてのみ復号可能である。
【0119】限定用途秘密鍵を取得することは、仮想環
境40内のアプリケーションの知り得る範囲外で行われ
る。鍵が取得されると、その仮想環境40を出入りする
データストリームは独自に符号化することが可能となる
ため、他の環境で実行される悪意のあるコードが、符号
化されたアプリケーションのセキュリティを危険にさら
すことはできなくなる。そのアプリケーションの環境の
秘密鍵を危険にさらすことは不可能であるためである。
【0120】何らかの制御メカニズム(例えば、COR
BA(Common Object Request Broker Architecture))
を用いて(ただし、以下のプロトコルを実装して)、ア
クティブリポジトリ(AR)210は、ANC200で
インスタンス化された仮想環境に新たなプログラムをダ
ウンロードするよう命令される。AR210は、ANC
200のネットワークロケーションを通知されるか、ま
たは、ある位置探索・インスタンス化(安全な)メカニ
ズムによりそれを決定する。何らかの方法で、AR21
0は、ANC200のネットワークアドレスを知る。ま
た、AR210は、鍵サーバ230aのネットワークア
ドレスも知る。
【0121】以下は、限定用途Keyが取得された後、
モジュールを安全にダウンロードするのに必要なトラン
ザクションの一例である。
【0122】1.AR210は、KServ1(230
a)に次の要求を送る。 <Name−AR <Clef(Name−ANC)=
?>Key-ARClef-K Serv1 ただし、<y>xは、鍵xで暗号化された項目yを意味
し、?は、この要求に対する応答として返されるべきデ
ータを示す。秘密鍵が真に秘密のままであるという仮定
の下では、KServ1(230a)以外のエンティテ
ィはこのメッセージの内容を見ることができない。
【0123】2.KServ1(230a)は、このパ
ケットを受信すると、次のオペレーションを実行する。 <<Name−AR <Clef(Name−ANC)
=?>Key-ARClef -KServ1Key-KServ1 <<y>KeyClef=yであるため、これは次のように
簡単化される。 Name−AR <Clef(Name−ANC)=?
Key-AR Name−ARの公開鍵を適用することにより次が得ら
れる。 <<Clef(Name−ANC)=?>Key-AR
Clef-AR これは次のように簡単化される。 Clef(Name−ANC)=? これにより、パケットが、主張されたNameエンティ
ティからのものである場合に限り、要求が取得される。
【0124】3.次に、鍵サーバ230aは、Name
−ANCに対するClefを調べ、自己のKeyと、A
R210のClefで暗号化された応答を次のように形
成する。 <Name−KServ1 <Clef(Name−A
NC)=Clef−ANC>Key-KServ1Clef-AR これにより、AR210のみがこの応答を読むことがで
きることが保証される。一見したところ、実際には公開
された情報であるものを暗号化することは奇妙に思われ
るかもしれない。しかし、このようにすることは、公開
鍵であっても、権限のあるエンティティにのみ公開され
ていることを意味し、セキュリティが多少向上する。さ
らに重要なことは、AR210のクライアントがANC
マシン200に関心を持っていることを、鍵サーバ23
0aの「付近」をスヌープしている者が推論することが
できないようにすることである。このレベルでは、些細
なことであっても、競争相手に何らかの推論やビジネス
上の有利な立場を与えてしまうことがあるからである。
【0125】4.AR210は、明らかな復号を実行
し、ANCマシン200のアクセスコードを最終的に取
得する前に、応答中のNameが既知の鍵サーバに対応
することをチェックする。
【0126】ANC200に送られる新たなプログラム
が、そのソフトウェアの供給元からの機密情報への安全
なアクセス(例えば、ASD240へのアクセス)を必
要とし、ASD240のプロバイダが、スヌーピングに
対してAR210の長期記憶装置を信頼してない場合
(また、おそらく、ASD240のプロバイダは、アプ
リケーションがロードされることになるANCのNam
eのセットを事前には知らない)、AR210は、AR
210およびASD240によって相互に信頼されてい
る鍵サーバ(230b)に次のような第2の問合せを送
り、新たな3項組を要求する。
【0127】5. <Name−AR <New(N
ame−SecApp)=?>Key- ARClef-KServ2 ただし、Name−SecAppは、ANC200上で
インスタンス化されようとしているアプリケーションの
Nameである。
【0128】6.KServ2(230b)は、Cle
f−Ar(これは、KServ1(230a)から取得
しなければならないかもしれない)を用いて要求を抽出
し、新たな認証3項組を生成する。KServ2(23
0b)は、Name部分およびClef部分を自己のデ
ータベースに格納しており、3項組全体をARに返す。 <Name−KServ2 <{Name−SecAp
p,Clef−SecApp,Key−SecApp}
Key-KServ2Clef-AR もちろん、この場合、この応答は暗号化されることが重
要である。より強力なモデルでは、これをさらにCle
f−ANCで暗号化することにより、AR210がデー
タを読み出せないようにすることが可能である。
【0129】7.ARは、KServ1(230a)か
ら返された鍵を用いて、再プログラミング情報をANC
200に送る。 <Name−AR <New Program>Key-AR
Clef-ANC
【0130】8.このパケットは、ANC200の「フ
ァイアウォール」レベル42で横取りされ、限定用途の
Key−ANCにアクセス可能な権限のある仮想マシン
環境40に渡される。 <<Name−AR <New Program>
Key-ARClef-ANCKey- ANC これは、次のように簡単化される。 Name−AR <New Program>Key-AR この時点で、送信側エンティティのNameが明らかに
なる(Name−AR)。セキュリティモデルに依存し
て、このNameは、権限のあるリストと比較してチェ
ックされるか、または、オープンシステムでは額面通り
にとられる。
【0131】9.ステップ1〜4と全く同じステップを
用いて、ANC200はClef−ARを取得し、Ne
w Program情報を回復する。
【0132】新プログラム(New Program)
がリポジトリに安全にリンクされるように、AR210
は、権限3項組情報を(おそらくは、KServ2(2
30b)の名前およびそのロケーション情報とともに)
ANC200に送る。AR210は、この情報のコピー
を保持しないように信頼される(結局、AR210は、
格納されたアプリケーションを修正しないように信頼さ
れる)。モデルに依存して、この新たなアプリケーショ
ン固有の鍵は、新たにロードされるコードに渡される
か、または、仮想環境の外部に保持されることが可能で
ある。Key−SecAppおよびClef−SecA
ppを用いて、新たなアプリケーションは、ASD24
0がClef−ASDを知ることを必要とせずに、KS
erv2(230b)を通じてASD240への通信チ
ャネルを確立することができる。このメカニズムによ
り、KServ2(230b)およびASD240は、
ANC200に置かれた信頼とは独立に許可を取り消す
ことが可能となる。
【0133】なお、このモデルは、仮想環境40内で動
作する個々のアプリケーションが特別な方法で構成され
ることや、特別の言語で書かれることを必要としないこ
とに注意すべきである。さらに、これらと同じ方法を用
いて、仮想環境をサービスする暗号化サブルーチン(図
12)に、固有の鍵セットを提供することも可能であ
る。例えば、DTM30または暗号化・復号フィルタ9
4が、仮想環境40を出入りするデータ転送の暗号化お
よび復号を行うために限定用途の鍵を使用することが可
能である。このような場合、仮想環境40とDTM30
またはフィルタ94との間を流れる暗号化されていない
データは、他のすべての仮想環境にはアクセス不可能で
ある。
【0134】本発明の技術思想および技術的範囲を離れ
ることなく、本発明のさまざまな変形例を考えることが
可能であることはいうまでもない。
【図面の簡単な説明】
【図1】Aは、通常のメモリに記憶されたセグメントお
よびディスクリプタテーブルを示す図であり、Bは、A
のディスクリプタテーブルの内容を示す図である。
【図2】階層的特権保護方式を用いたマシン内の特権リ
ングおよびコールゲートを示す模式図である。
【図3】Aは、仮想マシン環境を含む、本発明の基本コ
ンポーネントを示す図であり、Bは、Aの仮想マシン環
境内の仮想リングの階層を示す図である。
【図4】仮想環境専用のメモリのパーティションを示す
図である。
【図5】補助メモリディスクパーティションレイアウト
を示す図である。
【図6】第1実施例の実環境および仮想環境の両方に対
する特権リングおよびコールゲートを示す図である。
【図7】第1実施例の仮想環境ディスクリプタテーブル
およびシャドウディスクリプタテーブルを示す図であ
る。
【図8】第2実施例の実環境および仮想環境の両方に対
する特権リングおよびコールゲートを示す図である。
【図9】仮想マシン環境との間の通信のための例示的な
コンフィグレーションを示す図である。
【図10】仮想環境内から動作するファイアウォールを
使用する本発明の例示的なコンフィグレーションを示す
図である。
【図11】仮想環境内からディスクパーティションに格
納されたデータを暗号化する例示的なコンフィグレーシ
ョンを示す図である。
【図12】仮想環境と外部ネットワークの間のデータ転
送の暗号化および復号を行う例示的なコンフィグレーシ
ョンを示す図である。
【図13】例示的なマシンイメージを示す図である。
【図14】アクティブネットワークコンピューティング
のための例示的なネットワークレイアウトを示す図であ
る。
【符号の説明】
4a メモリ 6a〜6e セグメント 8 ディスクリプタテーブル 10a〜10e ディスクリプタ 20 仮想マシンマネージャ 22 ゲートウェイ 30 データ転送マネージャ 34 ローカルハブ 32 通信チャネル 40 仮想環境 42 ファイアウォール 50 コアシステム 60 補助メモリディスク 70 VEDT 80 SDT 90 暗号化部分 92 復号部分 94 暗号化・復号フィルタ 102 パーティションテーブル 104 実環境パーティションおよびファイルシステム 104a 仮想マシンコアイメージ 104b 仮想マシンマネージャのリング0タスクイメ
ージ 104c 他の実環境特権タスクのイメージ 104d 仮想マシンマネージャのデータ領域 104e データ転送マネージャのスプール領域 106 ファイアウォールパーティション 106a ファイアウォールスプール 108a〜108d 仮想環境専用のパーティション 118 仮想環境コールゲート 140 仕様 150 ブートROMイメージ 160 不揮発性RAMエミュレーションイメージ 200 アクティブネットワークコンポーネント(AN
C) 210 アクティブリポジトリ(AR) 230 鍵サーバ 240 アプリケーション固有データ(ASD)

Claims (42)

    【特許請求の範囲】
  1. 【請求項1】 システムリソースおよびメモリへのアク
    セスを制御するために少なくとも3個の実特権リングを
    用いて情報を処理するとともに、少なくとも1つの仮想
    マシン環境を提供し、情報および特権は所定のリングに
    関連づけられている自動データ処理装置において、 実リングプロパティを変更する処理が制限された最上位
    特権の実リングと、第2位特権の実リングと、残りの実
    リングと、からなる実環境と、 前記最上位特権の実リングで動作する仮想マシンマネー
    ジャと、 前記残りの実リングおよびメモリの一部をからなる仮想
    マシン環境と、 前記第2位特権の実リングで動作し、前記仮想マシン環
    境を出入りする情報転送を処理する第1データ転送マネ
    ージャと、 前記仮想マシン環境内にある階層仮想特権リングと、 前記仮想マシン環境内の情報に対する特権リングの関連
    づけを含み、前記仮想マシン環境内に形成された仮想環
    境ディスクリプタテーブルと、からなり、前記仮想マシ
    ン環境内の情報は前記階層仮想特権リングに関連づけら
    れ、前記メモリの一部内に記憶され、 前記自動データ処理装置によって処理される情報は、同
    位または下位の特権の実リングに関連づけられたシステ
    ムリソースおよび情報にアクセス可能であり、 前記仮想マシン環境内の情報は、前記自動データ処理装
    置によって処理される場合、同位または下位の特権の仮
    想特権リングに関連づけられたシステムリソースおよび
    情報にアクセス可能であるとともに、前記仮想マシン環
    境の前記メモリの一部内のメモリロケーションにのみア
    クセス可能であり、 仮想特権リングに関連づけられた情報にとって利用可能
    な実特権は、前記自動データ処理装置によって処理され
    る場合、前記残りの実リングのうち前記仮想マシン環境
    を含む実リングを超える実特権へのアクセスが要求され
    るときに前記仮想マシンマネージャによって制御され、 前記メモリの一部は主メモリおよび補助記憶領域を含
    む、ことを特徴とする自動データ処理装置。
  2. 【請求項2】 前記自動データ処理装置は、 仮想特権リングに対して前記仮想マシンマネージャによ
    って生成され、前記仮想マシン環境内の情報を実特権リ
    ングの階層にマップするシャドウディスクリプタテーブ
    ルをさらに有し、 前記仮想環境ディスクリプタテーブルは、前記仮想特権
    リングの階層への関連づけを含み、 仮想特権リングに関連づけられた情報が前記自動データ
    処理装置によって処理されるとき、該情報が関連づけら
    れた仮想特権リングに対応するシャドウディスクリプタ
    テーブルが、アクセス特権を決定するために使用され
    る、ことを特徴とする請求項1記載の自動データ処理装
    置。
  3. 【請求項3】 前記仮想マシンマネージャは、仮想特権
    リング内で処理を開始するときに、処理されるべき情報
    に対応する仮想特権リングに対するシャドウディスクリ
    プタテーブルを生成する、ことを特徴とする請求項2記
    載の自動データ処理装置。
  4. 【請求項4】 前記仮想マシンマネージャは、前記仮想
    環境ディスクリプタテーブルに変更が生じたときにシャ
    ドウディスクリプタテーブルを更新することを特徴とす
    る請求項3記載の自動データ処理装置。
  5. 【請求項5】 前記自動データ処理装置によって処理さ
    れる情報が仮想特権リングを変更するときに、前記仮想
    マシンマネージャは、処理の変更先の仮想特権リングに
    対するシャドウディスクリプタテーブルを生成すること
    を特徴とする請求項3記載の自動データ処理装置。
  6. 【請求項6】 前記仮想マシンマネージャは、情報が処
    理された各仮想特権リングに対するシャドウディスクリ
    プタテーブルを含む複数のシャドウディスクリプタテー
    ブルを保持することを特徴とする請求項5記載の自動デ
    ータ処理装置。
  7. 【請求項7】 前記仮想マシンマネージャは、前記仮想
    環境ディスクリプタテーブルに変更がなされるときに、
    前記複数のシャドウディスクリプタテーブルを更新する
    ことを特徴とする請求項6記載の自動データ処理装置。
  8. 【請求項8】 前記仮想マシンマネージャは、前記メモ
    リの一部内の情報が再配置されるときに、前記複数のシ
    ャドウディスクリプタテーブルを再生成することを特徴
    とする請求項6記載の自動データ処理装置。
  9. 【請求項9】 前記仮想マシンマネージャは、前記仮想
    特権リングの階層の各仮想リングに対するシャドウディ
    スクリプタテーブルを含む複数のシャドウディスクリプ
    タテーブルを生成し保持することを特徴とする請求項2
    記載の自動データ処理装置。
  10. 【請求項10】 前記仮想マシンマネージャは、前記仮
    想環境ディスクリプタテーブルに変更が生じたときに前
    記複数のシャドウディスクリプタテーブルを更新するこ
    とを特徴とする請求項9記載の自動データ処理装置。
  11. 【請求項11】 前記仮想マシンマネージャは、前記メ
    モリの一部内の情報が再配置されるときに、前記複数の
    シャドウディスクリプタテーブルを再生成することを特
    徴とする請求項9記載の自動データ処理装置。
  12. 【請求項12】 実特権リングの階層は4個のリングを
    有し、 第3位特権の実リングは、最上位特権の仮想リングを有
    し、 第4位特権の実リングは、仮想特権リングの階層の残り
    の部分を有することを特徴とする請求項2記載の自動デ
    ータ処理装置。
  13. 【請求項13】 最上位特権の仮想リングに対して前記
    仮想マシンマネージャによって生成されるシャドウディ
    スクリプタテーブルは、前記仮想マシン環境内のすべて
    の情報から前記第3位特権の実リングへのマッピングか
    らなり、 前記仮想リングの階層の残りの部分の仮想リングに対し
    て前記仮想マシンマネージャによって生成されるシャド
    ウディスクリプタテーブルは、 前記最上位特権の仮想リングに関連づけられた情報に対
    する、前記第3位特権の実リングへのマッピングと、 前記シャドウディスクリプタテーブルが生成された仮想
    特権リングと同位または下位の特権の仮想リングに関連
    づけられた情報に対する、前記第4位特権の実リングへ
    のマッピングと、 前記シャドウディスクリプタテーブルが生成された仮想
    特権リングより上位の特権の仮想リングに関連づけられ
    た情報に対する、前記最上位特権の実リングへのマッピ
    ングと、からなり、それにより、前記仮想マシンマネー
    ジャは、前記仮想リングの階層の残りの部分内の上位特
    権の仮想リングに関連づけられた情報へのアクセスを求
    める要求をトラップする、ことを特徴とする請求項12
    記載の自動データ処理装置。
  14. 【請求項14】 実特権リングの階層への情報の関連づ
    けからなり、シャドウディスクリプタテーブルを含み、
    かつ前記実環境の全体に対するグローバルディスクリプ
    タテーブルをさらに有することを特徴とする請求項2記
    載の自動データ処理装置。
  15. 【請求項15】 前記仮想マシン環境内の情報は、 最上位特権を有する仮想特権リングと、最下位特権を有
    する仮想特権リングと、からなる2個のリングのみに関
    連づけられる、ことを特徴とする請求項1記載の自動デ
    ータ処理装置。
  16. 【請求項16】 実特権リングの階層は4個の特権リン
    グを有することにより、前記仮想マシン環境は2個の実
    リングを有し、 第3位特権の実リングは、最上位特権の仮想リングを有
    し、 第4位特権の実リングは、最下位特権の仮想リングを有
    することを特徴とする請求項15記載の自動データ処理
    装置。
  17. 【請求項17】 前記仮想マシン環境内から処理される
    情報は、前記仮想環境ディスクリプタテーブル内の前記
    仮想特権リングの階層への関連づけを記録しようと試
    み、 前記仮想マシンマネージャは、前記仮想特権リングの階
    層への関連づけの代わりに、前記仮想環境ディスクリプ
    タテーブル内の実特権リングの階層への関連づけを記録
    し、 前記仮想マシン環境内に関連づけられた情報が前記自動
    データ処理装置によって処理されるとき、前記仮想環境
    ディスクリプタテーブルが、アクセス特権を決定するた
    めに使用される。ことを特徴とする請求項1記載の自動
    データ処理装置。
  18. 【請求項18】 前記仮想マシンマネージャは、前記仮
    想環境ディスクリプタテーブルが形成されるとき、およ
    び、前記仮想環境ディスクリプタテーブルを修正しよう
    とする試みがなされるごとに、前記仮想環境ディスクリ
    プタテーブル内の代わりの関連づけを記録する、ことを
    特徴とする請求項17記載の自動データ処理装置。
  19. 【請求項19】 前記仮想マシンマネージャは、前記仮
    想環境ディスクリプタテーブル内の仮想特権リング関連
    づけを記録しようとする試みを許可した後、前記仮想マ
    シンマネージャは、上書きにより、実特権リング関連づ
    けを置き換えることを特徴とする請求項17記載の自動
    データ処理装置。
  20. 【請求項20】 前記仮想環境ディスクリプタテーブル
    内の仮想特権リング関連づけを記録しようとする試み
    は、前記仮想マシンマネージャによってトラップされ、
    前記仮想マシンマネージャは、代わりに実特権リング関
    連づけを記録することを特徴とする請求項17記載の自
    動データ処理装置。
  21. 【請求項21】 前記仮想マシン環境と別の仮想マシン
    環境との間、および、前記仮想マシン環境と前記実環境
    との間の情報転送は、データ転送マネージャによって処
    理されることを特徴とする請求項1記載の自動データ処
    理装置。
  22. 【請求項22】 前記自動データ処理装置は、データ転
    送マネージャスプールをさらに有し、 データ転送マネージャによって処理される情報転送は前
    記データ転送マネージャスプールに一時的に格納される
    ことを特徴とする請求項1記載の自動データ処理装置。
  23. 【請求項23】 前記データ転送マネージャは、仮想マ
    シン環境を出る情報転送を確認することをユーザに求め
    ることを特徴とする請求項22記載の自動データ処理装
    置。
  24. 【請求項24】 前記第1データ転送マネージャおよび
    前記仮想マシン環境を含む仮想ファイアウォールをさら
    に有することを特徴とする請求項1記載の自動データ処
    理装置。
  25. 【請求項25】 前記自動データ処理装置は、 前記第2特権の実リングで動作し、仮想マシン環境を出
    入りする情報転送を処理する第2データ転送マネージャ
    をさらに有し、 前記仮想ファイアウォールは、前記第2データ転送マネ
    ージャをさらに有し、 前記第1データ転送マネージャは、前記仮想マシン環境
    と、ファイアウォールの外部との間の情報転送を処理
    し、 前記第2データ転送マネージャは、前記仮想マシン環境
    と、ファイアウォールの内部との間の情報転送を処理す
    る、 ことを特徴とする請求項24記載の自動データ処理装
    置。
  26. 【請求項26】 前記第1データ転送マネージャは、前
    記仮想マシン環境と、ファイアウォールの外側との間の
    情報転送を、前記仮想マシン環境と、ファイアウォール
    の内側との間の情報転送から隔離することを特徴とする
    請求項24記載の自動データ処理装置。
  27. 【請求項27】 前記自動データ処理装置は、ファイア
    ウォールスプールをさらに有し、 前記ファイアウォールを通しての情報転送は前記ファイ
    アウォールスプールに一時的に格納されることを特徴と
    する請求項24記載の自動データ処理装置。
  28. 【請求項28】 前記ファイアウォールは、ファイアウ
    ォールの内側からファイアウォールの外側への情報転送
    を確認することをユーザに求めることを特徴とする請求
    項27記載の自動データ処理装置。
  29. 【請求項29】 前記自動データ処理装置は、実環境秘
    密暗号化鍵を記憶する不揮発性メモリをさらに有し、 前記実環境秘密暗号化鍵は、前記自動データ処理装置に
    固有であり、 前記実環境秘密暗号化鍵へのアクセスは、前記最上位特
    権の実リングおよび前記第2位特権の実リングに制限さ
    れることを特徴とする請求項1記載の自動データ処理装
    置。
  30. 【請求項30】 前記仮想マシンマネージャは、前記実
    環境秘密暗号化鍵に対応する実環境公開暗号化鍵を用い
    て、前記仮想マシン環境から前記メモリの一部の前記補
    助記憶領域への情報転送を暗号化し、 前記仮想マシンマネージャは、前記実環境秘密暗号化鍵
    を用いて、前記メモリの一部の前記補助記憶領域から前
    記仮想マシン環境への情報転送を復号し、 前記暗号化および復号は、前記仮想マシン環境内からは
    不可視であることを特徴とする請求項29記載の自動デ
    ータ処理装置。
  31. 【請求項31】 実環境暗号化鍵は、前記仮想マシン環
    境を出る情報転送を暗号化し、前記仮想マシン環境に入
    る情報転送を復号するために、前記仮想マシン環境の外
    部で適用され、 暗号化および復号の適用は、前記仮想マシン環境内から
    は不可視であることを特徴とする請求項29記載の自動
    データ処理装置。
  32. 【請求項32】 前記仮想マシン環境内に転送される復
    号された情報は、他の仮想マシン環境にはアクセス不可
    能であることを特徴とする請求項31記載の自動データ
    処理装置。
  33. 【請求項33】 実環境暗号化鍵は、前記仮想マシンマ
    ネージャによって適用されることを特徴とする請求項3
    1記載の自動データ処理装置。
  34. 【請求項34】 実環境暗号化鍵は、前記データ転送マ
    ネージャによって適用されることを特徴とする請求項3
    1記載の自動データ処理装置。
  35. 【請求項35】 前記仮想マシン環境には、仮想環境秘
    密暗号化鍵および仮想環境公開暗号化鍵が割り当てら
    れ、これらの暗号化鍵は、実環境および他の仮想マシン
    環境の暗号化鍵とは異なり、他の仮想マシン環境にはア
    クセス不可能であることを特徴とする請求項29記載の
    自動データ処理装置。
  36. 【請求項36】 仮想環境暗号化鍵は、前記仮想マシン
    環境を出る情報転送を暗号化し、前記仮想マシン環境に
    入る情報転送を復号するために、前記仮想マシン環境の
    外部で適用され、 前記仮想マシン環境内に転送される復号された情報は、
    他の仮想マシン環境にはアクセス不可能であることを特
    徴とする請求項35記載の自動データ処理装置。
  37. 【請求項37】 仮想環境暗号化鍵は、前記仮想マシン
    マネージャによって適用されることを特徴とする請求項
    36に記載の装置。
  38. 【請求項38】 仮想環境暗号化鍵は、前記データ転送
    マネージャによって適用されることを特徴とする請求項
    36記載の自動データ処理装置。
  39. 【請求項39】 仮想環境暗号化鍵は、前記仮想環境内
    にアクセス可能であることにより、前記仮想環境内のプ
    ロシージャは、前記仮想マシン環境に入る情報転送を復
    号し、前記仮想マシン環境を出る情報転送を暗号化する
    ことを特徴とする請求項35記載の自動データ処理装
    置。
  40. 【請求項40】 前記自動データ処理装置は、外部鍵サ
    ーバから仮想環境暗号化鍵を取得することを特徴とする
    請求項35記載の自動データ処理装置。
  41. 【請求項41】 前記自動データ処理装置と外部鍵サー
    バとの間の、鍵取得に関するトランザクションは、実環
    境秘密暗号化鍵を用いて安全にされることを特徴とする
    請求項40記載の自動データ処理装置。
  42. 【請求項42】 前記仮想特権リングの階層の数は、前
    記実特権リングの階層の数に等しいことを特徴とする請
    求項1記載の自動データ処理装置。
JP2000281632A 2000-05-10 2000-09-18 自動データ処理装置 Expired - Fee Related JP3630087B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56862900A 2000-05-10 2000-05-10
US09/568629 2000-05-10

Publications (2)

Publication Number Publication Date
JP2001318797A true JP2001318797A (ja) 2001-11-16
JP3630087B2 JP3630087B2 (ja) 2005-03-16

Family

ID=24272065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000281632A Expired - Fee Related JP3630087B2 (ja) 2000-05-10 2000-09-18 自動データ処理装置

Country Status (1)

Country Link
JP (1) JP3630087B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252565A (ja) * 2005-03-11 2006-09-21 Microsoft Corp 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法
JP2007133807A (ja) * 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置
JP2007524148A (ja) * 2003-06-17 2007-08-23 デジタルネット・ガヴァーンメント・ソリューションズ・エルエルシー トラステッド・コンピュータ・システム
JP2008523511A (ja) * 2004-12-10 2008-07-03 インテル コーポレイション 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
JP2008192119A (ja) * 2007-02-07 2008-08-21 Katsuji Hanada 周辺機器の遠隔地への増設方法
JP2008191731A (ja) * 2007-02-01 2008-08-21 Hitachi Software Eng Co Ltd ウィルス感染及び機密情報漏洩防止対策システム
JP2008276546A (ja) * 2007-04-27 2008-11-13 Toshiba Corp 情報処理装置、および情報処理システム
WO2009025166A1 (ja) * 2007-08-20 2009-02-26 Nec Corporation アクセス制御システム
JP2009537892A (ja) * 2006-05-18 2009-10-29 サンギュ イ クライアントおよびサーバの保護方法
KR101034415B1 (ko) * 2004-12-21 2011-05-12 마이크로소프트 코포레이션 가상 머신 또는 강화된 운영 시스템 등에서의 컴퓨터 보안관리
US8086339B2 (en) 2002-04-12 2011-12-27 Ravi Sanka Electronic device history record and product release system
JP2012208681A (ja) * 2011-03-29 2012-10-25 Fuji Soft Inc 情報処理装置、アクセス制御方法、およびアクセス制御用プログラム
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
JP2013528872A (ja) * 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
JP2013235612A (ja) * 2002-03-29 2013-11-21 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
US8869146B2 (en) 2007-04-25 2014-10-21 Microsoft Corporation Virtual machine migration

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102510846B1 (ko) 2018-10-04 2023-03-16 삼성전자주식회사 전자 장치 및 그의 제어방법

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016224975A (ja) * 2002-03-29 2016-12-28 インテル コーポレイション 安全な環境を初期化する命令を実行するシステムおよび方法
US9361121B2 (en) 2002-03-29 2016-06-07 Intel Corporation System and method for execution of a secured environment initialization instruction
US9990208B2 (en) 2002-03-29 2018-06-05 Intel Corporation System and method for execution of a secured environment initialization instruction
JP2015043240A (ja) * 2002-03-29 2015-03-05 インテル コーポレイション 安全な環境を初期化する命令を実行するシステムおよび方法
JP2015028809A (ja) * 2002-03-29 2015-02-12 インテル コーポレイション 安全な環境を初期化する命令を実行するシステムおよび方法
CN103559448A (zh) * 2002-03-29 2014-02-05 英特尔公司 用于执行安全环境初始化指令的系统和方法
JP2013235612A (ja) * 2002-03-29 2013-11-21 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
US10042649B2 (en) 2002-03-29 2018-08-07 Intel Corporation System and method for execution of a secured environment initialization instruction
US10175994B2 (en) 2002-03-29 2019-01-08 Intel Corporation System and method for execution of a secured environment initialization instruction
US8086339B2 (en) 2002-04-12 2011-12-27 Ravi Sanka Electronic device history record and product release system
JP2007524148A (ja) * 2003-06-17 2007-08-23 デジタルネット・ガヴァーンメント・ソリューションズ・エルエルシー トラステッド・コンピュータ・システム
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
JP2008523511A (ja) * 2004-12-10 2008-07-03 インテル コーポレイション 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
KR101034415B1 (ko) * 2004-12-21 2011-05-12 마이크로소프트 코포레이션 가상 머신 또는 강화된 운영 시스템 등에서의 컴퓨터 보안관리
JP2006252565A (ja) * 2005-03-11 2006-09-21 Microsoft Corp 仮想マシン環境におけるマルチレベルインターセプト処理のためのシステムおよび方法
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
JP2007133807A (ja) * 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置
US8738786B2 (en) 2006-05-18 2014-05-27 Sanggyu Lee Method for protecting client and server
JP2009537892A (ja) * 2006-05-18 2009-10-29 サンギュ イ クライアントおよびサーバの保護方法
JP2008191731A (ja) * 2007-02-01 2008-08-21 Hitachi Software Eng Co Ltd ウィルス感染及び機密情報漏洩防止対策システム
JP2008192119A (ja) * 2007-02-07 2008-08-21 Katsuji Hanada 周辺機器の遠隔地への増設方法
JP4686790B2 (ja) * 2007-02-07 2011-05-25 勝治 花田 周辺機器の遠隔地への増設方法
US8869146B2 (en) 2007-04-25 2014-10-21 Microsoft Corporation Virtual machine migration
JP2008276546A (ja) * 2007-04-27 2008-11-13 Toshiba Corp 情報処理装置、および情報処理システム
US8136117B2 (en) 2007-04-27 2012-03-13 Kabushiki Kaisha Toshiba Information processor and information processing system
WO2009025166A1 (ja) * 2007-08-20 2009-02-26 Nec Corporation アクセス制御システム
JP2015181045A (ja) * 2010-06-02 2015-10-15 ヴイエムウェア インクVMware, Inc. マルチ・テナント・クラウドにおける顧客仮想計算機の保護
JP2013528872A (ja) * 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
JP2012208681A (ja) * 2011-03-29 2012-10-25 Fuji Soft Inc 情報処理装置、アクセス制御方法、およびアクセス制御用プログラム

Also Published As

Publication number Publication date
JP3630087B2 (ja) 2005-03-16

Similar Documents

Publication Publication Date Title
US10956184B2 (en) On-demand disposable virtual work system
US9934407B2 (en) Apparatus for and method of preventing unsecured data access
US6836888B1 (en) System for reverse sandboxing
Jin et al. Architectural support for secure virtualization under a vulnerable hypervisor
US7506170B2 (en) Method for secure access to multiple secure networks
US9424430B2 (en) Method and system for defending security application in a user's computer
KR101179849B1 (ko) 가상머신 템플릿 이미지의 구동방법
US9047468B2 (en) Migration of full-disk encrypted virtualized storage between blade servers
US7975117B2 (en) Enforcing isolation among plural operating systems
JP3630087B2 (ja) 自動データ処理装置
US20150019864A1 (en) Secure Virtual Machine
WO2013054528A1 (en) Protecting memory of a virtual guest
JP2011503689A (ja) 分離型の読み取り専用領域及び読み書き領域を有するコンピュータ記憶デバイス、リムーバブル媒体コンポーネント、システム管理インタフェース、及び、ネットワークインタフェース
JP2002318719A (ja) 高信頼計算機システム
WO2006017774A2 (en) Method for preventing virus infection in a computer
JP2007524161A (ja) ウイルス、スパイウェア及びハッカー保護特徴を有する仮想処理空間における分離マルチプレクス型多次元処理
Runge SELinux: A new approach to secure systems
Jaeger Security Kernels
Kleidermacher Towards a High Assurance Multi-level Secure PC for Intelligence Communities
Butler Leveraging Emerging Disk Functionality for New Security Services
Loidl Operating System Security

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041101

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: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041207

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: 20071224

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees