JP2017520959A - 信頼実行環境を含むホストのアテステーション - Google Patents

信頼実行環境を含むホストのアテステーション Download PDF

Info

Publication number
JP2017520959A
JP2017520959A JP2016566758A JP2016566758A JP2017520959A JP 2017520959 A JP2017520959 A JP 2017520959A JP 2016566758 A JP2016566758 A JP 2016566758A JP 2016566758 A JP2016566758 A JP 2016566758A JP 2017520959 A JP2017520959 A JP 2017520959A
Authority
JP
Japan
Prior art keywords
host
virtual
trust level
computer
virtual trust
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
JP2016566758A
Other languages
English (en)
Other versions
JP6484255B2 (ja
JP2017520959A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017520959A publication Critical patent/JP2017520959A/ja
Publication of JP2017520959A5 publication Critical patent/JP2017520959A5/ja
Application granted granted Critical
Publication of JP6484255B2 publication Critical patent/JP6484255B2/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45583Memory management, e.g. access or allocation
    • 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
    • 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/45595Network integration; Enabling network access in 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/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

アテステーションサービスがホストから受け取る指標を検証し、指標は信頼実行環境(TEE)を含むホストに関連する。検証に成功すると、アテステーションサービスは証明書を発行し、ホストはこれを使用して、アテステーションサービスとの信頼関係を有するエンティティを認証することができる。

Description

[0001]コンピューティングシステムの相互接続は、いわゆる「クラウド」コンピューティングシステムなど、分散型コンピューティングシステムを推進してきた。この説明において、「クラウドコンピューティング」とは、管理労力またはサービスプロバイダーとの相互作用を軽減した状態で準備および解放し得る、設定変更可能なコンピューティングリソースの共有プール(例:ネットワーク、サーバー、ストレージ、アプリケーション、サービスなど)への、普遍的で便利なオンデマンドネットワークアクセスを可能にするシステムまたはリソースを指すものと考えられる。クラウドモデルは様々な特徴(例:オンデマンドセルフサービス、広域ネットワークアクセス、リソースプーリング、高速伸縮性、従量制サービスなど)、サービスモデル(例:サービスとしてのソフトウェア(「SaaS」)、サービスとしてのプラットフォーム(「PaaS」)、サービスとしてのインフラストラクチャ(「IaaS」))、および展開モデル(例:プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなど)で構成され得る。
[0002]クラウドおよびリモートベースのサービスアプリケーションが普及している。そのようなアプリケーションはクラウドなどパブリックおよびプライベートの遠隔システム上でホストされ、また通常、クライアントと連絡を取り合うための一連のウェブベースサービスを提供する。
[0003]法人用コンピューティングシステムは、金銭的損害、知的財産流出または破壊活動に繋がる侵害のリスクの増大に曝されている。特に、仮想マシン内で稼働するデータセンター内のワークロードに対し、それらの稼働基盤であるホスティングファブリック(仮想化ホスト、ストレージおよびネットワーキングシステム)や、ファブリックおよび仮想マシンの管理に使用される管理システムから脅威が発生し得る。
[0004]この脅威は、パブリッククラウドまたはサービスプロバイダーの側でワークロードを運用するテナントにとって関連性があり、つまり、テナントはサービスプロバイダーを機関として信頼し得る一方、その信頼をサービスプロバイダーの職員にまで拡大することを望まず、何故ならそれら職員が個人的な犯罪の動機を背景に悪意を抱いているか、あるいは外部攻撃者から賄賂を受け取っている、または徴用されている人物である可能性がある、あるいはそれら職員の認証情報(credentials)が外部攻撃者により、「フィッシング」を含む多様な種類の攻撃のうち1つを使用して盗まれている可能性があるからである。一方、それは企業の内部運用にとっても関連性があり、つまり、企業独自のIT担当職員も同じように自分の認証情報を盗まれてしまっているか、または他の理由により悪意を抱いている可能性がある。現在の慣行では、ホスティングファブリックを運用する特権を有するIT担当職員はすべてのワークロードに対して幅広く、ほぼ無限にアクセスできる。
[0005]こうした脅威の増大は、資本および運用コストの低減や、大規模で可用性の高い地球規模の到達範囲を目的に、最新のコンピューティングにおいて自動化を活用する場合に発生する。しかし、この自動化や規模拡大は、攻撃者が自動化技法を利用することや、多数の正当な行為に自分の痕跡を紛れ込ませることを可能にすることにより、リスクも増大させる。
[0006]したがって、仮想化されたワークロードとファブリックの双方において自動化された管理ワークフローを可能にする一方で、ファブリックを運用するIT担当職員からワークロードを保護することが、有用であると考えられる。課題としては、現在の慣行において、仮想マシン管理(VMM)システムが仮想マシン(VM)の準備および管理に能動的役割を果たし、また同様にファブリック管理(FM)システムがファブリックの準備および管理に能動的役割を果たすものの、どちらかを「信頼コンピューティング基盤」、すなわち信頼できるコンピューティングが構築される基礎の一部にすると問題が生じるおそれがあり、これは少なくとも次に挙げる2つの理由、すなわち管理システムが大規模かつ複雑であるため、典型的にセキュアな状態にする、またはセキュアであることを証明することができないこと、およびテナントがサービスプロバイダー側のVMMおよびFMの運用担当職員にまで信頼を拡大することを望まないということによるものである。
[0007]本明細書における特許請求対象事項は、何らかの不利点を解決する実施形態、あるいは前述のような環境に限り機能する実施形態に限定されるわけではない。むしろ、この背景情報は、本明細書に記載の一部の実施形態が実践され得る1つの模範的技術分野を例示する目的で提示されるに過ぎない。
[0008]本明細書において例示されるある実施形態は、本明細書において例示される信頼エンティティ上で暗号化エンティティを展開する方法を含む。1つの方法は、信頼エンティティ側にて、一定の(certain;ある)要件を満たす信頼エンティティの一定の(certain;ある)特徴について検証可能な指標を提供する結果として、ある権限者から該信頼エンティティが信頼される場合、非信頼エンティティから暗号化エンティティを受け取ることを含む。非信頼エンティティは、該権限者から信頼されない。信頼エンティティ側にて、キー分配サービスからキーを取得するために該権限者からの信頼認証情報が使用される。キー分配サービスは権限者の一部であってもよく、あるいは権限者を信頼するものであってもよい。キーは、暗号化エンティティが信頼エンティティ側にて展開されることを可能にするために、暗号化エンティティの暗号解読(復号)に使用される。
[0009]この「発明の概要」は、下記の「発明を実施するための形態」で詳述される一連の概念を簡略化された形で紹介する目的で提示される。この「発明の概要」は、特許請求対象事項の主要な特徴または本質的特徴を特定することを意図するものではなく、また特許請求対象事項の範囲を判断する際の支援手段として使用されることも意図していない。
[0010]付加的な特徴および優位性は後述の説明に記載され、また部分的に説明から明白となるか、または本明細書に記載の教示の実践によって学習され得る。本発明の特徴および優位性は、添付の請求項において特に指摘される機器および組み合わせを手段として実現および獲得され得る。本発明の特徴は、後述の説明および添付の請求項から、より全面的に明らかとなるか、または後述する通り、本発明の実践によって学習され得る。
[0011]上記および他の優位性や特徴を獲得可能な方法を記述するため、上記にて簡潔に記載の対象事項に関する、より詳しい記述が、添付の図面において例示される特定の実施形態を参照することにより表現される。これらの図面は典型的な実施形態だけを描写するものであるため、範囲を制限するものと解釈してはならないことを理解しつつ、実施形態は付加的な特異性および詳細と併せて、下記の添付図面の使用を通じて記述および説明される。
[0012]セキュリティデバイスに連結された処理装置を例示する図である。 [0013]本明細書に記載の対象事項の態様に従って構成されるシステムの模範的コンポーネントを全般的に表わすブロック図である。 [0014]1つまたは複数の実施形態に従って本明細書において論じられる技法を実装するコンピューティングデバイスの一例を例示するブロック図である。 [0015]1つまたは複数の実施形態に従う多重仮想信頼レベルの一例を例示する図である。 [0016]1つまたは複数の実施形態に従う多重仮想信頼レベルを実装するシステムの一例を例示する図である。 [0017]1つまたは複数の実施形態に従って仮想マシン向けの仮想セキュアモードを有効化するプロセスの一例を例示するフローチャートである。 [0018]ホストに対する信頼を確立する方法を例示するフローチャートである。 [0019]ホストに対する信頼を確立する別の方法を例示するフローチャートである。 [0020]暗号化エンティティを信頼エンティティ上で展開する別の方法を例示するフローチャートである。
[0021]本発明の実施形態は、展開および移行など、仮想マシン(VM)上での管理動作の自動化に使用されるパターンを実装し得る。特に、実施形態はホストが一定のポリシー要件を満たすことを判定し得る。ホストが一定のポリシー要件を満たす場合、証明書がホスト宛に発行され得、ホストはこの証明書を、様々な展開活動を実施するために使用し得る。特に、要件のうち少なくとも1つは、ホストが信頼実行環境(TEE)を含むことであってもよい。様々な異なるTEEが併用または選択的に使用され得る。一実施形態において、これはホストVMのカーネル内で稼働する機能として実装され得る。別の実施形態ではそれをハイパーバイザー内で稼働することができる。他の実施形態ではそれは、プロセッサーのメモリーマッピング能力を使用するハイパーバイザーによって強制される別個のアドレス空間として実装されることができる。他の実施形態ではそれは、プロセッサーによって強制される別個の実行領域として実装されることができる(例:ARMアーキテクチャーのTrustZone、カリフォルニア州サンタクララのIntel Corporationが記述した新たなSGX能力、または信頼プラットフォームモジュール(TPM)技術など)。これらの異なる実装が、暗号化動作、認証情報保存、コードまたはデータの整合性の妥当性確認、そして秘密保護を実行する能力など、類似する機能性を提供し得る。ただし、それらは提供するセキュリティ特性が異なっていてもよい。一部の実施形態は、本明細書において仮想セキュアモード(VSM)と呼ばれる、以下にて詳述される機能性の使用により、信頼実行環境(TEE)を含み得る。
[0022]上記にて例示のパターンは、セキュアネットワーキング向けのIPsec設定、VMより小さい軽量コンテナ内でのワークロード稼働など、セキュアな展開または構成または移行に応じて変わる、他の多数のシナリオに合わせて一般化され得る。
[0023]次に、図面を参考に詳細を例示する。
[0024]図1では、処理装置120がハードウェアセキュリティデバイス122に接続され得る。セキュリティデバイス122は、コンピューター110の様々な態様の保安に使用され得る暗号化キーを生成および安全に保存する能力を有するものであってもよい。一実施形態において、セキュリティデバイス122は信頼プラットフォームモジュール(TPM)セキュリティデバイス、または同種のものを含み得る。
[0025]本書全体を通じ、信頼プラットフォームモジュール(TPM)という用語が頻繁に使用される。TPMは当業者に十分理解されている。ただし、TPMという用語の使用は、本明細書に記載の対象事項の態様を、TPMの実装に関する1つまたは複数のバージョンの標準に適合するデバイスだけに限定することを意図するものではない。むしろ、この用語は、本明細書に記載の対象事項の態様に従って使用され得るセキュリティコンポーネントの一例として使用される。
[0026]他の実施形態において、セキュリティ機能性を提供する他のセキュリティコンポーネントも、本明細書に記載の対象事項の態様の精神または範囲から逸脱することなく、使用され得る。様々なセキュリティデバイスが、以下のような特徴を有し得る。
[0027]1.保護メモリー(多数のTPMアプリケーションにおいて「遮蔽された位置」と呼ばれる)。セキュリティデバイスは、該セキュリティデバイスからのみ書き込むことができるメモリーを有し得る。このメモリーは、測定結果の保存、封印および封印解除を、他の暗号化機能および他の様々な機能向けに行うために使用され得る。
[0028]2.セキュリティデバイスの識別、および他のデバイスでは暗号解除できない暗号化ストレージの提供のための手段。例えば、セキュリティデバイスは、該デバイスだけが知り、該デバイスを他のデバイスと区別する、秘密を含み得る。
[0029]3.アテステーション(attestation;認証)を実施する手段。セキュリティデバイスは、該セキュリティデバイスによって制御される任意の資産に関する信頼メッセージの作成に使用され得る、プロセッサーまたは他の回路を有し得る。セキュリティデバイスによって制御される模範的資産の例として、暗号化オブジェクト、封印済みブロブ、該セキュリティデバイスが関連付けられるプラットフォームの状態、または同種のものが挙げられ得る。
[0030]セキュリティデバイスは別個の孤立コンポーネントとして捉えられることが多いが、これは要件ではない。例えば、一実装において、プロセッサーと連結されたファームウェアがセキュリティデバイスとして使用され得る。
[0031]本明細書においてTPMという用語が使用される場合、それは他のセキュリティデバイス(本明細書において言及されるものを含む)の選択的実装も、本明細書に記載の対象事項の態様の精神または範囲から逸脱することなく使用され得るという意味であると理解されなければならない。
[0032]仮想マシンを使用する場合、使用者は仮想マシンおよびホスティング環境の整合性が保証されることを希望し得る。図2は、本明細書に記載の対象事項の態様に従って構成されるシステムの模範的コンポーネントを全般的に表わすブロック図である。図2にて例示のコンポーネントは模範的なものであり、必要とされ得るコンポーネントまたは含まれ得るコンポーネントをすべて網羅するという意味ではない。さらに、他の実施形態において、コンポーネントの数は、本明細書に記載の対象事項の態様の精神または範囲から逸脱しなければ、異なっていてもよい。一部の実施形態において、図2と併せて記載のコンポーネントが、本明細書に記載の対象事項の態様の精神または範囲から逸脱することなく、他のコンポーネント(記載か不記載かのいずれを問わない)に含まれ得るか、またはサブコンポーネント内に配置され得る。一部の実施形態において、図2と併せて記載のコンポーネントおよび/または機能が、複数のデバイスにまたがって分配され得る。
[0033]図2を参考に、システム200はホスト230、キー分配サービス235、および他のコンポーネント(不記載)を含み得る。ホスト230は、VHD205〜207と関連付けられ得る1つまたは複数の仮想マシン208〜210のホスティングに適するものであってもよい。ホスト230は1つまたは複数の仮想マシン(例:ゲスト仮想マシン208〜210)をホストし得る。仮想マシンは1つまたは複数のVHD(例:VHD205〜207のうち1つまたは複数)と関連付けられ得る。ゲスト仮想マシン208〜210は、オペレーティングシステム機能性をホスト230に提供する「ルート」VM231とは対照的に、複数のホスト間で移行し得る。ホスト230は、ハイパーバイザー215と、孤立状態の信頼プラットフォームモジュール261または他のセキュリティデバイスとを含み得る。
[0034]ハイパーバイザー215は、仮想マシン208〜210およびルートVM231が動作し得る仮想環境を作成するコンポーネントである。ハイパーバイザー215は、ソフトウェア、ファームウェア、ハードウェア、これらのうち2つ以上の組み合わせ、または同種のものに実装され得る。ハイパーバイザー215は、ホスト230のハードウェア上で直接実行し得るか、またはホスト230上でホストされるオペレーティングシステム環境内で実行し得る。
[0035]一実装において、ハイパーバイザー215は1つまたは複数の仮想TPM(vTPM)220〜222を管理し得る。各vTPMは、1つの仮想マシン(例:仮想マシン208〜210のうち1つ)と関連付けられ得る。この実装において、ハイパーバイザー215は、ハイパーバイザー215外のコンポーネントに対しては利用可能でないハイパーバイザー215のセキュアなメモリー内に、vTPMを表わすデータを保存し得る。攻撃者は、vTPMへのアクセスを得るには、ハイパーバイザー215自体を制御できる状態となる必要があると考えられる。別の実装において、ホスト230はvTPM220〜222を管理し得る。この実装において、管理者特権を有する使用者およびプロセスは、vTPM220〜222へのアクセス権を有し得る。さらに別の実装において、ホスト230外のサービスが、vTPM220〜222を管理し得る。さらに別の実装において、図2では幻影として記載されているvTPMによって例示されている通り、vTPMはルートVM231のVSM265内に実装され得る。
[0036]一実装において、キー分配サービス235は、ホスト230外でホストされ得る。
[0037]vTPMの暗号解読に使用可能なキーは、様々な形で分配され得る。例えば、一実装において、キーは、ホストの状態がポリシーを満たすことが判明した後に随時、分配され得る。例えば、ポリシーを満たす状態にホスト230を設定した後、TPMの1つまたは複数のレジスタの状態がTPM261によって署名され、そしてキー分配サービス235へ送られ得る。これを受信した後、キー分配サービス235は即座に、またはその後随時、ホスト230がポリシーを満たす状態にある場合に限りホスト230がキーの暗号を解読し得るという形で、暗号化またはラップされたキーをホスト230へ送信し得る。この形でのキー暗号化は、あるホストのTPMのパブリックキーによるキーの暗号化のほか、(該ホストのTPMによる測定に応じた)ポリシーを満たす状態への封印化も関係し得る。
[0038]別の実装において、キー分配サービス235は、キーを提供する前に、キーがリクエストされるまで待機し得る。この実装において、キー分配サービス235は、キーを提供する前に、リクエストを出したマシンの状態を検証し得る。キーがポリシーを満たせば、キーはキー分配サービス235によって提供され得る。そうでない場合、キー分配サービス235はリクエスターへのキー提供を保留し得る。
[0039]上記のキー分配例は、単に模範的なものに過ぎない。本明細書における教示に基づき、当業者であれば、本明細書に記載の対象事項の態様の精神または範囲から逸脱することなく使用され得る、他のキー分配手段も認識し得る。
[0040]上記の教示は、セキュアなマシンであるがセキュリティデバイスを有していないマシン、または旧型のセキュリティデバイスを有するマシンに適用され得る。例えば、TPMを全く有しないマシンが存在し得る。他にも、TPMを有するが、そのTPMが古いTPM標準に従って実装され得るマシンも存在し得る。一部のオペレーティングシステムは、一定以上のバージョンに従って実装されたTPMにアクセスできない限り、実行不可能な場合がある。
[0041]上記のようなプラットフォームを是正するため、ハイパーバイザーを使用してプラットフォームを設定することができる。その場合、ハイパーバイザーを使用して、オペレーティングシステムを仮想環境内で実行することができる。オペレーティングシステムがTPMへのアクセスをリクエストする場合、ハイパーバイザーは適切なバージョンの仮想TPMを供給し得る。ハイパーバイザーは、該ハイパーバイザーに限り仮想TPMの保護メモリーを変更できるよう、仮想TPMをセキュアな状態にし得る。オペレーティングシステムに関する範囲で言えば、仮想TPMは孤立状態の物理的TPMのように見える。
[0042]さらに、仮想TPMの作成に使用される種となる秘密は、キーボードまたは他の入力デバイス経由で入力され、そしてUSBまたはその他、種となる秘密の使用後に接続解除される外部ストレージデバイスまたは同種のものから読み取られ得る。
[0043]マシンをセキュアな状態にするための上記の方法の1つの優位性は、マシンの高速ハードウェア(例:CPU)を使用してvTPMの機能を遂行させることができるという点にある。これはマシンの暗号化機能を大幅に高速化し得る。
[0044]旧バージョンのTPMがマシン上で利用可能な状態である場合、この旧バージョンのTPMを使用して、マシンはvTPMキーへのアクセスを得ることを許可される状態であるという証拠を提供し得る。これは新バージョンのTPMをマシン上に有し、この新バージョンのTPMを使用してvTPMキーへのアクセスを得ることに比べると、理想的とは言えないが、非TPMソリューションよりは良いと考えられる。
[0045]次に、一連のVM208、209および210を有し、既にデータセンター環境内に存在する、初期状況を考察する。暗号化用キーは各々、仮想信頼プラットフォームモジュール(vTPM)220、221および222によって保護される。
[0046]仮想マシン208〜210は、データセンターを介して1つまたは複数のテナントへ提供され得る。テナントは、仮想マシン208〜210のうち1つまたは複数に関連付けられ得る。遮蔽型VMはデータセンターのストレージシステム250内に保存されるが、ここで考察する脅威モデルの下ではテナントがストレージシステム250のアクセス制御機構を信頼せず、何故なら管理者特権を有するサービスプロバイダー職員がこれらの制御を迂回し得るからである。
[0047]テナントの例として、仮想マシンのうち1つまたは複数へのアクセス権を有する使用者、企業または他のエンティティが挙げられる。マルチテナント環境における「テナント」は、VM向けに通常想定される通り、別々の企業であってもよい。一方、テナントは単一企業内の複数部門、または複数の使用者、または別々のアプリケーションであってもよいが、いかなる種類の区分も他の区分と区別される状態に保たれるべきである。一部の事例において、企業がそのようなコンテナにおける比較的弱い隔離を、企業内部の使用者、部門およびアプリケーションの運用を許可するが、他の、潜在的に敵対するエンティティからの保護を目的に、より強力なVM隔離を使用することによって管理し得る。
[0048]一シナリオにおいて、VM208、209および210はファブリック内の複数のホスト230のうち1つへと展開される。ここで例示される実施形態において、「ホスト」は仮想化プラットフォームを指す。ホストは、例示される一部の例において、ハードウェア(サーバー251として例示)上で展開されるハイパーバイザー215に加え、ハイパーバイザー215上で展開されるホストVM231をも含む。ただし、ホストは他の形でも実装され得るという点が理解されるべきである。例えば、時々、ホストVMを有していないハイパーバイザー215内にホストが実装されることもあり得る。したがって、本明細書において使用される「ホスト」という用語は、構築され得る形態の如何を問わず、単に仮想化プラットフォームを指す。展開措置は、VMM253で表わされるセルフサービス管理ポータルを使用するテナントか、またはプログラミングインターフェース経由で行動するテナントか、または別のインターフェースによって講じられ得る。このシナリオの別の変形において、展開措置は、テナントが指定するスケジュールに基づく展開など、VMM253の自動化機能によって、またはホスト障害への対応としてのフェイルオーバー動作によって講じられ得る。このシナリオの別の変形において、展開措置は、サービスプロバイダーの運用担当職員により、ホスト保守またはリソース配分など運用業務を円滑化するために講じられ得る。VM208、209および210の保護は、措置の発端である行為者の身元に対する信頼に基づくわけではなく、何故ならシステムはサービスプロバイダーの運用担当職員による措置、または自動化されたFM254による措置を許可し、さらにはテナントにより開始された措置の場合でさえ、悪意を抱く職員が傍受(intercepting)および侵害を行う可能性、または係る措置を偽装する可能性があるからである。
[0049]遮蔽型VMがホスト上で展開されると、図2にて例示のVM208、209および210のうち、斜線が描かれていないものによって例示される通り、ホストが暗号を解読する。典型的なシナリオにおいて、VMの仮想ハードドライブ(VHD)は、例えばワシントン州レドモンドのMicrosoft Corporationから入手可能なMicrosoftのBitLocker機構を使用して暗号化され、そして上記にて全般的に論じられている通り、仮想TPM(例:vTPM220、221および222)により、暗号化された物理的ハードドライブが物理的TPMによってキーを保護されるのと概ね同じ形で、暗号化キーを保護される。物理的事例において、ハードドライブおよび物理的TPMはいずれも同じ物理的コンピューターに属し、そして静的に有効化され、また物理的マシン上における各々の物理的コロケーションに基づいて相互に信頼し合うが、任意の物理的マシン上で展開され得る仮想マシンの場合、仮想TPMは、それ自体が暗号化されるソフトウェアおよびデータの構成である。したがって、遮蔽型VMの暗号解読はホスト230によるvTPM220、221および222の暗号解読から始まり、そしてそこから、ゲストVMが測定をvTPMへと拡大して、データ暗号解読プロセスを開始するためのキーを回収する。それを実行するため、ホストはvTPM220、221および222を解錠するためのキーを回収する必要がある。この場合、ホストは遮蔽型vTPMデータの暗号を解読して、vTPMの実行を有効化する。VMのTPM(ホストから露呈されるvTPM)はVM内のコードにより、データの暗号解読のために使用される。
[0050]本明細書において使用される「仮想ハードドライブ」という用語は、単に模範的なものに過ぎない。他の選択肢において、仮想フロッピー、仮想ソリッドステートストレージなど他の仮想ストレージデバイス、または他の仮想読み書き媒体、仮想CD ROM、DVD、または他の仮想媒体を、本明細書に記載の対象事項の態様の精神または範囲から逸脱しない範囲で代用してもよい。「仮想ストレージデバイス」という用語は、例えば上記のものを含む任意の種類の仮想ストレージデバイスを対象に含める意味で使用される。
[0051]仮想ストレージデバイスは、ハイパーバイザー215による使用を意図されるメタデータを含むか、または係るメタデータに関連付けられ得る。一部の実装において(以下にて詳述)、このメタデータは隠され、ハイパーバイザー215によってホストされる仮想マシンから見えない状態であってもよい。このビューは、ハイパーバイザー215による使用を意図されるメタデータを除外する。これらの実装において、vTPMを使用する仮想マシンは、ビュー内に存在する要素に限り暗号化または暗号解読し得る。
[0052]他の実装において(以下にて詳述)、vTPMが存在しない場合、ハイパーバイザーによる使用を意図されるメタデータを含む仮想ストレージデバイス全体が暗号化され得る。これらの実装において、キー分配サービスからキーを取得した後、ハイパーバイザーは、ハイパーバイザーによる使用を意図されるメタデータを含む仮想ストレージデバイス全体の暗号を解読し得る。
[0053]図2に戻り、システム200はパブリッククラウド内またはプライベートクラウド内でホストされ得る。クラウドは、計算、ソフトウェア、データアクセス、ストレージおよび他のリソースが何らかのネットワークに接続されたエンティティにより提供され得、使用者においてはそれらのリソースを提供する計算インフラストラクチャの所在または他の詳細を知る必要がない、という発想に基づく用語である。
[0054]テナントは自らの仮想マシンに対し、他のテナント、クラウドホスティング運用者、攻撃者または他のエンティティがアクセスを得ることを望まない場合がある。またテナントは、テナントの仮想マシンをホストしているホストが一定のポリシー(例:ホストの構成がテナントによって定義された一連の1つまたは複数の状態にあること)を満たすという保証をクラウドホスティング運用者から得ることも希望し得る。
[0055]ポリシーが満たされることを確保するため、一実装において、テナントは仮想マシン208、209および210各々に関連付けられた仮想ハードドライブ205、206および207の全部または一部が秘密キーによって暗号化されることを要求し得る。暗号化された仮想ハードドライブは、秘密キーが既知である場合に限り、非暗号化され得る。関連付けられた仮想ハードドライブが存在しないと、仮想マシンは実行不能となり得る。
[0056]ポリシーに関して、本明細書に記載の動作は、ポリシーという用語が使用されるか否かを問わず、1つまたは複数のポリシーに適用され得ることが理解されなければならない。例えば、封印されたキーは、ホストが一連の許容可能なポリシーのうちいずれかに適合する場合(あるいは一部の事例においてホストがポリシーのすべてまたは一定のサブセットに適合する場合)、封印解除され得る。同様に、ホストが一連の許容可能なポリシーのうちいずれかを満たすという証拠をハイパーバイザーが提供する場合(あるいはホストの状態がポリシーの全部または一定のサブセットを満たす場合)、キー分配サービスはvTPMにアクセスするためのキーを提供し得る。例えば、ハイパーバイザーはホストのTPMによってホスト状態のアテステーションを提供することにより、この証拠を提供し得る。一部の実施形態において、実装され得るそのようなポリシーの一例として、VSM265など、ホストにおけるセキュアなサブシステムを使用してホストが一定の証明を行うよう指定するポリシー、あるいはホストにおけるセキュアなサブシステムを使用してホストが処理を実行する能力があることを指定するポリシーが挙げられる。前述の通り、VSMに関する詳細情報が後述される。
[0057]一実装において、VHDの暗号解読に使用され得る秘密キーは、キー分配サービス235によって提供されるキーと同じであってもよい。この実装の場合、vTPM220〜222は必要とされなくてもよい。秘密キーがキー分配サービス235から取得された後、このキーはVHDの暗号解読に使用され得る。
[0058]別の実装において、ある仮想マシンのVHDの暗号を解読可能な秘密キーは、該仮想マシンに関連付けられたvTPMへと封印され得る。封印にはvTPMにおける1つまたは複数のレジスタが関係し得る。一連のレジスタは、テナントが選択するポリシーを強制できるよう選択され得る。キーがvTPMを介して封印される場合、キーの封印に使用されるレジスタがキーの封印時に使用したものと同じデータを含む場合に限り、vTPMからキーを取得し得る。
[0059]さらに、vTPMは、該vTPMについて適正なキーkを有するホストのみアクセスできる状態となるような形で保護され得る。vTPMはキーkによって保護され得、またKDSはキーkを、封印済みブロブ内のホストに送ることができる。封印済みブロブは、選択された一連のPCRレジスタが所望の値を有する場合に限りTPMが暗号解読することになるような形で構成され得る。一実装において、KDSはこれを達成するために標準化されたTPMフォーマットを使用し、ホストはTPMの封印解除動作を使用してキーkの暗号を解読するためにTPMを使用する。
[0060]封印解除動作はホスト230により、下記の通りのキー分配に基づいて実行され得る。封印解除動作が分配サービス235によって実行される場合、ホストは、TPMによって署名されたパッケージ内のTPM261によって測定されたデータを、キー分配サービス235に渡すことができる。封印解除動作がホスト230によって実行される場合、ホストは、ホスト230が(TPM261による測定結果に応じて)ポリシーを満たす状態であれば、ホスト230上に限り封印解除され得る、既に分配済みのキーを使用し得る。
[0061]すべてのレジスタが適正な状態であれば(つまり、ホスト230がポリシーを満たす状態である)、封印解除が成功し、ホスト230は仮想マシンのvTPMの暗号を解読するためのキー、またはVHDの暗号を直接解読するためのキーを提供される。この段階で仮想マシンが起動し得るが、それは仮想マシンのVHDの暗号解読に必要なキーを封印解除するためにvTPMが利用可能であるからである。起動後のvTPMの状態がテナントのポリシーに従っていれば、解錠が発生する。仮想マシンは解錠されることから、現在のvTPMの状態に基づくアテステーションの実行を求めることもできる。このアテステーションにより、仮想マシンはテナントポリシーに適合していることを他のテナントリソースに対して実証し得る。
[0062]この段階で、以下に挙げる目標が達成されたことになる。
[0063]1.仮想マシンの実行によって行われるアテステーションを通じ、テナントは、テナントが設定した仮想マシンポリシーに仮想マシンが適合している状態であることを保証される。
[0064]2.仮想マシンのVHDを暗号化するキーの封印により、テナントは、VHDの内容が修正されていないことを保証される。
[0065]3.ホストのTPMおよびアテステーションにより、テナントは、ホストに関して設定されたポリシーに適合するホスト上で仮想マシンが稼働している状態であることを保証される。
[0066]VMのコンポーネント(例:VHD、デバイスの状態、VMメモリーなど)がランタイム中に修正されることを防ぐ目的でも、コード整合性ポリシーがホスト上に実装され得る。
[0067]選択的な一実装において、封印動作を実行するキー分配サービス235に代わり、キー分配サービス235は単純に、VHDの暗号解読キーを提供し得る。例えば、ホスト230はTPMによって署名されたパッケージ内でTPM261によって測定されたデータをキー分配サービス235に渡すことができ、またキー分配サービス235はVHDの暗号解読キーをホストに提供することで応答し得る。
[0068]一実装において、キー分配サービス235はテナントによって制御され得る。別の実装において、キー分配サービス235はホスター(例:ホスト230を運用するクラウド運用者)によって制御され得る。最初の実装において、テナントはvTPM(およびそれを通じた仮想マシン)の暗号解読に必要なキーに対して完全な制御を維持するが、仮想マシンを起動可能にするためにホスターへの接続を維持する負担を負う必要が生じ得る。2番目の実装において、テナントはホスター(例:ホスター組織における別の部分)がキー分配サービス235を稼働することを許可し得る。一実装において、これはホスター組織内の少なくとも2つのエンティティがテナントのvTPMキーkにアクセスするために協力するよう要求されるような形で行うことができる。
[0069]VMM253またはその運用担当職員を信頼することを妨げる状況が原因で、VMM253は、典型的な実施形態において、遮蔽型VM208、209および210の解錠に必要なキーの提供に際し、セキュリティクリティカルな役割を有さない。しかし、それは自動化された効率的な運用にとって、またテナント向けのセルフサービス運用を有効化するために、VMM253が複数の動作を指揮することができれば、非常に有用である。本発明における、これらの要件を組み合わせる一部の実施形態の一パターンは以下のようなものである。
[0070]1.VMM253がゲストVM(例:VM208)を適切なホスト230へ、従来的な形で、キーの展開に関してはセキュリティクリティカルなことを何も行わずに展開する。VMM253は通常の管理動作を、スケジュール設定、配置やリソース配分の最適化など通常の検討事項および措置と併せて実行することができ、その際、VM208において保護される性質を背景に、有意な変化を伴わない(いくつかの軽微な拡大については後述する)。VM208は、そのメタデータの一部として、暗号化されたvTPM220を含むほか、セキュアな動作のための必要に応じて暗号化されるvTPM220向けの保護キー255も含むが、このメタデータはすべて、VMMによる特別なセキュリティ関連の取扱いを伴わずに、標準的な展開動作の一部として一体的に扱われる。
[0071]2.ホスト230は、これが遮蔽型VMであることを検出すると(すべてのVMが遮蔽されるわけではない)、KDS235にまで範囲を拡大して、vTPM220を解錠するためのキーを回収する。このリクエスト256の一環として、ホストはサービスプロバイダーのポリシーに適合する有効なホストであることを示す、ホストアテステーションサービス(HAS)258から提供されるアテステーション証明書257を含む。例えば、ホストは、ホストがセキュアなサブシステムを使用して証明書をリクエストしたことを示す、ホストアテステーション証明書を提供し得る。KDS235は、アテステーション証明書257がポリシー要件を満たすかどうか検証する。KDS235は次いで、これはKDSのキーで暗号化されたvTPMマスターキーの暗号を解読し、それをホストにおける1つまたは複数のパブリックキーへと再暗号化し、それをホスト上の適切なセキュリティソフトウェアへ安全に転送する。これはホストのパブリックキーか、またはホスト内のTEEであってもよい。ホストは提供されたvTPMマスターキーを使用してvTPMを解錠し、そしてvTPMをサービスとしてゲストVMに提供し、ゲストVMはvTPMから、遮蔽型VM208の暗号解読プロセスの開始に必要なキーを回収し得る。暗号学的に信頼に値するメッセージが、セキュリティインフラストラクチャから、動作の成否を確認する形で送信される。これらの工程のいずれにおいてもVMM253は関係しない。
[0072]3.セキュリティクリティカルな、VM208の暗号解読プロセスの終了段階で、VMM253は通常の展開および構成動作を継続する。VMM253は動作の成否を通知され、これは通常動作の場合に有用な情報であり、VMM253によって他のあらゆる通知と同様に扱われるが、VMM253は信頼に値しないことから、慎重なテナントであればセキュアなメッセージの受信も確認することになる。
[0073]この説明から明らかとなる通り、VMM253は、ホストアテステーションやキー分配など、セキュリティクリティカルな動作には参加しない。VMM253は自動化された指揮を提供するが、セキュリティはセキュリティインフラストラクチャによって保護され、またVMM253の動作に対する脆弱性はない。
[0074]本発明の一部の実施形態の下では、セキュリティクリティカルな機能とは切り離されるが係る機能と協調的である管理および自動化のパターンが、展開以外のVM動作と、VMに該当しない動作にも適用され得る。係るパターンは、VMが稼働する「ファブリック」、一連のサーバー、ストレージ、ネットワークおよび管理システムの管理にも適用され得る。
他のVM動作へのパターンの適用
[0075]VM208のライフサイクルの間、VMM253は展開以外の多数の動作を指揮する。同じ信頼関係、そして同じ運用およびキー管理のパターンが、場合によっては特別な検討事項を伴いつつ、これらのシナリオすべてにわたり横断的に当てはまる。
ホストからストレージへのVMの移行
[0076]このシナリオは上記の展開シナリオの逆である。本発明における、これらの要件を組み合わせる一部の実施形態の一パターンは以下の要領で実装され得る。
[0077]1.VMM253は従来的な決定を下し、そして従来的な命令をホストVM231へ送り、VM208を一時停止または停止させる。
[0078]2.ホスト230は、この動作中にVM208を保護するために必要な措置を行う。これの例として、VM208を表わすメタデータなど他のVMアーチファクト、プロセッサーの状態、メモリーおよび仮想メモリーファイルの内容の暗号化が挙げられ、こうした他のアーチファクトにも同じキー転送機構が使用される。これが達成され得る方法の一例に関する詳細については、下記の「仮想マシン保証」と題するセクションを参照のこと。
[0079]3.この保護プロセスが完了すると、ホスト230はVM208を一時停止または停止し、併せてvTPM220によってVM208のデータがすべて暗号化および必要なキーが保護され、次いでvTPM220が暗号化および保護され、VMM253は通常の保存プロセスおよび保存された内容の通常管理に進む。例えば、VMM253は遮蔽型VM208をストレージシステム208に保存させることができる。
[0080]VM展開プロセス同様、VMM253はセキュリティクリティカルな動作から完全に外され、つまり、VMM253は暗号化プロセスおよびキー交換に参加しないだけでなく、保存するデータが暗号化により保護され、またVM208の保護成功に至る証明過程にも参加しない。
別のホストへのVMの移行
[0081]最新の仮想化プラットフォームは、あるホストから別のホストへVMを移行させる様々な形態に対応し、つまり、ライブ移行はVMの実行を中断なく維持する。非ライブ移行にはサービス中断が関係するが、環境要件の厳格さは低くなる。非ライブ移行は、仮想化プラットフォーム、ならびにストレージシステムおよびネットワークシステムの性質に基づいて、様々な形で行うことができる。VMM253は、任意のファブリック内で実行可能な移行形態を理解し、そして係る措置の開始および指揮の方法を知る。遮蔽型VMの移行の場合、本発明における、これらの要件を組み合わせる一部の実施形態の一パターンは以下のようなものである。
[0082]1.VMM253は移行の種類および行先に関する従来的な決定を下した後、ソースホスト230に対し、選択されたターゲットホスト259への移行開始を指示する。
[0083]2.ソースホスト230は、VM208とそのvTPM220の暗号化および必要なキー交換を開始するための、KDS235とのセキュアな会話を行い、そしてターゲットホスト259はKDS235に対して、VM208のvTPM220の解錠キーを取得するためのセキュアなリクエストを行う。VHD208はVHD205自体の暗号化を担当するだけでなく、実行中のプロセスやページファイルのメモリー状態など他のVMアーチファクトを確保することができ、また同じキー転送機構を、VM、プロセッサー状態およびメモリーや仮想メモリーファイルの内容を記述するメタデータなど他のアーチファクトにも使用することができ、また同じキー転送機構がこれら他のアーチファクトにも使用される。
[0084]3.キーが一致する状態になると、ホスト230および259は移行を進める準備が整っているという信号を出し、そしてVMM253は実行予定の移行の種類について、ホスト230および259へ従来的なコマンドを送る。一部の実施形態において、VMM253は送信元ホストに命令を与え、該ホストが他を担当する結果、VMMは移行の細かい部分には関与しないが、移行コードオーナーと共に二重チェックを行うことができる。上記は段階的プロセスを暗に意味する一方、ライブ移行など一部の移行技法では暗号化と移行が一体的に動作し、様々な要素を漸進的に暗号化する。したがって、本明細書に記載の通り、動作を逐次的に稼働する別々の工程に分けることはできない。例えば、当業者にとっては周知の標準的な手順を使用して、移行手順による要求に応じて動作のセグメント単位で暗号化と移行が行われるよう、動作を交互配置し得る。したがって、本発明の実施形態の範囲内で移行を達成するために、様々な選択肢を埋め込むことができる。
[0085]上記の通り、VMMの指揮に対して生じる変化は最小限であり、またVMM253はいかなるセキュリティクリティカルなワークフローにも参加しない。成否に関するセキュアな通知はセキュアなインフラストラクチャによって行われる一方、VMM253は従来的な通知を受け取り、それらに対して従来的な形で応答する。
クラスター内でのフェイルオーバー
[0086]特殊な移行事例は、クラスター内でのフェイルオーバーである。あるコンポーネントが障害になった場合にサービスが迅速にトラフィックを正常なシステムへと切り替えることを可能にするよう、保存と管理の双方が設定される。産業内で周知のクラスター化形態が多数存在する。
[0087]アプリケーションクラスターを構成するVMが遮蔽される場合、フェイルオーバーが発生すると、キーはターゲットシステム上で利用可能となる。すべてのシステムがアクティブである場合、原初の展開の時点でキーがホストへ準備され、またフェイルオーバー中に特別な処理は要求されない。しかし、アクティブ/パッシブ構成の場合、複数の選択肢が用意される。例えば、そのようなフェイルオーバーを移行として処理することができ、ターゲットホスト259は上記と同種のキー提供リクエストを行うが、フェイルオーバー時点でのキー分配など導入活動は、可用性と応答性とを低減し得る。一部の実装において、キーは、上記の展開プロセスを使用して、アクティブであるか否かを問わず、クラスター内の該当するホストすべてに対して、VMと一緒に準備される。これによりクラスター管理ソフトウェアは通常の管理技法または制御技法を用いて、VMM253による関与の有無を問わず、フェイルオーバー動作を実行することができ、VM保護実行方法には影響を及ぼさない。この配列は、上記の展開シナリオや移行シナリオと同じ形で、VMをVMM253およびクラスター管理ソフトウェアの双方から保護する。
別のデータセンターへの移行
[0088]テナントが業務上またはコンプライアンス上の理由から、あるいは業務継続または災害復旧を目的に、別の場所へ移動することを希望する場合、別のデータセンターへの移行が発生し得る。このプロセスはVMM253または他の管理システムによって、従来的な事例における想定と同じ形で行われるが、あるデータセンターから他のデータセンターへのセキュアなキー交換のための要件は、上記の移行事例よりも複雑になり得る。
[0089]・2つのデータセンターがHAS258およびKDS235などセキュアなホスティングサービスを共有する場合、データセンター横断的移行は上記の移行事例と同じ形で管理動作とセキュリティ動作とを組み合わせるが、アーチファクトの物理的移行は、長距離転送向けに一般的に使用されるような他の技法を使用し得る。
[0090]・2つのデータセンターが別々のセキュアなホスティングサービスを有する場合、2つのサービスは信頼される仕組みを使用してキー交換を行う。1つの解決策は、セキュアな複数のホスティングサービス間に連合または他の信頼関係を確立させ、それらが直接キー交換を行うことができるようにし、場合によっては産業標準プロトコルを活用することである。
[0091]・2つのセキュアなホスティングサービスが信頼関係を有さない場合、テナントまたは補助的サービスはVM208およびそれに該当するキーを回収し、そしてそれらを、後述する通り、最初のVMがデータセンターへ転送された際の形に似たプロセスでターゲットデータセンターへ転送する。
[0092]移行が2つの別々のデータセンター建物間で発生するか否か、あるいは物理的距離の度合いに焦点を当てるよりむしろ、実施形態においてはソースホストおよびターゲットホストが1つのセキュアなホスティングサービスを共有するか、あるいは信頼関係が確立された別々のセキュアなホスティングサービスを有するか、あるいはそのような信頼関係を伴わない別々のホスティングサービスを有するかに焦点を当てる。これらの変形すべての例は、単一のデータセンター内の複数セクション間、単一のサービスプロバイダーが運用する複数のデータセンター間、複数のサービスプロバイダー間、またはテナントとサービスプロバイダーとの間に存在し得る。これらすべての事例において、VMM253とセキュアなホスティングサービスとの間における別々であるが協力する関係を表わす、本発明の実施形態について例示されるパターンは引き続き有効であり、キー交換および物理的転送の詳細だけが異なる。
テナントがプライベートアーチファクトに基づいて遮蔽型VMを作成する場合
[0093]テナントは普通の非保護アーチファクトから遮蔽型VMを作成できるが、テナントが最初から、プライベートコンピューティング環境内の適切なVM作成プロセスを経由し、このプライベート環境内でVMおよびそのVHDをMicrosoft BitLockerなど標準的なツールを使用して暗号化することによって、アーチファクトを保護することが可能であれば、有用である。その場合、これらの保護されたアーチファクトを、従来的なファイル転送機構を使用してサービスプロバイダーのデータデンターへ転送し、VMストレージライブラリーに保存し、そしてVMM253を使用してVMとして開始し得る。遮蔽型VMを開始可能にするため、テナントの保護キーはサービスプロバイダーへ転送され、KDS235に提供される。一実施形態において、テナントはサービスプロバイダーのKDSパブリックキーを、アカウント準備プロセスの間に、または別の適切な時点で、セキュアな転送を使用して提供される。VM保護キーはvTPMの保護ストレージ階層内に保存され、次いでこの階層がKDSパブリックキーによって保護される。サービスプロバイダーへの転送後、結果的に保護されたこの遮蔽型VMパッケージをKDSによって暗号解読することができ、次いで本明細書に記載の技法を使用して処理し得る。
テナントがテンプレートに基づいて遮蔽型VMを作成する場合
[0094]クラウドコンピューティングにおいては、サービスプロバイダー、独立系ソフトウェアベンダー(ISV)、システムインテグレーターまたは他のサードパーティプロバイダーから提供される一連のテンプレートを、サービスプロバイダーが用意するのが一般的である。そのようなテンプレートは完全または部分的なVMの定義であるが、まだテナントの要件に合わせて調整された状態ではなく、またアカウント識別情報、管理者パスワード、ソフトウェアまたは他のセンシティブデータもまだ準備されていない状態である。そのようなシステムの一般化およびその後におけるシステムの特殊化は、Microsoft社のsysprepというユーティリティまたは他の適切なユーティリティを、起動管理ツールなど他のツールと組み合わせて使用することによって行うことができる。
[0095]テナントがそのようなテンプレートから遮蔽型VMを作成することが可能であれば、有用である。これを行う場合、後でVMに攻撃を仕掛けることを可能にするマルウェアまたは構成をサービスプロバイダーの職員が挿入することによってテンプレートが不正操作された状態になっていないことの検証など、テナントがテンプレートの整合性を検証することが可能であれば、有用である。VHDおよび他のVMアーチファクトの整合性は、例えばデジタル署名を通じて検証することができ、またテナントは遮蔽型VMを作成するためのリクエストの中で、VMコンポーネントの整合性を検証するための信頼できる手段を指定し得る。
[0096]他のシナリオでは、テンプレートはソフトウェア、データまたは外部サービス接続用認証情報など秘密情報を含む場合があり、暗号化を通じてテンプレートを保護することが有用である。しかし、この暗号化はテンプレートの作者に帰属するキーを使用して行われることから、仮想ストレージデバイスは、VM特有の、また結果的にテナント特有のキーを使用して再施錠される(例:暗号解除および異なるキーでの再暗号化)。この暗号解読および異なるキーでの再暗号化は、完全な暗号解読/再暗号化を伴わない1つのキーの変更向けのハードウェアサポートの使用など、他の再施錠シナリオに置き換えることができる。
[0097]テンプレートリソースの妥当性確認および遮蔽型VMの作成のプロセス、またはVM VHDを作成するためのテンプレートVHDの暗号解読および再暗号化のプロセスにおいて、情報は1つの連続的な流れで処理されるが、時を問わず非暗号化形態で保存されるわけではない。このプロセスは、データセンター内の何らかのシステム上で動作するセキュアプロセスによって実行される。一部の実施形態において、セキュアプロセスは仮想化ホスト上で動作し、また一部の実施形態においてこれは遮蔽VM自体の内部で発生し得る。
[0098]遮蔽型VMをテンプレートから作成する場合、各VMが固有のキーによって保護されるのが一般的であるが、妥当性確認および暗号化、または再暗号化の工程は一定量の時間を要し、また大規模アプリケーションを作成する場合にはこの遅延をVMの各々について回避することが、特に増大した負荷に対する対応策としてVMを自動的に準備する場合に有用となり得る。VMを他のテナントおよびサービスプロバイダーから保護したいが、各VMについて遅延を回避したい場合、妥当性確認および暗号化、または妥当性確認および再暗号化の工程を、テンプレートを特殊化することなく実行して、テナント特有のキーで暗号化されたテンプレートを作成することができ、その結果、遮蔽型VMをこのテンプレートから、個々の遮蔽型VMについて時間の掛かる暗号化作業を要せず作成することが可能となる。
[0099]このVMおよびテナントがVMに注入する任意の秘密をサービスプロバイダー職員から保護するため、VMMとセキュアインフラストラクチャとの間の関係は、本発明の実施形態の別の部分で使用されるパターンに従い、つまり、テナントは作成に必要な情報を含むタスク定義を作成し、このタスク定義をデジタル署名、暗号化または署名と暗号化の組み合わせを通じて保護し、そしてこの保護されたタスク定義は暗号化または改竄が不可能なVMM253へ転送され、保護されたタスク定義は、本発明の実施形態の別の部分で使用される形でタスク定義を解錠するためのキーをKDS235にリクエストするセキュアプロセスへ転送され、そして中央での妥当性確認および暗号化のタスクまたは暗号解読および暗号化のタスクはセキュアプロセスによって、VMM253による割り込みまたは修正が不可能なアトミックタスクとして実行される。VMM253はセキュアな作成の前後に他の有用なタスクを従来的な形で行い、例としてテナントのアカウントの検証および課金、遮蔽型VMの保存、VMの展開、そして動作結果のテナントへの通知が挙げられる。タスク完了を確認するメッセージは信頼に値し、何故ならそれはセキュアプロセスに対してのみ既知である情報を含み、またサービスプロバイダーのプライベートキーを根源とする証明書を使用してセキュアプロセスによってデジタル署名され、その結果、サービスプロバイダーの職員による不正操作を防止するからである。
[00100]テナントはプライベートクラウド内または別のサービスプロバイダーにて実行するための遮蔽型VMの展開および回収を希望する場合がある。セキュアなホスティングサービスでVMを保護するため、同様のホスティングファブリックを伴うデータセンターをテナントが有する場合、上記のようなデータセンター内転送が使用され得る。サービスプロバイダーとテナントが信頼関係を確立している場合、転送は上記の通り進行し得る。信頼関係が確立していない場合、テナントはVMが通常の形で暗号化されることをリクエストすることができ、vTPMマスターキーはテナントに帰属するキーに対して暗号化され、これによりVMを従来的なデータ転送機構で転送し、テナントに開いてもらうことが可能となる。このアプローチは、VMとテナントのパブリックキーとの間の関連性がセキュアかつ不正操作防止の状態にあり、攻撃者がテナントに成りすますことを防ぎ、別のパブリックキーを代用してvTPMマスターキーを回収するという状況で実装される。この関連性を暗号化により保護するため、複数の既知の技法が存在しており、つまり、テナントのパブリックキーを、vTPMによって暗号化および保護されるVMメタデータ内に含め、その結果、KDSまたは承認されたホストからアクセス可能となるが、攻撃者からはアクセス不能とすることができ、あるいはテナントIDを同様の形で保護することができ、テナントIDからテナントのパブリックキーを識別するための検索表がKDSに対して利用可能となる。一実装において、VMメタデータはテナントのパブリックキーに対して暗号化されたvTPMマスターキーを含み、これによりVMを、KDSまたは他のセキュリティ関連サービスを関与させることなく、単純なデータ転送機構を使用してテナントへ転送することが可能となる。
[00101]本発明の実施形態では管理動作とセキュリティ動作とを、従来的な転送技法を使用可能な形で分離し、VMMまたは他のツールに指揮させ、さらには保存媒体の物理的転送を含む一方、VMの内容およびキーはセキュリティ機構によって保護される。
補助的技法
[00102]本発明の実施形態では運用向けに多数の補助的活動を実装し、これは自動化の推進およびセキュアな基礎の形成の双方が目的である。本発明の一部の実施形態は、効果的な保護のために必要な規律のあるプロセスにおいてサービスプロバイダーおよびテナントを支援するための、様々な補助的活動をも含む。
ホストの準備、構成およびアテステーション
[00103]VMのセキュリティはホストの整合性に依存し、ホストは「ルートキット」などマルウェアや、脆弱性を伴う旧バージョンのソフトウェアを伴わない、適正なソフトウェアのみ実行すべきであり、また適正な構成設定と適正なポリシーを有するべきである。これらのホストは典型的に従来的なファブリック管理システム(FM254など)と併せて準備および設定され、また本発明の一部の実施形態における脅威モデルの下ではFM254が信頼コンピューティング基盤の要素ではなく、その理由はVMM253について論じられた理由と同じであり、つまり、FM254は大規模かつ複雑なシステムで、テナントはFM254の運用担当職員にまで信頼を拡大することを望まない。本発明の一部の実施形態では既存のFM254を特別なツールまたは技法に置き換えることを必要とせず、つまり、そのような変更は、既存のプロセスの基礎を既存のツールに置くサービスプロバイダーのIT担当職員にとって面倒と考えられ、またいかなる場合も手に余るほどの既存のツールやインターフェースの使用を妨げることは難題と思われる。こうした理由から、本発明の一部の実施形態は、誤った構成または侵害の防止を試みることを基本とするものではない。むしろ、これらの実施形態は、ホストの誤設定または侵害の検出、そのような誤設定または侵害されたホストがホスティングファブリックに参加する状況の排除、そして侵害されない正常な動作の確認に基づく。
[00104]ホスト230が遮蔽型VM208を受け取り、vTPMキーを回収するためのリクエスト256をKDS235に対して行う場合、ホスト230は一定のポリシーに適合することを実証するアテステーション証明書257を含む。例えば、アテステーション証明書は、ホスト230がファブリックの既知の構成要素であり、適正なソフトウェアを実行中であり、そして適正なセキュリティ関連ポリシーが有効であることを示し得る。システムは一般的に、独自の健全性を信頼できる形でアテステーションする(attest)わけではない。このアテステーション証明書を取得するため、ホスト230はホストアテステーションサービス(HAS)に対してリクエスト260を行う。このリクエストは、ホストの整合性に対する信頼に関連する様々な断片的情報を含み得る。一実装において、リクエストは以下のうち1つまたは複数などの情報を含む。
[00105]・ホスト230の物理的な信頼プラットフォームモジュール(TPM)261から派生する、是認キーなどのキー。このキーは、サーバー251がデータセンターに納入された時点で準備された、既知のサーバーキーのリストと比較される。サーバーキーのリストは、サーバー納入と同時に安全に納入されるマニフェストに記載される。別の識別方法も可能である。
[00106]・統一拡張ファームウェアインターフェース(UEFI)モジュール262または他の起動ソフトウェアにより提供され、TPM261により署名された通りの、起動プロセスに含まれるソフトウェアの測定結果。
[00107]・リクエストがホストのセキュアなソフトウェアサブシステムに由来するものであることを特定する証明書。そのようなセキュアなサブシステムを実装するための複数の方法が、当業者にとっては既知である。一実施形態において、このサブシステムをホストVMのカーネル内で稼働する機能として実装することができる。別の実施形態ではそれをハイパーバイザー内で稼働させることができる。他の実施形態ではそれを、プロセッサーのメモリーマッピング能力を使用するハイパーバイザーによって強制される別個のアドレス空間として実装することができる。他の実施形態ではそれを、プロセッサーによって強制される別個の実行領域として実装することができる(ARMアーキテクチャーのTrustZone、またはIntel社が記述した新たなSGX能力など)。これらの異なる実装が、暗号化動作、認証情報保存、コードまたはデータの整合性の妥当性確認、そして秘密保護を実行する能力など、類似する機能性を、vTPMの場合と同様の形で提供し得る。それらは提供するセキュリティの強度が異なっていてもよい。本発明の実施形態は、セキュリティ強度ではなく機能性に依存することから、様々な実施形態にまたがって同等に動作し得る。
[00108]・ハイパーバイザー強制型コード整合性(HCVI)263およびAppLockerを含む、ホストのコード整合性ポリシーに関する署名証明書(これらはVMをホストによる侵入から保護する)。あるいは、実施形態においてはホストVMを有していない他の仮想化配列も認識し得る。例えば、HVCIおよびAppLocker(ワシントン州レドモンドのMicrosoft Corporation製)は、ホストのコード整合性妥当性確認の例である。他の選択肢も代替的に使用することができる。
[00109]・HAS258がホストとのセキュアな通信を確率することを可能にする、セキュアなソフトウェアコンポーネントのパブリックキー。
[00110]他の実装または構成において、この情報の一部を省略してもよく、例えばある企業が自社のデータセンターはセキュアな状態であると確信し、侵害を防止する強固なプロセスを整備している場合がそうである。実際、それをすべて省略し、本発明の実施形態をアテステーション工程抜きで運用することができる。特定のデータセンターにおけるアテステーション要件は、アテステーションポリシーによって定義される。
[00111]他の実施形態において、他のポリシーの裏付けとして他の情報を追加することができ、例として、データ支配権規制を遵守するためのホストの地理的位置に関する検証可能な証拠、またはデータセンター内のロックされたケージ内でのホストの配置に関する検証可能な証拠、または物理的サーバーおよびそれらの供給網の来歴におけるコンポーネントの検証可能な識別情報、またはホストがセキュアなネットワークに接続されている旨の検証可能な追認などが挙げられる。産業および政府機関はそのような情報を暗号学的に強固な形で提供するための技法を実装し、そのような情報はホスト上で入手可能であればアテステーション工程内で使用され得る。あるいは、サービスプロバイダーはこの種の、サービスプロバイダーの公的証明書と併せてデジタル署名された情報、または暗号学的にTPMキーに基づく証明書と併せて署名された情報、またはその両方に対してアサートするステートメントを配置することができ、そのようなステートメントは、たとえ技術的に強固でなくても規制遵守目的には十分となり得る。
[00112]HAS258はこの情報を、アテステーションポリシー264における仕様と比較し、ポリシー264と合致すれば、HAS258による署名を経たアテステーション証明書257を返す。ホスト情報がポリシー264に適合せず、したがってホストが誤設定または侵害された状態である場合、アテステーションサービスがこれを検出し、アテステーション証明書257の提供を拒否する、つまり、ホスト230はvTPM220の解錠および結果的なVM208の解錠に必要なキー255を受け取らない。
[00113]したがって、本発明の実施形態は、ホストの準備および設定のための標準的なFMツーリングを可能にする。ホストの整合性はHAS258によって監視され、アテステーション証明書257によって追認される。このアテステーション証明書257はKDS235により、VMM253の制御下での遮蔽型VMの展開および移行を可能にする目的で使用され、またVMM253とFM254の双方が成否に関する通知を受け、これらの成果を標準的な管理ポリシーおよび手順に従って扱い、例えば、ポリシー264に適合する別のホスト上にVM208を配置することによって、ホストアテステーション失敗に対応する。
[00114]FM254およびVMM253は他にも、アテステーション失敗や侵害の可能性を発見した場合にホスト230を隔離または是正するための措置を講じることができる。例えば、サービスプロバイダーは、アテステーションに合格するが後で不合格となると予想された既知のホストへの対策を決定するためのポリシーを有する場合があり、つまり、慎重なアプローチとしては、ホストを「検疫」して、ネットワークまたはホスティングファブリックへの接続許可を拒否することが挙げられ、より実用的なアプローチとして考えられるのは、ホストをホスティングから除外するが、トラブルシューティングおよび移行のためにネットワーク内に残しておくことである。
[00115]したがって、FM254とセキュアなホスティングサービスとの間での責任分離は、VMM253とセキュアなホスティングサービスとの間での分離と同じ形で作用して同様の便益をもたらし、つまり、FM254はファブリック管理の自動化および指揮を提供して費用効率、速度および信頼性に貢献するが、ファブリックのセキュリティクリティカルな態様はセキュアなホスティングサービスによって提供され、FM254または運用資格を有する職員には曝されない。
遮蔽型VMに全面的に対応するVMMに加えられる変更
[00116]VMM253を運用する場合、遮蔽型VMの運用を補助するために既に存在するVMMからの大幅な変更は必要ないが、テナントおよびサービスプロバイダーによる使用を補助するために軽微な変更が導入され得る。例えば、セキュアなホスティングプロセスは新たな種類の障害、例えばホストのアテステーション失敗や、その結果としての不合格ホストへのVMの展開または移行、といった障害の可能性をもたらす。他の障害モードの場合と同様に、VMM253はそのような障害メッセージを理解すべきであり、また別の展開用ホストの発見、サービスプロバイダー職員に是正を求めるための障害報告、自動是正が不可能な場合あるいはサービス悪化またはサービスレベル合意の遵守不履行が発生した場合におけるテナントへの障害通知(レポートに記載の事象を含む)、そして不合格ホストが是正されるまでの先々の措置からの除外など、是正措置を講じるべきである。
[00117]VMM253は、ユーザーインターフェースおよびプログラミングインターフェースにおいて、VMのアップローディング、作成および回収ワークフローにおける保護を有効化するためのオプションを提示することもできる。またVMM253は、サービスプロバイダーが遮蔽型VMに異なる価格を付け、同様の業務事案を統合することを可能にする機能を提供し得る。
[00118]本発明の一部の実施形態では、VMの保護が非信頼VMMではなくセキュアなホスティングインフラストラクチャに依存することから、これらの有用な機能はセキュリティクリティカルではない。VMMまたはそのデータベースが侵害されると、データセンター内の運用効率およびサービスレベルが阻害されるが、VMのセキュリティは損なわれない。
セキュリティ対応型ホスト上での遮蔽型VMの配置
[00119]典型的なデータセンターにおいて、セキュアな運用に必要なハードウェアやオペレーティングシステムを備えた複数のホストが、そのような能力のない複数の従来的ホストと共存し得る。そのような混合環境は、データセンターがハードウェア更新サイクルを経るにつれ、複数年にわたり存在し得る。当初は、セキュリティ対応型ホストは希少なリソースとなり得る。
[00120]同様の遷移期間中、一部のVMが遮蔽されるが他は遮蔽されない場合があり、何故ならそれらのワークロードが保護の労力または費用を正当化するほど十分にセンシティブでないと見なされる、あるいはテナントがすべてのワークロードを保護するためのプロセスまたはポリシー遷移をまだ経ていないからである。
[00121]そのような不均一なホストおよび不均一なワークロードの環境にある場合、VMM253は保護されたワークロードのセキュリティ対応型ホスト、例えばホスト230への配置を、VM208の始動失敗が予想される絶望的な配置を避けるよう管理する必要がある。加えて、非保護ワークロードは、サービスプロバイダーのリソース活用の最適化と、望ましい場合は保護対象実行についてサービスプロバイダーがより高い価格を課金することを可能にすることを目的に、従来的ホスト上に優先的に配置され得る。典型的なVMMは、最適なリソース活用または他の事業目標のための配置指針となる、ホストおよび使用ポリシーの特徴と併せて、広範なリソース要件と合致する。その特徴リストに保護能力を加え、それを配置決定に含めることは、簡単である。VMM253はこれらの属性を、データセンター内に所有するホスト目録内で維持する。実際、これは保護能力を有するホストを識別するための発見機構が関係する。この目録はHAS258と連動すべきであり、つまり、ホストはハードウェア能力を有することが既知であり得るが、どこかの段階で場合によっては侵害されてしまったことが原因でアテステーションプロセスに不合格となると、保護対応型ホストのリストから一時的に除外される。
[00122]しかし、VMM253およびその運用担当職員が信頼されないことから、この配置は、管理者特権を有するサービスプロバイダー職員がVMM253内のホスト目録データベースを改竄する能力、または配置決定アルゴリズムを侵害する能力を有する可能性があるとしても、保護を保全する形で行われる。自動化された目録管理および配置アルゴリズムは、データセンターにおける信頼性と効率性のある運用に重要な役割を果たすが、ワークロード保護において果たす役割はない。上記の説明から、これは以下のように対処されることが明らかとなるはずである:VMM253が侵害され、無効なホストに遮蔽型VMを展開するよう誘導される場合、該ホストはKDSと共にキー分配プロセスに参加できなくなり、また遮蔽型VMの解錠および起動もできなくなるため、テナントのデータは全く侵害されない。
ホストにおけるポリシー変更への対応
[00123]様々な時点で、ホスト上のセキュリティポリシー、例えばコード整合性(CI)妥当性確認ポリシー(本明細書では時々、ハイパーバイザー強制型コード整合性(HVCI)ポリシーとも言う)の変更が必要となる。例えば、FM254によって管理される通りのソフトウェア更新を考察してみると、サービスプロバイダーは、あるドライバーの旧バージョンがセキュリティ脆弱性を含むと判明したために、新バージョンがリリースされているという通知を受けている場合がある。この場合、許可ソフトウェアのリストに新バージョンが追加されるべきであり、旧バージョンは不許可ソフトウェアのリストに追加されるべきである。これらの事例において重要となり得るのは、ドライバーの更新と同時にCIポリシーも更新されることであり、つまり、ポリシーが更新済みとなる前にドライバーがまず更新されると、ドライバーは実行を許可されず、システムは機能不全となり得る。このプロセスが適正に管理されないと、広範なソフトウェア更新によりデータセンター全体が無効化されるおそれがある。こうした理由から、ソフトウェアおよびポリシーの更新が調整される。一実装において、ポリシー更新はソフトウェア更新(「パッチ」)としてパッケージ化および配布され、優先関係は、従来的なパッチ処理ソフトウェアがソフトウェア更新に先立ってポリシー更新を展開し、そして最終的に、ポリシー264およびドライバーの更新の有効化に必要な再起動をトリガーするよう、定義される。既存のパッチ処理ソフトウェアに依拠することにより、FMは、広範なサービス割り込みを回避するための一連のホストにまたがる「巡回式更新」の指揮、あるいは各ホストの更新および再起動に先立つ別のホストへのVMのライブ移行など、既存の自動化を活用することができる。
[00124]しかし、調整される変更がもう1つあり、つまり、HAS258は適正なCIポリシーが有効であることの妥当性確認を行い、その結果、再び、アテステーションポリシー264は更新されず、更新後のCIポリシーの認識および許容に至ると、サーバー251はアテステーションに合格せず、ファブリックへの参加を許可されない。プロセスは、受け取った情報に基づいて、パッチおよび更新後のCIポリシーの定義から始まる。新たなCIポリシーが、アテステーションポリシー264に追加される。その後、何らかの制御された順序で、パッチが複数のサーバーへと展開適用される。そして最終的に、すべてのサーバーの更新が完了し、HAS258が旧CIポリシーに準ずるアテステーションリクエストを受け取らなくなると、旧CIポリシーはアテステーションポリシー264から削除することができる。このプロセスは、サービスプロバイダーのIT担当職員の制御下に置かれ、これらの職員が更新を承認し、適用スケジュールを設定する。この技術は、秩序正しいセキュアなプロセスを支援するが、職員の管理統制に関する要件を排除するものではない。
[00125]本発明の一部の実施形態において、従来的なFMツールでのこれらの変更の管理は、セキュリティインフラストラクチャによって保証されるデータセンターのセキュリティから切り離される。円滑かつ効率的な運用のためには協力が有益であるが、管理システムの侵害がVMを侵害に曝すわけではない。
セキュリティ関連の状態および障害の報告
[00126]本発明の一部の実施形態において、VMM253はセキュリティクリティカルな動作から完全に外れ、つまり、VMM253は暗号化プロセスおよびキー交換に参加しないだけではない。VMM253は遮蔽型VM208の保護成功の証明にも参加しない。保護された展開でも、多数のセキュリティ関連の理由により障害に陥る可能性があり、例えば、ホスト230は侵害されてしまったためにアテステーションに失敗する可能性がある、あるいはポリシー264が後に変更され、元来の展開となったことから、HAS258またはKDS235が侵害されてしまった、または障害に陥ってしまった可能性がある。VMM253はこの障害に関する通知を受け取り、そしてそれを、従来的な非セキュリティ関連の障害を扱う場合と同様に報告する。しかしVMM253はセキュリティ関連障害を報告するに当たり信頼されず、何故なら悪意のあるVMM管理者が、たとえ侵害が原因で保護が失敗していたとしても、成功メッセージを偽装するおそれがあるからである。したがって、VMM253は日々の運用に有用なベストエフォート型レポートを作成する一方、セキュアなホスティングサービスも障害事象通知を送信し、これが信頼に値する事象報告システムに送られる。この追認メッセージは暗号学的に強固で、ホスト230およびKDS235のセキュリティインフラストラクチャによって署名される。
複数のIT担当職員間での特権の分離
[00127]本発明の一部の実施形態では一般的な管理システム(VMM253およびFM254)を、データセンターのセキュリティにおけるいかなる役割からも除外する一方、HAS258およびKDS235はむしろ、一部の実施形態において、重要な役割を担う。特に、HAS258は、例示される一部の例において、ホストに対する信頼の源泉であり、つまり、アテステーションポリシーが侵害され、悪意のあるソフトウェアがホスト上で許可されると、セキュリティモデル全体が失敗し得る。
[00128]したがって、HAS258およびKDS235は侵害から保護される。対処可能な脅威のうち1つは、ホスト、VMM253またはFM254へのアクセス権を有する悪意のある管理者の脅威であることから、HAS258およびKDS235についての管理者特権は、一般的なホストまたはファブリックの管理者の特権から切り離された状態に保たれる。具体的に、HAS258およびKDS235は、VMM253またはFM254によって管理されない。これらがホストと同じドメインまたはフォレストに加えられないことも望ましい。
[00129]この特権分離は、攻撃を成功させるには正規の管理者と、アテステーションポリシーを担当する特別な、高い特権を有する管理者との間での結託が必要であるという状況の確保に役立つ。
[00130]したがって、総体的なシステムアーキテクチャー、具体的にはHAS258およびKDS235は、一方でのHAS258およびKDS235と、他方でのホスト、FM254およびVMM253との間で、共通する管理を一切必要としないように構成され得る。それらは同じドメインまたはフォレストに属する必要はない。
[00131]本発明の一部の実施形態は、これらの特権が分離された状態に保たれることを必ずしも確保するわけではなく、むしろサービスプロバイダーのプロセスと規律に委ねる一方、それでもなお、実施形態は特にそのような特権分離を可能にするよう構成され得る。
拡大
[00132]本発明の実施形態は、付加的能力を提供する形で、あるいは付加的な保護要件または適合要件を満たす形で拡大され得る。
テナント特有のKDSマスターキー
[00133]一実装において、KDS235はvTPMキーを、KDS235に属するマスターキーで暗号化することによって保護する。しかし、保護および隔離を強化するため、または規制遵守要件を満たすために、vTPMキーをテナント毎に別々のマスターキーで暗号化することもできる。KDS235のマスターキーはTPMによって保護され得るが、ハードウェアセキュリティモジュール(HSM)内にテナント特有のキーを保存することが望ましい場合もあり、これはテナントの環境とサービスプロバイダーのHSMとの間でのキーのセキュアな相互交換を提供するからであると共に、他にも便益がある中で特に、テナント主導によるマスターキーの除去に役立つからである。
[00134]ファブリックがテナント特有のマスターキーを使用または対応する場合、本発明の一部の実施形態がこれに適応および対応し、セキュリティクリティカルな機能からの管理自動化の分離を提供する。VMM253、FM254、HAS258、KDS235またはホストの間における相互作用を大幅に変える必要はない。運用上の便宜のため、VMM253は、報告および通知におけるテナント識別情報の反映など、軽微な運用支援機能を提供すべきであり、またテナントIDの不一致など、付加的な障害条件を認識し、対処すべきである。
[00135]実施形態において、上記のVM動作ではHSMの使用に対応する1つの大幅な変更を使用し、つまり、VM208およびそのメタデータはホスト230が非暗号化形態で利用可能なテナントIDを含むことから、ホストはKDS235へ送る解錠リクエストにテナントIDを含めることができる。少なくとも一部の実施形態において、VM208とテナントIDとの間におけるこの関連性は、管理自動化を可能にし、および/またはユーザーインターフェースや報告など便利な機能を可能にするが、セキュリティクリティカルではなく、また不正操作防止型である必要はなく、何故なら偽のテナントIDが代用されると、誤った暗号化キーが提供され、vTPM220の暗号は解読不能となるからである。
テナント保有キー
[00136]システムの実施形態は、テナントが、場合によっては独自のデータセンター内で、KDS235を稼働する責任を負い、そしてテナントがVM運用を実施するためにキーが必要な場合は常にサービスプロバイダーのセキュアなホスティングサービスをテナントにまで拡大してもらうことができるよう、設定され得る。別の実装において、テナントはサードパーティプロバイダーと契約を交わし、ホスティングサービスプロバイダーから隔離されたKDS235をテナントの代わりに運用してもらうことができる。
[00137]本発明の実施形態は、そのようなシナリオに対応できるよう、容易に拡大することができる。KDS235は、暗号化されていない形でVM208と一緒に保存されたテナントIDを使用し、検査表に記載されたネットワークアドレスを検索することになる。同じく、VM208とテナントIDとの間におけるこの関連性は、管理自動化を可能にし、またユーザーインターフェースや報告など便利な機能を可能にするが、必ずしもセキュリティクリティカルではなく、つまり、攻撃者が無効なテナントIDを代用すると、KDS235は誤ったテナントのKDSに範囲を広げ、無効なキーを回収するか、または何も回収しないことになる。
[00138]vTPMキー255をテナントから回収する場合であっても、ホストの整合性を検証する必要性は残り、これはHAS258を使用して行うことができる。ホスト構成の一部の態様の妥当性確認を目的にテナントがHAS258を提供することは可能である一方、ホスト構成における他の態様、例えば既知のサーバーの識別キーなどは、テナントが利用できるわけではない。したがって、一実装において2つの工程を使用し、つまり、第1に、ホスト230、HAS258およびKDS235の間でのセキュアな会話が本明細書に記載の通り進行して、ホスト230の健全性の妥当性確認を行い、VM208の解錠に必要な第1のキーを解除し、そして第2に、KDS235またはホスト230がテナントのサービスにまで範囲を拡大して、完了キーを、場合によってはアテステーション情報を含め、回収する。サービスプロバイダーのキーとテナントのキーの双方が提供されると、VMの暗号を解読することができる。
[00139]以下の争点の考察を、そのような実装において考慮に入れることができる。
[00140]・地理的に遠く離れたリクエストは、上記のような局所的運用と比べ、障害を起こしやすい、つまり、ネットワーク停止が発生する可能性があり、テナントのサービスが停止する可能性があり、あるいはセキュアな会話の確立に必要なセキュリティキーおよび証明書が失効してしまっている可能性がある。実務上有用となるよう、そのような遠隔キー回収はトラブルシューティングの材料となる。
[00141]・テナント保有キーの目的は、テナントがリクエストの妥当性確認を行い、適宜、それらを否認できることである。これは手動で行うか、または自動化されたポリシーを使用して行うことができる。これは、有効なリクエストは運用に関して十分な、サービスプロバイダーのセキュアなホスティングサービスによって暗号化署名されたメタデータを含むことにより、そのような決定を下すことが可能になることを意味する。このメタデータは、アテステーション証明書と、アテステーションリクエストへと進行したホストに関する情報をも含み得る。
KDSにおける複雑なポリシー
[00142]vTPMキー255の解除を決定する場合、KDS235はホストのアテステーション証明書257しか見ない、つまり、ホストが有効かつ健全であれば、キーを解除する。
[00143]本発明の実施形態は、キーを解錠すべきか否か判定するための、より複雑な、リクエスト256、VM208およびテナントに関する他の情報を考慮するポリシーを実装するよう、容易に拡大することができる。例えば、システムは、サービスプロバイダーが信頼関係を有する相手方である別の施設への、VMの転送に対応する。しかし、テナントは、国家的データ支配権または他の規制遵守、または全般的留意の範囲である理由により、そのような動きの制限を希望する場合がある。そのようなポリシーは自動ポリシーシステム経由で実装するか、または人間による承認ワークフローが関係し得る。
[00144]KDS235はそのようなポリシーに対応することができ、テナント保有キーの場合について論じた通り、VM運用に関する十分なメタデータがリクエスト256に応じて提供されることのみ必要とし、実際、目標と実装は本質的に同じである。しかし、KDS235はサービスプロバイダーのマルチテナント施設で動作することから、ポリシーの整合性は暗号学的強度に応じて保護されている。推奨される実装は、テナントに、またはサービスプロバイダーの特権を付与された管理者に、ポリシーに署名してもらい、そしてKDS235がテナントまたはサービスプロバイダーの既知の証明書に照らして署名証明書を検証することである。
[00145]VMM253は、テナントがポリシーを入力し、そしてVM運用がポリシーによって許可されない場合に障害メッセージを提示することを可能にするための拡大を含み得る。
他のシナリオに対する一般化
[00146]上記の説明では、暗号化されたvTPMによってキーが保護された状態で、遮蔽型VM上でセキュアな運用を行うことに焦点を当てている。しかし、本発明の実施形態は他のシナリオでも適用することができ、標準的なツールを使用する管理自動化をセキュリティインフラストラクチャを使用するセキュリティ保証と組み合わせる場合と同じ便益がもたらされる。
秘密のセキュアな転送が必要となり得る他の事項
[00147]他にも、暗号化またはセキュアな通信を使用し、そしてキー、証明書または他の秘密の、インフラストラクチャまたは管理システムの侵害に対して、または悪意のある職員に対して脆弱でない形でのセキュアな転送を必要とするシステムが存在する。
[00148]例えば、分散型アプリケーションサービスなど、関心の的となる何らかの空間内で、テナントはIPsecまたは他の技術の使用によるネットワーク通信の保護を希望する場合がある。これらの技術はコンポーネントシステムへのキーの転送を必要とする。これを行う手段は多数存在するが、従来的な技法でこれらのキーのセキュアな転送を管理することは困難または厄介で、特に、アプリケーションサービスの規模や構成が頻繁に変化する仮想化環境、例えばトラフィック負荷の変化への対応時がそうである。またVMM253のような管理ツールを使用しての、ネットワークの構成およびキーの分配の自動化は、悪意のある管理者による侵害にシステムを曝すことになる。本発明の実施形態は、VM暗号化キーを保護するvTPMを使用して、いかなる種類のキーまたは他の秘密も保護するよう一般化することができ、これにより本発明の実施形態を使用して、そのようは秘密の分配を安全に自動化することが可能となる。
[00149]このシナリオへの拡大要素の例として(a)分散型システム内のコンポーネントへのキー、証明書または他の秘密のセキュアな配布を必要とする機構、(b)HAS258およびKDS235のものと似た機能を有するセキュアなサービス、(c)VMM253と似た機能を有する管理自動化システム、そして(d)それらの間における、上記にて例示のパターンに沿った協力、すなわち管理システムがプロセスを調整するがセキュリティクリティカルな動作には関与しない状況、が挙げられる。
妥当性確認済みまたは秘密のデータ転送を必要とする他のシナリオ
[00150]同様に、関心の的となる空間内のシステム、例えば分散型アプリケーションが、構成、ポリシーまたはビジネスデータのセキュアな配布を必要とする状況は、一般的である。「セキュア」はこの場合、情報が秘密であるか、漏洩から保護されるか、整合性の妥当性が確認されるか、あるいはこれらの任意の組み合わせを意味すると考えられる。いずれの場合も、暗号化技術を応用できる。
[00151]例えば、あるサービス内で複数のシステムが、外部サービスへのアクセスを許可する秘密認証情報の提供を、所有者がテナントであるか、または金融機関など第三者であるかを問わず、受けることを必要とする場合がある。この場合、構成データはプライベートの状態に保たれる。
[00152]別の例では、あるサービス内のシステムにおいて、システム自体および他のコンポーネントを過負荷から保護するため、費用を抑制するため、システム過負荷を防止するため、あるいはサービス妨害攻撃を阻止するため、規模やトラフィック量を制限する状態に設定される必要がある。これらの場合、情報は、秘密性ではなく侵害防止のための整合性妥当性確認を必要とする(ただし慎重なIT担当職員は限度も秘密に保つことを選好し得る)。
[00153]別の例では、あるビジネスサービス内のシステムが価格表およびカタログデータを提供される。これらは典型的に業務上の理由から秘密とされるが、それらの整合性も保護され、何故なら侵害された価格表が詐欺取引に使われるおそれがあるからである。多数のシステムにおいて、そのようなデータは、セキュアな管理が簡潔明瞭である集中型データベース内で維持されるが、一部の分散型アーキテクチャーではそのようなセンシティブデータが幅広く配布されてしまい、セキュリティ管理上の課題をもたらすおそれがある。
[00154]そのような構成データは、何らかの専用フォーマットでのバイナリーファイル、XMLファイルまたはJSONファイルなど、多数の形式を取り得る。フォーマットを問わず、それらの秘密性および整合性を、暗号化技術を使用して保護することができ、また上記のパターンを使用してキーを保護および分配することができる。
[00155]同じく、標準的な管理システムを使用して、そのような構成またはポリシーデータの配布を自動化することができるが、前述の通り、そうするとそれらをファブリックまたはファブリック管理担当職員からの侵害に曝すことになる。
[00156]このシナリオへの拡大要素は、(a)分散型システム内のコンポーネントへの配布過程で情報の妥当性確認または秘密維持のために暗号化技術を使用する機構、(b)HAS258およびKDS235のものと似た機能を有するセキュアなサービス、(c)VMM253と似た機能を有する管理自動化システム、そして(d)それらの間における、上記にて例示のパターンに沿った協力、すなわち管理システムがプロセスを調整するがセキュリティクリティカルな動作には関与しない状況である。
VM以外のコンテナの保護
[00157]コンピューター処理用コンテナはVMだけではない。他のコンテナの使用も増えつつあるが、VMより小さく、VMに含まれるものが多い。そのような小型コンテナは大抵、例えばウェブサイトのホスティングなど、低コストホスティングに使用される。それらは他のコンテナと比べ、提供する秘密性またはリソース隔離が弱い場合があるが、これは魅力的な、低コストとの引き換えになり得る。
[00158]別の例はリモートデスクトップサービスであり、これはターミナルサービスとしても知られ、1つのOS環境内で複数のユーザーセッションがホストされるが、各々のセッションが、一般的なコンピューター上の「マイドキュメント」フォルダーに相当する1つの仮想コンテナ内に独自のデータストレージを有する。
[00159]別の例は、複数のテナントからの情報を含むファイルまたはストレージサービスを、「ストレージアカウント」と呼ばれ得る区分内で配列および管理するものである。
[00160]別の例は、複数のテナントからの情報を含み、データベースと呼ばれるコンテナ内で配列および管理する、データベースサービスである。
[00161]これらのようなサービスは多くの場合、分散型の「スケールアウト」構成で展開され、複数のサーバー、多くはVMが、管理インフラストラクチャの制御下で負荷の取扱いを協働する。
[00162]そのようなコンテナに収められた情報は、前述のVMと同種の保護に値し得る。本発明の実施形態は、遮蔽型VMの場合と同じ形で適用され得る。VMM253の役割は、アプリケーションホスティングシステムにおけるタスクマネージャー、RDS向けの「ブローカー」、またはデータベース向けの分散型データベース管理システムなど、軽量コンテナを展開および管理する同等の管理システムが果たし、またVMM253の場合と同様に、多くの場合、コンテナ管理者およびその運用担当職員は信頼されるべきではない(注意点として、コンテナ管理者およびコンテナホスティングは単一のホストVMに制約されるのではなく、多数のVMにまたがって分散すると考えられる)。VMの場合におけるホスト230の役割は、マシンインスタンス、物理的マシンおよび/またはVMが果たし、これらはVMの場合におけるKDS235とのセキュアな相互交換と同種の交換に関与し得るが、アテステーションの技術的詳細が異なる可能性があり、それはこの場合における「ホスト」の整合性が、物理的TPMまたはUEFIから直接派生するのではなく、VMの整合性から派生するからである。本発明の実施形態をそのような軽量コンテナに当てはめる場合、キー管理システムはvTPMではない可能性があり、何故なら現在の慣行において、マシンインスタンスは仮想か否かを問わず、1つのTPMしか有することができないからである。同様の保護機構を、各コンテナ毎のキーを保護し、次いでその情報をゲストOS vTPM経由で保護するよう、定義することができる。また暗号化技法は、Microsoft社のBitLockerなど全量暗号化ではなく、よりきめ細かい暗号化技法をファイルレベルで、複数ファイルの集合体へ、またはRDSの場合の「マイドキュメント」フォルダーまたはデータベースサーバーの場合のデータベースなど、別のコンテナへ、適用すればよい。保護機構の細目は、特定の環境に依存する。本明細書に記載のパターンは引き続き有効であり、管理システムは自動化を提供するがセキュリティクリティカルな作業には参加せず、そしてセキュアなホスティングサービスが保証を提供し、そしてコンテナの場合は「信頼コンピューティング基盤」がゲストのVSM266を経由してホスト265のVSMに至り、ハードウェア機能に到達する。
[00163]このシナリオへの拡大要素は、(a)分散型システム内のコンポーネントへのキー、証明書または他の秘密のセキュアな配布を必要とするようなコンテナ内での情報保護機構、(b)HAS258およびKDS235のものと似た機能を有するセキュアなサービス、(c)VMM253と似た機能を有する管理自動化システム、そして(d)それらの間における、上記にて例示のパターンに沿った協力、すなわち管理システムがプロセスを調整するがセキュリティクリティカルな動作には関与しない状況である。
VSM
[00164]ここでは仮想マシン向けの仮想セキュアモード(VSM)について論ずる。ハイパーバイザーは、仮想マシンの仮想プロセッサーが利用できる複数の異なる仮想信頼レベルを構成する、仮想セキュアモードを実装する。メモリーの読み取り、書き込み、および/または実行能力など、様々なメモリーアクセス保護を、メモリーにおいて個々の仮想信頼レベル毎に異なる部分(例:メモリーページ)に関連付けることができる。仮想信頼レベルは1つの階層として編成され、上位の仮想信頼レベルは下位の仮想信頼レベルより多くの特権が付与され、プログラムは下位の仮想信頼レベルのメモリーアクセス保護を変更する能力のある、上位の仮想信頼レベルで稼働する。仮想信頼レベルの数は変動し得、また異なる仮想マシン毎に変動し得るほか、同じ仮想マシン内でも異なる仮想プロセス毎に変動し得る。
[00165]図3は、1つまたは複数の実施形態に従って本明細書において論じられる技法を実装するコンピューティングデバイス300の一例を例示するブロック図である。コンピューティングデバイス300は、多種多様なデバイスのどれであってもよい。例えば、コンピューティングデバイス300は、デスクトップコンピューター、サーバーコンピューター、ラップトップまたはネットブックコンピューター、タブレットまたはノートパッドコンピューター、モバイルステーション、娯楽用機器、セットトップボックスをディスプレイデバイス、テレビジョンまたは他のディスプレイデバイスに連通連結したもの、携帯電話機または他の無線電話機、ゲームコンソール、自動車コンピューター、ウェアラブルコンピューターなどであってもよい。
[00166]コンピューティングデバイス300は、ハイパーバイザーとも呼ばれるハイパーバイザー302と、1つまたは複数のコンポーネント304とを含む。ハイパーバイザー302は、コンポーネント304によって提供される機能性へのアクセスを管理する。あるいは、ハイパーバイザー302はホストオペレーティングシステム(不記載)上で稼働することもでき、この場合、ホストオペレーティングシステムが、コンポーネント304によって提供される機能性へのアクセスを管理する。
[00167]コンポーネント304は、多種多様なプロセッサーコンポーネント、入力/出力(I/O)コンポーネント、および/または他のコンポーネントまたはデバイスであってもよい。例えば、コンポーネント304は、1つまたは複数のプロセッサーまたはプロセッサーコア、1つまたは複数のメモリーコンポーネント(例:揮発性および/または不揮発性メモリー)、1つまたは複数のストレージデバイス(例:光学および/または磁気ディスク、フラッシュメモリードライブ)、1つまたは複数の通信コンポーネント(例:有線および/または無線ネットワークアダプター)、これらの組み合わせなどを含み得る。コンピューティングデバイス300の要素として例示されているが、コンポーネント304のうち1つまたは複数(例:1つまたは複数のストレージデバイス)を、コンピューティングデバイス300の外部に実装してもよい。コンピューティングデバイス300上で稼働する様々なコンポーネントまたはモジュールが、ハイパーバイザー502を含め、コンポーネント304によって直接および/または他のコンポーネントまたはモジュール経由で間接的に提供される、この機能性にアクセスすることができる。
[00168]ハイパーバイザー302は、仮想マシン306がコンピューティングデバイス300上で稼働することを可能にする。単一の仮想マシン306がコンピューティングデバイス300内に例示されているが、代替的に複数の仮想マシンもコンピューティングデバイス300上で稼働し得る。仮想マシンとは、物理的コンピューティングデバイスに類似するプログラムを実行可能な、物理的コンピューティングデバイス(あるいは他のマシンまたはシステム)のソフトウェア実装を指す。仮想マシンは、コンポーネント304に似た(ただしコンポーネント304のソフトウェア実装である)1つまたは複数の仮想コンポーネントを含む。オペレーティングシステムならびに他のアプリケーションも、仮想プロセッサーまたは仮想プロセッサーコア上での稼働、仮想メモリーへのアクセスなどを含め、コンポーネント304を使用する場合と同様に、仮想コンポーネントを使用して実行することができる。仮想マシン306内で実行されるオペレーティングシステムおよび他のアプリケーションは、仮想マシン内で実行中であることを知る必要が全くなく、また典型的に全く知らない。
[00169]仮想マシン306は、オペレーティングシステム312、1つまたは複数のアプリケーション314、そして1つまたは複数の仮想コンポーネント316を含む。オペレーティングシステム312は、含まれる1つまたは複数の仮想プロセッサーまたは仮想プロセッサーコアを、コンポーネント316のうち1つまたは複数として稼働または実行し、そしてアプリケーション314の実行を管理する。
[00170]ハイパーバイザー302は仮想マシン(VM)制御モジュール322および仮想セキュアモード(VSM)モジュール324を含む。仮想マシン制御モジュール322は、コンポーネント304への仮想コンポーネント316のマッピングを、物理的プロセッサーまたはプロセッサーコア上での仮想プロセッサーまたはプロセッサーコアの実行スケジュール設定を含め、管理する。仮想セキュアモードモジュール324は、仮想マシン306向けの仮想セキュアモードを管理し、以下にて詳述する通り、仮想コンポーネント316向けの様々な仮想信頼レベルを提供する。仮想信頼レベルは仮想プロセッサー向けの実行環境であり、各仮想プロセッサーが、他のどの仮想プロセッサーとも無関係に1つの仮想信頼レベルに入ったり出たりすることができる。2つの別々のモジュールとして例示されているが、注意すべき点として、モジュール322および324の機能性を単一モジュールに統合することができる(例:仮想セキュアモードモジュール324の機能性を、VM制御モジュール322に含めることができる)。
[00171]仮想セキュアモードモジュール324は、仮想セキュアモードが仮想マシン306向けに有効化される場合、仮想マシン306の仮想プロセッサー(1つまたは複数の仮想コンポーネント316)が複数の異なる仮想信頼レベル(VTL)を利用できるようにする。仮想セキュアモードは様々な形で、例えば仮想プロセッサー上で稼働中のプログラム(例:仮想セキュアモードローダー)からのリクエストへの応答として、またはハイパーバイザー302の構成設定への応答として、またはコンピューティングデバイス300の管理者または使用者から提供される入力への応答として、有効化または無効化することができる。コンピューティングデバイス300は場合により複数の仮想マシンを含んでいてもよく、また仮想セキュアモードは異なる仮想マシンについて独立的に有効化または無効化することができる。したがって、任意の時点で仮想セキュアモードをコンピューティングデバイス300の1つまたは複数の仮想マシンについて有効化し、そしてコンピューティングデバイス300における他の1つまたは複数の仮想マシンについて無効化することができる。
[00172]ハイパーバイザー302は、オペレーティングシステム312が仮想セキュアモードに対するサポートの存在のほか、サポートされる仮想信頼レベルの数など仮想セキュアモードに関する他の情報も検出する手段となり得る機構を提供する。一例として、ハイパーバイザー302は仮想セキュアモードに対するサポートの存在および仮想信頼レベルの数について、オペレーティングシステム312が読み取ることができるレポートを、仮想レジスタ経由(例:CPUIDリーフ経由)で報告することができる。
[00173]オペレーティングシステム312およびハイパーバイザー302は、メモリーページ(または単にページ)と呼ばれる複数のブロックまたは部分で構成されるメモリーの保存およびメモリーへのアクセスを管理する。メモリーは、例えば揮発性メモリー(例:RAM)または不揮発性メモリー(例:フラッシュメモリー)など、どのような種類のCPU(中央処理装置)アドレス可能メモリーであってもよい。異なるプログラムにメモリーページを割り当てることができ、これらのプログラムはアプリケーション314、オペレーティングシステム312のプログラム、あるいは他のコンポーネントまたはモジュールであってもよい。
[00174]オペレーティングシステム312およびハイパーバイザー302は、プログラムによるメモリーページへの異なる種類のアクセス、例えば読み取りアクセス、書き込みアクセスおよび実行アクセスなどを許可し得る。読み取りアクセス(読み取りパーミッションとも呼ばれる)があるメモリーページに付与される場合、該メモリーページの内容の読み取り(例:特定の1つまたは複数のプログラムによる読み取り)が許可される。書き込みアクセス(書き込みパーミッションとも呼ばれる)があるメモリーページに付与される場合、該メモリーページへの内容の書き込み(例:特定の1つまたは複数のプログラムによる書き込み)が許可される。実行アクセス(実行パーミッションとも呼ばれる)があるメモリーページに付与される場合、該メモリーページに保存されているコードの実行が許可される。
[00175]コンピューティングデバイス300は仮想メモリーを採用し、これは別のアドレス空間(例:物理メモリー)にマッピングされたアドレス空間である。アプリケーションは仮想メモリー空間を割り当てられ、その空間内でアプリケーションコードが実行され、データが保存される。メモリーマネージャー(例:プロセッサーのメモリーマネージャー)は、仮想メモリー空間内の仮想メモリーアドレスの、他のメモリー空間内のアドレスへのマッピングを管理する。仮想メモリーアドレスを仮想メモリー空間から別のメモリー空間へマッピングする場合、アドレス変換が行われる。アドレス変換表はこのマッピングの実行に使用され、これを本明細書において論じられている技法の実装に活用することができる。
[00176]図4は、1つまたは複数の実施形態に従う多重仮想信頼レベルの一例を例示する図である。仮想プロセッサー402は、図3の仮想コンポーネント316でもよいが、これは任意の数(x)の異なる仮想信頼レベル404(0)、・・・、404(x)にて稼働し得る。仮想信頼レベル404は、図3の仮想セキュアモードモジュール324によって提供される仮想セキュアモードの一部として含まれる。1つまたは複数の実施形態において、仮想プロセッサー402は通常モード(例:VTL0)およびセキュアモード(例:VTL1)と呼ばれる2つの異なる仮想信頼レベルで稼働し得る。
[00177]各仮想信頼レベルは、各々に関連付けられた一連のメモリーアクセス保護406を有する。異なる仮想信頼レベルが異なる一連のアクセス保護を有することができ、ある仮想信頼レベルの一連のアクセス保護は、仮想プロセッサーが該仮想信頼レベルにおいて稼働中にアクセスできるメモリーおよび/またはメモリーへのアクセス方法の制限に使用され得る。
[00178]各仮想信頼レベルは、各々に関連付けられた仮想プロセッサー状態408も有する。仮想プロセッサー状態は、仮想プロセッサー402における多種多様なレジスタ設定、構成値などを指す。異なる仮想信頼レベルに対して別々の仮想プロセッサー状態408が維持されることにより、ある仮想信頼レベルが別の仮想信頼レベルのプロセッサー状態にアクセスすることを防ぐ。異なる仮想信頼レベル毎に何らかの仮想プロセッサー状態(プライベートプロセッサー状態とも呼ばれる)が別々に維持されるが、他のプロセッサー状態(共有プロセッサー状態とも呼ばれる)は、以下にて詳述する通り、複数の仮想信頼レベルにまたがって共有され得る。
[00179]各仮想信頼レベルは、各々に関連付けられた割り込みサブシステム410も有する。割り込みサブシステムは、仮想プロセッサー402における割り込みを管理するための様々なモジュール、プログラム、設定などを指す。異なる仮想信頼レベル毎に別々の割り込みサブシステム410が維持されることにより、割り込みを1つの仮想信頼レベルで安全に管理することが可能となる一方、別の(以下にて詳述する通り、下位の)仮想信頼レベルで稼働中のプログラムが予期せぬ割り込みを生じる事態または割り込みを隠してしまう事態を防ぐことができる。
[00180]仮想信頼レベルは1つの階層として編成され、上位の仮想信頼レベルは下位の仮想信頼レベルより多くの特権が付与され、下位の仮想信頼レベルは上位の仮想信頼レベルよりも付与される特権が少ない。別の仮想信頼レベルより多くの特権が付与される仮想信頼レベルで動作中の仮想プロセッサー402上で稼働中のプログラムは、他の仮想信頼レベルで動作中のプログラムまたはデバイスによるメモリー記憶位置へのアクセスを制限することができる。仮想プロセッサー402上で稼働中のプログラムは、場合により、仮想プロセッサー402が稼働している仮想信頼レベルについて、メモリーアクセス保護を変更することもできる。ただし、別の仮想信頼レベルよりも付与される特権が少ない仮想信頼レベルで動作中の仮想プロセッサー402上で稼働中のプログラムは、他の仮想信頼レベルで動作中のプログラムまたはデバイスによるメモリー記憶位置へのアクセスを制限することができない。1つまたは複数の実施形態において、仮想信頼レベルは整数値(例:0、1、2、など)で分類され、付与された整数値が大きい仮想信頼レベルは、付与された整数値が小さい仮想信頼レベルよりも上位の仮想信頼レベルとなる。あるいは、付与された整数値が小さい仮想信頼レベルを、付与された整数値がより大きい仮想信頼レベルよりも上位の仮想信頼レベルとするか、または他の分類技法を用いてもよい(例:文字または記号など)。
[00181]1つまたは複数の実施形態において、メモリーアクセス保護はページ単位(メモリーページ単位)に基づいて実装される。各メモリーページは関連付けられたメモリーアクセス保護を有し、あるメモリーページのメモリーアクセス保護を、他のメモリーページのメモリーアクセス保護と無関係に変更することができる。メモリーアクセス保護は、特定のページまたは隣接アドレス範囲が同じメモリーアクセス保護を有する旨のいかなる要件とも無関係に行うこともできる。本明細書ではページ単位に基づいて実装されるメモリーアクセス保護に言及するが、注意すべき点として、メモリーアクセス保護は代替的に、メモリーページの一部、複数のメモリーページ、アドレス範囲など、メモリーアドレスから成る他の区分またはブロックにおいて実装することもできる。
[00182]ある仮想信頼レベルのメモリーアクセス保護は、多種多様な形で変更することができる。1つまたは複数の実施形態において、仮想セキュアモードモジュール324は、仮想プロセッサー402上で稼働中のプログラムによって、ある仮想信頼レベルのメモリーアクセス保護を変更するために呼び出されるインターフェース(例:機能呼び出し)を顕在化させ、変更対象となるメモリーアクセス保護を特定する。呼び出されるインターフェースへの応答として、仮想セキュアモジュール324はメモリーアクセス保護をリクエスト通りに変更する(変更は下位の(または場合により同じ)仮想信頼レベルが対象であると想定する)。
[00183]仮想プロセッサー402は、任意の時点で1つの仮想信頼レベルでしか稼働または動作することができず、また特定の時点でプロセッサー402が稼働中または動作中である仮想信頼レベルは、その特定の時点でのプロセッサー402のアクティブ仮想信頼レベルと呼ばれる。仮想プロセッサー402は、ある仮想信頼レベルから別の仮想信頼レベルへと、様々な形で、例えば特定の事象(例:割り込み、特定のコードシーケンスの実行など)への応答として転換し得る。
[00184]図3に戻り、コンポーネント304に当たる物理プロセッサーは、仮想コンポーネント316に当たる仮想プロセッサーに仮想マシンメモリー空間を割り当て、アドレス変換表を維持する。アドレス変換表は、仮想マシン306に割り当てられた仮想マシンメモリー空間内のアドレスを、物理メモリー空間(コンポーネント304に当たる物理メモリー)内のアドレスにマッピングする。任意の時点で物理メモリー空間のアドレスのうち、仮想マシンメモリー空間内の特定のアドレスにマッピングされるアドレスは変わる可能性があり、またメモリーマネージャー(例:物理プロセッサーの一部)によって制御される。メモリーマネージャーはマッピングを変更することができ、様々な公開技法および/または専用技法を用いて、複数の異なる仮想プロセッサーが物理メモリー空間を共有すること、および/または仮想マシンメモリー空間を物理メモリー空間より大きくすることが可能となる。
[00185]仮想セキュアモードモジュール324は、仮想マシンメモリー空間の各メモリーページのメモリーアクセス保護を維持し、仮想マシン306における個々の仮想プロセッサーの仮想信頼レベル毎にメモリーアクセス保護を特定する。仮想セキュアモードモジュール324はメモリーページのメモリーアクセス保護を、多種多様な形で維持することができる。1つまたは複数の実施形態において、仮想セキュアモードモジュール324は、仮想マシン306における個々の仮想プロセッサーの仮想信頼レベル毎のメモリーアクセス保護に関する表、リストまたは他の記録を維持する。あるいは、仮想セキュアモードモジュール324はメモリーアクセス保護を他の形で、例えば仮想マシン306に割り当てられた仮想マシンメモリー空間内のアドレスを物理メモリー空間内のアドレスにマッピングするアドレス変換表の一部として、維持することもできる。
[00186]1つまたは複数の実施形態において、物理プロセッサーは、仮想から物理への多様な変換層に対応し得る。各仮想マシンは独自の仮想からゲストの物理ページへのマッピングを管理することができる。ハイパーバイザーは、ゲストの物理ページから真の物理ページへのマッピングを管理する。加えて、各仮想信頼レベルは、このマシン物理ページへの最終マッピングを、任意の下位の仮想信頼レベルへの適用状況に応じて編集することができる。
[00187]図5は、1つまたは複数の実施形態に従って複数の仮想信頼レベルを実装するシステム例500を例示する図である。システム例500は2つの仮想プロセッサー、すなわち仮想プロセッサー502および仮想プロセッサー504を含む。仮想プロセッサー502および504は各々、図3の仮想コンポーネント316および/または図4の仮想プロセッサー402であってもよい。
[00188]仮想プロセッサー502および504は、VTL0およびVTL1と呼ばれる2つの異なる仮想信頼レベルを実装する。各仮想プロセッサーの各仮想信頼レベルは独自の局所割り込みサブシステムを有し、これらは高度プログラマブル割り込み制御装置(APIC)506(仮想プロセッサー502のVTL0向けの割り込み制御装置)、APIC508(仮想プロセッサー502のVTL1向けの割り込み制御装置)、APIC510(仮想プロセッサー504のVTL0向けの割り込み制御装置)、およびAPIC512(仮想プロセッサー504のVTL1向けの割り込み制御装置)として例示される。任意の時点で、仮想プロセッサー502および504の動作中における仮想信頼レベルは、同じかまたは異なっていてもよい。したがって、複数の仮想プロセッサーが同時に、異なる仮想信頼レベルで稼働中であってもよい。
[00189]システム500はVTL0におけるメモリーアクセス保護514の記録のほか、VTL1におけるメモリーアクセス保護516の記録も維持する。ハイパーバイザー(例:図3の仮想セキュアモードモジュール324)は、メモリーアクセス保護514および516を維持する。仮想プロセッサー502または504から、あるメモリーページのアドレスへのアクセスが発生する都度、VTL0で稼働中の場合、ハイパーバイザーはアクセス中のアドレスを含むメモリーページについて、VTL0のアクセスメモリー保護514をチェックする。VTL0のアクセスメモリー保護514がアクセス許可を示す場合、ゲストの物理メモリーからシステムの物理メモリーへのマップ518が、アドレスをシステムの物理メモリー520のメモリーアドレスにマッピングするために使用され、リクエストされたアクセスが実行される。ゲストの物理メモリーからシステムの物理メモリーへのマップ518は、例えば、前述の通り、仮想マシンメモリー空間内のアドレス(ゲストの物理アドレス(GPA))を物理メモリー空間内のアドレス(システムの物理アドレス(SPA))にマッピングするアドレス変換表である。一方、VTL0のアクセスメモリー保護514がアクセス不許可を示す場合、リクエストされたアクセスは拒否される(実行されない)。リクエストされたアクセスが拒否されると、アドレスを物理メモリー520のメモリーアドレスにマッピングする必要はない。
[00190]同様に、仮想プロセッサー502または504から、あるメモリーページのアドレスへのアクセスが発生する都度、VTL1で稼働中の場合、ハイパーバイザーはアクセス中のアドレスを含むメモリーページについて、VTL1のアクセスメモリー保護516をチェックする。VTL1のアクセスメモリー保護516がアクセス許可を示す場合、ゲストの物理メモリーからシステムの物理メモリーへのマップ518が、アドレスをシステムの物理メモリー520のメモリーアドレスにマッピングするために使用され、リクエストされたアクセスが実行される。一方、VTL1のアクセスメモリー保護516がアクセス不許可を示す場合、リクエストされたアクセスは拒否される(実行されない)。リクエストされたアクセスが拒否されると、アドレスを物理メモリー520のメモリーアドレスにマッピングする必要はない。
[00191]多種多様なメモリーアクセス保護が、メモリーアクセス保護514および516として特定され得る。例えば、メモリーアクセス保護は以下の保護を含み得る:アクセス不可(メモリーページ上のアドレスの読み取り、書き込み、または実行は不可)。読み取り専用、実行不可(メモリーページ上のアドレスの読み取りはできるが、書き込みまたは実行は不可)。読み取り専用、実行可(メモリーページ上のアドレスの読み取りまたは実行はできるが、書き込みは不可)。読み取り/書き込み、実行不可(メモリーページ上のアドレスの読み取りまたは書き込みはできるが、実行は不可)、および読み取り/書き込み、実行可(メモリーページ上のアドレスの読み取り、書き込み、または実行が可能である)。
[00192]これらの異なるメモリーアクセス保護は、多種多様な使用シナリオに対応する。例えば、VTL1で稼働中の場合、あるメモリーページにおけるVTL0のメモリーアクセス保護を「アクセス不可」に設定することができる。この設定は該メモリーページを「セキュア」モードに置き、該メモリーページはVTL0の仮想プロセッサー502および/または504上で稼働中のプログラムにとってアクセス不可となる。別の例を挙げると、VTL1で稼働中の場合、あるメモリーページにおけるVTL0のメモリーアクセス保護を「読み取り専用、実行可」に設定することができる。この設定は該メモリーページを、VTL0の仮想プロセッサー502および/または504上で稼働中のプログラムによる読み取りおよび実行は可能であるが、VTL0の仮想プロセッサー502および/または504上で稼働中のプログラムによる変更は不可のモードに置く。したがって、様々なコード整合性プログラムまたは他のセキュリティプログラムを、VTL1のメモリーページに保存し、そしてVTL0のプログラムによって稼働させる一方、VTL0で稼働中のプログラムによるプログラムの変更は不可であることを保証できる。
[00193]場合により付加的デバイスを、特定の仮想信頼レベルに関連付けることもできる。メモリーページにアクセスする(例:直接メモリーアクセス(DMA)を行う)任意の付加的デバイスを、仮想信頼レベルに関連付けることができる。システム500は、デバイス例522および524を含む。デバイス522はVTL0に関連付けられ、デバイス522は、VTL0で稼働中の仮想プロセッサー502および504と同様に、VTL0のメモリーアクセス保護514に従ってメモリーページへのアクセスを許可される。同様に、デバイス524はVTL1に関連付けられ、デバイス524は、VTL1で稼働中の仮想プロセッサー502および504と同様に、VTL1のメモリーアクセス保護516に従ってメモリーページへのアクセスを許可される。
[00194]1つまたは複数の実施形態において、デバイス522および524は各々、最下位の仮想信頼レベル(例:VTL0)で動作するよう初期化される。仮想プロセッサー502または504は、あるデバイスの構成を、アクティブVTLに関連付けるか、または場合により下位のVTLに関連付けるよう設定することができる。仮想プロセッサー502または504は、あるデバイスの構成を、様々な形で、例えばハイパーバイザー302によって顕在化される呼び出し(例:ある機能)の起動によって、特定のVTLに関連付けるよう設定することができる。
[00195]図3の仮想セキュアモードモジュール324は、どのデバイスがどの仮想信頼レベルに関連付けられるかに関する記録を維持する。モジュール324は、どの仮想信頼レベルがどのデバイスに関連付けられるかの変化を反映する形で、記録を更新する。仮想セキュアモードモジュール324は、任意の時点で個々の仮想プロセッサー502および504がどの仮想信頼レベルで動作中であるかに関する記録も維持する。仮想プロセッサー502および504は、ある仮想信頼レベルから別の仮想信頼レベルへと、様々な形で転換することができ、またそのような転換が発生する都度、仮想信頼レベルの転換先の指標が、モジュール324によって維持される記録に記載される。
[00196]例示されているシステム例500において、メモリーアクセス保護514および516は異なる仮想信頼レベルについて別々に実装され、また共通のメモリーマップ518は、すべての仮想信頼レベルによって共有される。あるいは、メモリーアクセス保護514および516は、メモリーマップ518の一部として実装され得る。そのような状況の場合、単一のメモリーマップ518は、すべての仮想信頼レベルのメモリーアクセス保護を含む形で、あるいは個々のメモリーマップが異なる仮想信頼レベルのメモリーアクセス保護を含む別々のメモリーマップ(メモリーマップ518に似たマップ)を含む形で実装され得る。
[00197]図3に戻り、1つまたは複数の実施形態において、仮想マシン306の仮想プロセッサーは、VTL0など、単一の仮想信頼レベルで稼働するよう初期化される。仮想信頼レベルが1つしかない場合、仮想マシン306は、仮想マシン306については有効化されない仮想セキュアモードとも呼ばれ得る。上位の仮想信頼レベルで稼働するため、仮想マシン306は1つまたは複数の上位の仮想信頼レベルについて有効化される(仮想マシン306の仮想セキュアモードの有効化とも呼ばれる)。上位の仮想信頼レベルが有効化された後、上位の仮想信頼レベルで稼働中のプログラムは、下位の仮想信頼レベルのメモリーアクセス保護を変更することができる。
[00198]1つまたは複数の実施形態において、1つまたは複数の上位の仮想信頼レベルを様々な時点で、仮想マシン306について有効化することができる。例えば、1つまたは複数の上位の仮想信頼レベルを、仮想マシン306の作成過程、および/または仮想マシン306の起動が完了し、一定の基準時間にわたり(例:数分または数時間)稼働させた後、ハイパーバイザー302の起動過程で、仮想マシン306について有効化することができる。
[00199]図6は、1つまたは複数の実施形態に従って仮想マシン向けの仮想セキュアモードを有効化するプロセス例600を例示するフローチャートである。プロセス600は、仮想マシン内で稼働中のプログラムおよびハイパーバイザー、例えば図3の仮想マシン306内で稼働中のプログラムおよび図3のハイパーバイザー302によって実行され、またソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせにおいて実装され得る。プロセス600は一連の行為として示されており、様々な行為の操作の実施について示されている順序に限定されるわけではない。プロセス600は、仮想マシンの仮想セキュアモードを有効化するプロセスの一例であり、仮想マシンの仮想セキュアモードの有効化に関する付加的議論は本明細書において、様々な図面を参照する形で記載される。
[00200]プロセス600において、仮想マシン内で稼働中のプログラムは仮想セキュアモードイメージをメモリーにロードする(行為602)。プログラムは(仮想セキュアモードがまだ有効化されていないとしても)最下位の仮想信頼レベルで稼働中であると捉えることができる。プログラムが稼働中である仮想信頼レベルは、開始仮想信頼レベルとも呼ばれる。1つまたは複数の実施形態において、仮想セキュアモードイメージは、仮想マシンの仮想メモリー空間のメモリーページに仮想セキュアモードイメージをコピーまたは別段に配置するプログラム(仮想セキュアモードローダーとも呼ばれ得る)によって、メモリーにロードされる。仮想セキュアモードイメージとは、実行されると仮想セキュアモードを実装するコードおよびデータを指す(例:プロセッサーによって実行可能なオブジェクトコード)。
[00201]仮想セキュアモードイメージがロードされるメモリーページについて、ハイパーバイザーも(例:仮想セキュアモードイメージをロードするプログラムによって)通知を受ける。ハイパーバイザーは様々な形で、例えば仮想セキュアモードローダーから通知を受け、ハイパーバイザーによって顕在化される呼び出し(ハイパーコールとも呼ばれる)を起動し、そしてハイパーコールのパラメーターとして、仮想セキュアモードイメージがロードされるメモリーページの指標を提供し得る。ハイパーコールの例として、HvLoadVsmImage()というハイパーコールが挙げられる。
[00202]仮想セキュアモードイメージがロードされるメモリーページの通知への応答として、ハイパーバイザーはこれらのメモリーページを、開始仮想信頼レベルにとってアクセス不能にする(行為604)。ハイパーバイザーはこれらのメモリーページを、開始仮想信頼レベルよりも下位に当たる仮想信頼レベル(存在する場合)からもアクセス不能にする。メモリーページは様々な形で、例えば開始仮想信頼レベルについて(および開始仮想信頼レベルよりも下位に当たる仮想信頼レベルが存在する場合はそれについても)メモリーページのメモリーアクセス保護を「アクセス不可」にするといった形で、アクセス不能にすることができる。
[00203]加えて、ハイパーバイザーは仮想セキュアモードイメージを準備する(行為606)。仮想セキュアモードイメージの準備とは、仮想セキュアモードイメージの実行および検証が可能な状態にハイパーバイザーを置くことを指す。この準備は、仮想セキュアモードイメージの保存場所(例:メモリーページ)に関する様々な内部状態の記録と、仮想セキュアモードイメージのハッシュ値の生成も含み得る。上位の仮想信頼レベルが仮想プロセッサー上で有効化された後での最初の上位の仮想信頼レベルへの進入後、仮想プロセッサーは適切に定義された状態で実行されることになると予想される。これにより、初期のプログラムまたは上位の仮想信頼レベルで稼働中のプログラムが適正に動作することが保証される。初期プログラムまたは上位の仮想信頼レベルで稼働するプログラムはこの情報を、上位の仮想信頼レベルでの実行環境をブートストラップする時点で使用することができる。
[00204]仮想セキュアモードイメージのハッシュ値は、セキュアハッシュアルゴリズム(SHA)ファミリーのハッシング関数のいずれかなど、様々な公開および/または専用のハッシング関数のいずれかを使用して、生成することができる。ハッシュ値は、すべてのメモリーページにまたがる仮想セキュアモードイメージのハッシュ値であるか、または仮想セキュアモードイメージの少なくとも一部がロードされるメモリーページ各々のハッシュ値の集合であってもよい。ハッシュ値は、例えば後でハイパーバイザーにより、仮想セキュアモードイメージがメモリーにロードされた後に改竄されていないことを検証する目的で使用され得る。ハッシュ値の別の用途は、VTLのソフトウェア構成をTPMがアテステーションできるよう、PCRレジスタ状態に追加するためにTPMへ送ることである。
[00205]ハイパーバイザーは次いでターゲット仮想信頼レベルを、開始仮想プロセッサー上で有効化する(行為608)。ターゲット仮想信頼レベルとは、開始仮想信頼レベルより上位の仮想信頼レベルを指す。開始仮想プロセッサーとは、仮想セキュアモードローダーを稼働中の仮想プロセッサーを指す。1つまたは複数の実施形態において、ハイパーバイザーは、仮想セキュアモードローダーによって起動中のハイパーバイザーによって顕在化されたハイパーコールへの応答として、開始仮想プロセッサー上でターゲット仮想信頼レベルを有効化する。ハイパーコールの例として、HvEnableVtl()というハイパーコールが挙げられる。
[00206]ハイパーバイザーは次いで、仮想マシン内の他の仮想プロセッサー上でターゲット仮想信頼レベルを有効化する(行為610)。1つまたは複数の実施形態において、ハイパーバイザーは、仮想セキュアモードローダーによって起動中のハイパーバイザーによって顕在化されたハイパーコールへの応答として、他の仮想プロセッサー上でターゲット仮想信頼レベルを有効化する。仮想セキュアモードローダーは、ハイパーコールのパラメーターとして、ターゲット仮想信頼レベルが有効化されることになる仮想プロセッサーの識別子を提供し得るか、あるいは代替的に、ハイパーコールは仮想マシン内の他のすべての仮想プロセッサー上でターゲット仮想信頼レベルを有効化するよう指示し得る。また仮想セキュアモードローダーは場合により、ターゲット仮想信頼レベルが有効化されている他の仮想プロセッサーのターゲット仮想信頼レベル向けに使用するための、初期の仮想プロセッサーコンテキストをも提供し得る。ハイパーコールの例として、HvEnableVtl()というハイパーコールが挙げられる。
[00207]3つ以上の仮想信頼レベルが実装される実施形態において、行為608および610は有効化されることになる付加的な上位の仮想信頼レベル各々について反復され得る。上位の仮想信頼レベル各々について、ハイパーバイザーによって顕在化されるハイパーコールは仮想セキュアモードローダー(または他の、有効化されているターゲット仮想信頼レベルより下位の仮想信頼レベルで稼働中のプログラム)によって起動される。
[00208]1つまたは複数の実施形態において、仮想マシンの仮想信頼レベルをそれぞれ別々に有効化および無効化することができる。仮想信頼レベルは、仮想信頼レベルが無効化されることになる仮想プロセッサーを特定するハイパーバイザーのコール(例:HvDisableVtlVpというハイパーコール)の起動により、プロセッサー上で無効化され得る。コールは、無効化されている仮想信頼レベルで動作中の仮想プロセッサーによって起動される。コールへの応答として、ハイパーバイザーは該仮想信頼レベルを、特定された仮想プロセッサー上で無効化する。ハイパーバイザーは場合により、特定された仮想プロセッサーが下位の仮想信頼レベルで稼働中の状態となるよう、特定された仮想プロセッサー上で下位の仮想信頼レベルへの退出をトリガーする。
[00209]加えて、1つまたは複数の実施形態において、仮想マシンにおける上位の仮想信頼レベルをすべて無効化し、事実上、仮想マシンの仮想セキュアモードを排除することもできる。仮想マシンの1つの仮想プロセッサー(最終仮想プロセッサーと呼ばれる)を除くすべての仮想プロセッサー上で、最下位を除くすべての仮想信頼レベルを無効化することにより、仮想マシンから仮想セキュアモードを排除することができる。上位の仮想信頼レベルは、上位の仮想信頼レベルが無効化されることになる仮想プロセッサーを特定するハイパーバイザーのコール(例:HvDisableVtlVpというハイパーコール)の起動により、プロセッサー上で無効化され得る。コールは、無効化されている上位の仮想信頼レベルで動作中の仮想プロセッサーによって起動される。コールへの応答として、ハイパーバイザーは最下位を除くすべての仮想信頼レベルを、特定された仮想プロセッサー上で無効化する。
[00210]次いで、最下位を除くすべての仮想信頼レベルが、仮想マシンの最終仮想プロセッサー上で無効化される。上位の仮想信頼レベルは、ハイパーバイザーのコール(例:HvDisableVTLというハイパーコール)の起動によって無効化される。コールは、無効化されている上位の仮想信頼レベルで動作中の最終仮想プロセッサーによって起動される。コールへの応答として、ハイパーバイザーは最下位の仮想信頼レベルへの退出を、最終仮想プロセッサー上でトリガーする。この段階で、仮想マシン内の仮想プロセッサーはすべて、最下位の仮想信頼レベルで稼働中である。次いで、仮想セキュアモードイメージが、ハイパーバイザーのコール(例:HvUnloadVsmというハイパーコール)の起動によってアンロードされる。このコールへの応答として、すべてのメモリーアクセス保護が各々の元来の状態に戻される結果、メモリーページは、アクセス可能な仮想セキュアモードイメージを保存しているメモリーページ(例:行為604でアクセス不能にされたメモリー)を含め、最下位の仮想信頼レベルにとってアクセス可能となる。
[00211]代替的実施形態において、ハイパーバイザーは仮想CPUを最高特権VTLで始動し、そこに存在するコードが下位のVTLレベルを始動する。これは同様の系統を進むが、一部の実施形態では下位のVTLレベルに誤りが生じないよう上位のVTLレベルが信頼され得ることから、簡略化され得る。
[00212]図4に戻り、仮想プロセッサー402は、アクティブ仮想信頼レベルを様々な形で変えることができる。下位の仮想信頼レベルから上位の仮想信頼レベルへの転換または変更は、上位の仮想信頼レベルへの進入とも呼ばれ、また上位の仮想信頼レベルから下位の仮想信頼レベルへの転換または変更は、上位の仮想信頼レベルからの退出とも呼ばれる。
[00213]1つまたは複数の実施形態において、仮想プロセッサー402は下位の仮想信頼レベルから上位の仮想信頼レベルへと、1つまたは複数の事象発生、例えば仮想信頼レベルコール、上位の仮想信頼レベルに代わる割り込み、トラップ(例:ページフォールトなど、下位の仮想信頼レベルに代わり一定種類の障害を上位の仮想信頼レベルが処理することの許可)、または上位の仮想信頼レベルのインターセプトなどへの応答として、転換または変更し得る。仮想信頼レベルコールとは、特定の1つまたは複数の命令(例:特定の命令順序)が、現在の仮想信頼レベルから上位の仮想信頼レベルへと遷移する形で実行されることを指す。上位の仮想信頼レベルに代わる割り込みとは、現在の仮想信頼レベルより上位の仮想信頼レベルに対する(目標とする)割り込みを受けることを指す。上位の仮想信頼レベルのインターセプトとは、上位の仮想信頼レベルの保護されたアドレスまたは保護されたコンポーネント、例えば上位の仮想信頼レベルのレジスタ、上位の仮想信頼レベルに関連付けられたI/Oポート、または上位の仮想信頼レベルに関連付けられたメモリーページなどにアクセスする動作を指す。
[00214]仮想プロセッサー402における何らかのプロセッサー状態が、異なる仮想信頼レベルにまたがって共有され、これは共有プロセッサー状態とも呼ばれる。共有プロセッサー状態は、アクティブ仮想信頼レベルが変化し、変化する仮想信頼レベルの効率性が向上する場合は変化する必要はない。しかし、仮想プロセッサー402における他のプロセッサー状態は、異なる仮想信頼レベルにまたがって共有されず、これはプライベートプロセッサー状態とも呼ばれる。プライベートプロセッサー状態は、仮想プロセッサー状態408として例示される通り、アクティブ仮想信頼レベルが変化すると変わる。
[00215]注意すべき点として、アクティブ仮想信頼レベルが変化しても共有プロセッサー状態は不変のままであるが、ある仮想信頼レベルで稼働中のプログラムは、仮想信頼レベルがアクティブとなった理由次第では共有プロセッサー状態の扱い方に関して異なるポリシーを有し得る。例えば、仮想信頼レベルコールにより、ある仮想信頼レベルがアクティブとなる場合、新たなアクティブ仮想信頼レベルで稼働中のプログラムは共有プロセッサー状態を保存しなくてもよく、それは従前の仮想信頼レベル(新たなアクティブ仮想信頼レベルに対するコールを起動した仮想信頼レベル)でのプログラムが、共有プロセッサー状態の変化を許容し得るからである。一方、ある仮想信頼レベルが割り込みによりアクティブとなる場合、従前の仮想信頼レベル(割り込まれた仮想信頼レベル)で稼働中のプログラムは、仮想信頼レベルの変化が発生したことに気付いていないことから、共有プロセッサー状態の変化を許容できないと考えられる。この場合、新たなアクティブ仮想信頼レベルで稼働中のプログラムは、共有プロセッサー状態を変える前に共有プロセッサー状態を保存できることから、新たなアクティブ仮想信頼レベルで稼働中のプログラムは、割り込み処理の完了後に共有プロセッサー状態を回復することができる(その結果、従前の仮想信頼レベルは元来の状態で再開可能となり、従前の仮想信頼レベルで稼働中のプログラムに対して割り込みを透明化する)。
[00216]1つまたは複数の実施形態において、プライベートプロセッサー状態は、命令ポインター(またはプログラムカウンター)レジスタおよびスタックポインターレジスタを含む。アクティブ仮想信頼レベルのプライベートプロセッサー状態は、ハイパーバイザーにより、アクティブ仮想信頼レベルが変わる際に保存され、また変更対象である仮想信頼レベルのプライベートプロセッサー状態に置き換わる。変更対象である仮想信頼レベルのプライベートプロセッサー状態は、デフォルト/初期化状態(仮想信頼レベルが過去に入られたことがない場合)、または仮想信頼レベルについて過去に保存されたプライベートプロセッサー状態(仮想プロセッサー402が最後に仮想信頼レベルから離脱して変化する前に保存された状態)であってもよい。
[00217]1つまたは複数の実施形態において、ハイパーバイザーは各仮想信頼レベル404(最下位の仮想信頼レベルを除く)について、ハイパーバイザーと仮想信頼レベルで稼働中のプログラムとの間での双方向型通信に使用される制御ページを維持する。制御ページは、仮想信頼レベルに入った理由の指標(例:上位の仮想信頼レベルに入った原因を生じた事象)、従前の仮想信頼レベルの指標(上位の仮想信頼レベルに入る原因を生じた事象の時点でのアクティブ仮想信頼レベル)、そして場合により、上位の仮想信頼レベルに入った原因を生じた事象を記述する、またはそれに関連する付加的情報を含み得る。
[00218]1つまたは複数の実施形態において、仮想プロセッサー402は、ある仮想信頼レベルから、次に上位の仮想信頼レベルに限り転換し得る。例えば、仮想プロセッサー402はVTL0からVTL1へ、VTL1からVTL2へ、VTL2からVTL3へ、といった形で転換し得るが、VTL0からVTL3へは転換できない。あるいは、仮想プロセッサーはある仮想信頼レベルから、どの上位の仮想信頼レベルにでも転換し得る。例えば、仮想信頼レベルコールにおいて、仮想プロセッサー402は、転換先となる上位の仮想信頼レベルを指定することができ、VTL0からVTL3への転換が可能となる。
[00219]下位の仮想信頼レベルから上位の仮想信頼レベルへの転換後、仮想プロセッサー402は、多種多様な事象への応答として、下位の仮想信頼レベルに戻る形で転換または変化し得る(上位の仮想信頼レベルを退出する)。1つまたは複数の実施形態において、仮想プロセッサー402は1つまたは複数の措置を実施し(例:1つまたは複数の動作の実施、割り込みの取扱いなど)、その後、下位の仮想信頼レベルに戻る。仮想プロセッサー402は、現在の仮想信頼レベルから下位の仮想信頼レベルへと遷移するための特定の1つまたは複数の命令(例:特定の命令順序)の実行により、下位の仮想信頼レベルに戻る。これらの命令は、場合により、仮想信頼レベル退出コードページと呼ばれるメモリーページに保存され、これによりハイパーバイザーは仮想信頼レベルを転換するためのコードシーケンスを抽出することができる。1つまたは複数の実施形態において、仮想プロセッサー402は、アクティブ仮想信頼レベルに入る前の下位の仮想信頼レベルに戻るが、代替的に仮想プロセッサー402は異なる仮想信頼レベルに戻ることもできる。
[00220]共有プロセッサー状態の場合、プロセッサー状態は仮想信頼レベルが変わっても変化しないため、共有プロセッサー状態を使用する仮想信頼レベル間で情報を渡すことが可能となる。プライベートプロセッサー状態の場合、各仮想信頼レベルは、該仮想信頼レベルのみアクセスできる、独自のプロセッサー状態のインスタンスを有する(例:レジスタ)。ハイパーバイザーはそのようなプロセッサー状態(例:レジスタの内容)の、仮想信頼レベル間での転換時における保存および復元を管理する。仮想信頼レベル404に入る際、プライベートプロセッサー状態は、仮想プロセッサー402が最後に仮想信頼レベル402で稼働した際と同じである(例:レジスタは同じ値を格納する)。
[00221]概して、ある仮想信頼レベルに入った後にその仮想信頼レベルでコードが実行されるよう、適切に構成されることになるレジスタは、プライベートプロセッサー状態である。上位の仮想信頼レベルは、下位の仮想信頼レベルによる変更が不可能な、適切に定義された状態の仮想プロセッサーの実行制御を確実に得られることを保証される。したがって、キー制御レジスタおよび実行フローの制御に重要なレジスタは、各仮想信頼レベルについてプライベートプロセッサー状態である。ある仮想信頼レベルに入った後でもコードフローを直接変更しない、汎用レジスタ状態は、共有プロセッサー状態またはプライベートプロセッサー状態のどちらでもよい。
[00222]1つまたは複数の実施形態において、汎用レジスタ、ベクトルレジスタ、および浮動小数点レジスタは、命令ポインター(またはプログラムカウンター)レジスタおよびスタックポインターレジスタを除き、共有プロセッサー状態である。命令ポインター(またはプログラムカウンター)レジスタおよびスタックポインターレジスタは、プライベートプロセッサー状態である。制御レジスタもプライベートプロセッサー状態であるが、ページフォールトレジスタは例外である。ページフォールトレジスタ(例:X64アーキテクチャープロセッサー用CR2レジスタ)は共有プロセッサー状態である。
[00223]表Iでは、共有プロセッサー状態であるレジスタの例(表Iでは「共有」の種類として列記)、およびプライベートプロセッサー状態であるレジスタの例(表Iでは「プライベート」の種類として列記)を例示している。表Iに例示されているレジスタは、X64アーキテクチャープロセッサー向けの例である。これらのレジスタは例であり、すべてのプロセッサーアーキテクチャーがこれらのレジスタをすべて含むわけではなく、また異なるプロセッサーアーキテクチャーが異なる(ただし場合により類似する)レジスタを含み得るという点が理解されなければならない。
Figure 2017520959
[00224]1つまたは複数の実施形態において、ハイパーバイザーは、仮想レジスタとも呼ばれる多種多様なマシン状態レジスタ(MSR)も維持し、これらの一部は共有プロセッサー状態、一部はプライベートプロセッサー状態である。表IIでは、共有プロセッサー状態であるMSRの例(表IIでは「共有」の種類として列記)、およびプライベートプロセッサー状態であるMSRの例(表IIでは「プライベート」の種類として列記)を例示している。表IIにおいて、接頭文字「HV_X64」が付くレジスタは、ワシントン州レドモンドのMicrosoft Corporationから入手可能なHyper−V(登録商標)仮想化ソフトウェア内のレジスタを指す一方、表IIにおいて接頭文字「HV_X64」が付かないレジスタは、標準のX64アーキテクチャーレジスタを指す。表IIに例示されているMSRは、X64アーキテクチャープロセッサー上で稼働する仮想マシン向けの例である。これらのMSRは例であり、すべての仮想セキュアモードがこれらのMSRをすべて含む必要があるわけではなく、また異なるプロセッサーアーキテクチャーが異なる(ただし場合により類似する)レジスタを含み得るという点が理解されなければならない。加えて、各MSRの分類も単なる例示であり、様々な実施形態において異なり得る。
Figure 2017520959
[00225]加えて、前述の通り、仮想信頼レベル404は別個の割り込みサブシステムを有し、各仮想信頼レベル404が独自の割り込みサブシステム410を有する。別個の割り込みサブシステム410は、ある仮想信頼レベルで稼働中のプログラムが下位の仮想信頼レベルから干渉されることなく、仮想プロセッサー間で安全にプロセッサー間割り込みを送信することを可能にする。別個の割り込みサブシステム610も、ある仮想信頼レベルの割り込みサブシステムが同じ仮想信頼レベルに関連付けられたデバイスからの割り込みを、下位の仮想信頼レベルで稼働中のプログラムから干渉されることなく安全に受けることを可能にする。別個の割り込みサブシステム410は、各割り込みサブシステム410が、下位の仮想信頼レベルで稼働中のプログラムによる干渉を受けることが不可能な、セキュアなタイマー機能を有することも可能にする。別個の割り込みサブシステム410は、下位の仮想信頼レベルに対する割り込み(目標とする割り込み)を受けた場合に、仮想信頼レベル間での割り込みの協調的スケジューリングを可能にするよう、割り込みサブシステム410が通知を受けることも可能にする。
[00226]アクティブ仮想信頼レベルの場合、割り込みは、アクティブ仮想信頼レベル、アクティブ仮想信頼レベルより上位の仮想信頼レベル(アクティブ仮想信頼レベルが仮想マシンの最上位仮想信頼レベルである場合を除く)、またはアクティブ仮想信頼レベルより下位の仮想信頼レベル(アクティブ仮想信頼レベルが仮想マシンの最下位仮想信頼レベルである場合を除く)の、ハイパーバイザーによって受けられ得る。1つまたは複数の実施形態において、割り込みは、割り込み対象(割り込みの目標)である仮想信頼レベルの指標を含む。アクティブ仮想信頼レベルを目標とする割り込みを受けた場合の応答として、アクティブ仮想信頼レベルの割り込みサブシステム410が割り込みに対処する。
[00227]アクティブ仮想信頼レベルより上位の仮想信頼レベルを目標とする割り込みを受けた場合の応答として、ハイパーバイザーは多種多様な措置を講じ得る。1つまたは複数の実施形態において、インターセプト制御MSR(例:HV_X64_MSR_VSM_INTERCEPT_CTL MSR)は、講じるべき措置を判定する割り込みVTL退出設定を含む。割り込みVTL退出設定の値が1つである(例:常に退出することを示す)場合、ハイパーバイザーはアクティブ仮想信頼レベルを上位の仮想信頼レベルへと転換し、上位の仮想信頼レベルの割り込みサブシステム410が割り込みに対処する。一方、割り込みVTL退出設定が別の値を有する(例:割り込み可能性をチェックするよう指示する)場合、ハイパーバイザーは、上位の仮想信頼レベルが割り込みを受ける可能性があることを上位の仮想信頼レベルのプロセッサー状態が示唆する場合に限り、アクティブ仮想信頼レベルを上位の仮想信頼レベルへと転換する。あるいは、割り込みVTL退出設定は、アクティブ仮想信頼レベル(または上位の仮想信頼レベル)の制御ページなど、他の場所で維持され得る。
[00228]あるいは、講じるべき措置は異なる形で判定され得る。例えば、ハイパーバイザーは、上位の仮想信頼レベルの割り込みサブシステム410による割り込みへの対処向けに、アクティブ仮想信頼レベルから上位の仮想信頼レベルへの転換をトリガーすることになる特定の割り込みベクトルを上位の仮想信頼レベルが指定することを可能にする機構を提供し得る。あるいは、多種多様な状態基準がハイパーバイザーによって適用され得、またハイパーバイザーは、アクティブ仮想信頼レベルによって状態基準が満たされる場合に限り、上位の仮想信頼レベルの割り込みサブシステム410による割り込みへの対処向けに、アクティブ仮想信頼レベルを上位の仮想信頼レベルへと転換し得る。
[00229]アクティブ仮想信頼レベルより下位の仮想信頼レベルを目標とする割り込みを受けた場合の応答として、ハイパーバイザーは、下位の仮想信頼レベルの割り込みサブシステム410に後で送るための、割り込み記録を維持する。1つまたは複数の実施形態において、割り込みは、アクティブ仮想信頼レベルの仮想プロセッサー402の動作に先回りしない。むしろ、ハイパーバイザーは、下位の仮想信頼レベルの割り込みサブシステム410に対し、仮想プロセッサー402が次に、下位の仮想信頼レベルでの動作へと転換する際、割り込みを提供する。
[00230]注意すべき点として、下位の仮想信頼レベルが割り込みを送られた場合に上位の仮想信頼レベルが通知を受けることが望ましいという状況が発生し得る。これは例えば、割り込みに対処するために仮想プロセッサーが下位の仮想信頼レベルに戻れるようにすることを上位の仮想信頼レベルのプログラムが望む、という状況において、望ましいと考えられる。1つまたは複数の実施形態において、下位の仮想信頼レベルが割り込みを送られた場合に上位の仮想信頼レベルへの通知を円滑化するため、割り込み通知機能が提供される。この割り込み通知機能は、制御MSR(例:HV_X64_MSR_VTL_CTL MSR)など、様々な形で提供され得る。この割り込み通知機能は、下位の仮想信頼レベル向けの割り込み処理を上位の仮想信頼レベルが長期間にわたり遅延してしまう事態を防止し得る。
[00231]アクティブ仮想信頼レベルより下位の仮想信頼レベルを目標とする割り込みを受けた場合の応答として、割り込み通知機能を使用する場合、ハイパーバイザーは、下位の仮想信頼レベルのプライベートプロセッサー状態および割り込みサブシステム410の状態を評価して、下位の仮想信頼レベルの割り込みサブシステム410に割り込みを提示可能かどうか判定する。様々なプライベートプロセッサー状態または割り込みサブシステム410の状態が原因で、下位の仮想信頼レベルの割り込みサブシステム410に割り込みを提示できない場合、割り込みは保留として表記され、割り込みに対するさらなる措置は講じられない。一方、下位の仮想信頼レベルの割り込みサブシステム410に割り込みを提示できる場合、ハイパーバイザーは前述の通り、下位の仮想信頼レベルの割り込みサブシステム410に後で送るための、割り込み記録を維持し、そしてアクティブ仮想信頼レベルで割り込みを生成する。アクティブ仮想信頼レベルで割り込みが生成される(例:HV_X64_MSR_VTL_CTL MSRにおいて指定される割り込みベクトルへの割り込み)結果、アクティブ仮想信頼レベルで稼働中のプログラムが、割り込みへの対処法を決定する。プログラムはハイパーバイザーを上位の仮想信頼レベルから退出させることができるため、下位の仮想信頼レベルは、下位の仮想信頼レベルを目標とする割り込みに対処できるようになる。ただし、ハイパーバイザーは上位の仮想信頼レベルを退出する必要はなく、あるいはプログラムが様々な長さの期間、ハイパーバイザーを上位の仮想信頼レベルから退出させるのを遅らせることができる。
[00232]加えて、前述の通り、ハイパーバイザーは、上位の仮想信頼レベルへのインターセプトに対する応答として、上位の仮想信頼レベルへと転換し得る。1つまたは複数の実施形態において、ハイパーバイザーは、下位の仮想信頼レベルのプログラムに対してロックされアクセス不可となる特定のリソースまたはコンポーネントを、上位の仮想信頼レベルが指定することを許可する。ハイパーバイザーは、例えば、特定の入力/出力(I/O)ポートアクセス制御、MSRアクセス制御、メモリーアクセス制御、および/または制御レジスタを上位の仮想信頼レベルがロックしおよびアクセス不能にすることを、許可し得る。上位の仮想信頼レベルは(例えば様々なMSR設定経由または他の形で)、ロックされる特定のI/Oポートアクセス制御、MSRアクセス制御、メモリーアクセス制御、および/または制御レジスタを指定し得る。上位の仮想信頼レベルによってロックされたリソースまたはコンポーネントにアクセスするために(例:プログラムまたはデバイスによって)為された試みへの応答として、上位の仮想信頼レベルへのインターセプトが生成される。インターセプトへの応答として、ハイパーバイザーは仮想プロセッサーを上位の仮想信頼レベル(あるいは仮想プロセッサーが対応する最上位の仮想信頼レベル)へと転換する。
[00233]上位の仮想信頼レベルはインターセプトに対し、多種多様な形で応答することができる。例えば、上位の仮想信頼レベルのプログラムはアクセスを致命的と見なし、何らかの障害指標をトリガーし得る。別の例を挙げると、上位の仮想信頼レベルのプログラムは、リソースまたはコンポーネントへのアクセスをエミュレートすることができる。そのようなエミュレーションを有効化するため、ハイパーバイザーは、結果的にインターセプトに至った下位の仮想信頼レベルのコンテキストの操作に使用可能な、ハイパーコールを提供する。別の例を挙げると、上位の仮想信頼レベルのプログラムは、リソースまたはコンポーネントへのアクセスを代理実行することができる。さらに別の例を挙げると、上位の仮想信頼レベルのプログラムは、下位の仮想信頼レベルに対するセキュアなインターセプトを反映することができる。
[00234]1つまたは複数の実施形態において、仮想プロセッサー402が3つ以上の仮想信頼レベルを有する場合、セキュアなインターセプト機能のネスト化に対応するよりむしろ、ハイパーバイザーは、すべての仮想信頼レベルにまたがって共有される1組のアクセス制御MSRを提供する。アクセス制御MSRの使用に望ましい仮想信頼レベルのプログラムは、定義された独自のインターフェースを使用して協力するか、あるいは最上位の仮想信頼レベルのプログラムは下位の仮想信頼レベルに対するインターセプト機能の支援をエミュレートすることができる(例:上位の仮想信頼レベルがセキュアなインターセプトを下位の仮想信頼レベルへ注入する)。あるいは、セキュアなインターセプト機能のネスト化はハイパーバイザーによって対応可能で、また別個のアクセス制御MSRを、異なる仮想信頼レベル向けに使用することができる。
[00235]多種多様なMSRにハイパーバイザーが対応する。以下は、ハイパーバイザーが対応し得る様々なMSRの例である。MSR特有のフィールドが列記される。ただし、これらのMSRは例であり、他のレジスタ、レジスタのビットレイアウト、フィールドなどを選択的に使用することができるという点が理解されるべきある。
[00236]表IIIでは、個々の上位の仮想信頼レベル(最下位の仮想信頼レベルを除くすべて)毎に各仮想プロセッサー上で利用可能な、HV_X64_MSR_VTL_CTL MSRを例示している。個々の上位の仮想信頼レベルは、VTL0の場合を除き、独自のHV_X64_MSR_VTL_CTL MSRのインスタンスを有する。HV_X64_MSR_VTL_CTL MSRは、上位の仮想信頼レベルにおけるVSMの動作形態に関する様々な属性を制御する。
Figure 2017520959
[00237]表IVでは、VTLコールコードページのマッピング先となるGPAページの特定に使用されるHV_X64_MSR_VTL_CALL MSRを例示している。HV_X64_MSR_VTL_CALL MSRは、仮想マシン全体にまたがって共有される。個々の仮想信頼レベル毎に(最上位の仮想信頼レベルを除く)、HV_X64_MSR_VTL_CALL MSRのインスタンスが1つずつ、仮想マシン内に存在する。HV_X64_MSR_VTL_CALL MSRが有効化されると、コードページGPAのフィールドで指定されたアドレスに、仮想信頼レベルコールコードページが重ね合わされる(前述の通り、ハイパーバイザーと仮想信頼レベルで稼働中のプログラムとの間での双方向型通信に使用される制御ページ)。
Figure 2017520959
[00238]表Vでは、仮想プロセッサーの仮想信頼レベル状態に関する情報を提供する、HV_X64_MSR_VTL_STATUS MSRを例示している。HV_X64_MSR_VTL_STATUS MSRは個々の仮想プロセッサーが対象であり、また仮想プロセッサーの仮想信頼レベル毎にHV_X64_MSR_VTL_STATUS MSRのインスタンスが1つずつ存在する。
Figure 2017520959
[00239]表VIでは、仮想信頼レベル退出コードページのマッピング先となるGPAページの特定に使用されるHV_X64_MSR_VTL_EXIT MSRを例示している。HV_X64_MSR_VTL_EXIT MSRは、仮想マシン全体にまたがって共有される。個々の仮想信頼レベル毎に(最下位の仮想信頼レベルを除く)、HV_X64_MSR_VTL_EXIT MSRのインスタンスが1つずつ、仮想マシン内に存在する。HV_X64_MSR_VTL_EXIT MSRが有効化されると、VTL退出コードページGPAのフィールドで指定されたアドレスに、仮想信頼レベル退出コードページが重ね合わされる
Figure 2017520959
[00240]表VIIでは、上位の仮想信頼レベルへの進入をトリガーするインターセプトの種類を制御する、HV_X64_MSR_VSM_INTERCEPT_CTL MSRを例示している。HV_X64_MSR_VSM_INTERCEPT_CTL MSRは個別の仮想プロセッサーが対象であり、仮想プロセッサーの仮想信頼レベルによって共有される(ただしHV_X64_MSR_VSM_INTERCEPT_CTL MSRは最下位の仮想信頼レベルでは利用できない)。
Figure 2017520959
[00241]表VIIIでは、最上位(または上位)の仮想信頼レベルに対するインターセプトをトリガーするI/Oポートアクセスの種類を制御する、_X64_MSR_VSM_IOPORT_CTL MSRを例示している。2つのHV_X64_MSR_VSM_IOPORT_CTL MSRが含まれ得、フィールドは同じで、HV_X64_MSR_VSM_IOPORT_CTL0 MSRおよびHV_X64_MSR_VSM_IOPORT_CTLl MSRと呼ばれる。これら2つのMSRは個々の仮想プロセッサーが対象であり、各々が仮想プロセッサーの仮想信頼レベルによって共有される(これら2つのMSRは最下位の仮想信頼レベルでは利用できない)。
Figure 2017520959
[00242]表IXでは、上位の仮想信頼レベルに対するインターセプトをトリガーするMSRアクセスの種類を制御する、HV_X64_MSR_VSM_MSR_CTL MSRを例示している。HV_X64_MSR_VSM_MSR_CTL MSRは個々の仮想プロセッサーが対象であり、仮想プロセッサーの仮想信頼レベルによって共有される(ただしHV_X64_MSR_VSM_MSR_CTL MSRは最下位の仮想信頼レベルでは利用できない)。
Figure 2017520959
[00243]注意すべき点として、本明細書において論じられる技法の一態様は、上位の仮想信頼レベルが下位の仮想信頼レベルに先回りされることはあり得ないということである。したがって、仮想プロセッサーが上位の仮想信頼レベルで稼働中である場合、仮想プロセッサーが下位の仮想信頼レベルへと転換し得る唯一の形は、ソフトウェアが自発的に、VTL退出の実行によって下位の仮想信頼レベルへと転換する場合である。外部事象(例:割り込みなど)は、上位の仮想信頼レベルから下位の仮想信頼レベルへの自動転換をトリガーし得ない。
[00244]さらに注意すべき点として、本明細書において論じられる技法を使用して実装される仮想信頼レベルは、コンピューティングデバイス300の物理プロセッサーによって実装されるいかなる保護リングまたは他の保護機構とも無関係である。本明細書において論じられる技法は、物理プロセッサーアーキテクチャーと無関係であり、したがって任意の数の様々なプロセッサーアーキテクチャーにまたがって実装され得る。さらに、本明細書において論じられる技法は、同じおよび/または異なる仮想マシンにおける異なる仮想プロセッサーの異なる数の仮想信頼レベルを含め、いかなる数の仮想信頼レベルにも対応し得る。
[00245]同じく注意すべき点として、コンピューティングデバイス300の1つまたは複数の仮想プロセッサーは、少なくとも1つのカーネルモード(カーネル−モード、スーパーバイザーモード、またはスーバーバイザー−モードとも呼ばれる)および使用者モード(使用者−モードとも呼ばれる)を含む、多種多様なモードでのコード実行に対応し得る。本明細書において論じられる技法は、仮想プロセッサー内でコードがどのモードで実行中であるかを問わない。本明細書において論じられるメモリーアクセス保護は、仮想プロセッサーが動作中の仮想信頼レベルに基づいて適用され、また仮想プロセッサーがコードをカーネルモードまたは使用者モードのどちらで実行中であるかを問わず適用される。したがって、仮想プロセッサーがたとえカーネルモードでコードを実行中であっても、仮想信頼レベルのメモリーアクセス保護は、前述の通り、アクティブ仮想信頼レベルに基づく仮想セキュアモードモジュールによってのみ変更され得る(仮想プロセッサーがコードをカーネルモードまたは使用者モードのどちらで実行中であるかを問わない)。仮想プロセッサーがコードを実行中のモード(例:使用者またはカーネル)に基づいて、仮想プロセッサーによる付加的保護が提供され得るが、係る保護は、仮想信頼レベルに基づいて適用される、本明細書において論じられるメモリーアクセス保護と無関係である。
[00246]したがって、本明細書において論じられる技法は、カーネルモードで稼働中のオペレーティングシステムよりも特権の多い環境を提供する。例えば、VTL1で稼働中の場合、あるメモリーページにおけるVTL0のメモリーアクセス保護を「アクセス不可」に設定することができ、データまたはコードをメモリーページ内に保存することができる。この設定は該メモリーページを「セキュア」モードに置き、該メモリーページはVTL0で稼働中のプログラムにとってアクセス不可となる。したがって、オペレーティングシステムがたとえカーネルモードで稼働中であっても、メモリーページ内に保存されたデータまたはコードは、オペレーティングシステムがVTL0で稼働中の場合、オペレーティングシステムにとってアクセス不能である。
[00247]しかし、本明細書において論じられる技法は、異なるモードでの実行または保護リングに対応する仮想プロセッサーと併用され得る。例えば、仮想プロセッサーは独自のカーネルモードおよび使用者モードをVTL1の状態にすることができ、また独自のカーネルモードおよび使用者モードをVTL0の状態にすることもできる。したがって、VTL1の状態のアドレス空間は、VTL1のカーネルモードによって許可されない限り、VTL1の状態にある別のアドレス空間にアクセスできない。一方、VTL0のカーネルモードはVTL1の状態にあるアドレス空間に一切アクセスできない(VTL1の状態にあるアドレス空間のメモリーページが相応に表記済みであると想定)。
[00248]次に、以下の議論では、実施され得る多数の方法および方法行為に言及する。方法行為については一定の順序で論ずるか、または特定の順序で発生する通りにフローチャートで例示することができるが、具体的に言明または要求されない限り、特定の順序付けは必要なく、何故なら行為は実行中の行為の前に完了される別の行為次第であるからである。
[00249]今度は図7を参考に、方法700を例示する。方法700はコンピューティング環境内で実践することができ、またホストに対する信頼を確立するための行為を含む。方法700は、ホストアテステーションサービスが、物理マシン上に展開されたホストから、ホストが満たす一定の特徴に関して検証可能な指標を受け取ることを含む(行為702)。例えば、図2は、HAS258によって受信されるリクエスト260を送信する、ホスト230を例示する図である。リクエストは、一定のホストの特徴に関する検証可能な証拠を含み得る。
[00250]方法700はさらに、一定の特徴の指標を基に、ホストが一定の要件を満たすことの判定の試みをも含む(行為704)。例えば、HAS258は、リクエスト260に含まれる証拠の検証を試み得る。
[00251]ホストが信頼実行環境(TEE)を含む旨の要件を少なくとも満たすことを含む一定の要件をホストが満たす場合、ホストアテステーションサービスはホストへ証明書を発行し、ホストはこれを使用して、ホストアテステーションサービスに対して信頼関係を有する1つまたは複数のエンティティを認証する(authenticate)ことができる(行為706)。したがって、図2で例示されている通り、HAS258は証明書257を発行し、ホスト230はこれを使用して、様々なキーまたは他の特権を取得することができる。
[00252]方法700は、一定の要件がさらに、ホストを実装する物理マシン上のTPM(信頼プラットフォームモジュール)に関連する要件をも含む場合に実践され得る。例えば、実施形態では、ホストを実装する物理マシン側にTPMがインストールされること、および/またはTPMが特定の形で、もしくは特定の目的に使用されることを要求し得る。代替的または付加的に、一定の要件はさらに、ARM TrustZoneおよび/またはIntel SGX能力に関連する要件をも含む。
[00253]方法700はさらに、ホストを実装する物理マシンが一定の要件を検証可能な形で満たすことの判定に失敗した結果として、ホストが一定の要件を満たさない旨の、ゲスト仮想マシンを展開するよう構成された仮想マシンマネージャー(VMM)への通知をも含み得る。そのような一部の実施形態において、これは前述の通り、信頼されないホストへの絶望的な仮想マシン展開を防ぐよう、VMMがゲスト仮想マシンをホスト上に展開することを回避し得る形で行うことができる。
[00254]方法700はさらに、ホストが一定の要件を検証可能な形で満たすことの判定に失敗した結果として、ホストはゲスト仮想マシンの展開に利用可能でない旨の、仮想マシンマネージャー(VMM)への通知をも含み得る。
[00255]方法700は、一定の要件がさらに、ホストを実装する物理ホストマシン向けに、侵害されずに起動が発生したことを検証するための、適正かつ信頼に値するUEFI(統一拡張ファームウェアインターフェース)報告が提供される旨の要件をも含む場合に実践され得る。例えば、これはルートキットがホストにインストールされていないことを検証する形で行うことができる。
[00256]方法700は、一定の要件がさらに、ホストが適正なHVCI(ハイパーバイザー強制型コード整合性)ポリシー妥当性確認を含むという検証可能な指標が提供される旨の要件をも含む場合に実践され得る。
[00257]方法700は、一定の要件がさらに、ホストが特定の地理的位置に所在する旨の要件をも含む場合に実践され得る。例えば、政治的理由、ポリシー遵守上の理由または他の理由により、一定のエンティティが、仮想マシンを展開可能な領域の制限を希望し得る。これは、ホストが特定の地理的位置に所在しない状況を含み得る。特に、この要件は、何らかの除外される地理的位置に該当しない特定の地理的位置にホストが所在することを意味し得る。したがって、方法700は、一定の要件がさらに、ホストが特定の地理的位置に所在しない旨の要件をも含む場合に実践され得る。
[00258]方法700は、一定の要件がさらに、ホストがセキュアなネットワークに連結される旨の要件をも含む場合に実践され得る。実施形態において、セキュアなネットワークは、物理的および/または論理的に隔離されていること、任意の物理的建物内に所在すること、ケルベロスを使用して保安されていること、ネットワークアクセス保護を使用して保安されていること、既知の方法を使用する盗聴攻撃に対して保安されていること、および既知の方法を使用するリプレイ攻撃に対して保安されていることなど、1つまたは複数の特性を特徴とし得る。方法700は、一定の要件がさらに、セキュアな起動ポリシーの合致、起動デバッガーの不存在、カーネルデバッガーの不存在、デバッギング機能性の不存在、およびプリOS起動スタックでのソフトウェアの既定の構成から成る群から選択される要件をも含む場合に実践され得る。
[00259]方法700はさらに、ホストアテステーションサービスと、ホストが証明書の提示によってキーを取得できる元となるキー分配サービスとの間での、信頼関係の創出をも含み得る。
[00260]方法700は、ファブリック管理システムを有する環境にホストアテステーションサービスが実装される環境で方法が実施され、ファブリック管理システムがホストオペレーティングシステム、ホスト構成、HVCIホワイトリスト、HVCI取消リスト、UEFIホワイトリストまたはUEFI取消リストのうち少なくとも1つを管理するよう構成される場合に実践され得る。そのような一部の実施形態において、ファブリック管理システムの管理者の認証に使用されるものとは異なる認証(authentication)および/または認可サービスが、ホストアテステーションサービスの管理者の認証に使用される。この管理の分離は、セキュリティ侵害に影響を及ぼす管理者の結託を必要とすることによって、セキュリティの「内部犯行」侵害防止に役立ち得る。
[00261]方法700は、仮想マシンマネージャーを有する環境にホストアテステーションサービスが実装される環境で方法が実施され、仮想マシンマネージャーが遮蔽型ゲスト仮想マシンをホストに展開するよう構成されるが、仮想マシンマネージャーは遮蔽型ゲスト仮想マシンの暗号を解読することができない場合に実践され得る。したがって、仮想マシンはVMMにより展開され得るが、引き続き、VMMからは秘密の状態に保たれ得る。そのような一部の実施形態において、方法700は、仮想マシンマネージャーの管理者の認証に使用されるものとは異なる認証サービスが、ホストアテステーションサービスの管理者の認証に使用される環境で実践され得る。これも同じく、セキュリティ侵害を犯すには結託を必要とすることにより、そのような侵害の防止に役立ち得る。一部の実施形態において、同じ認証サービスであるがセキュリティ構成が異なるサービスが使用され得る。例えば、単一の認証サービスにおいて、通常のパスワードベースの認証システムと、スマートカードベースのシステムとを提供し得る。
[00262]今度は図8を参考に、方法800を例示する。方法800は、コンピューティング環境において実践され得る。該方法は、ホストに対する信頼を確立するための行為を含む。該方法は、物理マシンを使用して実装されるホストが、ホストの一定の特徴に関して検証可能な指標をホストアテステーションサービスへ送ることを含む(行為802)。
[00263]ホストアテステーションサービスが一定の特徴の指標を評価することによって判定される、ホストが信頼実行環境(TEE)を含む旨の要件を少なくとも満たすことを含む一定の要件をホストが満たす結果、方法802は、ホストアテステーションサービスに対して信頼関係を有する1つまたは複数のエンティティを認証するためにホストが使用できる証明書を、ホストがホストアテステーションサービスから受け取ることを含む(行為804)。
[00264]方法800は、一定の要件がさらに、ホストを実装する物理マシン上のTPM(信頼プラットフォームモジュール)に関連する要件をも含む場合に実践され得る。代替的または付加的に、一定の要件はさらに、ARM TrustZoneおよび/またはIntel SGX能力に関連する要件をも含む。
[00265]方法800は、一定の要件がさらに、ホストが実装されている物理マシンに、適正かつ信頼に値するUEFI(統一拡張ファームウェアインターフェース)報告が提供される旨の要件をも含む場合に実践され得る。
[00266]方法800は、一定の要件がさらに、ホストが適正なHVCI(ハイパーバイザー強制型コード整合性)ポリシー妥当性確認を含むという検証可能な指標が提供される旨の要件をも含む場合に実践され得る。
[00267]方法800は、一定の要件がさらに、ホストが特定の地理的位置に所在する旨の要件をも含む場合に実践され得る。これは、ホストが特定の地理的位置に所在しない状況を含み得る。特に、この要件は、何らかの除外される地理的位置に該当しない特定の地理的位置にホストが所在することを意味し得る。したがって、方法800は、一定の要件がさらに、ホストが特定の地理的位置に所在しない旨の要件をも含む場合に実践され得る。
[00268]方法800は、一定の要件がさらに、ホストがセキュアなネットワークに連結される旨の要件をも含む場合に実践され得る。
[00269]方法800は、ホストアテステーションサービスと、ホストが証明書の提示によってキーを取得できる元となるキー分配サービスとの間に信頼関係が存在する環境において実践され得る。そのような一部の実施形態において、方法800は、テナントからホストへのリクエストに応じて遮蔽型ゲスト仮想マシンが仮想マシンマネージャーによって展開されるが、仮想マシンマネージャーは遮蔽型ゲスト仮想マシンの暗号を解読することができない場合に実践され得る。該方法はさらに、ホストアテステーションサービスによって署名された証明書をキー分配サービスが許容するという意味でホストアテステーションサービスを信頼するキー分配サービスからキーを取得するために、ホストが証明書を使用することをも含み得る。ホストがその後、キーを使用して遮蔽型ゲスト仮想マシンの暗号を解読する結果、ゲスト仮想マシンはホスト上で稼働可能となる。そのような一部の実施形態において、ホストは、ゲスト仮想マシンの展開におけるセキュリティ上の詳細に関する暗号化メッセージを作成する(例:展開がセキュアな形または暗号化された形で行われたことを示す、テナント宛の証明メッセージ)。暗号化メッセージは仮想マシンマネージャーによる解読は不可能であるが、テナントによる解読は可能である。ホストは暗号化メッセージを仮想マシンマネージャーへ送り、この暗号化メッセージは仮想マシンマネージャーが読むことができない状態でテナントへ転送され得る。
[00270]今度は図9を参考に、方法900を例示する。方法900はコンピューティング環境において実践することができ、また暗号化エンティティを信頼エンティティ上で展開するための行為を含む。方法900は、信頼エンティティ側にて、一定の要件を満たす信頼エンティティの一定の特徴について検証可能な指標を提供する結果として、ある権限者から該信頼エンティティが信頼される場合、権限者から信頼されない非信頼エンティティから暗号化エンティティを受け取ることを含む(行為902)。方法100はさらに、信頼エンティティ側にて、権限者から信頼されるキー分配サービスからキーを取得するために権限者からの信頼認証情報を使用することを含む(行為904)。該方法はさらに、暗号化エンティティが信頼エンティティ側にて展開されることを可能にするために、キーを使用して暗号化エンティティを暗号解読することも含む(行為906)。
[00271]方法900は、一定の要件が、信頼エンティティが信頼実行環境(TEE)を有する仮想マシンであるという要件を含む場合に実践され得る。
[00272]方法900は、一定の要件が、信頼エンティティを実装する物理マシン上のTPM(信頼プラットフォームモジュール)に関連する要件を含む場合に実践され得る。代替的または付加的に、一定の要件はさらに、ARM TrustZoneおよび/またはIntel SGX能力に関連する要件をも含む。
[00273]方法900は、一定の要件が、信頼エンティティが適正かつ信頼に値するUEFI報告を有する物理マシンを使用して実装される旨の要件を含む場合に実践され得る。
[00274]方法900は、一定の要件が、信頼エンティティが適正なHVCI(ハイパーバイザー強制型コード整合性)ポリシー妥当性確認を含む旨の要件を含む場合に実践され得る。
[00275]方法900は、一定の要件が、信頼エンティティが物理的に特定の地理的位置に所在する旨の要件を含む場合に実践され得る。これは、信頼エンティティが特定の地理的位置に所在しない状況を含み得る。特に、この要件は、何らかの除外される地理的位置に該当しない特定の地理的位置に信頼エンティティが所在することを意味し得る。したがって、方法900は、一定の要件が、信頼エンティティが物理的に特定の地理的位置に所在しない旨の要件を含む場合に実践され得る。
[00276]方法900は、一定の要件が、信頼エンティティがセキュアなネットワークに連結される旨の要件をも含む場合に実践され得る。
[00277]方法900は、暗号化エンティティが、信頼エンティティ上に展開されることになる端末サーバーである場合に実践され得る。
[00278]方法900は、暗号化エンティティが、信頼エンティティ上に展開されることになるネットワーク変換情報を含む場合に実践され得る。
[00279]方法900は、暗号化エンティティが、信頼エンティティ上に展開されることになるセンシティブデータ(価格表、企業戦略、秘密個人情報など)を含む場合に実践され得る。
[00280]方法900は、暗号化エンティティが、信頼エンティティまたは信頼エンティティ上に展開されることになる他のエンティティの構成に使用される構成データを含む場合に実践され得る。
[00281]方法900は、暗号化エンティティが他の複数の暗号化エンティティと一緒に、サービスモデル展開の一環として展開される場合に実践され得る。
[00282]さらに、該方法は、1つまたは複数のプロセッサーやコンピューターメモリーなどコンピューター可読媒体を含む、コンピューターシステムによって実践され得る。特に、コンピューターメモリーは、1つまたは複数のプロセッサーによって実行された場合に、実施形態にて言及の行為など様々な機能を遂行させる、コンピューター実行可能命令を保存し得る。
[00283]本発明の実施形態は、以下にて詳述する通り、コンピューターハードウェアを含む専用または汎用のコンピューターを含むかまたは活用し得る。本発明の範囲内の実施形態は、コンピューター実行可能な命令および/またはデータ構造を運搬または保存するための、物理的および他のコンピューター可読媒体をも含む。そのようなコンピューター可読媒体は、汎用または専用のコンピューターシステムからアクセスできる、利用可能ないかなる媒体であってもよい。コンピューター実行可能命令を保存するコンピューター可読媒体は、物理的保存媒体である。コンピューター実行可能命令を運搬するコンピューター可読媒体は、伝送媒体である。したがって、例を挙げると、制限なく、本発明の実施形態は少なくとも2種類の特徴的なコンピューター可読媒体、すなわち物理的コンピューター可読保存媒体と、コンピューター可読伝送媒体とを含み得る。
[00284]物理的コンピューター可読保存媒体の例として、RAM、ROM、EEPROM、CD−ROMまたは他の光学ディスクストレージ(CD、DVDなど)、磁気ディスクストレージまたは他の磁気ストレージデバイス、またはその他、所望のプログラムコード手段をコンピューター実行可能な命令またはデータ構造の形で保存するために使用可能かつ汎用または専用のコンピューターからアクセス可能な媒体が挙げられる。
[00285]「ネットワーク」は、コンピューターシステムおよび/またはモジュールおよび/または他の電子デバイスの間での電子データ輸送を可能にする、1つまたは複数のデータリンクとして定義される。コンピューターに至るネットワーク上または別の通信接続(有線、無線、または有線もしくは無線の組み合わせのいずれか)上で情報が転送または提供される場合、コンピューターは適切に、接続を伝送媒体として捉える。伝送媒体の例として、所望のプログラムコード手段をコンピューター実行可能な命令またはデータ構造の形で運搬するために使用可能かつ汎用または専用のコンピューターからアクセス可能な、ネットワークおよび/またはデータリンクが挙げられる。上記を組み合わせたものも、コンピューター可読媒体の範囲に含まれる。
[00286]さらに、様々なコンピューターシステムコンポーネントに到達後、コンピューター実行可能な命令またはデータ構造の形であるプログラムコード手段は、コンピューター可読伝送媒体から物理的コンピューター可読保存媒体へと(または逆方向)自動的に転送され得る。例えば、コンピューター実行な命令またはデータ構造は、ネットワーク上またはデータリンク上で受信された後、ネットワークインターフェースモジュール(例:「NIC」)内のRAMにおいてバッファー処理され、その後、最終的に、コンピューターシステムのRAMおよび/またはコンピューターシステム側の低揮発性コンピューター可読物理保存媒体へと転送され得る。したがって、コンピューター可読物理保存媒体は、伝送媒体も活用(さらには主として活用)するコンピューターシステムコンポーネントに含まれ得る。
[00287]コンピューター実行可能命令の例として、汎用コンピューター、専用コンピューター、または専用処理デバイスに対し、一定の機能または機能群を遂行させる命令およびデータが挙げられる。コンピューター実行可能命令の例として、アセンブリー言語など2進法、中間フォーマットの命令、さらにはソースコードも挙げられる。対象事項は構造的特徴および/または方法論的行為に特有の言語で記述されているが、添付の請求項において定義される対象事項は、記載の特徴または上記の行為に必ずしも限定されるわけではないことが、理解されなければならない。むしろ、記載の特徴および行為は、請求項の実施形態の例として開示される。
[00288]当業者であれば、本発明はパーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサー、携帯端末、マルチプロセッサーシステム、マイクロプロセッサーベースまたはプログラム設定可能な家庭用電化製品、ネットワークPC、ミニコンピューター、メインフレームコンピューター、携帯電話機、PDA、ポケットベル、ルーター、スイッチなどを含む、多数の種類のコンピューターシステム構成を有するネットワークコンピューティング環境において実践され得ることを、理解することになる。本発明は、ネットワーク経由で(有線データリンク、無線データリンクまたは有線および無線の複合型データリンクにより)連動するローカルおよびリモートのコンピューターシステムがいずれも作業を遂行する、分散型システム環境においても実践され得る。分散型システム環境において、プログラムモジュールはローカルおよびリモート双方のメモリーストレージデバイスに配置され得る。
[00289]代替的または付加的に、本明細書に記載の機能性は、少なくとも部分的に、1つまたは複数のハードウェアロジックコンポーネントによって遂行され得る。使用され得る典型的種類のハードウェアロジックコンポーネントの例として、制限なく、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)システム、結合プログラム可能論理回路(CPLD)などが挙げられる。
[00290]本発明は、その精神または特徴から逸脱することなく、他の特異的形態でも具現化され得る。記載の実施形態は、あらゆる態様において、単なる例示であり、制限的ではないと解釈されなければならない。したがって、本発明の範囲は、前述の説明によるのではなくむしろ、添付の請求項によって示される。請求項の同等性の意味および範囲に該当する変更はすべて、それらの範囲に含まれることになる。

