Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7805067B2 - Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure) - Google Patents
[go: Go Back, main page]

JP7805067B2 - Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure) - Google Patents

Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure)

Info

Publication number
JP7805067B2
JP7805067B2 JP2021204428A JP2021204428A JP7805067B2 JP 7805067 B2 JP7805067 B2 JP 7805067B2 JP 2021204428 A JP2021204428 A JP 2021204428A JP 2021204428 A JP2021204428 A JP 2021204428A JP 7805067 B2 JP7805067 B2 JP 7805067B2
Authority
JP
Japan
Prior art keywords
tee
computation
target
authentication
cloud
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
JP2021204428A
Other languages
Japanese (ja)
Other versions
JP2022099293A (en
Inventor
ガーニー ディー.エイチ. ハント
ディミトリオス ペンダラキス
ケネス アラン ゴールドマン
エレイン アール. パーマー
ラマチャンドラ パイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/130,238 external-priority patent/US12147580B2/en
Priority claimed from US17/130,269 external-priority patent/US12437118B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022099293A publication Critical patent/JP2022099293A/en
Application granted granted Critical
Publication of JP7805067B2 publication Critical patent/JP7805067B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、セキュアな/暗号化された仮想マシンのための方法、装置、およびシステムの実施形態に関し、より詳細には、限定するものではないが、クラウド・インフラストラクチャにおいて、セキュアな/暗号化された仮想マシンをプロビジョニングするための方法、装置、およびシステムに関する。 The present invention relates to embodiments of methods, apparatus, and systems for secure/encrypted virtual machines, and more particularly, but not exclusively, to methods, apparatus, and systems for provisioning secure/encrypted virtual machines in a cloud infrastructure.

クラウド・コンピューティングは企業インフラストラクチャの重要な一面である。クラウド・インフラストラクチャはプライベート、パブリック、またはハイブリッドのいずれかであり得る。ハイブリッド・クラウドおよびパブリック・クラウドの主要な課題の1つは、企業が信頼境界線をクラウド・プロバイダおよびその人員にまで拡大することである。クラウドは劇的に拡大してはいるが、その主要な阻害要因の1つは信頼性である。ほとんどのクラウド・インフラストラクチャでは、クラウド・プロバイダおよびそのスタッフは信頼されると最初から想定されている。 Cloud computing is an important aspect of enterprise infrastructure. Cloud infrastructure can be private, public, or hybrid. One of the key challenges with hybrid and public clouds is for enterprises to extend their trust boundaries to the cloud provider and its personnel. While the cloud is expanding dramatically, one of its major inhibitors is trust. In most cloud infrastructures, it is assumed from the start that the cloud provider and its staff can be trusted.

したがって、クラウド採用への大きな障害はセキュリティである。したがって、効率的に実装でき費用効果の高い、よりセキュアなクラウド・コンピューティング・プラットフォームを提供することが必要とされている。また更に、クラウド・コンピューティングにおいてクラウド・プロバイダを信頼する必要なくセキュリティを実現できるプロトコルのセットを提供することが必要とされている。 Therefore, a major obstacle to cloud adoption is security. Therefore, there is a need to provide a more secure cloud computing platform that is efficient to implement and cost-effective. Furthermore, there is a need to provide a set of protocols that can achieve security in cloud computing without the need to trust the cloud provider.

上述した背景技術の上記のおよび他の問題、不利益、および欠点を考慮して、開示される発明の例示の態様は、クラウド・インフラストラクチャにおいてセキュアな/暗号化された仮想マシンをプロビジョニングするための方法、装置、およびシステムを提供する。 In consideration of the above and other problems, disadvantages, and shortcomings of the background art discussed above, exemplary aspects of the disclosed invention provide methods, apparatus, and systems for provisioning secure/encrypted virtual machines in a cloud infrastructure.

本発明の実施形態によれば、標的トラステッド実行環境(trusted execution environment)(TEE)を選択することと、TEEが満足する認証を生成することと、その認証を認証されるTEE内で実行されるコンピューテーションと関連付けることと、その関連付けられた認証を用いてコンピューテーションを生成することと、を含む、コンピューテーションを標的TEE内で実行されるように生成するための方法。 According to an embodiment of the present invention, a method for generating a computation to be executed in a target trusted execution environment (TEE) includes selecting a target TEE, generating an attestation that the TEE satisfies, associating the attestation with a computation to be executed in the attested TEE, and generating the computation using the associated attestation.

本発明の別の実施形態によれば、コンピュータ命令を記憶するメモリと、そのコンピュータ命令を、標的TEEを選択し、TEEが満足する認証を生成し、その認証を認証されるTEE内で実行されるコンピューテーションと関連付け、その関連付けられた認証を用いてコンピューテーションを生成するよう実行するように構成されている、プロセッサと、を含む、システム。 According to another embodiment of the present invention, a system includes a memory that stores computer instructions and a processor that is configured to execute the computer instructions to select a target TEE, generate an authentication that the TEE satisfies, associate the authentication with a computation performed within the authenticated TEE, and generate the computation using the associated authentication.

本発明の更に別の実施形態によれば、プログラム命令が具現化されているコンピュータ可読記憶媒体を備え、プログラム命令はコンピュータによって、そのコンピュータに、標的TEEを選択することと、TEEが満足する認証を生成することと、認証を認証されるTEE内で実行されるコンピューテーションと関連付けることと、関連付けられた認証を用いてコンピューテーションを生成することと、を含む方法を実行させるように、読取り可能かつ実行可能である、コンピュータ・プログラム製品。 According to yet another embodiment of the present invention, a computer program product includes a computer-readable storage medium having program instructions embodied thereon, the program instructions being readable and executable by a computer to cause the computer to perform a method including selecting a target TEE, generating an authentication that the TEE satisfies, associating the authentication with a computation to be performed within the authenticated TEE, and generating the computation using the associated authentication.

このように、本発明の特定の実施形態を、本明細書におけるその詳細な説明がよりよく理解され得るように、および、当技術分野への本発明の寄与がよりよく諒解され得るように、かなり大まかに概説した。当然ながら、本明細書に付属する特許請求の範囲の主題を形成する、以下に記載する本発明の追加の実施形態が存在する。 There has thus been outlined, rather broadly, certain embodiments of the invention in order that the detailed description thereof herein may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional embodiments of the invention that will be described below and that will form the subject matter of the claims appended hereto.

本発明はその用途において、以下の説明に記載されるまたは図面に図示される構造の詳細におよび構成要素の配置に限定されないことを理解されたい。本発明は、記載されているもの以外の実施形態が、ならびに、様々な様式での実施および実行が、可能である。また、本明細書および要約書で採用される語法および専門用語は説明を目的としたものであり、限定するものと見なすべきではないことを理解されたい。 It is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The invention is capable of embodiments other than those described and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed in the specification and abstract is for the purpose of description and should not be regarded as limiting.

したがって、本開示が基礎とする構想が、本発明のいくつかの目的を実行するための他の構造、方法、およびシステムの設計のための基礎として容易に利用され得ることを、当業者は諒解するであろう。したがって、特許請求の範囲は、かかる等価な構造が本発明の思想および範囲から逸脱しない限りこれらを含むと見なされる、ということが重要である。 As such, those skilled in the art will appreciate that the conception upon which this disclosure is based may readily be utilized as a basis for the designing of other structures, methods, and systems for carrying out the several purposes of the present invention. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the present invention.

本発明の例示の態様は、図面を参照した本発明の例示の実施形態の以下の詳細な説明からよりよく理解されるであろう。 Exemplary aspects of the present invention will be better understood from the following detailed description of exemplary embodiments of the invention taken in conjunction with the drawings.

本発明で利用される場合のTEE(トラステッド実行環境)の例を示す図である。FIG. 1 illustrates an example of a TEE (Trusted Execution Environment) when used in the present invention. 本発明の実施形態の例示のフロー図である。FIG. 1 is an exemplary flow diagram of an embodiment of the present invention. 本発明の実施形態の例示のフロー図である。FIG. 1 is an exemplary flow diagram of an embodiment of the present invention. クラウド・インフラストラクチャにおける本発明の実施形態の、代替のセキュリティ・モデルに関するkeep your own keyのフローを示す図である。FIG. 10 illustrates a keep your own key flow for an alternative security model of an embodiment of the present invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、keep your own keyモデルに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証(verify target system)のフローを示す図である。FIG. 1 illustrates a flow diagram of verifying a target system (i.e., a system of a protected execution facility (PEF)) for a keep your own key model in an embodiment of the present invention in a cloud infrastructure. 本発明の実施形態におけるプロビジョニングの方法を示す図である。FIG. 2 illustrates a method of provisioning in an embodiment of the present invention. ESM(enter secure mode;セキュアなモードへの移行)オペランドのレイアウトである。1 is a layout of the ESM (enter secure mode) operand. 本発明の実施形態におけるハードウェア構成の検証のためにPCR6(プラットフォーム構成レジスタ6)へと拡張された値を示す図である。FIG. 10 is a diagram showing values extended to PCR6 (Platform Configuration Register 6) for verifying the hardware configuration in an embodiment of the present invention. 本発明の実施形態におけるコンピューテーションの検証を示す図である。FIG. 1 illustrates verification of computation in an embodiment of the present invention. 本発明の実施形態の、例示のprotected execution facility(PEF)を示す図である。FIG. 1 illustrates an exemplary protected execution facility (PEF) according to an embodiment of the present invention. クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替のセキュリティ・モデルを示す図である。FIG. 1 illustrates an alternative security model utilizing SM for an embodiment of the present invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替モデルに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証のフローを示す図である。FIG. 1 illustrates the flow of validation of a target system (i.e., a system of a protected execution facility (PEF)) for an alternative model utilizing SM of an embodiment of the present invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、AMD(ADVANCED MICRO DEVICES)のプロセッサにおいてTEEをプロビジョニングするためにSMを利用する代替のセキュリティ・モデルを示す図である。FIG. 1 illustrates an alternative security model for an embodiment of the present invention in a cloud infrastructure that utilizes SM to provision TEEs on processors of AMD (Advanced Micro Devices). クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替モデルに関するAMD(ADVANCED MICRO DEVICES)のプロセッサにおけるTEEに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証のフローを示す図である。FIG. 1 illustrates a flow diagram of verification of a target system (i.e., a system with a protected execution facility (PEF)) for a TEE in a processor of an AMD (ADVANCED MICRO DEVICE) for an alternative model utilizing SM of an embodiment of the present invention in a cloud infrastructure. 本発明の例示の実施形態を組み込むための例示のハードウェア/情報取り扱いシステムを示す図である。FIG. 1 illustrates an exemplary hardware/information handling system for incorporating an exemplary embodiment of the present invention. 本発明の例示の実施形態に係る方法を実施するプログラムの機械可読命令を記憶するための、信号保持記憶媒体を示す図である。1 illustrates a signal-bearing storage medium for storing machine-readable instructions of a program implementing a method according to an exemplary embodiment of the present invention. 本発明の例示の実施形態に係るクラウド・コンピューティング・ノードを描いた図である。FIG. 1 illustrates a cloud computing node according to an exemplary embodiment of the present invention. 本発明の例示の実施形態に係るクラウド・コンピューティング環境を描いた図である。FIG. 1 illustrates a cloud computing environment in accordance with an exemplary embodiment of the present invention. 本発明の例示の実施形態に係る抽象化モデル層を描いた図である。FIG. 2 illustrates an abstraction model layer according to an example embodiment of the present invention.

ここで本発明について、全体を通して同様の参照番号が同様の部分を指している図面を参照して記載する。一般的慣習に従い、図面の様々な特徴が必ずしも正確な縮尺にはなっていないことを強調しておく。逆に、様々な特徴の寸法は、明確になるように恣意的に拡大または縮小され得る。以下に説明の目的で例示の実施形態を提供するが、これらは特許請求の範囲を限定するものではない。また更に、どのステップも異なる順序で、組み合わせて、または同時に実行できることに留意されたい。更に、示されているどの構造および実施形態も、変更または組合せが可能である。 The present invention will now be described with reference to the drawings, in which like reference numerals refer to like parts throughout. It is emphasized that, according to common practice, the various features of the drawings are not necessarily drawn to scale. Conversely, dimensions of various features may be arbitrarily increased or decreased for clarity. The following exemplary embodiments are provided for illustrative purposes and are not intended to limit the scope of the claims. It should further be noted that any steps may be performed in different orders, combinations, or simultaneously. Additionally, any structures and embodiments shown may be modified or combined.

既に述べたように、クラウド採用への大きな障害はセキュリティである。クラウド・ベンダは、稼働中のコンテナまたはVM(仮想マシン)内で利用される全ての情報にアクセスできる。この問題に対応して、様々なCPU(中央処理装置)ベンダが、プライベート・コンピューテーションを作成および実行できるようにそのアーキテクチャを修正している。アーキテクチャの変更は一般に、トラステッド実行環境(TEE)の範疇に分類される。本発明はまた、クラウドのノードまたはインフラストラクチャの一部であるがどの特定のCPUアーキテクチャにも組み込まれていないTEEもサポートする。 As previously mentioned, a major obstacle to cloud adoption is security. Cloud vendors have access to all information utilized within running containers or VMs (Virtual Machines). In response to this issue, various CPU (Central Processing Unit) vendors are modifying their architectures to allow for the creation and execution of private computations. These architectural modifications generally fall under the category of Trusted Execution Environments (TEEs). The present invention also supports TEEs that are part of the cloud's nodes or infrastructure but are not embedded in any particular CPU architecture.

プロセッサ・ベンダは、セキュアな実行のためのハードウェア・サポートを提供するトラステッド実行環境(TEE)の創出に関する信頼ギャップにクラウド・プロバイダが対処するための手段を提供している。TEEは、プロセッサまたはプロセスをセキュアなエリアと非セキュアなエリアとに区画する。TEEは「粒度」に基づいて、粒度の粗いものまたは粒度の細かいもののいずれかに分類することができる。粒度の粗いTEEは例えばVM(仮想マシン)またはプロセッサのレベルで機能するが、一方、粒度の細かいTEEは、あるプロセスまたは単一の実行スレッドのみを保護する。粒度の粗いものの例としては、IBM(登録商標)のSecure Service Containers、ARM(登録商標)(Advanced RISC(Reduced Instruction Set Computer)Machines)のTrustZone(登録商標)(これをTEEと見なさない場合もある)、IBMのProtected Execution Facility(PEF)、およびAMDのSecure Encrypted Virtualization(SEV)が挙げられる。Intel(登録商標) Software Guard Extension(SGX)は、粒度の細かいTEEである。Intelは粒度の粗いサポートを提供する意図を表明している。TEEは全て信頼されるが、このことは、ハードウェアが施行する要件がセキュアなパーティション内で実行されるコードに課せられることと、ハードウェアが適正であることをユーザが検証できることと、による。 Processor vendors provide a means for cloud providers to address the trust gap with the creation of Trusted Execution Environments (TEEs), which provide hardware support for secure execution. A TEE partitions a processor or process into secure and non-secure areas. TEEs can be classified based on their "granularity" as either coarse-grained or fine-grained. A coarse-grained TEE operates at the VM (Virtual Machine) or processor level, for example, while a fine-grained TEE only protects a process or a single thread of execution. Examples of coarse-grained include IBM's Secure Service Containers, ARM's (Advanced Reduced Instruction Set Computer (RISC) Machines) TrustZone (which some may not consider a TEE), IBM's Protected Execution Facility (PEF), and AMD's Secure Encrypted Virtualization (SEV). Intel's Software Guard Extension (SGX) is a fine-grained TEE. Intel has stated its intention to provide coarse-grained support. All TEEs are trusted due to the hardware-enforced requirements placed on code running within the secure partition and the user's ability to verify that the hardware is legitimate.

ほとんどのTEEはまた、何らかの形態の証明も提示する。証明の不在およびいくつかの他の特徴の故に、現存するARMのTrustZone(TM)はTEEとしては除外される場合もある。しかしながら、armのプロセッサは、ある形態の証明を提供し得る外部のTPMと一緒に利用できる。証明が行われる方法およびポイントは様々である。証明により、TEE内でどのソフトウェアが現在実行中であるかを含むTEEの属性が検証されること、またはTEEの基礎のファームウェア/ソフトウェアが検証されること、あるいはその両方を、リモートの関係者が保証することが可能になる。証明により、それらのコードまたはシークレットが実行されることになる環境についての重要な特性を、TEEユーザが検証することが可能になる。TEEは、敵対者がプロセッサを包含するシステム/デバイス/PCを物理的に所有している、それを制御できる、またはそれにアクセスできるとの仮定で設計されている。その目的は、敵対的なアクセスまたは制御の存在下で、機密性のまたはセキュアなコンピューテーションを可能にすることである。TEEによって導入されるアーキテクチャの変更は、敵対的アクセスに対する防御を提供する。 Most TEEs also offer some form of attestation. Due to the lack of attestation and several other characteristics, the current ARM TrustZone™ may be ruled out as a TEE. However, ARM processors can be used with external TPMs that can provide some form of attestation. The manner and point at which attestation occurs varies. Attestation allows a remote party to ensure that attributes of the TEE, including what software is currently running within the TEE, are verified, and/or that the TEE's underlying firmware/software is verified. Attestation allows TEE users to verify important properties of the environment in which their code or secrets will be executed. TEEs are designed with the assumption that an adversary has physical possession, control, or access to the system/device/PC containing the processor. Their purpose is to enable confidential or secure computation in the presence of hostile access or control. The architectural changes introduced by TEEs provide defense against hostile access.

これらの能力があっても、多くのクラウド・インフラストラクチャはプロバイダが信頼できることを前提としているので、TEEを活用して機密性のコンピューティングを提供することは依然として困難である。 Even with these capabilities, leveraging TEEs to provide confidential computing remains challenging, as much cloud infrastructure assumes that providers can be trusted.

本発明は複数の特徴の中でもとりわけ、クラウド・インフラストラクチャにおいて有効にされ利用されるときに、クラウド・インフラストラクチャの顧客がそのインフラストラクチャを、自身のどのシークレットもクラウド・プロバイダと共有することなく利用できるようにする、プロトコルおよびコンポーネントのセットを特定する。本発明は、ユーザがクラウド・プロバイダを信頼する必要なくProtected Execution Facilityまたは他の粗い粒度のTEEを活用することを可能にする、プロトコルのセットを提供する。 Among other features, the present invention identifies a set of protocols and components that, when enabled and utilized in a cloud infrastructure, allow customers of the cloud infrastructure to utilize that infrastructure without sharing any of their secrets with the cloud provider. The present invention provides a set of protocols that allow users to leverage a Protected Execution Facility or other coarse-grained TEE without having to trust the cloud provider.

本発明はProtected Execution Facility(PEF) TEEを使用して説明される。PEFはセキュアな仮想マシン(SVM)と呼ばれるセキュアなコンピューテーションをサポートする。全てのSVMが通常のVMとして実行を開始し、それらはその初期化の過程において、通常の仮想マシンからセキュアな仮想マシンへの移行をリクエストするESM(セキュアなモードへの移行) ULTRAVISORコールを実行する。PEFは、適切に構成されたプラットフォームがTPMを有し、セキュアで信頼されるブートを有効にして実行されていることを要求する。 The present invention is illustrated using the Protected Execution Facility (PEF) TEE. PEF supports secure computation using what are called Secure Virtual Machines (SVMs). All SVMs begin execution as normal VMs, and during their initialization they execute an ESM (Enter Secure Mode) ULTRAVISOR call, which requests a transition from a normal virtual machine to a secure virtual machine. PEF requires that a properly configured platform has a TPM and is running with secure and trusted boot enabled.

本実施形態で使用されるTPMは、証明機能に関する測定値を保持するために使用されるハードウェアを表す。証明機能はプロセッサに組み込まれても、またはプロセッサ・アーキテクチャの外部に実装されてもよい。あるものは、測定値を記録するための何らかの信頼される機構を表すTPM PCRを指す。 As used herein, TPM refers to hardware used to hold measurements related to an attestation function. The attestation function may be built into the processor or implemented external to the processor architecture. One refers to TPM PCRs as representing some trusted mechanism for recording measurements.

本発明は、クラウド・インフラストラクチャにおいてデプロイされる、TPM(Trusted Platform Module;トラステッド・プラットフォーム・モジュール)およびTEEハードウェアを活用する。クラウド・インフラストラクチャにおいてTEEを活用するための2つのモデル、BYOK(Bring Your Own Key)またはKYOK(Keep Your Own Key)が存在する。BYOKは、ユーザが自身のキーをクラウド・プロバイダに曝すのを回避するために、クラウド・インフラストラクチャにおけるSM(セキュリティ・モジュール)866などの、クラウド・ユーザの制御下にあるキー保管庫を必要とした。セキュリティ・モジュール866の例としては、IBM 4769 Cryptographic Coprocessor(TM)、IBM Hyper Protect(TM)、IBM Z Secure Service Container(TM)、IBM Z Secure Execution(TM)などのHSM(hardware security module;ハードウェア・セキュリティ・モジュール)、TEE、または更にTPMが挙げられる。センシティブ情報は顧客制御のキー保管庫内に保管できる。KYOKは、クラウドがそのインフラストラクチャについての詳細情報をクラウド・ユーザに提供することを要求する。 The present invention leverages TPM (Trusted Platform Module) and TEE hardware deployed in cloud infrastructure. There are two models for leveraging TEE in cloud infrastructure: BYOK (Bring Your Own Key) or KYOK (Keep Your Own Key). BYOK required a key vault under the control of the cloud user, such as a SM (Security Module) 866 in the cloud infrastructure, to avoid users exposing their keys to the cloud provider. Examples of security modules 866 include hardware security modules (HSMs) such as the IBM 4769 Cryptographic Coprocessor™, IBM Hyper Protect™, IBM Z Secure Service Container™, IBM Z Secure Execution™, TEEs, or even TPMs. Sensitive information can be stored in customer-controlled key vaults. KYOK requires clouds to provide detailed information about their infrastructure to cloud users.

クラウド・コンピューティングは企業インフラストラクチャの重要な一面である。クラウド・インフラストラクチャはプライベート型、パブリック型、またはハイブリッド型のいずれかであり得る。既に述べたように、ハイブリッド・クラウドおよびパブリック・クラウドの主要な課題の1つは、企業がその信頼境界線をクラウド・プロバイダおよびその人員にまで拡大することである。クラウドは劇的に成長してはいるが、その主要な阻害要因のうちの1つが信頼性である。ほとんどのクラウド・インフラストラクチャでは、クラウド・プロバイダおよびそのスタッフは信頼されると最初から想定されている。 Cloud computing is an important aspect of enterprise infrastructure. Cloud infrastructure can be private, public, or hybrid. As mentioned earlier, one of the main challenges of hybrid and public clouds is for enterprises to extend their trust boundaries to the cloud provider and its personnel. While the cloud is growing dramatically, one of its major inhibitors is trust. In most cloud infrastructures, it is assumed from the start that the cloud provider and its staff can be trusted.

図1は、本発明で利用されるTEEの例を示す図である。TEEは、CPUアーキテクチャの修正として、周辺インターフェースにプラグインされる外部コンポーネントとして、または適切なインターフェースおよび隔離ハードウェアを有する完全に別個のプロセッサとしてなどを含む、いくつかの方法で実装され得る。この実施形態ではTEEが単一のシステムとして記載されている。しかしながら本発明はまた、TEEがシステムの適切に構成されたセットを表す場合にも機能する。TEEの使用とは、1つまたは複数の適切に構成されたシステムを指す。システム100のソフトウェア・セクション130内に、ハードウェア120とソフトウェア130とを含むTEE102が存在する。トラステッド・アプリケーションは、TEE内部で実行されるソフトウェアである。TEE API112は、多くの場合ファームウェアおよびまたはハードウェア内で実装され、TEE内部で実行されるソフトウェアに対するインターフェースと、TEE内部で実行されることによってセキュアになることを望む場合のあるTEEの外部のソフトウェアに対するインターフェースと、を提供する。トラステッド・ハードウェアにおけるプロセッサB 114はプロセッサの信頼される部分であり、そこでトラステッド・アプリケーションおよびTEE APIが実行される。これは完全に独立したプロセッサであってもよく、または、単一のプロセッサの信頼される状態を指す場合もある。TEE内部のメモリ116は信頼され、トラステッド・ソフトウェア104はTEE102内のトラステッド・メモリ116内に常駐する。TEEは証明機能122も含む。好ましい実施形態では、証明機能はTPMによって供給される。ただし、ファームウェアまたはソフトウェアあるいはその両方の測定をセキュアに記憶するために使用される任意のハードウェアが、証明機能を供給し得る。 FIG. 1 illustrates an example of a TEE utilized in the present invention. A TEE can be implemented in several ways, including as a modification to a CPU architecture, as an external component plugged into a peripheral interface, or as an entirely separate processor with appropriate interfaces and isolation hardware. In this embodiment, the TEE is described as a single system. However, the present invention also works when the TEE represents a suitably configured set of systems. The use of TEE refers to one or more suitably configured systems. Within the software section 130 of system 100, there is a TEE 102, which includes hardware 120 and software 130. A trusted application is software that runs within the TEE. A TEE API 112, often implemented in firmware and/or hardware, provides an interface to software running within the TEE and to software outside the TEE that may wish to be secured by running within the TEE. Processor B 114 in trusted hardware is the trusted portion of the processor where trusted applications and the TEE API execute. This may be an entirely separate processor, or may refer to the trusted state of a single processor. The memory 116 within the TEE is trusted, and the trusted software 104 resides in trusted memory 116 within the TEE 102. The TEE also includes an attestation function 122. In a preferred embodiment, the attestation function is provided by a TPM; however, any hardware used to securely store measurements of firmware and/or software may provide the attestation function.

TEE内のトラステッド・ソフトウェアは、TEE102の外部のアントラステッドOS108とは別個のオペレーティング・システム全体を含み得る。TEEが細かい粒度のものである場合、TEE内のOSは多くの場合shimと呼ばれる。 The trusted software within a TEE may include an entire operating system that is separate from the untrusted OS 108 outside the TEE 102. When the TEE is fine-grained, the OS within the TEE is often called a shim.

TEEの外部には、オペレーティング・システム108およびアプリケーション106、ならびに、メモリ116および処理機能110が存在する。これらのコンポーネントのいずれも、トラステッド・ソフトウェア104によって暗黙に信頼されることはない。2者間のインターフェースは、信頼性を犠牲にしないように慎重に実装されねばならない。 External to the TEE are the operating system 108 and applications 106, as well as memory 116 and processing functionality 110. None of these components are implicitly trusted by trusted software 104. The interface between the two must be carefully implemented so as not to sacrifice reliability.

図2Aは、本発明の実施形態としての、TEE内にコンピューテーションをプロビジョニングするための例示のフロー図を示す。当業者は、TEEにおいてコンピューテーションを実行させるための認証の準備は信頼される環境において行われるべきであるものの、どのような場所でも行われ得ることを認識している。TEE内へのコンピューテーションのプロビジョニングは、標的TEEを選択すること204から始まる。標的TEEを選択することは、セキュアなコンピューテーションを実行できるTEEを包含するシステムを選択することを要求する。図3、図4、図9A、図9B、図10A、および図10Bは、標的TEEがどのように選択されるかおよびどの属性を検証できるかの例を示す。好ましい実施形態では、TEEの予想される属性は選択前に知られていると予想される。ただし当業者であれば、予想される属性は選択されたTEEの機能であってもよいことを認識している。例えば、複数のアーキテクチャ上で実行され得るコンピューテーションをプロビジョニングされている場合、要求される属性は標的アーキテクチャに依存する可能性が高いであろう。認証206は、コンピューテーションを特定のTEEに、または特定の基準を満たすTEEのセットに制約する。いずれの場合も、認証を生成する前に、特定のTEEまたはTEEを検証するために使用される基準あるいはその両方が知られていなければならない。標的TEEを選択することおよび基準を識別することは、ステップ204で取り扱われる。当業者にはこれらが2つの別個のステップであってもよいことが認識される。 FIG. 2A illustrates an exemplary flow diagram for provisioning a computation within a TEE according to an embodiment of the present invention. Those skilled in the art will recognize that authentication preparation for executing a computation within a TEE should occur in a trusted environment, but can occur anywhere. Provisioning a computation within a TEE begins with selecting a target TEE (204). Selecting a target TEE requires selecting a system containing a TEE capable of executing secure computations. FIGS. 3, 4, 9A, 9B, 10A, and 10B illustrate examples of how a target TEE is selected and which attributes can be verified. In preferred embodiments, the expected attributes of the TEE are expected to be known prior to selection. However, those skilled in the art will recognize that the expected attributes may also be a function of the selected TEE. For example, if a computation is being provisioned that can run on multiple architectures, the required attributes will likely depend on the target architecture. Authentication (206) constrains the computation to a specific TEE or to a set of TEEs that meet certain criteria. In either case, the particular TEE and/or the criteria used to verify the TEE must be known before a certificate can be generated. Selecting the target TEE and identifying the criteria are handled in step 204. Those skilled in the art will recognize that these may be two separate steps.

認証を生成するのがステップ206である。一般に、認証によって、認証されるTEEのセットがセキュアなコンピューテーションを実行するように制約される。好ましい実施形態では、認証は図6に示すように、保護された対称シードである。好ましい実施形態では、各TEEがキー・ペアを有する。好ましい保護機構は、標的TEEと関連付けられたパブリック・キーでシードを暗号化するものである。認証されたTEEのみがプライベート・キーにアクセスできる。プライベート・キーはTPMにおいて、または何らかの他のハードウェア保護機構においてロックされてもよい。TPM仕様書では、パブリック・キーを用いた暗号化をシール処理として、シールの結果物をシールされたデータとして、およびプライベート・キーを用いたシールされたデータの復号をシール解除処理として、定義している。認証は、その認証がどのTEEに関するものであるかを示す識別子を包含し得る。TEEはその識別子が存在する場合、その認証を検証する。 Step 206 generates a certificate. Generally, a certificate constrains the set of TEEs that are certified to perform secure computations. In a preferred embodiment, the certificate is a protected symmetric seed, as shown in Figure 6. In a preferred embodiment, each TEE has a key pair. A preferred protection mechanism is to encrypt the seed with a public key associated with the target TEE. Only the certified TEE has access to the private key. The private key may be locked in the TPM or some other hardware protection mechanism. The TPM specification defines encryption with the public key as the sealing process, the result of the sealing as the sealed data, and decryption of the sealed data with the private key as the unsealing process. A certificate may include an identifier that indicates which TEE the certificate pertains to. The TEE verifies the certificate if the identifier is present.

好ましい実施形態では、プライベート・キーをセキュアに保持するためにTPMが使用される。好ましい実施形態では、プライベート・キーはTPMにロックされ、複製は許可されない。代替として、キーはTPMにロックされ、複製はパスワードによってのみ許可される。しかしながら、当業者には、単一のシークレットで複数のマシンをプロビジョニングするためには、パスワードを非常にセキュアに管理しなければならないことが知られている。当業者には、プライベート・キーがハードウェアの信頼のルートによって保護された何らかの他のロケーションにも保持され得ることが知られている。TPMを使用するとき、プライベート・キーにアクセスして対称キーをシール解除する能力と関連付けられたポリシによって、認証されるシステムのセットまたはシステムの構成を、セキュアなコンピューテーションを実行するように制約することができる。例えば、好ましい実施形態では、パブリック・キーにアクセスする能力は、図7Aに図示したもののように、PCRが特定の値と一致することを要求することができる。例示した制約は図7Aで説明されている。当業者であれば、認証を恣意的に複雑にできることを認識している。認証は、シールされたデータに組み込まれてもよく、または別個のメタデータであってもよい。 In a preferred embodiment, a TPM is used to securely store the private key. In a preferred embodiment, the private key is locked to the TPM and not allowed to be copied. Alternatively, the key is locked to the TPM and only copied by password. However, those skilled in the art will recognize that in order to provision multiple machines with a single secret, passwords must be managed very securely. Those skilled in the art will recognize that the private key may also be kept in some other location protected by a hardware root of trust. When using a TPM, the policy associated with the ability to access the private key and unseal the symmetric key can constrain the set of systems or configuration of systems that are authenticated to perform secure computations. For example, in a preferred embodiment, the ability to access the public key can require that the PCR match a specific value, such as that shown in Figure 7A. An example constraint is described in Figure 7A. Those skilled in the art will recognize that authentication can be arbitrarily complex. The authentication may be embedded in the sealed data or may be separate metadata.

認証をコンピューテーションと関連付ける208。認証をコンピューテーションと関連付けるステップが図6に説明されている。 Associate authentication with the computation 208. The steps for associating authentication with the computation are described in Figure 6.

関連付けられた認証を用いてコンピューテーションを生成する210。シールされたデータを包含する認証は、コンピューテーションに動的に挿入される。好ましい実施形態では、予め準備されたコンピューテーションに認証が挿入されるか、またはコンピューテーションの準備中に認証が挿入される。 The computation is generated using the associated certificate 210. The certificate containing the sealed data is dynamically inserted into the computation. In a preferred embodiment, the certificate is inserted into a pre-prepared computation or during the preparation of the computation.

最後に、標的TEEにコンピューテーションがプロビジョニングされる212。本発明によってプロビジョニングされるコンピューテーションの例は、セキュアなVMである。TEE内へのセキュアなVMのプロビジョニングの例が、図3および図4、図9Aおよび図9B、ならびに図10Aおよび図10Bに与えられている。 Finally, the computation is provisioned into the target TEE 212. An example of a computation provisioned by the present invention is a secure VM. Examples of provisioning a secure VM into a TEE are provided in Figures 3 and 4, 9A and 9B, and 10A and 10B.

一部のTEEモデルでは、TEEのユーザは、シークレットの挿入前にTEEが有効であることを明示的に検証しなければならない。そのようなモデルでは、TEEは標的システム上で立ち上げられるが、証明が検証されるまでは復号されない。標的システムはセキュアになった後で、TEEの状態の測定を行うかまたはその状態を有する。その測定結果をユーザに送る。ユーザがその測定結果に満足した場合、TEEがコンピューテーションを復号することを可能にするシークレットの挿入が認証された。このシークレットは実質的には認証である。これがなければ、このタイプのTEE内ではコンピューテーションは実行されない。この関連付けは、標的システム内でTEEを実行させることによる黙示的なものである。生成は許容可能な値を演算するユーザである。 In some TEE models, the user of the TEE must explicitly verify that the TEE is valid before inserting a secret. In such models, the TEE is launched on the target system but is not decrypted until the attestation is verified. After the target system is secured, it takes or has a measurement of the state of the TEE. It sends the measurement to the user. If the user is satisfied with the measurement, it has authorized the insertion of a secret that allows the TEE to decrypt the computation. This secret is effectively an authentication; without it, no computation would be performed in this type of TEE. This association is implicit by running the TEE in the target system. The generator is the user computing an acceptable value.

図2Bは、本発明の実施形態としての、TEE内にコンピューテーションをプロビジョニングするための例示のフロー図を示す。TEEのためのコンピューテーションの準備は信頼される環境内で行われるべきである。当業者は、TEEにおいてコンピューテーションを実行させるための認証の準備は信頼される環境において行われるべきであるものの、どのような場所でも行われ得ることを認識している。プロビジョニングは230で開始する。第1のステップはTEEを検証すること、232である。標的TEEの検証の例が、図4、図10A、および図10Bに見られる。TEEを検証できない場合、プロビジョニングは246において終了する。次に、コンピューテーション・インテグリティ情報が生成されなければならない、234。コンピューテーション・インテグリティ情報の例は、図6のインテグリティ情報677である。この説明では、コンピューテーションが実行されるTEEがコンピューテーションのインテグリティを検証し、問題があった場合には実行を失敗することが仮定されている。別法として、TEEは独立してコンピューテーションのインテグリティを演算し、その情報を何らかのセキュアな機構を介して所有者に返してもよく、不適正であった場合にはTEEの実行は終了されることになる。所有者が実行中のTEEのインテグリティを検証しなければならない実装形態では、センシティブ情報はそれが検証されるまではTEE内に含めるべきではないことを指摘するのは有益であろう。いずれの手法でもインテグリティ情報が要求される。次にシールされたデータが生成される236。シールされたデータは、TEEがコンピューテーションを実行するべく認証されるかどうかを指定する。当業者には、シールされたデータがTPMに特有の用語であることが認識される。TPMによってデータがシールされると、そのシールされたデータと、シールされたデータにアクセスするために満足されねばならないポリシとが関連付けられる。コンピューテーション情報、シールされたデータ、およびインテグリティ情報は、TEEに送られる、238。好ましい実施形態では、TEEが認証されることを検証するために、シールされたデータと関連付けられたポリシが使用される。このポリシはTPMによって実施される。TEEは、そのTEEがコンピューテーションを実行するべく認証されることを確認する、240。TEEが認証されない場合、実行は終了する、246。コンピューテーションのインテグリティが検証される、242。このことは、TEEが独立的にインテグリティ情報を演算することによって達成されてもよい。それはその場合それが受け取ったインテグリティ情報と一致するかを検証することができる、または、それは何らかのセキュアなチャネルを介してその計算結果をイニシエータに送り返し、それらが確認されるのを待機してもよい。いずれの場合も、コンピューテーションのインテグリティが検証されない場合には、実行は終了する、246。それ以外の場合は、コンピューテーションが実行される、244。 2B shows an exemplary flow diagram for provisioning a computation within a TEE, according to an embodiment of the present invention. Computation preparation for a TEE should occur within a trusted environment. Those skilled in the art will recognize that while preparation of authentication for running a computation within a TEE should occur within a trusted environment, it can occur anywhere. Provisioning begins at 230. The first step is validating the TEE, 232. Examples of validating the target TEE are seen in FIGS. 4, 10A, and 10B. If the TEE cannot be verified, provisioning ends at 246. Next, computation integrity information must be generated, 234. An example of computation integrity information is integrity information 677 in FIG. 6. This description assumes that the TEE on which the computation is executed verifies the integrity of the computation and fails execution if there is a problem. Alternatively, the TEE may independently compute the integrity of the computation and return that information to the owner via some secure mechanism; if incorrect, execution of the TEE will be terminated. It is useful to note that in implementations where the owner must verify the integrity of the running TEE, sensitive information should not be included in the TEE until it has been verified. Either approach requires integrity information. Next, sealed data is generated 236. The sealed data specifies whether the TEE is authorized to perform the computation. Those skilled in the art will recognize that sealed data is a term specific to the TPM. When data is sealed by the TPM, the sealed data is associated with a policy that must be satisfied to access the sealed data. The computation information, sealed data, and integrity information are sent to the TEE 238. In a preferred embodiment, the policy associated with the sealed data is used to verify that the TEE is authorized. This policy is enforced by the TPM. The TEE verifies that it is authorized to perform the computation, 240. If the TEE is not authorized, execution terminates, 246. The integrity of the computation is verified, 242. This may be achieved by the TEE independently computing integrity information, which it can then verify matches the integrity information it received, or it may send its computation results back to the initiator over some secure channel and wait for them to be verified. In either case, if the integrity of the computation is not verified, execution terminates, 246. Otherwise, the computation is performed, 244.

図3および図4は、SM(セキュリティ・モジュール)980が存在しないPEF(Protected Execution Facility)の代替形態のフローを示す。 Figures 3 and 4 show the flow of an alternative form of PEF (Protected Execution Facility) in which SM (Security Module) 980 is not present.

具体的には、図3は、本発明の実施形態のセキュリティ・モデルに関するKYOK(Keep Your Own Key)のフローを示す。 Specifically, Figure 3 shows the KYOK (Keep Your Own Key) flow for the security model of an embodiment of the present invention.

KYOKの場合、顧客はエンロールメント・プロトコルを実行する責任を受け入れている。あるいは、エンロールメント・プロトコルは顧客に信頼されている者によって実行されねばならない。このモデルでは、顧客は、自身が信頼しているプラットフォーム構成レジスタ6(PCR6)の値を制御する。 In KYOK, the customer accepts responsibility for running the enrollment protocol, or the enrollment protocol must be run by someone trusted by the customer. In this model, the customer controls the value of Platform Configuration Register 6 (PCR6), which they trust.

システム200は、トラステッド・インフラストラクチャ350(ハイライトで示す)と、アントラステッド・クラウド・インフラストラクチャ361(ハイライトされていない残りの構造)と、に分割される。トラステッド・インフラストラクチャ350(ハイライトで示す)は、顧客302およびツーリング・モジュール304として示されている。 System 200 is divided into a trusted infrastructure 350 (highlighted) and an untrusted cloud infrastructure 361 (the remaining structure not highlighted). The trusted infrastructure 350 (highlighted) is shown as customer 302 and tooling module 304.

このフローは、Image-IDのイメージID(識別情報)を有する、SVMになり得るVM416(図示されていない)が、クラウド・インフラストラクチャ・ストア内に予めロードされていることを仮定している。セキュアなVM416をプロビジョニングするために、カスタマ・モジュール(またはカスタマ・ネットワーク)302は、ツーリング304がVM Image_ID318を開始することをリクエストする。ツーリング・モジュール304はクラウド・フロント・エンド306に対して、セキュアなプロビジョニングをリクエストする320。クラウド・フロント・エンド306はツーリング・モジュール304に対して、有料サービスを確認する322。ツーリング・モジュール304は、ゾーン・オーケストレータ310がイメージ-IDのインスタンスを作成すること324をリクエストする。 This flow assumes that a VM 416 (not shown), which may be an SVM, with an image ID (identification information) of Image-ID has been pre-loaded in the cloud infrastructure store. To provision a secure VM 416, the customer module (or customer network) 302 requests that the tooling 304 launch the VM Image_ID 318. The tooling module 304 requests secure provisioning 320 from the cloud front end 306. The cloud front end 306 confirms paid services 322 with the tooling module 304. The tooling module 304 requests that the zone orchestrator 310 create an instance of Image-ID 324.

次いでシステム200は、標的マシン325を以下のように選択する。ゾーン・オーケストレータ310はMach-Indによって表される標的マシンを選択し、TPMを有する標的システム312にプラットフォーム証明書およびストレージ・キー326をリクエストする。当業者には、既存のクラウド・インフラストラクチャが、要件のリストを利用し、それらのインフラストラクチャから利用可能なマシンを選択する方法を知っていることが知られている。そのようなマシンを選択するための任意の技術を許容できる。当業者には、選択すべき属性のリストを標的TEEと関連付けられた属性で増補するべきことが認識される。更に、当業者には、Mach-IndはIPアドレス、またはプロバイダのインフラストラクチャ内のマシンを識別するために使用できる任意の他の情報であり得ることが認識される。TPMを有する標的システム312は次いで、プラットフォーム証明書およびストレージ・キーをゾーン・オーケストレータ310に返す328。ゾーン・オーケストレータ310は、このマシンをエンロールする(Mach-ind、プラットフォーム証明書、ストレージ・キー)330を介して、クライアント・ツーリング・モジュール304が標的マシンをエンロールすることをリクエストする。 The system 200 then selects a target machine 325 as follows: The zone orchestrator 310 selects a target machine, represented by Mach-Ind, and requests a platform certificate and storage key 326 from the target system with a TPM 312. Those skilled in the art will recognize that existing cloud infrastructures know how to utilize a list of requirements to select an available machine from their infrastructure. Any technique for selecting such a machine is acceptable. Those skilled in the art will recognize that the list of attributes to select should be augmented with attributes associated with the target TEE. Furthermore, those skilled in the art will recognize that Mach-Ind can be an IP address or any other information that can be used to identify a machine within the provider's infrastructure. The target system with a TPM 312 then returns the platform certificate and storage key 328 to the zone orchestrator 310. The zone orchestrator 310 requests that the client tooling module 304 enroll the target machine via Enroll This Machine (Mach-ind, Platform Certificate, Storage Key) 330.

次いでクライアント・ツーリング・モジュール304は、標的システムを検証する332。 The client tooling module 304 then validates the target system 332.

標的システムが検証される場合には、クライアント・ツーリング304はシールされたデータを生成する334。示されていないが、標的システムの検証332が失敗した場合、アクティベーションは停止する。ツーリング・モジュール304は、ゾーン・オーケストレータ・モジュール310に認証実行(Mach-ind.、シールされたデータ)436を送る。 If the target system is verified, the client tooling 304 generates sealed data 334. Although not shown, if the target system verification 332 fails, activation stops. The tooling module 304 sends an authentication execution (Mach-ind., sealed data) 436 to the zone orchestrator module 310.

ゾーン・オーケストレータ・モジュール310はクラウド・オブジェクト・ストア308に、Image-ID(Image識別情報)338をリクエストする。クラウド・オブジェクト・ストア308はゾーン・オーケストレータ・モジュール310に、Image-IDと関連付けられたイメージを再び返す340。次いでゾーン・オーケストレータ310は、シールされたデータを、クラウド・オブジェクト・ストア308から返されたイメージに挿入する342。ゾーン・オーケストレータは次いで、挿入されたシールされたデータを有するイメージを、TPMを有する標的システム312に渡して、標的システムにイメージを実行するように命令する344。 The zone orchestrator module 310 requests an Image-ID (Image identification information) 338 from the cloud object store 308. The cloud object store 308 returns the image associated with the Image-ID 340 to the zone orchestrator module 310. The zone orchestrator 310 then inserts 342 the sealed data into the image returned from the cloud object store 308. The zone orchestrator then passes the image with the inserted sealed data to the target system 312 with a TPM and instructs the target system to execute the image 344.

図4は、本発明の実施形態の標的システムの検証332(PEF)の詳細を示す。トラステッド・インフラストラクチャ350は、カスタマ・モジュール(またはカスタマ・ネットワーク)302およびツーリング・モジュール304として示されている。アントラステッドクラウド・インフラストラクチャ361も示されている。 Figure 4 shows details of target system validation 332 (PEF) in an embodiment of the present invention. The trusted infrastructure 350 is shown as a customer module (or customer network) 302 and a tooling module 304. An untrusted cloud infrastructure 361 is also shown.

標的システムは、ステップ330においてクラウド・フロント・エンド306が、ツーリング・モジュール304にこのマシンをエンロールすることをリクエストするのに応答して検証される。TEEを検証することは、プラットフォーム証明書を検証することと、ストレージ・キーの特性が予想される通りであるとの検証と、を要求する。次いでカスタマ・ツーリング304はプラットフォーム証明書の検証を行い、ストレージおよびキー特性をチェックする460。示されていないが、プラットフォーム証明書またはストレージ・キー特性が適正でない場合には、標的システムの検証は失敗を返す。この失敗の返答によって、ツーリング304に、ゾーン・オーケストレータが異なる標的システムを供給するようにリクエストさせることができる。引き続き図4では、プラットフォーム証明書およびストレージ・キーが有効である場合、カスタマ・ツーリング304は次いでチャレンジを生成し、認証情報を作成する462。チャレンジは認証情報から成るが、これは、(適正なシステムへのチャレンジを入手するために使用される)Mach-ind上のTPMだけが開くことのできるバイナリ・ブロブである。ツーリング・モジュール304はクラウド・フロント・エンド306にチャレンジ464を送る。クラウド・フロント・エンド306は、チャレンジ466をゾーン・オーケストレータ310に転送する。ゾーン・オーケストレータ310は、アクティベート認証情報(activate credential)468を介して、TPMを有する標的システム312に、標的システム312に対するチャレンジを転送する。示されていないが、標的システム312はそのTPMにアクティベート認証情報を発行し、応答を受け取る。TPMを有する標的システム312は、ゾーン・オーケストレータ310に、チャレンジに対する応答を送る470。ゾーン・オーケストレータは、チャレンジ472に対する応答を、クラウド・フロント・エンド306に転送する。クラウド・フロント・エンド306は次いで、チャレンジへの応答をカスタマ・ツーリング・モジュール304に転送する474。次いでツーリング・モジュール304はチャレンジ応答をチェックし、成功または失敗を示す476。 The target system is validated in step 330 in response to the cloud front end 306 requesting the tooling module 304 to enroll this machine. Validating the TEE requires validating the platform certificate and verifying that the storage key characteristics are as expected. The customer tooling 304 then validates the platform certificate and checks the storage and key characteristics 460. Although not shown, if the platform certificate or storage key characteristics are not correct, the target system validation returns a failure. This failure response can cause the tooling 304 to request that the zone orchestrator provision a different target system. Continuing with FIG. 4, if the platform certificate and storage key are valid, the customer tooling 304 then generates a challenge and creates authentication information 462. The challenge consists of authentication information, which is a binary blob that only the TPM on the Mach-inst can open (used to obtain a challenge for the correct system). The tooling module 304 sends a challenge 464 to the cloud front end 306. The cloud front end 306 forwards the challenge 466 to the zone orchestrator 310. The zone orchestrator 310 forwards the challenge to the target system 312 with a TPM via an activate credential 468. Although not shown, the target system 312 issues an activate credential to its TPM and receives a response. The target system 312 with a TPM sends a response to the challenge 470 to the zone orchestrator 310. The zone orchestrator forwards the response to the challenge 472 to the cloud front end 306. The cloud front end 306 then forwards the response to the challenge 474 to the customer tooling module 304. The tooling module 304 then checks the challenge response and indicates success or failure 476.

図5は、本発明の実施形態におけるマシンのプロビジョニングの方法を示す。 Figure 5 shows a method for provisioning a machine in an embodiment of the present invention.

本発明の実施形態のうちの1つは、パスワードを保持するために、TPMにおけるNV(Non-Volatile;不揮発性)ロケーションを利用する。マシンをインフラストラクチャ内に置く前にまたはクラウド・インフラストラクチャ内へのマシンのプロビジョニングの一部として、NV_Location_XのNVロケーションを、適切なポリシを用いて割り当てなければ(プロビジョニングしなければ)ならない540。 One embodiment of the present invention utilizes a non-volatile (NV) location in the TPM to store the password. Prior to placing the machine in the infrastructure or as part of provisioning the machine into the cloud infrastructure, the NV location of NV_Location_X must be assigned (provisioned) with the appropriate policy 540.

システム500は、パスワードを利用することおよびそれがNV_Location_X内のパスワードと一致することを要求するポリシを用いて、ストレージ・キーを生成する544。定義によれば、ストレージ・キーは親であり、親キーの子はキーである必要はない。ストレージ・キーを使用するために、パスワードが要求される544。ストレージ・キーの好ましい属性はTPMに固定されるべきであり、キーのアルゴリズムはRSA2048(2,048ビットを有するRivest-Shamir-Adleman暗号系)とすることができ、キー長は2048であり、認証はNV_Location_Xへのポインタ、およびプラットフォーム階層である。ポリシ544はまた、ストレージ・キーを使用するためには、PCR6が整合しなければならないことも述べている。ブートのたびに新しいパスワードが割り当てられて、ULTRAVISORに与えられる。好ましい実施形態では、パスワードはブートごとに生成し直される。 The system 500 generates a storage key 544 using a policy that requires the use of a password and that it matches the password in NV_Location_X. By definition, a storage key is a parent; children of a parent key are not necessarily keys. A password is required 544 to use the storage key. Preferred attributes of the storage key are that it should be locked to the TPM, the key algorithm can be RSA2048 (a Rivest-Shamir-Adleman cryptosystem with 2,048 bits), the key length is 2048, and the authentication is a pointer to NV_Location_X and the platform hierarchy. Policy 544 also states that PCR6 must match in order to use the storage key. A new password is assigned and provided to the ULTRAVISOR with each boot. In a preferred embodiment, the password is regenerated with each boot.

プロビジョニングの第3のステップ542は、ストレージ・キーを利用するために要求されるパスワードがNV_Location_X内にあることを述べている予め計算されたポリシを用いて、ストレージ・キーを生成することである。ステップ544において、ストレージ・キーに関するポリシは、パスワードを利用することおよびそれがロケーションNV_Location_X内のパスワードと一致することを要求する。 The third step of provisioning 542 is to generate a storage key using a pre-computed policy that states that the password required to access the storage key is in NV_Location_X. In step 544, the policy for the storage key requires that a password be used and that it matches the password in location NV_Location_X.

コンピューテーションおよび関連するデータの、隔離およびセキュリティを維持することが、ULTRAVISORの唯一の目的である。システム管理は依然としてハイパーバイザの責任である。ハイパーバイザは、セキュリティ・センシティブな機能の管理を継続するために、ウルトラ-コールを使用する。必要な場合、ULTRAVISORは、ハイパーバイザが要求するアクションが実行中のどのSVM(セキュアな仮想マシン)のセキュリティにも影響しないことを確認する。 Maintaining the isolation and security of computation and associated data is the sole purpose of the ULTRAVISOR. System management remains the responsibility of the hypervisor, which uses ultra-calls to continue managing security-sensitive functions. When necessary, the ULTRAVISOR ensures that actions requested by the hypervisor do not affect the security of any running SVMs (Secure Virtual Machines).

したがって、述べたように、好ましい実装の例では、他の属性に加えて、ストレージ・キーはTPMに固定され、キーのアルゴリズムはRSAであり、キー長は2048である。パスワードを変更する能力はTPMプラットフォーム認証に結び付いているが、これは何らかのOSがプラットフォームにロードされる前の、ファームウェアのブート・プロセスの初期に終了しなければならない。マシンにおけるファームウェアは、マシンがブートされるたびに新しいランダム・パスワードを割り当て、そのパスワードをULTRAVISORまたは同等のファームウェアに渡す能力を有さねばならない。 Thus, as noted, in a preferred implementation, in addition to other attributes, the storage key is fixed to the TPM, the key algorithm is RSA, and the key length is 2048. The ability to change the password is tied to TPM platform authentication, which must be completed early in the firmware boot process, before any OS is loaded onto the platform. The firmware in the machine must have the ability to assign a new random password each time the machine is booted and pass that password to ULTRAVISOR or equivalent firmware.

図6は、ESMオペランド691のレイアウトを示す。ESMオペランド691は、2つの大きいエリア、センシティブ情報685およびペイロード689へと分割され得る。センシティブ・エリアはシールされたデータを包含している。各シールされたデータによって、適切に構成されたシステムが、ESMオペランドのペイロード・エリア689内の情報にアクセスすることが可能になる。シールされたデータ673はマシンAへのアクセスを提供し、シールされたデータ675はマシンBへのアクセスを提供する。シール解除されたデータは、対称キーおよびHMACキーを生成するために使用されるシードである。ペイロード・エリア689内にあるHMACを除く全てのものが、シードから生成される対称キーを用いて暗号化される。ペイロード・エリア689の第1の部分は、インテグリティ情報677である。これは、コンピューテーションのインテグリティを検証するためにPEFによって要求される情報である。これは、カーネルのハッシュ、カーネル・コマンド・ライン、initramfs(初期RAM(ランダム・アクセス・メモリ))、およびRTASエリアから成る。好ましい実施形態では、インテグリティ情報677は指定されたように暗号化される。代替の実施形態では、インテグリティ情報は暗号化されない。PEFはクリエータと連絡を行うことなくコンピューテーションのインテグリティを検証するので、この情報はセキュアなコンピューテーションが作成されるときに生成され、ESMオペランド内に置かれる。(コンピューテーションのインテグリティを検証するためにコンピューテーションの所有者/ユーザとの連絡が行われる技術の場合、情報はTEEによって計算されねばならない)。ペイロード・エリア689内の残りの情報はシークレット687である。これらはCD1からCDnで表され、CDは「Customer data;顧客データ」を表す。好ましい実施形態のインテグリティは、VMのカーネル、initramfs、カーネル・コマンド・ライン、およびRTASを保護する677。ブート・ディスクは暗号化されるべきである。好ましい実施形態では、顧客データ679の第1のブロックは、対称キーを用いて暗号化されるルート・ディスクを保護するパスフレーズを包含する。暗号化されたパス・フレーズの後には、顧客データのゼロ個またはそれより多くのブロックが存在する。シークレット687の各々が、シードから生成される対称キーを用いて暗号化される。 Figure 6 shows the layout of the ESM operand 691. The ESM operand 691 can be divided into two large areas: sensitive information 685 and payload 689. The sensitive area contains sealed data. Each sealed data allows a properly configured system to access the information in the payload area 689 of the ESM operand. Sealed data 673 provides access to machine A, and sealed data 675 provides access to machine B. The unsealed data is the seed used to generate the symmetric key and HMAC key. Everything in the payload area 689 except the HMAC is encrypted using the symmetric key generated from the seed. The first part of the payload area 689 is integrity information 677. This is the information required by PEF to verify the integrity of the computation. It consists of a hash of the kernel, the kernel command line, initramfs (initial RAM (random access memory)), and the RTAS area. In a preferred embodiment, the integrity information 677 is encrypted as specified. In an alternative embodiment, the integrity information is not encrypted. Because the PEF verifies the integrity of a computation without contacting the creator, this information is generated when the secure computation is created and placed in the ESM operand. (For techniques that involve contacting the owner/user of the computation to verify the integrity of the computation, the information must be calculated by the TEE.) The remaining information in the payload area 689 is the secret 687. These are represented as CD1 through CDn, where CD stands for "Customer data." Integrity in the preferred embodiment protects the VM's kernel, initramfs, kernel command line, and RTAS 677. The boot disk should be encrypted. In a preferred embodiment, the first block of customer data 679 contains a passphrase that protects the root disk, encrypted with a symmetric key. Following the encrypted passphrase are zero or more blocks of customer data. Each secret 687 is encrypted using a symmetric key generated from the seed.

図7Aは、本発明の実施形態におけるハードウェア構成の検証のためにPCR6 786へと拡張された値を示す。好ましい実施形態は、ハードウェアおよびファームウェア構成が有効であることを確認できるように、セキュアで信頼されるブートを利用する。ここで表される値は、値の好ましいセットである。代替の実装形態では異なる値を使用してもよい。当業者であれば、PCR6 786が値を保持するために使用されているPCRを代表するものであること、および、どのようなPCRが使用されても、それもまた検証を行うために(図7Aには図示されていない)シールされたデータのポリシ内に現れなければならないことを、理解している。この実施形態は、本発明に必要な可変コードまたは不変コードあるいはその両方のアクションを識別するだけであることに、留意することが重要である。本明細書に記載する可変ブート・ローダ776および不変コード772は、自己ブート・エンジン(SBE;self-boot engine)内で実行され、本明細書に記載されていない多くのアクションを実行する。シグネチャ検証が失敗するたびにセキュアで信頼されるブートが有効になる場合、実行は終了する。システムが電源投入されるとき、不変ブート・ローダ772は最初に実行されるコードである。不変ブート・ローダ772は、ハードウェア・キー・ハッシュ788およびセキュアなブート・ジャンパ790を、PCR6 786へと拡張する。ハードウェア・キー・ハッシュ788は、ファームウェア上のシグネチャを検証するために使用される暗号キー上のシグネチャを検証するために使用中の暗号キーのハッシュである。セキュアなブート・ジャンパ790は、セキュアなブートが有効になるかそれとも無効になるかを識別する。可変ブート・ローダ776に制御を渡す前に、不変コード772は、可変ブート・ローダ776のシグネチャをロードし検証する。シグネチャが検証された場合、不変コード772は、PCR6 786に、他のコードのシグネチャを検証する可変ブート・ローダ776の一部であるSB検証コード774のハッシュを拡張する。それは次いで、可変ブート・ローダ776に制御を渡す。可変ブート・ローダ776はホストブート・ローダ778を検証する。ホストブート・ローダ778は、ホストブートInit.(initialization;初期化)780を検証する。ホストブートInit780は、ホストブートExt.(extensions;拡張)782を検証する。ホスト・ブートExt.782は、セパレータ792をPCR6へと拡張する。ホスト・ブートExt.782は、OPAL784を検証する。OPAL784は、PEFイネーブル・ビット794をPCR6 786へと拡張する。図7Aは、適切に構成されたハードウェアがブートされるときに、PCR6 786の値がどのように生成されることになるかを説明する。好ましい実施形態では、シールされたデータと関連付けられたポリシは、PCR6がこの値と一致することを要求する。どのような実装形態がその構成を適切に検証するよう要求しても、所望に応じて他の値をPCR6(または別のPCR)に拡張することができる。本発明によって要求される認証ポリシは、仮想TPM、現実のTPMを使用するソフトウェアによって、値を物理または仮想PCRに拡張する、またはTPMによって実行される動作を再実装すること(推奨されない)同じ方法で生成することができる。ポリシは、セキュアなコンピューテーションを実行するべくTEEを認証するために要求される、ハードウェア・キー・ハッシュ788、セキュアなブート・ジャンパ790、SB検証コード774のハッシュ、ファームウェアによって使用されるセパレータ792、およびPEFイネーブルド・ビット794の状態を指定する。 Figure 7A shows values expanded into PCR6 786 for hardware configuration validation in an embodiment of the present invention. A preferred embodiment utilizes secure and trusted boot to ensure that the hardware and firmware configuration is valid. The values represented here are a preferred set of values. Alternative implementations may use different values. Those skilled in the art will understand that PCR6 786 is representative of PCRs used to hold values, and that whatever PCR is used must also appear in the sealed data policy (not shown in Figure 7A) for validation to occur. It is important to note that this embodiment only identifies the actions of the mutable code and/or immutable code required for the present invention. The mutable boot loader 776 and immutable code 772 described herein execute within a self-boot engine (SBE) and perform many actions not described herein. Execution terminates if secure and trusted boot is enabled whenever signature verification fails. When the system is powered on, the immutable boot loader 772 is the first code executed. The immutable boot loader 772 extends a hardware key hash 788 and a secure boot jumper 790 into PCR6 786. The hardware key hash 788 is a hash of the encryption key being used to verify the signature on the encryption key used to verify the signature on the firmware. The secure boot jumper 790 identifies whether secure boot is enabled or disabled. Before passing control to the mutable boot loader 776, the immutable code 772 loads and verifies the signature of the mutable boot loader 776. If the signature is verified, the immutable code 772 extends PCR6 786 with the hash of the SB verification code 774, which is part of the mutable boot loader 776 that verifies the signatures of other code. It then passes control to the mutable boot loader 776. Variable boot loader 776 validates host boot loader 778. Host boot loader 778 validates host boot init. (initialization) 780. Host boot init. 780 validates host boot ext. (extensions) 782. Host boot ext. 782 extends separator 792 into PCR6. Host boot ext. 782 validates OPAL 784. OPAL 784 extends PEF enable bit 794 into PCR6 786. Figure 7A illustrates how the value of PCR6 786 will be generated when properly configured hardware is booted. In a preferred embodiment, the policy associated with the sealed data requires PCR6 to match this value. Other values can be extended into PCR6 (or another PCR) as desired, whatever implementation requires to properly validate its configuration. The authentication policy required by this invention can be generated by software using a virtual TPM, a real TPM, extending values into physical or virtual PCRs, or reimplementing the operations performed by the TPM (not recommended). The policy specifies the hardware key hash 788, secure boot jumper 790, hash of SB verification code 774, separator 792 used by firmware, and the state of the PEF enabled bit 794 required to authenticate the TEE to perform secure computation.

図7Bは、PEFを使用する本発明の実施形態における、認証要件を確認すること240と、コンピューテーション情報のインテグリティを検証すること242と、を示す。既に述べたように、セキュアなコンピューテーションは通常のVMとして開始する。これがPEF TEE内で実行されるセキュアなVMに移行するためのESM ULTRAVISORコールを実行し、この時点で検証が開始される、750。好ましい実施形態では、ESMウルトラ-コールは、図6に示されているESMオペランド691を要求する。ESMオペランドが存在しない場合、ESMウルトラ-コールは失敗する。TEEは、セキュアなVMを実行するために、それが認証されるかを確認するチェックを行う240。それが認証されない場合、実行は終了する、766。認証された場合、TEEはそれが有効なTEEであるかを確認するチェック754を行うが、有効なTEEとは、SVMクリエータが指定するシールされたデータのポリシを満たすものである。PEFの場合、このチェックは、ULTRAVISORがシールされたデータからシードを抽出するようにTPMにリクエストすると、TPMによって行われる。TEEがこれらの要件を満たさない場合、実行は終了する766。TEEは認証され要件を満たすので、それは、HMACキーを、およびインテグリティが有効である場合に対称キーを生成するのに必要な、対称シードへのアクセス権を有する。それは次にHMACキーを生成する、756。それは、HMACキーを使用して、ESMオペランド内の暗号化された情報が改変されていないことを検証する758。暗号化された情報が改変されていた場合、実行は終了する766。それ以外の場合、対称キーが生成される、760。このことによりTEEには、コンピューテーションのインテグリティの検証242のために要求される情報へのアクセス権が与えられる。コンピューテーションが改変されていた場合、実行は終了する、766。それ以外の場合、VMはSVMへの移行を完了し実行され764、これによって移行が首尾よく終了し768、VMはこの時点でSVMとなる。 Figure 7B illustrates checking authentication requirements 240 and verifying the integrity of computation information 242 in an embodiment of the invention using PEF. As previously described, a secure computation begins as a normal VM. It executes an ESM ULTRAVISOR call to transition to a secure VM running within a PEF TEE, at which point verification begins 750. In a preferred embodiment, the ESM ultra-call requires the ESM operand 691 shown in Figure 6. If the ESM operand is not present, the ESM ultra-call fails. The TEE checks 240 to verify that it is authorized to run the secure VM. If it is not authorized, execution terminates 766. If authorized, the TEE checks 754 to verify that it is a valid TEE; a valid TEE is one that meets the sealed data policy specified by the SVM creator. In the case of the PEF, this check is performed by the TPM when the ULTRAVISOR requests the TPM to extract a seed from the sealed data. If the TEE does not meet these requirements, execution terminates 766. Because the TEE is authenticated and meets the requirements, it has access to the symmetric seed needed to generate the HMAC key and, if integrity is valid, the symmetric key. It then generates the HMAC key 756. It uses the HMAC key to verify that the encrypted information in the ESM operand has not been altered 758. If the encrypted information has been altered, execution terminates 766. Otherwise, the symmetric key is generated 760. This gives the TEE access to the information required for verifying 242 the integrity of the computation. If the computation has been altered, execution terminates 766. Otherwise, the VM completes the migration to the SVM and is executed 764, thereby completing the migration successfully 768 and the VM now becoming an SVM.

プロビジョニング
図8は、本発明の実施形態の、例示のprotected execution facility(PEF)を示す。システム800は、SVM(Secure Virtual Machine;セキュアな仮想マシン)実行を要求する(S0)。次いで、オーケストレータ・モジュール852は、T0…Tn864(S1)の中から標的マシンを選択する。オーケストレータ・モジュール852は、SM(security module;セキュリティ・モジュール)866に、選択された標的マシン、T0…Tn、864(S2)のうちの1つを検証するように依頼する。図5では、選択された標的はTn、864である。SM866は、選択された標的システム864(S3)に、情報(プラットフォーム証明書、ストレージ・キー構造、HW(ハードウェア)キー・ハッシュ)をリクエストする。SM866は、それらが適正であることを検証しなければならない。検証を行うために、それはプラットフォームのベンダのパブリック・キーを持たなければならない。キーを取得すると、それは検証プロセスを促進するためにキーを内部に保管することができる。SM866は、ベンダ860(S3a)のパブリック・キーを用いてマシンを検証し、まだそれを持っていなければ、ベンダと連絡をとる。SMデバイス866は、オーケストレータ・モジュール852にシールされたデータを送る(S4)。オーケストレータ・モジュール852はライブラリ858から、選択されたSVM856のコピーを読み出すS5。PEFにおいては、全てのSVMがVM854として実行を開始することに留意されたい。ライブラリ858に関する限り、全てのイメージはVM854である。本発明の説明を簡潔にするために、SVMになり得るこれらのVM854は、ライブラリ858内でSVM856とラベリングされている。当業者であれば、ライブラリ858がその違いが分かるようにまたはその違いが分からないように実装され得ることを知っている。オーケストレータはシールされたデータをSVMのコピーに挿入する。オーケストレータ・モジュール852は、標的システム864にSVM856のコピーをディスパッチする(S6)。クラウド・インフラストラクチャ870の場合、標的システム864は一般に、SVM856が作成される時点では知られることはない。クラウド・プロバイダは、既存のSVM856に影響を与えることなく、自身のインフラストラクチャの変更(例えば、毎日のメンテナンスの実施、アップグレード、等)を行うことができねばならない。クラウド・インフラストラクチャ870への容易な組み込みを可能にする、PEF ESM(Enter Secure Module;セキュアなモジュールに入る)オペランドのキー属性のうちの1つは、HMAC(Hashing for Message Authentication Code;メッセージ認証コード用のハッシング)が、シールされたデータをカバーしていないことである。このことは、シールされたデータをESMオペランドの残りと同時に生成する必要がなく、これを実行の直前にESMオペランドに挿入することが可能になることを意味する。好ましい実施形態では、プレース・ホルダのシールされたデータがESMオペランド内に存在してもよく、これは選択されたマシンに関するシールされたデータによって上書きされるであろう。代替の実施形態では、シールされたデータを有するイメージを、クラウド・オブジェクト・ストア308に保存してもよい。このことは、TEEがシステムのセットを表す代替の実施形態において有用であろう。クラウド・オブジェクト・ストア308はまた、シールされた情報が既に存在しているかどうかを示していたメタデータを保存してもよい。存在する場合、VMをTEE(マシンのセット)に直接ディスパッチすることができる。ESMオペランドは、initramfsの確保されたセクション内に置かれるデジタル・ブロブである。これは、カーネルを包含するzImage(自己解凍圧縮イメージ)フォーマット・ファイルのELF(executable and linkable format;実行可能かつリンク可能なフォーマット)セクション内に置くこともできる。SVMの妥当性を検証するために必要な全ての情報は、ESMオペランドに含まれている。
Provisioning. Figure 8 illustrates an exemplary protected execution facility (PEF) according to an embodiment of the present invention. The system 800 requests a Secure Virtual Machine (SVM) execution (S0). The orchestrator module 852 then selects a target machine from among T0...Tn 864 (S1). The orchestrator module 852 asks a security module (SM) 866 to verify one of the selected target machines, T0...Tn, 864 (S2). In Figure 5, the selected target is Tn, 864. The SM 866 requests information (platform certificate, storage key structure, HW (hardware) key hash) from the selected target system 864 (S3). The SM 866 must verify that they are correct. To do this, it must have the platform vendor's public key. Once it has the key, it can store it internally to expedite the verification process. The SM 866 uses the vendor's (S3a) public key to verify the machine, or contacts the vendor if it does not already have it. The SM device 866 sends the sealed data to the orchestrator module 852 (S4). The orchestrator module 852 retrieves a copy of the selected SVM 856 from the library 858 (S5). Note that in PEF, all SVMs begin execution as VMs 854. As far as the library 858 is concerned, all images are VMs 854. To simplify the description of the present invention, these VMs 854 that can become SVMs are labeled as SVMs 856 in the library 858. Those skilled in the art will recognize that the library 858 can be implemented in a way that makes the distinction clear or transparent. The orchestrator inserts the sealed data into a copy of the SVM. The orchestrator module 852 dispatches (S6) a copy of the SVM 856 to the target system 864. In the case of a cloud infrastructure 870, the target system 864 is generally unknown at the time the SVM 856 is created. Cloud providers must be able to make changes to their infrastructure (e.g., performing daily maintenance, upgrades, etc.) without affecting the existing SVM 856. One of the key attributes of the PEF Enter Secure Module (ESM) operand that allows for easy integration into the cloud infrastructure 870 is that HMAC (Hashing for Message Authentication Code) does not cover the sealed data. This means that the sealed data does not need to be generated at the same time as the rest of the ESM operand, but can be inserted into the ESM operand just before execution. In a preferred embodiment, placeholder sealed data may exist in the ESM operand, which will be overwritten by the sealed data for the selected machine. In an alternative embodiment, the image with the sealed data may be saved to the cloud object store 308. This would be useful in alternative embodiments where a TEE represents a set of systems. The cloud object store 308 may also save metadata indicating whether sealed information already exists. If so, a VM can be dispatched directly to the TEE (set of machines). The ESM operand is a digital blob that resides in a reserved section of the initramfs. It may also reside in the ELF (executable and linkable format) section of a zImage (self-extracting compressed image) format file that contains the kernel. All the information needed to verify the validity of the SVM is contained in the ESM operand.

一例としてのデプロイメント・モデルは、クラウド・プロバイダのインフラストラクチャにおいてセキュリティ・モジュール(SM)866または同等の機能を使用してシールされたデータを動的に生成することを含む。本発明では、マスター・シークレットはクラウド顧客によって所有/制御され、一方、ハードウェアはクラウド・プロバイダによって制御/所有される。この場合、クラウド・プロバイダはSM866から情報を抽出することができず、したがってクラウド顧客は、彼らのセキュアなコンピューテーションと関連付けられたシークレットをSM866内部に置くのが安全である。クラウド・プロバイダが所有できるが顧客が制御できるSMの例は、IBM4769である。本発明において記載される能力は現時点では4769に存在しないが、追加することはできる。SM866はクラウド・プロバイダのインフラストラクチャ内にあるので、クラウド・プロバイダは、それが標的マシン用のシールされたデータを生成するために必要なプロトコルを実行できるようにするのが安全である。クラウド・インフラストラクチャの詳細がクラウド顧客に提供されることはない。この時点で、PEFでは全てのSVM(セキュアな仮想マシン)がNVM(通常の仮想マシン)として実行を開始し、それらはその実行の初期において、SVMへの移行のリクエストであるESM(セキュアなモードへの移行)ウルトラ-コールを実行することに留意することが重要である。クラウド・プロバイダの視点からは、NVMイメージとSVMイメージは同一であることに留意することも重要である。クラウド顧客はクラウド・プロバイダに、特定のイメージがSVM用のものであることを通知しることにより、それが適切に処理されるようにする必要がある。デプロイメントの説明では、SVM(セキュアな仮想マシン)856へと移行することになるVM(仮想マシン)イメージが予め作成されていること、ならびに、関連付けられた対称シードおよび関連付けられたメタデータが予めSM866内にあることが仮定されている。最後に、VMのアイデンティティが所与であれば、SM866は関連付けられたメタデータを使用して適正な対称シードを選択することになると仮定されている。 An example deployment model involves dynamically generating sealed data using a security module (SM) 866 or equivalent functionality in the cloud provider's infrastructure. In the present invention, the master secret is owned/controlled by the cloud customer, while the hardware is controlled/owned by the cloud provider. In this case, the cloud provider cannot extract information from the SM 866, and therefore, cloud customers are safe to place secrets associated with their secure computations inside the SM 866. An example of an SM that can be owned by the cloud provider but controlled by the customer is the IBM 4769. The capabilities described in this invention do not currently exist in the 4769, but could be added. Because the SM 866 is within the cloud provider's infrastructure, it is safe for the cloud provider to enable it to execute the necessary protocols to generate sealed data for the target machine. Details of the cloud infrastructure are not provided to the cloud customer. At this point, it is important to note that in PEF, all SVMs (Secure Virtual Machines) begin execution as NVMs (Normal Virtual Machines), and early in their execution they perform an ESM (Enter Secure Mode) ultra-call, which is a request to transition to an SVM. It is also important to note that from the cloud provider's perspective, the NVM image and the SVM image are the same. The cloud customer must inform the cloud provider that a particular image is intended for an SVM so that it can be handled appropriately. The deployment description assumes that the VM (Virtual Machine) image that will be transitioned to an SVM (Secure Virtual Machine) 856 has been pre-created, and that the associated symmetric seed and associated metadata are already present in SM 866. Finally, it is assumed that given the identity of the VM, SM 866 will use the associated metadata to select the appropriate symmetric seed.

更に図8を参照すると、SVM856を実行するための全体的なプロセスが示されている。クラウド・ユーザは、予め作成されたSVM856の実行インスタンスが作成されることをリクエストする。クラウド・インフラストラクチャ870は、標的マシン864を選択し、この標的からプラットフォーム証明書およびストレージ・キーを抽出する。インフラストラクチャは顧客の制御下でSM866に、標的マシン、864、プラットフォーム証明書、およびストレージ・キーを転送し、SVMに関する標的マシン864のエンロールメントをリクエストする。代替の実施形態では、クラウド・インフラストラクチャは標的マシンのみを転送し、標的マシンをエンロールするためにSMをリクエストする。SMは標的マシン自体からプラットフォーム証明書およびストレージ・キーを抽出し、次いでエンロールメント・プロセスを進める。エンロールメントが成功した場合、SM866はクラウド・インフラストラクチャ870に標的マシン866に関するシールされたデータを返すことになる。インフラストラクチャはライブラリ858からイメージのコピー、856を読み出し、ツーリングを使用してSVM856のESMオペランドにシールされたデータを挿入し、挿入されたシールされたデータを包含するイメージのコピー、856を標的マシン864にプロビジョニングする。新たに挿入されシールされたデータは標的マシン864に関するものなので、他の問題がなければ、VMは首尾よくSVM856に移行することになる。このモデルは、顧客がSVM856あたり1つのシードを有することになると、およびこのシードが全ての標的システム866に対して有効になると仮定している。他のモデルが可能であり、特にこの実施形態は、選択された標的、864が単一のマシンであるかのように書かれている。しかしながら、当業者は、インフラストラクチャがどのようにプロビジョニングされるかに応じて、標的が単一のマシン、864、またはマシンのセット、868の、いずれかであってもよいことを認識している。シールされたデータをコンピューテーションに動的に挿入することができる。 Continuing with reference to FIG. 8, the overall process for executing SVM 856 is shown. A cloud user requests that a running instance of a pre-created SVM 856 be created. Cloud infrastructure 870 selects a target machine 864 and extracts a platform certificate and storage key from the target. The infrastructure transfers the target machine 864, the platform certificate, and the storage key to SM 866 under the customer's control and requests enrollment of the target machine 864 for the SVM. In an alternative embodiment, the cloud infrastructure transfers only the target machine and requests the SM to enroll the target machine. The SM extracts the platform certificate and storage key from the target machine itself and then proceeds with the enrollment process. If enrollment is successful, SM 866 will return sealed data about the target machine 866 to cloud infrastructure 870. The infrastructure retrieves the image copy 856 from the library 858, uses tooling to insert the sealed data into the ESM operand of the SVM 856, and provisions the image copy 856 containing the inserted sealed data to the target machine 864. Because the newly inserted sealed data pertains to the target machine 864, barring other issues, the VM will be successfully migrated to the SVM 856. This model assumes that the customer will have one seed per SVM 856 and that this seed will be valid for all target systems 866. Other models are possible, and in particular, this embodiment is written as if the selected target 864 is a single machine. However, those skilled in the art will recognize that the target may be either a single machine 864 or a set of machines 868, depending on how the infrastructure is provisioned. Sealed data can be inserted dynamically into a computation.

エンロールメント・プロトコルは以下を含む。SM866、または同等の機能は、エンロールメント・プロトコルを実行しなければならない。エンロールメント・プロトコルは、クラウド・インフラストラクチャ870がSM866に、標的マシンのマシン・インジケータ(IP(インターネット・プロトコル)アドレス)、プラットフォーム証明書、SVMインジケータ、およびストレージ・キーを渡すことを要求する。代替の実施形態では、クラウド・プロバイダはSMにマシン・インジケータのみを渡し、SMは自身でプラットフォーム証明書およびストレージ・キーを抽出する。いずれの実施形態でも、SM866はプラットフォーム証明書を検証し、ストレージ・キー特性が適正であることをチェックすることになる。プラットフォーム証明書およびストレージ・キーがチェックに合格した場合には、SM866はランダムなチャレンジを生成し、認証情報を作成することになる。それは次いで、そのTPM862上で実行されるべき標的マシン864に、アクティベート認証情報を送ることになる。標的マシン864はチャレンジ応答を返すことになる。チャレンジ応答が有効である場合、SM866は標的マシン864に関するシールされたデータを生成し、それを本システム800のクラウド・インフラストラクチャ870に返す。 The enrollment protocol includes the following: SM866, or an equivalent function, must execute the enrollment protocol. The enrollment protocol requires the cloud infrastructure 870 to pass the SM866 the target machine's machine indicator (Internet Protocol (IP) address), platform certificate, SVM indicator, and storage key. In an alternative embodiment, the cloud provider passes only the machine indicator to the SM, and the SM extracts the platform certificate and storage key itself. In either embodiment, the SM866 will validate the platform certificate and check that the storage key characteristics are correct. If the platform certificate and storage key pass the checks, the SM866 will generate a random challenge and create credentials. It will then send the activation credentials to the target machine 864 to be executed on its TPM862. The target machine 864 will return a challenge response. If the challenge response is valid, the SM 866 generates sealed data about the target machine 864 and returns it to the cloud infrastructure 870 of the system 800.

エンロールメント・プロトコルは標的ごとに1回のみ実行されればよい。したがって、SM866がエンロールされたマシンのデータベースを維持している場合、それは、現在の標的マシンがエンロールされているかどうかを確認するチェックを行うことができる。それが既にエンロールされている場合、それはエンロールメントをスキップし、シールされたデータを直接生成することができる。また、各ハードウェア・キー・ハッシュは1回のみ検証されればよい。SM866は、検証されたハードウェア・キー・ハッシュのデータベースを維持することができる。ハードウェア・キー・ハッシュを検証するためにシステム800がベンダ860に対してプロトコルを実行する前に、システム800は、標的マシン864からのハッシュが既に検証されているかを確認するチェックを行うことができる。このことはPEFにとっては大きな最適化とはならないが、その理由は、実行ごとに1回ではなく、SVMが作成されるときにハードウェア・キー・ハッシュが検証されるからである。キー・ハッシュが無効になる場合、それをSM866からパージしなければならない。本システム800のクラウド・インフラストラクチャ870からマシンがデプロビジョニングされるとき、そのマシンがもはや有効な標的ではないことをSM866に通知して、SM866がその内部データベースを空にできるようにしなければならない。最後に、デプロビジョニングされたマシンを使用して既に認証されたSVM866からシークレットを抽出できないことを保証するために、マシンがデプロビジョニングされるときに、TPM862における一次シードも空にされねばならない。 The enrollment protocol only needs to be run once per target. Thus, if SM866 maintains a database of enrolled machines, it can check to see if the current target machine is enrolled. If it is already enrolled, it can skip enrollment and generate the sealed data directly. Also, each hardware key hash only needs to be verified once. SM866 can maintain a database of verified hardware key hashes. Before system 800 runs the protocol against vendor 860 to verify the hardware key hash, system 800 can check to see if the hash from target machine 864 has already been verified. This is not a significant optimization for PEF because the hardware key hash is verified when the SVM is created, not once per run. When a key hash becomes invalid, it must be purged from SM866. When a machine is deprovisioned from the cloud infrastructure 870 of the present system 800, the SM 866 must be notified that the machine is no longer a valid target so that the SM 866 can empty its internal database. Finally, to ensure that the deprovisioned machine cannot be used to extract secrets from an already authenticated SVM 866, the primary seed in the TPM 862 must also be emptied when the machine is deprovisioned.

図9および図10は、標的システムを検証するためにSMを利用するPEF(Protected Execution Facility)を示す。 Figures 9 and 10 show a Protected Execution Facility (PEF) that uses SM to verify a target system.

図3および図4に示す最初の手法は、ユーザが、意図する標的マシンが許容可能であることを確認するために、および意図する標的上で実行されるようにコンピューテーションを構成するために、インフラストラクチャ・プロバイダに、サーバのIP(インターネット・プロトコル)アドレスなどの詳細をそのユーザに曝すように要求する。要求されたAPIによって、クラウド・ユーザに対するクラウド・プロバイダのインフラストラクチャの透過性が低減する。 The first approach, shown in Figures 3 and 4, requires the infrastructure provider to expose details such as the server's IP (Internet Protocol) address to the user in order for the user to verify that the intended target machine is acceptable and to configure the computation to run on the intended target. The required APIs reduce the transparency of the cloud provider's infrastructure to the cloud user.

クラウド・プロバイダによっては自身のインフラストラクチャの詳細を曝すことを望まない場合があるが、その理由は、そのことにより自身のインフラストラクチャをトランスペアレントに管理することが著しくより複雑になるからである。本発明は、適切に構成されたSMを含めることによって、クラウド顧客にインフラストラクチャの詳細を曝すことなく、TEEにセキュアなコンピューテーションをプロビジョニングするという同じ目的を達成できる。SMはTEEを活用する顧客の制御下になければならない。SMは、図9および図10に示すような、予め記述された検証フローを実行するように構成されねばならない。顧客は自身のシークレットをSMにセキュアに挿入しなければならない。 Some cloud providers may not want to expose details of their infrastructure because doing so would make transparently managing their infrastructure significantly more complex. The present invention achieves the same goal of provisioning secure computation to a TEE without exposing infrastructure details to cloud customers by including a properly configured SM. The SM must be under the control of the customer utilizing the TEE. The SM must be configured to execute a pre-written validation flow, such as that shown in Figures 9 and 10. The customer must securely insert their secret into the SM.

図9A、図9B、図10A、および図10Bには、本発明がPEF TEE内でどのように機能するかが説明されている。PEFおよび類似のTEEは、TEEが、TEEのユーザ/所有者に対して別個の検証を要求することなく、コンピューテーションのインテグリティを証明するように設計されている。図10Aおよび図10Bには、本発明が、有効なTEEにセキュアなコンピューテーションがロードされた後で所有者/ユーザにコンピューテーションを明示的に認証するよう要求するTEE、例えばAMDのSEVを用いて、どのように機能するかが説明されている。いずれの場合も、TEEおよびコンピューテーションの両方が証明/検証される。図9A、図9B、図10A、および図10Bでは、顧客がVMイメージを事前にロードしていると仮定していない。顧客はVMイメージ、My-Image482を事前にロードすることができるが、このことは、顧客がImage-ID483を予め知っていることを示唆しているであろう。 Figures 9A, 9B, 10A, and 10B illustrate how the present invention works within a PEF TEE. PEF and similar TEEs are designed so that the TEE attests to the integrity of a computation without requiring separate verification from the user/owner of the TEE. Figures 10A and 10B illustrate how the present invention works with a TEE, such as AMD's SEV, that requires the owner/user to explicitly authenticate a secure computation after it has been loaded into a valid TEE. In either case, both the TEE and the computation are attested/verified. Figures 9A, 9B, 10A, and 10B do not assume that the customer has pre-loaded a VM image. A customer could pre-load a VM image, My-Image 482, which would imply that the customer has prior knowledge of Image-ID 483.

図9Aは、本発明の実施形態におけるSM(セキュリティ・モジュール)を利用するPEF(Protected Execution Facility)の代替形態を示す。このフローは、Image-IDのイメージ・アイデンティティを有する、セキュアなVMになり得るVMが、クラウド・オブジェクト・ストア308に予めロードされていると仮定していない。トラステッド・インフラストラクチャ350は、カスタマ・モジュール302、ツーリング・モジュール304、およびセキュリティ・モジュール(SM)980である。この代替の実施形態では、SM980は、アントラステッド・クラウド・インフラストラクチャ361の一部であるにも関わらず信頼される。 Figure 9A illustrates an alternative form of a Protected Execution Facility (PEF) utilizing a Security Module (SM) in an embodiment of the present invention. This flow does not assume that a potential secure VM with an image identity of Image-ID has been pre-loaded into the cloud object store 308. The trusted infrastructure 350 is the customer module 302, the tooling module 304, and the Security Module (SM) 980. In this alternative embodiment, the SM 980 is trusted despite being part of the untrusted cloud infrastructure 361.

セキュアなVMをプロビジョニングするために、カスタマ・モジュール302は、そのトラステッド・ツーリング304がSVM My-Image318を開始することをリクエストする。ツーリング・モジュール304はクラウド・フロント・エンド306に対して、セキュアなプロビジョニングをリクエストする320。クラウド・フロント・エンド306はツーリング・モジュール304に対して、有料サービスを確認する322。 To provision a secure VM, the customer module 302 requests that its trusted tooling 304 launch SVM My-Image 318. The tooling module 304 requests secure provisioning 320 from the cloud front end 306. The cloud front end 306 confirms paid services with the tooling module 304 322.

次に、ツーリング・モジュール304はクラウド・オブジェクト・ストア308に、SVMに移行し得るVM My-Imageをアップロードする982。クラウド・オブジェクト・ストア308は次いで、ツーリング・モジュール304にImage-ID983を送り返す。ツーリング・モジュール304は、Image-IDによってインデックス付けされることになるシード、メタデータのSMへのセキュアな挿入984のためのコマンドを、SM980に送る。当業者には、イメージを事前にロードできていたこと、その場合Image-IDが既知のであったであろうことが、認識される。ツーリング・モジュール304は、ゾーン・オーケストレータ310がImage-IDのインスタンスを作成すること324をリクエストする。 The tooling module 304 then uploads 982 the VM My-Image to the cloud object store 308, where it can be migrated to an SVM. The cloud object store 308 then sends the Image-ID 983 back to the tooling module 304. The tooling module 304 sends a command to the SM 980 for secure insertion 984 of the seed metadata into the SM, which will be indexed by the Image-ID. Those skilled in the art will recognize that the image could have been pre-loaded, in which case the Image-ID would have been known. The tooling module 304 requests 324 that the zone orchestrator 310 create an instance of the Image-ID.

次いでシステム300は、標的マシン325を以下のように選択する。ゾーン・オーケストレータ310は標的マシンリクエストプラットフォーム証明書およびストレージ・キーを、TPMを有する選択された標的システム312から選択する326。TPMを有する標的システム312は次いで、プラットフォーム証明書およびストレージ・キーをゾーン・オーケストレータ310に返す328。 The system 300 then selects a target machine 325 as follows: The zone orchestrator 310 selects 326 the target machine requests a platform certificate and storage key from the selected target system with a TPM 312. The target system with a TPM 312 then returns 328 the platform certificate and storage key to the zone orchestrator 310.

次いでゾーン・オーケストレータ310は、SM980がこのマシン(Machine-ind、プラットフォーム証明、およびストレージ・キー)をエンロールすること330をリクエストする。SM980は、カスタマ・モジュール302によるトラステッド・インフラストラクチャ350である。 The zone orchestrator 310 then requests SM 980 to enroll 330 this machine (Machine-indic, platform certificate, and storage key). SM 980 is a trusted infrastructure 350 by the customer module 302.

次いでSMは、TPMを有する標的システム312に対して標的システムMach-indの検証933を実行する。検証が失敗した場合、アクティベーションは終了する。検証が成功した場合、SM980はゾーン・オーケストレータ310に、実行を認証する(Machine-ind.,シールされたデータ)336を返す。 The SM then performs verification 933 of the target system Mach-ind against the target system 312 with the TPM. If verification fails, activation terminates. If verification is successful, the SM 980 returns (Machine-ind., sealed data) 336 to the zone orchestrator 310 authorizing execution.

次いでゾーン・オーケストレータ・モジュール310はクラウド・オブジェクト・ストア308に、Image-ID338をリクエストする。クラウド・オブジェクト・ストア308はゾーン・オーケストレータ310に、Image-IDと関連付けられたイメージ340を再び返す。次いでゾーン・オーケストレータ310は、シールされたデータ342を、クラウド・オブジェクト・ストア308によって返されたイメージに挿入する。ゾーン・オーケストレータ310は次いで、挿入されたセンシティブなデータを有するイメージを、イメージを実行する344ための命令と共に、選択されたマシンのTPMを有する標的システム312に送る。 The zone orchestrator module 310 then requests the Image-ID 338 from the cloud object store 308. The cloud object store 308 returns the image 340 associated with the Image-ID to the zone orchestrator 310. The zone orchestrator 310 then inserts sealed data 342 into the image returned by the cloud object store 308. The zone orchestrator 310 then sends the image with the inserted sensitive data, along with instructions to execute the image 344, to the target system 312 with the selected machine's TPM.

図9Bは、本発明の実施形態における、標的システムMach-Indの検証933を完了するために、TPMを有する標的システム312とSM980の間で要求されるフローを示す。ハイライトされているように、トラステッド・インフラストラクチャ350はSM980を含む。アントラステッド・クラウド・インフラストラクチャ361内で、ゾーン・オーケストレータ310およびTPMを有する標的システム312は、トラステッド・インフラストラクチャ350の外部にある。 Figure 9B illustrates the required flow between the target system 312 with a TPM and the SM 980 to complete verification 933 of the target system Mach-Ind in an embodiment of the present invention. As highlighted, the trusted infrastructure 350 includes the SM 980. Within the untrusted cloud infrastructure 361, the zone orchestrator 310 and the target system 312 with a TPM are external to the trusted infrastructure 350.

ゾーン・オーケストレータ310はSM980に、このマシン(Machine-ind、プラットフォーム証明、およびストレージ・キー)330リクエストを送り、エンロールする。 The zone orchestrator 310 sends a request to the SM 980 to enroll this machine (Machine-indication, platform certificate, and storage key) 330.

SM980は、プラットフォーム証明書を検証し、ストレージ・キー特性をチェックする460。SM Hyper Protect980はチャレンジを生成し、460において検証されたTPMによるものしかあり得ないCredentialと呼ばれるバイナリ・ブロブを作り出す、認証情報を作成する462。SM980はTPMを有する標的システム312に、認証情報(Credential)のアクティベートを送る468。TPMを有する標的システム312は次いで、SM980にチャレンジ応答470を再び返す。SM980はチャレンジ応答476をチェックする。チャレンジ応答が不適正であった場合はアクティベーションが終了し、このプロセスから失敗の指示が返される。チャレンジ応答が適正であった場合、SM980は、シードと共にメタデータとして渡されたポリシを利用して、シールされたデータを生成する334。SM980はゾーン・オーケストレータ310に、実行を認証する(machine-in、シールされたデータ)336を返す。 SM980 validates the platform certificate and checks the storage key characteristics 460. SM Hyper Protect 980 generates a challenge and creates authentication information 462, producing a binary blob called a Credential that can only be from the TPM validated in 460. SM980 sends an Activate Credential 468 to the target system 312 with a TPM. The target system 312 with a TPM then returns a challenge response 470 to SM980. SM980 checks the challenge response 476. If the challenge response is incorrect, activation terminates and the process returns a failure indication. If the challenge response is correct, SM980 generates sealed data 334 using the policy passed as metadata along with the seed. The SM 980 returns (machine-in, sealed data) 336 to the zone orchestrator 310, authorizing execution.

図10Aは、クラウド・インフラストラクチャにおける本発明の実施形態の、AMDのプロセッサにおいてTEEをプロビジョニングするためにSMを利用する代替のセキュリティ・モデルを示す。図9Bでは、カスタマ・モジュール302は自身のトラステッド・インフラストラクチャ350を有し、クラウド・プロバイダ361を使用している。クラウド・プロバイダ内で、顧客は、自身がその制御能力を有するセキュリティ・モジュール(SM)980を使用しており、信頼されている350。クラウド・プロバイダ361のインフラストラクチャの残りは信頼されていない。カスタマ・モジュール302はそれらのトラステッド・ツーリング304に、SVM My-Imageを開始するためのリクエストを送る。ツーリング304は、クラウド・フロント・エンド306にセキュアなプロビジョニングをリクエストする320。クラウド・フロント・エンド306は有料サービスを確認する322。顧客のツーリングはクラウド・オブジェクト・ストアに、自身のイメージであるMy-Imageをアップロードする982。クラウド・オブジェクト・ストア308はカスタマ・ツーリング304に、保存されたイメージのイメージ識別子、Image-IDを返す383。カスタマ・ツーリング304は、Image-IDによってインデックス付けされる、詳細情報またはセンシティブ情報とも呼称されるシードを、セキュリティ・モジュール(SM)980にセキュアに挿入する984。この挿入は、Image-IDと関連付けられるべき追加のメタデータを含み得る。カスタマ・ツーリング304は次いで、ゾーン・オーケストレータ310がImage-IDのインスタンスを作成すること324をリクエストする。ゾーン・オーケストレータ310は、標的マシン312Mach-Indを選択する1065。次にゾーン・オーケストレータ310は、セキュリティ・モジュール380が標的マシン312Mach-Indを検証すること1063をリクエストする。セキュリティ・モジュールは標的マシンを検証する1025。 Figure 10A shows an alternative security model for an embodiment of the present invention in a cloud infrastructure, utilizing an SM to provision TEEs on AMD processors. In Figure 9B, a customer module 302 has its own trusted infrastructure 350 and uses a cloud provider 361. Within the cloud provider, the customer uses a security module (SM) 980 over which it has control and is trusted 350. The rest of the cloud provider's 361 infrastructure is untrusted. The customer module 302 sends a request to their trusted tooling 304 to start the SVM My-Image. The tooling 304 requests secure provisioning from the cloud front end 306 320. The cloud front end 306 confirms the paid service 322. The customer's tooling uploads its image, My-Image, to the cloud object store 982. The cloud object store 308 returns 383 the image identifier, Image-ID, of the stored image to the customer tooling 304. The customer tooling 304 securely inserts 984 the seed, also referred to as detailed information or sensitive information, indexed by the Image-ID into the security module (SM) 980. This insertion may include additional metadata to be associated with the Image-ID. The customer tooling 304 then requests 324 that the zone orchestrator 310 create an instance of the Image-ID. The zone orchestrator 310 selects 1065 the target machine 312, Mach-Ind. The zone orchestrator 310 then requests 1063 that the security module 380 validate the target machine 312, Mach-Ind. The security module validates 1025 the target machine.

図10Bは、クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替モデルに関する、AMDのプロセッサにおけるTEEに関する標的システムの検証(PEF)のフローを示す。図10Bには、図10Aの標的マシンの検証1025のリクエストの詳細が与えられている。Mach-Indを検証する1063リクエストは、ゾーン・オーケストレータ310からセキュリティ・モジュール(SM)980によって受け取られる。標的システム312はTEEに関するAMDのプロセスを包含するので、図10Bは、認定されれば信頼350され得るPSP1003を標的システム内に含むように拡張されている。PSPは、フローを明確にするために図10Bにおいて拡張されている、AMDのプロセッサの下位コンポーネントであることに留意することが重要である。別の重要な点は、SMとPSPの間の通信がセキュアであり、いずれの方向にも偽造され得ないことである。この説明はプロセスの概説である。詳細は、当業者であれば誰もが取得可能なAMDのホワイト・ペーパーおよび技術文書に記載されている。SMは検証リクエスト1056のリクエストを標的システム312に発行し、そこでリクエストがPSP1003に渡される1058。このリクエストに応答して、PSP1003は署名済みデータを生成してそれをプロセッサ312に返し1092、プロセッサ312はそれをSM980に返す1011。SM980は、応答から証明書を抽出し1027、AMD認証局1054に検証1094をリクエストする。AMD認証局1054は検証応答1096を返す。証明書が検証されない場合には、アクティベーション(TEE内でセキュアなVMを実行するリクエスト)は終了する。証明書が検証された場合には、SM980はゾーン・オーケストレータ310に、VMイメージを標的システムにロードするようにリクエストする1029。ゾーン・オーケストレータ310は標的システムに、Imag-IDと関連付けられたVMイメージをロード・イメージ・リクエストと一緒に送る1051。標的システム312は、TEE(図示されていない)にVMイメージをロードする。SM980は標的システム312に、VMイメージImage-IDの証明リクエストを発行する1057。標的システム312はトラステッドPSP1003に証明リクエストを発行する。PSP1003は証明応答を生成し、それをシステム312に返す1059。標的システムはSM980に証明応答を返す1099。SMはVMのハッシュに対して証明応答を検証する1055。検証が失敗した場合、アクティベーションは終了する。検証が成功した場合、SM980は認証(復号キーとも呼ばれる)を入手し、標的システム312に認証を挿入するを発行する1091。標的システムはPSP1003に認証を挿入するを渡す1097。PSP1003はTEEに認証を挿入する。SM980は標的システム312に、システムをブートするを発行し1093、セキュアなコンピューテーションが認証されている(復号キーが首尾よく挿入された)ため、これは成功する。 Figure 10B illustrates the flow of target system validation (PEF) for a TEE in an AMD processor for an alternative model utilizing an SM for an embodiment of the present invention in a cloud infrastructure. Figure 10B provides details of the target machine validation 1025 request of Figure 10A. The request to validate Mach-Ind 1063 is received by the security module (SM) 980 from the zone orchestrator 310. Because the target system 312 encompasses AMD processes for a TEE, Figure 10B is expanded to include the PSP 1003 within the target system, which, if certified, can be trusted 350. It is important to note that the PSP is a sub-component of the AMD processor that is expanded in Figure 10B for clarity of the flow. Another important point is that communication between the SM and PSP is secure and cannot be forged in either direction. This description is an overview of the process. Further details are provided in AMD white papers and technical documentation available to anyone skilled in the art. The SM issues a validation request 1056 to the target system 312, which passes the request 1058 to the PSP 1003. In response to this request, the PSP 1003 generates signed data and returns it 1092 to the processor 312, which returns it 1011 to the SM 980. The SM 980 extracts 1027 the certificate from the response and requests validation 1094 from the AMD certificate authority 1054. The AMD certificate authority 1054 returns a validation response 1096. If the certificate does not validate, the activation (the request to run a secure VM within the TEE) is terminated. If the certificate is validated, the SM 980 requests 1029 the zone orchestrator 310 to load the VM image onto the target system. The zone orchestrator 310 sends the VM image associated with the Image-ID to the target system along with a load image request 1051. The target system 312 loads the VM image into a TEE (not shown). The SM 980 issues an attestation request for the VM image Image-ID to the target system 312 1057. The target system 312 issues an attestation request to the trusted PSP 1003. The PSP 1003 generates an attestation response and returns it to the system 312 1059. The target system returns the attestation response to the SM 980 1099. The SM verifies the attestation response against the hash of the VM 1055. If the verification fails, the activation is terminated. If the verification is successful, the SM 980 obtains the certificate (also called a decryption key) and issues an insert certificate to the target system 312 1091. The target system passes the Insert Authentication command to the PSP 1003 (1097). The PSP 1003 inserts the authentication into the TEE. The SM 980 issues a Boot System command to the target system 312 (1093), which is successful because secure computation has been authenticated (the decryption key has been successfully inserted).

図11から図15は、実装され得るシステム100、200、300、301、500、および800の代替の構成を示す。図1から図15の異なる図に示されている異なる特徴を、異なる例の間で組み合わせる、変更する、または交換することができる。 Figures 11 through 15 illustrate alternative configurations of systems 100, 200, 300, 301, 500, and 800 that may be implemented. Different features shown in different figures of Figures 1 through 15 may be combined, modified, or interchanged between different examples.

図11は、サービスとしてのソフトウェア・インテリジェンスのためのソフトウェア・プログラムの形態で本発明の技術を実装できる少なくとも1つのプロセッサまたは中央処理装置(CPU)1110を好ましくは有する、本発明に係る情報ハンドリング/コンピュータ・システム1100が存在する、システムの別のハードウェア構成を示す。 Figure 11 shows another hardware configuration of a system in which an information handling/computer system 1100 according to the present invention resides, preferably having at least one processor or central processing unit (CPU) 1110 capable of implementing the techniques of the present invention in the form of a software program for software intelligence as a service.

既に述べたように、トラステッド実行環境102は、図11などのローカル・インフラストラクチャにおいて実装され得る。 As already mentioned, the trusted execution environment 102 can be implemented in a local infrastructure such as that shown in FIG. 11.

CPU1110は、システム・バス1112を介して、ランダム・アクセス・メモリ(RAM)1114、読取り専用メモリ(ROM)1116、(ディスク・ユニット1121およびテープ・ドライブ1140などの周辺デバイスをバス1112に接続するための)入力/出力(I/O)アダプタ1118、(キーボード1124、マウス1126、スピーカ1128、マイクロフォン1132、または他のユーザインターフェースデバイス、あるいはそれらの組合せをバス1112に接続するための)ユーザ・インターフェース・アダプタ1122、情報ハンドリング・システムをデータ処理ネットワーク、インターネット、イントラネット、パーソナル・エリア・ネットワーク(PAN)等に接続するための通信アダプタ1134、ならびにバス1112をディスプレイ・デバイス1138またはプリンタ1139(例えば、デジタル・プリンタなど)あるいはその両方に接続するためのディスプレイ・アダプタ1136に、相互接続される。 The CPU 1110 is interconnected via the system bus 1112 to random access memory (RAM) 1114, read-only memory (ROM) 1116, an input/output (I/O) adapter 1118 (for connecting peripheral devices such as a disk unit 1121 and a tape drive 1140 to the bus 1112), a user interface adapter 1122 (for connecting a keyboard 1124, a mouse 1126, speakers 1128, a microphone 1132, and/or other user interface devices to the bus 1112), a communications adapter 1134 for connecting the information handling system to a data processing network, the Internet, an intranet, a personal area network (PAN), etc., and a display adapter 1136 for connecting the bus 1112 to a display device 1138 and/or a printer 1139 (e.g., a digital printer, etc.).

上記したハードウェア/ソフトウェア環境に加えて、本発明の異なる態様は、上記の方法を実行するためのコンピュータ実装方法を含む。例として、この方法は、上で検討した特定の環境において実施され得る。 In addition to the hardware/software environments described above, another aspect of the present invention includes a computer-implemented method for performing the above-described method. By way of example, this method may be implemented in the specific environment discussed above.

そのような方法は例えば、デジタル・データ処理装置によって具現化されるようなコンピュータを、機械可読命令のシークエンスを実行するように動作させることによって実施され得る。これらの命令は、様々なタイプの信号保持媒体内に常駐し得る。 Such methods may be implemented, for example, by operating a computer, such as one embodied in a digital data processing device, to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal-bearing media.

このように、本発明のこの態様は、CPU1110および上記のハードウェアを組み込んだデジタル・データ・プロセッサによって本発明の方法を実施するように実行可能な機械可読命令のプログラムを有形に具現化した信号保持記憶媒体を含む、プログラムされた製品に向けられている。 As such, this aspect of the present invention is directed to a programmed product including a signal-bearing storage medium tangibly embodying a program of machine-readable instructions executable by a digital data processor incorporating CPU 1110 and the hardware described above to perform the method of the present invention.

この信号保持記憶媒体は、例えば、例えば高速アクセス・ストレージによって表されるような、CPU1110内に収容されているRAMを含み得る。 This signal-bearing storage medium may include, for example, RAM contained within CPU 1110, such as represented by fast-access storage.

別法として、命令は、フラッシュ・メモリ1210または光学ストレージ・ディスケット1220(図12)などの、CPU1110によって直接的または間接的にアクセス可能な別の信号保持記憶媒体1200に包含されてもよい。 Alternatively, the instructions may be contained on another signal-bearing storage medium 1200 accessible directly or indirectly by the CPU 1110, such as flash memory 1210 or optical storage diskette 1220 (Figure 12).

フラッシュ・メモリ1210、光学ディスク1220、コンピュータ/CPU1110、またはそれ以外に包含されることを問わず、命令は様々な機械可読データ記憶媒体に記憶され得る。 The instructions may be stored on a variety of machine-readable data storage media, whether contained in flash memory 1210, optical disk 1220, computer/CPU 1110, or otherwise.

したがって本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。 Accordingly, the present invention may be a system, a method, or a computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to perform aspects of the present invention.

コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令が記録されているパンチ・カードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の好適な組合せが含まれる。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの、一過性の信号そのものであると解釈されるべきではない。 A computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures on which instructions are recorded, and any suitable combination thereof. As used herein, computer-readable storage media should not be construed as ephemeral signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted over wires.

本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを経由して外部のコンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるように転送する。 The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing/processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing/processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored on a computer-readable storage medium within the respective computing/processing device.

本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードのいずれか、であり得る。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、または専ら遠隔のコンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、遠隔のコンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよく、または、外部のコンピュータへの接続を(例えば、インターネット・サービス・プロバイダを利用してインターネットを介して)行ってもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。 The computer-readable program instructions for carrying out the operations of the present invention may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object code, including object-oriented programming languages such as Smalltalk®, C++, and traditional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), can execute computer-readable program instructions to personalize the electronic circuit by utilizing state information in the computer-readable program instructions to perform aspects of the present invention.

