JP6141455B2 - 仮想化された環境における特権的な暗号サービス - Google Patents

仮想化された環境における特権的な暗号サービス Download PDF

Info

Publication number
JP6141455B2
JP6141455B2 JP2015555244A JP2015555244A JP6141455B2 JP 6141455 B2 JP6141455 B2 JP 6141455B2 JP 2015555244 A JP2015555244 A JP 2015555244A JP 2015555244 A JP2015555244 A JP 2015555244A JP 6141455 B2 JP6141455 B2 JP 6141455B2
Authority
JP
Japan
Prior art keywords
hypervisor
key
computing device
privileged
privileged service
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.)
Active
Application number
JP2015555244A
Other languages
English (en)
Other versions
JP2016511872A (ja
Inventor
ロス、グレゴリー・ブランチェク
ポトラパリー、ナチケス・ラオ
Original Assignee
アマゾン・テクノロジーズ、インコーポレイテッド
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 アマゾン・テクノロジーズ、インコーポレイテッド filed Critical アマゾン・テクノロジーズ、インコーポレイテッド
Publication of JP2016511872A publication Critical patent/JP2016511872A/ja
Application granted granted Critical
Publication of JP6141455B2 publication Critical patent/JP6141455B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

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

Description

インターネットのようなネットワーク上で利用可能となるアプリケーション及びサービスの数が増加するにつれて、クラウドコンピューティングのような技術に目を向けるコンテンツ、アプリケーション、及び/またはサービスプロバイダの数が増加している。クラウドコンピューティングは、概して、ウェブサービスのようなサービスを介して電子リソースへのアクセスを提供する手法であり、そのようなサービスをサポートするために使用されるハードウェア及び/またはソフトウェアは、任意の所与の時点でサービスのニーズを満たすために、動的にスケラーブルである。ユーザまたは顧客は、一般に、クラウドを介するリソースへのアクセスをレンタルする、リースする、またはその他の方法で支払うので、必要とされるハードウェア及び/またはソフトウェアを購入し、維持する必要がない。
この文脈において、多くのクラウドコンピューティングプロバイダが、複数のユーザが基本的なハードウェア及び/またはソフトウェアリソースを共有することを可能にするために、仮想化及びマルチテナントアーキテクチャを利用する。仮想化は、コンピューティングサーバ、記憶デバイス、または他のリソースが、特定のユーザと関連付けられた(例えば、所有されて)複数の分離されたインスタンスに分割されることを可能にし得る。これは、種々のユーザが、ユーザのアプリケーションを、クラウドコンピューティングプロバイダのリソース上で用いて遠隔で実行することを可能にする。
本開示に従った様々な実施形態を、図面を参照して説明する。
様々な実施形態に従って、暗号鍵情報を管理する、特権的なサービスの実施例を示す。 様々な実施形態に従って、信頼できるプラットフォームモジュール(TPM)を利用する、特権的なサービス実現の実施例を示す。 種々の実施形態に従って、ホストコンピューティングデバイス上に特権的な暗号サービスを提供するための、プロセスの実施例を示す。 様々な実施形態に従って、TPMを用いてハイパーバイザーを測定し、かつ改ざんの証拠を検出する、特権的なサービスによって行われ得るプロセスの実施例を示す。 様々な実施形態に従って利用することができるコンピューティングデバイスの実施例の全体的な構成要素の一組の論理的配設を示す。 様々な実施形態に従って、態様を実現するための環境の実施例を示す。
以下の説明では、様々な実施形態が、添付の図面の図において、限定としてでなく、実施例として示される。本開示における様々な実施形態への参照は、必ずしも同じ実施形態に対してではなく、そのような参照は、少なくとも1つを意味する。特定の実現形態及び他の詳細が説明されるが、これは実例の目的のみのために行われることを理解されたい。関連技術の当業者は、特許請求の主題の範囲及び趣旨から逸脱することなく、他の構成要素及び構成が使用できることを認識するであろう。
本開示の様々な実施形態によるシステム及び方法は、仮想化されたコンピューティング環境内で展開され得るなどの、コンピューティングシステム内でセキュリティを管理するために、従来の手法で経験する上記のまたは他の欠点の1つ以上を克服することができる。とりわけ、種々の実施形態は、システム管理モード(SMM)で実行するサービスなどの特権的な暗号サービスを利用して、マルチテナント遠隔プログラム実行環境(例えば、クラウドコンピューティング環境)内の暗号鍵及び/または他のセキュリティリソースを格納及び管理する。
種々の実施形態において、サービスプロバイダによって1人以上の顧客にマルチテナント遠隔プログラム実行環境が提供される。環境は、複数のホストコンピューティングデバイスを含み得、それぞれのホストコンピューティングデバイスが、1つ以上の仮想マシンを管理するハイパーバイザーを含む。それぞれの仮想マシンは、サービスプロバイダの特定の顧客と関連付けられ(例えば、所有されて)得、かつ仮想マシンは、サービスプロバイダの物理リソースを用いて、顧客が提供したコード(例えば、アプリケーション、サービスなど)を顧客の代わりに実行し得る。
従来のマルチテナント遠隔プログラム実行環境において、顧客のコードが仮想マシンの環境をエスケープし得、代わりにハイパーバイザーの文脈内で動作し得た場合、コードはいくつかの極秘情報及びホストコンピューティングデバイス上に存在する他のリソースへのアクセスを取得することができ得る。この潜在的な脆弱性は、しばしば仮想マシンエスケープと称される。例えば、1つの顧客のコードがハイパーバイザーの文脈内で動作することができる場合、コードは、別の顧客の暗号鍵及び他のセキュリティ情報へのアクセスを潜在的に取得し、これらの鍵を他の場所へエクスポートし、及び様々な他の悪意のある行為を行い得る。
種々の実施形態において、かかる権限のない行動への暴露を防止または低減するため、それぞれのホストコンピューティングデバイスが、システム管理モード(SMM)またはハイパーバイザー及び/またはホストコンピューティングデバイス上の他のオペレーティングシステムよりも特権的ないくつかのまた別のモードで実行すること、またはハイパーバイザーにアクセスできないメモリの少なくとも一部分へのアクセスを有することが可能な、特権的なサービスを含む。例えば、特権的なサービスはシステム管理モードで動作し得、ハイパーバイザー、仮想マシン、または他のオペレーティングシステムによるすべての通常の実行が一時停止され、かつ特権的なサービスが実行される。特権的なサービスは、1つ以上の暗号鍵を格納及び管理し、ハイパーバイザー、1つ以上の仮想マシン、及び/または他のエンティティから暗号鍵を用いる要求を受け取り、これらの要求への応答を発行し得る。また、特権的なサービスは、ハイパーバイザーの改ざんの証拠を検出する目的で、実行時に(例えば、定期的に、または要求に応答して)ハイパーバイザーを測定し得る。特権的なサービスがハイパーバイザーよりも特権的なシステム管理モードで動作しているため、特権的なサービスは、仮想マシンエスケープ及び他のハイパーバイザー攻撃に対し、堅牢であり得る。このスキーム下で、危殆化されたハイパーバイザーは、特権的なサービスによって管理される暗号鍵をエクスポートし得ない。さらに、ハイパーバイザーが改ざんされていることが検出された場合、ハイパーバイザーは、鍵を用いることを防止され得、または特権的なサービスによって格納されたすべての主要材料を破壊するなどのいくつかの他の行為が行われ得る。
いくつかの実施形態において、特権的なサービスは、信頼できるプラットフォームモジュール(TPM)またはホストコンピューティングデバイス上の他の暗号プロセッサを管理するために用いられ得る。これらの実施形態において、TPMは、ルート鍵を管理し、特権的なサービスのみがSMMで実行して導出された鍵にアクセスすることを可能にし得る。SMMは、鍵の使用をハイパーバイザー及び仮想マシンに順に提供し得る。一実施形態において、ホストコンピューティングデバイスの初期ブート中、特権的なサービスは、ハイパーバイザーの1つ以上の値を測定して、信頼できるハイパーバイザーが立ち上げられたことを確実にし得る。続いて実行時に、ハイパーバイザーを再測定し、実行時測定結果を起動時に測定された初期値と比較して改ざんの証拠を検出するために、システム管理割り込み(SMI)ルーチンが用いられ得る。
いくつかの実施形態において、仮想マシンへの仮想TPMサービスにSMIハンドラーによって管理され、かつハイパーバイザーにアクセスできない鍵を提供するために、特権的なサービスが用いられ得る。信頼できる鍵は、仮想TPMサービスを複数の顧客に提供する複数のハイパーバイザーを含むシステム内でのハイパーバイザーの危殆化を防ぐため、鍵が確実にSMIハンドラーのみに送達されるように、物理TPM内に定着し得る。このようにすると、いかなる仮想マシンエスケープも顧客の暗号鍵を別の顧客に暴露し得ない。
図1は、様々な実施形態に従って、暗号鍵情報を管理する、特権的なサービスの実施例100を示す。示される実施形態において、ホストコンピューティングデバイス104は、1つ以上の仮想マシン(105、106)を管理するハイパーバイザー107を含み、それぞれの仮想マシンは、顧客(101、102)と関連付けられる。1つ以上の仮想マシン(105、106)は、1人以上の顧客(101、102)によって提供されたコード(111、112)を実行し得る。顧客は、コードがインターネットなどのネットワーク103を通じて仮想マシン上で実行されることを提供し得る。安全な暗号サービスを提供するため、ホストコンピューティングデバイス104は、特権的なサービス108をさらに含む。
一実施形態に従って、特権的な暗号サービス108は、ホストコンピューティングデバイス101上でシステム管理モード(SMM)またはハイパーバイザー107もしくは他のオペレーティングシステムよりも特権的な他のモードで実行する。一実施形態において、SMMは、ハイパーバイザー、仮想マシン、または他のオペレーティングシステムによるすべての通常の実行が一時停止され、かつ特権的なサービスが実行される動作モードである。SMMは、ハイパーバイザー、仮想マシン(VM)、またはホストコンピューティングデバイス上で実行する他のソフトウェアコードによって呼び出され得るシステム管理割り込み(SMI)によって始動され得る。当業者には明白となるように、本開示の全体にわたって記載される種々の実施形態が、SMMまたはSMIの実現に制限されず、任意の他の動作モードが可能であることに留意されたい。例えば、別の実現において、特権的なサービスは、ハイパーバイザーがアクセスする許可を有しないメモリの一部分へのアクセスを有し得る。これは、特権的なサービスに対して排他的に、1つ以上のレンジレジスタを用いて分割されたメインメモリの特定の一部分を専用とすることによって実現され得る。別様には、特権的なサービスは、1つ以上のコプロセッサ内部のメモリ、1つ以上のモード専用のレジスタ、または特定の暗号鍵レジスタへの排他的アクセスを提供され得る。
一実施形態に従って、特権的なサービス108は、自身を認証し、かつ1つ以上の暗号鍵(109、110)及び/または他のセキュリティリソースを格納する。この1つ以上の鍵(109、110)は、ハイパーバイザー107、1つ以上の仮想マシン(105、106)、及び/または外部コンピューティングデバイスから受け取られ得る。いくつかの実施形態において、暗号鍵(109、110)は、仮想マシン(105、106)のうちの1つによって生成され得る。それぞれの鍵が、特定の顧客(101、102)によって所有され得、及び/または特定の仮想マシン(105、106)と関連付けられ得る。例えば、鍵110が仮想マシン111と関連付けられる一方で、鍵109は仮想マシン105と関連付けられ得る。
一実施形態に従って、SMMで実行する特権的なサービス108は、ハイパーバイザー107及び/または仮想マシン(105、106)と通信し、かつ特権的なサービスが格納する暗号鍵(109、110)を使用する要求を受け取るように動作可能である。一実施形態において、特権的なサービス108は、システム管理割り込みハンドラールーチンを用いて呼び出される。例えば、要求は、特権的なサービス108が暗号鍵109を用いることを要求するSMIをハイパーバイザー107に呼び出させる、仮想マシン105内で実行する構成要素によって開始され得る。種々の実施形態において、要求は、鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送するための鍵または要求を用いて1つ以上の計算が行われる要求を含むがこれらに限定されない、暗号鍵の使用を必要とする任意の要求であり得る。
いくつかの実施形態において、特権的なサービス108は、要求に応答して応答を生成し得、応答は、サービスが格納する暗号鍵に少なくとも一部は基づく。いくつかの実施形態において、要求の一部として、特権的なサービス108はまた、仮想マシンが特定の鍵を用いる権限を付与する証明(例えば、権限情報)を受け取り得る。この証明は、ハイパーバイザーによって、またはハイパーバイザー上で実行する仮想マシンによって顧客から受け取られ得る。証明はまた、ハイパーバイザー上で実行する仮想マシン上でも生成され得る。
種々の実施形態において、特権的なサービス108がハイパーバイザーよりも特権的なモードで動作しているため、仮想マシンエスケープ及び/またはハイパーバイザー改ざんが発生した場合、ハイパーバイザーはなお、特権的なサービスによって格納された鍵のアカウントをまたがる使用を防止し得る。
図2は、様々な実施形態に従って、信頼できるプラットフォームモジュール(TPM)を利用する、特権的なサービス実現の実施例200を示す。示される実施形態において、ホストコンピューティングデバイス201は、1つ以上の汎用プロセッサ208及び信頼できるプラットフォームモジュール207を含む。ホストコンピューティングデバイスは、ハイパーバイザー204、1つ以上のプロセッサへの直接アクセスを有する特権的なドメイン(例えば、DOM−0 202)、及びデバイスの1つ以上のプロセッサへの仮想化されたアクセスを有し、かつ顧客が提供したコードを実行する、1つ以上の特権的でないドメイン(例えば、DOM−U203)をさらに含む。
種々の実施形態において、信頼できるプラットフォームモジュール(TPM)207は、情報を保護する暗号鍵206を格納することができる任意の安全な暗号プロセッサであり得る。特権的なサービス205は、ハイパーバイザー204の起動時測定、ならびに実行中のハイパーバイザー204の動的再測定を可能にし得る。一実施形態において、起動時、システム管理モードで実行している特権的なサービス205は、SMMメモリがTPM207との対話を排他的に権限付与され得るように、TPM207の所有権を得ることができ得る。これは、SMMで実行している特権的な暗号サービス205に、起動間に鍵206を存続させ、かつ遠隔ソフトウェアに自身を認証する能力を付与し得る。TPM207は、ルート鍵を管理し、SMMで実行している特権的なサービス205のみが導出された鍵にアクセスすることを可能にし得る。本実施形態において、特権的なサービスは、ハイパーバイザー及び仮想マシンに鍵の使用を提供し得る。
種々の実施形態において、SMMで実行している特権的なサービス205は、定期的に、またはハイパーバイザーからの特権的なサービス205が管理する暗号鍵を用いる要求の受け取りに応答して、実行しているハイパーバイザーを測定し得る。例えば、起動時に、ハイパーバイザー207と関連付けられた1つ以上の値を測定し、かつ有効なハイパーバイザーが確実にロードされるようにするために、特権的なサービス205(または他の構成要素)が用いられ得る。例えば、1つ以上の値を測定するために、特権的なサービス205が、ハイパーバイザー207のコードを含むメモリ内の1つ以上の場所を読み込み、かつこれらの場所内に含まれる値をハッシュ計算し得る。ハッシュ値は次に格納され、ハイパーバイザー207のコードが多少なりとも変更されたかを後に確かめるために用いられ得る。別の実施形態において、値自体を測定するのではなく、特権的なサービスはむしろ、基本入出力システム(BIOS)などの別のエンティティによってハッシュ値を提供され得る。例えば、特権的なサービス205を準備するとき(例えば、SMMで動作するなど)、BIOSは、ハイパーバイザーコードのためのハッシュ値を特権的なサービスに提供し得る。
続いて、実行時に、1つ以上の値は、ハイパーバイザー207の任意の改ざんを検出するために再測定され得る。例えば、実行時に取得された値が初期値と一致しない場合、特権的なサービス205は、ハイパーバイザー207が危殆化されたと判断し得、適切な修正措置を取り得る。例えば、特権的なサービスは、ハイパーバイザーが特権的なサービスによって格納された任意の鍵を用いることを防止し得、またはハイパーバイザーを完全に一時停止し得る。別様には、特権的なサービスは、改ざんの証拠の検出に応答して、格納されたすべての主要材料を破壊し得る。また別の実施例として、特権的なサービスは、外部サービスまたはエンティティに、ハイパーバイザーが危殆化された可能性があるという指示を通知し得る。いくつかの実施形態において、仮想マシンに仮想TPMサービスを提供するために、特権的なサービス205が用いられ得、仮想TPMと関連付けられた鍵は、特権的なサービス(例えば、SMIハンドラー)によって管理され、ハイパーバイザーにアクセスできない。仮想マシンはよって、この鍵へのアクセスを有するハイパーバイザーなしで、SMIハンドラーを用いて鍵を用いる要求を送信し得る。一実施形態において、信頼できる鍵は、鍵が確実にSMIハンドラーのみに送達されるように、物理TPM内に定着し得る。これは、仮想マシンエスケープが顧客の鍵を暴露し得ないように、複数の顧客に仮想TPMサービスを提供するハイパーバイザーのマルチテナント環境を含むシステム内でのハイパーバイザーの危殆化を防ぎ得る。
図2がハイパーバイザー、DOM−0及び少なくとも1つのDOM−Uを利用する実現を示すが、この特定の実現は、本明細書に記載の実施形態のうちのすべてに限定することを意図されないことに留意されたい。代替的な実施形態において、ハイパーバイザーという用語は、仮想マシンマネージャまたは他の仮想化技術などのいくつかの他の実現を含み得る。例えば、代替的な実現において、ハイパーバイザーは、DOM−0の機能性を含み、DOM−0などの別個の特権的なドメインを利用しない。さらに、種々の実施形態の範囲内でタイプ1ハイパーバイザーまたはタイプ2ハイパーバイザーが利用され得る。当技術分野で知られているように、タイプ1ハイパーバイザー(例えば、ベアメタル)は、ホストコンピュータのハードウェア上で直接実行してハードウェアを制御し、かつ1つ以上のゲストオペレーティングシステムを管理する。タイプ1の構成において、ゲストオペレーティングシステムは、ハイパーバイザーの上の別のレベル上で実行する。タイプ2(例えば、ホストされた)ハイパーバイザーは、従来のオペレーティングシステム環境内で実行する。明確な第2のソフトウェアレベルとしてのハイパーバイザーレイヤとともに、ゲストオペレーティングシステムは、ハードウェアの上の第3のレベルで実行する。種々の実施形態において、いずれのタイプのハイパーバイザーも本開示の範囲内で利用され得る。
同様に、図2が信頼できるプラットフォームモジュール実現を示すが、これもまた、本明細書に記載の実施形態のうちのすべてに限定することを意図されない。代替的な実施形態において、特権的な暗号サービスは、他の種類の暗号プロセッサと併せて用いられ得る。さらに、いくつかの実施形態において、特権的な暗号サービスは、遠隔管理カード、ベースボード管理コントローラ(BMC)、マネージャビリティエンジンなどを含むがこれらに限定されない、仮想マシンのコードを実行するように動作可能でないマシン上の任意のコプロセッサとともに用いられ得る。これらの実施形態において、かかるコプロセッサのファームウェアは、特権的な暗号サービスを実現するファームウェアと置き換えられ得る。プロセッサは、暗号鍵及び他の情報を受け取る特定の要求を作成することを可能にされ得る。
図3は、様々な実施形態に従って、ホストコンピューティングデバイス上に特権的な暗号サービスを提供するための、プロセス300の実施例を示す。この図は、特定のシーケンスで機能的オペレーションを示し得るが、プロセスは、示された特定の順序またはオペレーションに必ずしも限定されるものではない。当業者は、この図または他の図に描かれた様々なオペレーションが、変えられる、再配列される、並列で実行される、または様々な方法で適合化される、ことができることを理解するであろう。さらに、特定のオペレーションまたはオペレーションのシーケンスは、様々な実施形態の範囲から逸脱することなく、プロセスに追加する、またはそこから省略する、ことができる。また、本明細書に含まれるプロセスの実例は、当業者にプロセスフローの概念を実証することを意図し、異なるフローまたはシーケンスとして実現される、性能が最適化される、またはそうでなければ様々な仕方で変更される場合もある、コードの実行の実際のシーケンスを指定することではない。
動作301において、特権的なサービスが自身を認証して鍵及び/または他の暗号材料を取得する。一実施形態において、特権的なサービスは、特権的なサービスに暗号鍵を提供する外部コンピューティングデバイスまたはサービスによって自身を認証し得る。別の実施形態において、特権的なサービスは、いかなる外部エンティティも認証しない。いくつかの実施形態において、鍵は、サービスプロバイダによって生成され得るが、一方で他の実施形態において、鍵は、顧客の仮想マシンとともに用いられるように顧客によって提供され得、または仮想マシンによって生成され得る。動作302において、認証が成功裏に行われた場合、特権的なサービスが、1つ以上の暗号鍵を受け取る。
動作303において、特権的なサービスが、ホストコンピューティングデバイス上に1つ以上の暗号鍵を格納する。前述したように、ホストコンピューティングデバイスは、1つ以上の仮想マシンを管理するハイパーバイザー及びハイパーバイザーよりもさらに特権的なモードで動作する特権的なサービスを含み得る。
動作304において、特権的なサービスが、デバイス上に格納された暗号鍵を用いる要求を受け取る。一実施形態に従って、鍵を用いることを要求する割り込み信号(例えば、SMI)が受け取られ得る。要求は、ハイパーバイザー上で、または1つ以上の仮想マシン上で実行する構成要素から受け取られ得る。種々の実施形態において、要求は、鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送するための鍵または要求を用いて1つ以上の計算が行われる要求を含むがこれらに限定されない、暗号鍵を用いる任意の動作であり得る。
動作305において、要求に応答して、特権的なサービスがハイパーバイザーを測定する。例えば、特権的なサービスは、起動時に取得された値を実行時に測定された値と比較してハイパーバイザーの改ざんの任意の証拠を検出し得る。
動作306において、特権的なサービスは、ホストコンピューティングデバイス上に格納された暗号鍵に少なくとも一部は基づいて、要求への応答を生成する。いくつかの実施形態において、特権的なサービスが、ハイパーバイザーが改ざんされていると判断した場合、ハイパーバイザーは、鍵へのアクセスを防止され得る。
図4は、様々な実施形態に従って、TPMを用いてハイパーバイザーを測定し、かつ改ざんの証拠を検出する、特権的なサービスによって行われ得るプロセスの実施例400を示す。動作401において、ホストコンピューティングデバイスの起動時に、特権的なサービスがTPMの排他的所有権を取得する。加えて、起動時に、ホストコンピューティングデバイス上に信頼できるハイパーバイザーが確実にロードされるように、TPMがハイパーバイザーと関連付けられた1つ以上の値を取得する(動作402)。一実施形態において、1つ以上の値を測定するために、特権的なサービスは、ハイパーバイザーのコードを含むメモリ内の1つ以上の場所を読み込み、かつこれらの場所内に含まれる値をハッシュ計算する。ハッシュ値は次に格納され、ハイパーバイザーのコードが多少なりとも変更されたかを後に確かめるために用いられ得る。別の実施形態において、値自体を測定するのではなく、特権的なサービスはむしろ、BIOSなどの別のエンティティによってハッシュ値を提供され得る。例えば、特権的なサービスを準備するとき(例えば、SMMで動作するなど)、BIOSは、ハイパーバイザーコードのためのハッシュ値を特権的なサービスに提供し得る。
動作403において、続いて実行時に、特権的な暗号サービスが、暗号鍵を用いる要求を受け取る。一実施形態において、要求は、システム管理割り込み(SMI)を呼び出すことによって生成される。動作404において、ハイパーバイザーと関連付けられた1つ以上の値が実行時に再測定される。動作405において、特権的なサービスが、再測定された値を起動時に取得された初期値と比較して、ハイパーバイザーの改ざんの証拠を検出する。
様々な実施形態に従って、ハイパーバイザー測定は、暗号鍵が使用のため(例えば、仮想マシンによる使用のため)に発出され得るかを判定するために用いられ得る。暗号鍵を管理するために、いくつかの暗号動作の実現が可能である。鍵管理プロセスの1つのかかる可能な実現が以下に記載される。
この特定の実現において、BIOSが、プロセッサをSMMにするSMI割り込みが発行される度に呼び出されるシステム管理割り込み(SMI)ハンドラーを始動する。TPMは、SMIハンドラーを含む、BIOSの暗号学的ハッシュ測定を行う能力を提供し得、これらのハッシュ値をプラットフォーム構成レジスタ(PCR)として知られるTPMハードウェアレジスタ内に格納する。ゆえに、信頼できるSMIハンドラーの既知のハッシュ値をPCR内に記録されたハッシュ値と比較することにより、信頼できるSMIハンドラーがプラットフォーム上にインストールされていることを確認する能力を提供する。SMIハンドラーは、BIOSによってロックされ、かつ非SMMモードで実行する任意のソフトウェア(ハイパーバイザー及びOSを含む)によってアクセス可能でない、システム管理ランダムアクセスメモリ(SMRAM)と呼ばれるメモリの領域内に格納され得る。本実施形態において、信頼できるハイパーバイザーは、暗号学的に測定され、これは
(1) 信頼できるブートローダーが、ハイパーバイザーに実行制御を移転する前に、ハイパーバイザーを測定し、ハッシュ値をPCR内に格納し得る。または、
(2) 信頼できるブートローダーが、SMI割り込みを発行し得る。の2つの方途で行われ得る。SMIハンドラーは、ハイパーバイザーを測定し、暗号学的ハッシュ値をSMRAM内に格納し得る。
本実施形態において、信頼できるハイパーバイザーのハッシュ値は、参照ハッシュ値と称され得る。続いて、プラットフォーム実行時鍵管理フローには2つのステップ、すなわち鍵準備及び鍵使用が存在し得る。一実施形態において、これらのフローの詳細を以下に記載する。
鍵準備:信頼できるハイパーバイザーが初めに起動したときに、このハイパーバイザーがPCRを確かめて、信頼できるSMIハンドラーがプラットフォーム上にインストールされていることを確実にする。信頼できるSMIハンドラーが確認された場合、ハイパーバイザーが暗号鍵及び他の認証情報(パスワードなど)を生成し、これらをメモリまたはレジスタ内に置き、SMI割り込みを発行する。鍵を準備する責任を負うSMIハンドラーは、暗号鍵をSMRAM内の鍵保管データ構造に複製し、メモリ/レジスタ内の鍵を消去する。SMIハンドラーが、格納された鍵に対応する指標値をハイパーバイザーに戻す。
鍵使用:ハイパーバイザーは特定の暗号鍵へのアクセスを必要とし、ハイパーバイザーが対応する指標値を付与するとともに、SMI割り込みを発行する。次に、SMIハンドラーが、ハイパーバイザーの暗号学的ハッシュ測定を行い、このハッシュ値を起動の間に算出された参照ハッシュ値と比較する。SMIハンドラー実行がハイパーバイザーと無関係に行われるため、測定動作を改ざんし得ない。ハッシュ値が一致した場合、次にSMIハンドラーは、要求された認証情報を返す。ハッシュ値の不一致は、実行時ハイパーバイザーの破損を表し、SMIハンドラーがエラーメッセージを返し得る。
一実施形態において、SMRAMがハイパーバイザーにアクセス可能でないと仮定すると、悪意のあるハイパーバイザーまたは破損したハイパーバイザーは、信頼できるハイパーバイザーによって格納された鍵にアクセスすることができ得ない。ゆえに、SMRAM内の秘密は、ハイパーバイザーに対するあらゆる悪意のある攻撃を受ける恐れがない。
いくつかの実施形態において、この鍵管理プロセスは、暗号鍵及び認証情報を格納するために、ゲスト仮想マシン(VM)によっても用いられ得、ゲストVMが秘密を格納するためにSMIを発行する。ゲストVMのための秘密管理スキームの動作フローは、以下の通りである。
a.ゲストVMがSMIを発行して、ハイパーバイザーが信頼できるかできないかを確かめる。SMIハンドラーがハイパーバイザーを暗号学的に測定し、この値を参照ハッシュ値と比較する。SMIハンドラーが、ハイパーバイザーが信頼できるかできないかを示す値を返す。
b.SMIハンドラーが、ハイパーバイザーが信頼できることを示す値を返した場合、次にゲストVMが、別のSMI割り込みを発行して、新しい暗号鍵を格納するか、または以前に格納された暗号鍵(または認証情報)を読み出す。
このフローにおいて、ゲストVMは、2つのSMI、すなわちハイパーバイザーを確認する第1のSMI及びSMRAMからの秘密を格納または読み出す第2のSMIを発行しなければならない。ハイパーバイザーに悪意がある、または実行中にマルウェアによって破損された場合、ゲストVMの認証情報は暴露されない(ハイパーバイザー整合性確認が失敗するため、ハイパーバイザーがSMIを発行した場合でも)。
本開示の実施形態は、以下の付記を考慮して説明することができる。
1.コンピューティングデバイスであって、
少なくとも1つのプロセッサと、
メモリであって、デバイスの少なくとも1つのプロセッサによって、
1つ以上の仮想マシンを管理するハイパーバイザーであって、それぞれの仮想マシンが、各々の顧客と関連付けられ、かつ顧客が提供したコードを実行するように動作可能である、ハイパーバイザーと、
ハイパーバイザーを一時停止し、かつホストコンピューティングデバイス上でシステム管理モード(SMM)で実行することができる、特権的なサービスと、を実現するように実行される命令を含む、メモリと、を備え、特権的なサービスが、
顧客と関連付けられた暗号鍵を受け取り、暗号鍵をホストコンピューティングデバイス上に格納し、
ハイパーバイザーまたは1つ以上の仮想マシンのうちの少なくとも1つから、暗号鍵を用いる要求であって、システム管理割り込み(SMI)を開始することによって生成される、要求を受け取り、
ハイパーバイザーと関連付けられた1つ以上の値を測定し、
1つ以上の値に基づいて、ハイパーバイザーが変更されているかを判断し、
ハイパーバイザーが変更されていないことを1つ以上の値が示した場合に、要求への応答であって、ホストコンピューティングデバイス上に格納された暗号鍵に少なくとも一部は基づく、応答を生成するように動作可能である、特権的なサービスである、コンピューティングデバイス。
2.ホストコンピューティングデバイスが、第2の顧客のための第2の暗号鍵を格納し、ハイパーバイザーの文脈内で実行する顧客が提供した顧客のコードが、ホストコンピューティングデバイス上に格納された第2の顧客のための第2の暗号鍵を抜き出すことを防止される、付記1に記載のコンピューティングデバイス。
3.ハイパーバイザーと関連付けられた1つ以上の値を測定することが、
ホストコンピューティングデバイスの起動時に取得された、ハイパーバイザーと関連付けられた1つ以上の値を測定することと、
実行時にハイパーバイザーと関連付けられた1つ以上の値を測定することと、
起動時に測定された1つ以上の値を実行時に測定された1つ以上の値と比較することに少なくとも一部は基づいて、ハイパーバイザーが変更されたかを判断することと、をさらに含む、付記1に記載のコンピューティングデバイス。
4.暗号鍵を格納するように構成された、信頼できるプラットフォームモジュール(TPM)であって、特権的なサービスが、TPMへの排他的アクセスを取得し、かつTPM上に格納された暗号鍵へのアクセスを管理するようにさらに動作可能な、信頼できるプラットフォームモジュール、をさらに含む、付記1に記載のコンピューティングデバイス。
5.コンピューティングデバイスであって、
少なくとも1つのプロセッサと、
メモリであって、少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、
1つ以上の仮想マシンを管理し、メモリの第1の部分へのアクセスを有する、ハイパーバイザーと、
ハイパーバイザーにアクセスできないメモリの少なくとも第2の部分へのアクセスを有する特権的なサービスと、を実現させる、命令を含む、メモリと、を備え、特権的なサービスが、
コンピューティングデバイス上に鍵を格納し、
ハイパーバイザーまたは1つ以上の仮想マシンのうちの少なくとも1つから、鍵を用いる要求を受け取り、かつ
要求への応答を生成するように動作可能であり、応答が、コンピューティングデバイス上に格納された鍵に少なくとも一部は基づく、コンピューティングデバイス。
6.特権的なサービスが、
暗号プロセッサ、遠隔管理カード、ベースボード管理コントローラ(BMC)、システム管理モード(SMM)で実行する構成要素、またはマネージャビリティエンジンのうちの少なくとも1つを用いて実行される、付記5に記載のコンピューティングデバイス。
7.メモリの第2の部分が、1つ以上のレンジレジスタを用いて分割されたメインメモリの一部分、1つ以上のコプロセッサ内部のメモリ、1つ以上のコプロセッサに取り付けられたメモリ、1つ以上のモード専用のレジスタ、または特定の暗号鍵レジスタのうちの少なくとも1つである、付記5に記載のコンピューティングデバイス。
8.特権的なサービスが、
ハイパーバイザーと関連付けられた1つ以上の値を測定し、
ハイパーバイザーと関連付けられた1つ以上の値に少なくとも一部は基づいて、ハイパーバイザーが変更されたかを検出するようにさらに動作可能である、付記5に記載のコンピューティングデバイス。
9.特権的なサービスが、
ハイパーバイザーが変更されたという検出に応答して、外部エンティティに通知し、
ハイパーバイザーが変更されたという検出に応答して、暗号鍵を削除するようにさらに動作可能である、付記8に記載のコンピューティングデバイス。
10.システム管理割り込み(SMI)を用いることによって、特権的なサービスに要求を送信するように構成される構成要素であって、ハイパーバイザーまたは仮想マシンのうちの少なくとも1つの中に存在する、構成要素をさらに備える、付記5に記載のコンピューティングデバイス。
11.暗号鍵を格納するように構成された、信頼できるプラットフォームモジュール(TPM)であって、特権的なサービスが、TPMへの排他的アクセスを取得するようにさらに動作可能な、信頼できるプラットフォームモジュールをさらに含む、付記5に記載のコンピューティングデバイス。
12.特権的なサービスが、ハイパーバイザー及び1つ以上の仮想マシンによる、TPM内に格納された鍵へのアクセスを制御するようにさらに動作可能である、付記11に記載のコンピューティングデバイス。
13.特権的なサービスが、
ハイパーバイザーと関連付けられた第1の組の値を起動時に測定して、ハイパーバイザーを確認するようにさらに動作可能である、付記5に記載のコンピューティングデバイス。
14.特権的なサービスが、
ホストコンピューティングデバイス上の仮想マシンから、ハイパーバイザーを確認する第1のシステム管理割り込み(SMI)を受け取り、
SMIハンドラーによって、ハイパーバイザーと関連付けられた第2の組の値を測定し、
SMIハンドラーによって第2の組の値を第1の組の値と比較し、
第2の組の値が起動時に測定された第1の組の値と一致するかどうか、SMIハンドラーによってハイパーバイザーを確認し、かつ
仮想マシンから、第2のSMIを受け取って、鍵を読み出すか、または新しい鍵を格納するようにさらに動作可能である、付記13に記載のコンピューティングデバイス。
15.特権的なサービスが、
仮想TPMを、1つ以上の仮想マシンに暴露するようにさらに動作可能であり、1つ以上の仮想マシンが、システム管理割り込み(SMI)を用いて鍵にアクセスするように動作可能であり、鍵がハイパーバイザーにアクセスできない、付記5に記載のコンピューティングデバイス。
16.応答を生成することが、暗号鍵と関連付けられた権限情報にさらに基づく、付記5に記載のコンピューティングデバイス。
17.鍵を用いる要求が、
1つ以上の計算が鍵を用いて実行される要求、または
鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送する要求、のうちの少なくとも1つをさらに含む、付記5に記載のコンピューティングデバイス。
18.コンピュータ実現方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
特権的なサービスによって、ホストコンピューティングデバイス上に鍵を格納することとであって、ホストコンピューティングデバイスが、1つ以上の仮想マシンを管理するハイパーバイザーを含み、特権的なサービスが、ハイパーバイザーにアクセスできないメモリの少なくとも一部分へのアクセスを有する、格納することと、
特権的なサービスによって、鍵を用いることを要求する信号であって、ハイパーバイザーまたは1つ以上の仮想マシンのうちの少なくとも1つから受け取られる、信号を受け取ることと、
特権的なサービスによって、要求への応答であって、コンピューティングデバイス上に格納された鍵に少なくとも一部は基づく、応答を生成することと、を含む、コンピュータ実現方法。
19.特権的なサービスが、
暗号プロセッサ、遠隔管理カード、ベースボード管理コントローラ(BMC)、システム管理モード(SMM)で実行する構成要素、マネージャビリティエンジン、またはハイパーバイザーを実行しないホストコンピューティングデバイスの1つ以上のプロセッサのうちの少なくとも1つを用いてホストコンピューティングデバイス上で実行される、付記18に記載のコンピュータ実現方法。
20.ハイパーバイザーと関連付けられた1つ以上の値を測定することと、
1つ以上の値に少なくとも一部は基づいて、ハイパーバイザーが変更されたかを検出することと、をさらに含む、付記18に記載のコンピュータ実現方法。
21.ハイパーバイザーが変更されたという検出に応答して、
外部エンティティに、ハイパーバイザーが変更されたことを示す通知を送信すること、または
鍵を削除すること、のうちの少なくとも1つを実行することをさらに含む、付記20に記載のコンピュータ実現方法。
22.鍵を格納することが、
鍵を信頼できるプラットフォームモジュール(TPM)の中に格納することをさらに含み、特権的なサービスが、TPMへの排他的アクセスを有するように構成される、付記18に記載のコンピュータ実現方法。
23.コンピューティングシステムに、1つ以上のプロセッサによって実行可能な1つ以上の命令であって、
特権的なサービスによって、ホストコンピューティングデバイス上に鍵を格納することであって、ホストコンピューティングデバイスが、1つ以上の仮想マシンを管理するハイパーバイザーを含み、特権的なサービスが、ハイパーバイザーにアクセスできないメモリの少なくとも一部分へのアクセスを有する、格納することと、
特権的なサービスによって、鍵を用いることを要求する信号であって、ハイパーバイザーまたは1つ以上の仮想マシンのうちの少なくとも1つから受け取られる、信号を受け取ることと、
特権的なサービスによって、要求への応答であって、コンピューティングデバイス上に格納された鍵に少なくとも一部は基づく、応答を生成することと、を行わせる、1つ以上の命令を格納した、非一時的なコンピュータ可読記憶媒体。
24.コンピューティングシステムに、
仮想TPMを、1つ以上の仮想マシンに暴露させる命令をさらに含み、1つ以上の仮想マシンが、システム管理割り込み(SMI)を用いて鍵にアクセスするように動作可能であり、鍵がハイパーバイザーにアクセスできない、付記23に記載の非一時的コンピュータ可読記憶媒体。
25.特権的なサービスが、鍵に関連する権限情報を用いて要求への応答を生成するように動作可能である、付記23に記載の非一時的コンピュータ可読記憶媒体。
26.鍵を用いる要求が、
1つ以上の計算が鍵を用いて実行される要求、または
鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送する要求、のうちの少なくとも1つをさらに含む、付記23に記載の非一時的コンピュータ可読記憶媒体。
27.コンピューティングシステムに、
ハイパーバイザーと関連付けられた第1の組の値を起動時に測定して、信頼できるハイパーバイザーが起動されたことを確認させる命令をさらに含む、付記23に記載の非一時的コンピュータ可読記憶媒体。
28.コンピューティングシステムに、
実行時に、ホストコンピューティングデバイス上の仮想マシンから第1のシステム管理割り込み(SMI)を受け取らせ、
SMIハンドラーによって、ハイパーバイザーと関連付けられた第2の組の値を測定させ、
SMIハンドラーによって、第2の組の値を第1の組の値と比較させ、
第2の組の値が起動時に測定された第1の組の値と一致するかSMIハンドラーによってハイパーバイザーを確認させ、
仮想マシンから、第2のSMIを受け取って、鍵を読み出させるか、または新しい鍵を格納させる命令をさらに含む、付記27に記載の非一時的コンピュータ可読記憶媒体。
図5は、実施例のコンピューティングデバイス500の全体的な構成要素のセットの論理的配設を示す。この実施例では、デバイスは、メモリデバイスまたは要素504に格納することができる命令を実行するための少なくとも1つのプロセッサ502を備える。当業者には明らかであるが、このデバイスは、多くのタイプのメモリ、データストレージ、または非一時的コンピュータ可読記憶媒体、例えば、プロセッサ502によって実行されるプログラム命令のための第1のデータストレージ、画像またはデータのための別個のストレージ、他のデバイスと情報を共有するための取り外し可能なメモリなどを備えることができる。このデバイスは、通常、タッチスクリーンまたは液晶ディスプレイ(LCD)のようなあるタイプの表示要素506を備えることができるが、携帯型メディアプレーヤーのようなデバイスは、オーディオスピーカーを介するような他の手段によって、情報を搬送することができる。記載のように、多くの実施形態において、デバイスは、従来の入力をユーザから受け取ることができる少なくとも1つの入力要素508を含む。この従来の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または任意の他のそのようなデバイスもしくは要素を含むことができ、それによって、ユーザは、コマンドをデバイスに入力することができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、一切のボタンを備えることがなく、視覚的コマンド及び音声コマンドの組合せを介してのみ制御することができ、ユーザは、デバイスに接触することなく、デバイスを制御することができる。いくつかの実施形態では、図5のコンピューティングデバイス500は、Wi−Fi(登録商標)、ブルートゥース、RF、有線または無線通信システムのような様々なネットワークを介して通信するための1つ以上のネットワークインターフェース要素508を備えることができる。多くの実施形態において、デバイスは、インターネットなどのネットワークと通信することができ、他のそのようなデバイスと通信することができ得る。
記載のように、記載された実施形態に従って、異なる手法を様々な環境で実現することができる。例えば、図6は、様々な実施形態に従って、態様を実現するための環境600の実施例を示す。理解されることであるが、ウェブベースの環境は、説明の目的のために使用されたが、異なる環境は、様々な実施形態を実現するために、適宜、使用することができる。このシステムは、電子クライアントデバイス602を備え、これは、適切なネットワーク604上で要求、メッセージ、または情報を送信及び受信し、情報をデバイスのユーザに搬送して戻すように動作可能な任意の適切なデバイスを備えることができる。このようなクライアントデバイスの例示は、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップ型コンピュータ、セットトップボックス、個人データ端末、電子ブックリーダ等を含む。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組合せを含む、任意の適切なネットワークを含むことができる。そのようなシステムに用いられる構成要素は、ネットワークのタイプ及び/または選択された環境に少なくとも部分的に依存することができる。そのようなネットワークを介する通信のためのプロトコル及び構成要素は、公知であり、本明細書では詳細に議論されない。ネットワークを介した通信は、有線または無線接続、及びそれらの組合せによって可能にすることができる。この実施例では、ネットワークは、インターネットを含むので、環境は、要求を受信し、かつそれに応答してコンテンツを提供するためのウェブサーバ606を含むが、他のネットワークの場合、当業者には明らかであるように、同様の目的を果たす代替のデバイスを使用することができる。
実例の環境は、少なくとも1つのアプリケーションサーバ608及びデータストア610を含む。適切なデータストアからデータを取得する等のタスクを行うように相互作用することが可能である、連結またはそうでなければ構成することができる、複数のアプリケーションサーバ、層もしくは他の要素、プロセス、または構成要素が存在できることを理解されたい。本明細書で使用されるように、「データストア」という用語は、データを記憶し、それにアクセスし、それを取り出すことが可能な任意のデバイスまたはデバイスの組合せを指し、これは、任意の標準的な分散型またはクラスタ型環境において、データサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体の任意の組合せ及び数を備えることができる。アプリケーションサーバは、必要に応じてデータストアと統合してクライアントデバイスの1つ以上のアプリケーションの態様を実行し、アプリケーションのデータアクセス及びビジネス論理の大部分を処理するための任意の好適なハードウェア及びソフトウェアを備えることができる。アプリケーションサーバは、データストアと連携してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、オーディオ及び/またはビデオのようなコンテンツを生成することができ、この実施例では、これらは、HTML、XML、または別の適切な構造化言語の形態でウェブサーバによってユーザに提供することができる。すべての要求及び応答の処理、ならびにクライアントデバイス602とアプリケーションサーバ608との間のコンテンツの配信は、ウェブサーバ606によって処理することができる。本明細書で議論される構造化されたコードは、本明細書の他の箇所で議論される任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブサーバ及びアプリケーションサーバは、必須ではなく、単に実施例の構成要素であることを理解されたい。
データストア610は、複数の別個のデータテーブル、データベースまたは他のデータ記憶機構、及び特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、示されたデータストアは、製造データ612及びユーザ情報616を格納する機構を備え、製造側にコンテンツを提供するために使用することができる。データストアはまた、ログまたはセッションデータ614を格納するための機構を備えるように示される。ページの画像情報及びアクセス権情報等、データストアに格納する必要があり得る多くの他の態様が存在することができ、これは、必要に応じて上に列挙された機構のいずれか、またはデータストア610内の追加の機構に記憶することができることを理解されたい。データストア610は、それに関連する論理を介して動作可能であり、アプリケーションサーバ608から命令を受け取り、それに応じて、データを取得し、更新するまたはそうでなければ処理する。一実施例では、ユーザは、あるタイプのアイテムのための検索の要求を提出することもある。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を確認することができ、カタログの詳細情報にアクセスして、そのタイプのアイテムについての情報を取得することができる。この情報は、次に、ユーザがユーザデバイス602のブラウザを介して見ることができるウェブページ上の結果一覧等で、ユーザに返すことができる。関心のある特定のアイテムの情報を、ブラウザの専用ページまたはウィンドウで見ることができる。
各サーバは、サーバの全般的な管理または操作のための実行可能なプログラム命令を提供するオペレーティングシステムを備え、またサーバのプロセッサによって実行されると、意図された機能をサーバが行うことを可能にする命令を格納するコンピュータ可読媒体を備える。サーバのオペレーティングシステム及び全体的な機能のための適切な実現形態は、公知であり、または市販されており、具体的に本明細書の本開示に照らして、当業者によって容易に実現される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用し、通信リンクを介して相互接続された複数のコンピュータシステム及び構成要素を利用する、分散型コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図6に示されたよりも少ない数または多い数の構成要素を有するシステムで同等にうまく動作できることを理解されたい。したがって、図6のシステム600の図示は、本質的に実例としてみなされるべきであり、本開示の範囲を制限するものではない。
本明細書で議論された、または示唆された、様々な実施形態は、多種多様の動作環境で実現することができ、これらは、ある場合には、いくつかのアプリケーションのうちのいずれかを動作するために使用することができる1つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ型またはラップトップ型コンピュータ、ならびに、モバイルソフトウェアを実行し、多数のネットワーク及びメッセージプロトコルをサポートすることが可能な携帯電話、無線、及び携帯型デバイスなどの、任意の多数の汎用パーソナルコンピュータを備えることができる。このようなシステムはまた、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の公知のアプリケーションのうちのいずれかを実行する多数のワークステーションを備えることができる。これらのデバイスはまた、ダミーターミナル、シンクライアント、ゲーミングシステム、及びネットワークを介して通信することができる他のデバイスなどの他の電子デバイスを備えることができる。
ほとんどの実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、及びAppleTalkなどの、多様な市販のプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られているであろう少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、及びそれらの任意の組合せであることができる。
ウェブサーバを利用する実施形態においては、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Java(登録商標)サーバ、及びビジネスアプリケーションサーバを含む、あらゆる種類のサーバまたは中間層アプリケーションを実行することができる。サーバ(複数可)はまた、例えば、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCLなどの任意のスクリプト言語、ならびにそれらの組合せで書かれる1つ以上のスクリプトまたはプログラムとして実現することができる1つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することができ得る。サーバ(複数可)はまた、制限するものではないが、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販のものを含むデータベースサーバも備えることができる。
環境は、上述のように様々なデータストアと、他のメモリと、記憶媒体と、を備えることができる。これらは、様々な場所、例えば、コンピュータのうちの1つ以上に対してローカルである(かつ/もしくはそこに存在する)、またはネットワーク上のコンピュータのうちのいずれかもしくはすべてから遠隔である、記憶媒体上に存在することができる。実施形態の特定のセットにおいて、情報は、当業者に熟知されたストレージエリアネットワーク(「SAN」)内に存在することができる。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を行うために必要な任意のファイルを、必要に応じてローカル及び/または遠隔で格納することができる。システムがコンピュータ化されたデバイスを含む場合、それぞれのそのようなデバイスは、バスを介して電気的に結合することができるハードウェア要素を備えることができ、これらの要素は、例えば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタ、またはスピーカー)を含む。このようなシステムはまた、ディスクドライブ、光学的記憶デバイス、及びランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)などのソリッドステート記憶デバイス、ならびに取り外し可能媒体デバイス、メモリカード、フラッシュカードなどのような1つ以上の記憶デバイスを備えることができる。
そのようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス)、及びワーキングメモリを備えることができる。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより恒久的に収容し、格納し、送信し、かつ読み出すための、遠隔、ローカル、固定、及び/または取り外し可能な記憶デバイスならびに記憶媒体を表すコンピュータ可読記憶媒体に、接続する、またはそれを受け取るように構成する、ことができる。システム及び様々なデバイスはまた、通常、多数のソフトウェアアプリケーション、モジュール、サービス、またはクライアントアプリケーションまたはウェブブラウザなどのオペレーティングシステム及びアプリケーションプログラムを含む少なくとも1つのワーキングメモリデバイス内に位置する他の要素を備える。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され得、かつ/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、もしくはこれらの両方に実現され得る。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を用いることができる。
コードまたはコードの部分を収容するための記憶媒体及びコンピュータ可読媒体は、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶及び/または送信のための任意の方法または技術で実現される、揮発性及び不揮発性、取り外し可能及び取り外し不能の媒体などの記憶媒体及び通信媒体を含む、当技術分野で公知である、または使用されている任意の適切な媒体を含むことができ、RAM、ROM、EEPROM(登録商標)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実現する他の仕方及び/または方法を理解するであろう。
明細書及び図面は、したがって、限定的な意味ではなく実例としてみなされるべきである。しかしながら、特許請求の範囲に記載のように本発明のより広い精神及び範囲から逸脱することなく、様々な変更及び改変を行うことができることは明らかであろう。
以下に、本願出願当初の特許請求の範囲に記載の発明を付記する。
[C1]
コンピューティングデバイスであって、
少なくとも1つのプロセッサと、
メモリであって、前記少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
1つ以上の仮想マシンを管理し、メモリの第1の部分へのアクセスを有する、ハイパーバイザーと、
前記ハイパーバイザーにアクセスできないメモリの少なくとも第2の部分へのアクセスを有する特権的なサービスと、を実現させる、命令を含む、前記メモリと、を備え、前記特権的なサービスが、
前記コンピューティングデバイス上に鍵を格納し、
前記ハイパーバイザーまたは前記1つ以上の仮想マシンのうちの少なくとも1つから、前記鍵を用いる要求を受け取り、
前記要求への応答を生成するように動作可能であり、前記応答が、前記コンピューティングデバイス上に格納された前記鍵に少なくとも一部は基づく、コンピューティングデバイス。
[C2]
前記特権的なサービスが、
暗号プロセッサ、遠隔管理カード、ベースボード管理コントローラ(BMC)、システム管理モード(SMM)で実行する構成要素、またはマネージャビリティエンジン、のうちの少なくとも1つを用いて実行される、[C1]に記載のコンピューティングデバイス。
[C3]
前記メモリの第2の部分が、1つ以上のレンジレジスタを用いて分割されたメインメモリの一部分、1つ以上のコプロセッサ内部のメモリ、1つ以上のコプロセッサに取り付けられたメモリ、1つ以上のモード専用のレジスタ、または特定の暗号鍵レジスタ、のうちの少なくとも1つである、[C1]に記載のコンピューティングデバイス。
[C4]
前記特権的なサービスが、
前記ハイパーバイザーが変更されたという検出に応答して、外部エンティティに通知し、
前記ハイパーバイザーが変更されたという検出に応答して、前記鍵を削除するようにさらに動作可能である、[C1]に記載のコンピューティングデバイス。
[C5]
システム管理割り込み(SMI)を用いることによって、前記特権的なサービスに前記要求を送信するように構成される構成要素であって、前記ハイパーバイザーまたは前記仮想マシンのうちの少なくとも1つの中に存在する、構成要素をさらに備える、[C1]に記載のコンピューティングデバイス。
[C6]
前記鍵が、信頼できるプラットフォームモジュール(TPM)内に格納され、前記特権的なサービスが、前記ハイパーバイザー及び前記1つ以上の仮想マシンによって前記TPM内に格納された前記鍵へのアクセスを制御するようにさらに動作可能である、[C1]に記載のコンピューティングデバイス。
[C7]
前記特権的なサービスが、
前記ハイパーバイザーと関連付けられた第1の組の値を起動時に測定して、前記ハイパーバイザーを確認するようにさらに動作可能である、[C1]に記載のコンピューティングデバイス。
[C8]
前記特権的なサービスが、
前記ホストコンピューティングデバイス上の仮想マシンから、前記ハイパーバイザーを確認する第1のシステム管理割り込み(SMI)を受け取り、
SMIハンドラーによって、前記ハイパーバイザーと関連付けられた第2の組の値を測定し、
前記SMIハンドラーによって前記第2の組の値を前記第1の組の値と比較し、
前記第2の組の値が起動時に測定された前記第1の組の値と一致するかどうか、前記SMIハンドラーによって前記ハイパーバイザーを確認し
前記仮想マシンから、第2のSMIを受け取って、前記鍵を読み出すか、または新しい鍵を格納するようにさらに動作可能である、[C7]に記載のコンピューティングデバイス。
[C9]
前記特権的なサービスが、
仮想TPMを、前記1つ以上の仮想マシンに暴露するようにさらに動作可能であり、前記1つ以上の仮想マシンが、システム管理割り込み(SMI)を用いて前記鍵にアクセスするように動作可能であり、前記鍵が前記ハイパーバイザーにアクセスできない、[C1]に記載のコンピューティングデバイス。
[C10]
前記応答を生成することが、前記暗号鍵と関連付けられた権限情報にさらに基づく、[C1]に記載のコンピューティングデバイス。
[C11]
前記鍵を用いる前記要求が、
1つ以上の計算が前記鍵を用いて実行される要求、または
前記鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送する要求、のうちの少なくとも1つをさらに含む、[C1]に記載のコンピューティングデバイス。
[C12]
コンピュータ実現方法であって、
実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
特権的なサービスによって、ホストコンピューティングデバイス上に鍵を格納することであって、前記ホストコンピューティングデバイスが、1つ以上の仮想マシンを管理するハイパーバイザーを含み、前記特権的なサービスが、前記ハイパーバイザーにアクセスできないメモリの少なくとも一部分へのアクセスを有する、格納することと、
前記特権的なサービスによって、前記鍵を用いることを要求する信号であって、前記ハイパーバイザーまたは前記1つ以上の仮想マシンのうちの少なくとも1つから受け取られる、信号を受け取ることと、
前記特権的なサービスによって、前記要求への応答であって、前記コンピューティングデバイス上に格納された前記鍵に少なくとも一部は基づく、前記応答を生成することと、を含む、コンピュータ実現方法。
[C13]
前記ハイパーバイザーと関連付けられた1つ以上の値を測定することと、
前記1つ以上の値に少なくとも一部は基づいて、前記ハイパーバイザーが変更されたかを検出することと、をさらに含む、[C12]に記載のコンピュータ実現方法。
[C14]
前記ハイパーバイザーが変更されたという検出に応答して、
外部エンティティに、前記ハイパーバイザーが変更されていることを示す通知を送信すること、または
前記鍵を削除すること、のうちの少なくとも1つを実行することをさらに含む、[C13]に記載のコンピュータ実現方法。
[C15]
前記鍵を格納することが、
前記鍵を信頼できるプラットフォームモジュール(TPM)の中に格納することをさらに含み、前記特権的なサービスが、前記TPMへの排他的アクセスを有するように構成される、[C12]に記載のコンピュータ実現方法。

