JP2019536363A - セキュアキー管理 - Google Patents

セキュアキー管理 Download PDF

Info

Publication number
JP2019536363A
JP2019536363A JP2019525807A JP2019525807A JP2019536363A JP 2019536363 A JP2019536363 A JP 2019536363A JP 2019525807 A JP2019525807 A JP 2019525807A JP 2019525807 A JP2019525807 A JP 2019525807A JP 2019536363 A JP2019536363 A JP 2019536363A
Authority
JP
Japan
Prior art keywords
enclave
management
tenant
key
application code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019525807A
Other languages
English (en)
Other versions
JP7179725B2 (ja
JP2019536363A5 (ja
Inventor
ラング,ジョナサン・イー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2019536363A publication Critical patent/JP2019536363A/ja
Publication of JP2019536363A5 publication Critical patent/JP2019536363A5/ja
Application granted granted Critical
Publication of JP7179725B2 publication Critical patent/JP7179725B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

保護されたマシン。マシンはエンクレーブを含む。エンクレーブは、1つまたは複数の管理エンクレーブがそのエンクレーブ中にキーを与えることができることを除いて、エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域を含む。マシンは、エンクレーブに結合された管理エンクレーブをさらに含む。管理エンクレーブは、エンクレーブにキーを与えるように構成される。管理エンクレーブは、管理エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域である。

Description

背景および関連技術
[0001]コンピューターおよびコンピューティングシステムは、現代の生活のほぼあらゆる側面に影響を及ぼしている。コンピューターは、一般に、仕事、レクリエーション、ヘルスケア、輸送、エンターテインメント、家政などに関与する。
[0002]さらに、ネットワーク接続を介して他のコンピューティングシステムに相互接続されるコンピューティングシステムの能力によって、コンピューティングシステム機能を向上させることができる。ネットワーク接続は、限定はしないが、ワイヤードもしくはワイヤレスイーサネット(登録商標)を介した接続、セルラー接続、さらには、直列、並列、USBを通したコンピューター間接続、または他の接続を含んでもよい。接続は、コンピューティングシステムが、他のコンピューティングシステムにおけるサービスにアクセスし、他のコンピューティングシステムからアプリケーションデータを迅速におよび効率的に受信することを可能にする。
[0003]コンピューティングシステムの相互接続は、いわゆる「クラウド」コンピューティングシステムなど、分散コンピューティングシステムを容易にしている。本明細書では、「クラウドコンピューティング」は、低減された管理労力またはサービスプロバイダー対話でプロビジョニングし、リリースすることができる構成可能なコンピューティングリソース(たとえば、ネットワーク、サーバー、ストレージ、アプリケーション、サービスなど)の共有プールへの、ユビキタスで、便利で、オンデマンドのネットワークアクセスを可能にするためのシステムまたはリソースでもよい。様々な特性(たとえば、オンデマンドセルフサービス、広域ネットワークアクセス(broad network access)、リソースプーリング、迅速な弾力性(rapid elasticity)、測定されるサービス(measured service)など)、サービスモデル(たとえば、サービスとしてのソフトウェア(「SaaS:Software as a Service」)、サービスとしてのプラットフォーム(「PaaS:Platform as a Service」)、サービスとしてのインフラストラクチャ(「IaaS:Infrastructure as a Service」)、および展開モデル(たとえば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなど)からクラウドモデルを構成することができる。
[0004]クラウドコンピューティングシステムには、クラウドサービスプロバイダーおよびテナント顧客がある。テナント顧客は、クラウドコンピューティングシステムリソースを使用することを望むが、これらの顧客は、概して、クラウドサービスプロバイダーにおける個人、たとえば、クラウドサービスプロバイダー従業員またはクラウドサービスプロバイダーリソースへの物理的アクセスを有する他者が顧客のデータへのアクセスを有することを望まない。したがって、テナント顧客は、第三者が、実際にデータを閲覧することが可能でない状態でデータを管理することを望む。
[0005]本明細書で請求される主題は、欠点を解決する実施形態、または上記で説明された環境などの環境においてのみ動作する実施形態に限定されない。むしろ、この背景は、本明細書で説明されるいくつかの実施形態を実施してもよい1つの例示的な技術分野を示すために与えられるにすぎない。
[0006]本明細書に示される一実施形態は、マシンを含む。マシンはエンクレーブを含む。エンクレーブは、1つまたは複数の管理エンクレーブがそのエンクレーブ中にキーを与えることができることを除いて、エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域を含む。マシンは、エンクレーブに結合された管理エンクレーブをさらに含む。管理エンクレーブは、エンクレーブにキーを与えるように構成される。管理エンクレーブは、管理エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域である。
[0007]本発明の概要は、発明を実施するための形態において以下でさらに説明される概念の選択を簡略化された形で紹介するために与えられる。本発明の概要は、請求される主題の主要な特徴または本質的な特徴を識別するものではなく、請求される主題の範囲を決定する際の補助として使用されるものでもない。
[0008]追加の特徴および利点は、以下の説明に記載され、一部はその説明から明らかであり、または、本明細書の教示の実施によって学習することができる。本発明の特徴および利点は、添付の特許請求の範囲で詳細に指摘される器具および組合せによって実現し、取得することができる。本発明の特徴は、以下の説明および添付の特許請求の範囲からより十分に明らかになるか、または、以下に記載するように本発明の実施によって学習することができる。
[0009]上記で具陳された利点および特徴ならびに他の利点および特徴を取得することができる様式について説明するために、添付の図面に示されている特定の実施形態を参照することによって、上記で手短に説明された主題のより詳細な説明が与えられる。これらの図面が、一般的な実施形態を示すにすぎず、したがって、範囲を限定するものと見なされるべきではないことを理解して、実施形態は、添付の図面の使用によって追加の特異性および詳細とともに説明および解説される。
[0010]管理エンクレーブとエンクレーブとを含むマシン、および構成証明の証明書(attestation certificate)を示す図である。 [0011]計算ファブリック(compute fabric)とキーファブリック(key fabric)とを含むクラウドシステムを示す図である。 [0012]クラウドシステム上のテナントをセキュアに管理する方法を示す図である。
[0013]本明細書に示される実施形態は、ハードウェアベースのキー保護システム、およびクラウドコンピューティングシステム中の仮想マシン(VM)のハードウェアベースの保護のための機能を含む。特に、いくつかの現代のプロセッサは、選択されたコードおよびデータを開示または修正から保護するために使用することができる、ハードウェア命令およびアーキテクチャコンポーネントを含む。アプリケーションは、セキュリティを高める、CPU強化「エンクレーブ」または保護された実行領域に区分することができる。特に、本明細書で使用されるエンクレーブは、エンクレーブ自体中にないソフトウェアについてアクセスが防がれるアプリケーションのアドレス空間の保護された領域である。保護されたデータおよびコードはCPUレベルで保護されるので、危害を受けたプラットフォーム上でさえこのセキュリティを維持することができる。すなわち、CPUは、外部ソフトウェアがエンクレーブにアクセスするのを防ぐことができる。これらのエンクレーブは、セキュアテナントデータ暗号化キー転送と、テナントデータに基づいて動作するためのセキュア仮想マシンとを実装するために使用することができる。そのようなエンクレーブおよび保護されたコンピューティングの一例は、カリフォルニア州サンタクララのIntel Corporationから利用可能なIntel SGX(ソフトウェアガードエクステンション(Software Guard Extensions))において利用可能である。
[0014]図1はマシン100を示す。マシン100は、プログラミング命令を実行するように構成された物理ハードウェアデバイスである。たとえば、マシンは、中央処理装置(CPU)を含んでもよい。マシンはエンクレーブ102を含む。エンクレーブ102は、保護されたコードおよびデータを含む保護された実行領域である。エンクレーブ102は、エンクレーブ102が(CPUレベルで制限されるように)制限されたイングレス(ingress)およびエグレス(egress)を有するという点で保護される。特に、実行コードおよび/またはデータがエンクレーブ中に入れられると、外部エンティティは、実行コードおよび/またはデータを調べることができない。これは、プロセッサ状態とレジスタ状態の両方を含む。さらに、外部エンティティは、実行コードおよび/またはデータを修正することができない。データを外部レジスタ104中に入れることができ、エンクレーブ102中で実行しているコードがそれにアクセスすることができるが、エンクレーブ102は、必要とするとき、このコードにアクセスする。以下に示されているように、エンクレーブ102中に、キー108などのキーを管理エンクレーブ106が与えることができる場合を除いて、データをエンクレーブ102中に強制的に与えることはできない。
[0015]述べられたように、図1は管理エンクレーブ106を示す。管理エンクレーブは、管理エンクレーブが保護された実行領域であるという点で、エンクレーブ102と同様である。しかしながら、1つの差異は、エンクレーブ102中に、キー108などのキーを与える能力を管理エンクレーブ106が有することである。
[0016]エンクレーブ102からのエグレスが制限される間、エンクレーブ102が生成し、エンクレーブ102の外部に与えることができる1つのアイテムは、構成証明の証明書110である。構成証明の証明書110は、エンクレーブが、特定のプラットフォーム上で動作しており、エンクレーブ102自体に関する情報とともに特定の管理エンクレーブによって管理されることを認証するために使用される、検証可能な情報を含むことができる。
[0017]特に、エンクレーブ102によって生成された構成証明の証明書110は、プラットフォーム構成証明112を含む。プラットフォーム構成証明112は、エンクレーブ102が特定のプラットフォーム上で実装されていることの検証可能な証明(verifiable proof)を含む。これは、たとえば、特定のマシン100を含んでもよい。たとえば、マシン100は、特定のマシン100に固有である検証可能な証明を作成するために評価することができるシリアル番号または他の特性もしくはコンポーネントを含んでもよい。たとえば、プロセッサのシリアル番号および/またはマシン100の他の特性もしくはコンポーネントを使用して検証可能な証明を作成するために、ハッシュアルゴリズムを使用してもよい。たとえば、ハッシュアルゴリズムは、マシン100中の異なるコンポーネントのシリアル番号、マシン100中のコンポーネントのいくつかのモデル番号(または他の特性)のセット、またはマシン100の他の特性に対してハッシングしてもよい。
[0018]代替的に、これは、単に、マシン100が属するプラットフォームが概してエンクレーブサポートを有することの検証可能な証明でもよい。たとえば、マシン100がエンクレーブサポートを含むことの検証可能な証明を与えてもよい。
[0019]エンクレーブ102によって生成された構成証明の証明書110は、管理構成証明114を含む。管理構成証明114は、エンクレーブ102が管理エンクレーブ106によって管理されていることの、エンクレーブ102のフィンガープリントなどの検証可能な証明を含む。たとえば、エンクレーブ102を管理するために管理エンクレーブが使用されていることの検証可能な証明を作成するために、管理エンクレーブ中のコードを使用してもよい。たとえば、ハッシュアルゴリズムを管理エンクレーブ106のコードおよび/またはデータに適用して検証可能な証明を生成してもよく、検証可能な証明は、次いで、管理構成証明114において使用することができる。
[0020]エンクレーブ102によって生成された構成証明の証明書110は、エンクレーブ構成証明116を含む。エンクレーブ構成証明116は、エンクレーブについての検証可能な証明を含む。たとえば、エンクレーブ構成証明116は、エンクレーブ106中のコードおよび/またはデータのフィンガープリントを含んでもよい。
[0021]エンクレーブ102によって生成された構成証明の証明書110は、暗号化機能118を含む。暗号化機能118は、データを暗号化するために使用することができ、データは、次いで、レジスタ104に入れられる。たとえば、暗号化機能118は、ディフィーへルマン(Diffie−Hellman)キー交換など、公開キー交換方式のための公開キー交換の一部として使用することができる。このようにして、データをエンクレーブ102にセキュアに与えることができる。
[0022]これを基礎として、クラウドサービスのテナントのための仮想マシンを実装する際のこの特殊なプロセッサ機能の使用を示す、図2に注目する。特に、一般にクラウドサービス200の顧客テナントはセキュアインフラストラクチャを有さず、したがって、テナントは、クラウドサービスプロバイダーからリソースを購入し、クラウドサービスプロバイダーは、セキュアインフラストラクチャを与えることが可能である。クラウドサービス200では、計算リソース(たとえば、プロセッササイクル)などのクラウドリソース、メモリリソース、およびストレージリソースが、いくつかの異なるテナントの間で共有される。クラウドサービス200における物理マシンは、リソースをホストし、必要に応じて様々なテナントのためのリソースを与える。しかしながら、テナントはまた、クラウドサービスプロバイダーが、暗号化されていないテナントデータへのアクセスを有することを希望しない。したがって、特定のテナントは、そのテナントのデータに関連付けられたキー108を有し、キー108は、テナントのデータ120が他のテナントにまたはクラウドサービス200における個人に露出されないことを保証するセキュアなやり方で使用される。異なるマシン上のリソースが共有され、異なる時間に異なるテナントのために異なるマシンを使用することができるので、キー108は、異なるマシンの間で共有可能であり、クラウドサービス200によって保持される必要があり、クラウドサービス200がキー108についての値を知らないことの検証可能な証明が与えられる必要がある。
[0023]図示の例では、キー管理ファブリック124および計算ファブリック126を使用することによって、これを達成することができる。
[0024]キー管理ファブリック124は、いくつかのマシン110−2−1〜100−2−mを備え、いくつかのマシン110−2−1〜100−2−mは、クラウドサービス200におけるマシンから選択され、特定のテナントのためのキー108を管理するように構成される。このようにして、望まれるのと同数の冗長レベルでテナントのためのキーを冗長的に記憶することができる。
[0025]キー管理ファブリック124中の各マシンは、それぞれ、ローカルストレージ122−1〜122−mに結合される。
[0026]図2は計算ファブリック126を示す。計算ファブリックは、いくつかのマシン100−1−1〜100−1−nを備え、いくつかのマシン100−1−1〜100−1−nは、クラウドサービス200において利用可能なマシンから選択され、テナントのための仮想マシンを実装するように構成される。特に、テナントは、いくつかの仮想マシンがテナントのために動作することを希望する。エンクレーブ102−1−1〜102−1−nを使用してこれらの仮想マシンを実装することができる。特に、エンクレーブ102−1−1〜102−1−n中でVMコードを実装することができる。各エンクレーブのためのコードを、クラウドサービスプロバイダーによって与えることができ、または、テナントによってクラウドサービスプロバイダーに与えて、テナントのためのエンクレーブを実装することができる。いずれの場合も、テナントは、エンクレーブについてのフィンガープリントを有する各エンクレーブのためのエンクレーブ構成証明を含む、VMを動作させるエンクレーブによって生成された構成証明の証明書を検査することによって、VMを検証することができる。
[0027]マシン100−1−1〜100−1−nおよび100−2−1〜100−2−mが各々、それぞれ管理エンクレーブ106−1−1〜106−1−nおよび106−2−1〜106−2−mを有することに留意されたい。いくつかの実施形態では、管理エンクレーブ106−1−1〜106−1−nおよび106−2−1〜106−2−mはすべて、それらの中で実行している同じ実行可能コードを有する。したがって、テナントのためのマシン上のエンクレーブは、キーファブリック124中にあるのか計算ファブリック126中にあるのかにかかわらず、すべて、図1に示されているものなど、同じ管理構成証明をもつ構成証明の証明書を生成する。これは、管理エンクレーブ106−1−1〜106−1−nおよび106−2−1〜106−2−mの各々が、セキュアなやり方で互いと通信し、管理構成証明を生成することができない管理エンクレーブとの通信を拒否することを可能にする。この機能を使用して、特定のテナントのためのセキュアキー作成および管理を達成することができる。
[0028]とはいえ、以下でより詳細に説明されるように、管理エンクレーブを検証するために他のモダリティーを使用することができることに留意されたい。たとえば、代替実施形態では、同じフィンガープリントを共有しない2つの管理エンクレーブは、依然として、互いを信頼できると認識することができる。エンクレーブは、複雑で柔軟なポリシーを実装することができる。したがって、たとえば、管理エンクレーブ106−1−1〜106−1−nは、異なり、管理エンクレーブ106−2−1〜106−2−mとは異なるフィンガープリントを有してもよいが、依然として、信頼性分析に基づいて互いと通信することが可能である場合がある。同様に、管理エンクレーブ106−1−1〜106−1−nのうちの1つまたは複数は、互いとは異なるが、依然として、信頼性分析に基づいて互いと通信することが可能である場合がある。同様に、管理エンクレーブ106−2−1〜106−2−mのうちの1つまたは複数は、互いとは異なるが、依然として、信頼性分析に基づいて互いと通信することが可能である場合がある。
[0029]たとえば、いくつかの実施形態では、管理エンクレーブは、別の管理エンクレーブが同じコードの異なるバージョンを実行していると決定することが可能である場合がある。たとえば、コード作成者、署名局(signing authority)に関係する情報を検証するために構成証明の証明書(たとえば、構成証明の証明書110)のエンクレーブ構成証明(たとえば、エンクレーブ構成証明116)を検査することによって、または他のやり方で、これを達成することができる。たとえば、エンクレーブ構成証明は、署名局の指示、コードの機能が何であるかの署名局宣言(signing authority declaration)の指示、およびコードの署名局宣言バージョンの指示の3つすべてを使用して作成されたインジケーターを含んでもよい。受信管理エンクレーブは、これらの3つのインジケーターを検証するための機能を含んでもよい。
[0030]したがって、管理エンクレーブは、管理エンクレーブコード中に組み込まれた一致機能(matching functionality)を有してもよい。この一致機能は、エンクレーブ構成証明における完全な一致を必要とするように構成することができるか、または、承認された変更を可能にすることができる。
[0031]たとえば、以下のシナリオを考慮する。第1のシナリオでは、管理エンクレーブ106−2−1が構成証明の証明書110−1を生成する。構成証明の証明書110−1は、エンクレーブ構成証明116−1を含む。エンクレーブ構成証明116−1は、管理エンクレーブ106−2−1に関する情報を含む。たとえば、示されている本シナリオでは、管理エンクレーブ106−2−1は、管理エンクレーブ106−2−1を実装するコードのハッシュを計算するための機能を含んでもよい。この例では、管理エンクレーブは、他の管理エンクレーブを信頼するために、一致するコードを必要とする。したがって、管理エンクレーブ106−1−1が構成証明の証明書110−1を受信した場合、管理エンクレーブ106−1−1は、管理エンクレーブ106−1−1が、それ自体の管理エンクレーブコードをハッシングすることによってエンクレーブ構成証明116−1を生成することができる場合のみ、管理エンクレーブ106−2−1を信頼する。
[0032]代替実施形態では、管理エンクレーブは、他の管理エンクレーブがまったく同じコードを実行していないときでも、それらの他の管理エンクレーブを信頼することができると決定することが可能である場合がある。たとえば、管理エンクレーブ106−2−1は、構成証明の証明書110−1を生成する場合があり、構成証明の証明書110−1は、管理エンクレーブ106−2−1中で実行している管理エンクレーブコードの作成者の検証可能な証明と、管理エンクレーブ106−2−1中で実行しているエンクレーブコードの目的の検証可能な証明と、管理エンクレーブ106−2−1中で実行している管理エンクレーブコードのバージョンの検証可能な証明とに基づくエンクレーブ構成証明116−1を含む。管理エンクレーブ106−1−1を含む、管理エンクレーブの各々は、構成証明の証明書110−1を受信し、エンクレーブ構成証明116−1を検証するための機能を含んでもよい。
[0033]以下は、いくつかの実施形態において検証がどのように機能するかの様々な例を示す。構成証明の証明書は、エンクレーブを一意に識別することができる情報を含んでいる。これは、作成されたときにエンクレーブ中にロードされたコードおよびデータのすべてのデジタルフィンガープリントを含み、随意に、何らかの信用局(trusted authority)によって署名された識別情報をも含むことができる。最も単純な場合には、管理エンクレーブが以下のような事を行うことによって、(たとえば2つの管理エンクレーブ間の)検証を実施することができる。
[0034]1)他方の管理エンクレーブに構成証明報告を送るように依頼する。
[0035]2)他方の管理エンクレーブからの構成証明報告が信頼できる構成証明報告であることを示すために、その構成証明報告がリモートシステムによって正しく署名されることを検証する。
[0036]3)CPUにそれ自体のための構成証明報告を準備するように依頼する(その構成証明報告はCPUから直接来たので信頼できる)。
[0037]4)自己構成証明(self−attestation)中に存在する識別情報をリモート構成証明中に存在する識別情報と比較する。それらの識別情報が一致する場合、管理エンクレーブは、それ自体の別のコピーと通信しており、したがって、それを信頼することができる。
[0038]異なるバージョンの管理エンクレーブによって使用されるか、またはエンクレーブと管理エンクレーブとの間で使用される代替バージョンは、ステップ3〜4の代わりに、リモート構成証明中の識別情報と、どのアイデンティティが信頼できるエンクレーブを表すかを決定するために使用されるポリシー情報との比較を行うことである。
[0039]キー108をキーファブリック124に冗長的に記憶することができる。キーファブリック124は、いくつかの異なるやり方でキー108を取得することができる。たとえば、いくつかの実施形態では、テナントは、管理エンクレーブ106−2−1など、管理エンクレーブのうちの1つにキー108を与えてもよい。代替的に、管理エンクレーブは、マシンからキー108を取得するための機能を含んでもよい。したがって、たとえば、管理エンクレーブ106−2−1は、マシン100−2−1におけるCPUが適切なアルゴリズムを使用して適切なキーを計算することを要求してもよい。
[0040]キー108を冗長的に記憶するために、管理エンクレーブ106は互いとキーを共有することが可能であるが、関連付けられたエンクレーブがテナントのデータを解読することができるように、管理エンクレーブ106がそれらの関連付けられたエンクレーブ中でキー108を与えることができることを除いて、他の危害を受けた管理エンクレーブ、または、いくつかの実施形態では、同じコード(またはコードの承認されたおよび検証可能なバージョン、たとえば、管理エンクレーブコードの異なるバージョン)を実行していない他の管理エンクレーブを含む、他のエンティティとキーを共有しない。上述のように、管理エンクレーブ106−2−1は、マシン100−2−1におけるCPUが何らかの適切なアルゴリズムを使用して適切なキーを計算することを要求してもよい。その導出のルートが、管理エンクレーブによって他のエンクレーブに後で与えられるキーである。したがって、管理エンクレーブは、CPUがキー導出のために使用するロケーション中にキーを与える。代替実施形態では、管理エンクレーブは、キーを与えるために、別のマシンにおける特殊レジスタ中にキーを入れる。
[0041]管理エンクレーブは、いくつかの実施形態では、同じ管理エンクレーブコード、または上記で説明されたものなどの他の承認されたコードを管理エンクレーブが実行していると決定することなどによって、別の管理エンクレーブが信頼されると管理エンクレーブが決定することができない限り、別の管理エンクレーブにキー108を与えない。管理構成証明が一致すると決定するために管理エンクレーブの構成証明の証明書を検査することによって、これを達成することができる。したがって、この例では、管理エンクレーブは、別の管理エンクレーブが同じフィンガープリント、または承認されたフィンガープリントを有すると決定することができ、したがって、他の管理エンクレーブと通信することは安全である。
[0042]管理エンクレーブ106−2−1〜106−2−mの各々は、特定のマシンに固有のマシンキーを使用して管理キーを暗号化し、その特定のマシン上で、管理エンクレーブは、それぞれ、暗号化されたキー108−1〜108−mを作成し、暗号化されたキー108−1〜108−mを、それらのそれぞれのマシンに関連付けられたストレージ122−1〜122−mに記憶するために動作している。管理エンクレーブ106−2−1〜106−2−mの各々は、暗号化されたテナントキーを、各々のそれぞれのマシン上で、ローカルにおよび排他的にストレージに記憶するように構成される。すなわち、キー管理ファブリック中で動作する管理エンクレーブは、顧客キーを、暗号化された形態でそれらのローカルストレージに、それらのローカルストレージのみに記憶する能力を有する。
[0043]仮想マシンをスピンアップする(spin up)ために、計算ファブリック126中のマシンが、管理エンクレーブ106およびエンクレーブ102をスピンアップする。たとえば、図2に示されている例では、マシン100−1−1が、管理エンクレーブ106−1−1およびエンクレーブ102−1−1をスピンアップする。管理エンクレーブ106−1−1は、キーファブリック124中の管理エンクレーブ106−2−1〜106−2−mと同じコードを実行する。したがって、管理エンクレーブ106−1−1は、構成証明の証明書を使用して、管理エンクレーブ106−2−1〜106−2−mとセキュアに通信することができる。これは、キーファブリック124中の管理エンクレーブが、暗号化されたテナントキーをストレージから取り出し、暗号化されたキーを解読し、計算ファブリック中の管理エンクレーブにキー108を与えることを可能にする。たとえば、管理エンクレーブ106−2−1は、暗号化されたキー108−1をストレージ122−1から取り出してもよい。管理エンクレーブ106−2−1は、キー108を取得するために、マシン100−2−1のためのマシンキーを使用して、暗号化されたキー108−1を解読することができる。次いで、管理エンクレーブ106−1−1にキー108を与えることができる。
[0044]マシン100−1−1において、管理エンクレーブ106−1−1は、エンクレーブ102−1−1中にキー108を与えることができる。次いで、エンクレーブ102−1−1は、ストレージ120からテナントについてのデータを取得し、キー108を使用してデータを解読することができる。一実施形態では、CPUによって定義されたエンクレーブアーキテクチャは、管理エンクレーブのみに利用可能な特権命令を提供してもよく、特権命令は、管理エンクレーブがエンクレーブのアドレス空間中に直接キーを送出することを許可する。別の実施形態では、管理エンクレーブとエンクレーブとは、相互認証を使用して(構成証明を介して)セキュア接続を確立することができ、管理エンクレーブは、セキュア接続を介してキーを送出することができる。
[0045]テナントのエンクレーブ中でのキー可搬性を希望するテナントは、クラウドサービス200がテナントの代わりにキー管理を行うことを信頼しなければならないか、または、テナント自体のキー管理システムを供給しなければならないかのいずれかである。いずれのモデルも、クラウドサービスがキーを秘密にしておくことを顧客が信頼する必要なしに実装することができ、これは、ハードウェアが顧客のためにそれを行うからである。したがって、要約すれば、設計は以下の通りでもよい。
[0046]設計はキー管理ファブリックを含み、キー管理ファブリックは、(クラウドプロバイダーが書き込むことができるかまたは顧客が供給することができる)顧客ごとのキー管理エンクレーブをホストするサーバーのセットを含む。各サーバーは、その顧客のためのマスターキーを記憶する、顧客ごとの(移行不可能な)管理エンクレーブを実行することが可能である。
[0047]2.新しい顧客マスターキーが望まれるとき、キー管理ファブリックは、各キー管理サーバー上で顧客の管理エンクレーブのインスタンスを開始する。1つのインスタンスが新しいランダムキーを生成し、次いで、(各エンドポイントがその顧客のための正しい管理エンクレーブであることを検証するためにエンクレーブ構成証明を使用して)新しいランダムキーをすべての他のインスタンスに分配する。次に、顧客のマスターキーが十分に複製される。
[0048]3.各管理エンクレーブは、マスターキーを封印するためのCPU導出暗号化キーを取得する。この封印キーは、エンクレーブアーキテクチャによって生成され、マシン固有秘密と管理エンクレーブの暗号学的ハッシュとを含む。次に、各マスターキーは、ハードウェア保護されたキーを使用して各キー管理サーバー上に残存される。
[0049]4.顧客ワークロードエンクレーブがマスターキーを必要とするとき、顧客ワークロードエンクレーブは、顧客固有管理エンクレーブのインスタンスへの接続を取得するためにキー管理ファブリックに接触する。顧客ワークロードエンクレーブは、そのエンクレーブへのセキュア接続を確立し、それが正しい管理エンクレーブからキーを取得していることを検証するために構成証明を使用し、次いで、キーを取得する。
[0050]そのようなシステムは、以下の性質のうちの1つまたは複数を有してもよい。
[0051]A.各マスターキーは(CPUのエンクレーブキー保護によって)正確なキー管理コードに特有の暗号化キーで封印されるので、クラウドデータセンターが、マスターキーを開示することを強要されることは不可能である。開示を許可するために管理エンクレーブを修正しようとする試みは、封印キーの変更を生じ、したがって、マスターキーが成功裡に解読されることを防ぐ。さらに、マスターキーを管理エンクレーブの開示可能(disclosure−capable)バージョンに明かすようにそのエンクレーブの開示抵抗性(disclosure−resistant)バージョンを説得しようとする試みは、(各管理エンクレーブは、マスターキーを、開示抵抗性であることがわかっている管理エンクレーブのバージョンのみに明かすので)構成証明によって防がれる。
[0052]B.各顧客ワークロードは、それのキーが管理エンクレーブの特定の開示抵抗性バージョンによって与えられていることの構成証明を行うことができるので、管理エンクレーブがマスターキーの開示を許可しないことを検証することができる。疑い深い顧客は、管理エンクレーブ自体を供給することによってこの保証を取得することができる。
[0053]C.キー利用可能性を保証するためにキー管理ファブリックが十分な複製を与えるので、マスターキーは災害から保護される。
[0054]次に、以下の説明は、実施することができるいくつかの方法および方法の行為に言及する。方法の行為をある順序で説明するか、または特定の順序で行われるものとしてフローチャートで示す場合があるが、特に明記されていない限り、特定の順序付けは必要とされず、または、行為は、その行為が実施されるより前に別の行為が完了することに依存するので、特定の順序付けは必要とされない。
[0055]次に図3を参照すると、方法300が示されている。方法300は、クラウドシステム上のテナントをセキュアに管理するための行為を含む。方法は、テナントキーを取得すること(行為302)を含む。たとえば、方法300では、クラウドサービスのテナントからテナントキーを取得してもよい。代替または追加として、クラウドサービスにおいてテナントキーを生成し、それを管理エンクレーブが取得してもよい。代替または追加として、特定の管理エンクレーブが別の管理エンクレーブからテナントキーを取得してもよい。以下でより詳細に説明されるように、管理エンクレーブが同じアプリケーションコードを実行することによって、これを可能にすることができる。同じアプリケーションコードが同じアプリケーションコードの異なるバージョンを含んでもよいことに留意されたい。すなわち、ある管理エンクレーブはアプリケーションコードのあるバージョンを実行していてもよく、異なる管理エンクレーブは同じアプリケーションコードの異なるバージョンを実行している。しかしながら、管理エンクレーブは、それにもかかわらず、(同じバージョンであるのか異なるバージョンであるのかにかかわらず)アプリケーションコードを検証することによって互いにテナントキーを受け渡すことが可能である場合がある。
[0056]方法300は、クラウドサービスにおける計算ファブリック中のマシン上の管理エンクレーブにおいて、マシン上のエンクレーブ中にテナントキーを与えること(行為302)をさらに含む。管理エンクレーブとエンクレーブとは、所与のエンクレーブについて、管理エンクレーブがテナントエンクレーブにキーを与えることができることを除いて、所与のエンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域である。いくつかの実施形態では、管理エンクレーブと同じマシン上で動作しているエンクレーブ中にテナントキーを与えることのみが可能であるように管理エンクレーブを制限することができる。したがって、たとえば、管理エンクレーブ106−1−1は、管理エンクレーブ106−1−1とエンクレーブ102−1−1とが両方とも同じマシン100−1−1上で動作しているので、エンクレーブ102−1−1中にキー108を与えることが可能である。しかしながら、管理エンクレーブ106−1−1は、管理エンクレーブ106−1−1とエンクレーブ102−1−2とが異なるマシン上にあるので、エンクレーブ102−1−2中にキー108を与えることが可能でない。
[0057]エンクレーブは、クラウドサービステナントのための機能を実施するように構成される。アプリケーションコードはエンクレーブの異なるインスタンス中にある場合があるが、そのアプリケーションコードが同じアプリケーションコードである限り、それは、そのエンクレーブにアクセスすることができることに留意されたい。たとえば、管理エンクレーブ106−2−1は、管理エンクレーブ106−2−1と管理エンクレーブ106−1−1の両方が同じアプリケーションコードを実行している場合、管理エンクレーブ106−1−1にキー108を与えることが可能である場合がある。述べられたように、図2に示されている構成証明の証明書110−1など、構成証明の証明書を使用して、これを確認することができる。
[0058]本明細書で使用される同じ「アプリケーションコード」が同じコードの異なるバージョンを含んでもよいことにさらに留意されたい。しかしながら、同じアプリケーションコードの異なるバージョンとの通信を可能にするように、管理エンクレーブ中のアプリケーションコードを構成することができる。たとえば、管理エンクレーブ106−2−1は、管理エンクレーブ106−2−1と管理エンクレーブ106−1−1の両方が同じアプリケーションコードの異なるバージョンを実行している場合、管理エンクレーブ106−1−1にキー108を与えることが可能である場合がある。述べられたように、図2に示されている構成証明の証明書110−1など、構成証明の証明書を使用して、これを確認することができる。たとえば、いくつかの実施形態は、管理エンクレーブのためのエンクレーブ構成証明を含む構成証明の証明書を検証してもよい。エンクレーブ構成証明は、署名局の検証可能な証明と、アプリケーションコードがどの機能を有するかの署名局宣言の検証可能な証明と、アプリケーションコードの署名局宣言バージョンの検証可能な証明とを含む。
[0059]したがって、方法300を実施してもよく、テナントキーを取得することは、同じアプリケーションコードのバージョンを実行している別の管理エンクレーブが相互に承認可能および認証可能な管理エンクレーブコードを実行していることを検証することによって、別の管理エンクレーブからテナントキーを取得することを含み、それにより、管理エンクレーブが管理エンクレーブコードを承認および認証することによって、テナントキーを信頼された様式で管理エンクレーブ間で受け渡すことができる。
[0060]いくつかのそのような実施形態では、別の管理エンクレーブが相互に承認可能および認証可能なアプリケーションコードを実行していることを検証することは、別の管理エンクレーブが同等のアプリケーションコードを実行していることを検証することを含む。
[0061]代替または追加として、いくつかのそのような実施形態では、別の管理エンクレーブが相互に承認可能および認証可能な管理エンクレーブコードを実行していることを検証することは、別の管理エンクレーブが、アプリケーションコードの異なるバージョンとして検証することができるアプリケーションコードの異なるバージョンを実行していることを検証することを含む。
[0062]いくつかのそのような実施形態では、別の管理エンクレーブが管理エンクレーブコードの異なるバージョンを実行していることを検証することは、管理エンクレーブのためのエンクレーブ構成証明を含む構成証明の証明書を検証することを含む。エンクレーブ構成証明は、署名局の検証可能な証明と、アプリケーションコードがどの機能を有するかの署名局宣言の検証可能な証明と、アプリケーションコードの署名局宣言バージョンの検証可能な証明とを含む。
[0063]いくつかの実施形態では、管理エンクレーブとエンクレーブとは、キー発行管理エンクレーブが信頼できる発行者であり、受信側エンクレーブがキーの信頼できる受信側であることを検証するために相互認証および構成証明を使用する、ピア(peer)である。たとえば、上記で説明されたように構成証明の証明書を使用することによって、これを実施することができる。特に、管理エンクレーブとエンクレーブとは、各々、相互に承認されたおよび検証可能なコードを他方が使用していることを検証してもよい。これは、管理エンクレーブとエンクレーブとが上記で定義されたように同じコードを実行することによって、または何らかの他の相互に同意されたコードによってである場合がある。
[0064]1つまたは複数のプロセッサと、コンピューターメモリなどのコンピューター可読媒体とを含むコンピューターシステムによって、ここで示されている実施形態を実施することができる。特に、コンピューターメモリは、1つまたは複数のプロセッサによって実行されたとき、実施形態において具陳された行為など、様々な機能を実施させるコンピューター実行可能命令を記憶してもよい。
[0065]本発明の実施形態は、以下でより詳細に説明されるように、コンピューターハードウェアを含む専用または汎用コンピューターを備えるかまたは利用してもよい。本発明の範囲内の実施形態は、コンピューター実行可能命令および/またはデータ構造を搬送または記憶するための物理的および他のコンピューター可読媒体をも含む。そのようなコンピューター可読媒体は、汎用または専用コンピューターシステムがアクセスすることができる任意の利用可能な媒体とすることができる。コンピューター実行可能命令を記憶するコンピューター可読媒体は、物理的記憶媒体である。コンピューター実行可能命令を搬送するコンピューター可読媒体は、伝送媒体である。したがって、限定ではなく例として、本発明の実施形態は、少なくとも2つの明確に異なる種類のコンピューター可読媒体、すなわち、物理的コンピューター可読記憶媒体および伝送コンピューター可読媒体を備えることができる。
[0066]物理的コンピューター可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMもしくは(CD、DVDなどの)他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、コンピューター実行可能命令もしくはデータ構造の形態で所望のプログラムコード手段を記憶するために使用することができ、汎用もしくは専用コンピューターがアクセスすることができる、任意の他の媒体を含む。
[0067]「ネットワーク」は、コンピューターシステムおよび/もしくはモジュールならびに/または他の電子デバイス間での電子データのトランスポートを可能にする1つまたは複数のデータリンクとして定義される。情報がネットワークまたは別の通信接続(ハードワイヤード、ワイヤレス、またはハードワイヤードもしくはワイヤレスの組合せのいずれか)を介してコンピューターに転送されるかまたは与えられるとき、コンピューターは、適切に接続を伝送媒体と見なす。伝送媒体は、コンピューター実行可能命令またはデータ構造の形態の所望のプログラムコード手段を搬送するために使用することができ、汎用または専用コンピューターがアクセスすることができるネットワークおよび/またはデータリンクを含むことができる。上記の組合せも、コンピューター可読媒体の範囲内に含まれる。
[0068]さらに、様々なコンピューターシステムコンポーネントに達すると、コンピューター実行可能命令またはデータ構造の形態のプログラムコード手段を、伝送コンピューター可読媒体から物理的コンピューター可読記憶媒体に自動的に転送することができる(またはその逆も同様である)。たとえば、ネットワークまたはデータリンクを介して受信されたコンピューター実行可能命令またはデータ構造を、ネットワークインターフェースモジュール(たとえば、「NIC」)内のRAMにバッファし、次いで、最終的に、コンピューターシステムRAMにおよび/またはコンピューターシステムにおけるあまり揮発性でないコンピューター可読物理的記憶媒体に転送することができる。したがって、コンピューター可読物理的記憶媒体を、同じく(さらには主に)伝送媒体を利用するコンピューターシステムコンポーネント中に含めることができる。
[0069]コンピューター実行可能命令は、たとえば、汎用コンピューター、専用コンピューター、または専用処理デバイスに、ある機能または機能のグループを実施させる命令およびデータを含む。コンピューター実行可能命令は、たとえば、2進数、アセンブリ言語などの中間フォーマット命令、さらにはソースコードでもよい。主題が、構造的特徴および/または方法論的行為に特有の言語で説明されたが、添付の特許請求の範囲において定義される主題は、必ずしも上記で説明された説明された特徴または行為に限定されるとは限らないことを理解されたい。むしろ、説明された特徴および行為は、特許請求の範囲を実装することの例示的な形態として開示される。
[0070]パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピューター、メインフレームコンピューター、携帯電話、PDA、ページャー、ルーター、スイッチなどを含む、多くのタイプのコンピューターシステム構成をもつネットワークコンピューティング環境において、本発明を実施することができることを、当業者は諒解されよう。ネットワークを通して(ハードワイヤードデータリンク、ワイヤレスデータリンクによって、またはハードワイヤードデータリンクとワイヤレスデータリンクとの組合せによってのいずれかで)リンクされるローカルコンピューターシステムとリモートコンピューターシステムが両方ともタスクを実施する分散システム環境においても、本発明を実施することができる。分散システム環境では、ローカルメモリストレージデバイスとリモートメモリストレージデバイスの両方中にプログラムモジュールがあってもよい。
[0071]代替的に、または追加として、少なくとも部分的に、1つまたは複数のハードウェア論理コンポーネントによって、本明細書で説明される機能を実施することができる。たとえば、および限定はしないが、例示的なタイプの、使用することができるハードウェア論理コンポーネントは、フィールドプログラマブルゲートアレイ(FPGA)、プログラム固有集積回路(ASIC)、プログラム固有標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などを含む。
[0072]本発明は、それの趣旨または特性から逸脱することなく、他の特定の形態で具現化することができる。説明された実施形態は、すべての点で例示的にすぎず、限定的でないと見なされるべきである。本発明の範囲は、したがって、上記の説明によってというよりむしろ添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲内に入るすべての変更は、特許請求の範囲内に包含されるべきである。

