JP2022099293A - Method, system and computer program for generating computation so as to be executed in target trusted execution environment (tee) (provisioning secure/encrypted virtual machines in cloud infrastructure) - Google Patents

Method, system and computer program for generating computation so as to be executed in target trusted execution environment (tee) (provisioning secure/encrypted virtual machines in cloud infrastructure) Download PDF

Info

Publication number
JP2022099293A
JP2022099293A JP2021204428A JP2021204428A JP2022099293A JP 2022099293 A JP2022099293 A JP 2022099293A JP 2021204428 A JP2021204428 A JP 2021204428A JP 2021204428 A JP2021204428 A JP 2021204428A JP 2022099293 A JP2022099293 A JP 2022099293A
Authority
JP
Japan
Prior art keywords
tee
computation
cloud
authentication
target
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.)
Pending
Application number
JP2021204428A
Other languages
Japanese (ja)
Inventor
ガーニー ディー.エイチ. ハント
D H Hunt Guerney
ディミトリオス ペンダラキス
Pendarakis Dimitrios
ケネス アラン ゴールドマン
Alan Goldman Kenneth
エレイン アール. パーマー
R Palmer Elaine
ラマチャンドラ パイ
Pai Ramachandra
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,269 external-priority patent/US20220198070A1/en
Priority claimed from US17/130,238 external-priority patent/US20220198064A1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022099293A publication Critical patent/JP2022099293A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

To provide provisioning of secure/encrypted virtual machines in a cloud infrastructure.SOLUTION: The invention provides a method, system and apparatus for generating a computation so as to be executed in a target trusted execution environment (TEE), including: selecting the target TEE; generating an authorization that is satisfied by a TEE; associating the authorization with the computation to be executed in the TEE that is authorized, and generating the computation with the associated authorization.SELECTED DRAWING: Figure 2A

Description

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

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

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

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

本発明の実施形態によれば、標的トラステッド実行環境(trusted execution environment)(TEE)を選択することと、TEEが満足する認証を生成することと、その認証を認証されるTEE内で実行されるコンピューテーションと関連付けることと、その関連付けられた認証を用いてコンピューテーションを生成することと、を含む、コンピューテーションを標的TEE内で実行されるように生成するための方法。 According to embodiments of the present invention, the selection of a targeted execution environment (TEE), the generation of a TEE-satisfied certificate, and the execution of that certificate within the authenticated TEE. A method for generating a computation to be performed within a target TEE, including associating it with a computation and generating it using its associated authentication.

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

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

このように、本発明の特定の実施形態を、本明細書におけるその詳細な説明がよりよく理解され得るように、および、当技術分野への本発明の寄与がよりよく諒解され得るように、かなり大まかに概説した。当然ながら、本明細書に付属する特許請求の範囲の主題を形成する、以下に記載する本発明の追加の実施形態が存在する。 Thus, a particular embodiment of the invention may be better understood as its detailed description herein and its contribution to the art. A fairly rough overview. Of course, there are additional embodiments of the invention described below that form the subject matter of the claims that accompany this specification.

本発明はその用途において、以下の説明に記載されるまたは図面に図示される構造の詳細におよび構成要素の配置に限定されないことを理解されたい。本発明は、記載されているもの以外の実施形態が、ならびに、様々な様式での実施および実行が、可能である。また、本明細書および要約書で採用される語法および専門用語は説明を目的としたものであり、限定するものと見なすべきではないことを理解されたい。 It should be understood that the invention is not limited to the details of the structures described below or illustrated in the drawings and the arrangement of components in its use. The present invention is capable of embodiments other than those described, as well as implementation and practice in various modes. It should also be understood that the terminology and terminology used herein and in the abstract is for explanatory purposes only and should not be considered limiting.

したがって、本開示が基礎とする構想が、本発明のいくつかの目的を実行するための他の構造、方法、およびシステムの設計のための基礎として容易に利用され得ることを、当業者は諒解するであろう。したがって、特許請求の範囲は、かかる等価な構造が本発明の思想および範囲から逸脱しない限りこれらを含むと見なされる、ということが重要である。 Accordingly, one of ordinary skill in the art will appreciate that the concepts on which the present disclosure is based can be readily utilized as the basis for the design of other structures, methods, and systems for carrying out some of the objects of the invention. Will do. Therefore, it is important that the claims are considered to include such equivalent structures as long as they do not deviate from the ideas and scope of the invention.

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

本発明で利用される場合のTEE(トラステッド実行環境)の例を示す図である。It is a figure which shows the example of TEE (trusted execution environment) when it is used in this invention. 本発明の実施形態の例示のフロー図である。It is an exemplary flow diagram of an embodiment of the present invention. 本発明の実施形態の例示のフロー図である。It is an exemplary flow diagram of an embodiment of the present invention. クラウド・インフラストラクチャにおける本発明の実施形態の、代替のセキュリティ・モデルに関するkeep your own keyのフローを示す図である。It is a figure which shows the flow of the keep your own key regarding the alternative security model of the embodiment of this invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、keep your own keyモデルに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証(verify target system)のフローを示す図である。It is a figure which shows the flow of the verification (verifty target system) of the target system (that is, the system of the directed expression facility (PEF)) about the keep own house model of the embodiment of this invention in the cloud infrastructure. 本発明の実施形態におけるプロビジョニングの方法を示す図である。It is a figure which shows the provisioning method in embodiment of this invention. ESM(enter secure mode;セキュアなモードへの移行)オペランドのレイアウトである。The layout of the ESM (enter secure mode) operand. 本発明の実施形態におけるハードウェア構成の検証のためにPCR6(プラットフォーム構成レジスタ6)へと拡張された値を示す図である。It is a figure which shows the value extended to PCR6 (platform composition register 6) for the verification of the hardware configuration in embodiment of this invention. 本発明の実施形態におけるコンピューテーションの検証を示す図である。It is a figure which shows the verification of the computation in embodiment of this invention. 本発明の実施形態の、例示のprotected execution facility(PEF)を示す図である。It is a figure which shows the exemplary projected expression facility (PEF) of the Embodiment of this invention. クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替のセキュリティ・モデルを示す図である。It is a figure which shows the alternative security model utilizing SM of the Embodiment of this invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替モデルに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証のフローを示す図である。It is a figure which shows the flow of the verification of the target system (that is, the system of the directed expression facility (PEF)) with respect to the alternative model utilizing SM of the embodiment of this invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、AMD(ADVANCED MICRO DEVICES)のプロセッサにおいてTEEをプロビジョニングするためにSMを利用する代替のセキュリティ・モデルを示す図である。It is a figure which shows the alternative security model which uses SM for provisioning TEE in the processor of AMD (ADVANCED MICRO DEVICES) of embodiment of this invention in a cloud infrastructure. クラウド・インフラストラクチャにおける本発明の実施形態の、SMを利用する代替モデルに関するAMD(ADVANCED MICRO DEVICES)のプロセッサにおけるTEEに関する標的システム(すなわち、protected execution facility(PEF)のシステム)の検証のフローを示す図である。The flow of verification of the target system (that is, the system of directed expression facility (PEF)) about TEE in the processor of AMD (ADVANCED MICRO DEVICES) regarding the alternative model utilizing SM of the embodiment of this invention in a cloud infrastructure is shown. It is a figure. 本発明の例示の実施形態を組み込むための例示のハードウェア/情報取り扱いシステムを示す図である。It is a figure which shows the example hardware / information handling system for incorporating the example embodiment of this invention. 本発明の例示の実施形態に係る方法を実施するプログラムの機械可読命令を記憶するための、信号保持記憶媒体を示す図である。It is a figure which shows the signal holding storage medium for storing the machine-readable instruction of the program which carries out the method which concerns on embodiment of this invention. 本発明の例示の実施形態に係るクラウド・コンピューティング・ノードを描いた図である。It is a figure which depicts the cloud computing node which concerns on embodiment of this invention. 本発明の例示の実施形態に係るクラウド・コンピューティング環境を描いた図である。It is a figure which depicts the cloud computing environment which concerns on embodiment of this invention. 本発明の例示の実施形態に係る抽象化モデル層を描いた図である。It is a figure which drew the abstraction model layer which concerns on embodiment of this invention.

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