Claims (10)

  1. コンピューター実行可能命令を実行したときに1つまたは複数のプロセッサーによって実行されるコンピューター実施方法であって、前記コンピューター実行可能命令は、前記1つまたは複数のプロセッサーに、ホストに対する信頼を確立する方法を実行させ、前記コンピューター実施方法は、
    ホストアテステーションサービスが、物理マシン上に展開されたホストから、前記ホストが満たすある特徴の検証可能な指標を受けるステップと、
    前記ある特徴の前記指標から、前記ホストがある要件を満たすことの判定を試みるステップと、
    前記ホストが信頼実行環境(TEE)を含むという要件を少なくとも満たすことを含む前記ある要件を前記ホストが満たす場合に、前記ホストアテステーションサービスが、前記ホストアテステーションサービスと信頼関係を有する1つまたは複数のエンティティを認証するために前記ホストが使用できる証明書を前記ホストに発行するステップと
    を含む、コンピューター実施方法。
  2. 請求項1に記載のコンピューター実施方法であって、前記ある要件がさらに、前記ホストを実施する物理マシン上のTPM(信頼プラットフォームモジュール)に関連する要件を含む、方法。
  3. 請求項1に記載のコンピューター実施方法であって、前記ホストを実施する前記物理マシンが前記ある要件を検証可能な形で満たすことの判定に失敗した結果として、前記ホストが前記ある要件を満たさない旨を、ゲスト仮想マシンを展開するよう構成された仮想マシンマネージャー(VMM)へ通知するステップをさらに含む方法。
  4. 請求項1に記載のコンピューター実施方法であって、前記ホストが前記ある要件を検証可能な形で満たすことの判定に失敗した結果として、前記ホストが遮蔽型ゲスト仮想マシンの展開に利用可能でない旨を、仮想マシンマネージャー(VMM)へ通知するステップをさらに含む方法。
  5. 請求項1に記載のコンピューター実施方法であって、前記ある要件がさらに、前記ホストを実施する物理マシンに、侵害されずに起動が発生したことを検証するための、適正かつ信頼に値するUEFI(統一拡張ファームウェアインターフェース)報告が提供されるという要件を含む、方法。
  6. 請求項1に記載のコンピューター実施方法であって、前記ある要件がさらに、前記ホストが適正なHVCI(ハイパーバイザー強制型コード整合性)ポリシー妥当性確認を含むという検証可能な指標が提供されるという要件を含む、方法。
  7. 請求項1に記載のコンピューター実施方法であって、前記ホストアテステーションサービスと、前記ホストが前記証明書の提示によってキーを取得できるキー分配サービスとの間で、信頼関係をつくるステップをさらに含む、方法。
  8. 請求項1に記載のコンピューター実施方法であって、ファブリック管理システムを有する環境において前記ホストアテステーションサービスが実施される環境で実行され、前記ファブリック管理システムは、ホストオペレーティングシステム、ホスト構成、HVCIホワイトリスト、HVCI取消リスト、UEFIホワイトリストまたはUEFI取消リストのうち少なくとも1つを管理するよう構成され、前記ファブリック管理システムの管理者の認証に使用されるものとは異なる認証および認可の一方または双方のサービスが、前記ホストアテステーションサービスの管理者の認証に使用される、方法。
  9. コンピューター実行可能命令を実行したときに1つまたは複数のプロセッサーによって実行されるコンピューター実施方法であって、前記コンピューター実行可能命令が前記1つまたは複数のプロセッサーにホストに対する信頼を確立するための方法を実行させ、前記コンピューター実施方法は、
    物理マシンを使用して実施されるホストが、前記ホストのある特徴の検証可能な指標をホストアテステーションサービスへ送るステップと、
    前記ホストアテステーションサービスがある特徴の前記指標を評価することによって判定される、前記ホストが信頼実行環境(TEE)を含むという要件を少なくとも満たすことを含むある要件を前記ホストが満たす結果として、前記ホストが、前記ホストアテステーションサービスに対して信頼関係を有する1つまたは複数のエンティティを認証するために前記ホストが使用できる証明書を前記ホストアテステーションサービスから受けるステップと
    を含む、コンピューター実施方法。
  10. 請求項9に記載のコンピューター実施方法であって、前記ある要件がさらに、
    (a)前記ホストを実施する前記物理マシン上のTPM(信頼プラットフォームモジュール)に関連する要件、
    (b)前記ホストが実施される前記物理マシンに、適正かつ信頼に値するUEFI(統一拡張ファームウェアインターフェース)報告が提供されるという要件、
    (c)前記ホストが適正なHVCI(ハイパーバイザー強制型コード整合性)ポリシー妥当性確認を含むという検証可能な指標が提供されるという要件、
    (d)前記ホストが特定の地理的位置に所在するという要件、および
    (e)前記ホストがセキュアなネットワークに連結されるという要件
    から成る群から選択される要件を含む、方法。