Claims (15)

  1. 第1の複数のマシンを備える計算ファブリックであって、前記第1の複数のマシンの各々が第1の管理エンクレーブとテナントエンクレーブとを実行し、前記第1の複数のマシンの各々について、前記第1の管理エンクレーブが、前記テナントエンクレーブ中に1つまたは複数のテナントキーを与えるように構成され、前記テナントエンクレーブが、前記テナントエンクレーブ中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応し、前記第1の管理エンクレーブは、前記第1の管理エンクレーブが前記テナントエンクレーブに前記1つまたは複数のテナントキーを与えることを許可されることを除いて、前記第1の管理エンクレーブ中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応する、計算ファブリックと、
    第2の複数のマシンを備えるキーファブリックであって、前記第2の複数のマシンの各々が第2の管理エンクレーブを実行し、前記第2の複数のマシンの各々について、前記第2の管理エンクレーブが、1つまたは複数の暗号化されたテナントキーを前記第2のマシンにローカルにおよび排他的に記憶させるように構成され、前記第1の管理エンクレーブおよび前記第2の管理エンクレーブの各々は、相互に承認可能および認証可能な管理エンクレーブアプリケーションコードを実行し、それにより、異なるマシンの管理エンクレーブが管理エンクレーブアプリケーションコードを承認および認証することによって、テナントキーを信頼された様式で前記管理エンクレーブ間で受け渡すことを可能にする、キーファブリックと
    を備えるシステム。
  2. 前記第1の管理エンクレーブおよび前記第2の管理エンクレーブの各々が、同等のアプリケーションコードを実行することによって、相互に承認可能および認証可能な管理エンクレーブアプリケーションコードを実行する、請求項1に記載のシステム。
  3. 前記第1の管理エンクレーブおよび前記第2の管理エンクレーブの各々が、同じアプリケーションコードの異なるバージョンとして検証することができる同じアプリケーションコードの異なるバージョンを実行することによって、相互に承認可能および認証可能な管理エンクレーブアプリケーションコードを実行する、請求項1に記載のシステム。
  4. 前記第1の管理エンクレーブおよび前記第2の管理エンクレーブが、管理エンクレーブのためのエンクレーブ構成証明を含む構成証明の証明書を検証することによって同じアプリケーションコードの異なるバージョンを検証するように構成され、前記エンクレーブ構成証明が、署名局の検証可能な証明と、アプリケーションコードがどの機能を有するかの署名局宣言の検証可能な証明と、アプリケーションコードの署名局宣言バージョンの検証可能な証明とを含む、請求項3に記載のシステム。
  5. 前記第2の管理エンクレーブの各々は、各第2の管理エンクレーブが動作しているマシンのためのマシンキーを使用してテナントキーを暗号化および解読するように構成された、請求項1に記載のシステム。
  6. 前記システムがテナントキーを生成するように構成された、請求項1に記載のシステム。
  7. 前記システムがテナントからテナントキーを受信するように構成された、請求項1に記載のシステム。
  8. テナントエンクレーブであって、1つまたは複数の管理エンクレーブが前記テナントエンクレーブ中にキーを与えることができることを除いて、前記テナントエンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応する、テナントエンクレーブと、
    前記テナントエンクレーブに結合された管理エンクレーブであって、前記テナントエンクレーブにキーを与えるように構成され、前記管理エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応する、管理エンクレーブと
    を備えるマシン。
  9. 前記管理エンクレーブは、相互に承認可能および認証可能なアプリケーションコードを実行する他の管理エンクレーブと通信するように構成され、それにより、管理エンクレーブが管理エンクレーブアプリケーションコードを承認および認証することによって、テナントキーを信頼された様式で前記管理エンクレーブ間で受け渡すことができる、請求項8に記載のマシン。
  10. 前記管理エンクレーブが、同等のアプリケーションコードを実行する他の管理エンクレーブと通信するように構成された、請求項9に記載のマシン。
  11. 前記管理エンクレーブが、同じアプリケーションコードの異なるバージョンとして検証することができる同じアプリケーションコードの異なるバージョンを実行する他の管理エンクレーブと通信するように構成された、請求項9に記載のマシン。
  12. 前記管理エンクレーブが、管理エンクレーブのためのエンクレーブ構成証明を含む構成証明の証明書を検証することによって同じアプリケーションコードの異なるバージョンを検証するように構成され、前記エンクレーブ構成証明が、署名局の検証可能な証明と、アプリケーションコードがどの機能を有するかの署名局宣言の検証可能な証明と、前記アプリケーションコードの署名局宣言バージョンの検証可能な証明とを含む、請求項11に記載のマシン。
  13. 前記管理エンクレーブが、前記マシンのためのマシンキーを使用してテナントキーを暗号化および解読するように構成された、請求項8に記載のマシン。
  14. 前記テナントエンクレーブが、クラウドサービステナントのための機能を実施するように構成され、前記管理エンクレーブが、前記テナントエンクレーブ中にテナントキーを与えるように構成された、請求項8に記載のマシン。
  15. クラウドシステム上のテナントをセキュアに管理する方法であって、
    テナントキーを取得するステップと、
    クラウドサービスにおける計算ファブリック中のマシン上の管理エンクレーブにおいて、前記マシン上のテナントエンクレーブ中に前記テナントキーを与えるステップであって、前記管理エンクレーブは、前記管理エンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応し、テナントエンクレーブは、前記管理エンクレーブが前記テナントエンクレーブにキーを与えることができることを除いて、前記テナントエンクレーブ自体中にないアプリケーションコードについてアクセスが防がれるアプリケーションアドレス空間の保護された領域に対応し、前記テナントエンクレーブが、クラウドサービステナントのための機能を実施するように構成された、与えるステップと
    を含む方法。