既に述べたように、クラウド採用への大きな障害はセキュリティである。クラウド・ベンダは、稼働中のコンテナまたはVM(仮想マシン)内で利用される全ての情報にアクセスできる。この問題に対応して、様々なCPU(中央処理装置)ベンダが、プライベート・コンピューテーションを作成および実行できるようにそのアーキテクチャを修正している。アーキテクチャの変更は一般に、トラステッド実行環境(TEE)の範疇に分類される。本発明はまた、クラウドのノードまたはインフラストラクチャの一部であるがどの特定のCPUアーキテクチャにも組み込まれていないTEEもサポートする。 As already mentioned, security is a major obstacle to cloud adoption. Cloud vendors have access to all the information used within a running container or VM (virtual machine). To address this issue, various CPU (Central Processing Unit) vendors have modified their architecture to allow them to create and run private computations. Architectural changes generally fall into the category of Trusted Execution Environment (TEE). The invention also supports TEEs that are part of a cloud node or infrastructure but are not incorporated into 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 in creating trusted execution environments (TEEs) that provide hardware support for secure execution. TEE divides a processor or process into secure and non-secure areas. TEE can be classified as either coarse-grained or fine-grained based on "grain size". A coarse-grained TEE works, for example, at the VM (virtual machine) or processor level, while a fine-grained TEE protects only a process or a single thread of execution. Examples of coarse-grained ones are IBM®'s Secure ServiceContainers, ARM® (Advanced RISC (Reduced Instruction Set Computer) Machines) and TrustZone® (which is also considered TE®). ), IBM's Protected Instruction Facility (PEF), and AMD's Secure Enhanced Virtualization (SEV). Intel® Software Guard Extension (SGX) is a fine-grained TEE. Intel has expressed its intention to provide coarse-grained support. All TEEs are trusted, because the requirements enforced by the hardware are imposed on the code running in the secure partition and the user can verify that the hardware is correct.

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

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

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

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

本実施形態で使用されるTPMは、証明機能に関する測定値を保持するために使用されるハードウェアを表す。証明機能はプロセッサに組み込まれても、またはプロセッサ・アーキテクチャの外部に実装されてもよい。あるものは、測定値を記録するための何らかの信頼される機構を表すTPM PCRを指す。 The TPM used in this embodiment represents the hardware used to hold the measured values for the proof function. The proof function may be built into the processor or implemented outside the processor architecture. Some refer to TPM PCR, which represents some reliable 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 utilizes TPM (Trusted Platform Module) and TEE hardware deployed in a cloud infrastructure. There are two models for utilizing TEE in cloud infrastructure, BYOK (Bring Your Own Key) or KYOK (Keep Your Own Key). BYOK needs a key vault under the control of the cloud user, such as SM (Security Module) 866 in the cloud infrastructure, to avoid exposing the user's keys to the cloud provider. did. Examples of security module 866 include IBM 4769 Cryptographic Copper Secsor (TM), IBM Hyper Protect (TM), IBM Z Secure Service Controller (TM), IBM Z Secure Hardware (TM), IBM Z Security Module (TM), IBM Z Security Module (TM), IBM Z Security Module (TM) -Security module), TEE, or even TPM. Sensitive information can be stored in customer-controlled key vaults. KYOK requires the cloud to provide cloud users with more information about its infrastructure.

クラウド・コンピューティングは企業インフラストラクチャの重要な一面である。クラウド・インフラストラクチャはプライベート型、パブリック型、またはハイブリッド型のいずれかであり得る。既に述べたように、ハイブリッド・クラウドおよびパブリック・クラウドの主要な課題の1つは、企業がその信頼境界線をクラウド・プロバイダおよびその人員にまで拡大することである。クラウドは劇的に成長してはいるが、その主要な阻害要因のうちの1つが信頼性である。ほとんどのクラウド・インフラストラクチャでは、クラウド・プロバイダおよびそのスタッフは信頼されると最初から想定されている。 Cloud computing is an important aspect of corporate infrastructure. Cloud infrastructure can be either private, public, or hybrid. As already mentioned, one of the major challenges for hybrid and public clouds is for enterprises to extend their trust boundaries to cloud providers and their staff. Although the cloud is growing dramatically, reliability is one of the major impediments to it. In most cloud infrastructures, cloud providers and their staff are initially assumed to 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 is a diagram showing an example of TEE used in the present invention. TEE can be implemented in several ways, including as a modification of the CPU architecture, as an external component plugged into a peripheral interface, or as a completely separate processor with the appropriate interface and isolation hardware. In this embodiment the TEE is described as a single system. However, the invention also works if TEE represents a properly configured set of systems. The use of TEE refers to one or more well-configured systems. Within the software section 130 of the system 100, there is a TEE 102 that includes the hardware 120 and the software 130. A trusted application is software that runs inside TEE. The TEE API 112 is often implemented within firmware and / or hardware, with an interface to software running inside TEE and software outside TEE that may wish to be secure by running inside TEE. Provides an interface to and to. Processor B 114 in trusted hardware is a trusted part of the processor where trusted applications and TEE APIs run. This may be a completely independent processor, or it may refer to the trusted state of a single processor. The memory 116 inside the TEE is trusted and the trusted software 104 resides in the trusted memory 116 inside the TEE 102. TEE also includes a proof function 122. In a preferred embodiment, the certification function is supplied by TPM. However, any hardware used to securely store firmware and / or software measurements may provide certification.

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

TEEの外部には、オペレーティング・システム108およびアプリケーション106、ならびに、メモリ116および処理機能110が存在する。これらのコンポーネントのいずれも、トラステッド・ソフトウェア104によって暗黙に信頼されることはない。2者間のインターフェースは、信頼性を犠牲にしないように慎重に実装されねばならない。 Outside the TEE, there are an operating system 108 and an application 106, as well as a memory 116 and a processing function 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 shows an exemplary flow diagram for provisioning a Computation within a TEE as an embodiment of the present invention. Those skilled in the art recognize that the preparation for certification to perform a computation in TEE should be done in a trusted environment, but can be done anywhere. Provisioning of the Computation within the TEE begins with the selection of the target TEE 204. Choosing a target TEE requires choosing a system that includes the TEE capable of performing secure computations. 3, FIG. 4, FIG. 9A, FIG. 9B, FIG. 10A, and FIG. 10B show examples of how the target TEE is selected and which attributes can be verified. In a preferred embodiment, the expected attributes of TEE are expected to be known prior to selection. However, one of ordinary skill in the art recognizes that the expected attribute may be a function of the selected TEE. For example, if you are provisioning a compute that can run on multiple architectures, the required attributes will likely depend on the target architecture. Authentication 206 constrains the computation to a particular TEE or to a set of TEEs that meet certain criteria. In either case, the criteria used to validate a particular TEE and / or TEE must be known before generating a certificate. Selecting the target TEE and identifying the criteria are dealt with 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はその識別子が存在する場合、その認証を検証する。 It is step 206 to generate the authentication. In general, authentication constrains the set of TEEs to be authenticated to perform secure computation. In a preferred embodiment, the certification is a protected symmetric seed, as shown in FIG. In a preferred embodiment, each TEE has a key pair. A preferred protection mechanism is to encrypt the seed with the public key associated with the target TEE. Only authenticated TEEs can access the private key. The private key may be locked at the TPM or at some other hardware protection mechanism. The TPM specification defines encryption using a public key as a sealing process, the result of sealing as sealed data, and decryption of sealed data using a private key as an unsealing process. ing. The authentication may include an identifier indicating which TEE the authentication is for. TEE verifies the authentication if the identifier is present.

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

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

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