Claims (17)

  1. コンピューティングデバイスであって、
    少なくとも1つのプロセッサと、
    メモリであって、前記少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
    1つ以上の仮想マシンを管理し、メモリの第1の部分へのアクセスを有する、ハイパーバイザーと、
    前記ハイパーバイザーにアクセスできないメモリの少なくとも第2の部分へのアクセスを有する特権的なサービスと、を実現させる、命令を含む、前記メモリと、を備え、
    前記特権的なサービスが、前記ハイパーバイザーを一時停止し、前記コンピューティングデバイス上でシステム管理モード(SMM)において実行することができ、
    前記特権的なサービスは、
    前記コンピューティングデバイス上に鍵を格納し、
    前記ハイパーバイザーまたは前記1つ以上の仮想マシンのうちの少なくとも1つから、前記鍵を用いる要求を受け取り、
    前記ハイパーバイザーと関連付けられた1つ以上の値を測定し、
    前記ハイパーバイザーに関連付けられた前記1つ以上の値に少なくとも一部は基づいて、前記ハイパーバイザーが変更されていないことを検出し、
    前記ハイパーバイザーが変更されていないことを検出した後、前記要求への応答を生成する
    ように動作可能であり、
    前記応答が、前記コンピューティングデバイス上に格納された前記鍵に少なくとも一部は基づく、
    コンピューティングデバイス。
  2. 前記特権的なサービスが、
    暗号プロセッサ、遠隔管理カード、ベースボード管理コントローラ(BMC)、システム管理モード(SMM)で実行する構成要素、またはマネージャビリティエンジン、のうちの少なくとも1つを用いて実行される、請求項1に記載のコンピューティングデバイス。
  3. 前記メモリの第2の部分が、1つ以上のレンジレジスタを用いて分割されたメインメモリの一部分、1つ以上のコプロセッサ内部のメモリ、1つ以上のコプロセッサに取り付けられたメモリ、1つ以上のモード専用のレジスタ、または特定の暗号鍵レジスタ、のうちの少なくとも1つである、請求項1に記載のコンピューティングデバイス。
  4. 前記特権的なサービスが、
    前記ハイパーバイザーに関連付けられた1つ以上の第2の値を測定し、
    前記ハイパーバイザーに関連付けられた前記1つ以上の第2の値に少なくとも一部は基づいて、前記ハイパーバイザーが変更されたことを検出し、
    前記ハイパーバイザーが変更されたという検出に応答して、外部エンティティに通知し、または、
    前記ハイパーバイザーが変更されたという検出に応答して、前記鍵を削除する
    ようにさらに動作可能である、請求項1に記載のコンピューティングデバイス。
  5. システム管理割り込み(SMI)を用いることによって、前記特権的なサービスに前記要求を送信するように構成される構成要素であって、前記ハイパーバイザーまたは前記仮想マシンのうちの少なくとも1つの中に存在する、構成要素をさらに備える、請求項1に記載のコンピューティングデバイス。
  6. 前記鍵が、信頼できるプラットフォームモジュール(TPM)内に格納され、
    前記特権的なサービスが、前記ハイパーバイザー及び前記1つ以上の仮想マシンによって前記TPM内に格納された前記鍵へのアクセスを制御するようにさらに構成される、請求項1に記載のコンピューティングデバイス。
  7. 前記特権的なサービスが、
    前記ハイパーバイザーを確認するために、前記ハイパーバイザーと関連付けられた第1の組の値を起動時に測定するようにさらに構成される、請求項1に記載のコンピューティングデバイス。
  8. 前記特権的なサービスが、
    前記ハイパーバイザーを確認するために、記コンピューティングデバイス上の仮想マシンから第1のシステム管理割り込み(SMI)を受け取り、
    SMIハンドラーによって、前記ハイパーバイザーと関連付けられた第2の組の値を測定し、
    前記SMIハンドラーによって前記第2の組の値を前記第1の組の値と比較し、
    前記第2の組の値が起動時に測定された前記第1の組の値と一致するかどうか、前記SMIハンドラーによって前記ハイパーバイザーを確認し、
    前記鍵を読み出すか、または新しい鍵を格納するために、前記仮想マシンから、第2のSMIを受け取るようにさらに構成される、請求項7に記載のコンピューティングデバイス。
  9. 前記特権的なサービスが、
    仮想TPMを、前記1つ以上の仮想マシンに暴露するようにさらに構成され
    前記1つ以上の仮想マシンが、前記鍵にアクセスするために、システム管理割り込み(SMI)を用いるように構成され
    前記鍵が前記ハイパーバイザーにアクセスできない、
    請求項1に記載のコンピューティングデバイス。
  10. 前記応答を生成することが、前記鍵と関連付けられた権限情報にさらに基づく、請求項1に記載のコンピューティングデバイス。
  11. 前記鍵を用いる前記要求が、
    1つ以上の計算が前記鍵を用いて実行される要求、または
    前記鍵を用いて暗号化された、または署名された1つ以上のメッセージを伝送する要求、
    のうちの少なくとも1つをさらに含む、請求項1に記載のコンピューティングデバイス。
  12. コンピュータ実現方法であって、
    実行可能な命令で構成される1つ以上のコンピュータシステムの制御下で、
    特権的なサービスによって、ホストコンピューティングデバイス上に鍵を格納することであって、前記ホストコンピューティングデバイスが、1つ以上の仮想マシンを管理するハイパーバイザーを含み、前記特権的なサービスが、前記ハイパーバイザーにアクセスできないメモリの少なくとも一部分へのアクセスを有し、前記特権的なサービスが、前記ハイパーバイザーを一時停止し、前記ホストコンピューティングデバイス上でシステム管理モード(SMM)において実行する、格納することと、
    前記特権的なサービスによって、前記鍵を用いることを要求する信号を受け取ることであって、前記信号は、前記ハイパーバイザーまたは前記1つ以上の仮想マシンのうちの少なくとも1つから受け取られる、信号を受け取ることと、
    前記ハイパーバイザーに関連付けられた1つ以上の値を測定することと、
    前記ハイパーバイザーに関連付けられた前記1つ以上の値に少なくとも一部は基づいて、前記ハイパーバイザーが変更されないことを検出することと、
    前記ハイパーバイザーが変更されないことを検出した後、前記特権的なサービスによって、前記要求への応答を生成することであって、前記応答は、前記ホストコンピューティングデバイス上に格納された前記鍵に少なくとも一部は基づく、前記応答を生成することと、
    を含む、コンピュータ実現方法。
  13. 前記ハイパーバイザーと関連付けられた1つ以上の値を測定することと、
    前記ハイパーバイザーに関連付けられた前記1つ以上の第2の値に少なくとも一部は基づいて、前記ハイパーバイザーが変更されていることを検出することと、
    をさらに含む、請求項12に記載のコンピュータ実現方法。
  14. 前記ハイパーバイザーが変更されていることの検出に応答して、
    外部エンティティに、前記ハイパーバイザーが変更されていることを示す通知を送信すること、または
    前記鍵を削除すること、
    のうちの少なくとも1つを実行することをさらに含む、請求項13に記載のコンピュータ実現方法。
  15. 前記鍵を格納することが、
    前記鍵を信頼できるプラットフォームモジュール(TPM)の中に格納することをさらに含み、前記特権的なサービスが、前記TPMへの排他的アクセスを有するように構成される、
    請求項12に記載のコンピュータ実現方法。
  16. 前記鍵は暗号鍵を含む、請求項1に記載のコンピューティングデバイス。
  17. 前記鍵は暗号鍵を含む、請求項12に記載のコンピュータ実現方法。