本明細書には、本発明の実施形態に係る方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様が記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せを、コンピュータ可読プログラム命令によって実施できることが理解されるであろう。 Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.

これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。 These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to create a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in one or more blocks of the flowcharts and/or block diagrams.

これらのコンピュータ可読プログラム命令はまた、命令が保存されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んだ製品を含むように、コンピュータ可読記憶媒体に保存されてもよく、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはそれらの組合せに、特定の方式で機能するように指示できるものであり得る。 These computer-readable program instructions may also be stored on a computer-readable storage medium such that the computer-readable storage medium on which the instructions are stored comprises an article of manufacture including instructions that implement aspects of the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams, and may be capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.

コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。 The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to create a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams.

図中のフローチャートおよびブロック図には、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作が説明されている。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部分を表し得る。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際は実質的に並行して実行され得、またはこれらのブロックは時には関わる機能に応じて、逆の順序で実行され得る。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施され得ることも、留意されるであろう。 The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur in an order different from that noted in the figures. For example, two blocks shown in succession may in fact be executed substantially in parallel, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart diagrams, and combinations of blocks in the block diagrams and/or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.

ここで図13を参照すると、クラウド・コンピューティング・ノードの例の概略図1400が示されている。クラウド・コンピューティング・ノード1400は好適なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載する発明の実施形態の使用または機能性の範囲に関してどのような限定を示唆することも意図していない。いずれにせよ、クラウド・コンピューティング・ノード1400は実装され得る、または本明細書で上記した機能性のいずれかを実行できる、あるいはその両方である。既に述べたように、トラステッド実行環境102は、図13(ならびにまた図14および図15)などのクラウド・インフラストラクチャにおいて実装され得る。クラウド・コンピューティング・ノード1400には、多数の他の汎用または専用コンピューティング・システム環境または構成と共に動作できる、コンピュータ・システム/サーバ1412が存在する。コンピュータ・システム/サーバ1412との使用に好適であり得る、よく知られた計算システム、環境、または構成あるいはその組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドデバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能消費者向け電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、などが挙げられるが、これらに限定されない。 13, a schematic diagram 1400 of an example cloud computing node is shown. Cloud computing node 1400 is merely one example of a suitable cloud computing node and is not intended to suggest any limitation as to the scope of use or functionality of the inventive embodiments described herein. In any event, cloud computing node 1400 may be implemented and/or capable of performing any of the functionality described herein above. As previously mentioned, trusted execution environment 102 may be implemented in a cloud infrastructure such as that of FIG. 13 (and also FIGS. 14 and 15). Cloud computing node 1400 includes computer system/server 1412, which is capable of operating with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system/server 1412 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics devices, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