最後に、標的TEEにコンピューテーションがプロビジョニングされる212。本発明によってプロビジョニングされるコンピューテーションの例は、セキュアなVMである。TEE内へのセキュアなVMのプロビジョニングの例が、図3および図4、図9Aおよび図9B、ならびに図10Aおよび図10Bに与えられている。 Finally, the computation is provisioned to the target TEE 212. An example of a computing provisioned by the present invention is a secure VM. Examples of secure VM provisioning within TEE are given in FIGS. 3 and 4, FIGS. 9A and 9B, and FIGS. 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 the secret. In such a model, TEE is launched on the target system but is not decrypted until the proof is verified. After the target system becomes secure, it measures or has the state of TEE. The measurement result is sent to the user. If the user is satisfied with the measurement result, the insertion of a secret that allows TEE to decrypt the computation has been authenticated. This secret is essentially a certification. Without it, no computation would be performed within this type of TEE. This association is implied by running TEE within the target system. The generation is the user who computes the 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。 FIG. 2B shows an exemplary flow diagram for provisioning a Computation within a TEE as an embodiment of the present invention. Computation preparation for TEE should be done in a trusted environment. Those skilled in the art recognize that the preparation for certification to perform a computation in TEE should be done in a trusted environment, but can be done anywhere. Provisioning starts at 230. The first step is to verify the TEE, 232. Examples of verification of the target TEE can be found 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. In this description, it is assumed that the TEE at which the computation is performed verifies the integrity of the computation and fails to execute if there is a problem. Alternatively, the TEE may independently calculate the integrity of the compute and return that information to the owner via some secure mechanism, if improper, the execution of the TEE will be terminated. Will be. In implementations where the owner must verify the integrity of the running TEE, it would be useful to point out that sensitive information should not be included within the TEE until it is validated. Both methods require integrity information. Next, the sealed data is generated 236. The sealed data specifies whether TEE is authenticated to perform the computation. Those skilled in the art will recognize that the sealed data is a TPM-specific term. When the data is sealed by the TPM, the sealed data is associated with a policy that must be satisfied in order to access the sealed data. Computation information, sealed data, and integrity information are sent to TEE 238. In a preferred embodiment, the policy associated with the sealed data is used to verify that the TEE is certified. This policy is carried out by TPM. TEE confirms that the TEE is authenticated to perform the computation, 240. If TEE is not authenticated, execution ends 246. Computation integrity is verified 242. This may be achieved by TEE independently computing the integrity information. It can then verify that it matches the received integrity information, or it may send the calculation results back to the initiator via some secure channel and wait for them to be confirmed. .. In either case, if the integrity of the compute is not verified, the execution ends 246. Otherwise, the computation is performed 244.

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

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

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

システム200は、トラステッド・インフラストラクチャ350(ハイライトで示す)と、アントラステッド・クラウド・インフラストラクチャ361(ハイライトされていない残りの構造)と、に分割される。トラステッド・インフラストラクチャ350(ハイライトで示す)は、顧客302およびツーリング・モジュール304として示されている。 System 200 is divided into trusted infrastructure 350 (highlighted) and untrusted cloud infrastructure 361 (remaining unhighlighted structures). The trusted infrastructure 350 (highlighted) is shown as customer 302 and touring 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 potentially SVM VM416 (not shown) with an Image-ID image ID (identification information) is preloaded in the cloud infrastructure store. To provision a secure VM 416, the customer module (or customer network) 302 requests that the touring 304 initiate VM Image_ID 318. The touring module 304 requests secure provisioning from the cloud front end 306 320. The cloud front end 306 confirms the paid service for the touring module 304 322. The touring module 304 requests that the zone orchestrator 310 create an instance of the 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 the target machine 325 as follows. The zone orchestrator 310 selects the target machine represented by Mach-Ind and requests the platform certificate and storage key 326 from the target system 312 with TPM. Those skilled in the art are known to know how existing cloud infrastructures can utilize the list of requirements and select available machines from those infrastructures. Any technique for selecting such a machine is acceptable. Those skilled in the art will recognize that the list of attributes to be selected should be augmented with the attributes associated with the target TEE. Further, those skilled in the art will recognize that Mach-Ind may be an IP address, or any other information that can be used to identify a machine within the provider's infrastructure. The target system 312 with the TPM then returns the platform certificate and storage key to the zone orchestrator 310 328. The zone orchestrator 310 requests that the client touring module 304 enroll the target machine via the machine enrolling (Mach-ind, platform certificate, storage key) 330.

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

標的システムが検証される場合には、クライアント・ツーリング304はシールされたデータを生成する334。示されていないが、標的システムの検証332が失敗した場合、アクティベーションは停止する。ツーリング・モジュール304は、ゾーン・オーケストレータ・モジュール310に認証実行(Mach-ind.、シールされたデータ)436を送る。 If the target system is validated, the client touring 304 will generate sealed data 334. Although not shown, if verification 332 of the target system fails, activation will cease. The touring 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 the 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 to the zone orchestrator module 310 again 340. The zone orchestrator 310 then inserts 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 the TPM and orders the target system to perform the image 344.

図4は、本発明の実施形態の標的システムの検証332(PEF)の詳細を示す。トラステッド・インフラストラクチャ350は、カスタマ・モジュール(またはカスタマ・ネットワーク)302およびツーリング・モジュール304として示されている。アントラステッドクラウド・インフラストラクチャ361も示されている。 FIG. 4 shows the details of the verification 332 (PEF) of the target system according to the embodiment of the present invention. The trusted infrastructure 350 is shown as a customer module (or customer network) 302 and a touring module 304. An trusted 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 a cloud front end 306 requesting the touring module 304 to enroll this machine. Verifying the TEE requires verifying the platform certificate and verifying that the characteristics of the storage key are as expected. Customer Touring 304 then validates the platform certificate and checks storage and key characteristics 460. Although not shown, verification of the target system returns a failure if the platform certificate or storage key characteristics are incorrect. The response to this failure can cause the touring 304 to request that the zone orchestrator supply a different target system. Continuing in FIG. 4, if the platform certificate and storage key are valid, Customer Touring 304 then generates a challenge and creates credentials 462. The challenge consists of credentials, which is a binary blob that can only be opened by the TPM on the Mach-ind (used to obtain a challenge to the proper system). The touring module 304 sends a challenge 464 to the cloud front end 306. The cloud front end 306 transfers the challenge 466 to the zone orchestrator 310. The zone orchestrator 310 transfers a challenge to the target system 312 to the target system 312 having a TPM via the 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 to the zone orchestrator 310 470. The zone orchestrator forwards the response to Challenge 472 to the cloud front end 306. The cloud front end 306 then forwards the response to the challenge to the customer touring module 304 474. The touring module 304 then checks the challenge response and indicates success or failure 476.

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

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

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

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

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