JP2016566758A 2014-05-05 2015-05-04 信頼実行環境を含むホストのアテステーション Active JP6484255B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461988786P 2014-05-05 2014-05-05
US61/988,786 2014-05-05
US14/504,096 US9578017B2 (en) 2014-05-05 2014-10-01 Secure management of operations on protected virtual machines
US14/504,096 2014-10-01
PCT/US2015/028995 WO2015171478A1 (en) 2014-05-05 2015-05-04 Attestation of a host containing a trusted execution environment

Publications (3)

Publication Number Publication Date
JP2017520959A true JP2017520959A (ja) 2017-07-27
JP2017520959A5 JP2017520959A5 (ja) 2018-06-14
JP6484255B2 JP6484255B2 (ja) 2019-03-13

Family

ID=54356002

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016566806A Active JP6665113B2 (ja) 2014-05-05 2015-05-04 継続的な所有者アクセスを伴う、暗号化された仮想マシンの安全なトランスポート
JP2016566758A Active JP6484255B2 (ja) 2014-05-05 2015-05-04 信頼実行環境を含むホストのアテステーション

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016566806A Active JP6665113B2 (ja) 2014-05-05 2015-05-04 継続的な所有者アクセスを伴う、暗号化された仮想マシンの安全なトランスポート

Country Status (7)