コンピュータ・システム/サーバ1412は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ1412は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体内に配置することができる。 Computer system/server 1412 may be described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system/server 1412 may also be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

図13に示すように、クラウド・コンピューティング・ノード1400中のコンピュータ・システム/サーバ1412は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ1412のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット1416、システム・メモリ1428、およびシステム・メモリ1428からプロセッサ1416までを含む様々なシステム・コンポーネントを結合するバス1418を含み得るが、これらに限定されない。 As shown in FIG. 13, computer system/server 1412 in cloud computing node 1400 is shown in the form of a general-purpose computing device. Components of computer system/server 1412 may include, but are not limited to, one or more processors or processing units 1416, system memory 1428, and a bus 1418 that couples various system components, including system memory 1428 to processor 1416.

バス1418は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのうちのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を表している。例として、限定するものではないが、そのようなアーキテクチャとしては、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、および周辺装置相互接続(Peripheral Component Interconnect;PCI)バスが挙げられる。 Bus 1418 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and without limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.

コンピュータ・システム/サーバ1412は通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ1412がアクセス可能な任意の利用可能な媒体であってよく、これには、揮発性媒体および不揮発性媒体、取り外し可能媒体および取り外し不可能媒体の両方が含まれる。 Computer system/server 1412 typically includes a variety of computer system-readable media. Such media may be any available media accessible by computer system/server 1412, including both volatile and nonvolatile media, removable and non-removable media.