したがって、述べたように、好ましい実装の例では、他の属性に加えて、ストレージ・キーはTPMに固定され、キーのアルゴリズムはRSAであり、キー長は2048である。パスワードを変更する能力はTPMプラットフォーム認証に結び付いているが、これは何らかのOSがプラットフォームにロードされる前の、ファームウェアのブート・プロセスの初期に終了しなければならない。マシンにおけるファームウェアは、マシンがブートされるたびに新しいランダム・パスワードを割り当て、そのパスワードをULTRAVISORまたは同等のファームウェアに渡す能力を有さねばならない。 Therefore, as mentioned, in the preferred implementation example, in addition to the 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 passwords is tied to TPM platform authentication, which must be terminated early in the firmware boot process before any OS is loaded onto the platform. The firmware on the machine must be capable of assigning a new random password each time the machine is booted and passing 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の各々が、シードから生成される対称キーを用いて暗号化される。 FIG. 6 shows the layout of ESM operand 691. The ESM operand 691 can be divided into two large areas, sensitive information 685 and payload 689. Sensitive areas contain sealed data. Each sealed data allows a well-configured system to access the information in the payload area 689 of the ESM operands. The sealed data 673 provides access to machine A and the sealed data 675 provides access to machine B. The unsealed data is the seed used to generate the symmetric and HMAC keys. Everything in payload area 689 except HMAC is encrypted with a symmetric key generated from the seed. The first part of the payload area 689 is integrity information 677. This is the information required by the PEF to verify the integrity of the compute. It consists of a kernel hash, a kernel command line, initramfs (initial RAM (random access memory)), and an RTAS area. In a preferred embodiment, the integrity information 677 is encrypted as specified. In an alternative embodiment, the integrity information is not encrypted. Since the PEF validates the integrity of the computation without contacting the creator, this information is generated when a secure computation is created and placed in the ESM operand. (For technologies in which the owner / user of the Computation is contacted to verify the integrity of the Computation, the information must be calculated by TEE). The rest of the information in payload area 689 is secret 687. These are represented by CD1 to CDn, and CD represents "Customer data". The integrity of the preferred embodiment protects the VM kernel, intramfs, kernel command line, and RTAS 677. The boot disk should be encrypted. In a preferred embodiment, the first block of customer data 679 includes a passphrase that protects the root disk encrypted with the symmetric key. After the encrypted passphrase, there are zero or more blocks of customer data. Each of the secrets 687 is encrypted with 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の状態を指定する。 FIG. 7A shows values extended to PCR6 786 for verification of hardware configurations in embodiments of the present invention. A preferred embodiment utilizes a secure and trusted boot to ensure that the hardware and firmware configurations are valid. The values represented here are the preferred set of values. Different implementations may use different values. For those of skill in the art, PCR 6 786 is representative of the PCR used to hold the value, and whatever PCR is used, it is also to verify (Figure). I understand that it must appear within the policy of the sealed data (not shown in 7A). It is important to note that this embodiment only identifies the actions of variable and / or immutable codes required for the present invention. The variable boot loader 776 and immutable code 772 described herein are performed within a self-boot engine (SBE; self-boot engine) to perform many actions not described herein. Execution ends if secure and trusted boot is enabled each time signature validation fails. The immutable boot loader 772 is the first code to be executed when the system is powered up. The immutable boot loader 772 extends the hardware key hash 788 and the secure boot jumper 790 to the PCR6 786. The hardware key hash 788 is a hash of the cryptographic key in use to validate the signature on the cryptographic key used to validate the signature on the firmware. The secure boot jumper 790 identifies whether secure boot is enabled or disabled. Immutable code 772 loads and validates the signature of variable boot loader 776 before passing control to variable boot loader 776. If the signature is validated, the immutable code 772 extends to PCR6 786 the hash of SB validation code 774 that is part of the variable boot loader 776 that validates the signatures of other codes. It then passes control to the variable boot loader 776. The variable boot loader 767 validates the host boot loader 778. The host boot loader 778 is a host boot Init. (Initialization; initialization) 780 is verified. The host boot Init780 is a host boot Ext. (Extensions; extensions) 782 is verified. Host boot Ext. 782 extends the separator 792 to PCR6. Host boot Ext. 782 verifies OPAL784. OPAL784 extends the PEF enable bit 794 to PCR6 786. FIG. 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 PCR 6 to match this value. No matter what implementation requires proper validation of its configuration, other values can be extended to PCR 6 (or another PCR) if desired. The authentication policy required by the present invention is the same method (not recommended) of extending a value to a physical or virtual PCR by software using a virtual TPM, a real TPM, or reimplementing the actions performed by the TPM. Can be generated with. The policy is the hardware key hash 788, secure boot jumper 790, SB verification code 774 hash, separator used by the firmware, which is required to authenticate the TEE to perform secure computation. Specifies the state of 792 and the PEF enabled bit 794.

図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となる。 FIG. 7B shows, in an embodiment of the invention using PEF, 240 confirming the authentication requirements and 242 verifying the integrity of the compute information. As already mentioned, secure computing starts as a regular VM. This makes an ESM ULTRAVISOR call to transition to a secure VM running within PEF TEE, at which point verification begins, 750. In a preferred embodiment, the ESM ultra-call requires the ESM operand 691 shown in FIG. If the ESM operand is not present, the ESM Ultra-Call will fail. TEE performs a check to see if it is authenticated in order to perform a secure VM 240. If it is not authenticated, execution ends, 766. If authenticated, the TEE performs a check 754 to confirm that it is a valid TEE, which is a valid TEE that meets the sealed data policy specified by the SVM creator. In the case of PEF, this check is performed by the TPM when the ULTRAVISOR requests the TPM to extract seeds from the sealed data. If TEE does not meet these requirements, execution ends 766. Since the TEE is authenticated and meets the requirements, it has access to the HMAC key, and the symmetric seed needed to generate the symmetric key if integrity is enabled. It then generates an HMAC key, 756. It uses an HMAC key to verify that the encrypted information in the ESM operand has not been altered. 758. If the encrypted information has been modified, execution ends 766. Otherwise, a symmetric key is generated, 760. This gives the TEE access to the information required for Computation Integrity Verification 242. If the computation has been modified, execution ends, 766. Otherwise, the VM completes and executes the transition to the SVM, which successfully completes the transition 768, and the VM becomes the SVM at this point.

プロビジョニング
図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 FIG. 8 shows an exemplary directed expression facility (PEF) of an embodiment of the invention. The system 800 requests SVM (Secure Virtual Machine) execution (S0). Next, the orchestrator module 852 selects a target machine from T0 ... Tn864 (S1). The orchestrator module 852 asks the SM (security module) 866 to verify one of the selected target machines, T0 ... Tn, 864 (S2). In FIG. 5, the selected target is Tn, 864. SM866 requests information (platform certificate, storage key structure, HW (hardware) key hash) from the selected target system 864 (S3). SM866 must verify that they are appropriate. In order to perform verification, it must have the platform vendor's public key. Once the key is obtained, it can store the key internally to facilitate the verification process. The SM866 validates the machine using the vendor's 860 (S3a) public key and contacts the vendor if it does not already have it. The SM device 866 sends the sealed data to the orchestrator module 852 (S4). Orchestrator module 852 reads a copy of the selected SVM856 from library 858 S5. Note that in PEF, all SVMs start running as VM854. As far as library 858 is concerned, all images are VM854. For the sake of brevity of the invention, these VM854s, which can be SVMs, are labeled with SVM856 in library 858. Those of skill in the art know that library 858 can be implemented so that the difference is noticeable or invisible. The orchestrator inserts the sealed data into a copy of the SVM. Orchestrator module 852 dispatches a copy of SVM856 to target system 864 (S6). In the case of cloud infrastructure 870, the target system 864 is generally unknown at the time the SVM856 is created. Cloud providers must be able to make changes to their infrastructure (eg, perform daily maintenance, upgrades, etc.) without affecting the existing SVM856. One of the key attributes of the PEF ESM (Enter Security Module) operand, which allows easy integration into the cloud infrastructure 870, is the HMAC (Hashing for Message Authentication Code) message authentication code. Hashing for) does not cover the sealed data. This means that the sealed data does not have to be generated at the same time as the rest of the ESM operands and can be inserted into the ESM operands just before execution. In a preferred embodiment, the placeholder sealed data may be present 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 stored in the cloud object store 308. This would be useful in alternative embodiments where TEE represents a set of systems. The cloud object store 308 may also store metadata that indicates whether the sealed information already exists. If present, the VM can be dispatched directly to the TEE (set of machines). The ESM operand is a digital blob that is placed within a reserved section of intramfs. It can also be placed in the ELF (Executable and Linkable format) section of the zImage (self-extracting compressed image) format file that contains the kernel. All the information needed to validate the SVM is contained in the ESM operands.

