JP2020506611A - Addressing to a trusted execution environment using a signing key - Google Patents
Addressing to a trusted execution environment using a signing key Download PDFInfo
- Publication number
- JP2020506611A JP2020506611A JP2019540540A JP2019540540A JP2020506611A JP 2020506611 A JP2020506611 A JP 2020506611A JP 2019540540 A JP2019540540 A JP 2019540540A JP 2019540540 A JP2019540540 A JP 2019540540A JP 2020506611 A JP2020506611 A JP 2020506611A
- Authority
- JP
- Japan
- Prior art keywords
- trustlet
- key
- tree
- protected data
- requestor
- 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
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008685 targeting Effects 0.000 claims abstract description 55
- 238000010586 diagram Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 67
- 230000004044 response Effects 0.000 description 23
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 238000002955 isolation Methods 0.000 description 7
- 239000004744 fabric Substances 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000001012 protector Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100519163 Arabidopsis thaliana PCR7 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003752 polymerase chain reaction Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 238000004366 reverse phase liquid chromatography Methods 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010809 targeting technique Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- 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/602—Providing cryptographic facilities or services
-
- 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
- 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/0822—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 key encryption key
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本明細書では、信頼できない要求元と関連付けられたネスト状信頼実行環境(TrEE)に保護データーを配信するための方法、システム、およびデバイスについて記載する。ネスト状TrEEは、セキュア・カーネル上で実行するトラストレットを含むことができる。1つの態様では、ターゲティング・プロトコル・ヘッド、または要求元と鍵管理システムまたは保護データーの他のストアとの間における他の仲介が、潜在的に信頼できない要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書と、鍵証明報告書とを受け取ることができる。鍵証明報告書は、トラストレット公開暗号鍵とトラストレットIDとをバインドすることができる。ターゲティング・プロトコル・ヘッドは、保護データーを引き出し、トラストレット公開暗号鍵で保護データーを暗号化することができる。次いで、ターゲティング・プロトコル・ヘッドは、暗号化した保護データーを要求元に送ることができる。【選択図】図1ADescribed herein are methods, systems, and devices for delivering protected data to a nested trusted execution environment (TrEE) associated with an untrusted requestor. The nested TrEE may include a trustlet running on a secure kernel. In one aspect, the targeting protocol head, or other intermediary between the requester and the key management system or other store of protected data, includes a request for protected data from a potentially untrusted requestor; It can receive a secure kernel certificate report and a key certificate report. The key certificate report can bind the trustlet public encryption key and the trustlet ID. The targeting protocol head can extract the protected data and encrypt the protected data with a trustlet public encryption key. The targeting protocol head can then send the encrypted protected data to the requestor. [Selection diagram] FIG. 1A
Description
[0001] 本開示は、一般には、コンピューティング・デバイスにおける信頼および/または分離(isolated)実行環境に関し、更に特定すれば、1つ以上の秘密または鍵の信頼実行環境への安全な配信に関する。 [0001] The present disclosure relates generally to trusted and / or isolated execution environments in computing devices, and more particularly, to secure delivery of one or more secrets or keys to a trusted execution environment.
[0002] 鍵管理システム(KMS:key management system)とは、秘密の記憶装置(store)である。秘密とは、通例、公開ID、防護されている値(guarded value)、および誰がその値を入手することができるか管理するポリシーである。場合によっては、秘密は有効期限、その他のメタデーター等を有することもある。典型的な使用事例では、要求元(requestor)がKMSに認証し、安全なチャネルを確立し、秘密IDを提示することによって秘密値を要求し、平文の秘密値を要求元に戻すことをKMSに期待する。この値は、要求元とKMSとの間における安全なチャネルによって、不正な盗聴や改竄から保護される。 [0002] A key management system (KMS) is a secret storage device (store). A secret is typically a public ID, a guarded value, and a policy that governs who can access that value. In some cases, the secret may have an expiration date, other metadata, or the like. In a typical use case, the requestor authenticates to the KMS, establishes a secure channel, requests a secret value by presenting a secret ID, and returns the cleartext secret value to the requestor. Expect to. This value is protected from unauthorized eavesdropping and tampering by a secure channel between the requester and the 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から来たものとして、サードパーティへのメッセージに署名することを可能にする。 [0003] A Trusted Execution Environment (TrEE), as used herein, is a virtual secure mode (VSM) trustlet, an SGX application, an ARM TrustZone application, or some other similar vehicle. (vehicle). TrEE has several unique properties that commonly have in common. TrEE generally has a complete cryptographic stack (in other words, a full menu of features, ranging from secure random number generation to hashing, encryption, and signature libraries using private keys, across the spectrum). ) Can be assumed to have a wide variety of cryptographic primitives). Also, TrEE typically has or is associated with a few or limited I / O equipment, and is typically a request-driven architecture (where the request is initiated by an untrusted "outside world"). request driven architecture). For example, a VSM trustlet may use unauthenticated Remote Procedure Calls (RPC). TrEE can also access key material or data that is not available outside of TrEE. This allows TrEE, among other things, to store data using untrusted I / O and then retrieve it, ensuring tamper resistance and confidentiality of state. . TrEE also typically has or is associated with attestable code, configuration, and key material. Specifically, the verifiable key material allows TrEE to receive a message encrypted from it from a third party and sign the message to the third party as coming from TrEE. I do.
[0004] 他のアプリケーションと同様、TrEEによるKMSの使用においても安全性の限界が露呈することがある。したがって、KMSから供給される鍵を、TrEEと共に利用して、またはTrEEにおいて利用して、安全性を高めるための改善を行うことができる。 [0004] As with other applications, the use of KMS by TrEE may expose security limitations. Therefore, the key provided by the KMS can be used with or in TrEE to make improvements to enhance security.
[0005] 本開示の実例は、限定ではなく、方法、システム、および種々のデバイスを含む。1つの態様において、少なくとも部分的に、ターゲティング・プロトコル・ヘッド(targeting protocol head)、あるいは要求元と鍵管理システムまたはその他の保護データーの記憶装置との間における他の仲介によって、信頼されていない要求元と関連付けられたネスト状信頼実行環境(TrEE)に保護データーを配信する方法を実行することができる。ネスト状TrEEは、セキュア・カーネル上で実行するトラストレットを含むことができる。ターゲティング・プロトコル・ヘッドは、潜在的に信頼性がない要求元からの保護データーを求める要求、セキュア・カーネルの証明報告書(attestation statement)、および鍵証明報告書(key certification statement)を受信することができる。鍵証明報告書は、トラストレット公開暗号鍵およびトラストレットIDをバインドする(bind)ことができる。ターゲティング・プロトコル・ヘッドは、保護データーを引き出し、この保護データーを、トラストレット公開暗号鍵を用いて暗号化することができる。次いで、ターゲット・プロトコル・ヘッドは、暗号化した保護データーを要求元に送ることができる。 [0005] Examples of the present disclosure include, but are not limited to, methods, systems, and various devices. In one aspect, an untrusted request, at least in part, by a targeting protocol head, or other mediation between the requester and a key management system or other protected data storage. A method of delivering protected data to a nested trusted execution environment (TrEE) associated with an origin may be performed. The nested TrEE may include a trustlet running on a secure kernel. The targeting protocol head shall receive requests for protection data from potentially untrusted requestors, secure kernel attestation statements, and key certification statements. Can be. The key certificate report can bind the trustlet public encryption key and the trustlet ID. The targeting protocol head can extract the protected data and encrypt the protected data using a trustlet public encryption key. The target protocol head can then send the encrypted protected data to the requestor.
[0006] 本システムおよび方法のその他の特徴については、以下で説明する。特徴、機能、および利点は、種々の例において独立して達成することができ、または更に他の例では、組み合わされてもよく、その更なる詳細は、以下の説明および図面を参照することによって確認することができる。 [0006] Other features of the present systems and methods are described below. The features, functions, and advantages may be achieved independently in the various examples or may be combined in yet other examples, further details of which may be obtained by reference to the following description and drawings. You can check.
[0007] これより、本開示の実施形態について、添付図面を参照しながら、更に深く説明する。図面において、
[0018] 本明細書では、少なくとも1つの鍵(例えば、署名鍵または暗号鍵)または保護データー/秘密を、1つ以上の物理または仮想コンピューティング・デバイスのような、コンピューティング・デバイスの信頼実行環境(TrEE)内に安全に配信するシステムおよび技法について説明する。1つの態様において、鍵の要求元と、鍵管理システムまたは保護データーを所有するエンティティとの間に、仲介を実装することができる。仲介を、本明細書では、ターゲティング・プロトコル・ヘッドと呼ぶこともある。鍵の要求元は、安全実行環境またはTrEEと関連付けることができ、安全実行環境はVSMトラストレット、SGXアプリケーション、ARM TrustZoneアプリケーション、または何らかのその他の類似するビークルの内1つ以上を含むことができる。TrEEは、要求元から分離されてもよい。要求元は、1つ以上の秘密をTrEEまたはTrEE内部で実行する特定のトラストレットに配信するように、ターゲティング・プロトコル・ヘッドに要求することができる。ターゲティング・プロトコル・ヘッドは、要求に応答して、TrEEへの配信のために1つ以上の秘密を入手するために、鍵管理システム、または秘密を保持している他のエンティティと通信することができる。ターゲティング・プロトコル・ヘッドは、保護データーが要求元にも攻撃者にもアクセス可能にならないように、特定的に保護データーをTrEEに導く(target)ことができる。 [0018] As used herein, at least one key (eg, a signing or encryption key) or protected data / secret is trusted by a computing device, such as one or more physical or virtual computing devices. Systems and techniques for securely delivering in an environment (TrEE) are described. In one aspect, an intermediary can be implemented between the key requestor and the entity that owns the key management system or protected data. Mediation may be referred to herein as a targeting protocol head. The key requestor can be associated with a secure execution environment or TrEE, which can include one or more of a VSM trustlet, an SGX application, an ARM TrustZone application, or some other similar vehicle. TrEE may be separated from the requestor. The requester may request the targeting protocol head to deliver one or more secrets to the TrEE or a particular trustlet running inside the TrEE. In response to the request, the targeting protocol head may communicate with a key management system or other entity holding the secret to obtain one or more secrets for distribution to the TrEE. it can. The targeting protocol head can specifically target the protected data to TrEE so that the protected data is not accessible to requesters or attackers.
[0019] ある態様では、ターゲティング・プロトコル・ヘッドの実装により、要求元と鍵管理システムとの間における安全なチャネルの必要性をなくすることができる。ターゲティング・プロトコル・ヘッドは、本明細書において説明するTrEEターゲティング技法を使用して、秘密/データーが要求元にはアクセスすることができないように、1つ以上の秘密またはデーターをTrEEまたはネスト状TrEE(例えば、セキュア・カーネル上で実行するトラストレット)に送ることも可能にする。場合によっては、保護データーの所有者が、種々の理由のいずれかのために、要求元には保護データーをアクセスできないままにしておくことを希望できるように、要求元を信頼できないまたは潜在的に潜在できないものにすることもできる。場合によっては、要求元が信頼できることを断定する(establish)こと、あるいは要求元が信頼できるままでいることを確認することが難しいまたは厄介なこともある。これらの懸念の多くは、要求元は信頼できないと仮定し、TrEEを要求元から分離することによって、払拭することができる。この分離により、異なる種類の攻撃に対して、セキュリティを著しく強化することができ、以下で更に詳しく説明するように、他の便益および利点を得ることができる。 [0019] In an aspect, the implementation of the targeting protocol head can eliminate the need for a secure channel between the requester and the key management system. The targeting protocol head uses the TrEE targeting techniques described herein to transfer one or more secrets or data to a TrEE or nested TrEE such that the secret / data cannot be accessed by the requestor. (Eg, a trustlet running on a secure kernel). In some cases, the owner of the protected data may not trust or potentially trust the requestor so that the requestor may wish to keep the protected data inaccessible for any of a variety of reasons. You can make it invisible. In some cases, it may be difficult or cumbersome to establish that the requestor is trustworthy, or to ensure that the requester remains trustworthy. Many of these concerns can be dispelled by assuming that the requestor is unreliable and isolating TrEE from the requestor. This separation can significantly enhance security against different types of attacks and provide other benefits and advantages, as described in more detail below.
[0020] 図1Aは、要求元と鍵管理システムとの間で鍵を交換するためのシステムおよびプロセス例100aを示す。図示のように、要求元または要求元デバイス120は、クライアント・デバイスまたはクライアント側110と関連付けられ、鍵管理システム、あるいはサーバーまたはサーバー側105と関連付けられた、何らかの所望の秘密(1つまたは複数)115の保持者と通信することができる。要求元120は、例えば、特定の保護データーにアクセスする、1つ以上の保護プロセスを実行する等のために、1つ以上の秘密または保護データーを鍵管理システム115に要求することができる。要求元120および鍵管理システム(KMS)115は、公開鍵−秘密鍵セキュリティ・システムまたは、当技術分野において知られているような、他の鍵プロトコルを利用して、所望の秘密/データーを交換することができる。
FIG. 1A shows a system and
[0021] 要求元120は、最初に動作125において、KMS115と認証し、当技術分野において知られている技法の内任意のものによって、安全な通信チャネルを確立することができる。動作125は、公開鍵システム等を利用する動作を含んでもよい。次に、動作125によって確立された安全なチャネルを利用して、要求元120は1つ以上の秘密/保護データーを求める要求を、動作130において、KMS115に送ることができる。この要求を検証した(verify)ときに、KMS115は、動作135において、安全な通信チャネルを通じて、秘密または要求されたデーターを要求元120に返すことができる。当技術分野では標準的であるが、135において、安全なチャネル上(above)には追加の保護を全く設けずに、この安全なチャネルを通じて秘密/要求データーを送信することができる。その結果、動作135において送信された秘密/データーは、要求元デバイス120に露出されるおそれがある。
[0021] The
[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と同じまたは異なる分離領域内に配置されてもよいことは認められてしかるべきである。
FIG. 1B illustrates an example system and
[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への応答を暗号化することができる。
Returning to
[0024] 場合によっては、1つ以上のトラストレットによって供給されるような、複数の異なるプロセスがセキュア・カーネル内において同時に動作することもあり、各トラストレットおよびセキュア・カーネルは各々TrEE140として見なされる(例えば、これはネスト状TrEEの例である)。このシナリオでは、異なるトラストレットの各々には、セッションID、トラストレット・タイプ、および/またはセキュア・カーネル内で個々のトランスレットを識別するために使用することができるその他のID(例えば、双方共TrEE140として表される)と関連付けることができる。ターゲティング・プロトコル・ヘッド150からの応答は、要求において識別されたTrEE140内における特定のトラストレットに絞って、導くことができる。これについては、以下で更に詳しく説明する。
[0024] In some cases, multiple different processes may run simultaneously in the secure kernel, such as provided by one or more trustlets, with each trustlet and secure kernel each being considered as a
[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)を頼りにしてもよい。
For
[0026] クリーン・ルーム・プロビジョニングは、要求元120のデバイスが、例えば、新品であり、悪意のあるソフトウェアに侵されていないと正当に仮定されるときに、使用することができる。クリーン・ルーム・プロビジョニングを使用して、要求元と関連付けられたTrEEに保護データーを配信するためのプロセス例については、図3を参照して以下で更に詳しく説明する。証明(例えば、証明サービス)を使用して、要求元と関連付けられたTrEEに保護データーを配信するためのプロセス例については、図4を参照して以下で更に詳しく説明する。 [0026] Clean room provisioning can be used when the requesting 120 device is legitimately assumed to be, for example, new and not compromised by malicious software. An example process for delivering protected data to a TrEE associated with a requester using clean room provisioning is described in further detail below with reference to FIG. An example process for distributing protected data to a TrEE associated with a requestor using a certificate (eg, a certificate service) is described in further detail below with reference to FIG.
[0027] いずれの場合でも、一旦TPH150が要求元120を認証したなら、および/またはTrEE140の信頼性を断定したなら、TPH150は動作165において、KMS115を認証し、KMS115との安全な通信チャネルを確立することができる。ある態様では、KMS115は、ライセンス、許可、パスワード等のような、1つ以上の秘密または保護データーを保持する任意のエンティティを含むことができ、または任意のエンティティと関連付けることができる。KMS115との安全な通信チャネルを確立したとき、TPH150は、動作170において、保護データーを求める要求を送ることができる。KMS115は、動作175において、要求された秘密を返すことができる。TPH150は、TrEE140において秘密(1つまたは複数)または保護データーをターゲットにして、動作180において1つ以上の秘密を送ることができる。
In any case, once
[0028] ある態様では、動作180において、保護データーをTrEE140に配信するときに、以下のデーター構造の内少なくとも1つを利用することができる。TrEE識別情報(TrEE identity)または証明プロセスまたは証明ログの周囲に、あるいはネスト状TrEEの例(例えば、セキュア・カーネル上で実行するトラストレット)内に組み込む(build)ことができる暗号識別鍵(encryption identity key)、同様に証明プロセスの周囲に組み込むことができる署名識別鍵(signing identity key) 。これらについては、以下で更に詳しく説明する。
[0028] In an aspect, at
[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にアドレスすることもできる。
FIG. 1C illustrates another exemplary system and
[0030] 尚、場合によっては、HGS150aおよびKMS115が1つのエンティティとなり、これらの間に通信チャネルを確立する必要をなくし、認証も不要とするようにしてもよいことは認められてしかるべきである。
[0030] It should be appreciated that, in some cases, the HGS 150a and the
[0031] システム100cでは、要求元120とHGS150aとの間における認証は不要である。クラウドまたはファブリック・ホスト(fabric host)180が健全である限り、どのファブリック・ホストがHGS150aと通信しているのかは、それがファブリックにおけるサーバーの1つであるのであれば(これは証明によって検証することができる)、問題にならない。
[0031] In the
[0032] 図3は、要求元のTrEEに保護データーを配信するためのプロセス例300を示し、ここでは、要求元は信頼をおけるものと仮定する(例えば、悪意のソフトウェアに侵されていない)。本明細書において使用する場合、いずれの図においてもボックスまたは動作の破線は随意であり、その動作は除外してもよいことを示す。プロセス300は、TrEEによって生成された、またはTrEEを開始した要求元のセキュア・カーネルによって生成された、公開鍵秘密鍵対(例えば、非対称鍵対)の公開鍵のような、TrEEと関連付けられた暗号鍵を利用することができる。他の場合では、暗号鍵は対称型であってもよい。本明細書において使用する場合、セキュア・カーネルとは、当技術分野では知られているように、もっと高いレベルのセキュリティと関連付けられたコンピューティング・デバイスの任意の部分を指すことができる。
FIG. 3 illustrates an
[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)ことは実行可能な選択肢である。
[0033] In this scenario, the
[0034] 次に、動作312において、TPH150は、TrEE140への配信のための保護データーを、例えば、先に説明したように、KMS115から入手することができる。動作310によってアクセスしたTrEE公開鍵を使用して、TPH150は、次に、動作314において、入手した保護データーを含むメッセージを、TrEE140に送るために、作成する(construct)ことができる。TPH150は、動作316において、このメッセージを要求元120に送ることができる。
Next, in operation 312, the
[0035] このメッセージを受信すると、動作318において、要求元120はこれをTrEE140に転送することができる。要求元120はTrEEの秘密鍵にアクセスすることができないので、要求元120は、メッセージを解読して保護データーにアクセスすることができない。動作320において、TrEE140は、その秘密鍵を使用してメッセージを解読し、保護データーにアクセスすることができる。
[0035] Upon receiving this message, in operation 318, the requestor 120 may forward it to the
[0036] 図4Aは、信頼できない要求元のTrEEに保護データーを配信するためのプロセス例400を示す。プロセス400は、公開鍵−秘密鍵対の公開鍵のような、TrEEと関連付けられた暗号鍵を利用することができる。これは、TrEEによって生成されるか、またはネスト状TrEEの場合のように、TrEEを開始した要求元のセキュア・カーネルによって生成され、ここではこれをトラストレットと呼ぶことができる。加えてまたは代わりに、プロセス400は、外部TrEEと見なしてもよい、セキュア・カーネルの署名鍵を利用してもよい。トラストレットは、ネストされるかまたは、TrEEと関連付けられたセキュア・カーネル上で実行する。署名鍵は、TrEEによって生成された鍵対の内公開鍵を証明する(certify)ために使用することができる。これについては、以下で更に詳しく説明する。
FIG. 4A shows an
[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に返すことができる。
[0037] According to the
[0038] 動作406において証明報告書を入手すると、要求元120は、動作408において、この証明報告書および保護データーを求める要求をTPH150に、TrEE140の代わりに送ることができる。THC即ち証明報告書は、要求元120の項目名(認証中に断定された要求元の識別情報と証明書との間でバインド(binding)を作成するため)と、応答を定式化するときに応答側(TPH150)が使用すべき鍵(例えば、暗号鍵または署名鍵)とを収容することができる。
[0038] Having obtained the certificate report in
[0039] ある態様では、信頼できるプラットフォーム・モジュール(TPM:trusted platform module)の暗号鍵(EK)というような、改竄防止識別情報を、要求元120と関連付ける。要求元120の証明は、当技術分野では知られているように、TPM EKを使用して実行することができる。
In one aspect, tamper-proof identification information, such as a trusted platform module (TPM) encryption key (EK), is associated with the
[0040] ある態様では、帯域外において、またはTHCの一部であってもよい発行ポリシー(IP:issuance policy)オブジェクト識別子(OID:object identifier)を通じて、TrEEは、要求元120を介して、TPH150に、鍵が暗号鍵かまたは署名鍵か伝えることもできる。使用する鍵間の選択は、先に説明したように、応答を構成する(structure)ために使用するメカニズムの選択に影響を及ぼす可能性がある。重要なこととして、証明書を裏付ける秘密鍵の所有の証明は、TPH150によって要求されない。 これは、単に、要求元は対応する秘密鍵にアクセスすることができないため、間違った証明書が与えられた場合、要求元120は応答を全く解明することができないからである。
[0040] In an aspect, the TrEE, via the issuance policy (OID) object identifier (OID), which may be out of band or may be part of the THC, sends the
[0041] 図5Aおよび図5Bは、信頼できない要求元のネスト状TrEEに保護データーを配信するためのプロセス例500を示す。ある態様では、1つのTrEEが他のTrEE内に収容されるように、2つ以上のTrEEがネストされることもある。本明細書において言及する場合、トラストレットとは、外側のTrEEに収容されたネスト状TrEEである。一例では、外側のTrEEが、仮想信頼レベルと関連付けられたメモリーの特定のパーティションのような、オペレーティング・システムの信頼部分のセキュア・カーネルを含んでもよい。これについては、図6を参照して以下で更に詳しく説明する。プロセス500は、例えば、外側のTrEEの暗号鍵だけが入手可能であるときに利用することができる。場合によっては、外側のTrEEは、トラストレットをインスタンス化した機械のセキュア・カーネルであってもよい。
5A and 5B illustrate an
[0042] プロセス500は、動作502において開始することができ、ここで、要求元120は、この要求元120によって決定された「セッション識別子」を有するトラストレットを起動する。セッション識別子は、トラストレットがどのコンテンツまたはデーターに作用するかに関するあるいは特定する識別子、トラストレット(例えば、「特定のタイトル」を再生するためのストリーミング・コンテンツ・アプリケーション・トラストレット) のユーザーに関する識別子等のように、任意の種類の識別子を含んでもよい。一例では、セッションIDは32ビット値であってもよい。この値は、保存することができ、トラストレットの使用期限(lifetime)の間読み取り専用であってもよく、トラストレットをターゲットにしたメッセージを受信するときに、セキュア・カーネルに入手可能であってもよい。この値がない可能性もあり(プロセス起動時に指定されていない)、その場合、セッションIDはゼロであると仮定することができる。
[0042]
[0043] 次に、動作504において、要求元120はTPH150に認証することができる(前述のように随意であるが、要求元間に実際に相違がない場合というような、非常に限られた状況においてのみ随意である)。TrEE(例えば、TrEEの鍵)と要求元の識別情報との間にバインドがあることが望まれる一例は、実例をあげると、映画のようなコンテンツ項目の再生が、ライセンスまたは加入者の妥当性判断(validation)によって制約されるときである(例えば、NetFlixユーザーが映画を再生するためのライセンスを取得したいが、NetFlixは、映画のライセンスを受けるのはその加入者であることを確認したい(それらのTrEE内部で))。 [0043] Next, in operation 504, the requestor 120 can authenticate to the TPH 150 (optional, as described above, but very limited, such as when there is no actual difference between the requestors). It is optional only in circumstances). One example where it is desired that there be a binding between a TrEE (eg, a TrEE key) and the identity of the requestor, to illustrate, by way of example, the playback of a movie-like content item requires a license or subscriber When it is constrained by validation (e.g., a NetFlex user wants to obtain a license to play a movie, but NetFlex wants to make sure that it is its subscriber that licenses the movie (these Inside TrEE)).
[0044] 要求元120は、図4Bを参照して先に説明したプロセス406にしたがってというようにして、動作506において、TPH150によって信頼されている証明サービスから、証明報告書を入手することができる。次に、要求元120は、動作508において、証明報告書をTPH150に提示することができる。尚、先に説明したクリーン・ルーム・プロビジョニングの例では、証明は必要でないことは認められてしかるべきであり、ここでも該当するとしてよい。
[0044] The
[0045] 証明報告書を受信すると、動作510において、TPH150はこの証明報告書を検証することができる(または、先のクリーン・ルーム・プロビジョニングの例の場合、要求元の識別情報に基づいてその鍵を調べる)。プロセス500のこの時点において、要求元120は、外側TrEEにアドレスするためにはどの鍵を使用すべきか分かっている。ある態様では、証明報告書または要求から得られた鍵は、外側TrEEまたはセキュア・カーネル(そして、内側トラストレットではない)の暗号鍵であるという指示を、要求または証明報告書と共に含ませることができ、あるいは他の方法でまたは帯域外において、デフォルト手順として設定して等で、TPH150に伝達することができる。次に、動作511において、TPH150は、要求において示された保護データーを、例えば、KMS115から、あるいはライセンス、パスワード、許可、および/またはその他の情報を保持している1つ以上のサービスというような、保護データーを保持している任意の他のエンティティから入手することができる。
[0045] Upon receiving the certificate report, at
[0046] TPH150は、動作512において、例えば、要求に基づいて、またはTPH150自体に基づいて、ターゲットにするのはどのトラストレット・タイプか決定することができる(例えば、NetFlixのような特定の目的またはアプリケーションに合わせて特定的に、 各TPH150を設計することができる)。先に図1Cを参照して説明したような、KPを利用する例では、トラストレット・タイプをKPにおいてエンコードすることができる。いくつかの他の例では、トラストレット・タイプは、HGS150aを利用する実施態様におけるように、デフォルトで設定する、またはハード・コード化することができる。HGSの例では、HGS150aは、常に、仮想モード・セキュア・プロセス(VMSP)トラストレットをターゲットにすることができる。このトラストレット・タイプは、ハード・コード化されてもよい(KPはその情報を収容していないため)。
[0046] The
[0047] ターゲットにすべきトラストレット・タイプを決定するとき、TPH150は、動作514において、TrEEに送る保護データーを含むメッセージを組み立てる(construct)ことができる。動作514の更に詳しい例を図5Bに示す。
[0047] When determining the trustlet type to be targeted,
[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)提供するからであり、したがって有利であるからである。
[0048] In an aspect,
[0049] 次いで、TPH150は、動作546において、暗号化TXと、TWの認証付き暗号とを要求元120に送ることができる。図5Aに戻って、図5Bの動作によって生成することができる、および/またはTWと同様の方法で暗号化された保護データーを含むことができるメッセージ516を受信した後、要求元120は、動作518において、このメッセージをトラストレットに転送することができる。トラストレットはメッセージを解読することができないので(TWにおいて取得しようとする)、トラストレットは、動作520において、このメッセージをセキュア・カーネルに渡すことができる。あるいは、要求元120が、トラストレットを迂回して、応答をセキュア・カーネルに送ることもでき、セキュア・カーネルは、それがTWを解読したときに、トラストレットに新たな情報を気付かせる。
[0049] The
[0050] 次に、動作522において、セキュア・カーネルは、その秘密暗号鍵を使用して、TXを解読し、次いでこのTXを使用してTWを解読し、認証タグを使用して、正しいセッションIDを有する正しいトラストレット・タイプが、メッセージを解読することを要求していることを確認することができる。認証タグが検証された場合、動作524において、セキュア・カーネルはTWをトラストレットに返すことができる。次いで、トラストレットは、受信したTWを使用して、任意のサイズでよい保護データーのような、TWが暗号化しているものは何でも、解読することができる。 [0050] Next, in operation 522, the secure kernel decrypts the TX using the secret encryption key, then decrypts the TW using the TX, and uses the authentication tag to determine the correct session. It can be verified that the correct trustlet type with the ID is requesting to decrypt the message. If the authentication tag has been verified, at operation 524 the secure kernel may return the TW to the trustlet. The trustlet can then use the received TW to decrypt whatever the TW is encrypting, such as protected data, which can be of any size.
[0051] ある態様では、セキュア・カーネルが、メッセージを受信し、解読し、ターゲットにされている正しいトラストレットに渡すために、1つ以上のAPIによって定められるような、1つ以上のプロセスを実装することができる。APIは、暗号化され特定のトラストレットがターゲットにされたメッセージを受信し、IDK(セキュア・カーネル識別情報暗号鍵)の秘密部分を使用して、TXを解読することができる。APIは、コール元トラストレットのトラストレット・タイプとセッションIDとの連結(concatenation)をタグとして使用して、それ自体の認証タグを組み立てることができる(明らかなセキュリティ上の理由により、供給された認証タグを使用することはできない)。次いで、トラストレット・タイプおよびセッションIDを入手することができる。認証に成功したなら、APIは次にTXを使用してTWを解読することができる。解読に成功したなら、APIは次にTWをトラストレットに返すことができる。 [0051] In an aspect, the secure kernel configures one or more processes, as defined by one or more APIs, to receive, decrypt, and pass messages to the correct trustlet being targeted. Can be implemented. The API can receive an encrypted message targeted to a particular trustlet and decrypt the TX using the secret part of the IDK (Secure Kernel Identity Encryption Key). The API can assemble its own authentication tag using the concatenation of the trusting type of the calling trustlet and the session ID as a tag (provided for obvious security reasons. Authentication tags cannot be used). The trustlet type and session ID can then be obtained. If successful, the API can then use the TX to decrypt the TW. If successful, the API can then return the TW to the trustlet.
[0052] 一例では、受信されたメッセージは、次の情報を含むことができる。バージョン数(例えば、0)、転送鍵暗号プロトコルID(例えば、RSA2048)、転送鍵暗号パディングID(例えば、OAEP)、ラッピング・キー暗号プロトコルID(例えば、AES−GCM)、転送鍵暗号文の長さ、ラッピング・キー認証タグの長さ(無視される)、ラッピング・キー暗号文の長さ、ならびに、転送鍵暗号文、ラッピング・キー認証タグ(無視される)、およびラッピング・キー暗号文。尚、これは、メッセージを組み立てることができる多くの方法の中の一例に過ぎないことは、認められてしかるべきである。 [0052] In one example, the received message may include the following information. The number of versions (for example, 0), the transfer key encryption protocol ID (for example, RSA2048), the transfer key encryption padding ID (for example, OAEP), the wrapping key encryption protocol ID (for example, AES-GCM), and the length of the transfer key ciphertext The length of the wrapping key authentication tag (ignored), the length of the wrapping key ciphertext, and the transfer key ciphertext, the wrapping key authentication tag (ignored), and the wrapping key ciphertext. It should be appreciated that this is only one of many ways in which a message can be assembled.
[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を使用せずに、先に説明した証明/認証方式を利用しても、同様の効果を得ることができる。
[0053] In an aspect, in one or more of the systems or processes 100, 300, 400, or 500 described above, the process / system 100 implements a resource or a virtual secure mode (VSM). It can also be implemented in a virtual machine. The VSM and related concepts in the context of a virtual machine are entitled "Virtual Secure Mode for Virtual Machines" and are filed on Feb. 21, 2014, US patent application Ser. 186,415 (U.S. Patent Application Publication No. 2015/082305). FIG. 6 illustrates a system or host operating system 600 that includes a VSM computing environment divided into different virtual trust levels VTL0 610 and VTL1 615. System 600 may be an embodiment that further embodies one or more aspects of
[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の具体的な実施態様を使用することである。
As described with reference to system 600, client application 650 / VTL0 610 of host 600 may correspond to
[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に示す。
[0055] As shown, one or more TrEEs or trustlets 640 may reside in
[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において解読することができる。
[0056] The
[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プロテクタも同様に使用することができる。
[0057] The
[0058] ボリューム・マスター・キー(VMK)720は、VTPM725によって開封することができる。VTPM状態725は、KP705内部でTK710によって暗号化することができる。場合によっては、VMK720がビットロッカー・ボリューム・マスター・キー(Bitlocker Volume Master Key)であってもよく、価値が低い秘密という印を付けることができる。
[0058] The volume master key (VMK) 720 can be opened by the
[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を生成する。
[0059] Each field or block of the
VMD DISK : Encryption (FVEK, plaintext disk data)
FVEK DISK : Encryption (VMK, FVEK)
VMK DISK : Encryption (VMK)
V TPMDISK : Encryption (TK, V TPM )
TK DISK : Encryption (KP, TK)
KP: The KP is associated with the VM and the trustlet never actually sees it. The KP goes to the KMS, which decrypts it and returns the TK to the trustlet (via the targeting mechanism described above). TK decrypts vTPM, which opens VMK and generates FVEK.
[0060] 一例では、KP405、VTPM状態415、VMK420、およびVMD430は、ディスク上に格納されたデーターであってもよい。VTPM状態415は、VTPMが作成されたときに初期化されてもよく、一意であることが確保されればよい。例えば、生成された秘密または保護データーのランタイム一意性について、VTPMはセキュア・カーネルによって提供されるRNGのセキュリティを頼りにする。トラストレットが解読されたTK710を使用してVTPM状態415を解読した後、VMD730にアクセスするための残りの動作は、物理機械と物理TPMとの間で実行される動作と同じまたは同様であってよい。これらの動作には、VTPMがVSMの測定を実行すること、VTPM測定値を使用してVMKを開封すること(その結果、FVEK725をオペレーティング・システムのローダーに供給することになる)、およびオペレーティング・システムがFVEK725を使用してVMD730を解読することを含むことができる。
[0060] In one example, the KP 405, V TPM state 415, VMK 420, and VMD 430 may be data stored on a disk. The V TPM state 415 may be initialized when the V TPM is created, as long as it is ensured that it is unique. For example, for runtime uniqueness of generated secret or protected data, VTPM relies on the security of the RNG provided by the secure kernel. After the trustlet decrypts the VTPM state 415 using the decrypted
[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を使用して、保護データーを解読することができる。
[0061] To activate a trustlet, client 650 may request and / or receive
[0062] 図8は、TrEEまたはトラストレットの識別鍵(identity key)を使用して、トランスポート・キーおよび/またはこのトランスポート・キーによって暗号化された保護データーを、TrEEまたは特定のトラストレットに導くためのプロセス例800を示す。更に具体的には、プロセス800は、トラストレットのセキュア・カーネルの暗号鍵によって、トラストレットをターゲットにする方法を示す。
[0062] FIG. 8 illustrates the use of a TrEE or trustlet identity key to transfer a transport key and / or protected data encrypted with the transport key to a TrEE or a specific trustlet. Shows an
[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のいずれかを使用して構築することができる。 [0063] The cloud fabric host or host OS (eg, host OS 600) performs a series of steps to receive a transport key. The cloud fabric host first, in operation 602, according to the process described above with reference to FIG. 4B, for example, a cryptographic identification key of a secure kernel associated with the TrEE or trustlet ( A build TrEE Health Certificate (THC) can be obtained around the IDK_E). In one aspect, operation 602 can include creating a certification log (TCG log) by a host at boot containing a public version of IDK_E, wherein the secret portion of IDK_E is the VSM associated with the trustlet. Exists in the Secure Kernel (SK). The certification log can be presented to a certification service (AS). The AS can inspect this certification log and issue the THC (eg, the public part of the asymmetric key) created around the IDK_E to the host. In one aspect, like IDK_E, a “signature identification key” (DDK_S) can also be created, and as described in more detail below with reference to FIG. 9, the signature identification key is a separate signature created around it. It can have THC. A solution to the key distribution problem can be built using either IDK_E or IDK_S, as described below.
[0064] 新たな遮蔽(shielded)VMをロードするときが来たとき、ホストは、動作804において、VMのKPを入手し、TPH(例えば、TPH150)との会話(conversation)を開始する。その目的は、KPによって暗号化されたTKをVMSPトラストレットに注入することである。 [0064] When it is time to load a new shielded VM, the host obtains the VM's KP and initiates a conversation with the TPH (eg, TPH 150) at operation 804. Its purpose is to inject the TK encrypted by the KP into the VMSP trustlet.
[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を有するトラストレットをターゲットにすることができる。
[0065] To exchange the KP for a TK, the host may submit the KP and the "translet identity" to the TPH, such as
[0066] 要求元またはクライアント650は、TPHからの応答を受信し、与えられたKPSIDと共にそれをトラストレットに転送することができる。トラストレットまたはサーバーは、動作810において、SVMセキュア・カーネルに、応答を解読しそれをTKに返すように要請することができる。セキュア・カーネルは、動作812において、応答を検査し、それがトラストレット・タイプおよびトラストレットのセッションIDをターゲットにすることの有効性を判断し(validate)、動作818において、一致がある場合、鍵だけを返す。このため、TPHの応答が悪の手に落ちた場合でも、意味を理解することは暗号的に不可能である。この鍵を受信したとき、ホストは、動作820において、この鍵を解読してTrEEに供給し、この時点で、プロセス800は終了することができる。
[0066] The requestor or client 650 may receive the response from the TPH and forward it to the trustlet with the given KPSID. The trustlet or server may request the SVM secure kernel to decrypt the response and return it to TK at operation 810. The secure kernel examines the response in
[0067] 図9は、セキュア・カーネルの署名鍵を使用して、トランスポート・キーおよび/またはこのトランスポート・キーによって暗号化された保護データーをトラストレットに導くための他のプロセス例900を示す。更に具体的には、プロセス900は、セキュア・カーネルの署名鍵によって証明されたトラストレットの暗号鍵によって、このトラストレットをターゲットにする方法を示す。
FIG. 9 illustrates another
[0068] プロセス800は、全てのトラストレット間で共有される識別暗号鍵によって、どのように応答を間接的にトラストレットに導くことができるかを示す。しかしながら、TrEEが証明可能な識別署名鍵を有する場合、他の手法も使用してもよい。ここでは、各トラストレットがそれ自体の暗号鍵対を生成し、この対の公開鍵部であるIDK_Sを使用して、セキュア・カーネルに証明させることができる。尚、このような証明は、鍵をトラストレット・タイプおよびトラストレットのセッションIDに暗号的にバインドすることも必要であることを注記しておく。
[0068]
鍵の証明=σIDK_S(Trustlet_Encryption_Key_Pub, Trustlet_Type, Session_ID)
ここで、σIDK_Sは、与えられた鍵を使用する、その入力()、およびそれに続くこれらの入力に対する署名の連結を示す。
Proof of key = σIDK_S (Trustlet_Encryption_Key_Pub, Trustlet_Type, Session_ID)
Here, σIDK_S indicates the concatenation of its inputs (), followed by the signatures for these inputs, using the given key.
この場合、要求元は、トラストレットの鍵を、THCおよび鍵証明(key certification)と共にTPHに提示し、TPHは、動作822および824において、プロセス800から差別化されるように、トランスポート・キーを暗号化してトラストレットの暗号鍵にすることによって応答する。
In this case, the requestor presents the trustlet's key to the TPH, along with the THC and key certification, and the TPH is transported to the transport key as differentiated from the
[0069] ある態様では、「セキュリティ・バージョン番号」(SVN:security version number)も、他の種類の攻撃を防止し、TrEEが古くなく、潜在的に攻撃されやすいバージョンではないことを確認するために、鍵証明において使用または指示されてもよい。場合によっては、セキュア・カーネルは証明されたが、内側トラストレットはされないならば(例えば、証明が既に行われた後に、トラストレットに要求(demand)がロードされた場合)、トラストレットのSVNを含ませることによって、THCには問題がなくても(okay)、古い方の攻撃されやすいトラストレットをターゲットにすることを拒否するように、TPH150に命令することができる。
[0069] In one aspect, the "security version number" (SVN) also prevents other types of attacks and ensures that the TrEE is not old and not a potentially vulnerable version. May be used or indicated in the key certificate. In some cases, if the secure kernel has been certified, but the inner trustlet has not been done (e.g., the trustlet has been loaded with a demand after the certificate has already been made), then the SVN of the trustlet is By including, the
[0070] プロセス800および900の2つの手法間における相違の1つは、トラストレットまたはTrEE ID、セッションID、およびトランスポート・キー間のバインドを実施するのは何か、ということである。プロセス800では、それはセキュア・カーネルであり、プロセス900では、それはTPH150である。他の主要な相違には、どのようにして応答を暗号的に構成するか(structure)があげられる。前者の場合では、応答はセキュア・カーネルに導かれ、次いで、セキュア・カーネルは、どのトラストレットが応答を見ることを許可されるか判断する。後者の場合では、応答は直接トラストレットに導かれ、トラストレットの鍵はセキュア・カーネルの鍵によって証明される。
[0070] One of the differences between the two approaches of
[0071] ある態様では、以上で説明した技法は、コンテナに対する完全な資格証明の分離(credential isolation)に対応するために実装することもできる。基本的な問題は同じであり、コンテナはそのホストに資格証明書を要求すればよい。次いで、ホストはコンテナの代わりに何らかのKMSに資格証明書を要求することができる。要求された資格証明書が暗号化されずにホストに返された場合(例えば、資格証明書が要求に応じて到達し、コンテナ・イメージの一部でない)、「遅い資格証明バインド」(late credential binding)となる。このバインドは、有益であるが、資格証明書の分離には至らず、ホストが不正アクセスされた場合、資格証明書が開示されることになる。 [0071] In certain aspects, the techniques described above may also be implemented to accommodate full credential isolation for a container. The basic problem is the same: the container only needs to request credentials from its host. The host can then request credentials from some KMS on behalf of the container. If the requested credential is returned to the host unencrypted (for example, the credential arrived on demand and is not part of the container image), a "late credential" binding). While this binding is beneficial, it does not lead to separation of credentials, and if a host is compromised, the credentials will be disclosed.
[0072] 実施形態では、開示した実施形態は、以下を備えるコンピューティング・システムとして実装することができる。
[0073] プロセッサー。
[0072] In embodiments, the disclosed embodiments may be implemented as a computing system comprising:
[0073] Processor.
[0074] このプロセッサーに通信可能に結合され、命令を格納するメモリー。プロセッサーによって命令が実行されると、コンピューティング・システムに次の動作を実行させる。 [0074] A memory that is communicatively coupled to the processor and stores instructions. Execution of the instructions by the processor causes the computing system to perform the following operations.
[0075] ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求、セキュア・カーネルの証明報告書、および鍵証明報告書(key certification statement)を受け取る動作。ここで、ネスト状TrEEは、セキュア・カーネル上で実行するトラストレットを含み、鍵証明報告書は、トラストレットの公開暗号鍵およびトラストレットIDをバインドする。 [0075] The act of receiving a request for protection data from a requestor associated with a nested TrEE, a secure kernel certification report, and a key certification statement. Here, the nested TrEE includes a trustlet that runs on a secure kernel, and the key certificate report binds the trustlet's public encryption key and trustlet ID.
[0076] 保護データーを引き出す動作。
[0077] 保護データーを、トラストレットの公開暗号鍵で暗号化する動作。
[0078] 暗号化した保護データーを要求元に送る動作。
An operation of extracting protected data.
Operation of encrypting the protected data with the public encryption key of the trustlet.
[0078] Operation of transmitting encrypted protected data to a request source.
[0079] 実施形態では、鍵証明報告書は、セキュア・カーネルによって、署名鍵を使用して生成される。
[0080] 実施形態では、署名鍵は、トラストレットによって生成された公開鍵−秘密鍵対の内、トラストレットの公開暗号鍵を証明する。
[0079] In an embodiment, the key certificate report is generated by the secure kernel using the signing key.
[0080] In the embodiment, the signature key proves the public encryption key of the trustlet among the public key-private key pair generated by the trustlet.
[0081] 実施形態では、トラストレットIDは、トラストレット・タイプ、またはトラストレット・タイプおよびセッションIDを含む。
[0082] 実施形態では、鍵証明報告書は、セキュア・カーネルによって、署名鍵を使用して生成され、トラストレットの公開鍵、トラストレット・タイプ、およびセッションIDをバインドする。
[0081] In an embodiment, the trustlet ID includes a trustlet type, or a trustlet type and a session ID.
[0082] In an embodiment, the key certificate report is generated by the secure kernel using the signing key, binding the trustlet's public key, trustlet type, and session ID.
[0083] 実施形態では、命令がプロセッサーによって実行されると、コンピューティング・システムに、以下を含む動作を実行させる。
[0084] トラストレットIDを、認可トラストレットIDのリストと比較する動作。
[0083] In an embodiment, when the instructions are executed by a processor, the instructions cause the computing system to perform operations including the following.
Operation of comparing a trustlet ID with a list of authorized trustlet IDs.
[0085] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合、トラストレットの公開暗号鍵で保護データーのみを暗号化する動作。
[0086] 実施形態では、外側TrEE上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信するための方法を実装することができる。ここで、トラストレットおよび外側TrEEは双方共、信頼できない要求元に関連付けられる。この方法は、以下のステップを含む。
[0085] When the trustlet ID is associated with the list of authorized trustlet IDs, an operation of encrypting only the protected data with the public encryption key of the trustlet.
[0086] In an embodiment, a method for delivering protected data to a nested trusted execution environment (TrEE) comprising a trustlet executing on the outer TrEE can be implemented. Here, both the trustlet and the outer TrEE are associated with an untrusted requestor. The method includes the following steps.
[0087] ターゲティング・プロトコル・ヘッドによって、ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求と、外側TrEEの証明報告書と、鍵証明報告書とを受け取るステップであって、鍵証明報告書が、トラストレットの公開暗号鍵とトラストレットIDとをバインドする。 [0087] Receiving, by the targeting protocol head, a request for protected data from a requestor associated with the nested TrEE, an outer TrEE certificate report and a key certificate report, the key certificate report comprising: The report binds the trustlet's public encryption key and the trustlet ID.
[0088] ターゲティング・プロトコル・ヘッドによって、保護データーを引き出すステップ。
[0089] トラストレットの公開暗号鍵で保護データーを暗号化するステップ。
[0088] Retrieving the protected data by the targeting protocol head.
[0089] Encrypting the protected data with the public encryption key of the trustlet.
[0090] 暗号化した保護データーを要求元に送るステップ。
[0091] 実施形態では、鍵証明報告書は、外側TrEEによって、署名鍵を使用して生成される。
[0090] Sending the encrypted protected data to the requestor.
[0091] In an embodiment, the key certificate report is generated by the outer TrEE using the signing key.
[0092] 実施形態では、署名鍵は、トラストレットによって生成された公開鍵−秘密鍵対の内、トラストレットの公開暗号鍵を証明する。
[0093] 実施形態では、トラストレットIDは、トラストレット・タイプ、またはトラストレット・タイプおよびセッションIDを含む。
[0092] In the embodiment, the signature key proves the public encryption key of the trustlet among the public key-private key pair generated by the trustlet.
[0093] In an embodiment, the trustlet ID includes a trustlet type, or a trustlet type and a session ID.
[0094] 実施形態では、鍵証明報告書は、外側TrEEによって、署名鍵を使用して生成され、トラストレットの公開鍵、トラストレット・タイプ、およびセッションIDをバインドする。 [0094] In an embodiment, the key certificate report is generated by the outer TrEE using the signing key and binds the trustlet's public key, trustlet type, and session ID.
[0095] 実施形態では、この方法は、更に、以下のステップを含む。
[0096] ターゲティング・プロトコル・ヘッドによって、トラストレットIDを、認可トラストレットIDのリストと比較するステップ。
[0095] In an embodiment, the method further includes the following steps.
[0096] Comparing the trustlet ID with a list of authorized trustlet IDs by the targeting protocol head.
[0097] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、ターゲティング・プロトコル・ヘッドによって、トラストレットの公開暗号鍵で保護データーを暗号化するステップ。 [0097] Encrypting the protected data with the trustlet's public encryption key by the targeting protocol head only if the trustlet ID is associated with the list of authorized trustlet IDs.
[0098] 実施形態では、この方法は、更に、以下のステップを含む。
[0099] 要求元によって、暗号化された保護データーをトラストレットに送るステップ。
[0098] In an embodiment, the method further includes the following steps.
[0099] Sending the encrypted protected data to the trustlet by the requestor.
[00100] トラストレットによって、トラストレットの公開暗号鍵に対応するトラストレットの秘密暗号鍵を使用して、暗号化された保護データーを解読するステップ。
[00101] 実施形態では、保護データーはラッピング・キーを含む。
[00100] Decrypting the encrypted protected data by the trustlet using the trustlet's private encryption key corresponding to the trustlet's public encryption key.
[00101] In an embodiment, the protected data includes a wrapping key.
[00102] 実施形態では、セキュア・カーネル上で実行するトラストレットを備えるネスト状信頼実行環境(TrEE)に保護データーを配信するための命令を含むコンピューター読み取り可能記憶媒体を実装することができる。この媒体は命令を含み、コンピューター・システム上で命令が実行されると、少なくとも以下の動作を、コンピューター・システムに実行させる。 [00102] In an embodiment, a computer-readable storage medium can be implemented that includes instructions for delivering protected data to a nested trusted execution environment (TrEE) that includes a trustlet executing on a secure kernel. The medium includes the instructions, and when the instructions are executed on the computer system, causes the computer system to perform at least the following operations.
[00103] ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書と、鍵証明報告書とを受け取る動作であって、鍵証明報告書が、トラストレットの公開暗号鍵とトラストレットIDとをバインドする。 [00103] An operation of receiving a request for protected data from a requestor associated with a nested TrEE, a certificate report of a secure kernel, and a key certificate report, wherein the key certificate report is a trustlet. Is bound with the public encryption key of the trustlet.
[00104] 保護データーを引き出す動作。
[00105] トラストレットの公開暗号鍵で保護データーを暗号化する動作。
[00106] 暗号化した保護データーを要求元に送る動作。
[00104] Operation to extract protected data.
[00105] Operation of encrypting protected data with a trustlet's public encryption key.
[00106] Operation of sending encrypted protected data to the requestor.
[00107] 実施形態では、鍵証明報告書は、セキュア・カーネルによって、署名鍵を使用して生成される。
[00108] 実施形態では、署名鍵は、トラストレットによって生成された公開鍵−秘密鍵対の内、トラストレットの公開暗号鍵を証明する。
[00107] In an embodiment, the key certificate report is generated by the secure kernel using the signing key.
[00108] In an embodiment, the signing key attests to the trustlet's public encryption key of the public key-private key pair generated by the trustlet.
[00109] 18.請求項15記載のコンピューター読み取り可能記憶媒体において、トラストレットIDは、トラストレット・タイプ、またはトラストレット・タイプおよびセッションIDを含む。 [00109] 18. 17. The computer-readable storage medium according to claim 15, wherein the trustlet ID includes a trustlet type, or a trustlet type and a session ID.
[00110] 実施形態では、鍵証明報告書は、セキュア・カーネルによって、署名鍵を使用して生成され、トラストレットの公開鍵、トラストレット・タイプ、およびセッションIDをバインドする。 [00110] In an embodiment, a key certificate report is generated by the secure kernel using the signing key, binding the trustlet's public key, trustlet type, and session ID.
[00111] 実施形態では、命令は、更に、コンピューティング・システムによって実行されると、少なくとも以下の動作をコンピューティング・システムに実行させる命令を含む。 [00111] In embodiments, the instructions further include instructions that, when executed by the computing system, cause the computing system to perform at least the following operations.
[00112] トラストレットIDを、認可トラストレットIDのリストと比較する動作。
[00113] トラストレットIDが、認可トラストレットIDのリストと関連付けられる場合にのみ、トラストレットの公開暗号鍵で保護データーを暗号化する動作。
[00112] Operation of comparing a trustlet ID with a list of authorized trustlet IDs.
[00113] Operation of encrypting protected data with a public encryption key of a trustlet only when the trustlet ID is associated with a list of authorized trustlet IDs.
[00114] 以上で説明した技法は、以下で説明するように、1つ以上のコンピューティング・デバイスまたは環境上で実装することができる。図10は、例えば、要求元120、TrEE140、TPH150、ホストOS600、AS424、KMS115の内1つ以上を具体化することができる汎用コンピューティング環境の例を表す。本明細書において説明した技法のいくつかを具体化することができる。コンピューティング・システム環境1002は、適したコンピューティング環境の一例に過ぎず、ここに開示した主題の使用範囲や機能に関して限定を示唆することは全く意図していない。また、コンピューティング環境1002が、動作環境例1002において示されるコンポーネントの内いずれか1つまたは組み合わせに関して、何らかの依存性や要件を有するように解釈してはならない。ある実施形態では、種々の図示するコンピューティング・エレメントが、本開示の特定の態様をインスタンス化するように構成された回路を含むこともできる。例えば、本開示において使用する回路(circuitry)という用語は、ファームウェアまたはスイッチによって機能(1つまたは複数)を実行するように構成された特殊ハードウェア・コンポーネントを含むことができる。他の実施形態例では、回路という用語は、汎用処理ユニット、メモリー等を含み、機能(1つまたは複数)を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成される。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実施者(implementer)がロジックを具体化するソース・コードを書くのでもよく、このソース・コードは、汎用処理ユニットによって処理することができる、機械読み取り可能コードにコンパイルすることができる。技術的現状はハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間の差が殆どなくなるところまで発展したことは当業者は認めることができるはずであるので、特定の機能を実装するためにハードウェアまたはソフトウェアのどちらを選択するかは、実施者に委ねられる設計の選択事項に過ぎない。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換でき、ハードウェア構造自体を等価なソフトウェア・プロセスに変換できることは、当業者は認めることができる。つまり、ハードウェアの実施態様かまたはソフトウェアの実施態様かの選択は、設計選択事項の1つであり、実施者に委ねられる。
[00114] The techniques described above can be implemented on one or more computing devices or environments, as described below. FIG. 10 illustrates an example of a general-purpose computing environment that may embody, for example, one or more of the requestor 120,
[00115] コンピューター1002は、移動体デバイスまたはスマート・フォン、タブレット、ラップトップ、デスクトップ・コンピューター、またはネットワーク接続されたデバイスの集合体、クラウド・コンピューティング・リソース等の内任意のものを含むことができ、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター1002によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、リムーバブルおよび非リムーバブル媒体を含む。システム・メモリー1022は、リード・オンリー・メモリー(ROM)1023およびランダム・アクセス・メモリー(RAM)1060のような、揮発性および/または不揮発性メモリーの形態のコンピューター読み取り可能記憶媒体を含む。 基本入力/出力システム1024(BIOS)は、起動中のように、コンピューター1002内部のエレメント間で情報を転送するのを助ける基本的なルーチンを収容し、通例ROM1023に格納されている。RAM1060は、通例、処理ユニット1059に直ちにアクセス可能な、および/または処理ユニット1059上で現在処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図10は、オペレーティング・システム1025、アプリケーション・プログラム1026、TrEEターゲティング・アプリケーション1065を含むその他のプログラム・モジュール1027、およびプログラム・データー1028を示す。
[00115] Computer 1002 may include a mobile device or any of a smart phone, tablet, laptop, desktop computer, or a collection of networked devices, cloud computing resources, and the like. And typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 1002 and includes both volatile and nonvolatile media, removable and non-removable media.
[00116] また、コンピューター1002は、その他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例としてに過ぎないが、図10は、非リムーバブル不揮発性磁気媒体に対する読み出しまたは書き込みを行うハード・ディスク・ドライブ1038、リムーバブル不揮発性磁気ディスク1054に対する読み出しまたは書き込みを行う磁気ディスク・ドライブ1039、およびCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク1053に対する読み出しまたは書き込みを行う光ディスク・ドライブ1004を示す。動作環境例において使用することができるその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ1038は、通例、インターフェース1034のような非リムーバブル・メモリー・インターフェースを介して、システム・バス1021に接続され、更に、磁気ディスク・ドライブ1039および光ディスク・ドライブ1004は、通例、インターフェース1035または1036のようなリムーバブル・メモリー・インターフェースによって、システム・バス1021に接続される。
[00116] Computer 1002 may also include other removable / non-removable, volatile / non-volatile computer storage media. By way of example only, FIG. 10 illustrates a
[00117] 以上で論じ図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を介して接続することができる。
[00117] The drives and their associated computer storage media discussed above and illustrated in FIG. 10 provide storage of computer readable instructions, data structures, program modules, and other data for the computer 1002. In FIG. 10, for example, a
[00118] コンピューター1002は、リモート・コンピューター1046のような、1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク接続環境において動作することもできる。リモート・コンピューター1046は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイスまたは他の一般的なネットワーク・ノードであってもよく、通例、コンピューター1002に関して以上で説明したエレメントの多くまたは全部を含むことができるが、図10には、メモリー記憶デバイス1047しか示されていない。図10に示す論理接続は、ローカル・エリア・ネットワーク(LAN)1045およびワイド・エリア・ネットワーク(WAN)1049を含むが、他のネットワークを含むこともできる。このようなネットワーク接続環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、インターネット、およびクラウド・コンピューティング・リソースでは極普通である。
[00118] Computer 1002 may also operate in a networked environment with logical connections to one or more remote computers, such as
[00119] LANネットワーク接続環境において用いられる場合、コンピューター1002は、ネットワーク・インターフェースまたはアダプター1037を介してLAN1045に接続することができる。WANネットワーク接続環境において使用される場合、コンピューター1002は、通例、モデム1005、またはインターネットのようなWAN1049上で通信を確立する他の手段を含む。モデム1005は、内蔵型でも外付け型でもよく、ユーザー入力インターフェース1036または他のしかるべきメカニズムを介してシステム・バス1021に接続することができる。ネットワーク接続環境では、コンピューター1002に関して図示したプログラム・モジュールまたはその一部が、リモート・メモリー記憶デバイスに格納されてもよい。一例として、そして限定ではなく、図10は、リモート・アプリケーション・プログラム1048を、メモリー・デバイス1047上に存在するものとして示す。尚、 図示するネットワーク接続は例であり、コンピューター間で通信リンクを確立する他の手段を用いてもよいことは認められよう。
[00119] When used in a LAN networking environment, the computer 1002 can connect to the
[00120] ある態様では、その他のプログラム1027は、先に説明したような機能を含む、TrEEターゲティング・コンポーネントまたはアプリケーション1065を含むこともできる。場合によっては、TrEEターゲティング・アプリケーション1065は、プロセス300、400、500、800、および/または900の動作の一部または全部を実行することができる。
[00120] In an aspect, the other program 1027 can also include a TrEE targeting component or application 1065 that includes functionality as described above. In some cases, TrEE targeting application 1065 may perform some or all of the operations of
[00121] 以上の章において説明したプロセス、方法、およびアルゴリズムの各々は、1つ以上のコンピューターまたはコンピューター・プロセッサーによって実行されるコード・モジュールにおいて具体化し、コード・モジュールによって完全にまたは部分的に自動化することができる。コード・モジュールは、ハード・ドライブ、ソリッド・ステート・メモリー、光ディスク等のような、任意の型式の非一時的コンピューター読み取り可能媒体またはコンピューター記憶デバイス上に格納することができる。プロセスおよびアルゴリズムは、部分的にまたは全体的に、特定用途回路内に実装することもできる。開示したプロセスおよびプロセス・ステップの結果は、例えば、揮発性または不揮発性ストレージのような、任意の種類の非一時的コンピューター・ストレージに、永続的にまたはそれ以外で、格納することができる。以上で説明した種々の特徴およびプロセスは、互いに独立して使用されてもよく、または種々の方法で組み合わされてもよい。全ての可能なコンビネーションおよびサブコンビネーションは、本開示の範囲内に該当することを意図している。加えて、特定の方法またはプロセス・ブロックは、実施態様によっては、省略されてもよい。本明細書において説明した方法およびプロセスは、いずれの特定のシーケンスにも限定されず、それに関係するブロックまたは状態は、しかるべき他のシーケンスで実行することができる。例えば、説明したブロックまたは状態は、特定的に開示したもの以外の順序で実行されてもよく、複数のブロックまたは状態を組み合わせて1つのブロックまたは状態にしてもよい。ブロックまたは状態の例は、連続して、並列に、または何らかのその他の様態で実行することができる。開示した実施形態例にブロックまたは状態を追加することも、削除することも可能である。本明細書において説明したシステム例およびコンポーネント例は、説明したもとのは異なる構成にしてもよい。例えば、開示した実施形態例と比較して、エレメントを追加すること、削除すること、または再構成することもできる。 [00121] Each of the processes, methods, and algorithms described in the preceding sections may be embodied in a code module executed by one or more computers or computer processors, and may be fully or partially automated by the code module. can do. The code module can be stored on any type of non-transitory computer readable media or computer storage device, such as a hard drive, solid state memory, optical disk, etc. The processes and algorithms may also be partially or wholly implemented in application specific circuits. The results of the disclosed processes and process steps can be stored permanently or otherwise in any type of non-transitory computer storage, such as, for example, volatile or non-volatile storage. The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of the present disclosure. In addition, certain methods or process blocks may be omitted in some embodiments. The methods and processes described herein are not limited to any particular sequence, and the blocks or states involved may be performed in any other appropriate sequence. For example, the blocks or states described may be performed in any order other than those specifically disclosed, and multiple blocks or states may be combined into one block or state. Examples of blocks or states may be performed sequentially, in parallel, or in some other manner. Blocks or states can be added or deleted from the disclosed example embodiments. The example systems and components described herein may have different configurations than those described. For example, elements can be added, deleted, or reconfigured as compared to the disclosed example embodiments.
[00122] また、種々の品目が、使用されている間メモリー内またはストレージ上に格納されているように示されたこと、そしてこれらの品目またはその一部は、メモリー管理およびデーター保全の目的のために、メモリーと他の記憶デバイスとの間で転送されてもよいことは認められよう。あるいは、他の実施形態では、ソフトウェア・モジュールおよび/またはシステムの一部または全部が、他のデバイス上にあるメモリーにおいて実行し、コンピューター間通信によって、図示したコンピューティング・システムと通信するのでもよい。更に、ある実施形態では、システムおよび/またはモジュールの一部または全部が、少なくとも部分的にファームウェアおよび/またはハードウェアでというように、他の方法で実装または提供されてもよく、ファームウェアおよび/またはハードウェアには、1つ以上の特定用途集積回路(ASIC)、標準的集積回路、コントローラー(例えば、しかるべき命令を実行することによるコントローラーであり、マイクロコントローラーおよび/または埋め込み型コントローラーを含む)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、複合プログラマブル論理デバイス(CPLD)等が含まれるが、これらに限定されるのではない。また、モジュール、システム、およびデーター構造の一部または全部は、しかるべきドライブによってまたはしかるべき接続を介して読み取るために、ハード・ディスク、メモリー、ネットワークまたは携帯用メディア商品というような、コンピューター読み取り可能媒体上に(例えば、ソフトウェア命令または構造化されたデーターとして)格納することもできる。本明細書および請求項に限って言えば、「コンピューター読み取り可能記憶媒体」という用語およびその変形は、波形、信号、および/またはその他の一時的および/または無形(intangible)通信媒体を含まない。また、システム、モジュール、およびデーター構造は、ワイヤレス系および有線/ケーブル系媒体を含む、種々のコンピューター読み取り可能送信媒体上において生成されたデーター信号(例えば、搬送波あるいはその他のアナログまたはディジタル伝搬信号の一部として)送信することもでき、種々の形態をなすこともできる(例えば、1つまたは多重化アナログ信号の一部として、あるいは複数のディスクリート・ディジタル・パケットまたはフレームとして)。このようなコンピューター・プログラム製品は、他の実施形態では、他の形態をなすこともできる。したがって、本開示は、他のコンピューター・システム構成でも実施することができる。 [00122] Also, various items have been shown to be stored in memory or on storage while in use, and these items or portions thereof may be used for memory management and data integrity purposes. It will be appreciated that, for this, it may be transferred between memory and another storage device. Alternatively, in other embodiments, some or all of the software modules and / or systems may execute in memory residing on other devices and communicate with the illustrated computing system via inter-computer communication. . Further, in some embodiments, some or all of the systems and / or modules may be implemented or provided in other ways, such as at least in part in firmware and / or hardware, and may include firmware and / or The hardware includes one or more application specific integrated circuits (ASICs), standard integrated circuits, controllers (eg, controllers that execute appropriate instructions, including microcontrollers and / or embedded controllers), Includes, but is not limited to, field programmable gate arrays (FPGAs), composite programmable logic devices (CPLDs), and the like. Also, some or all of the modules, systems, and data structures may be computer readable, such as a hard disk, memory, network or portable media item, for reading by appropriate drives or via appropriate connections. It can also be stored on a medium (eg, as software instructions or structured data). The term "computer-readable storage medium" and variations thereof, as limited to this specification and claims, do not include waveforms, signals, and / or other temporary and / or intangible communication media. Also, the systems, modules, and data structures may reside in a data signal (e.g., a carrier or other analog or digitally propagated signal) generated on a variety of computer readable transmission media, including wireless and wired / cable media. (Eg, as a part) and may take various forms (eg, as part of one or a multiplexed analog signal, or as multiple discrete digital packets or frames). Such a computer program product may take other forms in other embodiments. Thus, the present disclosure can be implemented in other computer system configurations.
[00123] とりわけ、「できる」(can)、「であればできた」(could)、「かもしれない」(might) 、「してもよい」(may)、「例えば」(e.g.)等のような、本明細書において使用した条件付き表現は、別段特に明言されていなければ、または使用される文脈において他の意味に理解される場合を除き、一般に、特定の実施形態は特定の特徴、エレメント、および/またはステップを含むが、他の実施形態はこれらを含まないことを伝えることを意図している。つまり、このような条件付き文言は、一般に、特徴、エレメント、および/またはステップが1つ以上の実施形態に対して多少なりとも必要であることを含意することを意図するのではなく、あるいは1つ以上の実施形態が、これらの特徴、エレメント、および/またはステップがいずれかの特定の実施形態に含まれるか否か、あるいは実行されるか否かについて、著者(author)の入力または催促の有無には関係なく決定するロジックを必然的に含むことを含意することを意図するのでもない。「備える」(comprising)、「含む」(including)、「有する」(having)等の用語は、同意義語であり、包含的に使用され、追加のエレメント、特徴、アクト、動作等を除外しない。また、「または」(or)という用語は、その包含的な意味で使用される(そして、その除外的意味ではない)ので、例えば、エレメントのリストを接続するために使用される場合、「または」という用語は、そのリストにおけるエレメントの1つ、いくつか、または全部を意味する。 [00123] In particular, "can", "could", "may", "may", "for example" (eg), etc. As such, the conditional expressions used herein are generally in the form of particular features, unless otherwise stated or otherwise understood in the context in which they are used. It is intended to convey that elements and / or steps are included, but other embodiments do not. In other words, such conditional wording is generally not intended to imply that features, elements, and / or steps are more or less necessary for one or more embodiments, or One or more embodiments may require the input or prompting of an author as to whether these features, elements, and / or steps are included in, or performed in, any particular embodiment. It is not intended to imply that logic that determines whether or not there is necessarily included. Terms such as "comprising", "including", "having" and the like are synonymous and used inclusively and do not exclude additional elements, features, acts, acts, etc. . Also, the term "or" is used in its inclusive sense (and not its exclusive meaning) so that, for example, when used to connect a list of elements, "or" The term "means one, some or all of the elements in the list.
[00124] 以上、特定の実施形態例について説明したが、これらの実施形態は一例として提示されたに過ぎず、本明細書において開示した発明の範囲を限定することを意図するのではない。つまり、以上の説明において、何らかの特定の特徴、特性、ステップ、モジュール、またはブロックが必須である、または不可欠であることを含意することを意図するものはない。実際、本明細書において説明した新規な方法およびシステムは、種々の他の形態で具体化することもでき、更に、本明細書において説明した方法およびシステムの形態における種々の省略、交換、および変更も、本明細書において開示した発明の主旨から逸脱することなく、行うことができる。添付する特許請求の範囲およびその均等物は、本明細書において開示した発明の内特定のものの範囲および主旨に該当するような形態および変更に及ぶことを意図している。 [00124] Although specific embodiments have been described above, these embodiments have been presented by way of example only, and are not intended to limit the scope of the invention disclosed herein. That is, in the above description, nothing is intended to imply that any particular feature, characteristic, step, module, or block is required or essential. Indeed, the novel methods and systems described herein may be embodied in various other forms, and furthermore, various omissions, changes, and modifications in the form of the methods and systems described herein. Can be performed without departing from the spirit of the invention disclosed in this specification. The appended claims and their equivalents are intended to cover such forms and modifications as fall within the true scope and spirit of the invention disclosed herein.
Claims (15)
プロセッサーと、
前記プロセッサーに通信可能に結合され、命令を格納するメモリーと、
を備え、前記命令が前記プロセッサーによって実行されると、
ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求と、セキュア・カーネルの証明報告書と、鍵証明報告書とを受け取る動作であって、前記ネスト状TrEEが、前記セキュア・カーネル上で実行するトラストレットを備え、前記鍵証明報告書が、トラストレット公開暗号鍵およびトラストレットIDをバインドする、動作と、
前記保護データーを引き出す動作と、
前記保護データーを、前記トラストレット公開暗号鍵で暗号化する動作と、
前記暗号化した保護データーを前記要求元に送る動作と、
を前記コンピューティング・システムに実行させる、コンピューティング・システム。 A computing system,
A processor,
A memory communicatively coupled to the processor for storing instructions;
When the instructions are executed by the processor,
Receiving a request for protected data from a requestor associated with the nested TrEE, a certificate report of the secure kernel, and a key certificate report, wherein the nested TrEE is configured to store the secure kernel on the secure kernel; Actuating the key certificate report to bind a trustlet public encryption key and a trustlet ID; and
An operation of extracting the protected data;
An operation of encrypting the protected data with the trustlet public encryption key;
Sending the encrypted protected data to the requestor;
Causing the computing system to execute.
前記トラストレットIDを認可トラストレットIDのリストと比較する動作と、
前記トラストレットIDが前記認可トラストレットIDのリストと関連付けられる場合にのみ、前記保護データーを前記トラストレット公開暗号鍵で暗号化する動作と、
を含む動作を前記コンピューティング・システムに実行させる、コンピューティング・システム。 2. The computing system of claim 1, wherein the instructions are executed by the processor.
Comparing the trustlet ID with a list of authorized trustlet IDs;
Encrypting the protected data with the trustlet public encryption key only if the trustlet ID is associated with the list of authorized trustlet IDs;
A computing system that causes the computing system to perform operations that include:
ターゲティング・プロトコル・ヘッドによって、ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求と、前記外側TrEEの証明報告書と、鍵証明報告書とを受け取るステップであって、前記鍵証明報告書が、トラストレット公開暗号鍵およびトラストレットIDをバインドする、ステップと、
前記ターゲティング・プロトコル・ヘッドによって、前記保護データーを引き出すステップと、
前記保護データーを、前記トラストレット公開暗号鍵で暗号化するステップと、
前記暗号化した保護データーを前記要求元に送るステップと、
を含む、方法。 A method of delivering protected data to a nested trusted execution environment (TrEE) comprising a trustlet executing on an outer TrEE, wherein both the trustlet and the outer TrEE are associated with an untrusted requestor, the method comprising: But,
Receiving, by a targeting protocol head, a request for protection data from a requestor associated with the nested TrEE, a certificate report of the outer TrEE, and a key certificate report, the key certificate report comprising: Signing a trustlet public encryption key and a trustlet ID.
Extracting said protected data by said targeting protocol head;
Encrypting the protected data with the trustlet public encryption key;
Sending the encrypted protected data to the requestor;
Including, methods.
前記ターゲティング・プロトコル・ヘッドによって、前記トラストレットIDを認可トラストレットIDのリストと比較するステップと、
前記トラストレットIDが前記認可トラストレットIDのリストと関連付けられる場合にのみ、前記ターゲティング・プロトコル・ヘッドによって、前記保護データーを前記トラストレット公開暗号鍵で暗号化するステップと、
を含む、方法。 The method of claim 7, further comprising:
Comparing said trustlet ID with a list of authorized trustlet IDs by said targeting protocol head;
Encrypting the protected data with the trustlet public encryption key by the targeting protocol head only if the trustlet ID is associated with the list of authorized trustlet IDs;
Including, methods.
前記要求元によって、前記暗号化した保護データーを前記トラストレットに送るステップと、
前記トラストレットによって、前記トラストレット公開暗号鍵に対応するトラストレット秘密暗号鍵を使用して、前記暗号化した保護データーを解読するステップと、
を含む、方法。 The method of claim 7, further comprising:
Sending the encrypted protected data to the trustlet by the requestor;
Decrypting the encrypted protected data by the trustlet using a trustlet private encryption key corresponding to the trustlet public encryption key;
Including, methods.
ネスト状TrEEと関連付けられた要求元からの保護データーを求める要求と、前記セキュア・カーネルの証明報告書と、鍵証明報告書とを受け取る動作であって、前記鍵証明報告書が、トラストレットの公開暗号鍵とトラストレットIDとをバインドする、動作と、
前記保護データーを引き出す動作と、
前記トラストレット公開暗号鍵で前記保護データーを暗号化する動作と、
前記暗号化した保護データーを前記要求元に送る動作と、
をコンピューター・システムに実行させる、コンピューター読み取り可能記憶媒体。 A computer readable storage medium comprising instructions for delivering protected data to a nested trusted execution environment (TrEE) comprising a trustlet executing on a secure kernel, said medium containing the instructions and comprising: When the instruction is executed at least,
Receiving a request for protected data from a requestor associated with the nested TrEE, a certificate report of the secure kernel, and a key certificate report, wherein the key certificate report comprises Binding the public encryption key and the trustlet ID,
An operation of extracting the protected data;
An operation of encrypting the protected data with the trustlet public encryption key,
Sending the encrypted protected data to the requestor;
A computer-readable storage medium that causes a computer system to execute.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/417,042 | 2017-01-26 | ||
US15/417,042 US10419402B2 (en) | 2017-01-26 | 2017-01-26 | Addressing a trusted execution environment using signing key |
PCT/US2017/067461 WO2018140170A1 (en) | 2017-01-26 | 2017-12-20 | Addressing a trusted execution environment using signing key |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020506611A true JP2020506611A (en) | 2020-02-27 |
Family
ID=60991591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019540540A Pending JP2020506611A (en) | 2017-01-26 | 2017-12-20 | Addressing to a trusted execution environment using a signing key |
Country Status (18)
Country | Link |
---|---|
US (1) | US10419402B2 (en) |
EP (1) | EP3574443A1 (en) |
JP (1) | JP2020506611A (en) |
KR (1) | KR102489790B1 (en) |
CN (1) | CN110249336B (en) |
AU (1) | AU2017396531B2 (en) |
BR (1) | BR112019013584A2 (en) |
CA (1) | CA3048895C (en) |
CL (1) | CL2019002026A1 (en) |
CO (1) | CO2019007875A2 (en) |
IL (1) | IL268005B (en) |
MX (1) | MX2019008693A (en) |
MY (1) | MY201812A (en) |
PH (1) | PH12019550119A1 (en) |
RU (1) | RU2756040C2 (en) |
SG (1) | SG11201905458WA (en) |
WO (1) | WO2018140170A1 (en) |
ZA (1) | ZA201903702B (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112015026372B8 (en) * | 2013-04-18 | 2024-02-15 | Facecon Co Ltd | Communication device that enforces security for a file stored on a virtual drive |
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 |
US10897459B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using encryption key |
US10515077B2 (en) * | 2017-06-14 | 2019-12-24 | Microsoft Technology Licensing, Llc | Execution optimization of database statements involving encrypted data |
US10771439B2 (en) * | 2017-06-28 | 2020-09-08 | Microsoft Technology Licensing, Llc | Shielded networks for virtual machines |
US11392687B2 (en) * | 2019-01-04 | 2022-07-19 | Baidu Usa Llc | Method and system for validating kernel objects to be executed by a data processing accelerator of a host system |
CA3058499C (en) * | 2019-03-26 | 2021-10-26 | Alibaba Group Holding Limited | Program execution and data proof scheme using multiple key pair signatures |
US11610012B1 (en) * | 2019-11-26 | 2023-03-21 | Gobeep, Inc. | Systems and processes for providing secure client controlled and managed exchange of data between parties |
CN113254940B (en) * | 2021-05-20 | 2023-01-17 | 浙江网商银行股份有限公司 | Data processing method and device based on remote sensing data |
CN114036527B (en) * | 2021-11-04 | 2023-01-31 | 云海链控股股份有限公司 | Code injection method, code running end, code injection end and related equipment |
CN115065487B (en) * | 2022-08-17 | 2022-12-09 | 北京锘崴信息科技有限公司 | Privacy protection cloud computing method and cloud computing method for protecting financial privacy data |
CN117992993B (en) * | 2024-04-07 | 2024-06-14 | 蓝象智联(杭州)科技有限公司 | Data management and control method and system based on trusted execution environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012160760A1 (en) * | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | Information processing device and information processing method |
EP2887607A1 (en) * | 2013-12-23 | 2015-06-24 | Orange | Migration of assets of a trusted execution environment |
US20150318986A1 (en) * | 2014-05-05 | 2015-11-05 | Microsoft Corporation | Secure Transport of Encrypted Virtual Machines with Continuous Owner Access |
Family Cites Families (25)
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 |
US8059820B2 (en) * | 2007-10-11 | 2011-11-15 | Microsoft Corporation | Multi-factor content protection |
CN101159556B (en) * | 2007-11-09 | 2011-01-26 | 清华大学 | Group key server based key management method in sharing encryption file system |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US9413538B2 (en) * | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
EP2820587B1 (en) * | 2012-02-28 | 2020-04-08 | Giesecke+Devrient Mobile Security GmbH | Method for controlling access to a computer using a mobile terminal |
EP2680487B1 (en) * | 2012-06-29 | 2019-04-10 | Orange | Secured cloud data storage, distribution and restoration among multiple devices of a user |
US9064109B2 (en) * | 2012-12-20 | 2015-06-23 | Intel Corporation | Privacy enhanced key management for a web service provider using a converged security engine |
EP2759955A1 (en) * | 2013-01-28 | 2014-07-30 | ST-Ericsson SA | Secure backup and restore of protected storage |
CN105027494B (en) * | 2013-03-14 | 2018-03-23 | 英特尔公司 | The data processing of trust in public cloud |
EP3036680B1 (en) * | 2013-08-21 | 2018-07-18 | Intel Corporation | Processing data privately in the cloud |
US9633210B2 (en) * | 2013-09-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Keying infrastructure |
EP3049989B1 (en) * | 2013-09-27 | 2021-03-03 | Intel Corporation | Protection scheme for remotely-stored data |
GB201408539D0 (en) * | 2014-05-14 | 2014-06-25 | Mastercard International Inc | Improvements in mobile payment systems |
US9775029B2 (en) * | 2014-08-22 | 2017-09-26 | Visa International Service Association | Embedding cloud-based functionalities in a communication device |
US9621547B2 (en) * | 2014-12-22 | 2017-04-11 | Mcafee, Inc. | Trust establishment between a trusted execution environment and peripheral devices |
CN105812332A (en) * | 2014-12-31 | 2016-07-27 | 北京握奇智能科技有限公司 | Data protection method |
US10073985B2 (en) * | 2015-02-27 | 2018-09-11 | Samsung Electronics Co., Ltd. | Apparatus and method for trusted execution environment file protection |
US9722775B2 (en) * | 2015-02-27 | 2017-08-01 | Verizon Patent And Licensing Inc. | Network services via trusted execution environment |
CN104899506B (en) * | 2015-05-08 | 2018-01-12 | 深圳市雪球科技有限公司 | Security system implementation method based on virtual secure element in credible performing environment |
US10270591B2 (en) * | 2015-06-30 | 2019-04-23 | Activevideo Networks, Inc. | Remotely managed trusted execution environment for digital-rights management in a distributed network with thin clients |
CN105260663B (en) * | 2015-09-15 | 2017-12-01 | 中国科学院信息工程研究所 | A kind of safe storage service system and method based on TrustZone technologies |
CN109150548B (en) * | 2015-12-01 | 2021-10-08 | 神州融安科技(北京)有限公司 | Digital certificate signing and signature checking method and system and digital certificate system |
CN105978917B (en) * | 2016-07-19 | 2019-05-10 | 恒宝股份有限公司 | A kind of system and method for trusted application safety certification |
CN106230584B (en) * | 2016-07-21 | 2019-09-03 | 北京可信华泰信息技术有限公司 | A kind of key migration method of credible platform control module |
-
2017
- 2017-01-26 US US15/417,042 patent/US10419402B2/en active Active
- 2017-12-20 JP JP2019540540A patent/JP2020506611A/en active Pending
- 2017-12-20 CA CA3048895A patent/CA3048895C/en active Active
- 2017-12-20 AU AU2017396531A patent/AU2017396531B2/en active Active
- 2017-12-20 EP EP17829839.4A patent/EP3574443A1/en active Pending
- 2017-12-20 MX MX2019008693A patent/MX2019008693A/en unknown
- 2017-12-20 RU RU2019126631A patent/RU2756040C2/en active
- 2017-12-20 CN CN201780084731.0A patent/CN110249336B/en active Active
- 2017-12-20 BR BR112019013584-7A patent/BR112019013584A2/en unknown
- 2017-12-20 MY MYPI2019003998A patent/MY201812A/en unknown
- 2017-12-20 SG SG11201905458WA patent/SG11201905458WA/en unknown
- 2017-12-20 WO PCT/US2017/067461 patent/WO2018140170A1/en unknown
- 2017-12-20 KR KR1020197022013A patent/KR102489790B1/en active IP Right Grant
-
2019
- 2019-06-10 ZA ZA2019/03702A patent/ZA201903702B/en unknown
- 2019-06-28 PH PH12019550119A patent/PH12019550119A1/en unknown
- 2019-07-11 IL IL268005A patent/IL268005B/en unknown
- 2019-07-19 CL CL2019002026A patent/CL2019002026A1/en unknown
- 2019-07-22 CO CONC2019/0007875A patent/CO2019007875A2/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012160760A1 (en) * | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | Information processing device and information processing method |
EP2887607A1 (en) * | 2013-12-23 | 2015-06-24 | Orange | Migration of assets of a trusted execution environment |
US20150318986A1 (en) * | 2014-05-05 | 2015-11-05 | Microsoft Corporation | Secure Transport of Encrypted Virtual Machines with Continuous Owner Access |
Also Published As
Publication number | Publication date |
---|---|
ZA201903702B (en) | 2020-10-28 |
CN110249336A (en) | 2019-09-17 |
IL268005A (en) | 2019-09-26 |
KR102489790B1 (en) | 2023-01-17 |
PH12019550119A1 (en) | 2020-03-09 |
US10419402B2 (en) | 2019-09-17 |
MY201812A (en) | 2024-03-19 |
CA3048895A1 (en) | 2018-08-02 |
BR112019013584A2 (en) | 2020-01-07 |
CO2019007875A2 (en) | 2019-07-31 |
RU2019126631A3 (en) | 2021-04-08 |
NZ754540A (en) | 2023-08-25 |
WO2018140170A1 (en) | 2018-08-02 |
RU2756040C2 (en) | 2021-09-24 |
CL2019002026A1 (en) | 2019-12-13 |
AU2017396531A1 (en) | 2019-07-04 |
EP3574443A1 (en) | 2019-12-04 |
MX2019008693A (en) | 2019-09-11 |
CA3048895C (en) | 2024-05-28 |
KR20190108580A (en) | 2019-09-24 |
US20180212932A1 (en) | 2018-07-26 |
RU2019126631A (en) | 2021-02-26 |
CN110249336B (en) | 2023-05-30 |
AU2017396531B2 (en) | 2021-11-25 |
SG11201905458WA (en) | 2019-08-27 |
IL268005B (en) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110249332B (en) | Addressing trusted execution environments using encryption keys | |
CN110214440B (en) | Computing system, method for transmitting protected data and readable storage medium | |
CN110249336B (en) | Addressing trusted execution environments using signing keys | |
EP3257227B1 (en) | Confidential communication management | |
CN110235134B (en) | Addressing trusted execution environments using clean room provisioning | |
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 |