システム・メモリ1428は、ランダム・アクセス・メモリ(RAM)1430またはキャッシュ・メモリ1432あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ1412は、他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ・システム・ストレージ媒体を更に含み得る。単なる例として、取り外し不可能な不揮発性磁気媒体(図示しないが典型的には「ハード・ドライブ」と呼ばれる)に対する読取りおよび書込みを行うための、ストレージ・システム1434が提供され得る。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)に対する読取りおよび書込みを行うための磁気ディスク・ドライブ、ならびに、CD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性光ディスクに対する読取りおよび書込みを行うための光ディスク・ドライブを提供することができる。そのような例では、各々が1つまたは複数のデータ媒体インターフェースによってバス1418に接続され得る。以下で更に描写し記載するように、メモリ1428は、本発明の実施形態の機能を実行するように構成されている1組の(例えば少なくとも1つの)プログラム・モジュールを有する、少なくとも1つのプログラム製品を含み得る。 System memory 1428 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 1430 and/or cache memory 1432. Computer system/server 1412 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 1434 may be provided for reading from and writing to non-removable, non-volatile magnetic media (not shown, but typically referred to as a "hard drive"). Although not shown, magnetic disk drives may be provided for reading from and writing to removable, non-volatile magnetic disks (e.g., "floppy disks"), and optical disk drives may be provided for reading from and writing to removable, non-volatile optical disks, such as CD-ROMs, DVD-ROMs, or other optical media. In such an example, each may be connected to bus 1418 by one or more data media interfaces. As further depicted and described below, memory 1428 may include at least one program product having a set (e.g., at least one) program module configured to perform the functions of embodiments of the present invention.

