JP2020506612A - 暗号鍵を使用した信頼実行環境へのアドレシング - Google Patents
暗号鍵を使用した信頼実行環境へのアドレシング Download PDFInfo
- Publication number
- JP2020506612A JP2020506612A JP2019540658A JP2019540658A JP2020506612A JP 2020506612 A JP2020506612 A JP 2020506612A JP 2019540658 A JP2019540658 A JP 2019540658A JP 2019540658 A JP2019540658 A JP 2019540658A JP 2020506612 A JP2020506612 A JP 2020506612A
- Authority
- JP
- Japan
- Prior art keywords
- trustlet
- encryption key
- protected data
- encrypted
- key
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本明細書では、潜在的に信頼できない要求元と関連付けられたセキュア・カーネル上で実行するトラストレットを含むネスト状信頼実行環境(TrEE)に保護データーを配信するための方法、システム、およびデバイスについて記載する。1つの態様において、ターゲティング・プロトコル・ヘッド、あるいは要求元と鍵管理システムまたはその他の保護データーの記憶装置との間における他の仲介が、潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取ることができる。ターゲティング・プロトコル・ヘッドは、転送暗号鍵を、証明報告書から導き出された第2暗号鍵によって暗号化することができる。ターゲティング・プロトコル・ヘッドは、保護データーを引き出し、転送暗号鍵および認証タグによって、保護データーを暗号化することができる。認証タグは、要求元をトラストレットIDとバインドする。ターゲティング・プロトコル・ヘッドは、暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給することができる。【選択図】図1C
Description
[0001] 本開示は、一般には、コンピューティング・デバイスにおける信頼および/または分離(isolated)実行環境に関し、更に特定すれば、1つ以上の秘密または鍵の信頼実行環境への安全な配信に関する。
[0002] 鍵管理システム(KMS:key management system)とは、秘密の記憶装置(store)である。秘密とは、通例、公開ID、防護されている値(guarded value)、および誰がその値を入手することができるか管理するポリシーである。場合によっては、秘密は有効期限、その他のメタデーター等を有することもある。典型的な使用事例では、要求元(requestor)がKMSに認証し、安全なチャネルを確立し、秘密IDを提示することによって秘密値を要求し、平文の秘密値を要求元に戻すことをKMSに期待する。この値は、要求元とKMSとの間における安全なチャネルによって、不正な盗聴や改竄から保護される。
[0003] 信頼実行環境(TrEE:Trusted Execution Environment)は、本明細書において使用する場合、仮想セキュア・モード(VSM)トラストレット(trustlet)、SGXアプリケーション、ARM TrustZoneアプリケーション、または何らかの他の類似するビークル(vehicle)の内任意のものを含むことができる。TrEEには、通常共通して有するいくつかの一意のプロパティがある。TrEEは、一般に、完全な暗号スタックを有する(言い換えると、スペクトル全体にわたって、安全な乱数発生から、秘密鍵を使用するハッシング、暗号化、および署名ライブラリーに及ぶ、最大限の機能選択肢(full menu)までの多種多様な暗号プリミティブを有すると仮定することができる)。また、TrEEは、通常、小数のまたは限定されたI/O装備を有するか、あるいは関連付けられており、通例では、信頼されていない「外部世界」によって要求が開始される、要求主導型アーキテクチャ(request driven architecture)に限定される。例えば、VSMトラストレットは、未認証リモート・プロシージャ・コール(RPC:Remote Procedure Calls)を使用することができる。また、TrEEはTrEEの外部では入手できない鍵素材またはデーターにアクセスすることもできる。これによって、TrEEは、とりわけ、信頼されていないI/Oを使用してデーターを格納し、次いでそれを読み出すことが可能になり、改竄に対する耐性および状態の機密性(confidentiality of state)を保証する。また、TrEEは、一般に、立証可能なコード(attestable code)、コンフィギュレーション、および鍵素材も有する、またはこれらと関連付けられる。具体的には、立証可能な鍵素材は、TrEEが、サードパーティから、それに対して暗号化されたメッセージを受信し、TrEEから来たものとして、サードパーティへのメッセージに署名することを可能にする。
[0004] 他のアプリケーションと同様、TrEEによるKMSの使用においても安全性の限界が露呈することがある。したがって、KMSから供給される鍵を、TrEEと共に利用して、またはTrEEにおいて利用して、安全性を高めるための改善を行うことができる。
[0005] 本開示の実例は、限定ではなく、方法、システム、および種々のデバイスを含む。1つの態様において、潜在的に信頼できない要求元と関連付けられたセキュア・カーネル上で実行するトラストレットを含むネスト状信頼実行環境(TrEE)に保護データーを配信する方法を、少なくとも部分的に、ターゲティング・プロトコル・ヘッド、あるいは要求元と鍵管理システムまたはその他の保護データーの記憶装置との間における他の仲介によって実行することができる。ターゲティング・プロトコル・ヘッドは、潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取ることができる。ターゲティング・プロトコル・ヘッドは、証明報告書から導き出される第2暗号鍵で転送暗号鍵を暗号化することができる。ターゲティング・プロトコル・ヘッドは、保護データーを引き出し、転送暗号鍵および認証タグによって、保護データーを暗号化することができる。認証タグは、要求元をトラストレットIDとバインドする。ターゲティング・プロトコル・ヘッドは、暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給することができる。
[0007] これより、本開示の実施形態について、添付図面を参照しながら、更に深く説明する。図面において、
図1Aは、要求元と鍵管理システムとの間で鍵を交換するシステムおよびプロセスの3つの例を表す。
図1Bは、要求元と鍵管理システムとの間で鍵を交換するシステムおよびプロセスの3つの例を表す。
図1Cは、要求元と鍵管理システムとの間で鍵を交換するシステムおよびプロセスの3つの例を表す。
分離領域または信頼実行環境(TrEE)を実装する制御プログラム・モニタの一例を示す図である。
仲介ターゲティング・プロトコル・ヘッドを利用して、保護データーを信頼TrEEに配信するプロセス例を表す。
図4Aは、仲介ターゲティング・プロトコル・ヘッドを利用して、保護データーをTrEEに配信する他のプロセス例を示す。
図Bは、仲介ターゲティング・プロトコル・ヘッドを利用して、保護データーをTrEEに配信する他のプロセス例を示す。
図5Aは、仲介ターゲティング・プロトコル・ヘッドを利用して、保護データーをネスト状TrEEに配信するプロセス例を表す。
図5Bは、仲介ターゲティング・プロトコル・ヘッドを利用して、保護データーをネスト状TrEEに配信するプロセス例を表す。
説明するプロセスの内1つ以上を実装することができるシステム例を示す。
トランスポート・キーおよび/または保護データーを安全にTrEEに配信するために使用されるデーター構造の例を表す。
他のTrEEの暗号鍵に基づいて(based around)仲介ターゲティング・プロトコル・ヘッドを利用して保護データーをネスト状TrEEに配信する他のプロセス例を表す。
内部TrEEの暗号鍵に基づいて仲介ターゲティング・プロトコル・ヘッドを利用して保護データーをネスト状TrEEに配信する他のプロセス例を表す。
本明細書において説明する技法を具体化することができる汎用コンピューティング環境の例を表す。
[0018] 本明細書では、少なくとも1つの鍵(例えば、署名鍵または暗号鍵)または保護データー/秘密を、1つ以上の物理または仮想コンピューティング・デバイスのような、コンピューティング・デバイスの信頼実行環境(TrEE)内に安全に配信するシステムおよび技法について説明する。1つの態様において、鍵の要求元と、鍵管理システムまたは保護データーを所有するエンティティとの間に、仲介を実装することができる。仲介を、本明細書では、ターゲティング・プロトコル・ヘッドと呼ぶこともある。鍵の要求元は、安全実行環境またはTrEEと関連付けることができ、安全実行環境はVSMトラストレット、SGXアプリケーション、ARM TrustZoneアプリケーション、または何らかのその他の類似するビークルの内1つ以上を含むことができる。TrEEは、要求元から分離されてもよい。要求元は、1つ以上の秘密をTrEEまたはTrEE内部で実行する特定のトラストレットに配信するように、ターゲティング・プロトコル・ヘッドに要求することができる。ターゲティング・プロトコル・ヘッドは、要求に応答して、TrEEへの配信のために1つ以上の秘密を入手するために、鍵管理システム、または秘密を保持している他のエンティティと通信することができる。ターゲティング・プロトコル・ヘッドは、保護データーが要求元にも攻撃者にもアクセス可能にならないように、特定的に保護データーをTrEEに導く(target)ことができる。
[0019] ある態様では、ターゲティング・プロトコル・ヘッドの実装により、要求元と鍵管理システムとの間における安全なチャネルの必要性をなくすることができる。ターゲティング・プロトコル・ヘッドは、本明細書において説明するTrEEターゲティング技法を使用して、秘密/データーが要求元にはアクセスすることができないように、1つ以上の秘密またはデーターをTrEEまたはネスト状TrEE(例えば、セキュア・カーネル上で実行するトラストレット)に送ることも可能にする。場合によっては、保護データーの所有者が、種々の理由のいずれかのために、要求元には保護データーをアクセスできないままにしておくことを希望できるように、要求元を信頼できないまたは潜在的に潜在できないものにすることもできる。場合によっては、要求元が信頼できることを断定する(establish)こと、あるいは要求元が信頼できるままでいることを確認することが難しいまたは厄介なこともある。これらの懸念の多くは、要求元は信頼できないと仮定し、TrEEを要求元から分離することによって、払拭することができる。この分離により、異なる種類の攻撃に対して、セキュリティを著しく強化することができ、以下で更に詳しく説明するように、他の便益および利点を得ることができる。
[0020] 図1Aは、要求元と鍵管理システムとの間で鍵を交換するためのシステムおよびプロセス例100aを示す。図示のように、要求元または要求元デバイス120は、クライアント・デバイスまたはクライアント側110と関連付けられ、鍵管理システム、あるいはサーバーまたはサーバー側105と関連付けられた、何らかの所望の秘密(1つまたは複数)115の保持者と通信することができる。要求元120は、例えば、特定の保護データーにアクセスする、1つ以上の保護プロセスを実行する等のために、1つ以上の秘密または保護データーを鍵管理システム115に要求することができる。要求元120および鍵管理システム(KMS)115は、公開鍵−秘密鍵セキュリティ・システムまたは、当技術分野において知られているような、他の鍵プロトコルを利用して、所望の秘密/データーを交換することができる。
[0021] 要求元120は、最初に動作125において、KMS115と認証し、当技術分野において知られている技法の内任意のものによって、安全な通信チャネルを確立することができる。動作125は、公開鍵システム等を利用する動作を含んでもよい。次に、動作125によって確立された安全なチャネルを利用して、要求元120は1つ以上の秘密/保護データーを求める要求を、動作130において、KMS115に送ることができる。この要求を検証した(verify)ときに、KMS115は、動作135において、安全な通信チャネルを通じて、秘密または要求されたデーターを要求元120に返すことができる。当技術分野では標準的であるが、135において、安全なチャネル上(above)には追加の保護を全く設けずに、この安全なチャネルを通じて秘密/要求データーを送信することができる。その結果、動作135において送信された秘密/データーは、要求元デバイス120に露出されるおそれがある。
[0022] 図1Bは、信頼実行環境(TrEE)140の代わりに、要求元120とKMS115との間で1つ以上の秘密または保護データーを一層安全に交換するためのシステムおよびプロセス例100bを示す。信頼実行環境(TrEE)140は、飛び地(enclave)、即ち、要求元120と関連付けられた分離実行環境を示すために使用される別の用語(term)である。要求元120とKMS115との間で1つ以上の秘密または保護データーを一層安全に交換するためのシステムおよびプロセス例100bを示す。TrEE140は、TrEE140内に収容されているコードおよび/またはデーターが要求元120によってアクセスすること(例えば、読み取りおよび/または書き込み)ができないように、要求元120から分離することができる。図2は、信頼実行環境例200を示し、ここでは、コンピューティング・デバイス205がロジック210(例えば、コード)、およびデーターのような状態情報220を含むことができる。状態情報220は、不正アクセスから保護する(secure)ことができるように、分離領域215に格納または配置することができる。場合によっては、分離領域215内にあるデーターは、分離領域215と関連付けられたロジック210以外のいずれのエンティティであっても、直接読み取りも書き込みも行うことはできない。分離ロジック210は、どの種類のアクセスを、どの型または部分のデーター220に許可するか決定する。一例では、ロジック210は、データー220に関連付けられた値を増加することおよび読み取ることを許可するが、それ以外でデーター220を修正することは許可しないとしてもよい。他の例では、ロジック210は、鍵を使用する暗号動作を許可するが、それでも鍵自体の値へのアクセスは付与しないとしてもよい。図示する例では、ロジックまたはコード210はCPM205の一般的な領域、即ち、アクセス可能な領域内にあってもよい。しかしながら、場合によっては、ロジック210が状態情報220と同じまたは異なる分離領域内に配置されてもよいことは認められてしかるべきである。
[0023] システム100bに戻り、ターゲティング・プロトコル・ヘッド(TPH)150は、要求元120/TrEE140とKMS115との間の仲介として役割を果たすために、サーバー側105に実装することができる。プロトコル・ヘッドとは、通例では、特定のプロトコルをネーティブに話さない(speak)システムの隠れ蓑になる(front)プロトコル・ハンドラのソフトウェア実施態様を指すとしてよい。ターゲティングとは、実行環境の暗号化ターゲティング(cryptographic targeting)を指すとしてよい。一緒に合わせると、この用語はTrEEにおける応答をターゲットにする秘密を引き出すためのプロトコルを実装するソフトウェアおよび/またはハードウェアを示すことができる。ある態様では、ターゲティング・プロトコル・ヘッド150は、例えば、KMS115とは異なるハードウェア、ソフトウェア上で実行すること、および/またはKMS115とは別個に実行することができる、仮想またはクラウド・リソースとして実装することもできる。ある態様では、データー・センターのようなエンティティが、例えば、サービスとして、ターゲティング・プロトコル・ヘッド150をホストするおよび/または提供することもできる。ターゲティング・プロトコル・ヘッド150は、2つの主要な機能、1)KMS115と通信し外部エンティティから秘密または保護データーを入手する機能、および2)要求元120のTrEE140への応答をターゲットにする機能を実行することができる。ターゲティング・プロトコル・ヘッド150を使用する結果、要求元120はKMS115に直接認証する必要がなくなる。KMS115は、その秘密をターゲティング・プロトコル・ヘッド150に生成する(yield)が、要求元120には生成しない。ターゲティング・プロトコル・ヘッド150の機能は、要求元120のTrEE140への応答をターゲットにすることであり、こうして、要求元120が秘密/保護データーの平文を入手できないことを保証する。代わりに、ターゲティング・プロトコル・ヘッド150は、要求元120の代わりに、KMS115に認証することができるが、要求元120の識別情報(identity)を使用して、または使用せずに、そのようにすることができる。場合によっては、ターゲティング・プロトコル・ヘッド150が要求元120のTrEE140に返そうとしている秘密がもうすぐ「安全な状態」になることを、ターゲティング・プロトコル・ヘッド150が確信しなければならないこともある。この場合、要求元120は、TrEE140の状態について証明可能な情報(attestable information)をターゲティング・プロトコル・ヘッド150に提供することができる。この証明可能な情報は、TrEE140と関連付けられた、証明可能な鍵素材を含み、TrEE140への応答を暗号化することができる。
[0024] 場合によっては、1つ以上のトラストレットによって供給されるような、複数の異なるプロセスがセキュア・カーネル内において同時に動作することもあり、各トラストレットおよびセキュア・カーネルは各々TrEE140として見なされる(例えば、これはネスト状TrEEの例である)。このシナリオでは、異なるトラストレットの各々には、セッションID、トラストレット・タイプ、および/またはセキュア・カーネル内で個々のトランスレットを識別するために使用することができるその他のID(例えば、双方共TrEE140として表される)と関連付けることができる。ターゲティング・プロトコル・ヘッド150からの応答は、要求において識別されたTrEE140内における特定のトラストレットに絞って、導くことができる。これについては、以下で更に詳しく説明する。
[0025] TrEE140のターゲティングの場合、要求元120とターゲティング・プロトコル・ヘッド150との間に安全なチャネルを設ける本質的な必要性はない。何故なら、要求元120自体が信頼されて応答が送られるのではないからである。しかしながら、例えば、要求自体へのアクセスによって望ましくない情報開示が発生する可能性があるので、要求自体(要求元が欲しい秘密)へのアクセスを保護するために、認証動作160によって、要求元120とターゲティング・プロトコル・ヘッド150との間に安全なチャネルを追加してもよいことは認められてしかるべきである。動作160における認証の後に、またはその代わりに、要求元120は、例えば、動作155においてTrEE140に配信するために、TrEE140に代わって、1つ以上の秘密、あるいは1つの秘密または保護データーを求める要求をターゲティング・プロトコル・ヘッド150に送ることができる。ある態様では、要求にTrEE140を関連付けること、または要求がTrEE140を識別することができる。ターゲティング・プロトコル・ヘッド150は、TrEE140が信頼できるか否か判断することができる。1つの態様では、要求元120の認証は、一種のクリーン・ルーム・プロビジョニング(clean room provisioning)を頼りにしてもよい。他の態様では、認証は証明(attestation)を頼りにしてもよい。
[0026] クリーン・ルーム・プロビジョニングは、要求元120のデバイスが、例えば、新品であり、悪意のあるソフトウェアに侵されていないと正当に仮定されるときに、使用することができる。クリーン・ルーム・プロビジョニングを使用して、要求元と関連付けられたTrEEに保護データーを配信するためのプロセス例については、図3を参照して以下で更に詳しく説明する。証明(例えば、証明サービス)を使用して、要求元と関連付けられたTrEEに保護データーを配信するためのプロセス例については、図4を参照して以下で更に詳しく説明する。
[0027] いずれの場合でも、一旦TPH150が要求元120を認証したなら、および/またはTrEE140の信頼性を断定したなら、TPH150は動作165において、KMS115を認証し、KMS115との安全な通信チャネルを確立することができる。ある態様では、KMS115は、ライセンス、許可、パスワード等のような、1つ以上の秘密または保護データーを保持する任意のエンティティを含むことができ、または任意のエンティティと関連付けることができる。KMS115との安全な通信チャネルを確立したとき、TPH150は、動作170において、保護データーを求める要求を送ることができる。KMS115は、動作175において、要求された秘密を返すことができる。TPH150は、TrEE140において秘密(1つまたは複数)または保護データーをターゲットにして、動作180において1つ以上の秘密を送ることができる。
[0028] ある態様では、動作180において、保護データーをTrEE140に配信するときに、以下のデーター構造の内少なくとも1つを利用することができる。TrEE識別情報(TrEE identity)または証明プロセスまたは証明ログの周囲に、あるいはネスト状TrEEの例(例えば、セキュア・カーネル上で実行するトラストレット)内に組み込む(build)ことができる暗号識別鍵(encryption identity key)、同様に証明プロセスの周囲に組み込むことができる署名識別鍵(signing identity key) 。これらについては、以下で更に詳しく説明する。
[0029] 図1Cは、信頼実行環境(TrEE)140の代わりに、要求元120とKMS115との間において1つ以上の秘密または保護データーを安全に交換するための他のシステムおよびプロセス例100cを示す。システム100cは、以上で説明したシステム100bの具体的な例であるとして差し支えない。システム100cでは、ターゲティング・プロトコル・ヘッド150はホスト・ガーディアン・サービス(HGS:host guardian service)150aにしてもよい。システム100cにおいて、HGS150aは、例えば、クラウド・ホスト185、あるいはTrEE140をインスタンス化するまたはそうでなければ制御することができる他のエンティティからキー・プロテクター(key protector)190を受け取ることができる。システム100cにおいて、要求元120は、例えば、クラウド・ホスト185によって提供される仮想機械と関連付けることができる。KP190は、"Secure Transport of Encrypted Virtual Machines with Continuous Owner Access"(連続所有者アクセスによる暗号化仮想機械の安全な輸送)と題し、2014年9月9日に出願された関連米国特許出願第14/481,399号(米国特許出願公開第2015/318986号明細書)に記載されているキー・プロテクターの1つ以上の態様を組み込むことができる。KP190は、トランスポート・キーのような、TrEE140によって使用可能な1つ以上の秘密を収容することができる。KP190は、本質的に、トランスポート・キーにアクセスすることを許可された1組のガーディアン(guardian)のみにアクセス可能になるように、トランスポート・キーにラッピングを施すことができる。動作165においてKMS115との安全な通信チャネルを認証および確立した後、KP190の内容を読み取り、トランスポート・キーを引き出すために、動作170aにおいて、HGS150aが解読鍵をKMS115に要求することができるように、 KP190を暗号化することができる。応答して、KMS115は、動作175aにおいて、解読鍵をHGSに送ることができる。次いで、HGS150aは、解読鍵を使用してKP190を解読し、1つ以上の秘密(例えば、トランスポート・キー)を引き出して、TrEE140に送ることができる。次いで、HGS150aは、動作180において、以下で更に詳しく説明する1つ以上のアドレシング技法によって、秘密またはトランスポート・キーをTrEEに送ることができる。ある態様では、KP190からのデーターに基づいて、TrEE140にアドレスすることもできる。
[0030] 尚、場合によっては、HGS150aおよびKMS115が1つのエンティティとなり、これらの間に通信チャネルを確立する必要をなくし、認証も不要とするようにしてもよいことは認められてしかるべきである。
[0031] システム100cでは、要求元120とHGS150aとの間における認証は不要である。クラウドまたはファブリック・ホスト(fabric host)180が健全である限り、どのファブリック・ホストがHGS150aと通信しているのかは、それがファブリックにおけるサーバーの1つであるのであれば(これは証明によって検証することができる)、問題にならない。
[0032] 図3は、要求元のTrEEに保護データーを配信するためのプロセス例300を示し、ここでは、要求元は信頼をおけるものと仮定する(例えば、悪意のソフトウェアに侵されていない)。本明細書において使用する場合、いずれの図においてもボックスまたは動作の破線は随意であり、その動作は除外してもよいことを示す。プロセス300は、TrEEによって生成された、またはTrEEを開始した要求元のセキュア・カーネルによって生成された、公開鍵秘密鍵対(例えば、非対称鍵対)の公開鍵のような、TrEEと関連付けられた暗号鍵を利用することができる。他の場合では、暗号鍵は対称型であってもよい。本明細書において使用する場合、セキュア・カーネルとは、当技術分野では知られているように、もっと高いレベルのセキュリティと関連付けられたコンピューティング・デバイスの任意の部分を指すことができる。
[0033] このシナリオでは、動作302において、TrEE140を起動する(launch)または開始する(initiate)ことができ、動作304において、1つ以上の秘密鍵(例えば、秘密暗号鍵)および対応する公開鍵を、TrEE140の内部で生成することができる。次いで、動作306において、対応する公開鍵をTPH150に登録し、要求元の識別情報(identity)および/または要求元デバイスの識別情報と関連付けることができる。場合によっては、TrEE140の公開鍵を1回だけ登録すればよく、公開鍵を登録した後に、プロセス300が動作308において開始できるようにする。その後、要求元120は、動作308において、任意の知られている認証技法によって、TPH150と認証することができる。次いで、TPH150は、例えば、要求元120の識別情報と関連付けることができるTrEE140の登録公開鍵に基づいて、TrEE140への応答を配信するときに使用する公開鍵を調べることができる。このプロセスを「クリーン・ルーム」プロビジョニングと呼ぶことができる。何故なら、要求元120が、不良品でないことがわかっている(known-good)とき、または信頼がおける状態にあるときにしか、これを安全に行うことができないからである。この例では、証明書に基づく認証の必要はなく、要求元120がTrEE健全性証明書(THC:TrEE Health Certificate)をTPH150に送らなくてよい。何故なら、要求元120は信頼できるからである。遍在的証明サービス(ubiquitous attestation services)がない場合、正しいTrEE140がTPH150によってターゲットにされていることを実証する(validate)ことは実行可能な選択肢である。
[0034] 次に、動作312において、TPH150は、TrEE140への配信のための保護データーを、例えば、先に説明したように、KMS115から入手することができる。動作310によってアクセスしたTrEE公開鍵を使用して、TPH150は、次に、動作314において、入手した保護データーを含むメッセージを、TrEE140に送るために、作成する(construct)ことができる。TPH150は、動作316において、このメッセージを要求元120に送ることができる。
[0035] このメッセージを受信すると、動作318において、要求元120はこれをTrEE140に転送することができる。要求元120はTrEEの秘密鍵にアクセスすることができないので、要求元120は、メッセージを解読して保護データーにアクセスすることができない。動作320において、TrEE140は、その秘密鍵を使用してメッセージを解読し、保護データーにアクセスすることができる。
[0036] 図4Aは、信頼できない要求元のTrEEに保護データーを配信するためのプロセス例400を示す。プロセス400は、公開鍵−秘密鍵対の公開鍵のような、TrEEと関連付けられた暗号鍵を利用することができる。これは、TrEEによって生成されるか、またはネスト状TrEEの場合のように、TrEEを開始した要求元のセキュア・カーネルによって生成され、ここではこれをトラストレットと呼ぶことができる。加えてまたは代わりに、プロセス400は、外部TrEEと見なしてもよい、セキュア・カーネルの署名鍵を利用してもよい。トラストレットは、ネストされるかまたは、TrEEと関連付けられたセキュア・カーネル上で実行する。署名鍵は、TrEEによって生成された鍵対の内公開鍵を証明する(certify)ために使用することができる。これについては、以下で更に詳しく説明する。
[0037] プロセス400にしたがって、動作402におけるTrEEの初期化後に、要求元120は、動作406において、証明報告(attestation report)または報告書(statement)を証明サービスに要求することができる。図4Bは、証明報告書または報告を証明サービス424から入手するためのプロセス例を示す。図4Bの例では、要求元120は、動作426において、TrEE140(トラストレット)の公開鍵(IDK_E)またはTrEE(セキュア・カーネル)の署名鍵(IDK_S)を収容するブート(boot)において、証明ログ(TCGログ)を作成することができる。次いで、動作428において、要求元120は、TCGログを証明サービス424に提示することができる。場合によっては、TPH150は、TPH150によって信頼された証明サービスを指示する(direct)か、または、要求元120がこの証明サービスを選択することもできる。動作430において、証明サービス424は、TCGログを検査し、TrEE140(セキュア・カーネル)の暗号鍵(IDK_E)および/または署名鍵(IDK_S)に基づいて、TrEE健全性証明書(THC)を発行することができる。次いで、証明サービス242は、動作432において、THC(ここでは、証明報告書とも呼ぶ)を要求元120に返すことができる。
[0038] 動作406において証明報告書を入手すると、要求元120は、動作408において、この証明報告書および保護データーを求める要求をTPH150に、TrEE140の代わりに送ることができる。THC即ち証明報告書は、要求元120の項目名(認証中に断定された要求元の識別情報と証明書との間でバインド(binding)を作成するため)と、応答を定式化するときに応答側(TPH150)が使用すべき鍵(例えば、暗号鍵または署名鍵)とを収容することができる。
[0039] ある態様では、信頼できるプラットフォーム・モジュール(TPM:trusted platform module)の暗号鍵(EK)というような、改竄防止識別情報を、要求元120と関連付ける。要求元120の証明は、当技術分野では知られているように、TPM EKを使用して実行することができる。
[0040] ある態様では、帯域外において、またはTHCの一部であってもよい発行ポリシー(IP:issuance policy)オブジェクト識別子(OID:object identifier)を通じて、TrEEは、要求元120を介して、TPH150に、鍵が暗号鍵かまたは署名鍵か伝えることもできる。使用する鍵間の選択は、先に説明したように、応答を構成する(structure)ために使用するメカニズムの選択に影響を及ぼす可能性がある。重要なこととして、証明書を裏付ける秘密鍵の所有の証明は、TPH150によって要求されない。 これは、単に、要求元は対応する秘密鍵にアクセスすることができないため、間違った証明書が与えられた場合、要求元120は応答を全く解明することができないからである。
[0041] 図5Aおよび図5Bは、信頼できない要求元のネスト状TrEEに保護データーを配信するためのプロセス例500を示す。ある態様では、1つのTrEEが他のTrEE内に収容されるように、2つ以上のTrEEがネストされることもある。本明細書において言及する場合、トラストレットとは、外側のTrEEに収容されたネスト状TrEEである。一例では、外側のTrEEが、仮想信頼レベルと関連付けられたメモリーの特定のパーティションのような、オペレーティング・システムの信頼部分のセキュア・カーネルを含んでもよい。これについては、図6を参照して以下で更に詳しく説明する。プロセス500は、例えば、外側のTrEEの暗号鍵だけが入手可能であるときに利用することができる。場合によっては、外側のTrEEは、トラストレットをインスタンス化した機械のセキュア・カーネルであってもよい。
[0042] プロセス500は、動作502において開始することができ、ここで、要求元120は、この要求元120によって決定された「セッション識別子」を有するトラストレットを起動する。セッション識別子は、トラストレットがどのコンテンツまたはデーターに作用するかに関するあるいは特定する識別子、トラストレット(例えば、「特定のタイトル」を再生するためのストリーミング・コンテンツ・アプリケーション・トラストレット) のユーザーに関する識別子等のように、任意の種類の識別子を含んでもよい。一例では、セッションIDは32ビット値であってもよい。この値は、保存することができ、トラストレットの使用期限(lifetime)の間読み取り専用であってもよく、トラストレットをターゲットにしたメッセージを受信するときに、セキュア・カーネルに入手可能であってもよい。この値がない可能性もあり(プロセス起動時に指定されていない)、その場合、セッションIDはゼロであると仮定することができる。
[0043] 次に、動作504において、要求元120はTPH150に認証することができる(前述のように随意であるが、要求元間に実際に相違がない場合というような、非常に限られた状況においてのみ随意である)。TrEE(例えば、TrEEの鍵)と要求元の識別情報との間にバインドがあることが望まれる一例は、実例をあげると、映画のようなコンテンツ項目の再生が、ライセンスまたは加入者の妥当性判断(validation)によって制約されるときである(例えば、NetFlixユーザーが映画を再生するためのライセンスを取得したいが、NetFlixは、映画のライセンスを受けるのはその加入者であることを確認したい(それらのTrEE内部で))。
[0044] 要求元120は、図4Bを参照して先に説明したプロセス406にしたがってというようにして、動作506において、TPH150によって信頼されている証明サービスから、証明報告書を入手することができる。次に、要求元120は、動作508において、証明報告書をTPH150に提示することができる。尚、先に説明したクリーン・ルーム・プロビジョニングの例では、証明は必要でないことは認められてしかるべきであり、ここでも該当するとしてよい。
[0045] 証明報告書を受信すると、動作510において、TPH150はこの証明報告書を検証することができる(または、先のクリーン・ルーム・プロビジョニングの例の場合、要求元の識別情報に基づいてその鍵を調べる)。プロセス500のこの時点において、要求元120は、外側TrEEにアドレスするためにはどの鍵を使用すべきか分かっている。ある態様では、証明報告書または要求から得られた鍵は、外側TrEEまたはセキュア・カーネル(そして、内側トラストレットではない)の暗号鍵であるという指示を、要求または証明報告書と共に含ませることができ、あるいは他の方法でまたは帯域外において、デフォルト手順として設定して等で、TPH150に伝達することができる。次に、動作511において、TPH150は、要求において示された保護データーを、例えば、KMS115から、あるいはライセンス、パスワード、許可、および/またはその他の情報を保持している1つ以上のサービスというような、保護データーを保持している任意の他のエンティティから入手することができる。
[0046] TPH150は、動作512において、例えば、要求に基づいて、またはTPH150自体に基づいて、ターゲットにするのはどのトラストレット・タイプか決定することができる(例えば、NetFlixのような特定の目的またはアプリケーションに合わせて特定的に、 各TPH150を設計することができる)。先に図1Cを参照して説明したような、KPを利用する例では、トラストレット・タイプをKPにおいてエンコードすることができる。いくつかの他の例では、トラストレット・タイプは、HGS150aを利用する実施態様におけるように、デフォルトで設定する、またはハード・コード化することができる。HGSの例では、HGS150aは、常に、仮想モード・セキュア・プロセス(VMSP)トラストレットをターゲットにすることができる。このトラストレット・タイプは、ハード・コード化されてもよい(KPはその情報を収容していないため)。
[0047] ターゲットにすべきトラストレット・タイプを決定するとき、TPH150は、動作514において、TrEEに送る保護データーを含むメッセージを組み立てる(construct)ことができる。動作514の更に詳しい例を図5Bに示す。
[0048] ある態様では、動作514は、更に、動作536を含むことができ、ここで、TPH150は2つのランダム対称鍵、転送鍵TXおよびラッピング・キーTWを生成する。次に、TPH150は、動作538において、THC(証明報告書の一部)における公開鍵を使用してTXを暗号化することができる(例えば、THCは、署名鍵ではなく、暗号鍵に基づくと仮定する)。ある態様では、動作538は、RSA暗号化およびOAEPパディングを使用して、ホストのIDKでTXを暗号化する動作を含むことができる。ある態様では、TPH150は、動作540において、例えば、トラストレットが認可されていること、または保護データーにアクセスする正しい許可を有すること(例えば、オンライン・サービスまたはコンテンツ項目に対して支払いを済ませている)を検証するために、トラストレットのセッションIDを検証することができる。場合によっては、セッションIDがトラストレット・タイプを含むこともあるが、他の例では、トラストレット・タイプは、KPにエンコードされる、またはハード・コード化されることさえもある。次いで、TPH150は、動作542および544において、TXを使用してTWを暗号化することができ、トラストレット・タイプおよびトラストレットのセッションIDを連結し(concatenated)、「認証タグ」として使用することができる。尚、認証タグの使用は、AES−GCMプロトコルのアーチファクトであり、他の暗号化プロトコルは異なる方式を使用して、同じ効果が得られることを注記しておく。認証タグの背後にある考えは、TWをトラストレット・タイプおよびセッションIDと一緒に、これらが送信中に攻撃者によって切断されることができないように、バインドすることである。これを暗号を使用して達成するには、複数の他の方法がある。本明細書においてAES−GCMについて記載したのは、この機能をネーティブに(natively)提供するからであり、したがって有利であるからである。
[0049] 次いで、TPH150は、動作546において、暗号化TXと、TWの認証付き暗号とを要求元120に送ることができる。図5Aに戻って、図5Bの動作によって生成することができる、および/またはTWと同様の方法で暗号化された保護データーを含むことができるメッセージ516を受信した後、要求元120は、動作518において、このメッセージをトラストレットに転送することができる。トラストレットはメッセージを解読することができないので(TWにおいて取得しようとする)、トラストレットは、動作520において、このメッセージをセキュア・カーネルに渡すことができる。あるいは、要求元120が、トラストレットを迂回して、応答をセキュア・カーネルに送ることもでき、セキュア・カーネルは、それがTWを解読したときに、トラストレットに新たな情報を気付かせる。
[0050] 次に、動作522において、セキュア・カーネルは、その秘密暗号鍵を使用して、TXを解読し、次いでこのTXを使用してTWを解読し、認証タグを使用して、正しいセッションIDを有する正しいトラストレット・タイプが、メッセージを解読することを要求していることを確認することができる。認証タグが検証された場合、動作524において、セキュア・カーネルはTWをトラストレットに返すことができる。次いで、トラストレットは、受信したTWを使用して、任意のサイズでよい保護データーのような、TWが暗号化しているものは何でも、解読することができる。
[0051] ある態様では、セキュア・カーネルが、メッセージを受信し、解読し、ターゲットにされている正しいトラストレットに渡すために、1つ以上のAPIによって定められるような、1つ以上のプロセスを実装することができる。APIは、暗号化され特定のトラストレットがターゲットにされたメッセージを受信し、IDK(セキュア・カーネル識別情報暗号鍵)の秘密部分を使用して、TXを解読することができる。APIは、コール元トラストレットのトラストレット・タイプとセッションIDとの連結(concatenation)をタグとして使用して、それ自体の認証タグを組み立てることができる(明らかなセキュリティ上の理由により、供給された認証タグを使用することはできない)。次いで、トラストレット・タイプおよびセッションIDを入手することができる。認証に成功したなら、APIは次にTXを使用してTWを解読することができる。解読に成功したなら、APIは次にTWをトラストレットに返すことができる。
[0052] 一例では、受信されたメッセージは、次の情報を含むことができる。バージョン数(例えば、0)、転送鍵暗号プロトコルID(例えば、RSA2048)、転送鍵暗号パディングID(例えば、OAEP)、ラッピング・キー暗号プロトコルID(例えば、AES−GCM)、転送鍵暗号文の長さ、ラッピング・キー認証タグの長さ(無視される)、ラッピング・キー暗号文の長さ、ならびに、転送鍵暗号文、ラッピング・キー認証タグ(無視される)、およびラッピング・キー暗号文。尚、これは、メッセージを組み立てることができる多くの方法の中の一例に過ぎないことは、認められてしかるべきである。
[0053] ある態様では、以上で説明したシステムまたはプロセス100、300、400、または500の1つ以上において、プロセス/システム100は、リソース、または仮想セキュア・モード(VSM:Virtual Secure Mode)を実装する仮想機械において実装することもできる。仮想機械のコンテキストにおけるVSMおよび関連する概念は、"Virtual Secure Mode for Virtual Machines"(仮想機械のための仮想セキュア・モード)と題し、2014年2月21日に出願された米国特許出願第14/186,415号(米国特許出願公開第2015/082305号明細書)に記載されている。図6は、異なる仮想信頼レベルVTL0 610およびVTL1 615に分割されたVSMコンピューティング環境を含む、システムまたはホスト・オペレーティング・システム600を示す。システム600は、VSMにおいて動作するコンピューティング環境を含むクラウド・ホスト180のような、システム100a、100b、または100cの1つ以上の態様を更に具体化した実施態様であるとしてもよい。VTL0 610は、ユーザ・モード620と通常カーネル・モード630とを含むことができ、VTL1 615は、ユーザ・モード625とセキュア・カーネル・モード635とを含むことができる。異なるVTLは、例えば、物理コンピューティング・コンポーネントまたは仮想コンピューティング・リソース(例えば、1つ以上の仮想機械)上で実行するハイパーバイザーによって供給することができ、ハイパーバイザーは、VTL0 610およびVTL1 615と相互作用し、特定のプロセス等のためのメモリーへのアクセスに対する制約によってVTL0 610およびVTL1 615を定める。図示する例では、VTL1 615がVTL0 610よりも保護されて、VTL1と関連付けられたデーターもしくはコードを読み取るおよび/または書き込むためにはより高度なアクセスが要求されるようにしてもよい。VTL0 610は、要求元120に対応するとしてもよく、一方VTL1 615はTrEE140に対応するとしてもよい。システム600については、以下で、KP700を利用するものとして説明する。しかしながら、これは一例として示すに過ぎず、システム600は、KPを使用せずに、先に説明した証明/認証方式を利用しても、同様の効果を得ることができる。
[0054] システム600を参照しながら説明したように、ホスト600のクライアント・アプリ650/VTL0 610は、要求元120に対応するとしてもよく、一方VTL1 615および更に具体的には、VTL1 615のセキュア・カーネル635はTrEE140に対応するとしてもよい。ある態様では、トラストレット640が、プロセス500を参照しながら説明した、ネスト状トラストレットに対応するのでもよい。ある態様では、システム600が、先に説明したプロセス500を実装してもよい。他の例では、システム600は、図8および図9を参照しながら以下で説明するプロセス800および/または900を実装することもでき、プロセス500および800間における主要な相違は、トラストレットを初期化するためにKPを使用すること、そして一層包括的なTPH150の代わりに、HGS150aの具体的な実施態様を使用することである。
[0055] 図示のように、1つ以上のTrEEまたはトラストレット640は、VTL1 615のユーザ・モード625に内在することができる。ある態様では、1つ以上のトラストレット640にアクセスすること、または仮想機械セキュア・プロセス(VMSP:Virtual Machine Secure Process)645と関連付けることができる。クライアント動作、アプリケーション、プログラム等を含む650(クライアント)は、VTL0 610のユーザ・モード620において動作することができる。VTL1 615のユーザ・モード625に内在するサーバー655は、RPC660を介して、クライアント650と通信することができる。図示のように、クライアント650は、例えば、VMSP645を利用して、1つ以上のRPC660を介して、1つ以上の安全な動作を実行するために、トラストレット640の開始(initiation)を要求することができる。他の態様では、サーバー655が、クライアント650からの明示的な要求を受けることなく、トラストレット640を開始することもできる。いずれの場合であっても、サーバー655は、トラストレット(1つまたは複数)640を開始することができ、特定のトラストレット・タイプがトラストレットのパラメータを識別し、セッションIDがトラストレット640の特定のインスタンスを識別する。ある態様では、図1Cを参照しながらシステム100cにおいて先に説明したような、KP405を含むデーター構造によって、トラストレット・タイプを初期化することができる。KP700のようなKPを含むデーター構造の例を図7に示す。
[0056] データー構造700は、キー・プロテクター(KP:key protector)705を含むことができる。これは、"Secure Transport of Encrypted Virtual Machines with Continuous Owner Access"(連続所有者アクセスによる暗号化仮想機械の安全な移送)と題し、2014年9月9日に出願された米国特許出願第14/481,399号(米国特許出願公開第2015/318986号明細書)に記載されているような、暗号鍵(ここでは、トランスポート・キーTK)の暗号ラッピング(cryptographic wrapping)である。KP705は、TK710および/またはその他の保護データーに対するアクセスが、正規エンティティのみに与えられることを確保する。TK710は、TrEE140に配信される鍵であり、KP705によって、あるいは場合によってはラッピング・キーまたはTWによってラッピングすることができる。TK710は、価値が高い秘密と見なすこともできる。場合によっては、TK710をKMS115において解読することができる。
[0057] また、データー構造700は、仮想機械データー(VMD:virtual machine data)730も含むことができ、仮想機械データー730は、トラストレットを初期化するためのデーターを含むことができる。VMD730は、ワシントン州RedmondのMicrosoft Corporationから入手可能なBitLockerのような、該当する暗号化技術を使用して暗号化することができる。フル・ボリューム暗号鍵(FVEK:full volume encryption key)725は、VMD730を解読するために使用することができ、仮想信頼プラットフォーム・モジュール(VTPM:virtual trusted platform module)によって保護することができる。その状態(725)は、暗号化され、メタデーターの一部としてKP705と共に格納される。ある態様では、FVEK725は、ボリューム・マスター・キー(VMK)720によって暗号化することもできる。VTPM状態725自体は、KP705によってラッピングされた鍵を使用して暗号化される。ある態様では、VTPM725は、PCR値が予測された状態にある場合、TPMが鍵素材へのアクセス、例えば、解読を許可するように、TK710(価値が高い秘密)およびPCR値に対する「密封」(seal)データー(例えば、PCR7)によって暗号化することもできる。この場合、TPMプロテクタは、1つ以上のPCRが予測された状態にある場合何らかの秘密を開封する(unseal)ためにTPMに供給されるデーター構造である。その他の場合、非TPMプロテクタも同様に使用することができる。
[0058] ボリューム・マスター・キー(VMK)720は、VTPM725によって開封することができる。VTPM状態725は、KP705内部でTK710によって暗号化することができる。場合によっては、VMK720がビットロッカー・ボリューム・マスター・キー(Bitlocker Volume Master Key)であってもよく、価値が低い秘密という印を付けることができる。
[0059] KP700の各フィールドまたはブロックは、暗号(鍵、データー)表記のように、それが暗号化するものに関して記述することもできる。
VMDDISK:暗号(FVEK、平文ディスク・データー)
FVEKDISK:暗号(VMK、FVEK)
VMKDISK:暗号(VMK)
VTPMDISK:暗号(TK、VTPM)
TKDISK:暗号(KP、TK)
KP:KPは、VMと関連付けられ、トラストレットは実際には決してそれを見るには至らない。KPはKMSに送られ(goes to)、KMSはそれを解読し、TKをトラストレットに返す(先に説明したターゲティング・メカニズムによって)。TKはvTPMを解読し、vTPMはVMKを開封し、FVEKを生成する。
VMDDISK:暗号(FVEK、平文ディスク・データー)
FVEKDISK:暗号(VMK、FVEK)
VMKDISK:暗号(VMK)
VTPMDISK:暗号(TK、VTPM)
TKDISK:暗号(KP、TK)
KP:KPは、VMと関連付けられ、トラストレットは実際には決してそれを見るには至らない。KPはKMSに送られ(goes to)、KMSはそれを解読し、TKをトラストレットに返す(先に説明したターゲティング・メカニズムによって)。TKはvTPMを解読し、vTPMはVMKを開封し、FVEKを生成する。
[0060] 一例では、KP405、VTPM状態415、VMK420、およびVMD430は、ディスク上に格納されたデーターであってもよい。VTPM状態415は、VTPMが作成されたときに初期化されてもよく、一意であることが確保されればよい。例えば、生成された秘密または保護データーのランタイム一意性について、VTPMはセキュア・カーネルによって提供されるRNGのセキュリティを頼りにする。トラストレットが解読されたTK710を使用してVTPM状態415を解読した後、VMD730にアクセスするための残りの動作は、物理機械と物理TPMとの間で実行される動作と同じまたは同様であってよい。これらの動作には、VTPMがVSMの測定を実行すること、VTPM測定値を使用してVMKを開封すること(その結果、FVEK725をオペレーティング・システムのローダーに供給することになる)、およびオペレーティング・システムがFVEK725を使用してVMD730を解読することを含むことができる。
[0061] トラストレットを起動するために、クライアント650はデーター構造700を要求する、および/または受け取ることができる。クライアント650は、KP705またはデーター構造700全体をTPH150に送ることができ(または、ある実施態様では、HGS150a)、TPH150は、TK710を解読するために、KMS115と通信することができる。次いで、TPHは、例えば、以下で説明するプロセス800によって、IDK_pub665を利用して、トラストレット640と関連付けられたセキュア・カーネル635において、TK710をターゲットにすることができる。セキュア・カーネル635は、起動時に、IDK_pubおよびIDK_priを入手することができる。セキュア・カーネル635は、その秘密鍵675(例えば、IDK_pri)を使用して、TK710を解読しサーバー655に返すことができる。次いで、サーバー655はTK710をトラストレット640に配信することができる。場合によっては、セキュア・カーネル635はTK710を直接トラストレット640に返すこともできる。ある態様では、保護データーをTK710と共にトラストレット640に配信し、TK710によって暗号化することができる。このように、トラストレット640は、TK710を使用して、保護データーを解読することができる。
[0062] 図8は、TrEEまたはトラストレットの識別鍵(identity key)を使用して、トランスポート・キーおよび/またはこのトランスポート・キーによって暗号化された保護データーを、TrEEまたは特定のトラストレットに導くためのプロセス例800を示す。更に具体的には、プロセス800は、トラストレットのセキュア・カーネルの暗号鍵によって、トラストレットをターゲットにする方法を示す。
[0063] クラウド・ファブリック・ホストまたはホストOS(例えば、ホストOS600)は、トランスポート・キーを受け取るために一連のステップを実行する。クラウド・ファブリック・ホストは、最初に、図4Bを参照しながら先に説明したプロセスにしたがってというようにして、動作602において、例えば、TrEEまたはトラストレットと関連付けられたセキュア・カーネルの暗号識別鍵(IDK_E)の周囲に作られた(build)TrEE健康証明書(THC)を入手することができる。1つの態様では、動作602は、IDK_Eの公開バージョンを収容するブートにおいて、ホストによって証明ログ(TCGログ)を作成する動作を含むことができ、IDK_Eの秘密部分は、トラストレットと関連付けられたVSMセキュア・カーネル(SK)内に存在する。証明ログは、証明サービス(AS)に提示することができる。ASは、この証明ログを検査し、IDK_Eの周囲に作られたTHC(例えば、非対称鍵の公開部分)をホストに発行することができる。ある態様では、IDK_Eと同様、「署名識別鍵」(DDK_S)も作成することができ、図9を参照して以下で更に詳しく説明するように、署名識別鍵はその周囲に作られた別個のTHCを有することができる。鍵配信問題に対する解決策は、以下で説明するように、IDK_EまたはIDK_Sのいずれかを使用して構築することができる。
[0064] 新たな遮蔽(shielded)VMをロードするときが来たとき、ホストは、動作804において、VMのKPを入手し、TPH(例えば、TPH150)との会話(conversation)を開始する。その目的は、KPによって暗号化されたTKをVMSPトラストレットに注入することである。
[0065] KPをTKと交換するために、ホストは、動作806において、TPH150のようなTPHに、KPおよび「トランスレット識別情報」を、THCと共に、提示することができる。また、クラウド・ファブリック・ホストは、動作808において、KPから導き出された「セッションID」(KPSID)を有するトラストレットまたはTrEEを開始することもできる。ある態様では、受信したKPが、SHA−2ハッシュをそれに対して作成する、または他の一方向関数を利用することによって、セッションID値の基礎を形成する。TPHは、動作822において、THCを検査し、動作824において、KPを解読してTKにアクセスするために、KMS115のようなKMS、あるいは所有する他のエンティティ、もしくは保護データーおよび/またはKPに対する解読鍵にアクセスすることができる他のエンティティと通信することができる。動作826において、TPHは、例えば、プロセス500を参照しながら先に説明したように、特殊な暗号構成を使用して、計算したKPSIDを有するトラストレットをターゲットにすることができる。
[0066] 要求元またはクライアント650は、TPHからの応答を受信し、与えられたKPSIDと共にそれをトラストレットに転送することができる。トラストレットまたはサーバーは、動作810において、SVMセキュア・カーネルに、応答を解読しそれをTKに返すように要請することができる。セキュア・カーネルは、動作812において、応答を検査し、それがトラストレット・タイプおよびトラストレットのセッションIDをターゲットにすることの有効性を判断し(validate)、動作818において、一致がある場合、鍵だけを返す。このため、TPHの応答が悪の手に落ちた場合でも、意味を理解することは暗号的に不可能である。この鍵を受信したとき、ホストは、動作820において、この鍵を解読してTrEEに供給し、この時点で、プロセス800は終了することができる。
[0067] 図9は、セキュア・カーネルの署名鍵を使用して、トランスポート・キーおよび/またはこのトランスポート・キーによって暗号化された保護データーをトラストレットに導くための他のプロセス例900を示す。更に具体的には、プロセス900は、セキュア・カーネルの署名鍵によって証明されたトラストレットの暗号鍵によって、このトラストレットをターゲットにする方法を示す。
[0068] プロセス800は、全てのトラストレット間で共有される識別暗号鍵によって、どのように応答を間接的にトラストレットに導くことができるかを示す。しかしながら、TrEEが証明可能な識別署名鍵を有する場合、他の手法も使用してもよい。ここでは、各トラストレットがそれ自体の暗号鍵対を生成し、この対の公開鍵部であるIDK_Sを使用して、セキュア・カーネルに証明させることができる。尚、このような証明は、鍵をトラストレット・タイプおよびトラストレットのセッションIDに暗号的にバインドすることも必要であることを注記しておく。
鍵の証明=σIDK_S(Trustlet_Encryption_Key_Pub, Trustlet_Type, Session_ID)
ここで、σIDK_Sは、与えられた鍵を使用する、その入力()、およびそれに続くこれらの入力に対する署名の連結を示す。
ここで、σIDK_Sは、与えられた鍵を使用する、その入力()、およびそれに続くこれらの入力に対する署名の連結を示す。
この場合、要求元は、トラストレットの鍵を、THCおよび鍵証明(key certification)と共にTPHに提示し、TPHは、動作822および824において、プロセス800から差別化されるように、トランスポート・キーを暗号化してトラストレットの暗号鍵にすることによって応答する。
[0069] ある態様では、「セキュリティ・バージョン番号」(SVN:security version number)も、他の種類の攻撃を防止し、TrEEが古くなく、潜在的に攻撃されやすいバージョンではないことを確認するために、鍵証明において使用または指示されてもよい。場合によっては、セキュア・カーネルは証明されたが、内側トラストレットはされないならば(例えば、証明が既に行われた後に、トラストレットに要求(demand)がロードされた場合)、トラストレットのSVNを含ませることによって、THCには問題がなくても(okay)、古い方の攻撃されやすいトラストレットをターゲットにすることを拒否するように、TPH150に命令することができる。
[0070] プロセス800および900の2つの手法間における相違の1つは、トラストレットまたはTrEE ID、セッションID、およびトランスポート・キー間のバインドを実施するのは何か、ということである。プロセス800では、それはセキュア・カーネルであり、プロセス900では、それはTPH150である。他の主要な相違には、どのようにして応答を暗号的に構成するか(structure)があげられる。前者の場合では、応答はセキュア・カーネルに導かれ、次いで、セキュア・カーネルは、どのトラストレットが応答を見ることを許可されるか判断する。後者の場合では、応答は直接トラストレットに導かれ、トラストレットの鍵はセキュア・カーネルの鍵によって証明される。
[0071] ある態様では、以上で説明した技法は、コンテナに対する完全な資格証明の分離(credential isolation)に対応するために実装することもできる。基本的な問題は同じであり、コンテナはそのホストに資格証明書を要求すればよい。次いで、ホストはコンテナの代わりに何らかのKMSに資格証明書を要求することができる。要求された資格証明書が暗号化されずにホストに返された場合(例えば、資格証明書が要求に応じて到達し、コンテナ・イメージの一部でない)、「遅い資格証明バインド」(late credential binding)となる。このバインドは、有益であるが、資格証明書の分離には至らず、ホストが不正アクセスされた場合、資格証明書が開示されることになる。
[0072] 実施形態において、コンピューティング・システムは、
[0073] プロセッサーと、
[0074] プロセッサーに通信可能に結合されたメモリーと、
を備える。メモリーは、命令を格納し、プロセッサーによって命令が実行されると、コンピューティング・システムに次の動作を実行させる。
[0073] プロセッサーと、
[0074] プロセッサーに通信可能に結合されたメモリーと、
を備える。メモリーは、命令を格納し、プロセッサーによって命令が実行されると、コンピューティング・システムに次の動作を実行させる。
[0075] ネスト状TrEEと関連付けられた、潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取る動作であって、ネスト状TrEEが、セキュア・カーネル上で実行するトラストレットを備え、トラストレットがトラストレットIDと関連付けられる。
[0076] 証明報告書から導き出された第2暗号鍵で転送暗号鍵を暗号化する動作。
[0077] 保護データーを引き出す動作。
[0078] 転送暗号鍵および認証タグによって保護データーを暗号化する動作であって、認証タグが要求元をトラストレットIDとバインドする。
[0077] 保護データーを引き出す動作。
[0078] 転送暗号鍵および認証タグによって保護データーを暗号化する動作であって、認証タグが要求元をトラストレットIDとバインドする。
[0079] 暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給する。
[0080] 2.請求項1記載のコンピューティング・システムにおいて、トラストレットIDが、トラストレット・タイプおよびセッションIDを含む。請求項1記載のコンピューティング・システムにおいて。
[0080] 2.請求項1記載のコンピューティング・システムにおいて、トラストレットIDが、トラストレット・タイプおよびセッションIDを含む。請求項1記載のコンピューティング・システムにおいて。
[0081] 実施形態では、第2暗号鍵がセキュア・カーネル暗号鍵を含む。
[0082] 実施形態では、セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、暗号化した保護データーを解読するために必要とされる。
[0082] 実施形態では、セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、暗号化した保護データーを解読するために必要とされる。
[0083] 実施形態では、前述の命令が追加命令を含み、プロセッサーによって追加命令が実行されると、コンピューティング・システムに以下の動作を実行させる。
[0084] トラストレットIDを 認可トラストレットIDのリストと比較する動作。
[0084] トラストレットIDを 認可トラストレットIDのリストと比較する動作。
[0085] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、転送暗号鍵および認証タグで保護データーを暗号化する動作。
[0086] 実施形態では、セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信する方法において、トラストレットおよびセキュア・カーネルが双方共、潜在的に信頼できない要求元と関連付けられる。この方法は、以下のステップを含む。
[0086] 実施形態では、セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信する方法において、トラストレットおよびセキュア・カーネルが双方共、潜在的に信頼できない要求元と関連付けられる。この方法は、以下のステップを含む。
[0087] ターゲティング・プロトコル・ヘッドによって、ネスト状TrEEと関連付けられた潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取るステップであって、トラストレットがトラストレットIDと関連付けられる。
[0088] 証明報告書から導き出された第2暗号鍵で転送暗号鍵を暗号化するステップ。
[0089] ターゲティング・プロトコル・ヘッドによって、保護データーを引き出すステップ。
[0089] ターゲティング・プロトコル・ヘッドによって、保護データーを引き出すステップ。
[0090] 転送暗号鍵および認証タグによって保護データーを暗号化するステップであって、認証タグが要求元をトラストレットIDとバインドする。
[0091] 暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給するステップ。
[0091] 暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給するステップ。
[0092] 実施形態では、トラストレットIDがトラストレット・タイプとセッションIDとを含む。
[0093] 実施形態では、第2暗号鍵がセキュア・カーネル暗号鍵を含む。
[0093] 実施形態では、第2暗号鍵がセキュア・カーネル暗号鍵を含む。
[0094] 実施形態では、セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、暗号化した保護データーを解読するために必要とされる。
[0095] 実施形態では、この方法は、更に、以下のステップを含む。
[0095] 実施形態では、この方法は、更に、以下のステップを含む。
[0096] 潜在的に信頼できない要求元によって、暗号化した転送暗号鍵と、認証付き暗号化保護データー(authenticated encrypted protected data)とを受け取るステップ。
[0097] 潜在的に信頼できない要求元によって、暗号化した転送暗号鍵と、認証付き暗号化保護データーとをセキュア・カーネルに送るステップであって、セキュア・カーネルは、第2暗号鍵に対応する秘密第2暗号鍵で転送鍵を解読し、解読した転送鍵で保護データーを解読する。
[0097] 潜在的に信頼できない要求元によって、暗号化した転送暗号鍵と、認証付き暗号化保護データーとをセキュア・カーネルに送るステップであって、セキュア・カーネルは、第2暗号鍵に対応する秘密第2暗号鍵で転送鍵を解読し、解読した転送鍵で保護データーを解読する。
[0098] 実施形態では、潜在的に信頼できない要求元によって、暗号化した転送暗号鍵と、認証付き暗号化保護データーとをセキュア・カーネルに送るステップが、暗号化した転送暗号鍵と、認証付き暗号化保護データーとをトラストレットに送るステップを含み、トラストレットが、暗号化した転送暗号鍵と、認証付き暗号化保護データーとをセキュア・カーネルに転送する。
[0099] 実施形態では、セキュア・カーネルが、認証付き暗号化保護データーがトラストレットに向けられたものであることを、トラストレット・タイプおよびセッションIDに基づいて確認し、トラストレット・タイプおよびセッションIDに基づいて、解読した保護データーをトラストレットに送る。
[00100] 実施形態では、保護データーがラッピング・キーを含む。
[00101] 実施形態では、この方法は、更に、以下のステップを含む。
[00102] ターゲティング・プロトコル・ヘッドによって、トラストレットIDを、認可トラストレットIDのリストと比較するステップ。
[00101] 実施形態では、この方法は、更に、以下のステップを含む。
[00102] ターゲティング・プロトコル・ヘッドによって、トラストレットIDを、認可トラストレットIDのリストと比較するステップ。
[00103] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、ターゲティング・プロトコル・ヘッドによって、転送暗号鍵および認証タグで保護データーを暗号化するステップ。
[00104] 実施形態では、コンピューター読み取り可能記憶媒体が、セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信するための命令を含む。この媒体は命令を含み、コンピューター・システムによって命令が実行されると、少なくとも以下の動作を、コンピューター・システムに実行させる。
[00105] ネスト状TrEEと関連付けられた潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取る動作であって、トラストレットがトラストレットIDと関連付けられる。
[00106] 証明報告書から導き出された第2暗号鍵で転送暗号鍵を暗号化する動作。
[00107] 保護データーを引き出す動作。
[00108] 転送暗号鍵および認証タグによって保護データーを暗号化する動作であって、認証タグが要求元をトラストレットIDとバインドする。
[00107] 保護データーを引き出す動作。
[00108] 転送暗号鍵および認証タグによって保護データーを暗号化する動作であって、認証タグが要求元をトラストレットIDとバインドする。
[00109] 暗号化した転送暗号鍵、暗号化した保護データー、および暗号化した認証タグを要求元に供給する動作。
[00110] 実施形態では、トラストレットIDが、トラストレット・タイプとセッションIDとを含む。
[00110] 実施形態では、トラストレットIDが、トラストレット・タイプとセッションIDとを含む。
[00111] 実施形態では、第2暗号鍵が、セキュア・カーネル暗号鍵を含む。
[00112] 実施形態では、セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、暗号化した保護データーを解読するために必要とされる。
[00112] 実施形態では、セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、暗号化した保護データーを解読するために必要とされる。
[00113] 実施形態では、保護データーがラッピング・キーを含む。
[00114] 実施形態では、命令は、更に、コンピューティング・システム上で実行されると、コンピューティング・システムに、少なくとも以下の動作を実行させる命令を含む。
[00114] 実施形態では、命令は、更に、コンピューティング・システム上で実行されると、コンピューティング・システムに、少なくとも以下の動作を実行させる命令を含む。
[00115] トラストレットIDを、認可トラストレットIDのリストと比較する動作。
[00116] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、転送暗号鍵および認証タグで保護データーを暗号化するステップ。
[00116] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、転送暗号鍵および認証タグで保護データーを暗号化するステップ。
[00117] 以上で説明した技法は、以下で説明するように、1つ以上のコンピューティング・デバイスまたは環境上で実装することができる。図10は、例えば、要求元120、TrEE140、TPH150、ホストOS600、AS424、KMS115の内1つ以上を具体化することができる汎用コンピューティング環境の例を表す。本明細書において説明した技法のいくつかを具体化することができる。コンピューティング・システム環境1002は、適したコンピューティング環境の一例に過ぎず、ここに開示した主題の使用範囲や機能に関して限定を示唆することは全く意図していない。また、コンピューティング環境1002が、動作環境例1002において示されるコンポーネントの内いずれか1つまたは組み合わせに関して、何らかの依存性や要件を有するように解釈してはならない。ある実施形態では、種々の図示するコンピューティング・エレメントが、本開示の特定の態様をインスタンス化するように構成された回路を含むこともできる。例えば、本開示において使用する回路(circuitry)という用語は、ファームウェアまたはスイッチによって機能(1つまたは複数)を実行するように構成された特殊ハードウェア・コンポーネントを含むことができる。他の実施形態例では、回路という用語は、汎用処理ユニット、メモリー等を含み、機能(1つまたは複数)を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成される。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実施者(implementer)がロジックを具体化するソース・コードを書くのでもよく、このソース・コードは、汎用処理ユニットによって処理することができる、機械読み取り可能コードにコンパイルすることができる。技術的現状はハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間の差が殆どなくなるところまで発展したことは当業者は認めることができるはずであるので、特定の機能を実装するためにハードウェアまたはソフトウェアのどちらを選択するかは、実施者に委ねられる設計の選択事項に過ぎない。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換でき、ハードウェア構造自体を等価なソフトウェア・プロセスに変換できることは、当業者は認めることができる。つまり、ハードウェアの実施態様かまたはソフトウェアの実施態様かの選択は、設計選択事項の1つであり、実施者に委ねられる。
[00118] コンピューター1002は、移動体デバイスまたはスマート・フォン、タブレット、ラップトップ、デスクトップ・コンピューター、またはネットワーク接続されたデバイスの集合体、クラウド・コンピューティング・リソース等の内任意のものを含むことができ、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター1002によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブル媒体を含む。システム・メモリー1022は、リード・オンリー・メモリー(ROM)1023およびランダム・アクセス・メモリー(RAM)1060のような、揮発性および/または不揮発性メモリーの形態のコンピューター読み取り可能記憶媒体を含む。 基本入力/出力システム1024(BIOS)は、起動中のように、コンピューター1002内部のエレメント間で情報を転送するのを助ける基本的なルーチンを収容し、通例ROM1023に格納されている。RAM1060は、通例、処理ユニット1059に直ちにアクセス可能な、および/または処理ユニット1059上で現在処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図10は、オペレーティング・システム1025、アプリケーション・プログラム1026、TrEEターゲティング・アプリケーション1065を含むその他のプログラム・モジュール1027、およびプログラム・データー1028を示す。
[00119] また、コンピューター1002は、その他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例としてに過ぎないが、図10は、非リムーバブル不揮発性磁気媒体に対する読み出しまたは書き込みを行うハード・ディスク・ドライブ1038、リムーバブル不揮発性磁気ディスク1054に対する読み出しまたは書き込みを行う磁気ディスク・ドライブ1039、およびCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク1053に対する読み出しまたは書き込みを行う光ディスク・ドライブ1004を示す。動作環境例において使用することができるその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ1038は、通例、インターフェース1034のような非リムーバブル・メモリー・インターフェースを介して、システム・バス1021に接続され、更に、磁気ディスク・ドライブ1039および光ディスク・ドライブ1004は、通例、インターフェース1035または1036のようなリムーバブル・メモリー・インターフェースによって、システム・バス1021に接続される。
[00120] 以上で論じ図10に示したドライブおよびそれらに付随するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター1002のためのその他のデーターのストレージを提供する。図10において、例えば、ハード・ディスク・ドライブ1038は、オペレーティング・システム1058、アプリケーション・プログラム1057、その他のプログラム・モジュール1056、およびプログラム・データー1055を格納するものとして示されている。尚、これらのコンポーネントは、オペレーティング・システム1025、アプリケーション・プログラム1026、その他のプログラム・モジュール1027、およびプログラム・データー1028と同じであることも、異なることも可能である。オペレーティング・システム1058、アプリケーション・プログラム1057、その他のプログラム・モジュール1056、およびプログラム・データー1055には、ここでは異なる番号が与えられているのは、少なくとも、これらが異なるコピーであることを示すためである。ユーザーは、一般にマウス、トラックボール、またはタッチ・パッドと呼ばれる、キーボード1051およびポインティング・デバイス1052のような、入力デバイスを介して、コマンドおよび情報をコンピューター1002に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、網膜スキャナー等を含むこともできる。これらおよびその他の入力デバイスは、多くの場合、システム・バス1021に結合されたユーザー入力インターフェース1036を介して、処理ユニット1059に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェース、およびバス構造によって接続されてもよい。モニター1042またはその他の型式のディスプレイ・デバイスも、ビデオ・インターフェース1032のようなインターフェースを介して、システム・バス1021に接続される。モニターに加えて、コンピューターは、スピーカー1044およびプリンター1043のような他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース1033を介して接続することができる。
[00121] コンピューター1002は、リモート・コンピューター1046のような、1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク接続環境において動作することもできる。リモート・コンピューター1046は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイスまたは他の一般的なネットワーク・ノードであってもよく、通例、コンピューター1002に関して以上で説明したエレメントの多くまたは全部を含むことができるが、図10には、メモリー記憶デバイス1047しか示されていない。図10に示す論理接続は、ローカル・エリア・ネットワーク(LAN)1045およびワイド・エリア・ネットワーク(WAN)1049を含むが、他のネットワークを含むこともできる。このようなネットワーク接続環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、インターネット、およびクラウド・コンピューティング・リソースでは極普通である。
[00122] LANネットワーク接続環境において用いられる場合、コンピューター1002は、ネットワーク・インターフェースまたはアダプター1037を介してLAN1045に接続することができる。WANネットワーク接続環境において使用される場合、コンピューター1002は、通例、モデム1005、またはインターネットのようなWAN1049上で通信を確立する他の手段を含む。モデム1005は、内蔵型でも外付け型でもよく、ユーザー入力インターフェース1036または他のしかるべきメカニズムを介してシステム・バス1021に接続することができる。ネットワーク接続環境では、コンピューター1002に関して図示したプログラム・モジュールまたはその一部が、リモート・メモリー記憶デバイスに格納されてもよい。一例として、そして限定ではなく、図10は、リモート・アプリケーション・プログラム1048を、メモリー・デバイス1047上に存在するものとして示す。尚、 図示するネットワーク接続は例であり、コンピューター間で通信リンクを確立する他の手段を用いてもよいことは認められよう。
[00123] ある態様では、その他のプログラム1027は、先に説明したような機能を含む、TrEEターゲティング・コンポーネントまたはアプリケーション1065を含むこともできる。場合によっては、TrEEターゲティング・アプリケーション1065は、プロセス300、400、500、800、および/または900の動作の一部または全部を実行することができる。
[00124] 以上の章において説明したプロセス、方法、およびアルゴリズムの各々は、1つ以上のコンピューターまたはコンピューター・プロセッサーによって実行されるコード・モジュールにおいて具体化し、コード・モジュールによって完全にまたは部分的に自動化することができる。コード・モジュールは、ハード・ドライブ、ソリッド・ステート・メモリー、光ディスク等のような、任意の型式の非一時的コンピューター読み取り可能媒体またはコンピューター記憶デバイス上に格納することができる。プロセスおよびアルゴリズムは、部分的にまたは全体的に、特定用途回路内に実装することもできる。開示したプロセスおよびプロセス・ステップの結果は、例えば、揮発性または不揮発性ストレージのような、任意の種類の非一時的コンピューター・ストレージに、永続的にまたはそれ以外で、格納することができる。以上で説明した種々の特徴およびプロセスは、互いに独立して使用されてもよく、または種々の方法で組み合わされてもよい。全ての可能なコンビネーションおよびサブコンビネーションは、本開示の範囲内に該当することを意図している。加えて、特定の方法またはプロセス・ブロックは、実施態様によっては、省略されてもよい。本明細書において説明した方法およびプロセスは、いずれの特定のシーケンスにも限定されず、それに関係するブロックまたは状態は、しかるべき他のシーケンスで実行することができる。例えば、説明したブロックまたは状態は、特定的に開示したもの以外の順序で実行されてもよく、複数のブロックまたは状態を組み合わせて1つのブロックまたは状態にしてもよい。ブロックまたは状態の例は、連続して、並列に、または何らかのその他の様態で実行することができる。開示した実施形態例にブロックまたは状態を追加することも、削除することも可能である。本明細書において説明したシステム例およびコンポーネント例は、説明したもとのは異なる構成にしてもよい。例えば、開示した実施形態例と比較して、エレメントを追加すること、削除すること、または再構成することもできる。
[00125] また、種々の品目が、使用されている間メモリー内またはストレージ上に格納されているように示されたこと、そしてこれらの品目またはその一部は、メモリー管理およびデーター保全の目的のために、メモリーと他の記憶デバイスとの間で転送されてもよいことは認められよう。あるいは、他の実施形態では、ソフトウェア・モジュールおよび/またはシステムの一部または全部が、他のデバイス上にあるメモリーにおいて実行し、コンピューター間通信によって、図示したコンピューティング・システムと通信するのでもよい。更に、ある実施形態では、システムおよび/またはモジュールの一部または全部が、少なくとも部分的にファームウェアおよび/またはハードウェアでというように、他の方法で実装または提供されてもよく、ファームウェアおよび/またはハードウェアには、1つ以上の特定用途集積回路(ASIC)、標準的集積回路、コントローラー(例えば、しかるべき命令を実行することによるコントローラーであり、マイクロコントローラーおよび/または埋め込み型コントローラーを含む)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、複合プログラマブル論理デバイス(CPLD)等が含まれるが、これらに限定されるのではない。また、モジュール、システム、およびデーター構造の一部または全部は、しかるべきドライブによってまたはしかるべき接続を介して読み取るために、ハード・ディスク、メモリー、ネットワークまたは携帯用メディア商品というような、コンピューター読み取り可能媒体上に(例えば、ソフトウェア命令または構造化されたデーターとして)格納することもできる。本明細書および請求項に限って言えば、「コンピューター読み取り可能記憶媒体」という用語およびその変形は、波形、信号、および/またはその他の一時的および/または無形(intangible)通信媒体を含まない。また、システム、モジュール、およびデーター構造は、ワイヤレス系および有線/ケーブル系媒体を含む、種々のコンピューター読み取り可能送信媒体上において生成されたデーター信号(例えば、搬送波あるいはその他のアナログまたはディジタル伝搬信号の一部として)送信することもでき、種々の形態をなすこともできる(例えば、1つまたは多重化アナログ信号の一部として、あるいは複数のディスクリート・ディジタル・パケットまたはフレームとして)。このようなコンピューター・プログラム製品は、他の実施形態では、他の形態をなすこともできる。したがって、本開示は、他のコンピューター・システム構成でも実施することができる。
[00126] とりわけ、「できる」(can)、「であればできた」(could)、「かもしれない」(might) 、「してもよい」(may)、「例えば」(e.g.)等のような、本明細書において使用した条件付き表現は、別段特に明言されていなければ、または使用される文脈において他の意味に理解される場合を除き、一般に、特定の実施形態は特定の特徴、エレメント、および/またはステップを含むが、他の実施形態はこれらを含まないことを伝えることを意図している。つまり、このような条件付き文言は、一般に、特徴、エレメント、および/またはステップが1つ以上の実施形態に対して多少なりとも必要であることを含意することを意図するのではなく、あるいは1つ以上の実施形態が、これらの特徴、エレメント、および/またはステップがいずれかの特定の実施形態に含まれるか否か、あるいは実行されるか否かについて、著者(author)の入力または催促の有無には関係なく決定するロジックを必然的に含むことを含意することを意図するのでもない。「備える」(comprising)、「含む」(including)、「有する」(having)等の用語は、同意義語であり、包含的に使用され、追加のエレメント、特徴、アクト、動作等を除外しない。また、「または」(or)という用語は、その包含的な意味で使用される(そして、その除外的意味ではない)ので、例えば、エレメントのリストを接続するために使用される場合、「または」という用語は、そのリストにおけるエレメントの1つ、いくつか、または全部を意味する。
[00127] 以上、特定の実施形態例について説明したが、これらの実施形態は一例として提示されたに過ぎず、本明細書において開示した発明の範囲を限定することを意図するのではない。つまり、以上の説明において、何らかの特定の特徴、特性、ステップ、モジュール、またはブロックが必須である、または不可欠であることを含意することを意図するものはない。実際、本明細書において説明した新規な方法およびシステムは、種々の他の形態で具体化することもでき、更に、本明細書において説明した方法およびシステムの形態における種々の省略、交換、および変更も、本明細書において開示した発明の主旨から逸脱することなく、行うことができる。添付する特許請求の範囲およびその均等物は、本明細書において開示した発明の内特定のものの範囲および主旨に該当するような形態および変更に及ぶことを意図している。
Claims (15)
- コンピューティング・システムであって、
プロセッサーと、
前記プロセッサーに通信可能に結合され、命令を格納するメモリーと、
を備え、前記命令が前記プロセッサーによって実行されると、前記コンピューティング・システムに、
ネスト状TrEEと関連付けられた、潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書とを受け取る動作であって、前記ネスト状TrEEが、前記セキュア・カーネル上で実行するトラストレットを備え、前記トラストレットがトラストレットIDと関連付けられる、動作と、
前記証明報告書から導き出された第2暗号鍵で転送暗号鍵を暗号化する動作と、
前記保護データーを引き出す動作と、
前記転送暗号鍵および認証タグによって、前記保護データーを暗号化する動作であって、前記認証タグが、前記要求元を前記トラストレットIDとバインドする、動作と、
前記暗号化した転送暗号鍵、前記暗号化した保護データー、および暗号化した認証タグを前記要求元に供給する動作と、
を実行させる、コンピューティング・システム。 - 請求項1に記載のコンピューティング・システムにおいて、前記トラストレットIDが、トラストレット・タイプとセッションIDとを含む、コンピューティング・システム。
- 請求項2に記載のコンピューティング・システムにおいて、前記第2暗号鍵が、セキュア・カーネル暗号鍵を含む、コンピューティング・システム。
- 請求項3に記載のコンピューティング・システムにおいて、前記セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、前記暗号化した保護データーを解読するために必要とされる、コンピューティング・システム。
- 請求項1に記載のコンピューティング・システムにおいて、前記命令が、前記プロセッサーによって実行されると、前記コンピューティング・システムに、
前記トラストレットIDを、認可トラストレットIDのリストと比較する動作と、
前記トラストレットIDが、前記認可トラストレットIDのリストと関連付けられる場合にのみ、前記保護データーを前記転送暗号鍵および認証タグで暗号化する動作と、
を実行させる追加の命令を含む、コンピューティング・システム。 - セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信する方法であって、前記トラストレットおよびセキュア・カーネルが双方共、潜在的に信頼できない要求元と関連付けられ、前記方法が、
ターゲティング・プロトコル・ヘッドによって、前記ネスト状TrEEと関連付けられた潜在的に信頼できない要求元からの保護データーを求める要求と、前記セキュア・カーネルの証明報告書とを受け取るステップであって、前記トラストレットがトラストレットIDと関連付けられる、ステップと、
前記証明報告書から導き出された第2暗号鍵で転送暗号鍵を暗号化するステップと、
前記ターゲティング・プロトコル・ヘッドによって、前記保護データーを引き出すステップと、
前記保護データーを前記転送暗号鍵および認証タグで暗号化するステップであって、前記認証タグが前記要求元を前記トラストレットIDとバインドする、ステップと、
前記暗号化した転送暗号鍵、前記暗号化した保護データー、および暗号化した認証タグを前記要求元に供給するステップと、
を含む、方法。 - 請求項6に記載の方法において、前記トラストレットIDが、トラストレット・タイプとセッションIDとを含む、方法。
- 請求項7に記載の方法において、前記第2暗号鍵が、セキュア・カーネル暗号鍵を含む、方法。
- 請求項8に記載の方法において、前記セキュア・カーネル暗号鍵に対応する秘密セキュア・カーネル暗号鍵が、前記暗号化した保護データーを解読するために必要とされる、方法。
- 請求項7に記載の方法であって、更に、
前記潜在的に信頼できない要求元によって、前記暗号化した転送暗号鍵と前記認証付き暗号化保護データーとを受け取るステップと、
前記潜在的に信頼できない要求元によって、前記暗号化した転送暗号鍵および前記認証付き暗号化保護データーを前記セキュア・カーネルに送るステップであって、前記セキュア・カーネルが、前記第2暗号鍵に対応する秘密第2暗号鍵で前記転送鍵を解読し、前記解読した転送鍵で前記保護データーを解読する、ステップと、
を含む、方法。 - 請求項10に記載の方法において、前記潜在的に信頼できない要求元によって、前記暗号化した転送暗号鍵および前記認証付き暗号化保護データーを前記セキュア・カーネルに送るステップが、前記暗号化した転送暗号鍵および前記認証付き暗号化保護データーを前記トラストレットに送り、前記トラストレットが、前記暗号化した転送暗号鍵および前記認証付き暗号化保護データーを前記セキュア・カーネルに転送するステップを含む、方法。
- 請求項10に記載の方法において、前記セキュア・カーネルが、前記トラストレット・タイプおよびセッションIDに基づいて、前記認証付き暗号化保護データーが前記トラストレットに向けられたものであることを確認し、前記トラストレット・タイプおよびセッションIDに基づいて、前記解読した保護データーを前記トラスタオレットに送る、方法。
- 請求項6に記載の方法において、前記保護データーが、ラッピング・キーを含む、方法。
- 請求項6に記載の方法であって、更に、
前記ターゲティング・プロトコル・ヘッドによって、前記トラストレットIDを、認可トラストレットIDのリストと比較するステップと、
前記トラストレットIDが、前記認可トラストレットIDのリストと関連付けられる場合にのみ、前記ターゲティング・プロトコル・ヘッドによって、前記保護データーを前記転送暗号鍵および認証タグで暗号化するステップと、
を含む、方法。 - セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護デー タを配信するための命令を含むコンピューター読み取り可能記憶媒体であって、前記媒体が命令を含み、コンピューター・システム上で前記命令が実行されると、少なくとも、
前記ネスト状TrEEと関連付けられた潜在的に信頼できない要求元からの保護データーを求める要求と、前記セキュア・カーネルの証明報告書とを受け取る**動作であって、前記トラストレットがトラストレットIDと関連付けられる、動作と、
転送暗号鍵を、前記証明報告書から導き出された第2暗号鍵によって暗号化する動作と、
前記保護データーを引き出す動作と、
前記保護データーを、前記転送暗号鍵および認証タグによって暗号化する動作であって、前記認証タグが前記要求元を前記トラストレットIDとバインドする、動作と、
前記暗号化した転送暗号鍵、前記暗号化した保護データー、および暗号化した認証タグを前記要求元に供給する動作と、
を前記コンピューター・システムに実行させる、コンピューター読み取り可能記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/417,060 | 2017-01-26 | ||
US15/417,060 US10897459B2 (en) | 2017-01-26 | 2017-01-26 | Addressing a trusted execution environment using encryption key |
PCT/US2017/067460 WO2018140169A1 (en) | 2017-01-26 | 2017-12-20 | Addressing a trusted execution environment using encryption key |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020506612A true JP2020506612A (ja) | 2020-02-27 |
Family
ID=60991590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019540658A Pending JP2020506612A (ja) | 2017-01-26 | 2017-12-20 | 暗号鍵を使用した信頼実行環境へのアドレシング |
Country Status (18)
Country | Link |
---|---|
US (1) | US10897459B2 (ja) |
EP (1) | EP3574434B1 (ja) |
JP (1) | JP2020506612A (ja) |
KR (1) | KR102443857B1 (ja) |
CN (1) | CN110249332B (ja) |
AU (1) | AU2017396530B2 (ja) |
BR (1) | BR112019013398A2 (ja) |
CA (1) | CA3048894C (ja) |
CL (1) | CL2019002027A1 (ja) |
CO (1) | CO2019007876A2 (ja) |
IL (1) | IL268006B (ja) |
MX (1) | MX2019008694A (ja) |
NZ (1) | NZ754543A (ja) |
PH (1) | PH12019550116A1 (ja) |
RU (1) | RU2756048C2 (ja) |
SG (1) | SG11201905456UA (ja) |
WO (1) | WO2018140169A1 (ja) |
ZA (1) | ZA201903701B (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112015026372B8 (pt) * | 2013-04-18 | 2024-02-15 | Facecon Co Ltd | Dispositivo de comunicação que reforça a segurança para um arquivo armazenado em uma unidade virtual |
US10897360B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using clean room provisioning |
US10972265B2 (en) * | 2017-01-26 | 2021-04-06 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment |
US10771439B2 (en) * | 2017-06-28 | 2020-09-08 | Microsoft Technology Licensing, Llc | Shielded networks for virtual machines |
US10521360B1 (en) | 2017-10-18 | 2019-12-31 | Google Llc | Combined integrity protection, encryption and authentication |
US10509914B1 (en) * | 2017-10-27 | 2019-12-17 | Vmware, Inc. | Data policy implementation in a tag-based policy architecture |
US11475147B2 (en) | 2018-02-20 | 2022-10-18 | International Business Machines Corporation | Implementing policy-based container-level encryption |
US11095652B2 (en) * | 2018-02-20 | 2021-08-17 | International Business Machines Corporation | Implementing a separation of duties for container security |
US11443072B2 (en) | 2018-06-29 | 2022-09-13 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
US11126757B2 (en) | 2018-10-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Peripheral device |
KR102151904B1 (ko) * | 2019-03-26 | 2020-09-03 | 알리바바 그룹 홀딩 리미티드 | 블록체인 네트워크에서 사용을 위한 필드 프로그래밍가능 게이트 어레이 기반 신뢰 실행 환경 |
US11347875B2 (en) * | 2020-01-28 | 2022-05-31 | Intel Corporation | Cryptographic separation of memory on device with use in DMA protection |
US11469890B2 (en) * | 2020-02-06 | 2022-10-11 | Google Llc | Derived keys for connectionless network protocols |
US11888972B2 (en) | 2020-02-26 | 2024-01-30 | Red Hat, Inc. | Split security for trusted execution environments |
US11630683B2 (en) | 2020-02-26 | 2023-04-18 | Red Hat, Inc. | Low latency launch for trusted execution environments |
US11620411B2 (en) | 2020-03-24 | 2023-04-04 | Red Hat, Inc. | Elastic launch for trusted execution environments |
CN112597458B (zh) * | 2020-12-22 | 2023-12-01 | 北京八分量信息科技有限公司 | 基于可信认证进行身份认证的方法、装置及相关产品 |
CN113722726B (zh) * | 2021-02-09 | 2024-04-05 | 京东科技控股股份有限公司 | 基于软硬件协同的加解密方法及系统 |
KR102580570B1 (ko) * | 2021-10-15 | 2023-09-21 | 네이버클라우드 주식회사 | 클라우드 서버 내 가상 서버의 복호화 방법 및 이를 이용하는 클라우드 서버 |
CN114036527B (zh) * | 2021-11-04 | 2023-01-31 | 云海链控股股份有限公司 | 一种代码注入方法、代码运行端、代码注入端及相关设备 |
CN114553590B (zh) * | 2022-03-17 | 2023-08-22 | 抖音视界有限公司 | 数据传输方法及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150319160A1 (en) * | 2014-05-05 | 2015-11-05 | Microsoft Corporation | Secure Management of Operations on Protected Virtual Machines |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437771B2 (en) * | 2004-04-19 | 2008-10-14 | Woodcock Washburn Llp | Rendering protected digital content within a network of computing devices or the like |
US7697691B2 (en) * | 2004-07-14 | 2010-04-13 | Intel Corporation | Method of delivering Direct Proof private keys to devices using an on-line service |
US8538028B2 (en) | 2006-11-20 | 2013-09-17 | Toposis Corporation | System and method for secure electronic communication services |
US8059820B2 (en) * | 2007-10-11 | 2011-11-15 | Microsoft Corporation | Multi-factor content protection |
EP2335401A4 (en) * | 2008-10-10 | 2016-12-07 | ERICSSON TELEFON AB L M (publ) | SERVICE NODES, CONTROL PROCEDURES, USER NODES AND CONTROL PROCEDURES THEREFOR |
US8321956B2 (en) * | 2009-06-17 | 2012-11-27 | Microsoft Corporation | Remote access control of storage devices |
WO2011084117A1 (en) | 2009-12-18 | 2011-07-14 | Nokia Corporation | Credential transfer |
US8478996B2 (en) | 2009-12-21 | 2013-07-02 | International Business Machines Corporation | Secure Kerberized access of encrypted file system |
US9087200B2 (en) * | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
WO2012122994A1 (en) | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US10496824B2 (en) * | 2011-06-24 | 2019-12-03 | Microsoft Licensing Technology, LLC | Trusted language runtime on a mobile platform |
US8862767B2 (en) * | 2011-09-02 | 2014-10-14 | Ebay Inc. | Secure elements broker (SEB) for application communication channel selector optimization |
US9319884B2 (en) * | 2011-10-27 | 2016-04-19 | T-Mobile Usa, Inc. | Remote unlocking of telecommunication device functionality |
US9055443B2 (en) * | 2011-10-27 | 2015-06-09 | T-Mobile Usa, Inc. | Mobile device-type locking |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
WO2013127521A1 (de) | 2012-02-28 | 2013-09-06 | Giesecke & Devrient Gmbh | Verfahren zur computer-zugangskontrolle mittels mobilem endgerät |
US9172538B2 (en) * | 2012-04-20 | 2015-10-27 | T-Mobile Usa, Inc. | Secure lock for mobile device |
EP2680487B1 (en) | 2012-06-29 | 2019-04-10 | Orange | Secured cloud data storage, distribution and restoration among multiple devices of a user |
US8874916B2 (en) * | 2012-09-28 | 2014-10-28 | Intel Corporation | Introduction of discrete roots of trust |
US8924727B2 (en) | 2012-10-12 | 2014-12-30 | Intel Corporation | Technologies labeling diverse content |
US9578664B1 (en) * | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9141769B1 (en) | 2013-02-08 | 2015-09-22 | Amazon Technologies, Inc. | Secure transfer and use of secret material in a shared environment |
CN105027494B (zh) | 2013-03-14 | 2018-03-23 | 英特尔公司 | 公共云中的受信任的数据处理 |
US10177915B2 (en) * | 2013-03-15 | 2019-01-08 | Ologn Technologies Ag | Systems, methods and apparatuses for device attestation based on speed of computation |
CN105408913B (zh) | 2013-08-21 | 2019-03-15 | 英特尔公司 | 在云中隐私地处理数据 |
US9405912B2 (en) * | 2013-11-14 | 2016-08-02 | Microsoft Technology Licensing, Llc | Hardware rooted attestation |
US9514317B2 (en) * | 2013-12-19 | 2016-12-06 | Intel Corporation | Policy-based trusted inspection of rights managed content |
WO2015094326A1 (en) | 2013-12-20 | 2015-06-25 | Intel Corporation | Secure import and export of keying material |
EP2887607A1 (en) | 2013-12-23 | 2015-06-24 | Orange | Migration of assets of a trusted execution environment |
KR101891420B1 (ko) * | 2013-12-24 | 2018-08-23 | 인텔 코포레이션 | DaaS를 위한 컨텐츠 보호 |
US9686077B2 (en) * | 2014-03-06 | 2017-06-20 | Microsoft Technology Licensing, Llc | Secure hardware for cross-device trusted applications |
US9474095B2 (en) | 2014-03-26 | 2016-10-18 | Intel IP Corporation | Systems, methods, and devices for distributed setup for a device-to-device session |
US9411975B2 (en) | 2014-03-31 | 2016-08-09 | Intel Corporation | Methods and apparatus to securely share data |
GB201408539D0 (en) * | 2014-05-14 | 2014-06-25 | Mastercard International Inc | Improvements in mobile payment systems |
US10601978B2 (en) * | 2014-06-04 | 2020-03-24 | T-Mobile Usa, Inc. | Telecommunication device utilization based on heartbeat communication |
US9525668B2 (en) | 2014-06-27 | 2016-12-20 | Intel Corporation | Face based secure messaging |
US9519787B2 (en) * | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
US9940456B2 (en) * | 2014-12-16 | 2018-04-10 | Intel Corporation | Using trusted execution environments for security of code and data |
US9621547B2 (en) * | 2014-12-22 | 2017-04-11 | Mcafee, Inc. | Trust establishment between a trusted execution environment and peripheral devices |
US9860057B2 (en) | 2014-12-23 | 2018-01-02 | Intel Corporation | Diffie-Hellman key agreement using an M-of-N threshold scheme |
FR3031613B1 (fr) * | 2015-01-09 | 2018-04-06 | Ingenico Group | Procede de traitement d'une transaction a partir d'un terminal de communication. |
US10193700B2 (en) | 2015-02-27 | 2019-01-29 | Samsung Electronics Co., Ltd. | Trust-zone-based end-to-end security |
US9860221B2 (en) | 2015-03-10 | 2018-01-02 | Intel Corporation | Internet of things group formation using a key-based join protocol |
US9578008B2 (en) | 2015-05-11 | 2017-02-21 | Intel Corporation | Technologies for secure bootstrapping of virtual network functions |
EP3101607A1 (en) * | 2015-06-02 | 2016-12-07 | Orange | NFC-ENABLED DEVICES FOR & xA;PERFORMING SECURE CONTACTLESS TRANSACTIONS AND USING HCE |
US10079677B2 (en) * | 2015-06-05 | 2018-09-18 | Apple Inc. | Secure circuit for encryption key generation |
WO2017004447A1 (en) * | 2015-06-30 | 2017-01-05 | Activevideo Networks, Inc. | Remotely managed trusted execution environment for digital-rights management in a distributed network with thin clients |
US9781016B1 (en) * | 2015-11-02 | 2017-10-03 | Sprint Communications Company L.P. | Dynamic addition of network function services |
EP3179690A1 (en) | 2015-12-11 | 2017-06-14 | Gemalto Sa | Mobile device having trusted execution environment |
GB201522244D0 (en) * | 2015-12-16 | 2016-01-27 | Nagravision Sa | Hardware integrity check |
CN108475304B (zh) * | 2015-12-29 | 2021-08-13 | 华为技术有限公司 | 一种关联应用程序和生物特征的方法、装置以及移动终端 |
GB2546740A (en) | 2016-01-26 | 2017-08-02 | Worldpay Ltd | Electronic payment system and method |
US10412191B1 (en) * | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US20170289197A1 (en) | 2016-03-31 | 2017-10-05 | Qualcomm Incorporated | Transport layer security token binding and trusted signing |
US10277407B2 (en) * | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
US10581815B2 (en) * | 2016-05-02 | 2020-03-03 | Intel Corporation | Technologies for secure mediated reality content publishing |
KR102425368B1 (ko) | 2016-05-02 | 2022-07-27 | 삼성전자주식회사 | 가상 sim 운용 방법 및 그 장치 |
CN109075815A (zh) * | 2016-08-09 | 2018-12-21 | 华为技术有限公司 | 一种片上系统和处理设备 |
US10733284B2 (en) | 2016-10-06 | 2020-08-04 | Samsung Electronics Co., Ltd. | Trusted execution environment secure element communication |
US10700865B1 (en) * | 2016-10-21 | 2020-06-30 | Sequitur Labs Inc. | System and method for granting secure access to computing services hidden in trusted computing environments to an unsecure requestor |
KR102604046B1 (ko) | 2016-11-28 | 2023-11-23 | 삼성전자주식회사 | 전자 기기의 프로그램 관리 방법 및 장치 |
US10127409B1 (en) * | 2016-12-16 | 2018-11-13 | Square, Inc. | Tamper detection system |
US10530777B2 (en) | 2017-01-24 | 2020-01-07 | Microsoft Technology Licensing, Llc | Data unsealing with a sealing enclave |
US10419402B2 (en) | 2017-01-26 | 2019-09-17 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using signing key |
US10897360B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using clean room provisioning |
US10972265B2 (en) | 2017-01-26 | 2021-04-06 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment |
-
2017
- 2017-01-26 US US15/417,060 patent/US10897459B2/en active Active
- 2017-12-20 MX MX2019008694A patent/MX2019008694A/es unknown
- 2017-12-20 JP JP2019540658A patent/JP2020506612A/ja active Pending
- 2017-12-20 SG SG11201905456UA patent/SG11201905456UA/en unknown
- 2017-12-20 NZ NZ754543A patent/NZ754543A/en unknown
- 2017-12-20 CA CA3048894A patent/CA3048894C/en active Active
- 2017-12-20 AU AU2017396530A patent/AU2017396530B2/en active Active
- 2017-12-20 EP EP17829838.6A patent/EP3574434B1/en active Active
- 2017-12-20 BR BR112019013398-4A patent/BR112019013398A2/pt unknown
- 2017-12-20 WO PCT/US2017/067460 patent/WO2018140169A1/en unknown
- 2017-12-20 RU RU2019126625A patent/RU2756048C2/ru active
- 2017-12-20 CN CN201780084684.XA patent/CN110249332B/zh active Active
- 2017-12-20 KR KR1020197021865A patent/KR102443857B1/ko active IP Right Grant
-
2019
- 2019-06-10 ZA ZA2019/03701A patent/ZA201903701B/en unknown
- 2019-06-28 PH PH12019550116A patent/PH12019550116A1/en unknown
- 2019-07-11 IL IL268006A patent/IL268006B/en unknown
- 2019-07-19 CL CL2019002027A patent/CL2019002027A1/es unknown
- 2019-07-22 CO CONC2019/0007876A patent/CO2019007876A2/es unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150319160A1 (en) * | 2014-05-05 | 2015-11-05 | Microsoft Corporation | Secure Management of Operations on Protected Virtual Machines |
WO2015171476A1 (en) * | 2014-05-05 | 2015-11-12 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
Also Published As
Publication number | Publication date |
---|---|
RU2756048C2 (ru) | 2021-09-24 |
SG11201905456UA (en) | 2019-08-27 |
CA3048894A1 (en) | 2018-08-02 |
CL2019002027A1 (es) | 2019-12-13 |
US20180212940A1 (en) | 2018-07-26 |
AU2017396530B2 (en) | 2021-10-21 |
EP3574434A1 (en) | 2019-12-04 |
WO2018140169A1 (en) | 2018-08-02 |
IL268006A (en) | 2019-09-26 |
IL268006B (en) | 2022-01-01 |
RU2019126625A (ru) | 2021-02-26 |
RU2019126625A3 (ja) | 2021-04-08 |
NZ754543A (en) | 2023-03-31 |
US10897459B2 (en) | 2021-01-19 |
KR20190109419A (ko) | 2019-09-25 |
PH12019550116A1 (en) | 2019-12-02 |
BR112019013398A2 (pt) | 2020-03-03 |
KR102443857B1 (ko) | 2022-09-15 |
MX2019008694A (es) | 2019-09-11 |
CA3048894C (en) | 2024-06-04 |
CN110249332A (zh) | 2019-09-17 |
EP3574434B1 (en) | 2021-01-20 |
ZA201903701B (en) | 2020-10-28 |
AU2017396530A1 (en) | 2019-07-04 |
CN110249332B (zh) | 2023-05-23 |
CO2019007876A2 (es) | 2019-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110249332B (zh) | 使用加密密钥寻址可信执行环境 | |
CN110214440B (zh) | 计算系统,传送受保护数据的方法和可读存储介质 | |
CN110249336B (zh) | 使用签名密钥对可信执行环境的寻址 | |
EP3257227B1 (en) | Confidential communication management | |
CN110235134B (zh) | 使用洁净室供应来寻址可信执行环境 | |
NZ754540B2 (en) | Addressing a trusted execution environment using signing key |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220621 |