JP2022522339A - ページのインポート/エクスポートのためのプログラム割り込み - Google Patents

ページのインポート/エクスポートのためのプログラム割り込み Download PDF

Info

Publication number
JP2022522339A
JP2022522339A JP2021549802A JP2021549802A JP2022522339A JP 2022522339 A JP2022522339 A JP 2022522339A JP 2021549802 A JP2021549802 A JP 2021549802A JP 2021549802 A JP2021549802 A JP 2021549802A JP 2022522339 A JP2022522339 A JP 2022522339A
Authority
JP
Japan
Prior art keywords
secure
page
interface control
call routine
computer
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
JP2021549802A
Other languages
English (en)
Other versions
JP7461694B2 (ja
JPWO2020183310A5 (ja
Inventor
ブラッドベリー、ジョナサン
シュヴィデフスキー、マーティン
ボーントレーガー、クリスチャン
ヘラー、リサ
カーステンス、ハイコ
ブサバ、ファディ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022522339A publication Critical patent/JP2022522339A/ja
Publication of JPWO2020183310A5 publication Critical patent/JPWO2020183310A5/ja
Application granted granted Critical
Publication of JP7461694B2 publication Critical patent/JP7461694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

例示的なコンピュータ実装方法は、コンピューティング・システムのハードウェア制御によって、信頼できない実体がコンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を信頼できない実体に提示することを含み、この例外が、信頼できない実体がこのセキュア・ページにアクセスするのを防ぐ。この方法は、例外に応答して、信頼できない実体によってエクスポート呼び出しルーチンを発行することをさらに含む。この方法は、コンピューティング・システムのセキュア・インターフェイス制御によって、エクスポート呼び出しルーチンを実行することをさらに含む。

Description

本発明は、一般に、コンピュータ技術に関し、より詳細には、ページのインポート/エクスポートのためのプログラム割り込みに関する。
クラウド・コンピューティングおよびクラウド・ストレージは、それらのデータをサードパーティのデータ・センターに格納して処理する能力をユーザに提供する。クラウド・コンピューティングは、顧客がハードウェアを購入することも、物理的サーバのための床スペースを提供することも必要とせずに、仮想マシン(VM)を顧客のために迅速かつ簡単にプロビジョニングする能力を促進する。顧客は、顧客の嗜好または要件の変化に従って、VMを簡単に拡大または縮小することができる。通常、クラウド・コンピューティング・プロバイダは、プロバイダのデータ・センターで、サーバ上に物理的に存在するVMをプロビジョニングする。特に、コンピューティング・プロバイダが、多くの場合、通常は2人以上の顧客のデータを同じサーバ上に格納するため、顧客は、多くの場合、VM内のデータのセキュリティについて心配する。顧客は、顧客自身のコード/データとプロバイダのサイトで実行されている他のVMのコード/データの間のセキュリティだけでなく、顧客自身のコード/データとクラウド・コンピューティング・プロバイダのコード/データの間のセキュリティを要求することがある。加えて、顧客は、マシン上で実行されている他のコードからの可能性のあるセキュリティ違反に対するセキュリティだけでなく、プロバイダの管理者からのセキュリティを要求することがある。
そのような注意を要する状況に対処するために、クラウド・サービス・プロバイダは、適切なデータ分離および論理的ストレージ分離を保証するようにセキュリティ制御を実施することがある。クラウド・インフラストラクチャの実装における仮想化の広範囲に及ぶ使用の結果、仮想化が、オペレーティング・システム(OS:operating system)と基礎になるハードウェアの間の関係を(ハードウェアがコンピューティング、ストレージ、またはネットワークのいずれであっても)変更するため、クラウド・サービスの顧客に固有のセキュリティに関する懸念が生じる。このため仮想化は、それ自体が適切に構成され、管理され、保護されなければならない追加のレイヤとして導入される。
一般に、ホスト・ハイパーバイザの制御下でゲストとして実行されるVMは、そのハイパーバイザが仮想化サービスをそのゲストに透過的に提供することに依存する。これらのサービスは、メモリ管理、命令エミュレーション、および割り込み処理を含む。
メモリ管理の場合、VMは、そのデータをメモリに常駐させるためにディスクから移動する(ページインする)ことができ、VMは、そのデータをディスクに戻す(ページアウトする)こともできる。ページがメモリに常駐している間、VM(ゲスト)は、動的アドレス変換(DAT:dynamic address translation)を使用してメモリ内のページをゲスト仮想アドレスからゲスト絶対アドレスにマッピングする。加えて、ホスト・ハイパーバイザは、メモリ内のゲスト・ページに関して、それ自身の(ホスト仮想アドレスからホスト絶対アドレスへの)DATマッピングを有しており、ゲスト・ページを、ゲストから独立して透過的にメモリにページインし、メモリからページアウトすることができる。ホストDATテーブルによって、ハイパーバイザは、メモリ分離、または2つの分離したゲストVM間のゲスト・メモリの共有を実現する。ホストは、必要な場合に、ゲスト・メモリにアクセスし、ゲストの代わりにゲストの動作をシミュレートすることもできる。
本明細書に記載された1つまたは複数の例によれば、コンピュータ実装方法は、コンピューティング・システムのハードウェア制御によって、信頼できない実体がコンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を信頼できない実体に提示することを含み、この例外が、信頼できない実体がこのセキュア・ページにアクセスするのを防ぐ。この方法は、例外に応答して、信頼できない実体によってエクスポート呼び出しルーチンを発行することをさらに含む。この方法は、コンピューティング・システムのセキュア・インターフェイス制御によって、エクスポート呼び出しルーチンを実行することをさらに含む。
本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、セキュア・インターフェイス制御によって、セキュア・ページを暗号化することを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、暗号化の前に、セキュア・インターフェイス制御によってセキュア・ページをロックすることと、暗号化の後に、セキュア・インターフェイス制御によってセキュア・ページのロックを解除することとを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、暗号化の前に、セキュア・インターフェイス制御によって、セキュア・インターフェイス制御へのセキュア・ページをゾーン・セキュリティ・テーブルに登録することを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、セキュア・インターフェイス制御によって、セキュア・ページの暗号化された内容のハッシュを捕捉することを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、暗号化の後に、セキュア・インターフェイス制御によって、ホスト絶対ページを非セキュアとしてマーク付けすることを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、暗号化の後に、セキュア・インターフェイス制御によって、ホスト絶対ページを非セキュアとしてゾーン・セキュリティ・テーブルに登録することを含む。本明細書に記載された1つまたは複数の例によれば、エクスポート呼び出しルーチンは、セキュア・ページをロックする前に、セキュア・ページがロックされているかどうかを判定することと、セキュア・ページがロックされているということの決定に応答して、信頼できない実体へのビジー・インジケータを生成することと、遅延期間の間待つこととを含む。本明細書に記載された1つまたは複数の例によれば、セキュア・インターフェイス制御は、ファームウェア、ハードウェア、またはファームウェアとハードウェアの組み合わせを備え、信頼できない実体はハイパーバイザを備える。
本明細書に記載された1つまたは複数の例によれば、コンピュータ実装方法は、セキュアな実体が、コンピューティング・システムの信頼できない実体によってページインされたがまだセキュアでないページにアクセスすることに応答して、コンピューティング・システムのハードウェア制御によって、例外をコンピューティング・システムの信頼できない実体に提示することを含み、この例外が、信頼できない実体がこのページにアクセスするのを防ぐ。この方法は、例外に応答して、信頼できない実体によってインポート呼び出しルーチンを発行することをさらに含む。この方法は、コンピューティング・システムのセキュア・インターフェイス制御によって、インポート呼び出しルーチンを実行することをさらに含む。
本明細書に記載された1つまたは複数の例によれば、インポート呼び出しルーチンは、コンピューティング・システムのセキュア・インターフェイス制御によって、セキュア・ページが共有されたページであるかどうかを判定することを含む。本明細書に記載された1つまたは複数の例によれば、インポート呼び出しルーチンは、セキュア・ページが共有されたセキュア・ページでないということの決定に応答して、セキュア・インターフェイス制御によって、セキュア・ページをセキュアとしてマーク付けすることを含む。本明細書に記載された1つまたは複数の例によれば、インポート呼び出しルーチンは、セキュア・インターフェイス制御によって、セキュア・インターフェイス制御へのセキュア・ページをゾーン・セキュリティ・テーブルに登録することを含む。本発明の追加または代替の実施形態に従って、インポート呼び出しルーチンは、セキュア・インターフェイス制御によってセキュア・ページを復号することを含む。
本明細書に記載された他の例では、開示された手法の利点は、コンピュータ・システムおよびコンピュータ・プログラム製品において、前述した方法の特徴を実装することを含む。
開示された手法の利点は、信頼できない実体からの悪意のある挙動を防ぐことを含む。例えば、本手法は、ホスト・プログラム割り込みを使用して、悪意をもって行動していない実体に、セキュア・インターフェイス制御への呼び出しが必要であることを通知できるようにしながら、悪意のある信頼できない実体がセキュア・ストレージにアクセスするのを防ぐ。これによって、ハイパーバイザとゲストの間でメモリ内のページを共有する既存のシステムを超える技術的改良を実現する。このようにして、悪意のある信頼できない実体がセキュア・ゲスト・ストレージにアクセスするのを防ぐことによって、ハイパーバイザ環境内のセキュリティを改善する。
追加の特徴および利点が、本開示の手法によって実現される。本発明のその他の実施形態および態様は、本明細書において詳細に説明され、本発明の一部と見なされる。本発明を利点および特徴と共によく理解するために、説明および図面を参照されたい。
本明細書に記載された専有権の詳細は、本明細書の最後にある特許請求の範囲において具体的に指摘され、明確に請求される。本発明の各実施形態の前述およびその他の特徴と利点は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
本発明の1つまたは複数の実施形態に従って、ゾーン・セキュリティのためのテーブルを示す図である。 本発明の1つまたは複数の実施形態に従って、DATを実行するための仮想アドレス空間および絶対アドレス空間を示す図である。 本発明の1つまたは複数の実施形態に従って、ハイパーバイザの下で実行されている仮想マシン(VM:virtual machine)を支援するためのネストされたマルチパートDAT(multi-part DAT)を示す図である。 本発明の1つまたは複数の実施形態に従って、セキュア・ゲスト・ストレージのマッピングを示す図である。 本発明の1つまたは複数の実施形態に従って、インポート動作のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、インポート動作のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、インポート動作のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、セキュア・ゲスト・ページへの遷移のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、ゲストの(復号された)セキュア・ページをページアウトするプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、エクスポート動作のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、エクスポート動作のプロセス・フローを示す図である。 本発明の1つまたは複数の実施形態に従って、クラウド・コンピューティング環境を示す図である。 本発明の1つまたは複数の実施形態に従って、抽象モデル・レイヤを示す図である。 本発明の1つまたは複数の実施形態に従って、システムを示す図である。 本発明の1つまたは複数の実施形態に従って、処理システムを示す図である。
本明細書において示される図は、実例である。本発明の思想から逸脱することなく、本明細書に記載された図または動作の多くの変形が存在することが可能である。例えば、動作は異なる順序で実行されることが可能であり、あるいは動作は追加、削除、または変更されることが可能である。また、「結合される」という用語およびその変形は、2つの要素間に通信経路が存在することを表しており、それらの要素間に要素/接続が介在しない要素間の直接的接続を意味していない。これらのすべての変形は、本明細書の一部であると見なされる。
本明細書に記載された手法は、ページングのためのマシンの介入が必要であることをハイパーバイザに知らせるため、および悪意のあるハイパーバイザの挙動を防ぐために、セキュア・ゲスト環境におけるホスト・プログラム割り込みの使用を提供にする。本手法は、ホスト・プログラム割り込みを使用して、「正常に動作している」ハイパーバイザ(すなわち、悪意をもって行動していないハイパーバイザ)に、セキュア・インターフェイス制御(「UV」とも呼ばれる)への呼び出しが必要であることを通知できるようにしながら、悪意のあるハイパーバイザがセキュア・ゲスト・ストレージにアクセスするのを防ぐ。
本発明の1つまたは複数の実施形態は、単一のセキュア・ゲスト構成によって(暗号化されていない)疑いが晴れた状態でアクセス可能であることから、暗号化され、ページアウトするためにハイパーバイザによってアクセス可能であることに、ページを遷移させるために、セキュア・ストレージからの変換(エクスポート)UV呼び出し(UVC:UV call)命令を提供する。ページイン後にストレージを復号してセキュア・ゲスト構成に割り当てるために、セキュア・ストレージへの変換(インポート)UVC命令も提供される。
本発明の1つまたは複数の実施形態は、ソフトウェアとマシンの間の効率的な軽量のセキュア・インターフェイス制御を活用して、セキュリティを強化する。
ホスト・ハイパーバイザの制御下でゲストとして実行される仮想マシン(VM)は、そのハイパーバイザが仮想化サービスをそのゲストに透過的に提供することに依存する。これらのサービスは、セキュアな実体と別の信頼できない実体の間の、この他の実体によるセキュア・リソースへのアクセスを従来は許可していた任意のインターフェイスに適用され得る。前述したように、これらのサービスは、メモリ管理、命令エミュレーション、および割り込み処理を含むことができるが、これらに限定されない。例えば、割り込みおよび例外の投入の場合、ハイパーバイザは、通常、ゲストのプレフィックス領域(ロー・コア)に対して、読み取りまたは書き込みあるいはその両方を行う。「仮想マシン」または「VM」という用語は、本明細書において使用されるとき、物理マシン(コンピューティング・デバイス、プロセッサなど)およびその処理環境(オペレーティング・システム(OS)、ソフトウェア・リソースなど)の論理的表現のことを指す。VMは、基礎になるホスト・マシン(物理プロセッサまたはプロセッサのセット)上で実行されるソフトウェアとして維持される。ユーザまたはソフトウェア・リソースの視点からは、VMは、それ自身が独立した物理マシンであるように見える。「ハイパーバイザ」および「VMモニタ(VMM:VM Monitor)」という用語は、本明細書において使用されるとき、同じホスト・マシン上で複数の(しばしば異なる)OSを使用して実行するように、複数のVMを管理および許可する処理環境またはプラットフォーム・サービスのことを指す。VMをデプロイすることが、VMのインストール・プロセスおよびVMの有効化(または起動)プロセスを含むということが、理解されるべきである。別の例では、VMをデプロイすることは、VMの有効化(または起動)プロセスを含む(例えば、VMがすでにインストールされているか、またはすでに存在する場合)。
セキュア・ゲストを促進し、支援するためには、ハイパーバイザがVMのデータにアクセスできず、したがって前述した方法でサービスを提供できないように、ハイパーバイザに依存しない、ハイパーバイザとセキュア・ゲストの間のセキュリティの向上が必要になるという技術的課題が存在する。
本明細書に記載されたセキュアな実行は、セキュア・ストレージと非セキュア・ストレージの間の分離、および異なるセキュアなユーザに属するセキュア・ストレージ間の分離を保証するためのハードウェア・メカニズムを提供する。セキュア・ゲストの場合、「信頼できない」非セキュア・ハイパーバイザとセキュア・ゲストの間のセキュリティが強化される。これを行うには、通常はゲストの代わりにハイパーバイザが実行する機能の多くがマシンに組み込まれる必要がある。ハイパーバイザとセキュア・ゲストの間のセキュア・インターフェイスを提供するための新しいセキュア・インターフェイス制御(本明細書では、「UV」とも呼ばれる)が、本明細書において説明される。セキュア・インターフェイス制御およびUVという用語は、本明細書では交換可能なように使用される。セキュア・インターフェイス制御は、ハードウェアと連携して機能し、このセキュリティの向上を実現する。加えて、下位レベルのハイパーバイザが、この信頼できないハイパーバイザに仮想化を提供していることがあり、この下位レベルのハイパーバイザは、信頼できるコードで実装されている場合、セキュア・インターフェイス制御の一部になることもできる。
このメカニズムは、サービス呼び出し元のデータおよび状態にもアクセスできる別の許可されたプログラムによってさまざまなサービスが提供される場合にも、適用されてよい。1つの事例では、この別のプログラムは、別の事例のスーパーバイザ呼び出しインターフェイスの使用によってスーパーバイザ機能を提供するスーパーバイザ・プログラムであってよい。
セキュア・インターフェイス制御は、1つの例では、内部のセキュアな信頼できるハードウェアまたはファームウェアあるいはその両方に実装される。セキュア・ゲストまたはセキュアな実体に関して、セキュア・インターフェイス制御は、セキュアな環境の初期化および維持に加えて、ハードウェア上でこれらのセキュアな実体のディスパッチの調整を行う。セキュア・ゲストがデータを活発に使用しており、ホスト・ストレージに常駐している間、このセキュア・ゲストは、セキュア・ストレージ内で「疑いが晴れた状態」に保たれる。その単一のセキュア・ゲストによって、セキュア・ゲスト・ストレージにアクセスすることができ、このアクセスは、ハードウェアによって厳密に実施される。すなわち、ハードウェアは、任意のセキュアでない実体(ハイパーバイザまたはその他の非セキュア・ゲストを含む)または異なるセキュア・ゲストがそのデータにアクセスするのを防ぐ。この例では、セキュア・インターフェイス制御は、最低レベルのファームウェアの信頼できる部分として実行される。この最低レベル、またはミリコードは、実際にはハードウェアの拡張であり、例えばIBMのzArchitecture(R)において定義されている複雑な命令および機能を実装するために使用される。ミリコードは、セキュアな実行との関連において、それ自身のセキュアUVストレージ、非セキュア・ハイパーバイザ・ストレージ、セキュア・ゲスト・ストレージ、および共有ストレージを含む、ストレージのすべての部分にアクセスすることができる。これによって、ミリコードは、セキュア・ゲストによって、またはそのゲストの支援においてハイパーバイザによって必要とされるすべての機能を提供することができる。セキュア・インターフェイス制御は、ハードウェアに直接アクセスすることもでき、セキュア・インターフェイス制御によって確立された条件の制御下で、ハードウェアが効率的にセキュリティ・チェックを実行できるようにする。
本発明の1つまたは複数の実施形態に従って、セキュア・ページをマーク付けするためのセキュア・ストレージ・ビットがハードウェアにおいて提供される。このビットが設定された場合、ハードウェアは、任意の非セキュア・ゲストまたは非セキュア・ハイパーバイザがこのページにアクセスするのを防ぐ。加えて、各セキュア・ページまたは共有されたページが、ゾーン・セキュリティ・テーブルに登録され、セキュア・ゲスト・ドメイン識別情報(ID)でタグ付けされる。ページは、非セキュアである場合、非セキュアであるとしてゾーン・セキュリティ・テーブル内でマーク付けされる。このゾーン・セキュリティ・テーブルは、セキュア・インターフェイス制御によって、パーティションまたはゾーンごとに維持される。ページが、このページを所有しているセキュア・ゲストまたはセキュアな実体のみによってアクセスされることを検証するために、セキュアな実体によって行われるいずれかのDAT変換時にハードウェアによって使用される、ホスト絶対ページごとに1つのエントリが存在する。
本発明の1つまたは複数の実施形態に従って、ソフトウェアは、UVC命令を使用して、セキュア・インターフェイス制御に対して特定の動作を実行するよう要求する。例えば、UVC命令は、ハイパーバイザによって、セキュア・インターフェイス制御を初期化し、セキュア・ゲスト・ドメイン(例えば、セキュア・ゲスト構成)を作成し、そのセキュアな構成内で仮想CPUを作成するために使用され得る。UVC命令は、ハイパーバイザのページイン動作またはページアウト動作の一部として、セキュア・ゲスト・ページをインポートすること(復号してセキュア・ゲスト・ドメインに割り当てること)、およびエクスポートすること(暗号化してホストがアクセスできるようにすること)にも使用され得る。加えて、セキュア・ゲストは、ハイパーバイザと共有されるストレージを定義し、セキュア・ストレージを共有にし、共有ストレージをセキュアにする能力を有する。
セキュリティを提供するために、ハイパーバイザがセキュア・ゲストのデータを透過的にページインおよびページアウトしているときに、ハードウェアと連携しているセキュア・インターフェイス制御は、データの復号および暗号化を提供し、保証する。これを実現するために、ハイパーバイザは、ゲストのセキュア・データをページインおよびページアウトするときに、新しいUVCを発行する必要がある。ハードウェアは、これらの新しいUVCの間にセキュア・インターフェイス制御によって設定された制御に基づいて、これらのUVCがハイパーバイザによって実際に発行されることを保証する。
この新しいセキュアな環境では、ハイパーバイザは、セキュア・ページをページアウトしているときに常に、新しいセキュア・ストレージからの変換(エクスポート)UVCを発行する必要がある。セキュア・インターフェイス制御は、このエクスポートUVCに応答して、(1)ページがUVによって「ロックされている」ことを示し、(2)ページを暗号化し、(3)ページを非セキュアに設定し、(4)UVのロックをリセットする。エクスポートUVCが完了した後に、ハイパーバイザは、次に暗号化されたゲスト・ページをページアウトできるようになる。
加えて、ハイパーバイザは、セキュア・ページにページインしているときに常に、新しいセキュア・ストレージへの変換(インポート)UVCを発行する。セキュア・ゲストが、正常に動作するハイパーバイザによってページアウトされており、したがってホスト・メモリに常駐しておらず、ホスト変換(例えば、ページ)テーブル内で無効であるページにアクセスしようとした場合、ページ変換例外(PIC11)がホストに提示される。次に、ハイパーバイザが、ゲスト・ページを、セキュアでないホスト絶対ページにページインし、そのゲスト絶対ページのホストのマッピングを確立し、セキュア・ゲストを再ディスパッチする。この時点で、ページは暗号化されたままであり、非セキュアとしてまだマーク付けされている。そのゲストがそのページに再アクセスしようとするときに、ハードウェアが非セキュア・ストレージ・アクセス(PIC3E)例外を提示する。この例外は、ページが復号されていないときに、セキュア・ゲストがそのページにアクセスするのを防ぐため、およびインポートUVCが必要であることを正常に動作するハイパーバイザに示すために、選択される。UVまたはセキュア・インターフェイス制御は、このインポートUVCに応答して、(1)ページをハードウェア内でセキュアとしてマーク付けし、(2)ページがUVによって「ロックされている」ことを示し、(3)ページを復号し、(4)特定のセキュア・ゲスト・ドメインに対する権限を設定し、(5)UVのロックをリセットする。アクセスがセキュアな実体によって行われるときに常に、変換中にハードウェアは、そのページに対して許可チェックを実行する。これらのチェックは、(1)ページが、このページにアクセスしようとしているセキュア・ゲスト・ドメインに実際に属していることを検証するためのチェック、および(2)このページがゲスト・メモリに常駐している間にハイパーバイザがこのページのホストのマッピングを変更していないことを確認するためのチェックを含む。ページがセキュアとしてマーク付けされた後に、ハードウェアは、ハイパーバイザまたは非セキュア・ゲストVMのいずれかによるすべてのセキュア・ページへのアクセスを防ぐ。追加の変換ステップが、別のセキュアVMによるアクセスを防ぎ、ハイパーバイザによる再マッピングを防ぐ。
本発明の1つまたは複数の実施形態は、ハイパーバイザとゲストの間でメモリ内のページを共有する既存のシステムを超える技術的改良を実現する。そのような既存のシステムは、ページの完全性およびアクセスを損なう可能性がある不完全な挙動の(または悪意のある)ハイパーバイザによる影響を受けやすい。本発明の1つまたは複数の実施形態は、正常に動作する(悪意のない)ハイパーバイザに、セキュア・インターフェイス制御への呼び出しが必要であることを通知できるようにしながら、悪意のあるハイパーバイザがセキュア・ゲスト・ストレージにアクセスするのを防ぐために、セキュア・インターフェイス制御を提供する。このようにして、悪意のあるハイパーバイザがセキュア・ゲスト・ストレージにアクセスするのを防ぐことによって、ハイパーバイザ環境内のセキュリティを改善する。
標準的な/現在のハイパーバイザに基づく環境に関する技術的課題は、ハイパーバイザが悪意をもって行動し、セキュア・ゲスト・ストレージにアクセスできることである。本発明の1つまたは複数の実施形態は、単一のセキュア・ゲスト構成によってアクセス可能であることから、暗号化され、ページアウトするためにハイパーバイザによってアクセス可能であることに、ページを遷移させるために、セキュア・ストレージからの変換(エクスポート)UVC命令を使用することによって、そのような技術的課題に対処する。本発明の1つまたは複数の実施形態は、ページイン後にストレージを復号し、セキュア・ゲスト構成に割り当てるために、セキュア・ストレージへの変換(インポート)UVC命令を使用することによって、そのような技術的課題に対処する。したがって、本明細書において提供される手法は、悪意のあるハイパーバイザがセキュア・ゲスト・ストレージにアクセスするのを防ぐ。
ここで図1を参照すると、本発明の1つまたは複数の実施形態に従って、ゾーン・セキュリティのためのテーブル100が概して示されている。図1に示されているゾーン・セキュリティ・テーブル100は、セキュアな実体によってアクセスされるすべてのページへのセキュアなアクセスを保証するために、セキュア・インターフェイス制御によって維持され、セキュア・インターフェイス制御およびハードウェアによって使用される。ゾーン・セキュリティ・テーブル100は、ホスト絶対アドレス110によってインデックス付けされる。すなわち、ホスト絶対ストレージのページごとに1つのエントリが存在する。各エントリは、アクセスを行っているセキュアな実体に属しているとしてエントリを検証するために使用される情報を含んでいる。
さらに、図1に示されているように、ゾーン・セキュリティ・テーブル100は、セキュア・ドメインID120(ページに関連付けられたセキュア・ドメインを識別する)と、UVビット130(このページがセキュア・インターフェイス制御に提供されており、セキュア・インターフェイス制御によって所有されていることを示す)と、アドレス比較無効化(DA)ビット140(ホスト絶対として定義されたセキュア・インターフェイス制御のページが関連するホスト仮想アドレスを有していないなどの場合に、特定の環境内でホスト・アドレス対の比較を無効化するために使用される)と、共有(SH)ビット150(ページが非セキュア・ハイパーバイザと共有されていることを示す)と、ホスト仮想アドレス160(このホスト絶対アドレスの登録されたホスト仮想アドレスを示し、これらのアドレスはホスト・アドレス対と呼ばれる)とを含んでいる。ホスト・アドレス対が、ホスト絶対アドレスと、関連する登録されたホスト仮想アドレスとを示すということに注意する。ホスト・アドレス対は、ハイパーバイザによってインポートされた後の、このページのマッピングを表し、比較は、このページがゲストによって使用されている間に、ホストがこのページを再マッピングしていないことを保証する。
動的アドレス変換(DAT)は、仮想ストレージを実ストレージにマッピングするために使用される。ゲストVMがハイパーバイザの制御下でページング可能なゲストとして実行されている場合、ゲストは、DATを使用してメモリに常駐するページを管理する。加えて、ホストは、ゲスト・ページがメモリに常駐しているときに、独立してDATを使用して、それらのゲスト・ページを(ホスト自身のページと共に)管理する。ハイパーバイザは、DATを使用して、異なるVM間のストレージの分離または共有あるいはその両方を提供するだけでなく、ハイパーバイザ・ストレージへのゲストのアクセスを防ぐ。ハイパーバイザは、ゲストが非セキュア・モードで実行されているときに、すべてのゲストのストレージにアクセスすることができる。
DATは、アプリケーションが共有リソースを共有することを引き続き許可しながら、アプリケーション間の分離を可能にする。また、DATはVMの実装を許可し、VMは、アプリケーション・プログラムの同時処理と共に、OSの新しいバージョンの設計およびテストにおいて使用することができる。仮想アドレスは、仮想ストレージ内の位置を識別する。アドレス空間は、連続する一連の仮想アドレスであり、各仮想アドレスを関連する絶対アドレスに変換できるようにする特定の変換パラメータ(DATテーブルを含む)を伴っており、絶対アドレスは、ストレージ内のバイト位置でそのアドレスを識別する。
DATは、複数の検索テーブルを使用して、仮想アドレスを関連する絶対アドレスに変換する。このテーブル構造は、通常、ストレージ・マネージャによって定義され、維持される。このストレージ・マネージャは、例えば、あるページをページアウトし、別のページを取り込むことによって、複数のプログラム間で絶対ストレージを透過的に共有する。ページがページアウトされるときに、ストレージ・マネージャは、例えば、関連するページ・テーブル内で無効ビットを設定する。プログラムが、ページアウトされたページにアクセスしようとするときに、ハードウェアがプログラム割り込み(多くの場合、ページ・フォールトと呼ばれる)をストレージ・マネージャに提示する。それに応じて、ストレージ・マネージャは、要求されたページをページインし、無効ビットをリセットする。これは、プログラムにとってすべて透過的に実行され、ストレージ・マネージャがストレージを仮想化し、さまざまな異なるユーザ間で共有することを可能にする。
CPUによって仮想アドレスが使用されて主記憶装置にアクセスする場合、仮想アドレスは、まずDATを用いて実アドレスに変換され、次にプレフィックス変換を用いて絶対アドレスに変換される。特定のアドレス空間に対する最高レベルのテーブルの指定(原点および長さ)は、アドレス空間制御要素(ASCE:address-space-control element)と呼ばれ、関連するアドレス空間を定義する。
ここで図2を参照すると、本発明の1つまたは複数の実施形態に従って、DATを実行するための例示的な仮想アドレス空間202および204ならびに絶対アドレス空間206が概して示されている。図2に示されている例では、仮想アドレス空間202(アドレス空間制御要素(ASCE)A28によって定義される)および仮想アドレス空間204(ASCE B210によって定義される)という2つの仮想アドレス空間が存在する。ストレージ・マネージャによって、ASCE A208を使用して、仮想ページA1.V212a1、A2.V212a2、およびA3.V212a3が、複数の検索テーブル(セグメント230およびページ・テーブル232a、232b)内で、絶対ページA1.A220a1、A2.A220a1、およびA3.A220a1にマッピングされる。同様に、ASCE B210を使用して、仮想ページB1.V214b1およびB2.V214b2が、2つの検索テーブル234および236内で、絶対ページB1.A222b1およびB2.A222b2にそれぞれマッピングされる。
ここで図3を参照すると、本発明の1つまたは複数の実施形態に従って、ハイパーバイザの下で実行されているVMを支援するために使用されるネストされたマルチパートDAT変換の例が、概して示されている。図3に示されている例では、ゲストAの仮想アドレス空間A302(ゲストASCE(GASCE)A304によって定義される)およびゲストBの仮想アドレス空間B306(GASCEB308によって定義される)の両方が、共有ホスト(ハイパーバイザ)仮想アドレス空間325に存在する。図に示されているように、ゲストAのストレージ・マネージャによって、GASCEA304を使用して、ゲストAに属している仮想ページA1.GV310a1、A2.GV310a2、およびA3.GV310a3が、ゲスト絶対ページ(guest absolute pages)A1.HV340a1、A2.HV340a2、およびA3.HV340a3にそれぞれマッピングされ、ゲストBのストレージ・マネージャによって、独立してGASCEB308を使用して、ゲストBに属している仮想ページB1.GV320b1およびB2.GV320b1が、ゲスト絶対ページB1.HV360b1およびB2.HV360b2にそれぞれマッピングされる。この例では、これらのゲスト絶対ページは、共有ホスト仮想アドレス空間325に直接マッピングされ、その後、ホスト絶対アドレス空間330への追加のホストDAT変換を受ける。図に示されているように、ホストのストレージ・マネージャによって、ホストASCE(HASCE)350を使用して、ホスト仮想アドレスA1.HV340a1、A3.HV340a3、およびB1.HV360b1が、A1.HA370a1、A3.HA370a3、およびB1.HA370b1にマッピングされる。ゲストAに属しているホスト仮想アドレスA2.HV340a2、およびゲストBに属しているB2.HV360b2の両方が、同じホスト絶対ページ(host absolute page)AB2.HA380にマッピングされる。これによって、これら2つのゲスト間でデータを共有できるようにする。ゲストDAT変換中に、ゲストのテーブル・アドレスの各々が、ゲスト絶対として扱われ、追加のネストされたホストDAT変換を受ける。
本明細書に記載された本発明の実施形態は、セキュア・ゲスト・ストレージの保護を実現する。非セキュア・ゲストおよびハイパーバイザによるセキュア・ストレージへのアクセスが禁止される。ハイパーバイザは、特定の常駐するセキュア・ゲスト・ページに関して、次のことを発生させる。関連するホスト絶対アドレスが、単一のハイパーバイザ(ホスト)DATマッピングのみによってアクセス可能になる。すなわち、セキュア・ゲストに割り当てられた特定のホスト絶対アドレスにマッピングされる単一のホスト仮想アドレスが存在する。特定のセキュア・ゲスト・ページに関連付けられたハイパーバイザの(ホスト仮想からホスト絶対への)DATマッピングは、このページがページインされている間に変化しない。セキュア・ゲスト・ページに関連付けられたホスト絶対ページは、単一のセキュア・ゲストに関してマッピングされる。
本発明の1つまたは複数の実施形態に従って、セキュア・ゲスト間のストレージの共有も禁止される。ストレージは、セキュア・ゲストの制御下で、単一のセキュア・ゲストとハイパーバイザの間で共有される。
ここで図4を参照すると、本発明の1つまたは複数の実施形態に従って、セキュア・ゲスト・ストレージのマッピングの例が概して示されている。図4は図3に似ているが、図4の例が、セキュア・ゲストAとセキュア・ゲストBの間のストレージの共有を可能にしない点が異なっている。図3のセキュアでない例では、ゲストAに属しているホスト仮想アドレスA2.HV340a2、およびゲストBに属しているB2.HV360b2の両方が、同じホスト絶対ページAB2.HA380にマッピングされる。図4のセキュア・ゲスト・ストレージの例では、ゲストAに属しているホスト仮想アドレスA2.HV340a2がホスト絶対アドレスA2.HA490aにマッピングされ、一方、ゲストBに属しているB2.HV360b2が、それ自身のB2.HA490bにマッピングされる。この例では、セキュア・ゲスト間に共有が存在しない。
セキュア・ゲスト・ページは、ディスク上に存在する間、暗号化されている。ハイパーバイザは、セキュア・ゲスト・ページをページインするときにUVCを発行し、このUVCは、セキュア制御インターフェイスに、(共有されていない限り)ページをセキュアとしてマーク付けし、(共有されていない限り)復号し、適切なセキュア・ゲスト(例えば、ゲストA)に属しているとして(ゾーン・セキュリティ・テーブルに)登録することを実行させる。加えて、ハイパーバイザは、関連するホスト仮想アドレス(例えば、A3.HV340a3)を、そのホスト絶対ページ(ホスト・アドレス対と呼ばれる)に登録する。ハイパーバイザは、正しいUVCを発行できない場合、セキュア・ゲスト・ページにアクセスしようとするときに、例外を受信する。ハイパーバイザがゲスト・ページをページアウトするときに同様のUVCが発行され、このUVCは、ゲスト・ページを非セキュアとしてマーク付けして、非セキュアとしてゾーン・セキュリティ・テーブルに登録する前に、(共有されていない限り)ゲスト・ページを暗号化する。
5つの特定のホスト絶対ページK、P、L、M、およびNを含んでいる例では、ハイパーバイザがこれらのホスト絶対ページをページインするときに、セキュア制御インターフェイスによってホスト絶対ページの各々がセキュアとしてマーク付けされる。これによって、非セキュア・ゲストおよびハイパーバイザがこれらのホスト絶対ページにアクセスするのを防ぐ。ハイパーバイザがホスト絶対ページK、P、およびMをページインするときに、これらのホスト絶対ページが、ゲストAに属しているとして登録され、ホスト絶対ページLおよびNが、ハイパーバイザによってページインされるときに、ゲストBに登録される。共有ページ(単一のセキュア・ゲストとハイパーバイザの間で共有されたページ)は、ページング中に暗号化も復号も実行されない。これらの共有ページは、セキュアとしてマーク付けされない(ハイパーバイザによるアクセスを許可する)が、単一のセキュア・ゲスト・ドメインと共にゾーン・セキュリティ・テーブルに登録される。
本発明の1つまたは複数の実施形態に従って、非セキュア・ゲストまたはハイパーバイザが、セキュア・ゲストによって所有されているページにアクセスしようとするときに、ハイパーバイザがセキュア・ストレージ・アクセス(PIC3D)例外を受信する。これを決定するための追加の変換ステップは不要である。
1つまたは複数の実施形態に従って、セキュアな実体がページにアクセスしようとするときに、ハードウェアが追加の変換チェックを実行し、ストレージがその特定のセキュア・ゲストに実際に属していることを検証する。ストレージがその特定のセキュア・ゲストに属していない場合、非セキュア・アクセス(PCI3E)例外がハイパーバイザに提示される。加えて、変換されているホスト仮想アドレスが、ゾーン・セキュリティ・テーブル内の登録済みのホスト・アドレス対のホスト仮想アドレスに一致しない場合、セキュア・ストレージ違反(「3F」x)例外が認識される。ハイパーバイザとの共有を可能にするために、セキュア・ゲストは、変換チェックがアクセスを許す限り、セキュアとしてマーク付けされていないストレージにアクセスすることができる。
ここで図5Aを参照すると、本発明の1つまたは複数の実施形態に従って、インポート動作のプロセス・フロー550が概して示されている。ブロック552で、セキュアな実体が、コンピューティング・システムの信頼できない実体によってページインされているセキュア・ページにアクセスすることに応答して、コンピューティング・システムのハードウェア・インターフェイスが、例外をコンピューティング・システムの信頼できない実体に提示する。この例外は、信頼できない実体がセキュア・ページにアクセスするのを防ぐ。ブロック554で、信頼できない実体がインポート呼び出しルーチンを発行し、このインポート呼び出しルーチンは、本明細書においてさらに説明される。ブロック556で、コンピューティング・システムのセキュア・インターフェイス制御がインポート呼び出しルーチンを実行する。
図5Bは、本発明の1つまたは複数の実施形態に従って、インポート動作のプロセス・フロー500をさらに示している。セキュア・ゲストが、ハイパーバイザによってページアウトされたページにアクセスするときに、そのページを安全に取り戻すために、プロセス・フロー500に示されているイベントなどの一連のイベントが発生する。プロセス・フロー500はブロック505で開始し、ブロック705で、セキュア・ゲストがゲスト仮想ページにアクセスする。例えばこのページが無効であるため、ハードウェアが、プログラム割り込みコード11(PIC11)によって示されたホスト・ページ・フォールトをハイパーバイザに提示する(ブロック515を参照)。次に、ハイパーバイザは、このゲスト・ページの使用可能なセキュアでないホスト絶対ページを識別し(ブロック520を参照)、暗号化されたゲスト・ページを識別されたホスト絶対ページにページインする(ブロック525を参照)。
ブロック530で、次にホスト絶対ページが、(ホスト仮想アドレスに基づいて)適切なホストDATテーブル内でマッピングされる。ブロック535で、次にハイパーバイザ(ホスト)が、セキュア・ゲストを再ディスパッチする。ブロック540で、セキュア・ゲストがセキュア・ゲスト・ページに再アクセスする。ページ・フォールトはすでに存在しないが、このセキュア・ゲストのアクセスおよびページが、図1のゾーン・セキュリティ・テーブル100内でセキュアとしてマーク付けされていないため、ブロック545で、ハードウェアが非セキュア・ストレージ例外(PIC3E)をハイパーバイザに提示する。このPIC3Eは、必要なインポートが発行されるまで、ゲストによるこのセキュア・ページへのアクセスを防ぐ。次に、プロセス・フロー500は、図6に接続されている「A」に進む。
ここで図6を参照すると、本発明の1つまたは複数の実施形態に従って、インポート動作を実行するためのプロセス・フロー600が概して示されている。正常に動作する(例えば、エラーのない期待される方法で動作している)ハイパーバイザが、PIC3Eに応答して、インポートUVCを発行する(ブロック605を参照)。この時点で、インポートされるページが、非セキュアとしてマーク付けされ、ハイパーバイザ、他のセキュアでない実体、およびセキュア・インターフェイス制御のみによってアクセス可能であるということに注意する。セキュア・ゲストによって、このページにアクセスすることはできない。
インポートUVCの一部として、セキュア・インターフェイス制御として機能する信頼できるファームウェアが、セキュア・インターフェイス制御によってこのページがすでにロックされているかどうかをチェックして確認する(判定ブロック610を参照)。このページがロックされている場合、プロセス・フロー600がブロック620に進む。ブロック620で、「ビジー」復帰コードがハイパーバイザに返され、それに応じてハイパーバイザは、遅延し(ブロック625を参照)、インポートUVCを再発行する(プロセス・フロー600がブロック605に戻る)。このページがまだロックされていない場合、プロセス・フロー600が判定ブロック622に進む。
判定ブロック622で、セキュア・インターフェイス制御が、このページが、非セキュア・ハイパーバイザと共有されたページであるかどうかをチェックして確認する。このページが共有されている場合(プロセス・フロー600が判定ブロック624に進む)、セキュア・インターフェイス制御が、ホスト絶対アドレスを、関連するセキュア・ゲスト・ドメイン、ホスト仮想アドレスと共に、共有されているとしてゾーン・セキュリティ・テーブルに登録する。このページは、非セキュアとしてマーク付けされたままである。これでインポートUVCが完了し、ゲストによってこのページにアクセスできるようになった。処理は、ハイパーバイザがゲストを再ディスパッチすること(ブロック630)、およびセキュア・ゲストがこのページに正常にアクセスすること(ブロック635)に進む。
インポートされるホスト仮想ページがハイパーバイザと共有されていない場合(プロセス・フロー600がブロック640に進む)、セキュア・インターフェイス制御は、ハイパーバイザがこのページにアクセスできなくなるように、このページをセキュアとしてマーク付けする。ブロック645で、セキュア・インターフェイス制御は、他のUVCがページの状態を変更できないように、ページをロックする。(ブロック650で)ロックが設定された後に、セキュア・インターフェイス制御は、ゲスト・ページの内容が、暗号化されている間に変化しなかったことを検証する。ゲスト・ページの内容が変化していた場合、エラー復帰コードがハイパーバイザに返され、そうでない場合、セキュア・インターフェイス制御がセキュア・ページを復号する。
ブロック655で、セキュア・インターフェイス制御がページのロックを解除して、他のUVCによるアクセスを許可し、ページを、セキュアとして、HV->HAホスト・アドレス対を完成させるための適切なゲスト・ドメインおよびホスト仮想アドレスに関連付けて、ゾーン・セキュリティ・テーブルに登録する。これによって、ゲストによるアクセスを許可し、UVCを完了する。
図7は、本発明の1つまたは複数の実施形態に従って、セキュア・ゲスト・ページへの遷移のプロセス・フロー700を示している。暗号化されたセキュア・ゲスト・ページまたは共有されたセキュア・ゲスト・ページが、ハイパーバイザによってページインされる(702)。このページは現在、非セキュア(NS:non-secure)としてマーク付けされており、非セキュアおよび非共有としてゾーン・セキュリティ・テーブルに登録されている。このページは、セキュアでない実体(ハイパーバイザを含む)によってアクセスされ得る。このページがセキュアな実体によってアクセスされた場合、ホスト例外が提示される。このページは、インポートUVCを使用して(インポートされた)セキュア・ストレージに変換される(704)。インポートUVCの一部として、セキュア・インターフェイス制御によって、ページが共有されているかどうかが判定される(706)。ページが共有されていない場合、ページが復号され、セキュア・ゲスト・ページ(すなわち、ページが現在「疑いが晴れた状態」である)としてマーク付けされる(ブロック708)。特に、疑いが晴れた状態である間にこのページを保護するために、このページは、セキュア・インターフェイス制御によってセキュアとしてマーク付けされ、ゾーン・セキュリティ・テーブルに、セキュアであり、関連するセキュア・ゲスト・ドメインおよびHV->HAマッピングと共有されていないとして登録される。しかし、ページが共有されている(すなわち、ハイパーバイザと単一のセキュア・ゲストの間で共有されている)場合、このページは、ハイパーバイザを含む任意のセキュアでない実体によってアクセスされ得る(710)。このページは、ハイパーバイザによるアクセスを許可するために非セキュアとしてマーク付けされたままであり、ゾーン・セキュリティ・テーブルに、関連するセキュア・ゲスト・ドメインおよびHV->HAマッピングと共有されているとして登録される。
図8Aは、本発明の1つまたは複数の実施形態に従って、ゲストの(復号された)セキュア・ページをページアウトするプロセス・フロー830を示している。本明細書に記載された新しいセキュアな環境では、ハイパーバイザは、セキュア・ページをページアウトしているときに常に、新しいセキュア・ストレージからの変換(エクスポート)UVCを発行する必要がある。これを実行するために、プロセス・フロー800が実施される。ブロック831で、コンピューティング・システムのハードウェア制御は、信頼できない実体がコンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を信頼できない実体に提示し、この例外が、信頼できない実体がこのセキュア・ページにアクセスするのを防ぐ。ブロック832で、信頼できない実体がエクスポート呼び出しルーチンを発行する。ブロック833で、コンピューティング・システムのセキュア・インターフェイス制御が、エクスポート呼び出しルーチン(すなわち、セキュア・ストレージからの変換(エクスポート)UVC)を実行する。
図8Bおよび8Cは、本発明の1つまたは複数の実施形態に従って、ページをページアウトするために使用されるエクスポートUVCルーチン810のプロセス・フロー800を示している。ハイパーバイザは、ページアウトするためのセキュア・ゲスト・ページを識別し(802)、ハイパーバイザは、ホストDATテーブル内のセキュア・ゲスト・ページを無効化する(804)。ハードウェアは、ホストがページアウトするために共有されていないセキュア・ゲスト・ページにアクセスするときに、セキュア・ストレージ・アクセス(PIC3D)例外をホストに提示し(806)、それに応じて、ハイパーバイザがエクスポートUVCを発行する(808)。次に、セキュア・インターフェイス制御によって実行されるエクスポートUVCルーチン810が開始する。
特に、エクスポートUVCルーチン810は、ページがセキュア・インターフェイス制御によってすでにロックされているかどうかを判定することによって、開始する。ページがロックされている場合、「ビジー」インジケータがハイパーバイザに示され(814)、ハイパーバイザが遅延を待ち(816)、その後、エクスポートUVCの再発行を試みる(808)。ページがロックされていない場合、UVがセキュア・ページをロックし、UVに属しているとしてゾーン・セキュリティ・テーブルに登録する(818)。セキュア・ゲストは、ページにアクセスできなくなり、他のUVCはホスト絶対ページを操作できない。UVはページを暗号化し、ページの暗号化された内容のハッシュを捕捉する(820)。次にUVは、ホスト絶対ページを非セキュアとしてマーク付けする(822)。これでハイパーバイザは、ページにアクセスできる。次に、UVがページのロックを解除し、非セキュアとしてゾーン・セキュリティ・テーブルに登録する(824)。セキュア・ゲストは、ページにまだアクセスできないが、セキュア・インターフェイス制御はページにアクセスできる。ページは、インポートを要求された場合、ゲストのためにインポートされ得る。エクスポートUVCルーチン810が終了し、ハイパーバイザがゲスト・ページをページアウトする(826)。
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、VM、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間およびネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
迅速な順応性:能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した、ある抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能でさえも含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによって支援されるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティを支援する。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
ここで図9を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されているように、クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組み合わせなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含んでいる。ノード10は、互いに通信してよい。ノード10は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組み合わせを提供できる。図9に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
ここで図10を参照すると、クラウド・コンピューティング環境50(図9)によって提供される機能的抽象レイヤのセットが示されている。図10に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーク・コンポーネント66が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化レイヤ70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75などの仮想的実体の例を提供できる抽象レイヤを備える。
一例を挙げると、管理レイヤ80は、以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理84は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行85は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
ワークロード・レイヤ90は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されてよいワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育の配信93、データ解析処理94、トランザクション処理95、ならびにページのインポート/エクスポートのためのプログラム割り込み96が挙げられる。これらが単なる例であり、他の実施形態では、各レイヤが異なるサービスを含むことができるということが理解される。
ここで図11を参照すると、本発明の1つまたは複数の実施形態に従って、システム1100が示されている。システム1100は、ネットワーク165などを介して1つまたは複数のクライアント・デバイス20A~20Eと直接的または間接的に通信する例示的なノード10(例えば、ホスティング・ノード)を含んでいる。ノード10は、クラウド・コンピューティング・プロバイダのデータセンターまたはホスト・サーバであることができる。ノード10は、1つまたは複数のVM15(15A~15N)のデプロイを容易にするハイパーバイザ12を実行する。ノード10は、VM15A~Nおよびハイパーバイザ12によって必要とされる機能を直接支援し、ハイパーバイザ12が1つまたは複数のサービスをVM15に提供することを容易にする、ハードウェア/ファームウェア・レイヤ11をさらに含んでいる。現在の実装では、ハードウェア/ファームウェア・レイヤ11とハイパーバイザ12の間、ハードウェア/ファームウェア・レイヤ11とVM15の間、ハイパーバイザ12とVM15の間、およびハードウェア/ファームウェア・レイヤ11を介したハイパーバイザ12とVM15の間で、通信が提供される。本発明の1つまたは複数の実施形態に従って、セキュア・インターフェイス制御がハードウェア/ファームウェア・レイヤ11において提供され、ハイパーバイザ12とVM15の間の直接通信が除外される。
例えば、ノード10は、クライアント・デバイス20AがVM15A~15Nのうちの1つまたは複数をデプロイするのを容易にすることができる。個別のクライアント・デバイス20A~20Eからの各要求に応答して、VM15A~15Nがデプロイされてよい。例えば、クライアント・デバイス20AによってVM15Aがデプロイされてよく、クライアント・デバイス20BによってVM15Bがデプロイされてよく、クライアント・デバイス20CによってVM15Cがデプロイされてよい。ノード10は、クライアントが(VMとして実行するのではなく)物理的サーバをプロビジョニングするのを容易にすることもできる。本明細書に記載された例は、VMの一部としてノード10内のリソースのプロビジョニングを具現化するが、説明された技術的解決策は、物理的サーバの一部としてリソースをプロビジョニングするように適用されてもよい。
1つの例では、クライアント・デバイス20A~20Eは、人、企業、政府機関、会社内の部門、または任意のその他の実体などの、同じ実体に属してよく、ノード10は、実体のプライベート・クラウドとして運用されてよい。この場合、ノード10は、実体に属しているクライアント・デバイス20A~20EによってデプロイされているVM15A~15Nのみをホストする。別の例では、クライアント・デバイス20A~20Eは、個別の実体に属してよい。例えば、第1の実体はクライアント・デバイス20Aを所有してよく、第2の実体はクライアント・デバイス20Bを所有してよい。この場合、ノード10は、異なる実体のVMをホストするパブリック・クラウドとして運用されてよい。例えば、VM15A~15Nは、VM15AがVM15Bへのアクセスを容易にしないような、覆い隠される方法でデプロイされてよい。例えば、ノード10は、IBM z System(R)プロセッサ・リソース/システム・マネージャ(PR/SM:Processor Resource/System Manager)論理パーティション(LPAR:Logical Partition)機能を使用してVM15A~15Nを覆い隠してよい。PR/SM LPARなどのこれらの機能は、パーティション間を分離することによって、ノード10が、同じ物理ノード10上の異なる実体のために、異なる論理パーティション内で、2つ以上のVM15A~15Nをデプロイするのを容易にする。
クライアント・デバイス20A~20Eからのクライアント・デバイス20Aは、コンピュータ、スマートフォン、タブレット・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータ、またはノード10のハイパーバイザ12によるVMのデプロイメントを要求する任意のその他の通信装置などの、通信装置である。クライアント・デバイス20Aは、ネットワーク165を介してハイパーバイザによって受信するための要求を送信してよい。VM15A~15NからのVM15Aは、クライアント・デバイス20A~20Eからのクライアント・デバイス20Aからの要求に応答してハイパーバイザ12がデプロイするVMイメージである。ハイパーバイザ12は、VMモニタ(VMM)であり、VMを作成して実行するソフトウェア、ファームウェア、またはハードウェアであってよい。ハイパーバイザ12は、VM15Aがノード10のハードウェア・コンポーネントを使用してプログラムを実行すること、またはデータを格納すること、あるいはその両方を容易にする。ハイパーバイザ12は、適切な機能および変更を伴って、IBM z System(R)、ORACLE VM SERVER(TM)、CITRIX XENSERVER(TM)、VMWARE ESX(TM)、MICROSOFT HYPER-V(TM)、または任意のその他のハイパーバイザであってよい。ハイパーバイザ12は、ノード10上で直接実行されるネイティブ・ハイパーバイザであるか、または別のハイパーバイザ上で実行されるホストされたハイパーバイザであってよい。
ここで図12を参照すると、本発明の1つまたは複数の実施形態に従って、本明細書の教示を実装するためのノード10が示されている。ノード10は、本明細書において説明されているように、さまざまな通信技術を利用するコンピューティング・デバイスおよびネットワークの任意の数および組み合わせを備えるか、または採用するか、あるいはその両方である、電子的コンピュータ・フレームワークであることができる。ノード10は、容易にスケーリング可能であり、拡張可能であり、モジュール式であり、異なるサービスに変化する能力、または他の機能とは無関係に、一部の機能を再構成する能力を有することができる。
この実施形態では、ノード10が、1つまたは複数の中央処理装置(CPU:central processing units)1201a、1201b、1201cなどを含むことができるプロセッサ1201を含んでいる。プロセッサ1201は、処理回路、マイクロプロセッサ、コンピューティング・ユニットとも呼ばれ、システム・バス1202を介してシステム・メモリ1203およびさまざまな他のコンポーネントに結合される。システム・メモリ1203は、読み取り専用メモリ(ROM:read only memory)1204およびランダム・アクセス・メモリ(RAM:random access memory)1205を含む。ROM1204は、システム・バス1202に結合され、ノード10の特定の基本機能を制御する基本入出力システム(BIOS:basic input/output system)を含んでよい。RAMは、プロセッサ1201で使用するためにシステム・バス1202に結合された読み取り書き込みメモリである。
図12のノード10は、プロセッサ1201による読み取りおよび実行が可能な有形のストレージ媒体の例であるハード・ディスク1207を含んでいる。ハード・ディスク1207は、ソフトウェア1208およびデータ1209を格納する。ソフトウェア1208は、(図5、8A、8B、および8Cのプロセス・フローなどのプロセスを実行するために)プロセッサ1201によってノード10上で実行される命令として格納される。データ1209は、ソフトウェア1208の動作を支援し、ソフトウェア1208の動作によって使用されるさまざまなデータ構造に構造化された定性的変数または定量的変数の値のセットを含む。
図12のノード10は、ノード10のプロセッサ1201、システム・メモリ1203、ハード・ディスク1207、およびその他のコンポーネント(例えば、周辺機器および外部デバイス)の間を相互接続し、これらの間の通信を支援する1つまたは複数のアダプタ(例えば、ハード・ディスク・コントローラ、ネットワーク・アダプタ、グラフィックス・アダプタなど)を含む。本発明の1つまたは複数の実施形態では、1つまたは複数のアダプタを、中間バス・ブリッジを介してシステム・バス1202に接続された1つまたは複数のI/Oバスに接続することができ、1つまたは複数のI/Oバスが、PCI(Peripheral Component Interconnect)などの一般的なプロトコルを利用することができる。
図に示されているように、ノード10は、キーボード1221、マウス1222、スピーカ1223、およびマイクロホン1224をシステム・バス1202に相互接続するインターフェイス・アダプタ1220を含んでいる。ノード10は、システム・バス1202をディスプレイ1231に相互接続するディスプレイ・アダプタ1230を含んでいる。ディスプレイ・アダプタ1230(またはプロセッサ1201あるいはその両方)は、GUI1232の表示および管理などのグラフィックス性能を提供するために、グラフィックス・コントローラを含むことができる。通信アダプタ1241は、システム・バス1202をネットワーク1250と相互接続し、ノード10が、サーバ1251およびデータベース1252などの他のシステム、デバイス、データ、およびソフトウェアと通信できるようにする。本発明の1つまたは複数の実施形態では、ソフトウェア1208およびデータ1209の動作が、サーバ1251およびデータベース1252によってネットワーク1250上に実装され得る。例えば、ネットワーク1250、サーバ1251、およびデータベース1252は、組み合わさって、PaaS(Platform as a Service)、SaaS(Software as a Service)、またはIaaS(Infrastructure as a Service)、あるいはその組み合わせとして(例えば、分散システム内のWebアプリケーションとして)、ソフトウェア1208およびデータ1209の内部の反復を提供することができる。
したがって、図12で構成されているように、ソフトウェア1208およびデータ1209(例えば、ノード10)の動作は、必然的に、従来のハイパーバイザ環境の本明細書に記載された欠点を克服し、対処するためのプロセッサ1201またはサーバ1251あるいはその両方の計算能力に根差している。これに関して、ソフトウェア1208およびデータ1209は、悪意のあるハイパーバイザが追加の処理サイクルを引き起こすのを防ぐことによって、ノード10のプロセッサ1201またはサーバ1251あるいはその両方の計算動作を改善する(それによって、ノード10の効率を向上させる)。
本明細書に記載された実施形態は、必然的にコンピュータ技術に根差しており、特に、VMをホストするコンピュータ・サーバに根差している。さらに、本発明の1つまたは複数の実施形態は、コンピューティング技術自体の動作に対する改良を促進し、特に、ハイパーバイザがセキュアVMに関連付けられたメモリ、レジスタ、およびその他のそのようなデータにアクセスすることを禁止されていても、VMをホストするコンピュータ・サーバがセキュアVMをホストするのを容易にすることによって、VMをホストするコンピュータ・サーバの動作に対する改良を促進する。加えて、本発明の1つまたは複数の実施形態は、ハードウェア、ファームウェア(例えば、ミリコード)、またはこれらの組み合わせを含むセキュア・インターフェイス制御(本明細書では「UV」とも呼ばれる)を使用して、セキュアVMとハイパーバイザの分離を促進し、このようにして、コンピューティング・サーバによってホストされるVMのセキュリティを維持することによって、コンピューティング・サーバをホストするVMの改善に向かう重要な手順を提供する。セキュア・インターフェイス制御は、本明細書において説明されているように、VMの初期化/終了時に、VMの状態を保護することに大きなオーバーヘッドを追加せずに、セキュリティを促進するための軽量の中間動作を提供する。
本明細書で開示された本発明の実施形態は、ページのインポート/エクスポートのためのプログラム割り込みを使用するシステム、方法、またはコンピュータ・プログラム製品(本明細書ではシステム)、あるいはその組み合わせを含んでよい。説明ごとに、要素の識別子が、異なる図の他の類似する要素に再使用されるということに注意する。
本明細書では、関連する図面を参照して、本発明のさまざまな実施形態が説明される。本発明の範囲を逸脱することなく、本発明の代替の実施形態が考案され得る。以下の説明および図面において、要素間のさまざまな接続および位置関係(例えば、上、下、隣接など)が示される。それらの接続または位置関係あるいはその両方は、特に規定されない限り、直接的または間接的であることができ、本発明はこの点において限定するよう意図されていない。したがって、実体の結合は、直接的結合または間接的結合を指すことができ、実体間の位置関係は、直接的位置関係または間接的位置関係であることができる。さらに、本明細書に記載されたさまざまな作業および工程段階は、本明細書に詳細に記載されない追加の段階または機能を含んでいるさらに包括的な手順または工程に組み込まれ得る。
以下の定義および略称が、特許請求の範囲および本明細書の解釈に使用される。本明細書において使用されているように、「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」、「含有する」、もしくは「含有している」という用語、またはこれらの任意のその他の変形は、非排他的包含をカバーするよう意図されている。例えば、要素のリストを含んでいる組成、混合、工程、方法、製品、または装置は、それらの要素のみに必ずしも限定されず、明示的に列記されていないか、またはそのような組成、混合、工程、方法、製品、もしくは装置に固有の、その他の要素を含むことができる。
さらに、「例示的」という用語は、本明細書では「例、事例、または実例としての役割を果たす」ことを意味するために使用される。「例示的」として本明細書に記載された任意の実施形態または設計は、必ずしも他の実施形態もしくは設計よりも好ましいか、または有利であると解釈されるべきではない。「少なくとも1つ」および「1つまたは複数」という用語は、1以上の任意の整数(すなわち、1、2、3、4など)を含んでいると理解されてよい。「複数」という用語は、2以上の任意の整数(すなわち、2、3、4、5など)を含んでいると理解されてよい。「接続」という用語は、間接的「接続」および直接的「接続」の両方を含んでよい。
「約」、「実質的に」、「近似的に」、およびこれらの変形の用語は、本願書の出願時に使用できる機器に基づいて、特定の量の測定に関連付けられた誤差の程度を含むよう意図されている。例えば、「約」は、特定の値の±8%または5%、あるいは2%の範囲を含むことができる。
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる1つ(または複数)のコンピュータ可読ストレージ媒体を含んでよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータもしくは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを生成するものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、制限することを意図していない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、特に明示的に示されない限り、複数形も含むことが意図されている。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組み合わせの存在を示すが、1つまたは複数のその他の機能、整数、ステップ、動作、要素コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していないということが、さらに理解されるであろう。
本明細書におけるさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、あるいは他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。

Claims (25)

  1. コンピューティング・システムのハードウェア制御によって、信頼できない実体が前記コンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を前記信頼できない実体に提示することであって、前記例外が、前記信頼できない実体が前記セキュア・ページにアクセスするのを防ぐ、前記提示することと、
    前記例外に応答して、前記信頼できない実体によってエクスポート呼び出しルーチンを発行することと、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記エクスポート呼び出しルーチンを実行することとを含む、コンピュータ実装方法。
  2. 前記エクスポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・ページを暗号化することを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記エクスポート呼び出しルーチンが、
    前記暗号化の前に、前記セキュア・インターフェイス制御によって、前記セキュア・ページをロックすることと、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、前記セキュア・ページのロックを解除することとを含む、請求項2に記載のコンピュータ実装方法。
  4. 前記エクスポート呼び出しルーチンが、
    前記暗号化の前に、前記セキュア・インターフェイス制御によって、前記セキュア・インターフェイス制御への前記セキュア・ページをゾーン・セキュリティ・テーブルに登録することを含む、請求項2または3のいずれか一項に記載のコンピュータ実装方法。
  5. 前記エクスポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・ページの暗号化された内容のハッシュを捕捉することを含む、請求項2ないし4のいずれか一項に記載のコンピュータ実装方法。
  6. 前記エクスポート呼び出しルーチンが、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、ホスト絶対ページを非セキュアとしてマーク付けすることを含む、請求項2ないし5のいずれか一項に記載のコンピュータ実装方法。
  7. 前記エクスポート呼び出しルーチンが、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、前記ホスト絶対ページを非セキュアとしてゾーン・セキュリティ・テーブルに登録することを含む、請求項2ないし6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記セキュア・ページをロックする前に、前記セキュア・ページがロックされているかどうかを判定することと、
    前記セキュア・ページがロックされているということの決定に応答して、前記信頼できない実体へのビジー・インジケータを生成することと、
    遅延期間の間待つこととをさらに含む、請求項3に記載のコンピュータ実装方法。
  9. 前記セキュア・インターフェイス制御が、ファームウェア、ハードウェア、またはファームウェアとハードウェアの組み合わせを備え、前記信頼できない実体がハイパーバイザを備える、請求項1ないし8のいずれか一項に記載のコンピュータ実装方法。
  10. コンピュータ可読命令を含んでいるメモリと、
    方法を実行するために前記コンピュータ可読命令を実行する処理デバイスとを備えているシステムであって、前記方法が、
    コンピューティング・システムのハードウェア制御によって、信頼できない実体が前記コンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を前記信頼できない実体に提示することであって、前記例外が、前記信頼できない実体が前記セキュア・ページにアクセスするのを防ぐ、前記提示することと、
    前記例外に応答して、前記信頼できない実体によってエクスポート呼び出しルーチンを発行することと、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記エクスポート呼び出しルーチンを実行することとを含む、システム。
  11. 前記エクスポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・ページを暗号化することを含む、請求項10に記載のシステム。
  12. 前記エクスポート呼び出しルーチンが、
    前記暗号化の前に、前記セキュア・インターフェイス制御によって、前記セキュア・ページをロックすることと、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、前記セキュア・ページのロックを解除することとを含む、請求項11に記載のシステム。
  13. 前記エクスポート呼び出しルーチンが、
    前記暗号化の前に、前記セキュア・インターフェイス制御によって、前記セキュア・インターフェイス制御への前記セキュア・ページをゾーン・セキュリティ・テーブルに登録することを含む、請求項11または12のいずれか一項に記載のシステム。
  14. 前記エクスポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・ページの暗号化された内容のハッシュを捕捉することを含む、請求項11ないし13のいずれか一項に記載のシステム。
  15. 前記エクスポート呼び出しルーチンが、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、ホスト絶対ページを非セキュアとしてマーク付けすることを含む、請求項11ないし14のいずれか一項に記載のシステム。
  16. 前記エクスポート呼び出しルーチンが、
    前記暗号化の後に、前記セキュア・インターフェイス制御によって、前記ホスト絶対ページを非セキュアとしてゾーン・セキュリティ・テーブルに登録することを含む、請求項11ないし15のいずれか一項に記載のシステム。
  17. 前記セキュア・ページをロックする前に、前記セキュア・ページがロックされているかどうかを判定することと、
    前記セキュア・ページがロックされているということの決定に応答して、前記信頼できない実体へのビジー・インジケータを生成することと、
    遅延期間の間待つこととをさらに含む、請求項12に記載のシステム。
  18. 前記セキュア・インターフェイス制御が、ファームウェア、ハードウェア、またはファームウェアとハードウェアの組み合わせを備え、前記信頼できない実体がハイパーバイザを備える、請求項10ないし17のいずれか一項に記載のシステム。
  19. プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品であって、前記プログラム命令が、処理デバイスに、
    コンピューティング・システムのハードウェア制御によって、信頼できない実体が前記コンピューティング・システムのメモリに格納されたセキュア・ページにアクセスするときに、例外を前記信頼できない実体に提示することであって、前記例外が、前記信頼できない実体が前記セキュア・ページにアクセスするのを防ぐ、前記提示することと、
    前記例外に応答して、前記信頼できない実体によってエクスポート呼び出しルーチンを発行することと、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記エクスポート呼び出しルーチンを実行することとを含む方法を実行させるように、前記処理デバイスによって実行可能である、コンピュータ・プログラム製品。
  20. セキュアな実体が、コンピューティング・システムの信頼できない実体によってページインされたがまだセキュアでないページにアクセスすることに応答して、前記コンピューティング・システムのハードウェア制御によって、例外を前記コンピューティング・システムの前記信頼できない実体に提示することであって、前記例外が、前記信頼できない実体が前記ページにアクセスするのを防ぐ、前記提示することと、
    前記例外に応答して、前記信頼できない実体によってインポート呼び出しルーチンを発行することと、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記インポート呼び出しルーチンを実行することとを含む、コンピュータ実装方法。
  21. 前記インポート呼び出しルーチンが、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記セキュア・ページが共有されたページであるかどうかを判定することを含む、請求項20に記載のコンピュータ実装方法。
  22. 前記インポート呼び出しルーチンが、
    前記セキュア・ページが共有されたセキュア・ページでないということの決定に応答して、前記セキュア・インターフェイス制御によって、前記セキュア・ページをセキュアとしてマーク付けすることをさらに含む、請求項21に記載のコンピュータ実装方法。
  23. 前記インポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・インターフェイス制御への前記セキュア・ページをゾーン・セキュリティ・テーブルに登録することをさらに含む、請求項21または22のいずれか一項に記載のコンピュータ実装方法。
  24. 前記インポート呼び出しルーチンが、
    前記セキュア・インターフェイス制御によって、前記セキュア・ページを復号することをさらに含む、請求項21ないし23のいずれか一項に記載のコンピュータ実装方法。
  25. プログラム命令が具現化されているコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品であって、前記プログラム命令が、処理デバイスに、
    セキュアな実体が、コンピューティング・システムの信頼できない実体によってページインされたがまだセキュアでないページにアクセスすることに応答して、前記コンピューティング・システムのハードウェア制御によって、例外を前記コンピューティング・システムの前記信頼できない実体に提示することであって、前記例外が、前記信頼できない実体が前記ページにアクセスするのを防ぐ、前記提示することと、
    前記例外に応答して、前記信頼できない実体によってインポート呼び出しルーチンを発行することと、
    前記コンピューティング・システムのセキュア・インターフェイス制御によって、前記インポート呼び出しルーチンを実行することとを含む方法を実行させるように、前記処理デバイスによって実行可能である、コンピュータ・プログラム製品。
JP2021549802A 2019-03-08 2020-03-06 ページのインポート/エクスポートのためのプログラム割り込み Active JP7461694B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/296,352 US11403409B2 (en) 2019-03-08 2019-03-08 Program interruptions for page importing/exporting
US16/296,352 2019-03-08
PCT/IB2020/051943 WO2020183310A1 (en) 2019-03-08 2020-03-06 Program interruptions for page importing/exporting

Publications (3)

Publication Number Publication Date
JP2022522339A true JP2022522339A (ja) 2022-04-18
JPWO2020183310A5 JPWO2020183310A5 (ja) 2022-08-15
JP7461694B2 JP7461694B2 (ja) 2024-04-04

Family

ID=72335284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549802A Active JP7461694B2 (ja) 2019-03-08 2020-03-06 ページのインポート/エクスポートのためのプログラム割り込み

Country Status (6)

Country Link
US (1) US11403409B2 (ja)
JP (1) JP7461694B2 (ja)
CN (1) CN113544680B (ja)
DE (1) DE112020000285T5 (ja)
GB (1) GB2596012B (ja)
WO (1) WO2020183310A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US11347869B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US5343527A (en) 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6021201A (en) 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
US6983365B1 (en) 2000-05-05 2006-01-03 Microsoft Corporation Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys
US20020049878A1 (en) 2000-10-23 2002-04-25 Giora Biran Data communications interfaces
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
JP2007510198A (ja) 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7653819B2 (en) 2004-10-01 2010-01-26 Lenovo Singapore Pte Ltd. Scalable paging of platform configuration registers
US7886363B2 (en) * 2006-05-24 2011-02-08 Noam Camiel System and method for virtual memory and securing memory in programming languages
EP1870813B1 (en) 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
US20080077767A1 (en) 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
US8819676B2 (en) * 2007-10-30 2014-08-26 Vmware, Inc. Transparent memory-mapped emulation of I/O calls
US8176280B2 (en) 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
GB2460393B (en) 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
JP4769308B2 (ja) 2009-01-20 2011-09-07 株式会社東芝 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法
US8833437B2 (en) 2009-05-06 2014-09-16 Holtec International, Inc. Heat exchanger apparatus for converting a shell-side liquid into a vapor
US8650565B2 (en) * 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US20120185699A1 (en) 2011-01-14 2012-07-19 International Business Machines Corporation Space-efficient encryption with multi-block binding
JP5420114B2 (ja) 2011-06-02 2014-02-19 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
KR101323858B1 (ko) * 2011-06-22 2013-11-21 한국과학기술원 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법
US8984478B2 (en) * 2011-10-03 2015-03-17 Cisco Technology, Inc. Reorganization of virtualized computer programs
US8681813B2 (en) 2011-11-29 2014-03-25 Wyse Technology L.L.C. Bandwidth optimization for remote desktop protocol
EP2864876B1 (en) 2012-06-26 2017-10-04 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US8910238B2 (en) 2012-11-13 2014-12-09 Bitdefender IPR Management Ltd. Hypervisor-based enterprise endpoint protection
WO2014081611A2 (en) 2012-11-20 2014-05-30 Unisys Corporation Error recovery in securely partitioned virtualization system with dedicated resources
US8931108B2 (en) 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
GB2515536A (en) 2013-06-27 2014-12-31 Ibm Processing a guest event in a hypervisor-controlled system
US9792448B2 (en) 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9483639B2 (en) 2014-03-13 2016-11-01 Unisys Corporation Service partition virtualization system and method having a secure application
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
US9251090B1 (en) 2014-06-03 2016-02-02 Amazon Technologies, Inc. Hypervisor assisted virtual memory obfuscation
US9454497B2 (en) 2014-08-15 2016-09-27 Intel Corporation Technologies for secure inter-virtual-machine shared memory communication
US9672354B2 (en) 2014-08-18 2017-06-06 Bitdefender IPR Management Ltd. Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine
US9305661B2 (en) * 2014-09-03 2016-04-05 Microsemi Storage Solutions (U.S.), Inc. Nonvolatile memory system that uses programming time to reduce bit errors
CN105512559B (zh) 2014-10-17 2019-09-17 阿里巴巴集团控股有限公司 一种用于提供访问页面的方法与设备
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
DE112015005602T5 (de) 2014-12-15 2017-09-07 International Business Machines Corporation System und Verfahren zum Unterstützen von sicherer Objekten unter Verwendung einer Überwachungseinrichtung zur Speicherzugriffsteuerung
US10599458B2 (en) 2015-01-23 2020-03-24 Unisys Corporation Fabric computing system having an embedded software defined network
US10157146B2 (en) 2015-02-12 2018-12-18 Red Hat Israel, Ltd. Local access DMA with shared memory pool
US9842065B2 (en) 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
US9720721B2 (en) 2015-07-01 2017-08-01 International Business Machines Corporation Protected guests in a hypervisor controlled system
US9734088B2 (en) 2015-08-12 2017-08-15 International Business Machines Corporation Memory management unit and method for accessing data
US9942035B2 (en) 2015-08-18 2018-04-10 Intel Corporation Platform migration of secure enclaves
US10742603B2 (en) 2015-08-26 2020-08-11 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University System and method for monitoring and protecting an untrusted operating system by means of a trusted operating system
US9841987B2 (en) 2015-12-17 2017-12-12 International Business Machines Corporation Transparent secure interception handling
US20170277898A1 (en) 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces
US10116630B2 (en) 2016-04-04 2018-10-30 Bitdefender IPR Management Ltd. Systems and methods for decrypting network traffic in a virtualized environment
WO2017211651A1 (en) 2016-06-08 2017-12-14 Thomson Licensing Devices and methods for core dump deduplication
US10671542B2 (en) 2016-07-01 2020-06-02 Intel Corporation Application execution enclave memory method and apparatus
US10237245B2 (en) 2016-07-15 2019-03-19 International Business Machines Corporation Restricting guest instances in a shared environment
US10303899B2 (en) 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
US10176122B2 (en) 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system
US10169577B1 (en) 2017-03-28 2019-01-01 Symantec Corporation Systems and methods for detecting modification attacks on shared physical memory
EP3602376B1 (en) 2017-03-29 2022-03-30 Advanced Micro Devices, Inc. Monitoring of memory page transitions between a hypervisor and a virtual machine
US20180341529A1 (en) 2017-05-26 2018-11-29 Microsoft Technology Licensing, Llc Hypervisor-based secure container
GB2563883B (en) 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Invalidation of a target realm in a realm hierarchy
US10693844B2 (en) * 2017-08-24 2020-06-23 Red Hat, Inc. Efficient migration for encrypted virtual machines by active page copying

Also Published As

Publication number Publication date
DE112020000285T5 (de) 2021-10-14
US11403409B2 (en) 2022-08-02
GB202113069D0 (en) 2021-10-27
WO2020183310A1 (en) 2020-09-17
CN113544680A (zh) 2021-10-22
JP7461694B2 (ja) 2024-04-04
GB2596012A (en) 2021-12-15
CN113544680B (zh) 2023-03-28
US20200285762A1 (en) 2020-09-10
GB2596012B (en) 2023-01-11

Similar Documents

Publication Publication Date Title
JP7373578B2 (ja) セキュア仮想マシン環境におけるストレージ保護ハードウェアのテスト方法、システム、プログラム
JP7461694B2 (ja) ページのインポート/エクスポートのためのプログラム割り込み
JP7379512B2 (ja) セキュア・ドメインと非セキュア・エンティティとの間のストレージ共用
EP3935510B1 (en) Secure interface control secure storage hardware tagging
JP2022522499A (ja) セキュア・ストレージのクエリおよび提供方法、システム、プログラム
JP2022523785A (ja) セキュア・インターフェース制御ストレージのためのホスト仮想アドレス空間使用方法、システム、プログラム
US20200285499A1 (en) Controlling access to secure storage of a virtual machine
JP7350868B2 (ja) 複数のセキュリティ・ドメインにわたるセキュア・メモリの共用
JP7436495B2 (ja) セキュア・ストレージの分離
JP7393846B2 (ja) セキュア・インターフェイス制御の高レベルのページ管理
JP7410161B2 (ja) ページ変更検出によるセキュアなページング
JP7398472B2 (ja) 割り込みイネーブルのためのセキュア・インターフェース制御ハイレベル命令インターセプト
JP2022522679A (ja) セキュア・インターフェース・コントロールの通信インターフェース
TWI838460B (zh) 用於安全介面控制件之通信介面之電腦實施的方法、電腦系統及電腦程式產品

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20231113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20231113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240205

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20240306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240319

R150 Certificate of patent or registration of utility model

Ref document number: 7461694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150