1組の(少なくとも1つの)プログラム・モジュール1442を有するプログラム/ユーティリティ1440は、限定ではなく例としてメモリ1428に格納され得るが、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データにも記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの何らかの組合せは、ネットワーキング環境の実装を含み得る。プログラム・モジュール1442は一般に、本明細書に記載するような本発明の実施形態の機能または方法論あるいはその組合せを実行する。 Programs/utilities 1440 having a set (at least one) program module 1442 may be stored in memory 1428, by way of example and not limitation, but also in the operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include implementation of a networking environment. Program modules 1442 generally perform the functions or methodologies, or combinations thereof, of embodiments of the present invention as described herein.

コンピュータ・システム/サーバ1412はまた、キーボード、ポインティング・デバイス、ディスプレイ1424等などの1つもしくは複数の外部デバイス1414、ユーザとコンピュータ・システム/サーバ1412の対話を可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ1412と1つもしくは複数の他のコンピューティング・デバイスとの通信を可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せとも通信し得る。そのような通信は、入力/出力(I/O)インターフェース1422を介して行うことができる。また更に、コンピュータ・システム/サーバ1412は、ネットワーク・アダプタ1420を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、または公共ネットワーク(例えばインターネット)、あるいはその組合せなどの、1つまたは複数のネットワークと通信し得る。描かれているように、ネットワーク・アダプタ1420は、バス1418を介してコンピュータ・システム/サーバ1412のその他のコンポーネントと通信する。示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ1412と組み合わせて使用してもよいことが理解されるべきである。例としては以下が挙げられるが、これらに限定されない:マイクロコード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システム、等。 The computer system/server 1412 may also communicate with one or more external devices 1414, such as a keyboard, pointing device, display 1424, etc., one or more devices that enable a user to interact with the computer system/server 1412, or any device (e.g., a network card, modem, etc.) that enables the computer system/server 1412 to communicate with one or more other computing devices, or a combination thereof. Such communication may occur via an input/output (I/O) interface 1422. Furthermore, the computer system/server 1412 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, via a network adapter 1420. As depicted, the network adapter 1420 communicates with the other components of the computer system/server 1412 via a bus 1418. Although not shown, it should be understood that other hardware and/or software components may be used in combination with computer system/server 1412. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems, etc.