Country Link
US (4) US9652631B2 (ja)
EP (2) EP3140950B1 (ja)
JP (2) JP6665113B2 (ja)
CN (2) CN106462439B (ja)
BR (2) BR112016024507B1 (ja)
RU (2) RU2693313C2 (ja)
WO (2) WO2015171476A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190128534A (ko) * 2018-05-08 2019-11-18 한국과학기술원 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법
JP2021524077A (ja) * 2018-05-25 2021-09-09 マイクロソフト テクノロジー ライセンシング,エルエルシー 仮想化のためのプロセッサ特徴id応答

Families Citing this family (296)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102183852B1 (ko) * 2013-11-22 2020-11-30 삼성전자주식회사 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9792448B2 (en) 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9760712B2 (en) * 2014-05-23 2017-09-12 Vmware, Inc. Application whitelisting using user identification
CN104268477B (zh) * 2014-09-26 2017-09-26 华为技术有限公司 一种安全控制方法及网络设备
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
US10013567B2 (en) * 2015-01-27 2018-07-03 Apple Inc. Private and public sharing of electronic assets
US9621948B2 (en) 2015-01-29 2017-04-11 Universal Electronics Inc. System and method for prioritizing and filtering CEC commands
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9712503B1 (en) * 2015-03-23 2017-07-18 Amazon Technologies, Inc. Computing instance migration
US9756050B1 (en) * 2015-03-26 2017-09-05 Amazon Technologies, Inc. Using transient processing containers for security authorization
US20160292431A1 (en) * 2015-04-02 2016-10-06 defend7, Inc. Management of encryption keys in an application container environment
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9652634B2 (en) * 2015-05-19 2017-05-16 Vmware, Inc. Maintaing encryption keys to provide encryption on top of data deduplication
US10078549B2 (en) 2015-05-19 2018-09-18 Vmware, Inc. Maintaining hole boundary information for restoring snapshots from parity
US9866574B1 (en) * 2015-06-01 2018-01-09 Amazon Technologies, Inc. Protected data type handling awareness
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10395029B1 (en) * 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10002014B2 (en) 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit
US10002015B2 (en) * 2015-07-10 2018-06-19 International Business Machines Corporation Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit
US9973432B2 (en) 2015-07-10 2018-05-15 International Business Machines Corporation Load balancing in a virtualized computing environment based on a fabric limit
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US9768966B2 (en) * 2015-08-07 2017-09-19 Google Inc. Peer to peer attestation
US11150927B1 (en) * 2015-08-10 2021-10-19 Amazon Technologies, Inc. Policy-based virtual machine instance cotenancy
US10929797B1 (en) * 2015-09-23 2021-02-23 Amazon Technologies, Inc. Fault tolerance determinations for networked resources
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
CN106775917B (zh) * 2015-11-19 2020-03-24 苏宁云计算有限公司 一种虚拟机启动的方法及系统
US10025947B1 (en) * 2015-11-30 2018-07-17 Ims Health Incorporated System and method to produce a virtually trusted database record
US9882901B2 (en) 2015-12-14 2018-01-30 International Business Machines Corporation End-to-end protection for shrouded virtual servers
US9894051B2 (en) 2015-12-14 2018-02-13 International Business Machines Corporation Extending shrouding capability of hosting system
JP2017111581A (ja) * 2015-12-15 2017-06-22 キヤノン株式会社 情報処理システム、制御方法
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) * 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10079693B2 (en) * 2015-12-28 2018-09-18 Netapp, Inc. Storage cluster management proxy
EP3345112B1 (en) * 2016-01-28 2020-04-22 Hewlett-Packard Development Company, L.P. Thresholds on scripts executable by unified extensible firmware interface systems
US10681078B2 (en) 2016-06-10 2020-06-09 Sophos Limited Key throttling to mitigate unauthorized file access
US10791097B2 (en) * 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US10686827B2 (en) 2016-04-14 2020-06-16 Sophos Limited Intermediate encryption for exposed content
US10650154B2 (en) 2016-02-12 2020-05-12 Sophos Limited Process-level control of encrypted content
US11429412B2 (en) 2016-02-25 2022-08-30 Red Hat Israel, Ltd. Guest protection from application code execution in kernel mode
CN105825131B (zh) * 2016-03-16 2018-12-21 广东工业大学 一种基于uefi的计算机安全启动防护方法
US10326744B1 (en) * 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US20170277898A1 (en) * 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces
US10063372B1 (en) * 2016-03-25 2018-08-28 EMC IP Holding Company LLC Generating pre-encrypted keys
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11379385B2 (en) * 2016-04-16 2022-07-05 Vmware, Inc. Techniques for protecting memory pages of a virtual computing instance
US10228924B2 (en) * 2016-04-19 2019-03-12 International Business Machines Corporation Application deployment and monitoring in a cloud environment to satisfy integrity and geo-fencing constraints
EP3244568B1 (en) * 2016-05-13 2019-01-09 Talenta s.r.o. Electronic locking system
US10135622B2 (en) * 2016-06-03 2018-11-20 Intel Corporation Flexible provisioning of attestation keys in secure enclaves
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
GB2551983B (en) 2016-06-30 2020-03-04 Sophos Ltd Perimeter encryption
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
US10460113B2 (en) * 2016-08-16 2019-10-29 International Business Machines Corporation Security fix of a container in a virtual machine environment
US20180060077A1 (en) * 2016-08-26 2018-03-01 Qualcomm Incorporated Trusted platform module support on reduced instruction set computing architectures
US10177908B2 (en) * 2016-08-30 2019-01-08 Workday, Inc. Secure storage decryption system
US10460118B2 (en) 2016-08-30 2019-10-29 Workday, Inc. Secure storage audit verification system
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
WO2018054473A1 (en) * 2016-09-22 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Version control for trusted computing
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10320571B2 (en) * 2016-09-23 2019-06-11 Microsoft Technology Licensing, Llc Techniques for authenticating devices using a trusted platform module device
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10310885B2 (en) * 2016-10-25 2019-06-04 Microsoft Technology Licensing, Llc Secure service hosted in a virtual security environment
US10462212B2 (en) * 2016-10-28 2019-10-29 At&T Intellectual Property I, L.P. Hybrid clouds
KR102511451B1 (ko) 2016-11-09 2023-03-17 삼성전자주식회사 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
US10447668B1 (en) * 2016-11-14 2019-10-15 Amazon Technologies, Inc. Virtual cryptographic module with load balancer and cryptographic module fleet
US10855464B2 (en) * 2016-11-23 2020-12-01 Vmware, Inc. Methods and apparatus to manage credentials in hyper-converged infrastructures
US10482034B2 (en) * 2016-11-29 2019-11-19 Microsoft Technology Licensing, Llc Remote attestation model for secure memory applications
CN108243163B (zh) * 2016-12-26 2020-11-13 航天信息股份有限公司 一种物流运输的加密安全控制方法、装置及系统
EP3550781B1 (en) * 2016-12-30 2021-02-17 Huawei Technologies Co., Ltd. Private information distribution method and device
CN110121857B (zh) * 2016-12-30 2021-02-09 华为技术有限公司 一种凭据分发的方法和设备
US10530777B2 (en) * 2017-01-24 2020-01-07 Microsoft Technology Licensing, Llc Data unsealing with a sealing enclave
US10972265B2 (en) * 2017-01-26 2021-04-06 Microsoft Technology Licensing, Llc Addressing a trusted execution environment
US10419402B2 (en) * 2017-01-26 2019-09-17 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using signing key
US10897459B2 (en) * 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
US10897360B2 (en) 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using clean room provisioning
US10250517B2 (en) 2017-02-03 2019-04-02 Microsoft Technology Licensing, Llc Completion-side client throttling
US11108698B2 (en) 2017-02-03 2021-08-31 Microsoft Technology Licensing, Llc Systems and methods for client-side throttling after server handling in a trusted client component
US10496425B2 (en) * 2017-02-21 2019-12-03 Red Hat, Inc. Systems and methods for providing processor state protections in a virtualized environment
CN108469986B (zh) 2017-02-23 2021-04-09 华为技术有限公司 一种数据迁移方法及装置
CN107797817B (zh) * 2017-03-13 2021-02-19 平安科技(深圳)有限公司 应用更新方法和装置
JP6408627B2 (ja) * 2017-03-14 2018-10-17 Kddi株式会社 遠隔機器制御システム、及び、遠隔機器制御方法
US10509733B2 (en) 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10169577B1 (en) * 2017-03-28 2019-01-01 Symantec Corporation Systems and methods for detecting modification attacks on shared physical memory
US20180288101A1 (en) * 2017-03-29 2018-10-04 Hewlett Packard Enterprise Development Lp Verifying that usage of virtual network function (vnf) by a plurality of compute nodes comply with allowed usage rights
US10956193B2 (en) * 2017-03-31 2021-03-23 Microsoft Technology Licensing, Llc Hypervisor virtual processor execution with extra-hypervisor scheduling
US9992029B1 (en) * 2017-04-05 2018-06-05 Stripe, Inc. Systems and methods for providing authentication to a plurality of devices
US10587411B2 (en) 2017-04-11 2020-03-10 International Business Machines Corporation Zero-knowledge verifiably attestable transaction containers using secure processors
US10209917B2 (en) 2017-04-20 2019-02-19 Red Hat, Inc. Physical memory migration for secure encrypted virtual machines
US10423791B2 (en) * 2017-04-27 2019-09-24 Microsoft Technology Licensing, Llc Enabling offline restart of shielded virtual machines using key caching
US10379764B2 (en) 2017-05-11 2019-08-13 Red Hat, Inc. Virtual machine page movement for encrypted memory
US10747585B2 (en) * 2017-05-26 2020-08-18 Vmware Inc. Methods and apparatus to perform data migration in a distributed environment
US10860724B2 (en) * 2017-06-13 2020-12-08 Microsoft Technology Licensing, Llc Active key rolling for sensitive data protection
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US10445009B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Systems and methods of controlling memory footprint
CN109218260B (zh) * 2017-07-03 2020-11-06 深圳市中兴微电子技术有限公司 一种基于可信任环境的认证保护系统及方法
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
US11354420B2 (en) 2017-07-21 2022-06-07 Red Hat, Inc. Re-duplication of de-duplicated encrypted memory
US11726813B2 (en) * 2017-08-01 2023-08-15 Cable Television Laboratories, Inc. Systems and methods for establishing scalable credential creation and access
US10848494B2 (en) * 2017-08-14 2020-11-24 Microsoft Technology Licensing, Llc Compliance boundaries for multi-tenant cloud environment
US10534921B2 (en) 2017-08-23 2020-01-14 Red Hat, Inc. Copy and decrypt support for encrypted virtual machines
US10693844B2 (en) * 2017-08-24 2020-06-23 Red Hat, Inc. Efficient migration for encrypted virtual machines by active page copying
US10841089B2 (en) * 2017-08-25 2020-11-17 Nutanix, Inc. Key managers for distributed computing systems
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US20190087580A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Secure launch for a hypervisor
CN111066284B (zh) * 2017-10-09 2021-06-29 华为技术有限公司 一种业务证书管理方法、终端及服务器
US11943368B2 (en) * 2017-11-03 2024-03-26 Microsoft Technology Licensing, Llc Provisioning trusted execution environment based on chain of trust including platform
US10713144B2 (en) * 2017-11-15 2020-07-14 General Electric Company Virtual processor enabling real-time in situ disassembly and debugging in SoC environment
CN111630514A (zh) * 2017-11-20 2020-09-04 瑞典爱立信有限公司 将分布式应用的组件部署到运行时环境
US10922132B1 (en) * 2017-12-11 2021-02-16 Amazon Technologies, Inc. Secure migration of servers from customer networks to service provider systems
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US11113400B1 (en) * 2017-12-26 2021-09-07 Virtuozzo International Gmbh System and method for providing distributed compute platform on untrusted hardware
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10855724B2 (en) * 2018-03-22 2020-12-01 EMC IP Holding Company, LLC Securely establishing key-based SSH communications between virtual machines during cloud marketplace provisioning
US10713110B2 (en) * 2018-03-27 2020-07-14 Accenture Global Solutions Limited Automated issue detection and resolution framework for enterprise resource planning
US11356315B2 (en) 2018-03-28 2022-06-07 Intel Corporation Methods and apparatus to dynamically control devices based on distributed data
PL3782058T3 (pl) * 2018-04-20 2024-07-29 Vishal Gupta Zdecentralizowany silnik weryfikacji dokumentów i jednostek
CN110414245B (zh) * 2018-04-28 2023-09-22 伊姆西Ip控股有限责任公司 用于在存储系统中管理加密密钥的方法、装置和计算机程序产品
US10922441B2 (en) * 2018-05-04 2021-02-16 Huawei Technologies Co., Ltd. Device and method for data security with a trusted execution environment
US10891385B2 (en) * 2018-05-16 2021-01-12 Microsoft Technology Licensing, Llc Encryption at rest for cloud-resourced virtual machines
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
JP7135569B2 (ja) * 2018-08-13 2022-09-13 日本電信電話株式会社 端末登録システムおよび端末登録方法
US11232212B2 (en) 2018-08-21 2022-01-25 The Regents Of The University Of Michigan Computer system with moving target defenses against vulnerability attacks
US11188477B2 (en) 2018-09-11 2021-11-30 Apple Inc. Page protection layer
WO2020055968A1 (en) 2018-09-11 2020-03-19 Amari.Ai Incorporated Secure communications gateway for trusted execution and secure communications
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US10708247B2 (en) * 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11017092B2 (en) * 2018-09-27 2021-05-25 Intel Corporation Technologies for fast launch of trusted containers
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10901918B2 (en) * 2018-11-29 2021-01-26 International Business Machines Corporation Constructing flexibly-secure systems in a disaggregated environment
EP3661244A1 (en) * 2018-11-30 2020-06-03 Nagravision SA Key negotiation and provisioning for devices in a network
CN109684829B (zh) * 2018-12-04 2020-12-04 中国科学院数据与通信保护研究教育中心 一种虚拟化环境中服务调用监控方法和系统
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11271994B2 (en) * 2018-12-28 2022-03-08 Intel Corporation Technologies for providing selective offload of execution to the edge
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11475138B2 (en) * 2019-02-06 2022-10-18 International Business Machines Corporation Creation and execution of secure containers
US10795718B2 (en) 2019-02-08 2020-10-06 Microsoft Technology Licensing, Llc Updating hardware with reduced virtual machine downtime
US11469903B2 (en) * 2019-02-28 2022-10-11 Microsoft Technology Licensing, Llc Autonomous signing management operations for a key distribution service
US11126453B2 (en) 2019-03-07 2021-09-21 Micron Technology, Inc. Protected regions management of memory
US11354421B2 (en) 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11640361B2 (en) 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
CN109921902B (zh) 2019-03-22 2020-10-23 创新先进技术有限公司 一种密钥管理方法、安全芯片、业务服务器及信息系统
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US20200364354A1 (en) * 2019-05-17 2020-11-19 Microsoft Technology Licensing, Llc Mitigation of ransomware in integrated, isolated applications
US11095661B2 (en) 2019-05-29 2021-08-17 Cisco Technology, Inc. Enforcing data sovereignty policies in a cloud environment
US11537421B1 (en) * 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11489675B1 (en) * 2019-07-12 2022-11-01 Allscripts Software, Llc Computing system for electronic message tamper-roofing
DE102019211314A1 (de) * 2019-07-30 2021-02-04 Infineon Technologies Ag Vertrauenswürdige Datenverarbeitung
WO2021034753A2 (en) * 2019-08-16 2021-02-25 The Regents Of The University Of Michigan Thwarting control plane attacks with displaced and dilated address spaces
US11159453B2 (en) 2019-08-22 2021-10-26 International Business Machines Corporation Fabric-based storage-server connection
US11507666B2 (en) 2019-08-27 2022-11-22 Red Hat, Inc. Trusted execution environment verification of a software package
US10790979B1 (en) 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate
CN110677240B (zh) * 2019-08-29 2020-07-10 阿里巴巴集团控股有限公司 通过证书签发提供高可用计算服务的方法、装置及介质
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11494493B1 (en) 2019-09-23 2022-11-08 Amazon Technologies, Inc. Software verification for network-accessible applications
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11962624B2 (en) 2019-09-27 2024-04-16 International Business Machines Corporation Metadata driven selection of entitlements in an identity governance system
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US20200136921A1 (en) 2019-09-28 2020-04-30 Intel Corporation Methods, system, articles of manufacture, and apparatus to manage telemetry data in an edge environment
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
KR20210049603A (ko) * 2019-10-25 2021-05-06 삼성전자주식회사 권한 정보에 기초한 인증서를 사용하여 액세스 컨트롤하는 방법 및 장치
US11354402B2 (en) * 2019-11-01 2022-06-07 Microsoft Technology Licensing, Llc Virtual environment type validation for policy enforcement
US12032979B2 (en) * 2019-11-06 2024-07-09 Amazon Technologies, Inc. Automated host attestation for secure run-time environments
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
CN111064569B (zh) * 2019-12-09 2021-04-20 支付宝(杭州)信息技术有限公司 可信计算集群的集群密钥获取方法及装置
US11449601B2 (en) 2020-01-08 2022-09-20 Red Hat, Inc. Proof of code compliance and protected integrity using a trusted execution environment
US11711351B2 (en) * 2020-01-14 2023-07-25 Vmware, Inc. Distributed management and installation of digital certificates on a cluster for authentication with an external key management service
US11475131B2 (en) 2020-01-27 2022-10-18 Red Hat, Inc. Hypervisor level signature checks for encrypted trusted execution environments
US11475167B2 (en) 2020-01-29 2022-10-18 International Business Machines Corporation Reserving one or more security modules for a secure guest
US11533174B2 (en) 2020-01-29 2022-12-20 International Business Machines Corporation Binding secure objects of a security module to a secure guest
US11281607B2 (en) * 2020-01-30 2022-03-22 Red Hat, Inc. Paravirtualized cluster mode for legacy APICs
US11630683B2 (en) 2020-02-26 2023-04-18 Red Hat, Inc. Low latency launch for trusted execution environments
US11888972B2 (en) 2020-02-26 2024-01-30 Red Hat, Inc. Split security for trusted execution environments
US11991155B2 (en) 2020-02-27 2024-05-21 Virtru Corporation Methods and systems for securing containerized applications
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11620411B2 (en) 2020-03-24 2023-04-04 Red Hat, Inc. Elastic launch for trusted execution environments
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11748133B2 (en) * 2020-04-23 2023-09-05 Netapp, Inc. Methods and systems for booting virtual machines in the cloud
US11397602B2 (en) * 2020-04-24 2022-07-26 Red Hat Inc. Processor control register configuration support
US12086257B2 (en) * 2020-04-24 2024-09-10 Omnissa, Llc Trusted firmware verification
US11327783B2 (en) 2020-04-29 2022-05-10 Red Hat, Inc. Asynchronous management of unencrypted memory page list of a virtual machine
US11528186B2 (en) * 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11880704B2 (en) * 2020-06-24 2024-01-23 Red Hat, Inc. Nested virtual machine support for hypervisors of encrypted state virtual machines
US11671412B2 (en) 2020-07-01 2023-06-06 Red Hat, Inc. Network bound encryption for orchestrating workloads with sensitive data
US11611431B2 (en) 2020-07-01 2023-03-21 Red Hat, Inc. Network bound encryption for recovery of trusted execution environments
US11645103B2 (en) * 2020-07-23 2023-05-09 EMC IP Holding Company LLC Method and system for securing the movement of virtual machines between hosts
US11741221B2 (en) 2020-07-29 2023-08-29 Red Hat, Inc. Using a trusted execution environment to enable network booting
US11558204B2 (en) 2020-08-17 2023-01-17 International Business Machines Corporation Attesting control over network devices
US11748140B2 (en) 2020-08-31 2023-09-05 Red Hat, Inc. Virtual machine security policy implementation
GB202014682D0 (en) * 2020-09-17 2020-11-04 Nordic Semiconductor Asa Bootloaders
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11651111B2 (en) * 2020-09-25 2023-05-16 Intel Corporation Enabling secure state-clean during configuration of partial reconfiguration bitstreams on FPGA
US11343082B2 (en) 2020-09-28 2022-05-24 Red Hat, Inc. Resource sharing for trusted execution environments
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11900131B2 (en) * 2020-10-15 2024-02-13 EMC IP Holding Company LLC Dynamic remediation actions in response to configuration checks in an information processing system
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US12106133B2 (en) * 2020-11-11 2024-10-01 Intel Corporation Method and apparatus for trusted devices using Trust Domain Extensions
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11847253B2 (en) * 2020-11-30 2023-12-19 Red Hat, Inc. Efficient launching of trusted execution environments
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
US11799670B2 (en) * 2020-12-11 2023-10-24 Vmware, Inc. Secure end-to-end deployment of workloads in a virtualized environment using hardware-based attestation
US12039356B2 (en) * 2021-01-06 2024-07-16 Baidu Usa Llc Method for virtual machine migration with checkpoint authentication in virtualization environment
US12086620B2 (en) 2021-01-06 2024-09-10 Kunlunxin Technology (Beijing) Company Limited Method for virtual machine migration with artificial intelligence accelerator status validation in virtualization environment
US20220278963A1 (en) * 2021-03-01 2022-09-01 Samsung Electronics Co., Ltd. Storage device, storage system, and method of secure data movement between storage devices
CN112995206B (zh) * 2021-04-13 2021-07-30 北京电信易通信息技术股份有限公司 一种基于可信技术实现多型工作单元安全联动的方法
US12028345B2 (en) 2021-05-19 2024-07-02 Bank Of America Corporation Information security system and method for identifying trusted machines for machine-to-machine (M2M) security and validation
US11829482B2 (en) * 2021-06-08 2023-11-28 Dell Products L.P. Pre-boot authentication for virtual machines using credentials stored in virtual trusted platform modules
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11995197B2 (en) 2021-07-27 2024-05-28 International Business Machines Corporation Sensitive data encryption
US20230030816A1 (en) * 2021-07-30 2023-02-02 Red Hat, Inc. Security broker for consumers of tee-protected services
US11870647B1 (en) 2021-09-01 2024-01-09 Amazon Technologies, Inc. Mapping on-premise network nodes to cloud network nodes
US11799633B1 (en) * 2021-09-27 2023-10-24 Workday, Inc. Enabling using external tenant master keys
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US11960607B2 (en) 2021-12-09 2024-04-16 Cisco Technology, Inc. Achieving minimum trustworthiness in distributed workloads
US11972007B2 (en) 2021-12-09 2024-04-30 Cisco Technology, Inc. Enforcing location-based data privacy rules across networked workloads
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
CN116361818A (zh) * 2021-12-27 2023-06-30 戴尔产品有限公司 用于访问管理控制器的自动安全验证
CN114637602A (zh) * 2022-03-03 2022-06-17 鼎捷软件股份有限公司 数据分享系统以及数据分享方法
WO2023173102A2 (en) * 2022-03-10 2023-09-14 BedRock Systems, Inc. Zero trust endpoint device
CN114629639A (zh) * 2022-03-10 2022-06-14 阿里云计算有限公司 基于可信执行环境的密钥管理方法、装置和电子设备
US20230342469A1 (en) * 2022-04-26 2023-10-26 Dell Products L.P. Clustered virtual trusted platform module domain services with a redirector/router service system
EP4328772A1 (de) * 2022-08-26 2024-02-28 Siemens Aktiengesellschaft Kaskadiert signierbares artefakt einer container-instanz
KR20240104780A (ko) * 2022-12-28 2024-07-05 충남대학교산학협력단 모바일 기기의 동적커널모듈 보호 방법 및 이를 이용한 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012081114A1 (ja) * 2010-12-16 2012-06-21 株式会社日立製作所 仮想計算機管理方法、計算機システム及び計算機
US20120266231A1 (en) * 2011-04-18 2012-10-18 Bank Of America Corporation Secure Network Cloud Architecture
US20130024920A1 (en) * 2011-07-21 2013-01-24 International Business Machines Corporation Virtual computer and service
US20130061293A1 (en) * 2011-09-02 2013-03-07 Wenbo Mao Method and apparatus for securing the full lifecycle of a virtual machine
US20130185812A1 (en) * 2010-03-25 2013-07-18 David Lie System and method for secure cloud computing
US20140089658A1 (en) * 2012-09-27 2014-03-27 Yeluri Raghuram Method and system to securely migrate and provision virtual machine images and content

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001239887A1 (en) 2000-02-24 2001-09-03 Valicert Corporation Mechanism for efficient private bulk messaging
GB2382419B (en) 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US8065713B1 (en) * 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US20050166051A1 (en) 2004-01-26 2005-07-28 Mark Buer System and method for certification of a secure platform
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7380119B2 (en) 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7673139B1 (en) * 2004-05-06 2010-03-02 Symantec Corporation Protecting administrative privileges
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US20060126836A1 (en) * 2004-12-10 2006-06-15 Hector Rivas System and method for dynamic generation of encryption keys
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7860802B2 (en) * 2005-02-01 2010-12-28 Microsoft Corporation Flexible licensing architecture in content rights management systems
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7836299B2 (en) 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8074262B2 (en) * 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
RU2390959C2 (ru) * 2005-06-17 2010-05-27 Телефонактиеболагет Лм Эрикссон (Пабл) Способ и устройство протокола идентификации хост-узла
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US8090919B2 (en) * 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US8549592B2 (en) 2005-07-12 2013-10-01 International Business Machines Corporation Establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform
US9425958B2 (en) 2005-08-05 2016-08-23 Hewlett Packard Enterprise Development Lp System, method and apparatus for cryptography key management for mobile devices
CA2637980A1 (en) 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing access to a computing environment
US7444670B2 (en) 2006-03-21 2008-10-28 International Business Machines Corporation Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
WO2007124091A1 (en) * 2006-04-21 2007-11-01 Interdigital Technology Corporation Apparatus and methods for performing trusted computing integrity measurement reporting
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
WO2008001327A2 (en) * 2006-06-30 2008-01-03 Koninklijke Philips Electronics N.V. Method and apparatus for encrypting/decrypting data
US8522018B2 (en) 2006-08-18 2013-08-27 Fujitsu Limited Method and system for implementing a mobile trusted platform module
US8555072B2 (en) 2006-08-31 2013-10-08 International Business Machines Corporation Attestation of computing platforms
US9135444B2 (en) 2006-10-19 2015-09-15 Novell, Inc. Trusted platform module (TPM) assisted data center management
US20100107163A1 (en) 2007-03-20 2010-04-29 Sanggyu Lee Movable virtual machine image
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8875266B2 (en) * 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
US8060876B2 (en) 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US7827371B2 (en) * 2007-08-30 2010-11-02 Intel Corporation Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US9043896B2 (en) 2007-08-31 2015-05-26 International Business Machines Corporation Device certificate based appliance configuration
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8220029B2 (en) 2007-11-13 2012-07-10 Samsung Electronics Co., Ltd. Method and system for enforcing trusted computing policies in a hypervisor security module architecture
US8208637B2 (en) 2007-12-17 2012-06-26 Microsoft Corporation Migration of computer secrets
EP2261832A4 (en) 2008-02-25 2012-09-26 Panasonic Corp INFORMATION PROCESSING DEVICE
US8516481B2 (en) 2008-04-04 2013-08-20 Hewlett-Packard Development Company, L.P. Virtual machine manager system and methods
US8543799B2 (en) 2008-05-02 2013-09-24 Microsoft Corporation Client authentication during network boot
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8307353B2 (en) * 2008-08-12 2012-11-06 Oracle America, Inc. Cross-domain inlining in a system virtual machine
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8411863B2 (en) 2008-10-03 2013-04-02 Microsoft Corporation Full volume encryption in a clustered environment
US9300612B2 (en) * 2009-01-15 2016-03-29 International Business Machines Corporation Managing interactions in a virtual world environment
US8341427B2 (en) 2009-02-16 2012-12-25 Microsoft Corporation Trusted cloud computing and services framework
US8375195B2 (en) * 2009-03-05 2013-02-12 Oracle America, Inc. Accessing memory locations for paged memory objects in an object-addressed memory system
EP2278514B1 (en) * 2009-07-16 2018-05-30 Alcatel Lucent System and method for providing secure virtual machines
US8763005B2 (en) 2009-07-24 2014-06-24 Hewlett-Packard Development Company, L.P. Virtual-machine-based application-service provision of front-end versions of back-end applications
US8713182B2 (en) 2009-08-03 2014-04-29 Oracle International Corporation Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
JP2011048661A (ja) * 2009-08-27 2011-03-10 Nomura Research Institute Ltd 仮想サーバ暗号化システム
CA2675701A1 (en) * 2009-08-27 2009-11-05 Ibm Canada Limited - Ibm Canada Limitee Trust assertion using hierarchical weights
US8700893B2 (en) 2009-10-28 2014-04-15 Microsoft Corporation Key certification in one round trip
US8478996B2 (en) 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
US8375437B2 (en) 2010-03-30 2013-02-12 Microsoft Corporation Hardware supported virtualized cryptographic service
US20110246778A1 (en) 2010-03-31 2011-10-06 Emc Corporation Providing security mechanisms for virtual machine images
US8375220B2 (en) 2010-04-02 2013-02-12 Intel Corporation Methods and systems for secure remote wake, boot, and login to a computer from a mobile device
US9443078B2 (en) * 2010-04-20 2016-09-13 International Business Machines Corporation Secure access to a virtual machine
US8555377B2 (en) 2010-04-29 2013-10-08 High Cloud Security Secure virtual machine
JP2013528872A (ja) 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US8856504B2 (en) * 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
US8694777B2 (en) 2010-08-13 2014-04-08 International Business Machines Corporation Securely identifying host systems
EP2606448B1 (en) 2010-08-18 2016-02-10 Security First Corp. Systems and methods for securing virtual machine computing environments
WO2012025793A1 (en) * 2010-08-26 2012-03-01 Freescale Semiconductor, Inc. Memory management unit for a microprocessor system, microprocessor system and method for managing memory
US8495750B2 (en) * 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
TW201241662A (en) 2010-12-21 2012-10-16 Ibm Virtual machine validation
US9202062B2 (en) 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
US8880667B2 (en) 2011-02-09 2014-11-04 Microsoft Corporation Self regulation of the subject of attestation
US9172683B2 (en) * 2011-06-29 2015-10-27 Apple Inc. Method and apparatus for key distribution with implicit offline authorization
US8732462B2 (en) * 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
US8874935B2 (en) 2011-08-30 2014-10-28 Microsoft Corporation Sector map-based rapid data encryption policy compliance
US9270459B2 (en) 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
US8694786B2 (en) 2011-10-04 2014-04-08 International Business Machines Corporation Virtual machine images encryption using trusted computing group sealing
US20130097296A1 (en) 2011-10-18 2013-04-18 Telefonaktiebolaget L M Ericsson (Publ) Secure cloud-based virtual machine migration
WO2013112538A1 (en) 2012-01-23 2013-08-01 Citrix Systems, Inc. Storage encryption
US8909939B1 (en) 2012-04-04 2014-12-09 Google Inc. Distribution of cryptographic host keys in a cloud computing environment
US20150134965A1 (en) 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
US9183031B2 (en) * 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
US20140007087A1 (en) 2012-06-29 2014-01-02 Mark Scott-Nash Virtual trusted platform module
US20140019753A1 (en) 2012-07-10 2014-01-16 John Houston Lowry Cloud key management
US10248442B2 (en) 2012-07-12 2019-04-02 Unisys Corporation Automated provisioning of virtual machines
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine
US8997173B2 (en) 2012-09-12 2015-03-31 Ca, Inc. Managing security clusters in cloud computing environments using autonomous security risk negotiation agents
US8782401B2 (en) 2012-09-26 2014-07-15 Intel Corporation Enhanced privacy ID based platform attestation
RU2514140C1 (ru) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов
US8700898B1 (en) 2012-10-02 2014-04-15 Ca, Inc. System and method for multi-layered sensitive data protection in a virtual computing environment
US9374228B2 (en) 2012-10-12 2016-06-21 International Business Machines Corporation Verifying a geographic location of a virtual disk image executing at a data center server within a data center
US20150355829A1 (en) * 2013-01-11 2015-12-10 Koninklijke Philips N.V. Enabling a user to control coded light sources
CN103139221B (zh) * 2013-03-07 2016-07-06 中国科学院软件研究所 一种可信虚拟平台及其构建方法、平台之间数据迁移方法
US20140281497A1 (en) 2013-03-13 2014-09-18 General Instrument Corporation Online personalization update system for externally acquired keys
US9027087B2 (en) * 2013-03-14 2015-05-05 Rackspace Us, Inc. Method and system for identity-based authentication of virtual machines
CN105408910B (zh) 2013-08-28 2019-03-08 英特尔公司 用于利用无线通信对用户进行验证的系统和方法
US9401954B2 (en) 2013-11-06 2016-07-26 International Business Machines Corporation Scaling a trusted computing model in a globally distributed cloud environment
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9292686B2 (en) * 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9891918B2 (en) * 2014-01-27 2018-02-13 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185812A1 (en) * 2010-03-25 2013-07-18 David Lie System and method for secure cloud computing
WO2012081114A1 (ja) * 2010-12-16 2012-06-21 株式会社日立製作所 仮想計算機管理方法、計算機システム及び計算機
US20120266231A1 (en) * 2011-04-18 2012-10-18 Bank Of America Corporation Secure Network Cloud Architecture
US20130024920A1 (en) * 2011-07-21 2013-01-24 International Business Machines Corporation Virtual computer and service
US20130061293A1 (en) * 2011-09-02 2013-03-07 Wenbo Mao Method and apparatus for securing the full lifecycle of a virtual machine
US20140089658A1 (en) * 2012-09-27 2014-03-27 Yeluri Raghuram Method and system to securely migrate and provision virtual machine images and content

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190128534A (ko) * 2018-05-08 2019-11-18 한국과학기술원 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법
KR102095114B1 (ko) 2018-05-08 2020-03-30 한국과학기술원 기능확장을 위한 신뢰실행환경들의 결합 방법 및 비즈니스 프로세스 지원을 위한 fido u2f 활용 방법
JP2021524077A (ja) * 2018-05-25 2021-09-09 マイクロソフト テクノロジー ライセンシング,エルエルシー 仮想化のためのプロセッサ特徴id応答
JP7471230B2 (ja) 2018-05-25 2024-04-19 マイクロソフト テクノロジー ライセンシング,エルエルシー 仮想化のためのプロセッサ特徴id応答
US12020050B2 (en) 2018-05-25 2024-06-25 Microsoft Technology Licensing, Llc Processor feature ID response for virtualization