JP2019525807A 2016-11-14 2017-11-07 セキュアキー管理 Active JP7179725B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662421835P 2016-11-14 2016-11-14
US62/421,835 2016-11-14
US15/458,627 2017-03-14
US15/458,627 US10439803B2 (en) 2016-11-14 2017-03-14 Secure key management
PCT/US2017/060261 WO2018089319A1 (en) 2016-11-14 2017-11-07 Secure key management

Publications (3)

Publication Number Publication Date
JP2019536363A true JP2019536363A (ja) 2019-12-12
JP2019536363A5 JP2019536363A5 (ja) 2020-12-17
JP7179725B2 JP7179725B2 (ja) 2022-11-29

Family

ID=62108837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019525807A Active JP7179725B2 (ja) 2016-11-14 2017-11-07 セキュアキー管理

Country Status (19)

Country Link
US (1) US10439803B2 (ja)
EP (1) EP3538993B1 (ja)
JP (1) JP7179725B2 (ja)
KR (1) KR102512739B1 (ja)
CN (1) CN109964205B (ja)
AU (1) AU2017359017B2 (ja)
BR (1) BR112019007690A2 (ja)
CA (1) CA3042257A1 (ja)
CL (1) CL2019001288A1 (ja)
CO (1) CO2019004771A2 (ja)
IL (1) IL266445B (ja)
MX (1) MX2019005508A (ja)
MY (1) MY201693A (ja)
NZ (1) NZ752240A (ja)
PH (1) PH12019550064A1 (ja)
RU (1) RU2750095C2 (ja)
SG (1) SG11201903885RA (ja)
WO (1) WO2018089319A1 (ja)
ZA (1) ZA201902220B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware
US11405177B2 (en) * 2017-01-24 2022-08-02 Microsoft Technology Licensing, Llc Nested enclave identity
US10691837B1 (en) 2017-06-02 2020-06-23 Apple Inc. Multi-user storage volume encryption via secure enclave
US11943368B2 (en) 2017-11-03 2024-03-26 Microsoft Technology Licensing, Llc Provisioning trusted execution environment based on chain of trust including platform
EP3834114A1 (en) * 2018-09-12 2021-06-16 Huawei Technologies Co., Ltd. Device and method for attesting distributed services
US10708247B2 (en) 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
EP3966721A1 (en) * 2019-07-11 2022-03-16 Huawei Technologies Co., Ltd. Apparatus and method for disk attestation
US20230239163A1 (en) * 2022-01-26 2023-07-27 Microsoft Technology Licensing, Llc Establishing pki chain of trust in air gapped cloud

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155725A (ja) * 2011-01-27 2012-08-16 Safenet Inc マルチエンクレーブトークン
JP2013528872A (ja) * 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US20150033316A1 (en) * 2013-07-23 2015-01-29 Vincent Scarlata Feature licensing in a secure processing environment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135444B2 (en) 2006-10-19 2015-09-15 Novell, Inc. Trusted platform module (TPM) assisted data center management
US8700906B2 (en) 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
US9270459B2 (en) 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
US9292316B2 (en) * 2012-03-01 2016-03-22 International Business Machines Corporation Cloud of virtual clouds for increasing isolation among execution domains
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9282118B2 (en) * 2012-11-13 2016-03-08 Intel Corporation Policy enforcement in computing environment
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US9118639B2 (en) 2013-03-14 2015-08-25 Intel Corporation Trusted data processing in the public cloud
US9292673B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Virtual key management and isolation of data deployments in multi-tenant environments
US9147086B1 (en) 2013-06-07 2015-09-29 Amazon Technologies, Inc. Trusted computing host
US9448950B2 (en) * 2013-12-24 2016-09-20 Intel Corporation Using authenticated manifests to enable external certification of multi-processor platforms
US20150264024A1 (en) 2014-03-15 2015-09-17 Alexander Frank System and method for confidential remote computing
TW201546649A (zh) 2014-06-05 2015-12-16 Cavium Inc 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法
CA2949020C (en) 2014-06-23 2018-09-04 Porticor Ltd. Methods and devices for key management in an as-a-service context
US20160342801A1 (en) * 2014-06-25 2016-11-24 defend7, Inc. Containerized security as a service
US9792143B1 (en) * 2015-10-23 2017-10-17 Amazon Technologies, Inc. Platform secure execution modes
US9798641B2 (en) * 2015-12-22 2017-10-24 Intel Corporation Method to increase cloud availability and silicon isolation using secure enclaves
US20180097809A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Securing access to cloud components
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013528872A (ja) * 2010-06-02 2013-07-11 ヴイエムウェア インク マルチ・テナント・クラウドにおける顧客仮想計算機の保護
JP2012155725A (ja) * 2011-01-27 2012-08-16 Safenet Inc マルチエンクレーブトークン
US20150033316A1 (en) * 2013-07-23 2015-01-29 Vincent Scarlata Feature licensing in a secure processing environment