ここで図14を参照すると、例示的なクラウド・コンピューティング環境1550が描かれている。示されているように、クラウド・コンピューティング環境1550は、1つまたは複数のクラウド・コンピューティング・ノード1400を含み、これを用いて、クラウド利用者が使用するローカルのコンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話1554A、デスクトップ・コンピュータ1554B、ラップトップ・コンピュータ1554C、または自動車コンピュータ・システム1554N、あるいはそれらの組合せなどが、通信を行うことができる。ノード1400は互いに通信してもよい。これらは、本明細書で上記したような、プライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウド、またはこれらの組合せなどの、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化されてもよい(図示せず)。このことにより、クラウド・コンピューティング環境1550が、クラウド利用者がローカルのコンピューティング・デバイス上でリソースを保守する必要のないサービスとして、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、提供することが可能になる。図14に示すコンピューティング・デバイスのタイプ1554A~1554Nは、単に例示となることを意図していること、ならびに、コンピューティング・ノード1400およびクラウド・コンピューティング環境1550は、任意のタイプのネットワークまたは(例えばウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能な接続あるいはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。 Referring now to FIG. 14, an exemplary cloud computing environment 1550 is depicted. As shown, the cloud computing environment 1550 includes one or more cloud computing nodes 1400 with which local computing devices used by cloud users, such as a personal digital assistant (PDA) or cell phone 1554A, a desktop computer 1554B, a laptop computer 1554C, or an automobile computer system 1554N, or combinations thereof, can communicate. The nodes 1400 may communicate with each other. They may be physically or virtually grouped in one or more networks (not shown), such as a private, community, public, or hybrid cloud, or combinations thereof, as described herein above. This enables the cloud computing environment 1550 to provide infrastructure, platform, and/or software as a service without requiring cloud users to maintain resources on their local computing devices. It is understood that the types of computing devices 1554A-1554N shown in FIG. 14 are intended to be illustrative only, and that the computing node 1400 and cloud computing environment 1550 can communicate with any type of computerized device via any type of network and/or network-addressable connection (e.g., using a web browser).

ここで図15を参照すると、クラウド・コンピューティング環境1550(図14)が提供する1組の機能抽象化層が示されている。図15に示すコンポーネント、層、および機能は、単に例示となることを意図しており、本発明の実施形態はこれらに限定されないことが、予め理解されるべきである。描かれているように、以下の層および対応する機能が提供される。 Referring now to FIG. 15, there is shown a set of functional abstraction layers provided by cloud computing environment 1550 (FIG. 14). It should be understood in advance that the components, layers, and functions shown in FIG. 15 are intended to be merely illustrative, and that embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

ハードウェアおよびソフトウェア層1600は、ハードウェアおよびソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム、一例ではIBM zSeriesシステム、RISC(縮小命令セットコンピュータ;Reduced Instruction Set Computer)アーキテクチャ・ベースのサーバ、一例ではIBM pSeriesシステム、IBM xSeries(登録商標)システム、IBM BladeCenter(登録商標)システム、ストレージ・デバイス、ネットワークおよびネットワーキング・コンポーネントが挙げられる。ソフトウェア・コンポーネントの例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例ではIBM DB2データベース・ソフトウェアが挙げられる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの法域で登録されている、International Business Machines Corporationの商標である)。 The hardware and software layer 1600 includes hardware and software components. Examples of hardware components include mainframes, such as IBM zSeries systems, RISC (Reduced Instruction Set Computer) architecture-based servers, such as IBM pSeries systems, IBM xSeries systems, and IBM BladeCenter systems, storage devices, networks, and networking components. Examples of software components include network application server software, such as IBM WebSphere® application server software, and database software, such as IBM DB2 database software. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.)