Also Published As

Publication number Publication date
CN106462439A (zh) 2017-02-22
US9652631B2 (en) 2017-05-16
CN106462438A (zh) 2017-02-22
US20160357988A1 (en) 2016-12-08
BR112016024507A2 (pt) 2017-08-15
US20150319160A1 (en) 2015-11-05
EP3140770B1 (en) 2020-02-12
EP3140770A1 (en) 2017-03-15
RU2016143088A3 (ja) 2018-11-26
JP6484255B2 (ja) 2019-03-13
RU2016143088A (ru) 2018-05-03
US10956321B2 (en) 2021-03-23
US10176095B2 (en) 2019-01-08
US20190155728A1 (en) 2019-05-23
JP6665113B2 (ja) 2020-03-13
CN106462438B (zh) 2019-12-03
RU2679721C2 (ru) 2019-02-12
BR112016024507A8 (pt) 2021-06-01
RU2016143089A3 (ja) 2018-12-05
US9578017B2 (en) 2017-02-21
BR112016024453A2 (pt) 2017-08-15
WO2015171478A1 (en) 2015-11-12
US20150318986A1 (en) 2015-11-05
JP2017515413A (ja) 2017-06-08
EP3140950B1 (en) 2019-06-26
BR112016024453B1 (pt) 2022-09-27
WO2015171476A1 (en) 2015-11-12
RU2016143089A (ru) 2018-05-04
EP3140950A1 (en) 2017-03-15
BR112016024453A8 (pt) 2021-07-13
RU2693313C2 (ru) 2019-07-02
CN106462439B (zh) 2020-02-07
BR112016024507B1 (pt) 2022-09-27