一例としてのデプロイメント・モデルは、クラウド・プロバイダのインフラストラクチャにおいてセキュリティ・モジュール(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 Security Module (SM) 866 or equivalent functionality in a 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 the information from the SM866, so it is safe for cloud customers to put the secret associated with their secure computation inside the SM866. An example of an SM that can be owned by a cloud provider but controlled by a customer is IBM 4769. The capabilities described in the present invention do not currently exist in 4769, but can be added. Since the SM866 is within the cloud provider's infrastructure, it is safe for the cloud provider to be able to run the protocols it needs to generate sealed data for the target machine. No cloud infrastructure details are provided to cloud customers. At this point, in PEF, all SVMs (Secure Virtual Machines) start running as NVMs (Normal Virtual Machines), and in the early stages of their execution, they are ESMs (Secure Modes) that are requests for migration to SVMs. (Transition to) It is important to keep in mind to perform ultra-calls. It is also important to note that from the cloud provider's point of view, the NVM image and the SVM image are the same. Cloud customers need to inform cloud providers that a particular image is for an SVM so that it can be processed properly. In the deployment description, the VM (Virtual Machine) image that will be migrated to SVM (Secure Virtual Machine) 856 is pre-created, and the associated symmetric seed and associated metadata are pre-SM866. It is supposed to be inside. Finally, given the identity of the VM, it is hypothesized that SM866 will use the associated metadata to select the correct 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の、いずれかであってもよいことを認識している。シールされたデータをコンピューテーションに動的に挿入することができる。 Further referencing FIG. 8 shows the overall process for performing SVM856. The cloud user requests that a pre-created execution instance of SVM856 be created. The cloud infrastructure 870 selects the target machine 864 and extracts the platform certificate and storage key from this target. The infrastructure transfers the target machine, 864, platform certificate, and storage key to SM866 under customer 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 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 the enrollment is successful, SM866 will return sealed data about the target machine 866 to the cloud infrastructure 870. The infrastructure reads a copy of the image, 856 from library 858, uses touring to insert the sealed data into the ESM operand of the SVM856, and a copy of the image containing the inserted sealed data, targeting the machine 856. Provision to 864. The newly inserted and sealed data is for the target machine 864, so if there are no other issues, the VM will successfully migrate to the SVM856. This model assumes that the customer will have one seed per SVM856, 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, one of ordinary skill in the art recognizes that the target may be a single machine, 864, or a set of machines, 868, depending on how the infrastructure is provisioned. .. Sealed data can be dynamically inserted into the computation.

エンロールメント・プロトコルは以下を含む。SM866、または同等の機能は、エンロールメント・プロトコルを実行しなければならない。エンロールメント・プロトコルは、クラウド・インフラストラクチャ870がSM866に、標的マシンのマシン・インジケータ(IP(インターネット・プロトコル)アドレス)、プラットフォーム証明書、SVMインジケータ、およびストレージ・キーを渡すことを要求する。代替の実施形態では、クラウド・プロバイダはSMにマシン・インジケータのみを渡し、SMは自身でプラットフォーム証明書およびストレージ・キーを抽出する。いずれの実施形態でも、SM866はプラットフォーム証明書を検証し、ストレージ・キー特性が適正であることをチェックすることになる。プラットフォーム証明書およびストレージ・キーがチェックに合格した場合には、SM866はランダムなチャレンジを生成し、認証情報を作成することになる。それは次いで、そのTPM862上で実行されるべき標的マシン864に、アクティベート認証情報を送ることになる。標的マシン864はチャレンジ応答を返すことになる。チャレンジ応答が有効である場合、SM866は標的マシン864に関するシールされたデータを生成し、それを本システム800のクラウド・インフラストラクチャ870に返す。 Enrollment protocols include: The SM866, or equivalent, must implement the enrollment protocol. The enrollment protocol requires the cloud infrastructure 870 to pass the SM866 a machine indicator (IP (Internet Protocol) address), platform certificate, SVM indicator, and storage key for the target machine. In an alternative embodiment, the cloud provider passes only the machine indicator to the SM, which itself extracts the platform certificate and storage key. 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 check, SM866 will generate a random challenge and create credentials. It will then send activation credentials to the target machine 864 to be run on that TPM862. The target machine 864 will return a challenge response. If the challenge response is valid, SM866 will generate sealed data about the target machine 864 and return 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. Therefore, if SM866 maintains a database of enrolled machines, it can perform a check to see if the current target machine is enrolled. If it is already enrolled, it can skip enrollment and generate sealed data directly. Also, each hardware key hash only needs to be verified once. The SM866 can maintain a database of verified hardware key hashes. Before System 800 executes the protocol against Vendor 860 to verify the hardware key hash, System 800 may perform a check to see if the hash from the target machine 864 has already been verified. can. This is not a major optimization for the PEF, because the hardware key hash is validated when the SVM is created, rather than once per run. If the key hash becomes invalid, it must be purged from SM866. When a machine is deprovisioned from the Cloud Infrastructure 870 of the System 800, it must notify SM866 that the machine is no longer a valid target so that SM866 can empty its internal database. Finally, the primary seed in TPM862 must also be emptied when the machine is deprovisioned to ensure that the secret cannot be extracted from the already authenticated SVM866 using the deprovisioned machine.

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

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

クラウド・プロバイダによっては自身のインフラストラクチャの詳細を曝すことを望まない場合があるが、その理由は、そのことにより自身のインフラストラクチャをトランスペアレントに管理することが著しくより複雑になるからである。本発明は、適切に構成されたSMを含めることによって、クラウド顧客にインフラストラクチャの詳細を曝すことなく、TEEにセキュアなコンピューテーションをプロビジョニングするという同じ目的を達成できる。SMはTEEを活用する顧客の制御下になければならない。SMは、図9および図10に示すような、予め記述された検証フローを実行するように構成されねばならない。顧客は自身のシークレットをSMにセキュアに挿入しなければならない。 Some cloud providers do not want to expose the details of their infrastructure because it makes managing their infrastructure significantly more complex. By including a well-configured SM, the present invention can achieve the same objective of provisioning secure computations in TEE without exposing infrastructure details to cloud customers. SM must be under the control of the customer who utilizes TEE. The SM shall be configured to perform a pre-described validation flow as shown in FIGS. 9 and 10. Customers must securely insert their secrets 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を予め知っていることを示唆しているであろう。 9A, 9B, 10A, and 10B illustrate how the invention works within PEF TEE. PEFs and similar TEEs are designed for TEEs to prove the integrity of Computation without requiring separate verification from the TEE's users / owners. In FIGS. 10A and 10B, the present invention requires the owner / user to explicitly authenticate the computation after the secure computation has been loaded into a valid TEE, eg AMD SEV. Explains how it works. In either case, both TEE and Computation are certified / verified. 9A, 9B, 10A, and 10B do not assume that the customer has preloaded the VM image. The customer can preload the VM image, My-Image482, which may suggest that the customer knows the Image-ID483 in advance.

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

セキュアなVMをプロビジョニングするために、カスタマ・モジュール302は、そのトラステッド・ツーリング304がSVM My-Image318を開始することをリクエストする。ツーリング・モジュール304はクラウド・フロント・エンド306に対して、セキュアなプロビジョニングをリクエストする320。クラウド・フロント・エンド306はツーリング・モジュール304に対して、有料サービスを確認する322。 To provision a secure VM, customer module 302 requests that the trusted touring 304 start the SVM My-Image 318. The touring module 304 requests secure provisioning from the cloud front end 306 320. The cloud front end 306 confirms the paid service for the touring 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をリクエストする。 Next, the touring module 304 uploads a VM My-Image that can be migrated to SVM to the cloud object store 308 982. The cloud object store 308 then sends the Image-ID 983 back to the touring module 304. The touring module 304 sends a command to the SM980 for the secure insertion 984 of the seed, metadata that will be indexed by the Image-ID. Those skilled in the art will recognize that the image could be preloaded, in which case the Image-ID would have been known. The touring module 304 requests that the zone orchestrator 310 create an instance of the Image-ID 324.

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

次いでゾーン・オーケストレータ310は、SM980がこのマシン(Machine-ind、プラットフォーム証明、およびストレージ・キー)をエンロールすること330をリクエストする。SM980は、カスタマ・モジュール302によるトラステッド・インフラストラクチャ350である。 The zone orchestrator 310 then requests the SM980 to enroll this machine (Machine-ind, platform certification, and storage key) 330. SM980 is a trusted infrastructure 350 with 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 having a TPM. If the verification fails, the activation will end. If the verification is successful, the SM980 returns a certifying execution (Machine-ind., Sealed data) 336 to the zone orchestrator 310.

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

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

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

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を返す。 The SM980 validates the platform certificate and checks the storage key characteristics 460. SM HyperProtect980 creates a challenge and creates a binary blob called Credential that can only be due to the TPM validated at 460, creating credentials 462. The SM980 sends an activation of credentials to the target system 312 with a TPM 468. The target system 312 with TPM then returns the challenge response 470 to SM980 again. SM980 checks the challenge response 476. If the challenge response is incorrect, activation will be terminated and this process will return a failure indication. If the challenge response is correct, the SM980 utilizes the policy passed as metadata with the seed to generate sealed data 334. The SM980 returns to the zone orchestrator 310 a machine-in (sealed data) 336 that authenticates 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。 FIG. 10A shows an alternative security model of an embodiment of the invention in a cloud infrastructure that utilizes SM to provision TEE on AMD processors. In FIG. 9B, customer module 302 has its own trusted infrastructure 350 and uses cloud provider 361. Within the cloud provider, the customer is using the Security Module (SM) 980, which he has control over, and is trusted 350. The rest of the infrastructure of cloud provider 361 is untrusted. Customer module 302 sends a request to those trusted touring 304s to start SVM My-Image. The touring 304 requests secure provisioning from the cloud front end 306 320. Cloud front end 306 confirms paid service 322. Customer touring uploads his image, My-Image, to the cloud object store 982. The cloud object store 308 returns the image identifier, Image-ID of the stored image to the customer touring 304 383. Customer Touring 304 securely inserts a seed, also referred to as detailed or sensitive information, indexed by Image-ID into Security Module (SM) 980. This insertion may contain additional metadata to be associated with the Image-ID. Customer Touring 304 then requests that Zone Orchestrator 310 create an instance of Image-ID 324. The zone orchestrator 310 selects the target machine 312Mach-Ind 1065. The zone orchestrator 310 then requests that the security module 380 verify the target machine 312Mach-Ind 1063. The security module verifies the target machine 1025.

図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、セキュアなコンピューテーションが認証されている(復号キーが首尾よく挿入された)ため、これは成功する。 FIG. 10B shows a flow of target system validation (PEF) for TEE in an AMD processor for an alternative model utilizing SM of the embodiment of the invention in cloud infrastructure. FIG. 10B is given the details of the request for verification 1025 of the target machine of FIG. 10A. The 1063 request to validate the Mach-Ind is received from the Zone Orchestrator 310 by the Security Module (SM) 980. Since the target system 312 includes AMD's process for TEE, FIG. 10B is extended to include PSP1003 within the target system, which can be trusted 350 if certified. It is important to note that the PSP is a subordinate component of AMD's processor, extended in FIG. 10B to clarify the flow. Another important point is that the communication between SM and PSP is secure and cannot be forged in either direction. This description is an overview of the process. Details can be found in AMD's white papers and technical documentation available to anyone skilled in the art. The SM issues a request for verification request 1056 to the target system 312, where the request is passed to PSP1003 1058. In response to this request, PSP1003 generates signed data and returns it to processor 312 1092, which processor 312 returns it to SM980 1011. The SM980 extracts the certificate from the response and requests 1027, the AMD Certificate Authority 1054 for verification 1094. AMD Certificate Authority 1054 returns a verification response 1096. If the certificate is not validated, the activation (request to perform a secure VM within the TEE) ends. If the certificate is validated, SM980 requests the Zone Orchestrator 310 to load the VM image into the target system 1029. The zone orchestrator 310 sends the VM image associated with the Image-ID to the target system along with the load image request 1051. The target system 312 loads the VM image into the TEE (not shown). The SM980 issues a VM image Image-ID certification request to the target system 312 in 1057. Target system 312 issues a certification request to trusted PSP1003. PSP1003 generates a proof response and returns it to system 312 1059. The target system returns a proof response to SM980 in 1099. SM verifies the proof response to the hash of the VM 1055. If the verification fails, the activation will end. If the verification is successful, SM980 obtains the certificate (also known as the decryption key) and issues 1091 to insert the certificate into the target system 312. Target system passes 1097 to insert authentication into PSP1003. PSP1003 inserts authentication into TEE. This is successful because the SM980 has issued a system boot to the target system 312, 1093, and the secure computation has been authenticated (the decryption key has been successfully inserted).

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

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

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

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 connects peripheral devices such as random access memory (RAM) 1114, read-only memory (ROM) 1116, (disk unit 1121 and tape drive 1140) to bus 1112 via system bus 1112. (I / O) adapter 1118, user interface (for connecting keyboard 1124, mouse 1126, speaker 1128, microphone 1132, or other user interface device, or a combination thereof to bus 1112). Adapter 1122, communication adapter 1134 for connecting an information handling system to a data processing network, internet, intranet, personal area network (PAN), etc., and bus 1112 to display device 1138 or printer 1139 (eg, digital). It is interconnected to a display adapter 1136 for connecting to (such as a printer) or both.

上記したハードウェア/ソフトウェア環境に加えて、本発明の異なる態様は、上記の方法を実行するためのコンピュータ実装方法を含む。例として、この方法は、上で検討した特定の環境において実施され得る。 In addition to the hardware / software environment described above, different aspects of the invention include computer implementation methods for performing the methods described above. As an example, this method can be performed in the particular environment discussed above.

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

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

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

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

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

したがって本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。 Thus, the invention can be a system, method, 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 the processor to perform aspects of the invention.

コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、命令が記録されているパンチ・カードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の好適な組合せが含まれる。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの、一過性の信号そのものであると解釈されるべきではない。 The computer-readable storage medium can be a tangible device that can hold and store the instructions used by the instruction execution device. The computer-readable storage medium can be, for example, 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, but is not limited thereto. .. 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), erase. Possible Programmable Read-Only Memory (EPROM or Flash Memory), Static Random Access Memory (SRAM), Portable Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc (DVD), Memory Stick, Includes mechanically encoded devices such as floppy disks, punch cards on which instructions are recorded or raised structures in grooves, and any suitable combination of the above. Computer-readable storage media as used herein are radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (eg, optical pulses through fiber optic cables), or wiring. It should not be construed as a transient signal itself, such as an electrical signal transmitted via.

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