仮想化層1620は、以下の仮想エンティティの例を提供し得る抽象化層を提供する:仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアント。 The virtualization layer 1620 provides an abstraction layer that can provide examples of the following virtual entities: virtual servers, virtual storage, virtual networks including virtual private networks, virtual applications and operating systems, and virtual clients.

一例では、管理層1630は、以下に記載する機能を提供し得る。リソース・プロビジョニングは、コンピューティング・リソースおよびクラウド・コンピューティング環境内でタスクを実行するために利用される他のリソースの、動的な調達を提供する。メータリングおよびプライシングは、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求処理またはインボイス処理を行う。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド利用者およびタスクについての身元情報の検証、ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータルは、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)計画および履行は、SLAによって将来必要となることが予期されるクラウド・コンピューティング・リソースの、事前調整および調達を提供する。 In one example, the management layer 1630 may provide the following functions: Resource provisioning provides dynamic procurement of computing resources and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud users and tasks, and protection of data and other resources. A user portal provides users and system administrators with access to the cloud computing environment. Service level management provides allocation and management of cloud computing resources so that required service levels are met. Service level agreement (SLA) planning and fulfillment provides proactive coordination and procurement of anticipated future cloud computing resource needs per SLAs.

ワークロード層1640は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例としては、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、ならびに、本発明に関してより特定的には、APIおよび文脈に関する入力に基づいて検索オートコンプリート候補を生成するランタイム・システム・コンポーネント、といった機能を挙げられる。 The workload layer 1640 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation, software development and lifecycle management, virtual classroom instruction delivery, data analytics processing, transaction processing, and, more specifically with respect to the present invention, runtime system components that generate search autocomplete suggestions based on API and contextual input.

関連出願の相互参照
本願は、各々が2020年12月22日に出願された同時係属中の米国特許出願第17/130,238号、IBM整理番号第P202005407US01の関連出願であり、その内容の全体が参照によって本明細書に組み込まれる。
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a related application to co-pending U.S. patent application Ser. No. 17/130,238, IBM Docket No. P202005407US01, each filed Dec. 22, 2020, the contents of which are incorporated herein by reference in their entireties.

本発明の多くの特徴および利点が詳細な説明から明らかであり、したがって、付属の特許請求の範囲では、本発明の真の思想および範囲内にある本発明の全てのそのような特徴および利点を包含することが意図されている。更に、当業者には多数の修正形態および変形形態が容易に想到されるので、本発明を図示され記載されている厳密な構造および動作に限定することは望まれておらず、したがって、本発明の範囲内にあるあらゆる適切な修正形態および等価物が利用され得る。 The many features and advantages of the present invention are apparent from the detailed description, and thus, it is intended by the appended claims to cover all such features and advantages of the present invention that fall within the true spirit and scope of the invention. Further, because numerous modifications and variations will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation shown and described; therefore, all suitable modifications and equivalents may be utilized that are within the scope of the invention.

本発明はその用途において、以下の説明において記載されるまたは図面に図示される構造の詳細におよび構成要素の配置に限定されないことを理解されたい。本発明は、記載されているもの以外の実施形態が、ならびに、様々な様式での実施および実行が、可能である。また、本明細書および要約書で採用される語法および専門用語は説明を目的としたものであり、限定するものと見なすべきではないことを理解されたい。 It is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The invention is capable of embodiments other than those described and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed in the specification and abstract is for the purpose of description and should not be regarded as limiting.

したがって、本開示が基礎とする構想が、本発明のいくつかの目的を実行するための他の構造、方法、およびシステムの設計のための基礎として容易に利用され得ることを、当業者は諒解するであろう。したがって、特許請求の範囲は、かかる等価な構造が本発明の思想および範囲から逸脱しない限りこれらを含むと見なされる、ということが重要である。
[項目1]
コンピューテーションを標的トラステッド実行環境(TEE)において実行されるように生成するための方法であって、
前記標的TEEを選択することと、
TEEが満足する認証を生成することと、
前記認証を、認証される前記TEE内で実行される前記コンピューテーションと関連付けることと、
前記関連付けられた認証を用いて前記コンピューテーションを生成することと、を含む、方法。
[項目2]
有効である前記TEEに関する前記認証に組み込まれる属性を選択することを更に含む、
項目1に記載の方法。
[項目3]
前記認証を前記生成することはセキュリティ・モジュール(SM)を利用する、項目1または2に記載の方法。
[項目4]
前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含む、項目1から3のいずれか一項に記載の方法。
[項目5]
顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含む、項目3に記載の方法。
[項目6]
前記顧客は前記SMの制御能力を有する、
項目5に記載の方法。
[項目7]
前記SMは前記標的TEEに前記認証を挿入する、
項目3に記載の方法。
[項目8]
前記TEEはクラウドまたはローカル・インフラストラクチャ内にある、項目1から7のいずれか一項に記載の方法。
[項目9]
前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用される、項目8に記載の方法。
[項目10]
クラウド・インフラストラクチャについての詳細情報または前記TEEについての詳細情報はセキュリティ・モジュールだけに開示される、項目1から9のいずれか一項に記載の方法。
[項目11]
SMは、選択される前記標的TEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されない、項目1から10のいずれか一項に記載の方法。
[項目12]
前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含む、項目1から11のいずれか一項に記載の方法。
[項目13]
前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約する、項目1から12のいずれか一項に記載の方法。
[項目14]
生成される前記コンピューテーションをプロビジョニングすること
を更に含む、項目1から13のいずれか一項に記載の方法。
[項目15]
システムであって、
コンピュータ命令を記憶するメモリと、
前記コンピュータ命令を、
標的トラステッド実行環境(TEE)を選択し、
TEEが満足する認証を生成し、
前記認証を、認証される前記TEE内で実行されるコンピューテーションと関連付け、
前記関連付けられた認証を用いてコンピューテーションを生成するよう実行するように構成されている、プロセッサと
を備える、システム。
[項目16]
有効である前記TEEに関する前記認証に組み込まれる属性を選択することを更に含み、
前記認証を前記生成することはセキュリティ・モジュール(SM)を利用し、
前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含み、
顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
前記顧客は前記SMの制御能力を有し、
前記セキュリティ・モジュールは前記標的TEEに前記認証を挿入する、
項目15に記載のシステム。
[項目17]
前記TEEはクラウドまたはローカル・インフラストラクチャ内にあり、
前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用され、
前記選択されたTEEについての詳細情報は前記SMだけに開示され、
前記SMは、選択される前記標的TEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されず、
前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、
前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約し、
前記システムは更に、
生成される前記コンピューテーションをプロビジョニングすることを含む、項目15または16に記載のシステム。
[項目18]
コンピュータに、
標的トラステッド実行環境(TEE)を選択する手順と、
TEEが満足する認証を生成する手順と、
前記認証を、認証される前記TEE内で実行されるコンピューテーションと関連付ける手順と、
前記関連付けられた認証を用いてコンピューテーションを生成する手順と、を実行させるためのコンピュータ・プログラム。
[項目19]
前記コンピュータに、
有効である前記TEEに関する前記認証に組み込まれる属性を選択する手順を更に実行させ、
前記認証を前記生成する手順はセキュリティ・モジュール(SM)を利用し、
前記認証を前記コンピューテーションと関連付ける手順は、前記コンピューテーションに情報を動的に挿入する手順を含み、
顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
前記顧客は前記SMの制御能力を有し、
前記SMは前記標的TEEに前記認証を挿入する、項目18に記載のコンピュータ・プログラム。
[項目20]
前記TEEはクラウドまたはローカル・インフラストラクチャ内にあり、
前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用され、
前記選択されたTEEについての詳細情報はセキュリティ・モジュールだけに開示され、
前記SMは、選択されるTEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されず、
前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、
前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約し、
前記コンピュータに、
生成される前記コンピューテーションをプロビジョニングする手順を更に実行させる、項目18または19に記載のコンピュータ・プログラム。
As such, those skilled in the art will appreciate that the conception on which this disclosure is based may readily be utilized as a basis for the designing of other structures, methods, and systems for carrying out the several purposes of the present invention. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the present invention.
[Item 1]
1. A method for generating a computation to be executed in a target trusted execution environment (TEE), comprising:
selecting the target TEE;
generating a certificate that satisfies the TEE;
Associating the authentication with the computation performed within the TEE that is authenticated;
and generating the computation using the associated authentication.
[Item 2]
selecting attributes to be incorporated into the certificate for the TEE that are valid.
The method according to item 1.
[Item 3]
3. The method of claim 1 or 2, wherein the generating the certificate utilizes a security module (SM).
[Item 4]
4. The method of claim 1, wherein associating the authentication with the computation includes dynamically inserting information into the computation.
[Item 5]
Item 4. The method of item 3, wherein a customer securely inserts a secret into the SM, the secret including metadata indicating which secure computation the secret is associated with.
[Item 6]
The customer has control of the SM;
Item 5. The method according to item 5.
[Item 7]
The SM inserts the authentication into the target TEE.
The method according to item 3.
[Item 8]
8. The method of any one of claims 1 to 7, wherein the TEE is in the cloud or in a local infrastructure.
[Item 9]
9. The method of claim 8, wherein SM is used as part of the cloud or local infrastructure.
[Item 10]
10. The method of any one of claims 1 to 9, wherein detailed information about the cloud infrastructure or detailed information about the TEE is disclosed only to a security module.
[Item 11]
11. The method of any one of items 1 to 10, wherein the SM stores a list of pre-generated authentications if authentications have been pre-generated for the selected target TEE, and the SM is not regenerated.
[Item 12]
12. The method of claim 1, wherein at least a portion of the computation is encrypted, and wherein encrypting the portion of the computation comprises encrypting information necessary to check the integrity of the computation.
[Item 13]
13. The method of any one of items 1 to 12, wherein the authentication constrains the computation to a particular TEE among a plurality of TEEs.
[Item 14]
Provisioning the generated computation.
14. The method of any one of items 1 to 13, further comprising:
[Item 15]
1. A system comprising:
a memory for storing computer instructions;
The computer instructions
Selecting a target Trusted Execution Environment (TEE),
Generate a certificate that satisfies the TEE;
Associating the authentication with a computation executed within the TEE that is authenticated;
a processor configured to execute the associated authentication to generate a computation;
A system comprising:
[Item 16]
selecting attributes to be incorporated into the certificate for the TEE that are valid;
said generating said certificate utilizing a security module (SM);
associating the authentication with the computation includes dynamically inserting information into the computation;
A customer securely inserts a secret into the SM, the secret including metadata indicating which secure computation the secret is associated with;
The customer has control of the SM;
the security module inserts the certificate into the target TEE;
Item 16. The system according to item 15.
[Item 17]
the TEE is in the cloud or in a local infrastructure;
SM is used as part of the cloud or local infrastructure;
detailed information about the selected TEE is disclosed only to the SM;
the SM stores a list of pre-generated certificates if certificates have been pre-generated for the selected target TEE, and the SM is not regenerated;
at least a portion of the computation is encrypted, and encrypting the portion of the computation includes encrypting information necessary to check the integrity of the computation;
the authentication constrains the computation to a particular TEE among a plurality of TEEs;
The system further comprises:
17. The system of claim 15 or 16, further comprising provisioning the generated computation.
[Item 18]
On the computer,
selecting a target trusted execution environment (TEE);
a procedure for generating a certificate that satisfies the TEE;
associating the authentication with a computation executed within the TEE that is authenticated;
generating a computation using the associated authentication.
[Item 19]
The computer,
selecting attributes to be incorporated into the certificate for the TEE that are valid;
said generating said certificate utilizing a security module (SM);
associating the authentication with the computation includes dynamically inserting information into the computation;
A customer securely inserts a secret into the SM, the secret including metadata indicating which secure computation the secret is associated with;
The customer has control of the SM;
20. The computer program product of claim 18, wherein the SM inserts the authentication into the target TEE.
[Item 20]
the TEE is in the cloud or in a local infrastructure;
SM is used as part of the cloud or local infrastructure;
detailed information about the selected TEE is disclosed only to a security module;
the SM stores a list of pre-generated certificates if certificates have been pre-generated for the selected TEE, and the SM is not regenerated;
at least a portion of the computation is encrypted, and encrypting the portion of the computation includes encrypting information necessary to check the integrity of the computation;
the authentication constrains the computation to a particular TEE among a plurality of TEEs;
The computer,
20. The computer program according to claim 18, further comprising the step of provisioning the generated computation.