JP2015555244A 2013-01-22 2014-01-22 仮想化された環境における特権的な暗号サービス Active JP6141455B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,924 US9037854B2 (en) 2013-01-22 2013-01-22 Privileged cryptographic services in a virtualized environment
US13/746,924 2013-01-22
PCT/US2014/012600 WO2014116740A2 (en) 2013-01-22 2014-01-22 Privileged cryptographic services in a virtualized environment

Publications (2)

Publication Number Publication Date
JP2016511872A JP2016511872A (ja) 2016-04-21
JP6141455B2 true JP6141455B2 (ja) 2017-06-07

Family

ID=51208718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015555244A Active JP6141455B2 (ja) 2013-01-22 2014-01-22 仮想化された環境における特権的な暗号サービス

Country Status (9)

Country Link
US (1) US9037854B2 (ja)
EP (1) EP2949074B1 (ja)
JP (1) JP6141455B2 (ja)
KR (1) KR101696131B1 (ja)
CN (1) CN104982005B (ja)
AU (1) AU2014209467B2 (ja)
CA (1) CA2898756C (ja)
SG (1) SG11201505653PA (ja)
WO (1) WO2014116740A2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576141B2 (en) 2013-01-22 2017-02-21 Amazon Technologies, Inc. Access controls on the use of freeform metadata
US10341281B2 (en) 2013-01-22 2019-07-02 Amazon Technologies, Inc. Access control policies associated with freeform metadata
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US9680862B2 (en) * 2014-07-01 2017-06-13 Fireeye, Inc. Trusted threat-aware microvisor
US9594927B2 (en) * 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US10754967B1 (en) * 2014-12-15 2020-08-25 Marvell Asia Pte, Ltd. Secure interrupt handling between security zones
US9459907B2 (en) 2015-02-24 2016-10-04 Red Hat Israel, Ltd. Guest controlled malicious payload protection
EP3070607B1 (en) * 2015-03-20 2020-12-09 Virtual Open Systems Compute node supporting virtual machines and services
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process 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
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
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10075296B2 (en) 2015-07-02 2018-09-11 Intel Corporation Loading and virtualizing cryptographic keys
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
CN105718794B (zh) * 2016-01-27 2018-06-05 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及系统
JP2017147654A (ja) * 2016-02-18 2017-08-24 株式会社日立ソリューションズ 仮想端末管理装置、及び文書保護方法
US10348500B2 (en) * 2016-05-05 2019-07-09 Adventium Enterprises, Llc Key material management
US10318737B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10148444B2 (en) * 2016-08-04 2018-12-04 Dell Products L.P. Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
US10310885B2 (en) * 2016-10-25 2019-06-04 Microsoft Technology Licensing, Llc Secure service hosted in a virtual security environment
US10439803B2 (en) * 2016-11-14 2019-10-08 Microsoft Technology Licensing, Llc Secure key management
CN110383277B (zh) 2017-03-07 2021-09-14 华为技术有限公司 虚拟机监视器测量代理
EP3413531A1 (en) * 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Intrusion detection systems
US10467439B2 (en) * 2017-07-05 2019-11-05 Dell Products, L.P. Detecting tampering of memory contents in an information handling system
KR102322955B1 (ko) 2017-09-19 2021-11-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 암호 키 보안
US20190087580A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Secure launch for a hypervisor
US10657071B2 (en) * 2017-09-25 2020-05-19 Intel Corporation System, apparatus and method for page granular, software controlled multiple key memory encryption
US11683311B2 (en) 2018-03-01 2023-06-20 Veritas Technologies Llc Systems and methods for running applications on a multi-tenant container platform
WO2019174048A1 (zh) 2018-03-16 2019-09-19 华为技术有限公司 容器逃逸检测方法、装置、系统及存储介质
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
EP3884690A1 (en) * 2018-11-21 2021-09-29 Amazon Technologies Inc. Method and system for robotics application development
KR102153048B1 (ko) * 2018-11-22 2020-09-07 한양대학교 산학협력단 Smram 변조 탐지 방법 및 장치
US11500988B2 (en) * 2019-03-08 2022-11-15 International Business Machines Corporation Binding secure keys of secure guests to a hardware security module
US11354421B2 (en) * 2019-03-08 2022-06-07 International Business Machines Corporation Secure execution guest owner controls for secure interface control
US11977871B2 (en) 2019-04-15 2024-05-07 Hewlett-Packard Development Company, L.P. Image transfer
US11295014B2 (en) * 2019-05-08 2022-04-05 Baidu Usa Llc TPM-based secure multiparty computing system using a non-bypassable gateway
US11537421B1 (en) 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
CN110430046B (zh) * 2019-07-18 2021-07-06 上海交通大学 一种面向云环境的可信平台模块两阶段密钥复制方法
JP2021118370A (ja) 2020-01-22 2021-08-10 キオクシア株式会社 メモリシステム、情報処理装置、および情報処理システム
KR102325986B1 (ko) * 2020-01-22 2021-11-12 네이버클라우드 주식회사 스토리지 암호화의 동적 적용을 위한 방법 및 시스템
EP3940565A1 (en) * 2020-07-15 2022-01-19 Hewlett-Packard Development Company, L.P. System management states
US12045641B1 (en) * 2020-12-11 2024-07-23 Amazon Technologies, Inc. Enriched security to validate virtual machine manager-level system functions
CN115146276A (zh) * 2021-03-31 2022-10-04 华为云计算技术有限公司 一种云服务系统以及基于云服务的数据处理方法
US11765142B1 (en) 2022-08-08 2023-09-19 International Business Machines Corporation Distribution of private session key to network communication device for secured communications
US11916890B1 (en) * 2022-08-08 2024-02-27 International Business Machines Corporation Distribution of a cryptographic service provided private session key to network communication device for secured communications
US11924179B2 (en) * 2022-08-08 2024-03-05 International Business Machines Corporation API based distribution of private session key to network communication device for secured communications

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7493409B2 (en) * 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US20050289311A1 (en) * 2004-06-29 2005-12-29 David Durham System and method for secure inter-platform and intra-platform communications
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8973094B2 (en) * 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US20080147555A1 (en) * 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US8254579B1 (en) * 2007-01-31 2012-08-28 Hewlett-Packard Development Company, L.P. Cryptographic key distribution using a trusted computing platform
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8010763B2 (en) * 2007-08-02 2011-08-30 International Business Machines Corporation Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
JP2009223787A (ja) * 2008-03-18 2009-10-01 Hitachi Software Eng Co Ltd 情報処理装置及び方法、並びにプログラム
US9559842B2 (en) * 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US8839239B2 (en) * 2010-06-15 2014-09-16 Microsoft Corporation Protection of virtual machines executing on a host device
US20120054486A1 (en) * 2010-08-31 2012-03-01 MindTree Limited Securing A Virtual Environment And Virtual Machines
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
CN102542185B (zh) * 2010-12-23 2016-05-04 伊姆西公司 硬化随机访问存储器中的软件执行的方法和装置
US8953796B2 (en) * 2011-06-29 2015-02-10 International Business Machines Corporation Techniques for accessing features of a hardware adapter
US8694781B1 (en) * 2012-03-30 2014-04-08 Emc Corporation Techniques for providing hardware security module operability
US9071587B2 (en) * 2012-08-27 2015-06-30 International Business Machines Corporation Optimizing deployment of virtual machines by pre-generating a virtual machine's first-boot metadata by cloud controller
US8832435B2 (en) * 2012-12-17 2014-09-09 International Business Machines Corporation Providing a real-time indication of platform trust