本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードのいずれか、であり得る。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、または専ら遠隔のコンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、遠隔のコンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよく、または、外部のコンピュータへの接続を(例えば、インターネット・サービス・プロバイダを利用してインターネットを介して)行ってもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。 The computer-readable program instructions for performing the operations of the present invention are assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcodes, firmware instructions, state setting data, or Smalltalk (registration). Sources written in any combination of programming languages, including object-oriented programming languages such as C ++, and traditional procedural programming languages such as the "C" programming language or similar programming languages. It can be either code or object code. Computer-readable program instructions are exclusively on the user's computer, partly on the user's computer as a stand-alone software package, partly on the user's computer and partly on a remote computer, or exclusively. It can be run 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 wide area network (WAN), or externally. You may make a connection to your computer (eg, over 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) are computer readable to perform aspects of the invention. By using the state information of a program instruction, a computer-readable program instruction can be executed to personalize an electronic circuit.

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

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

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

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

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

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

コンピュータ・システム/サーバ1412は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ1412は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体内に配置することができる。 The computer system / server 1412 can be described in the general context of computer system executable instructions executed by the computer system, such as program modules. In general, a program module can include routines, programs, objects, components, logic, data structures, etc. that perform a particular task or implement a particular abstract data type. The computer system / server 1412 may be performed in a distributed cloud computing environment in which tasks are performed by remote processing devices linked over a communication network. In a distributed cloud computing environment, program modules can be located within 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, the computer system / server 1412 in the cloud computing node 1400 is shown in the form of a general purpose computing device. A component of a computer system / server 1412 may include one or more processors or processing units 1416, a system memory 1428, and a bus 1418 connecting various system components including system memory 1428 to processor 1416. However, it is not limited to these.

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

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

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

1組の(少なくとも1つの)プログラム・モジュール1442を有するプログラム/ユーティリティ1440は、限定ではなく例としてメモリ1428に格納され得るが、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データにも記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの何らかの組合せは、ネットワーキング環境の実装を含み得る。プログラム・モジュール1442は一般に、本明細書に記載するような本発明の実施形態の機能または方法論あるいはその組合せを実行する。 A program / utility 1440 with a set (at least one) program module 1442 may be stored in memory 1428 as an example, but not limited to, an operating system, one or more application programs, and other programs. It can also be stored in modules and program data. The operating system, one or more application programs, other program modules, and each of the program data, or any combination thereof, may include an implementation of a networking environment. The program module 1442 generally implements the functions or methodologies or combinations thereof of embodiments of the 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 be one or more external devices 1414 such as keyboards, pointing devices, displays 1424, etc., one or more devices that allow interaction between the user and the computer system / server 1412. Alternatively, it may communicate with any device (eg, network card, modem, etc.) that allows communication between the computer system / server 1412 and one or more other computing devices, or a combination thereof. Such communication can be performed via the input / output (I / O) interface 1422. Furthermore, the computer system / server 1412 may be a local area network (LAN), a general wide area network (WAN), or a public network (eg, the Internet), or a public network thereof (eg, the Internet), via a network adapter 1420. It may communicate with one or more networks, such as a combination. As depicted, the network adapter 1420 communicates with other components of the computer system / server 1412 via bus 1418. Although not shown, it should be understood that other hardware and / or software components may be used in combination with the computer system / server 1412. Examples include, but are not limited to, microcodes, 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は、任意のタイプのネットワークまたは(例えばウェブ・ブラウザを使用した)ネットワーク・アドレス指定可能な接続あるいはその両方を介して、任意のタイプのコンピュータ化されたデバイスと通信できることが、理解される。 Here, with reference 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, which can be used by local computing devices used by cloud users, such as, for example. A mobile information terminal (PDA) or a mobile phone 1554A, a desktop computer 1554B, a laptop computer 1554C, or an automobile computer system 1554N, or a combination thereof, can perform communication. Nodes 1400 may communicate with each other. These may be physically or virtually grouped in one or more networks, such as a private, community, public, or hybrid cloud, or a combination thereof, as described herein above. (Not shown). This allows the cloud computing environment 1550 to provide infrastructure, platforms, software, or a combination thereof, as a service that allows cloud users to maintain resources on their local computing devices. Will be possible. The computing device types 1554A-1554N shown in FIG. 14 are intended to be merely exemplary, and the computing node 1400 and cloud computing environment 1550 are any type of network or ( It is understood that it is possible to communicate with any type of computerized device via a network addressable connection (eg using a web browser) or both.

ここで図15を参照すると、クラウド・コンピューティング環境1550(図14)が提供する1組の機能抽象化層が示されている。図15に示すコンポーネント、層、および機能は、単に例示となることを意図しており、本発明の実施形態はこれらに限定されないことが、予め理解されるべきである。描かれているように、以下の層および対応する機能が提供される。 Here, with reference to FIG. 15, a set of functional abstraction layers provided by the cloud computing environment 1550 (FIG. 14) is shown. It should be understood in advance that the components, layers, and functions shown in FIG. 15 are intended to be merely exemplary, and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding features 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 are mainframes, for example IBM zSeries systems, RISC (Reduced Instruction Set Computer) architecture-based servers, for example IBM pSeries systems, IBM xSeries® systems, etc. Included are IBM Hardware Center® systems, storage devices, network and networking components. Examples of software components include network application server software, IBM WebSphere® application server software and database software, and IBM DB2 database software, for example. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions around the world).