100 システム
102 TEE、トラステッド実行環境
104 トラステッド・ソフトウェア
106 アプリケーション
108 オペレーティング・システム
110 処理機能
112 TEE API
114 プロセッサB
116 メモリ、トラステッド・メモリ
120 ハードウェア
122 証明機能
130 ソフトウェア・セクション、ソフトウェア
200 システム
300 システム
301 システム、トラステッド・ハードウェア
302 顧客、カスタマ・モジュール
304 ツーリング・モジュール、ツーリング
306 クラウド・フロント・エンド
308 クラウド・オブジェクト・ストア
310 ゾーン・オーケストレータ、ゾーン・オーケストレータ・モジュール
312 標的システム
318 VM Image_ID、SVM My-Image
325 標的マシン
326 ストレージ・キー
338 Image-ID
340 Image-IDと関連付けられたイメージ
342 シールされたデータ
344 イメージ
350 トラステッド・インフラストラクチャ
361 アントラステッド・クラウド・インフラストラクチャ、クラウド・プロバイダ
380 セキュリティ・モジュール
416 VM
464 チャレンジ
466 チャレンジ
470 チャレンジに対する応答、チャレンジ応答
472 チャレンジ
474 チャレンジへの応答
476 チャレンジ応答
482 My-Image
483 Image-ID
500 システム
540 ポリシ
544 ポリシ
673 シールされたデータ
675 シールされたデータ
677 インテグリティ情報
679 顧客データ
685 センシティブ情報
687 シークレット
689 ペイロード、ペイロード・エリア
691 ESMオペランド
772 不変コード
774 SB検証コード
776 可変ブート・ローダ
778 ホストブート・ローダ
780 ホストブートInit.
782 ホストブートExt.
784 OPAL
786 PCR6
788 ハードウェア・キー・ハッシュ
790 セキュアなブート・ジャンパ
792 セパレータ
794 PEFイネーブル・ビット
800 システム
852 オーケストレータ・モジュール
854 VM
856 SVM、イメージのコピー
858 ライブラリ
860 ベンダ
862 TPM
864 標的マシン、標的システム
866 SM、セキュリティ・モジュール
868 マシンのセット
870 クラウド・インフラストラクチャ
980 SM、セキュリティ・モジュール、SM Hyper Protect
983 Image-ID
1003 PSP
1054 AMD認証局
1100 情報ハンドリング/コンピュータ・システム
1110 中央処理装置、CPU
1112 バス
1114 ランダム・アクセス・メモリ
1116 読み出し専用メモリ
1118 入力/出力(I/O)アダプタ
1121 ディスク・ユニット
1122 ユーザ・インターフェース・アダプタ
1124 キーボード
1126 マウス
1128 スピーカ
1132 マイクロフォン
1134 通信アダプタ
1136 ディスプレイ・アダプタ
1138 ディスプレイ・デバイス
1139 プリンタ
1140 テープ・ドライブ
1200 信号保持記憶媒体
1210 フラッシュ・メモリ
1220 光学ストレージ・ディスケット
1400 クラウド・コンピューティング・ノード
1412 コンピュータ・システム/サーバ
1414 外部デバイス
1416 プロセッサまたは処理ユニット
1418 バス
1420 ネットワーク・アダプタ
1422 入力/出力(I/O)インターフェース
1424 ディスプレイ
1428 システム・メモリ
1430 ランダム・アクセス・メモリ
1432 キャッシュ・メモリ
1434 ストレージ・システム
1440 プログラム/ユーティリティ
1442 プログラム・モジュール
1550 クラウド・コンピューティング環境
1554A 携帯情報端末(PDA)もしくは携帯電話
1554B デスクトップ・コンピュータ
1554C ラップトップ・コンピュータ
1554N 自動車コンピュータ・システム
1600 ハードウェアおよびソフトウェア層
1620 仮想化層
1630 管理層
1640 ワークロード層
100 System 102 TEE, Trusted Execution Environment 104 Trusted Software 106 Application 108 Operating System 110 Processing Function 112 TEE API
114 Processor B
116 Memory, Trusted Memory 120 Hardware 122 Attestation Function 130 Software Section, Software 200 System 300 System 301 System, Trusted Hardware 302 Customer, Customer Module 304 Tooling Module, Tooling 306 Cloud Front End 308 Cloud Object Store 310 Zone Orchestrator, Zone Orchestrator Module 312 Target System 318 VM Image_ID, SVM My-Image
325 Target machine 326 Storage key 338 Image-ID
340 Image associated with Image-ID 342 Sealed data 344 Image 350 Trusted Infrastructure 361 Untrusted Cloud Infrastructure, Cloud Provider 380 Security Module 416 VM
464 Challenge 466 Challenge 470 Response to challenge, challenge response 472 Challenge 474 Response to challenge 476 Challenge response 482 My-Image
483 Image-ID
500 System 540 Policy 544 Policy 673 Sealed Data 675 Sealed Data 677 Integrity Information 679 Customer Data 685 Sensitive Information 687 Secret 689 Payload, Payload Area 691 ESM Operand 772 Immutable Code 774 SB Verification Code 776 Variable Boot Loader 778 Host Boot Loader 780 Host Boot Init.
782 Host Boot Ext.
784 OPAL
786 PCR6
788 Hardware Key Hash 790 Secure Boot Jumper 792 Separator 794 PEF Enable Bit 800 System 852 Orchestrator Module 854 VM
856 SVM, Image Copy 858 Library 860 Vendor 862 TPM
864 Target Machine, Target System 866 SM, Security Module 868 Set of Machines 870 Cloud Infrastructure 980 SM, Security Module, SM Hyper Protect
983 Image-ID
1003 PSP
1054 AMD Certification Authority 1100 Information Handling/Computer System 1110 Central Processing Unit, CPU
1112 bus 1114 random access memory 1116 read-only memory 1118 input/output (I/O) adapter 1121 disk unit 1122 user interface adapter 1124 keyboard 1126 mouse 1128 speaker 1132 microphone 1134 communication adapter 1136 display adapter 1138 display device 1139 printer 1140 tape drive 1200 signal-bearing storage medium 1210 flash memory 1220 optical storage diskette 1400 cloud computing node 1412 computer system/server 1414 external device 1416 processor or processing unit 1418 bus 1420 network adapter 1422 input/output (I/O) interface 1424 display 1428 System Memory 1430 Random Access Memory 1432 Cache Memory 1434 Storage System 1440 Programs/Utilities 1442 Program Modules 1550 Cloud Computing Environment 1554A Personal Digital Assistant (PDA) or Cell Phone 1554B Desktop Computer 1554C Laptop Computer 1554N Automotive Computer System 1600 Hardware and Software Layer 1620 Virtualization Layer 1630 Management Layer 1640 Workload Layer

Claims (13)

コンピューテーションを標的トラステッド実行環境(TEE)において実行されるように生成するためのシステムによって実行される方法であって、
クラウドまたはローカル・インフラストラクチャ内にある前記標的TEEを選択することと、
セキュリティ・モジュール(SM)を利用して、前記標的TEEが前記コンピューテーションを実行するための特定の基準を満たすことを示す認証を生成することであって、前記SMは、既に生成された認証のリストを記憶し、前記SMは、前記クラウドまたはローカル・インフラストラクチャの一部として使用され、前記SMは、カスタマ・モジュールによるトラステッド・インフラストラクチャであり、前記標的TEEについての詳細情報は前記SMだけに開示され、前記SMは、前記標的TEEのための認証が既に生成されている場合には再生成しない、ことと、
前記認証を、認証される前記標的TEE内で実行される前記コンピューテーションと関連付けることであって、前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約する、ことと、
前記関連付けられた認証を用いて前記標的TEEにおいて実行可能な前記コンピューテーションを生成することと、
生成される前記コンピューテーションをプロビジョニングすることと
を含む、方法。
1. A method performed by a system for generating a computation to be executed in a target trusted execution environment (TEE), comprising:
selecting the target TEE in a cloud or local infrastructure ;
utilizing a Security Module (SM) to generate a certificate indicating that the target TEE meets certain criteria for performing the computation , the SM storing a list of already generated certificates, the SM being used as part of the cloud or local infrastructure, the SM being a trusted infrastructure by customer modules, detailed information about the target TEE being disclosed only to the SM, and the SM not regenerating a certificate for the target TEE if one has already been generated;
associating the authentication with the computation to be performed in the target TEE to be authenticated , wherein at least a portion of the computation is encrypted, and wherein encrypting the portion of the computation includes encrypting information necessary to check the integrity of the computation, and wherein the authentication constrains the computation to a particular TEE among a plurality of TEEs;
generating the computation executable in the target TEE using the associated authentication;
provisioning the computation to be generated;
A method comprising:
前記認証は、前記SMが、前記標的TEEの情報に基づいて前記標的TEEを検証し、検証に合格した場合に、前記SMによって生成される、請求項1に記載の方法。The method of claim 1 , wherein the certificate is generated by the SM if the SM verifies the target TEE based on information of the target TEE and the verification is successful. 前記標的TEEの情報は、前記標的TEEのIPアドレスと、前記標的TEEのプラットフォーム証明書と、前記標的TEEのストレージ・キーを含む、請求項2に記載の方法。3. The method of claim 2, wherein the information of the target TEE includes an IP address of the target TEE, a platform certificate of the target TEE, and a storage key of the target TEE. 前記標的TEEは、トラステッド・プラットフォーム・モジュール(TPM)を備え、the target TEE comprises a Trusted Platform Module (TPM);
前記検証は、前記TPMを有する前記標的TEEに対して送信した情報に対する、前記標的TEEによるチャレンジ応答をチェックすることによって実行される、請求項2または3に記載の方法。The method of claim 2 or 3, wherein the verification is performed by checking a challenge response by the target TEE to information sent to the target TEE with the TPM.
有効である前記標的TEEに関する前記認証に組み込まれる属性を選択することを更に含む、
請求項1から4のいずれか一項に記載の方法。
selecting attributes to be incorporated into the certificate for the target TEE that are valid.
5. The method according to any one of claims 1 to 4 .
前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含む、請求項1からのいずれか一項に記載の方法。 The method of claim 1 , wherein associating the authentication with the computation comprises dynamically inserting information into the computation. 記SMは、顧客によってセキュアに挿入されたシークレットを有し前記シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含む、請求項1から6のいずれか一項に記載の方法。 The method of claim 1 , wherein the SM has a secret securely inserted by a customer , the secret including metadata indicating which secure computation the secret is associated with. 記SMは、前記顧客の制御下にある
請求項に記載の方法。
The SM is under the control of the customer ;
The method of claim 7 .
前記SMは前記標的TEEに前記認証を挿入する、
請求項1から8のいずれか一項に記載の方法。
The SM inserts the authentication into the target TEE.
9. The method according to any one of claims 1 to 8 .
システムであって、
コンピュータ命令を記憶するメモリと、
前記コンピュータ命令を、
クラウドまたはローカル・インフラストラクチャ内にある標的トラステッド実行環境(TEE)を選択することと
セキュリティ・モジュール(SM)を利用して、前記標的TEEがコンピューテーションを実行するための特定の基準を満たすことを示す認証を生成することであって前記SMは、既に生成された認証のリストを記憶し、前記SMは、前記クラウドまたはローカル・インフラストラクチャの一部として使用され、前記SMは、カスタマ・モジュールによるトラステッド・インフラストラクチャであり、前記標的TEEについての詳細情報は前記SMだけに開示され、前記SMは、前記標的TEEのための認証が既に生成されている場合には再生成しない、ことと、
前記認証を、認証される前記標的TEE内で実行される前記コンピューテーションと関連付けることであって前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約する、ことと、
前記関連付けられた認証を用いて前記標的TEEにおいて実行可能な前記コンピューテーションを生成することと、
生成される前記コンピューテーションをプロビジョニングすることとを実行するように構成されている、プロセッサと
を備える、システム。
1. A system comprising:
a memory for storing computer instructions;
The computer instructions
Selecting a target Trusted Execution Environment (TEE) in a cloud or local infrastructure ;
Utilizing a Security Module (SM) to generate a certificate indicating that the target TEE meets certain criteria for performing a computation , the SM storing a list of already generated certificates, the SM being used as part of the cloud or local infrastructure, the SM being a trusted infrastructure by customer modules, detailed information about the target TEE being disclosed only to the SM, and the SM not regenerating a certificate for the target TEE if one has already been generated;
associating the authentication with the computation to be performed in the target TEE to be authenticated, wherein at least a portion of the computation is encrypted, and wherein encrypting the portion of the computation includes encrypting information necessary to check the integrity of the computation, and wherein the authentication constrains the computation to a particular TEE among a plurality of TEEs;
generating the computation executable in the target TEE using the associated authentication;
and a processor configured to perform the provisioning of the generated computation .
有効である前記標的TEEに関する前記認証に組み込まれる属性を選択することを更に含み、
前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含み、
記SMは、顧客によってセキュアに挿入されたシークレットを有し、前記シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
記SMは、前記顧客の制御下にあり
前記SMは前記標的TEEに前記認証を挿入する、
請求項10に記載のシステム。
selecting attributes to be incorporated into the certificate for the target TEE that are valid;
associating the authentication with the computation includes dynamically inserting information into the computation;
the SM has a secret securely inserted by a customer , the secret including metadata indicating which secure computation the secret is associated with;
The SM is under the control of the customer ;
The SM inserts the authentication into the target TEE.
The system of claim 10 .
コンピュータに、
クラウドまたはローカル・インフラストラクチャ内にある標的トラステッド実行環境(TEE)を選択する手順と、
セキュリティ・モジュール(SM)を利用して、前記標的TEEがコンピューテーションを実行するための特定の基準を満たすことを示す認証を生成する手順であって、前記SMは、既に生成された認証のリストを記憶し、前記SMは、前記クラウドまたはローカル・インフラストラクチャの一部として使用され、前記SMは、カスタマ・モジュールによるトラステッド・インフラストラクチャであり、前記標的TEEについての詳細情報は前記SMだけに開示され、前記SMは、前記標的TEEのための認証が既に生成されている場合には再生成しない、手順と、
前記認証を、認証される前記標的TEE内で実行される前記コンピューテーションと関連付ける手順であって、前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約する、手順と、
前記関連付けられた認証を用いて前記標的TEEにおいて実行可能な前記コンピューテーションを生成する手順と、
生成される前記コンピューテーションをプロビジョニングする手順と、を実行させるためのコンピュータ・プログラム。
On the computer,
selecting a target Trusted Execution Environment (TEE) in a cloud or local infrastructure ;
utilizing a security module (SM) to generate a certificate indicating that the target TEE meets certain criteria for performing a computation , the SM storing a list of already generated certificates, the SM being used as part of the cloud or local infrastructure, the SM being a trusted infrastructure by customer modules, detailed information about the target TEE being disclosed only to the SM, and the SM not regenerating a certificate for the target TEE if one has already been generated ;
associating the authentication with the computation to be performed in the target TEE to be authenticated , wherein at least a portion of the computation is encrypted, and wherein encrypting the portion of the computation includes encrypting information necessary to check the integrity of the computation, and wherein the authentication constrains the computation to a particular TEE among a plurality of TEEs;
generating the computation executable on the target TEE using the associated authentication;
and a computer program for causing the computer to execute a procedure for provisioning the generated computation .
前記コンピュータに、
有効である前記標的TEEに関する前記認証に組み込まれる属性を選択する手順を更に実行させ、
前記認証を前記コンピューテーションと関連付ける手順は、前記コンピューテーションに情報を動的に挿入する手順を含み、
記SMは、顧客によってセキュアに挿入されたシークレットを有し、前記シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
記SMは、前記顧客の制御下にあり
前記SMは前記標的TEEに前記認証を挿入する、請求項12に記載のコンピュータ・プログラム。
The computer,
selecting attributes to be incorporated into the certificate for the target TEE that are valid;
associating the authentication with the computation includes dynamically inserting information into the computation;
the SM has a secret securely inserted by a customer , the secret including metadata indicating which secure computation the secret is associated with;
The SM is under the control of the customer ;
The computer program product of claim 12 , wherein the SM inserts the authentication into the target TEE.
JP2021204428A 2020-12-22 2021-12-16 Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure) Active JP7805067B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/130,269 2020-12-22
US17/130,238 US12147580B2 (en) 2020-12-22 2020-12-22 Provisioning secure/encrypted virtual machines in a cloud infrastructure
US17/130,238 2020-12-22
US17/130,269 US12437118B2 (en) 2020-12-22 2020-12-22 Provisioning secure/encrypted virtual machines in a cloud infrastructure

Publications (2)

Publication Number Publication Date
JP2022099293A JP2022099293A (en) 2022-07-04
JP7805067B2 true JP7805067B2 (en) 2026-01-23

Family

ID=82262081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021204428A Active JP7805067B2 (en) 2020-12-22 2021-12-16 Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure)

Country Status (1)

Country Link
JP (1) JP7805067B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021151584A (en) * 2020-05-07 2021-09-30 株式会社三洋物産 Game machine
JP2021151585A (en) * 2020-05-08 2021-09-30 株式会社三洋物産 Game machine
JP2021151586A (en) * 2020-05-08 2021-09-30 株式会社三洋物産 Game machine
CN116680687B (en) 2023-06-09 2024-10-15 北京火山引擎科技有限公司 Data processing method, device, equipment and storage medium
CN120020779A (en) * 2023-11-17 2025-05-20 华为技术有限公司 Computing device, security service calling method, method for starting fTPM and related devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150134965A1 (en) 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
US20190087575A1 (en) 2017-09-15 2019-03-21 Intel Corporation Providing isolation in virtualized systems using trust domains
US20200257828A1 (en) 2016-08-11 2020-08-13 Intel Corporation Secure Public Cloud with Protected Guest-Verified Host Control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150134965A1 (en) 2012-05-24 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enhanced Secure Virtual Machine Provisioning
US20200257828A1 (en) 2016-08-11 2020-08-13 Intel Corporation Secure Public Cloud with Protected Guest-Verified Host Control
US20190087575A1 (en) 2017-09-15 2019-03-21 Intel Corporation Providing isolation in virtualized systems using trust domains

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PALADI, N. et al.,Trusted Launch of Virtual Machine Instances in Public IaaS Environments,Lecture Notes in Computer Science,Vol.7839,2013年,pp.309-323
ZHAO, L. and MANNAN, M.,TEE-aided Write Protection Against Privileged Data Tampering,arXiv,1905.10723v1,[online],2019年05月26日,pp.1-15,取得先<https://arxiv.org/abs/1905.10723v1>,[取得日 2025年6月19日]

Also Published As

Publication number Publication date
JP2022099293A (en) 2022-07-04

Similar Documents

Publication Publication Date Title
JP7805067B2 (en) Method, system, and computer program for generating computations to be executed in a target trusted execution environment (TEE) (Provisioning secure/encrypted virtual machines in cloud infrastructure)
KR100930218B1 (en) Method, apparatus and processing system for providing a software-based security coprocessor
US8074262B2 (en) Method and apparatus for migrating virtual trusted platform modules
US9626512B1 (en) Validating using an offload device security component
US9501665B2 (en) Method and apparatus for remotely provisioning software-based security coprocessors
EP4360256B1 (en) Secure computing mechanism
JP7702976B2 (en) Hypervisor Protection Key
JP7397557B2 (en) Secure Execution Guest Owner Environment Control
US9667414B1 (en) Validating using an offload device security component
US10211985B1 (en) Validating using an offload device security component
US10243739B1 (en) Validating using an offload device security component
CN114661411B (en) Provisioning secure/encrypted virtual machines in cloud infrastructure
KR102435719B1 (en) Security services hosted in a virtual secure environment
JP7671113B2 (en) Signature Enforcement for Software Deployment Configurations
JP7837394B2 (en) Secure guest certification
JP7851392B2 (en) Updates to secure guest images and secure guest metadata
US12254092B2 (en) Attestation of logic loader code and integrity checking service logic code in a trusted execution environment (TEE)
US12147580B2 (en) Provisioning secure/encrypted virtual machines in a cloud infrastructure
US11809568B2 (en) Hypervisor having local keystore
US12306932B2 (en) Attesting on-the-fly encrypted root disks for confidential virtual machines
Yeluri et al. Attestation: Proving Trustability
JohnsonMatthew et al. Confidential Container Groups

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250911

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20251219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260108

R150 Certificate of patent or registration of utility model

Ref document number: 7805067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150