Also Published As

Publication number Publication date
AU2017359017B2 (en) 2021-11-04
PH12019550064A1 (en) 2020-01-20
BR112019007690A2 (pt) 2019-07-02
US10439803B2 (en) 2019-10-08
EP3538993A1 (en) 2019-09-18
JP7179725B2 (ja) 2022-11-29
ZA201902220B (en) 2020-08-26
RU2750095C2 (ru) 2021-06-22
AU2017359017A1 (en) 2019-04-18
IL266445B (en) 2022-01-01
MX2019005508A (es) 2019-08-12
IL266445A (en) 2019-06-30
CN109964205A (zh) 2019-07-02
KR20190082793A (ko) 2019-07-10
CN109964205B (zh) 2023-07-14
RU2019114207A (ru) 2020-11-13
EP3538993B1 (en) 2021-12-01
WO2018089319A1 (en) 2018-05-17
RU2019114207A3 (ja) 2021-02-10
KR102512739B1 (ko) 2023-03-21
CL2019001288A1 (es) 2019-09-13
US20180139044A1 (en) 2018-05-17
SG11201903885RA (en) 2019-05-30
CO2019004771A2 (es) 2019-05-21
MY201693A (en) 2024-03-13
CA3042257A1 (en) 2018-05-17
NZ752240A (en) 2022-12-23