仮想化層1620は、以下の仮想エンティティの例を提供し得る抽象化層を提供する:仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアント。 Virtualization layer 1620 provides an abstraction layer that may 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, management layer 1630 may provide the functions described below. Resource provisioning provides dynamic procurement of computing resources and other resources used to perform tasks within a cloud computing environment. Metering and pricing track the cost of resources being used in a cloud computing environment and bill or invoice for the consumption of these resources. In one example, these resources may include application software licenses. Security provides the verification of identity information about cloud users and tasks, as well as the protection of data and other resources. The user portal provides users and system administrators with access to the cloud computing environment. Service level management provides the allocation and management of cloud computing resources to meet the required service level. Service level agreement (SLA) planning and implementation provides pre-adjustment and procurement of cloud computing resources that are expected to be needed by SLA in the future.

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

関連出願の相互参照
本願は、各々が2020年12月22日に出願された同時係属中の米国特許出願第17/130,238号、IBM整理番号第P202005407US01の関連出願であり、その内容の全体が参照によって本明細書に組み込まれる。
Cross-reference to related applications This application is a related application of US Patent Application Nos. 17 / 130,238, IBM Reference No. P202005407US01, each of which was filed on December 22, 2020, and is in its entirety. Is incorporated herein by reference.

本発明の多くの特徴および利点が詳細な説明から明らかであり、したがって、付属の特許請求の範囲では、本発明の真の思想および範囲内にある本発明の全てのそのような特徴および利点を包含することが意図されている。更に、当業者には多数の修正形態および変形形態が容易に想到されるので、本発明を図示され記載されている厳密な構造および動作に限定することは望まれておらず、したがって、本発明の範囲内にあるあらゆる適切な修正形態および等価物が利用され得る。 Many features and advantages of the invention are evident from the detailed description, and therefore, within the scope of the appended claims, all such features and advantages of the invention within the true ideas and scope of the invention. Intended to be included. Moreover, it is not desired to limit the invention to the exact structures and operations illustrated and described, as many modifications and variations are readily conceivable to those of skill in the art, and therefore the invention. Any suitable modifications and equivalents within the scope of can be utilized.

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

したがって、本開示が基礎とする構想が、本発明のいくつかの目的を実行するための他の構造、方法、およびシステムの設計のための基礎として容易に利用され得ることを、当業者は諒解するであろう。したがって、特許請求の範囲は、かかる等価な構造が本発明の思想および範囲から逸脱しない限りこれらを含むと見なされる、ということが重要である。 Accordingly, one of ordinary skill in the art will appreciate that the concepts on which the present disclosure is based can be readily utilized as the basis for the design of other structures, methods, and systems for carrying out some of the objects of the invention. Will do. Therefore, it is important that the claims are considered to include such equivalent structures as long as they do not deviate from the ideas and scope of the invention.

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 Certification Function 130 Software Section, Software 200 System 300 System 301 System, Trusted Hardware 302 Customer, Customer Module 304 Touring Module, Tooling 306 Cloud Front End 308 Cloud 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 678 Secret 689 Payload, payload area 691 ESM operand 772 Immutable code 774 SB validation code 777 Variable boot loader 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 Machine Set 870 Cloud Infrastructure 980 SM, Security Module, SM Hyper Protect
983 Image-ID
1003 PSP
1054 AMD Certificate 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 Retention Storage Medium 1210 Flash Memory 1220 Optical Storage Discet 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 Program / Utility 1442 Program Module 1550 Cloud Computing Environment 1554A Mobile Information Terminal (PDA) or Mobile 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 (20)