Also Published As

Publication number Publication date
CN104982005A (zh) 2015-10-14
KR101696131B1 (ko) 2017-01-12
CN104982005B (zh) 2018-05-29
US20140208123A1 (en) 2014-07-24
CA2898756A1 (en) 2014-07-31
WO2014116740A2 (en) 2014-07-31
AU2014209467A1 (en) 2015-08-27
SG11201505653PA (en) 2015-08-28
KR20150106935A (ko) 2015-09-22
US9037854B2 (en) 2015-05-19
EP2949074A4 (en) 2016-09-21
AU2014209467B2 (en) 2016-09-08
JP2016511872A (ja) 2016-04-21
EP2949074A2 (en) 2015-12-02
CA2898756C (en) 2018-10-02
EP2949074B1 (en) 2018-11-21
WO2014116740A3 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
JP6141455B2 (ja) 仮想化された環境における特権的な暗号サービス
US11050844B2 (en) User controlled hardware validation
US10621366B2 (en) Chained security systems
US10685119B2 (en) Trusted malware scanning
US9792143B1 (en) Platform secure execution modes
US9521140B2 (en) Secure execution environment services
EP3692459B1 (en) System integrity using attestation for virtual trusted platform module
KR101704329B1 (ko) 프리빌리지 컴퓨팅 작동의 결과 보호
US9465652B1 (en) Hardware-based mechanisms for updating computer systems
US20160164880A1 (en) Systems And Methods Of Transaction Authorization Using Server-Triggered Switching To An Integrity-Attested Virtual Machine
US9754116B1 (en) Web services in secure execution environments
US10542005B2 (en) Connection control for virtualized environments
US10579405B1 (en) Parallel virtual machine managers

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170502

R150 Certificate of patent or registration of utility model

Ref document number: 6141455

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250