Similar Documents

Publication Publication Date Title
JP6484255B2 (ja) 信頼実行環境を含むホストのアテステーション
US20200301764A1 (en) Operating system on a computing system
Buhren et al. Insecure until proven updated: analyzing AMD SEV's remote attestation
US10084598B2 (en) Authenticating features of virtual server system
Ibrahim et al. Trusted cloud computing architectures for infrastructure as a service: Survey and systematic literature review
KR100930218B1 (ko) 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템
US8220029B2 (en) Method and system for enforcing trusted computing policies in a hypervisor security module architecture
CA2640804C (en) Method and system for integrated securing and managing of virtual machines and virtual appliances
US11714895B2 (en) Secure runtime systems and methods
US10083128B2 (en) Generating memory dumps
EP3776223B1 (en) Secured computer system
Bleikertz et al. Secure cloud maintenance: protecting workloads against insider attacks
Pontes et al. Attesting AMD SEV-SNP Virtual Machines with SPIRE
Deylami et al. Kororā: A secure live virtual machine job migration framework for cloud systems integrity
Aw Ideler Cryptography as a service in a cloud computing environment
Hashizume A reference architecture for cloud computing and its security applications
Ozga Hardening High-Assurance Security Systems with Trusted Computing
Pontes et al. Interoperable node integrity verification for confidential machines based on AMD SEV-SNP
Mohaddes Deylami A Secure Live Virtual Machine Job Migration Framework for Cloud Systems Integrity
KR20240016243A (ko) 온 다이 암호화 및 원격 증명을 통한 디지털 콘텐츠관리
Bleikertz et al. Secure Cloud Maintenance
Cases Hardware-Enabled Security

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180423

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190215

R150 Certificate of patent or registration of utility model

Ref document number: 6484255

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250