コンピューテーションを標的トラステッド実行環境(TEE)において実行されるように生成するための方法であって、
前記標的TEEを選択することと、
TEEが満足する認証を生成することと、
前記認証を、認証される前記TEE内で実行される前記コンピューテーションと関連付けることと、
前記関連付けられた認証を用いて前記コンピューテーションを生成することと、を含む、方法。
A method for generating a computation to run in a targeted trusted execution environment (TEE).
Selecting the target TEE and
To generate a certificate that TEE is happy with,
To associate the certification with the computation running within the TEE to be authenticated.
A method comprising generating the computation with the associated authentication.
有効である前記TEEに関する前記認証に組み込まれる属性を選択することを更に含む、
請求項1に記載の方法。
Further comprising selecting an attribute to be incorporated into the certification for the TEE that is valid.
The method according to claim 1.
前記認証を前記生成することはセキュリティ・モジュール(SM)を利用する、請求項1または2に記載の方法。 The method of claim 1 or 2, wherein the generation of the certification utilizes a security module (SM). 前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含む、請求項1から3のいずれか一項に記載の方法。 The method of any one of claims 1 to 3, wherein associating the authentication with the computation comprises dynamically inserting information into the computation. 顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含む、請求項3に記載の方法。 The method of claim 3, wherein the customer securely inserts the secret into the SM, the secret comprising metadata indicating which secure computation the secret is associated with. 前記顧客は前記SMの制御能力を有する、
請求項5に記載の方法。
The customer has the control capability of the SM.
The method according to claim 5.
前記SMは前記標的TEEに前記認証を挿入する、
請求項3に記載の方法。
The SM inserts the authentication into the target TEE,
The method according to claim 3.
前記TEEはクラウドまたはローカル・インフラストラクチャ内にある、請求項1から7のいずれか一項に記載の方法。 The method of any one of claims 1-7, wherein the TEE is in the cloud or local infrastructure. 前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用される、請求項8に記載の方法。 The method of claim 8, wherein the SM is used as part of the cloud or local infrastructure. クラウド・インフラストラクチャについての詳細情報または前記TEEについての詳細情報はセキュリティ・モジュールだけに開示される、請求項1から9のいずれか一項に記載の方法。 The method according to any one of claims 1 to 9, wherein the detailed information about the cloud infrastructure or the detailed information about the TEE is disclosed only to the security module. SMは、選択される前記標的TEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されない、請求項1から10のいずれか一項に記載の方法。 13. the method of. 前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含む、請求項1から11のいずれか一項に記載の方法。 At least a portion of the computation is encrypted, and encrypting a portion of the computation comprises encrypting the information necessary to check the integrity of the computation. Item 10. The method according to any one of Items 1 to 11. 前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約する、請求項1から12のいずれか一項に記載の方法。 The method of any one of claims 1-12, wherein the authentication constrains the computation to a particular TEE among a plurality of TEEs. 生成される前記コンピューテーションをプロビジョニングすること
を更に含む、請求項1から13のいずれか一項に記載の方法。
The method of any one of claims 1-13, further comprising provisioning the generated computation.
システムであって、
コンピュータ命令を記憶するメモリと、
前記コンピュータ命令を、
標的トラステッド実行環境(TEE)を選択し、
TEEが満足する認証を生成し、
前記認証を、認証される前記TEE内で実行されるコンピューテーションと関連付け、
前記関連付けられた認証を用いてコンピューテーションを生成するよう実行するように構成されている、プロセッサと
を備える、システム。
It ’s a system,
Memory for storing computer instructions and
The computer instruction,
Select the Target Trusted Execution Environment (TEE) and select
Generates a certificate that TEE is happy with,
Associating the certification with the computation running within the TEE being authenticated,
A system comprising a processor that is configured to perform to generate a computation using the associated authentication.
有効である前記TEEに関する前記認証に組み込まれる属性を選択することを更に含み、
前記認証を前記生成することはセキュリティ・モジュール(SM)を利用し、
前記認証を前記コンピューテーションと関連付けることは、前記コンピューテーションに情報を動的に挿入することを含み、
顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
前記顧客は前記SMの制御能力を有し、
前記セキュリティ・モジュールは前記標的TEEに前記認証を挿入する、
請求項15に記載のシステム。
It further comprises selecting the attributes to be incorporated into the certification for the TEE that are valid.
The generation of the certification utilizes a security module (SM) and
Associating the authentication with the Computation involves dynamically inserting information into the Computation.
The customer securely inserts the secret into the SM, which contains metadata indicating which secure computation the secret is associated with.
The customer has the control capability of the SM and
The security module inserts the authentication into the target TEE.
The system according to claim 15.
前記TEEはクラウドまたはローカル・インフラストラクチャ内にあり、
前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用され、
前記選択されたTEEについての詳細情報は前記SMだけに開示され、
前記SMは、選択される前記標的TEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されず、
前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、
前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約し、
前記システムは更に、
生成される前記コンピューテーションをプロビジョニングすることを含む、請求項15または16に記載のシステム。
The TEE is in the cloud or local infrastructure and
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 authentications if the authentication was pre-generated for the selected target TEE, and the SM is not regenerated.
At least part of the computation is encrypted, and encrypting part of the computation involves encrypting the information needed to check the integrity of the computation.
The authentication constrains the computation to a particular TEE among a plurality of TEEs.
The system further
15. The system of claim 15 or 16, comprising provisioning said computing to be generated.
コンピュータに、
標的トラステッド実行環境(TEE)を選択する手順と、
TEEが満足する認証を生成する手順と、
前記認証を、認証される前記TEE内で実行されるコンピューテーションと関連付ける手順と、
前記関連付けられた認証を用いてコンピューテーションを生成する手順と、を実行させるためのコンピュータ・プログラム。
On the computer
Procedures for selecting the Target Trusted Execution Environment (TEE),
The procedure for generating a certificate that TEE is satisfied with, and
The procedure for associating the certification with the computation running within the TEE to be authenticated.
A computer program for performing a procedure for generating a computation using the associated authentication.
前記コンピュータに、
有効である前記TEEに関する前記認証に組み込まれる属性を選択する手順を更に実行させ、
前記認証を前記生成する手順はセキュリティ・モジュール(SM)を利用し、
前記認証を前記コンピューテーションと関連付ける手順は、前記コンピューテーションに情報を動的に挿入する手順を含み、
顧客は前記SMにシークレットをセキュアに挿入し、シークレットは、前記シークレットがどのセキュアなコンピューテーションと関連付けられるかを示すメタデータを含み、
前記顧客は前記SMの制御能力を有し、
前記SMは前記標的TEEに前記認証を挿入する、請求項18に記載のコンピュータ・プログラム。
To the computer
Further performing the procedure of selecting the attribute to be incorporated in the authentication for the TEE that is valid is performed.
The procedure for generating the certification utilizes a security module (SM).
The procedure for associating the authentication with the computation comprises dynamically inserting information into the computation.
The customer securely inserts the secret into the SM, which contains metadata indicating which secure computation the secret is associated with.
The customer has the control capability of the SM and
The computer program of claim 18, wherein the SM inserts the authentication into the target TEE.
前記TEEはクラウドまたはローカル・インフラストラクチャ内にあり、
前記クラウドまたはローカル・インフラストラクチャの一部としてSMが使用され、
前記選択されたTEEについての詳細情報はセキュリティ・モジュールだけに開示され、
前記SMは、選択されるTEEについて認証が予め生成されている場合に予め生成された認証のリストを記憶し、前記SMは生成し直されず、
前記コンピューテーションの少なくとも一部は暗号化され、前記コンピューテーションの一部を暗号化することは、前記コンピューテーションのインテグリティをチェックするために必要な情報を暗号化することを含み、
前記認証は前記コンピューテーションを複数のTEEの中の特定のTEEに制約し、
前記コンピュータに、
生成される前記コンピューテーションをプロビジョニングする手順を更に実行させる、請求項18または19に記載のコンピュータ・プログラム。
The TEE is in the cloud or local infrastructure and
SM is used as part of the cloud or local infrastructure,
Detailed information about the selected TEE is disclosed only to the security module.
The SM stores a list of pre-generated authentications if the authentication was pre-generated for the selected TEE, and the SM is not regenerated.
At least part of the computation is encrypted, and encrypting part of the computation involves encrypting the information needed to check the integrity of the computation.
The authentication constrains the computation to a particular TEE among a plurality of TEEs.
To the computer
The computer program of claim 18 or 19, further performing a procedure for provisioning the generated computation.
JP2021204428A 2020-12-22 2021-12-16 Method, system and computer program for generating computation so as to be executed in target trusted execution environment (tee) (provisioning secure/encrypted virtual machines in cloud infrastructure) Pending JP2022099293A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/130,269 US20220198070A1 (en) 2020-12-22 2020-12-22 Provisioning secure/encrypted virtual machines in a cloud infrastructure
US17/130,238 US20220198064A1 (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 2020-12-22

Publications (1)

Publication Number Publication Date
JP2022099293A true JP2022099293A (en) 2022-07-04

Family

ID=82262081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021204428A Pending JP2022099293A (en) 2020-12-22 2021-12-16 Method, system and computer program for generating computation so as to be executed in target trusted execution environment (tee) (provisioning secure/encrypted virtual machines in cloud infrastructure)

Country Status (1)

Country Link
JP (1) JP2022099293A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022118130A (en) * 2020-05-07 2022-08-12 株式会社三洋物産 game machine
JP2022118131A (en) * 2020-05-08 2022-08-12 株式会社三洋物産 game machine
JP2022118132A (en) * 2020-05-08 2022-08-12 株式会社三洋物産 game machine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022118130A (en) * 2020-05-07 2022-08-12 株式会社三洋物産 game machine
JP2022118131A (en) * 2020-05-08 2022-08-12 株式会社三洋物産 game machine
JP2022118132A (en) * 2020-05-08 2022-08-12 株式会社三洋物産 game machine

Similar Documents

Publication Publication Date Title
US8074262B2 (en) Method and apparatus for migrating virtual trusted platform modules
US9501665B2 (en) Method and apparatus for remotely provisioning software-based security coprocessors
KR100930218B1 (en) Method, apparatus and processing system for providing a software-based security coprocessor
US7571312B2 (en) Methods and apparatus for generating endorsement credentials for software-based security coprocessors
US7636442B2 (en) Method and apparatus for migrating software-based security coprocessors
JP7397557B2 (en) Secure Execution Guest Owner Environment Control
JP2022099293A (en) Method, system and computer program for generating computation so as to be executed in target trusted execution environment (tee) (provisioning secure/encrypted virtual machines in cloud infrastructure)
JP2014526101A (en) The origin of software runtime
KR102435719B1 (en) Security services hosted in a virtual secure environment
TW202038114A (en) Binding secure keys of secure guests to a hardware security module
JP7445358B2 (en) Secure Execution Guest Owner Control for Secure Interface Control
US20220198064A1 (en) Provisioning secure/encrypted virtual machines in a cloud infrastructure
JP2023535886A (en) Signature enforcement for software deployment configuration
KR20190128534A (en) Method for combining trusted execution environments for functional extension and method for applying fido u2f for supporting business process
US20220198070A1 (en) Provisioning secure/encrypted virtual machines in a cloud infrastructure
US11809568B2 (en) Hypervisor having local keystore
Sachdeva et al. SSM: Secure Storage Migration among Cloud Providers

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518