Similar Documents

Publication Publication Date Title
JP7416775B2 (ja) 周辺デバイス
RU2693313C2 (ru) Безопасный транспорт зашифрованных виртуальных машин с непрерывным доступом владельца
JP7179725B2 (ja) セキュアキー管理
KR101687275B1 (ko) 공개 클라우드에서의 신뢰 데이터 프로세싱
Chandramouli et al. Cryptographic key management issues and challenges in cloud services
WO2018112946A1 (zh) 注册及授权方法、装置及系统
US9998438B2 (en) Verifying the security of a remote server
US9026805B2 (en) Key management using trusted platform modules
JP2020527259A (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
US20140270179A1 (en) Method and system for key generation, backup, and migration based on trusted computing
US10498712B2 (en) Balancing public and personal security needs
Faisal et al. Establishment of trust in internet of things by integrating trusted platform module: To counter cybersecurity challenges
JP6939313B2 (ja) 分散認証システム
Ghori et al. Review of access control mechanisms in cloud computing
Bingu et al. Cloud auditing and authentication scheme for establishing privacy preservation
CA3042984C (en) Balancing public and personal security needs
Faisal et al. Research Article Establishment of Trust in Internet of Things by Integrating Trusted Platform Module: To Counter Cybersecurity Challenges
JP2024519365A (ja) 連合学習のための信頼できる分散型アグリゲーション

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221116

R150 Certificate of patent or registration of utility model

Ref document number: 7179725

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150