JP2020524421A - トラステッド実行環境のための分散型鍵管理 - Google Patents

トラステッド実行環境のための分散型鍵管理 Download PDF

Info

Publication number
JP2020524421A
JP2020524421A JP2019559274A JP2019559274A JP2020524421A JP 2020524421 A JP2020524421 A JP 2020524421A JP 2019559274 A JP2019559274 A JP 2019559274A JP 2019559274 A JP2019559274 A JP 2019559274A JP 2020524421 A JP2020524421 A JP 2020524421A
Authority
JP
Japan
Prior art keywords
tee
tees
key
node
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019559274A
Other languages
English (en)
Other versions
JP6869374B2 (ja
Inventor
チャンジェン・ウェイ
イン・ヤン
ボラン・ジャオ
シュヤン・ソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020524421A publication Critical patent/JP2020524421A/ja
Application granted granted Critical
Publication of JP6869374B2 publication Critical patent/JP6869374B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 using challenge-response
    • H04L9/3273Cryptographic 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 using challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic 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 a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

本明細書において開示されるのは、トラステッド実行環境(TEE)においてスマートコントラクト動作を安全に実行するための、コンピュータストレージ媒体に符号化されたコンピュータプログラムを含む方法、システム、および装置である。方法のうちの1つは、KMノードの鍵管理(KM) TEEによって、複数のKM TEEとの相互アテステーションを実行することに基づいて複数のKMノード内の複数のKM TEEとの信頼関係を確立するステップと、KMノードのサービスTEEに1つまたは複数の暗号化鍵を提供することに関する合意に達するために複数のKM TEEとの合意プロセスを開始するステップと、複数のKM TEEと合意に達することに応じて、KMノードのサービスTEEによるローカルアテステーションプロセスを開始するステップと、ローカルアテステーションプロセスが成功であると判定するステップと、ローカルアテステーションプロセスが成功であるとの判定に応じて、コンピューティングデバイス上で実行されるTEEに1つまたは複数の暗号化鍵を提供するステップとを含む。

Description

本明細書は、トラステッド実行環境に関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも呼ばれ得る分散型台帳システム(DLS)は、参加主体がデータを安全で不変的に記憶することを可能にする。DLSは、通常、いかなる特定のユースケースにも関係なく、ブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークの種類の例は、合意プロセスを制御し、アクセス制御レイヤを含む、選ばれた一群の主体のために提供されるコンソーシアムブロックチェーンネットワークを含み得る。
トラステッド実行環境(TEE)は、マイクロプロセッサ内で実行されるかまたは記憶されるソフトウェア命令およびデータが改ざんまたは変更されなかったことを保証するマイクロプロセッサの隔離された安全な領域である。TEE内で実行されるアプリケーションは、信頼できる機関(たとえば、マイクロプロセッサの製造業者)によって検証され、検証が終わると、アプリケーションとその他のノードおよびトラステッドアプリケーションの間の通信を可能にするために暗号化鍵を発行される。これらの暗号化鍵は、信頼できる機関によるアプリケーションの検証(「アテステーション(attestation)」とも呼ばれる)を容易にする集中的な鍵管理システム(KMS)によって発行され得る。
集中的なKMSの1つの潜在的な問題は、単一障害点をもたらすことである。集中的なKMSの停止は、それが解決されるまでTEEにおいて実行されるアプリケーションが検証されることを妨げ得る。さらに、攻撃者は、集中的なKMSの制御を獲得することによってシステム全体を脅かすことができる可能性がある。したがって、KMSとして機能する安全な分散型システムが、望ましい。
本明細書は、鍵管理(KM)ノードの組を含む分散型鍵管理システムを実装するためのテクノロジーを説明する。KMノードは、それぞれ、TEE内で鍵管理アプリケーションを実行し、それぞれ、組内のすべてのKMノードを接続する信頼関係を確立するために相互アテステーション論理に基づいてその他のKMノードのうちの1つまたは複数との相互アテステーションプロセスを実行する。この信頼が確立されると、KMノードは、信頼できる環境内で1つまたは複数のスマートコントラクト動作を安全に実行するために1つまたは複数のサービスTEEに暗号化鍵を割り振る合意に達することができる。
本明細書は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されるときに1つまたは複数のプロセッサに本明細書において提供される方法の実施形態による動作を実行させる命令を記憶した1つまたは複数の非一時的コンピュータ可読ストレージ媒体も提供する。
本明細書は、本明細書において提供される方法を実施するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されるときに1つまたは複数のプロセッサに本明細書において提供される方法の実施形態による動作を実行させる命令を記憶した、1つまたは複数のプロセッサに結合されたコンピュータ可読ストレージ媒体とを含む。
本明細書による方法は、本明細書において説明される態様および特徴の任意の組合せを含む可能性があることが理解される。つまり、本明細書による方法は、特に本明細書において説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せを含む。
本明細書の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。本明細書のその他の特徴および利点は、それらの説明および図面から、ならびに請求項から明らかになるであろう。
本明細書の実施形態を実行するために使用され得る環境の例を示す図である。 本明細書の実施形態によるアーキテクチャの例を示す図である。 本明細書の実施形態によるシステムの例を示す図である。 本明細書の実施形態によるシステムの例を示す図である。 本明細書の実施形態によって実行され得るプロセスの例を示す。 本明細書の実施形態による装置のモジュールの例を示す図である。 本明細書の実施形態による相互アテステーション論理の例を示す図である。 本明細書の実施形態による別の相互アテステーション論理の例を示す図である。
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
本明細書は、鍵管理(KM)ノードの組を含む分散型鍵管理システムを実装するためのテクノロジーを説明する。KMノードは、それぞれ、TEE内で鍵管理アプリケーションを実行し、それぞれ、組内のすべてのKMノードを接続する信頼関係を確立するために相互アテステーション論理に基づいてその他のKMノードのうちの1つまたは複数との相互アテステーションプロセスを実行する。この信頼が確立されると、KMノードは、信頼できる環境内で1つまたは複数のスマートコントラクト動作を安全に実行するために1つまたは複数のサービスTEEに暗号化鍵を割り振る合意に達することができる。
本明細書の実施形態に関するさらなる文脈を与えるために、上記で紹介されたように、(たとえば、ピアツーピアノードによって構成される)コンセンサスネットワークとも呼ばれ得る分散型台帳システム(DLS)が、参加主体が安全で不変的にトランザクションを行い、データを記憶することを可能にする。ブロックチェーンという用語は、概して、特定のネットワークおよび/またはユースケースに関連付けられるが、ブロックチェーンは、本明細書においては、いかなる特定のユースケースにも関連せずに広くDLSを指すために使用される。
ブロックチェーンは、トランザクションが変更不可能な方法でトランザクションを記憶するデータ構造である。したがって、ブロックチェーンに記録されたトランザクションは、信頼性があり、信用できる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号学的ハッシュを含むことによってチェーン内のそのブロックの直前のブロックにリンクされる。各ブロックは、タイムスタンプ、そのブロック自体の暗号学的ハッシュ、および1つまたは複数のトランザクションも含む。ブロックチェーンネットワークのノードによって既に検証されたトランザクションは、ハッシュされ、マークル木へと符号化される。マークル木は、木の葉ノードのデータがハッシュされ、木の各枝のすべてのハッシュが枝の根において連結されるデータ構造である。このプロセスは、木のすべてのデータを表すハッシュを記憶する木全体の根まで木を登り続ける。木に記憶されたトランザクションのものであると称するハッシュが、そのハッシュが木の構造に一致するかどうかを判定することによって迅速に検証され得る。
ブロックチェーンはトランザクションを記憶するための非集中的なまたは少なくとも部分的に非集中的なデータ構造であるが、ブロックチェーンネットワークは、トランザクションなどをブロードキャストし、検証し、有効化することによって1つまたは複数のブロックチェーンを管理し、更新し、維持するコンピューティングノードのネットワークである。上記で紹介されたように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。本明細書の実施形態は、コンソーシアムブロックチェーンネットワークを参照して本明細書においてさらに詳細に説明される。しかし、本明細書の実施形態は任意の適切な種類のブロックチェーンネットワークにおいて実現され得ることが想定される。
概して、コンソーシアムブロックチェーンネットワークは、参加主体の間の非公開のものである。コンソーシアムブロックチェーンネットワークにおいて、合意プロセスは、コンセンサスノードと呼ばれ得るノードの認可された組によって制御され、1つまたは複数のコンセンサスノードは、それぞれの主体(たとえば、金融機関、保険会社)によって運用される。たとえば、10個の主体(たとえば、金融機関、保険会社)のコンソーシアムが、コンソーシアムブロックチェーンネットワークを運用することができ、10個の主体の各々が、コンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを運用する。
一部の例においては、コンソーシアムブロックチェーンネットワーク内で、グローバルブロックチェーンが、すべてのノードに複製されるブロックチェーンとして提供される。つまり、すべてのコンセンサスノードは、グローバルブロックチェーンに関して完全な状態の合意をしている。合意(たとえば、ブロックチェーンへのブロックの追加の同意)を実現するために、合意プロトコルが、コンソーシアムブロックチェーンネットワーク内に実装される。たとえば、コンソーシアムブロックチェーンネットワークは、下記でさらに詳細に説明される実用的ビザンチン障害耐性(PBFT)合意を実装することができる。
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を示す図である。一部の例において、例示的な環境100は、主体がコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。例示的な環境100は、コンピューティングデバイス106、108およびネットワーク110を含む。一部の例において、ネットワーク110は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。一部の例において、ネットワーク110は、有線および/またはワイヤレス通信リンクを介してアクセスされ得る。
示された例において、コンピューティングシステム106、108は、それぞれ、コンソーシアムブロックチェーンネットワーク102内のノードとして参加することを可能にする任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスは、限定することなく、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。一部の例において、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102とインタラクションするための1つまたは複数のコンピュータによって実施されるサービスをホストする。たとえば、コンピューティングシステム106は、第1の主体(たとえば、ユーザA)が1つまたは複数のその他の主体(たとえば、その他のユーザ)とのその第1の主体のトランザクションを管理するために使用するトランザクション管理システムなどの第1の主体のコンピュータによって実施されるサービスをホストすることができる。コンピューティングシステム108は、第2の主体(たとえば、ユーザB)が1つまたは複数のその他の主体(たとえば、その他のユーザ)とのその第2の主体のトランザクションを管理するために使用するトランザクション管理システムなどの第2の主体のコンピュータによって実施されるサービスをホストすることができる。図1の例において、コンソーシアムブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102に参加する第1の主体および第2の主体のノードをそれぞれ提供する。
図2は、本明細書の実施形態による概念的なアーキテクチャ200の例を示す。概念的なアーキテクチャ200は、主体レイヤ202、ホストされるサービスレイヤ204、およびブロックチェーンネットワークレイヤ206を含む。示された例において、主体レイヤ202は、3つの参加者、参加者A、参加者B、および参加者Cを含み、各参加者は、それぞれのトランザクション管理システム208を有する。
示された例において、ホストされるサービスレイヤ204は、各トランザクション管理システム208のためのインターフェース210を含む。一部の例において、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS: hypertext transfer protocol secure))を使用してネットワーク(たとえば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。一部の例において、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。一部の例において、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して行われる。一部の例において、インターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンネットワークノードを「ホストする」。たとえば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書において説明されるように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を不変的に記録する複数のノード214を含むピアツーピアネットワークとして提供される。単一のブロックチェーン216が図示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212中で維持される。たとえば、各ノード214が、ブロックチェーンのコピーを記憶する。一部の実施形態において、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上の主体の間で実行されるトランザクションに関連する情報を記憶する。
ブロックチェーン(たとえば、図2のブロックチェーン216)は、ブロックの連鎖からなり、各ブロックが、データを記憶する。例示的なデータは、2つ以上の参加者の間のトランザクションを表すトランザクションデータを含む。本明細書においてはトランザクションが非限定的な例として使用されるが、任意の適切なデータ(たとえば、文書、画像、動画、音声)がブロックチェーンに記憶され得ると想定される。例示的なトランザクションは、限定することなく、価値のある何らかのもの(たとえば、資産、製品、サービス、通貨)の交換を含み得る。トランザクションデータは、ブロックチェーン内に不変的に記憶される。つまり、トランザクションデータは、変更され得ない。
ブロックに記憶する前に、トランザクションデータは、ハッシュされる。ハッシングは、(文字列データとして与えられる)トランザクションデータを(やはり文字列データとして与えられる)固定長のハッシュ値に変換するプロセスである。トランザクションデータを得るためにハッシュ値からハッシュされた元のデータを求めることはできない。ハッシュは、トランザクションデータのわずかな変化でさえも完全に異なるハッシュ値をもたらすことを保証する。さらに、上述のように、ハッシュ値は、固定長である。つまり、トランザクションデータのサイズにかかわらず、ハッシュ値の長さは決まっている。ハッシュは、ハッシュ値を生成するためにハッシュ関数によってトランザクションデータを処理することを含む。ハッシュ関数の例は、限定することなく、256ビットのハッシュ値を出力するセキュアハッシュアルゴリズム(SHA)-256を含む。
複数のトランザクションのトランザクションデータが、ハッシュされ、ブロックに記憶される。たとえば、2つのトランザクションのハッシュ値が、提供され、それらのハッシュ値自体が、別のハッシュを提供するためにハッシュされる。このプロセスが、ブロックに記憶されるすべてのトランザクションに関して、単一のハッシュ値が与えられるまで繰り返される。このハッシュ値は、マークル根ハッシュ(Merkle root hash)と呼ばれ、ブロックのヘッダに記憶される。トランザクションのいずれにおける変化も、そのトランザクションのハッシュ値に変化を引き起こし、最終的に、マークル根ハッシュの変化を引き起こす。
ブロックは、合意プロトコルによってブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードが、合意プロトコルに参加し、ブロックをブロックチェーンに追加させるための仕事を実行する。そのようなノードは、コンセンサスノードと呼ばれる。上記で紹介されたPBFTは、合意プロトコルの非限定的な例として使用される。コンセンサスノードは、ブロックチェーンにトランザクションを追加するために合意プロトコルを実行し、ブロックチェーンネットワークの全体の状態を更新する。
さらに詳しくは、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュし、ブロックのすべてのトランザクションに関して単一のハッシュ値が与えられるまで、ハッシュ値を2つ1組で組み合わせてさらなるハッシュ値を生成する。このハッシュが、ブロックヘッダに追加される。また、コンセンサスノードは、ブロックチェーン内の最新のブロック(つまり、ブロックチェーンに追加された最後のブロック)のハッシュ値を決定する。さらに、コンセンサスノードは、ブロックヘッダにナンス値およびタイムスタンプを追加する。
概して、PBFTは、ビザンチン障害(たとえば、機能不全のノード、悪意のあるノード)に耐える実用的ビザンチン状態機械複製を提供する。これは、障害が発生することを想定すること(たとえば、独立したノードの障害の存在および/またはコンセンサスノードによって送信された操作されたメッセージを想定すること)によってPBFTにおいて実現される。PBFTにおいて、コンセンサスノードは、プライマリコンセンサスノードおよびバックアップコンセンサスノードを含むひと続きで提供される。プライマリコンセンサスノードは、周期的に変更される。トランザクションは、ブロックチェーンネットワーク内のコンセンサスノードがブロックチェーンネットワークのワールド状態(world state)について同意に達することによってブロックチェーンに追加される。このプロセスにおいては、コンセンサスノードの間でメッセージが送信され、各コンセンサスノードは、メッセージが指定されたピアノードから受信されることを証明し、メッセージが送信中に修正されなかったことを検証する。
PBFTにおいて、合意プロトコルは、すべてのコンセンサスノードが同じ状態で始まるようにして複数のフェーズで提供される。まず始めに、クライアントが、サービスの動作を呼び出す(たとえば、ブロックチェーンネットワーク内でトランザクションを実行する)ためにプライマリコンセンサスノードに要求を送信する。要求を受信することに応じて、プライマリコンセンサスノードは、要求をバックアップコンセンサスノードにマルチキャストする。バックアップコンセンサスノードは、要求を実行し、それぞれ、クライアントに応答を送信する。クライアントは、閾値の数の応答が受信されるまで待つ。一部の例において、クライアントは、f+1個の応答が受信されるのを待ち、fは、ブロックチェーンネットワーク内で許容され得る問題のあるコンセンサスノードの最大数である。最終結果は、十分な数のコンセンサスノードがブロックチェーンに追加されるレコードの順序に関して同意に至ることであり、レコードは、受け入れられるかまたは拒否されるかのどちらかである。
一部のブロックチェーンネットワークにおいては、トランザクションのプライバシーを保つために暗号化技術が実装される。たとえば、2つのノードが、ブロックチェーンネットワーク内のその他のノードがトランザクションの詳細を見分けることができないようにトランザクションを内密にしておきたい場合、ノードは、トランザクションデータを暗号化することができる。例示的な暗号化技術は、限定することなく、対称暗号化および非対称暗号化を含む。対称暗号化は、暗号化(平文から暗号文を生成する)と復号(暗号文から平文を生成する)との両方に単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同じ鍵が複数のノードに利用されることが可能であり、したがって、各ノードがトランザクションデータを暗号化/復号することができる。
非対称暗号化は、秘密鍵および公開鍵をそれぞれ含む鍵ペアを使用し、秘密鍵は、それぞれのノードにだけ知られており、公開鍵は、ブロックチェーンネットワークの任意のまたはすべてのその他のノードに知られている。ノードは、データを暗号化するために別のノードの公開鍵を使用することができ、暗号化されたデータは、別のノードの秘密鍵を使用して復号され得る。たとえば、再び図2を参照すると、参加者Aが、参加者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを参加者Bに送信することができる。参加者Bは、その参加者Bの秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出することができる。ノードの公開鍵を用いて暗号化されたメッセージは、ノードの秘密鍵を使用してのみ復号され得る。
非対称暗号化は、トランザクションの参加者がトランザクションのその他の参加者およびトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。たとえば、ノードは、メッセージにデジタル署名することができ、別のノードは、メッセージが参加者Aのデジタル署名に基づいてノードによって送信されたことを確認することができる。デジタル署名は、メッセージが運ばれている間に改ざんされていないことを保証するためにも使用され得る。たとえば、再び図2を参照して、参加者Aが、参加者Bにメッセージを送信することになる。参加者Aは、メッセージのハッシュを生成し、それから、その参加者Aの秘密鍵を使用してハッシュを暗号化してデジタル署名を暗号化されたハッシュとして提供する。参加者Aは、メッセージにデジタル署名を付加し、デジタル署名付きのメッセージを参加者Bに送信する。参加者Bは、参加者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。参加者Bは、メッセージをハッシュし、ハッシュを比較する。ハッシュが同じである場合、参加者Bは、メッセージが確かに参加者Aから来たものであり、改ざんされなかったことを確認することができる。
一部の実施形態において、ブロックチェーンネットワークのノードおよび/またはブロックチェーンネットワークと通信するノードは、TEEを使用して動作することができる。高レベルで、TEEは、ハードウェアの動作環境(たとえば、オペレーティングシステム(OS)、基本入出力システム(BIOS))から隔離されるハードウェア(1つまたは複数のプロセッサ、メモリ)内の信頼できる環境である。さらに詳しくは、TEEは、実行されるコードおよび主プロセッサ内にロードされたデータの機密性および完全性を保証するプロセッサの分離された安全な領域である。プロセッサ内で、TEEは、OSと並列に実行される。いわゆるトラステッドアプリケーション(TA)の少なくとも一部は、TEE内で実行され、プロセッサおよびメモリにアクセスすることができる。TEEによって、TAが、主OSにおいて実行されるその他のアプリケーションから保護される。さらに、TEEは、TEE内でTAを互いから暗号化技術によって隔離する。
TEEの例は、米国、カリフォルニア州、サンタクララのIntel Corporationによって提供されるSoftware Guard Extensions (SGX)を含む。本明細書においては例としてSGXが検討されるが、本明細書の実施形態は任意の適切なTEEを使用して実現され得ると想定される。
SGXは、ハードウェアに基づくTEEを提供する。SGXにおいて、信頼できるハードウェアは、中央演算処理装置(CPU)のダイであり、物理メモリの一部が、選ばれたコードおよびデータを保護するために隔離される。メモリの隔離された部分は、エンクレーブ(enclave)と呼ばれる。より詳細には、エンクレーブは、メモリ内のエンクレーブページキャッシュ(EPC: enclave page cache)として提供され、アプリケーションのアドレス空間にマッピングされる。メモリ(たとえば、DRAM)は、SGXのためのプリザーブドランダムメモリ(PRM: preserved random memory)を含む。PRMは、最も低いBIOSレベルの連続したメモリ空間であり、いかなるソフトウェアによってもアクセスされ得ない。各EPCは、PRMにアプリケーションデータおよびコードをロードするためにOSによって割り当てられるメモリセット(memory set) (たとえば、4KB)である。EPCメタデータ(EPCM)は、それぞれのEPCに関するエントリアドレスであり、各EPCが1つのエンクレーブによってのみ分担され得ることを保証する。つまり、単一のエンクレーブは、複数のEPCを使用することができるが、EPCは、単一のエンクレーブに専用である。
TAの実行中、プロセッサは、エンクレーブに記憶されたデータにアクセスするとき、いわゆるエンクレーブモードで動作する。エンクレーブモードの動作は、各メモリアクセスに対する追加的なハードウェアチェックを強制する。SGXにおいては、TAは、信頼できる部分および信頼できない部分へとコンパイルされる。信頼できる部分は、たとえば、OS、BIOS、特権的なシステムコード、仮想マシンマネージャ(VMM)、システム管理モード(SMM)などによってアクセスされ得ない。動作中、TAは、実行され、メモリのPRM内にエンクレーブを作成する。エンクレーブ内で信頼できる部分によって実行される信頼できる関数が、信頼できない部分によって呼び出され、エンクレーブ内で実行されるコードは、データを(暗号化されていない)平文データとみなし、データに対する外部アクセスは、拒否される。信頼できる部分は、呼び出しに対する暗号化された応答を提供し、TAは、実行を継続する。
期待されるコード(たとえば、TAの信頼できる部分)が認証されたTEE内で安全に実行されていることを検証するために、アテステーションプロセスが実行され得る。概してアテステーションプロセスは、TEEがチャレンジャ(たとえば、ブロックチェーンネットワークの鍵管理システム(KMS))からアテステーション要求を受信することを含む。それに応じて、TEEは、リモートアテステーションを実行するためのクォート(quote)を生成することができる。リモートアテステーションを実行することは、ローカルアテステーションがエンクレーブからいわゆるクォーティングエンクレーブに送信されることを含み、クォーティングエンクレーブは、ローカルアテステーションを検証し、非対称アテステーション鍵を使用してローカルアテステーションに署名することによってローカルアテステーションをリモートアテステーションに変換する。クォートは、チャレンジャ(たとえば、ブロックチェーンネットワークのKMS)に提供される。
チャレンジャは、アテステーション検証サービスを使用してリモートアテステーションを検証する。SGXのために、Intelは、チャレンジャからリモートアテステーションを受信し、リモートアテステーションを検証するIntel Attestation Service (IAS)を提供する。より詳細には、IASは、リモートアテステーションを処理し、リモートアテステーションが検証されるかどうかを示すレポート(たとえば、アテステーション検証レポート(AVR))を提供する。検証されない場合、エラーが示され得る。検証される(期待されるコードがTEEにおいて安全に実行されている)場合、チャレンジャは、TEEとのインタラクションを開始するかまたは継続することができる。たとえば、検証に応じて、(チャレンジャとしての) KMSが、(たとえば、楕円曲線Diffie-Hellman (ECDH)などの鍵交換プロセスを通じて) TEEを実行するノードに非対称暗号化鍵(たとえば、公開鍵および秘密鍵のペア)を発行して、ノードがその他のノードおよび/またはクライアントと安全に通信することを可能にすることができる。
相互アテステーションプロセスが、第1のTEEを実行するノードが第2のTEEを実行するノードのリモートアテステーションを実行することを含み、そのリモートアテステーションの実行後、第2のTEEを実行するノードが、第1のTEEを実行するノードのリモートアテステーションを実行する。両方のノードが互いを検証すると、ノードは、それらのノードの間の安全な通信を可能にするために鍵交換プロセスを実行することができる。
一部のブロックチェーンネットワークにおいては、いわゆるスマートコントラクトが実行され得る。スマートコントラクトは、様々な関係者に影響を与える契約条項を有する現実の世界の法的契約のデジタル表現として説明され得る。スマートコントラクトは、例の文脈においてはコンソーシアムブロックチェーンネットワーク内で実施され、記憶され、(必要に応じて)更新され、実行される。スマートコントラクトに関連する契約者(たとえば、買い手および売り手)は、コンソーシアムブロックチェーンネットワーク内のノードとして表される。一部の例において、契約者は、(たとえば、スマートコントラクトの関係者として)スマートコントラクトに関連する主体(たとえば、企業)を含み得る。
さらに詳しくは、スマートコントラクトは、ブロックチェーン(たとえば、ブロックチェーンネットワーク内のノード)において実行されるコンピュータによって実行可能なプログラムとして提供される。スマートコントラクトは、1組の予め定義された規則を含み、それらの規則の下で、そのスマートコントラクトの関係者は、互いにインタラクションすることに同意する。スマートコントラクトの予め定義された規則が満たされる場合、スマートコントラクトにおいて定義された取り決めが、自動的に施行される。スマートコントラクトは、通常、耐タンパー性があり、取り決めまたはトランザクションのネゴシエーションまたは実行を促進し、検証し、施行する。
図3は、本明細書の実施形態によるシステム300の例を示す図である。示されるように、システム300は、ブロックチェーンノード304a〜dを含むブロックチェーンネットワーク302を含む。ブロックチェーンノード304a〜dは、サービスTEE 306a〜dおよび鍵管理(KM) TEE 308a〜dを含む。ノード304a〜dは、スマートコントラクトサービス論理330にアクセスすることができる。鍵管理センター310が、ノード304a〜dに通信可能なように結合される。
ノード304a〜dの各々は、ブロックチェーンネットワーク302に参加し、ブロックチェーンネットワーク302 (図示せず)に関連するブロックチェーンの維持に寄与するブロックチェーンノードである。上述のように、ノード304a〜dは、ブロックチェーンネットワーク302に関連する合意プロセスに参加することができ、ブロックチェーンに追加するためにトランザクションを集めてブロックにすることができ、ブロックチェーンネットワーク302のユーザによって要求されたトランザクションを処理することができ、スマートコントラクトに符号化された動作を実行し、ブロックチェーンの管理に関連するその他のタスクを実行することができる。一部の実施形態において、各ノードは、1つまたは複数のプロセッサ、ストレージデバイス、およびその他の構成要素を含むコンピューティングデバイス(たとえば、サーバ)であることが可能である。場合によっては、ノード304a〜dは、互いに、およびブロックチェーンネットワーク302に参加するその他のノードと通信ネットワーク(図示せず)を介して通信する。図3の説明の残りに関して、ノード304b〜dもノード304aの特徴を含み得ることを理解した上で、ノード304aが例として説明される。
ノード304aは、サービスTEE 306aを含む。一部の実施形態において、サービスTEE 306aは、TEEテクノロジー(たとえば、Intel SGX)を使用して実装された安全なアプリケーション環境である。1つまたは複数のソフトウェアプログラムまたはライブラリが、サービスTEE 306aによって実行され得る。本明細書の目的のために、サービスTEE 306aは、安全な環境(TEE)と、説明された動作を実行するTEE内で実行されるソフトウェアとを指す。一部の実施形態において、サービスTEE 306aは、暗号化されたクライアントの要求によって指定されたスマートコントラクト動作を実行し、スマートコントラクト動作に関連する暗号化された結果を出力する。この機能は、下記で図4に関連してより詳細に説明される。
ノード304aは、鍵管理TEE (KM TEE) 308aも含む。一部の実施形態において、KM TEE 308aは、TEEテクノロジー(たとえば、Intel SGX)を使用して実装された安全なアプリケーション環境である。1つまたは複数のソフトウェアプログラムまたはライブラリが、KM TEE 308aによって実行され得る。本明細書の目的のために、KM TEE 308aは、安全な環境(TEE)と、説明された動作を実行するTEE内で実行されるソフトウェアとを指す。一部の実施形態において、KM TEE 308aは、下記で図4に関連してより詳細に説明されるように、鍵管理センター310から暗号化鍵を得る。
鍵管理センター310は、暗号化鍵を生成し、記憶し、維持することができる。また、鍵管理センター310は、KM TEE 308a〜dのアイデンティティを認証し、リモートアテステーションおよび鍵配置プロセス320によってノード304a〜dに暗号化鍵を提供することができる。一部の実施形態において、鍵管理は、さらに、ノード304a〜dとインタラクションするためにクライアントに暗号化鍵を提供することができる。この機能は、下記で図4に関連してより詳細に説明される。一部の実施形態において、鍵管理センター310は、通信ネットワーク(図示せず)を介してブロックチェーンネットワーク302の1つまたは複数のノードと通信する1つまたは複数のサーバまたはその他のコンピューティングデバイスであることが可能である。鍵管理センター310は、暗号化鍵およびその他のデータを記憶するために鍵管理センター310に結合されたまたは通信ネットワークを介してアクセスされ得る1つまたは複数のストレージデバイスも含み得る。
場合によっては、鍵管理センター310は、暗号化鍵の配置を実行する前にKM TEE 308a〜dのアイデンティティを認証するために動作する。たとえば、KM TEE 308aに(下記で説明される) 1つまたは複数の暗号化鍵を提供する前に、鍵管理センター310は、KM TEE 308aの信憑性を検証することができる。この検証は、KM TEE 308aによって実行されるソフトウェアがプロビジョニングされた後に改ざんされていないことを保証する。一部の実施形態において、検証は、上述のリモートアテステーションプロセスなどのリモートアテステーションプロセス320を含み得る。
KM TEE 308a〜dが鍵管理センター310から1つまたは複数の暗号化鍵を取得した後、鍵は、暗号化動作を実行するためにサービスTEE 306a〜dに転送され得る。場合によっては、KM TEEおよびサービスTEEのペア(たとえば、KM TEE 308aおよびサービスTEE 306a)は単一のノード(たとえば、ノード304a)上で動作するが、それらは、独自の独立したTEEをそれぞれ有する。結果として、KM TEE 308a〜dとサービスTEE 306a〜dとの間で伝達された情報が、信頼できない領域を通じて送信される。そのような場合、KM TEE 308a〜dは、たとえば、ローカルアテステーションプロセスを実行することによってサービスTEE 306a〜dのアイデンティティを認証することができる。
ローカルアテステーションは、エンクレーブがそのエンクレーブのアイデンティティまたは信憑性を同じローカルプラットフォーム内の別のエンクレーブに対して証明することを可能にし得る。たとえば、KM TEE 308aが、サービスTEE 306aの信憑性を検証するためのチャレンジ(challenge)を送信することができる。チャレンジを受信すると、サービスTEE 306aは、サービスTEE 306aがノード304a上に存在するという暗号学的証拠を含むレポートを生成するようにノード304aのハードウェア(たとえば、CPU)に要求することができる。レポートは、エンクレーブレポートがノード304aによって同じプラットフォーム上で生成されたことを検証するためにKM TEE 308aに提供され得る。場合によっては、ローカルアテステーションは、レポートを検証するKM TEE 308aおよびレポートを生成するエンクレーブハードウェアのみがノード304aのハードウェアプラットフォームに組み込まれる対称鍵を知っている対称鍵システムに基づいて実行され得る。
サービスTEE 306a〜dがローカルアテステーションによって認証された後、KM TEE308a〜dは、サービスTEE 306a〜dに1つまたは複数の暗号化鍵を提供することができる。場合によっては、KM TEE 308a〜dは、サービスTEE 306a〜dの認証に応じて暗号化鍵を提供することができ、またはサービスTEE 306a〜dによる1つもしくは複数の要求に応じて鍵を提供することができる。
鍵管理センター310を暗号化鍵を配置する中心機関として信頼する代わりに、本明細書は、KM TEE 308a〜dによって実装される非集中的な鍵管理方式をさらに提供する。KM TEE 308a〜dは、信頼関係を確立し、それぞれのサービスTEE 306a〜dに暗号化鍵を提供するための合意に達することができる。
高レベルで、非集中的な鍵管理方式は、相互アテステーション(MA)段階および合意段階を含み得る。MA段階において、KM TEE 308a〜dの各々は、ブロックチェーンネットワーク302内のその他のKM TEEのうちの1つまたは複数とのMAを実行するためにアテスタ(attester)とチャレンジャとの両方として働くことができる。MAは、ブロックチェーンネットワーク302内のKM TEEの間の信頼関係を確立するためのMA論理に基づいて実行され得る。信頼関係を確立するためのMA論理は、異なる論理構造を有することが可能である。2つの例示的なMA論理が、図7および図8の説明においてさらに詳細に検討される。
信頼関係がKM TEE 308a〜dの間で確立された後、非集中的な鍵管理方式は、合意段階に入ることができる。合意段階において、KM TEE 308a〜dは、暗号化鍵を生成し、互いに共有し、どの暗号化鍵がサービスTEE 306a〜dに配置されるかに関する合意に達することができる。合意は、上述のPBFTなどのコンソーシアムブロックチェーンに好適な合意プロセスを実行することに基づいて達せられ得る。暗号化鍵の配置は、ローカルアテステーションによってそれぞれのサービスTEE 306a〜dを認証することに基づいて実行され得る。
一部の実施形態において、KM TEE 308a〜dは、鍵管理センター310を集団で管理することができる。そのような場合、暗号化鍵は、引き続き鍵管理センター310によって生成され、成功したリモートアテステーションの後にKM TEE 308a〜dに提供され得る。しかし、どの暗号化鍵がKM TEE 308a〜dまたはサービスTEE 306a〜dのうちのどれに配置されるかは、KM TEE 304a〜dの間の合意プロセスによって決定され得る。
一部の実施形態において、KM TEE 308a〜dは、合意プロセスによって、暗号化鍵を生成し、維持するための鍵管理センター310として働くKM TEE 308a〜dのうちの1つまたは複数を選出し、信頼できるTEEに暗号化鍵を配置することができる。
図7を参照すると、図7は、本明細書の実施形態によるMA論理700の例を示す図である。上述のように、高レベルで、相互アテステーションプロセスが、第1のTEEを実行するノードが第2のTEEを実行するノードのリモートアテステーションを実行することを含み、そのリモートアテステーションの実行後、第2のTEEを実行するノードが、第1のTEEを実行するノードのリモートアテステーションを実行する。両方のノードが互いを検証すると、ノードは、それらのノードの間の安全な通信を可能にするために鍵交換プロセスを実行することができる。
たとえば、KM TEE 308aとKM TEE 308bとの間の相互アテステーションプロセスを使用して、相互アテステーションプロセス中に、KM TEE 308aは、まず、KM TEE 308bのリモートアテステーションを実行する。リモートアテステーションプロセス中に、KM TEE 308aとKM TEE 308bとの両方が、シグマプロトコルなどの鍵生成プロトコルを使用して、共有鍵を導出することができる。そして、KM TEE 308aは、ナンスを生成し、KM TEE 308a自体のおよびKM TEE 308bのSGXレポートのハッシュ値を計算し、それから、それらのハッシュ値をKM TEE 308bに送信することができる。そして、KM TEE 308bは、KM TEE 308aのリモートアテステーションを実行し、ハッシュされたレポートの署名を検証することができる。検証が成功である場合、KM TEE 308bは、正しいKM TEE 308aと通信していると確認され得る。それから、KM TEE 308bは、セッション鍵を生成し、ナンスとセッション鍵との両方をKM TEE 308aに送り返す。
そして、KM TEE 308aは、受信されたナンスと初めに送信されたナンスとのマッチングを実行することができる。それらのナンスが一致する場合、KM TEE 308aは、正しいKM TEE 308bと通信していると確認され得る。したがって、MAは、成功裏に実行される。それから、KM TEE 308aは、データの暗号化のためにセッション鍵を使用することによってKM TEE 308bと安全に通信することができる。その他のKM TEEの間のMAは、同様に実行され得る。
MA論理700の下で、KM TEE 308a〜dのいずれか1つが、閉ループ認証「リング」を形成するために2つのその他のKM TEE 308a〜dとのMAを実行する。場合によっては、KM TEEは、KM TEE 308a〜dのMA全体が閉ループで実行される限りにおいて、MAを実行するために場所が近いかまたは高い通信効率を有する2つのKM TEEを選択することができる。
図7に示された例において、KM TEE 308aは、KM TEE 308bとのMAにおいてチャレンジャとアテスタとの両方を実行し、KM TEE 308bは、KM TEE 308cとのMAにおいてチャレンジャとアテスタとの両方を実行し、KM TEE 308cは、KM TEE 308dとのMAにおいてチャレンジャとアテスタとの両方を実行し、KM TEE 308dは、KM TEE 308aとのMAにおいてチャレンジャとアテスタとの両方を実行する。MAがKM TEE 308a〜dのすべてを含む閉ループを形成するために実行されるので、各KM TEEのアイデンティティが、連続的に認証され、信頼関係が、KM TEE 308a〜dの間で形成される。
図8は、本明細書の実施形態による別のMA論理800の例を示す図である。MA論理800の例において、MAは、ラウンドロビン式に実行される。言い換えると、各KM TEEは、ブロックチェーンネットワーク内のその他のKM TEEの各々とMAを1回実行する。たとえば、図7の説明において検討されたようにMA論理700の下でMAを実行することに加えて、KM TEE 308aは、KM TEE 308cとのMAにおいてチャレンジャとアテスタとの両方を実行し、KM TEE 308bは、KM TEE 308dとのMAにおいてチャレンジャとアテスタとの両方を実行する。
ブロックチェーンネットワーク内のKM TEEのうちの任意の2つのアイデンティティが相互に認証されるので、MA論理800は、MA論理700よりも安全であることが可能である。一方、より少ないMAがMA論理700の下で実行されるので、MA論理700は、認証の迅速さおよびリソースの消費の点でより効率的であり得る。MA論理800は、より少ない数のコンセンサスノードまたはより高いセキュリティの要件を有するブロックチェーンネットワークにより好適であり得る。MA論理700は、より多い数のコンセンサスノードまたはより低いセキュリティの要件を有するブロックチェーンネットワークにより好適であり得る。
再び図3を参照すると、スマートコントラクトサービス論理330は、1つまたは複数のスマートコントラクトの定義を含む。ノード304a〜304dは、(たとえば、図4に示されるように、クライアントの要求に応じて)スマートコントラクトサービス論理330から特定の動作を実行する。一部の実施形態において、スマートコントラクトサービス論理330内のスマートコントラクトの定義は、ブロックチェーンネットワーク302のノードによって実行される命令を含む。スマートコントラクトサービス論理330は、ブロックチェーンネットワーク302 (図示せず)によって維持される1つまたは複数のブロックチェーンに記憶されたスマートコントラクトの定義を含み得る。
図4は、本明細書の実施形態によるシステム400の例を示す図である。示されるように、システム400は、図3に関連して説明された(サービスTEE 306aおよびKM TEE 308aを含む)ノード304aおよび鍵管理センター310を含む。システム400は、鍵管理センター310に通信可能なように結合されたクライアント480も含む。
動作中、システム400は、スマートコントラクトの命令を安全に実行し、(たとえば、ブロックチェーンに含めるために)動作の暗号化された結果を生成することができる。上記で検討されたように、鍵管理センター310は、KM TEE 308aを信頼して暗号化鍵を渡す前に、リモートアテステーションを実行してKM TEE 308aのアイデンティティを認証することができる。KM TEE 308が認証された後、鍵管理センター310は、ノード304aのKM TEE 308aに開封秘密鍵402、ルート鍵404、署名秘密鍵406を提供することができる。鍵管理センター310は、封印公開鍵414および検証公開鍵416もホストする。鍵管理センター310は、以下で説明されるように、サービスTEE 306aに関連する様々なデータの暗号化および復号を実行するためにこれらの鍵を認可されたクライアントに提供する。
示されるように、鍵管理センター310は、封印公開鍵414をクライアント480に提供する。場合によっては、鍵管理センター310は、クライアント480を認証し、クライアント480が封印公開鍵414にアクセスすることを認可される場合にのみ封印公開鍵414を提供する。鍵管理センター310は、この判定を行うために内部または外部のパーミッションリソースと協議することができる。封印公開鍵414は、KM TEE 308aに提供される開封秘密鍵402に関連付けられる。封印公開鍵414および開封秘密鍵402は、鍵ペアを形成し、つまり、封印公開鍵414を用いて暗号化されたデータは、開封秘密鍵402を使用して復号され得る。
クライアント480は、サービスTEE 306aに配置されたイーサリアム仮想マシン(VM) 460によって実行されるスマートコントラクト動作である要求される契約動作450を特定する。場合によっては、スマートコントラクト動作450は、スマートコントラクトプログラミング言語の命令を実行するように動作可能なVMによる実行のためにその言語で符号化された1つまたは複数の命令を含む。スマートコントラクト動作450は、要求契約動作450に関連するスマートコントラクトに関する実行状態を含み得る。スマートコントラクトの実行中に、ブロックチェーンネットワークの複数のノードは、スマートコントラクトの各命令を個々に実行し、命令の完了後のスマートコントラクトの実行状態を示す結果を生成する。実行状態は、スマートコントラクトに関連するデータを含み得る。コントラクトのそれぞれの実行された命令は、(たとえば、スマートコントラクトのもっと後の命令によって使用される値を記憶するために)データの内容を変更することができる。スマートコントラクトの命令の実行後、ブロックチェーンネットワークのノードは、命令の実行後の新しい実行状態に関する合意に達する。この合意プロセスは、スマートコントラクトにおいて実行される各命令に関して実行され、スマートコントラクトの実行経路についておよび最終的には実行の最終結果についての合意に至る。
452において、クライアント480は、ノード304aによって実行されるサービスTEE 306aに送信するために、要求される契約動作450をデジタル封筒454に符号化する(または封印する)。たとえば、クライアント480は、一時的対称鍵408を生成し、要求される契約動作450を鍵408を使用して暗号化する。それから、クライアント480は、封印公開鍵414を使用して一時的対称鍵408を暗号化し、暗号化された契約動作450および暗号化された鍵408を連結してデジタル封筒454を生成する。
クライアント480は、デジタル封筒454をノード304aに送信し、ノード304aにおいて、そのデジタル封筒454は、サービスTEE 306aに提供される。場合によっては、クライアント480は、要求される契約動作450の処理を要求するために複数のノード304a〜dにデジタル封筒454を送信し得る。場合によっては、クライアント480は、特定のノードに固有の封印公開鍵を使用して生成されたデジタル封筒を送信し得る。クライアント480は、同じ封印公開鍵414および開封秘密鍵402がすべてのノード304a〜dに関連付けられる場合、デジタル封筒454をノード304a〜dにブロードキャストすることもできる。
サービスTEE 306aは、クライアント480からデジタル封筒454を受信し、デジタル封筒454から要求される契約動作450を復元する。示されるように、サービスTEE 306aは、KM TEE 308aから得られた開封秘密鍵402を使用してデジタル封筒454を復号する。場合によっては、サービスTEE 306aは、(456において)開封秘密鍵402を使用して一時的対称鍵408を復号し(開封し)、それから、(458において)一時的対称鍵408を使用して要求される契約動作450を復号する。
そして、サービスTEE 306aは、サービスTEE 306aに配置されたVM 460を使用して要求される契約動作450を実行する。一部の実施形態において、VM 460は、イーサリアムVMまたはその他の種類のVMなどの、スマートコントラクトプログラミング言語の命令を実行するように構成されたVMであることが可能である。場合によっては、VM 460は、動作450の実行中に、たとえば、外部サーバ、ブロックチェーン、データベース、または動作450によって示されたその他のリソースなどのサービスTEE 306aの外部のリソースにアクセスすることができる。一部の実施形態においては、動作の実行の全部が(スマートコントラクトの状態などの)サービスTEE 306aに記憶されたデータのみに依存するように、外部のリソースにアクセスすることは制約され得るかまたは拒否され得る。さらに、この種の制約は、動作450の実行の改ざんの可能性を減らすことができる。
VM 460による動作450の実行は、1つまたは複数の結果を生成することができる。場合によっては、結果は、上述のように、動作450の実行後のスマートコントラクトの実行状態を含み得る。462において、スマートコントラクト動作450の結果が、契約鍵(contract key) 412を使用してサービスTEE 306aによって暗号化される。契約鍵412は、鍵導出関数(KDF)に基づいてルート鍵404から(410において)導出される。一部の例において、KDFは、HMACに基づく抽出および展開鍵導出関数(HKDF: HMAC-based extract-and-expand key derivation function)または擬似乱数関数(PRF)などの反復ハッシュアルゴリズムに基づいて実行され得る。契約鍵は、KM TEE 308aによってサービスTEE 306aに提供され得る。一部の実施形態において、ルート鍵404は、ノード304aに関連する対称暗号化鍵であることが可能である。また、ルート鍵404は、ルート鍵404から導出され得る1つまたは複数の副鍵を含み得る。契約鍵412は、これらの副鍵のうちの1つであることが可能である。場合によっては、ルート鍵404自体が、462において結果を暗号化するために使用され得る。
結果を暗号化した後、サービスTEE 308aは、464において、署名された結果466を生成するために、サービスTEE 306aにKM TEE 308aによって提供された署名秘密鍵406を使用して暗号化された結果に署名する。これは、鍵管理センター310によって維持された(署名秘密鍵406と対応してペアにされた)検証公開鍵416を使用する第三者(たとえば、クライアント)による署名された結果のその後の検証を可能にし得る。場合によっては、署名秘密鍵406によって暗号化された結果に署名することは、結果を暗号化するために使用された契約鍵412と一緒に暗号化された結果を暗号化することを含み得る。そのような場合、検証公開鍵416を保有する第三者は、まず、契約鍵412を復号し、さらに、契約鍵412を使用して結果を復号することができる。
場合によっては、サービスTEE 306aは、署名された結果466をブロックチェーンに記憶することができる。上述のように、検証公開鍵416を保有する第三者は、検査するために鍵を使用して結果466を復号することができる。たとえば、クライアント480は、(たとえば、上述のように認証を受け)鍵管理センター310から検証公開鍵416を取り出すことができ、署名された結果466にアクセスし、検証公開鍵416を使用して署名された結果466を復号することができる。クライアント480は、それから、スマートコントラクトの次の動作がサービスTEE 306aによって実行されることを要求することができ、サービスTEE 306aに送信されるデジタル封筒に要求された次の動作および(復号された署名された結果466からの)スマートコントラクトの実行状態を含めることができる。
図5は、本明細書の実施形態によって実行され得るプロセスの例を示す。502において、ブロックチェーンネットワーク(たとえば、302)に参加するブロックチェーンノード(たとえば、304a)が、複数のKM TEEとの相互アテステーションを実行することに基づいて複数のKMノード内の複数のKM TEEとの信頼関係を確立し、そのKMノードおよび複数のKMノードは、コンソーシアムブロックチェーン内にある。
504において、ブロックチェーンノードが、KMノードのサービスTEEに1つまたは複数の暗号化鍵を提供することに関する合意に達するために複数のKM TEEとの合意プロセスを開始する。
506において、ブロックチェーンノードが、KMノードのサービスTEEによるローカルアテステーションプロセスを開始する。
508において、ブロックチェーンノードが、ローカルアテステーションプロセスが成功であると判定する。
510において、ブロックチェーンノードが、コンピューティングデバイス上で実行されるTEEに1つまたは複数の暗号化鍵を提供する。
場合によっては、ブロックチェーンノードは、コンソーシアムブロックチェーンに暗号化鍵を記憶し、コンソーシアムブロックチェーンに記憶される暗号化鍵は、コンソーシアムブロックチェーンのすべてのノードによってアクセスされ得る暗号化鍵の合意バージョンを表す。
場合によっては、KM TEEは、第1のKM TEEであり、信頼関係を確立することは、第1のKM TEEが複数のKM TEEの中の第2のKM TEEおよび第3のTEEとの相互アテステーションプロセスを実行することを含む。
場合によっては、KM TEEおよび複数のKM TEEは、コンソーシアムブロックチェーンのKM TEEの組を形成し、信頼関係を確立することは、複数のKM TEEの任意の各々がKM TEEの組のうちの2つとの相互アテステーションプロセスを実行することをさらに含む。
場合によっては、信頼関係を確立することは、KM TEEが複数のKM TEEの各々との相互アテステーションを実行することをさらに含む。
場合によっては、KM TEEおよび複数のKM TEEが暗号化鍵に関する合意プロセスを成功裏に実行することに応じて暗号化鍵がコンソーシアムブロックチェーンに記憶される。
場合によっては、合意プロセスは、実用的ビザンチン障害耐性(PBFT)プロセスである。
場合によっては、KM TEEは、第1のKM TEEであり、暗号化鍵は、サービスTEEに関連するTEE公開鍵およびTEE秘密鍵を含み、第1のKM TEEまたは第2のKM TEEは、コンソーシアムブロックチェーンからTEE公開鍵を取り出し、要求に応じてTEE公開鍵をクライアントに提供する。
図6は、本明細書の実施形態による装置600のモジュールの例を示す。装置600は、ブロックチェーンネットワーク内で実行されるブロックチェーンノードの例示的な実施形態であることが可能である。装置600は、上述の実施形態に対応することが可能であり、装置600は、以下、すなわち、複数のKM TEEとの相互アテステーションを実行することに基づいて複数のKMノード内の複数のKM TEEとの信頼関係を確立する確立モジュール602であって、そのKMノードおよび複数のKMノードが、コンソーシアムブロックチェーン内にある、確立モジュール602と、KMノードのサービスTEEに1つまたは複数の暗号化鍵を提供することに関する合意に達するために複数のKM TEEとの合意プロセスを開始し、KMノードのサービスTEEによるローカルアテステーションプロセスを開始する開始モジュール604と、ローカルアテステーションプロセスが成功であると判定する判定モジュール606と、コンピューティングデバイス上で実行されるTEEに1つまたは複数の暗号化鍵を提供する送信モジュール608とを含む。
上述の実施形態に示されたシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することによって実装されることが可能であり、または特定の機能を有する製品を使用することによって実装されることが可能である。典型的な実施形態のデバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレイヤー、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであることが可能である。
装置の各モジュールの機能および役割の実施形態のプロセスに関しては、上述の方法の対応するステップの実施形態のプロセスが参照され得る。簡潔にするために、詳細はここでは省略される。
装置の実施形態は基本的に方法の実施形態に対応するので、関連する部分に関して、方法の実施形態の関連する説明が参照され得る。上述の装置の実施形態は、例であるに過ぎない。別々の部分として説明されたモジュールは、物理的に分かれている可能性があり、または物理的に分かれていない可能性があり、モジュールとして示された部分は、物理的なモジュールである可能性があり、または物理的なモジュールではない可能性があり、1つの位置に置かれる可能性があり、またはいくつかのネットワークモジュールに分散される可能性がある。モジュールの一部またはすべては、本明細書の解決策の目的を達成するために実際の要求に基づいて選択され得る。当業者は、創造的な努力なしに本出願の実施形態を理解し、実装し得る。
図6を再び参照すると、図6は、ブロックチェーンネットワーク内で実行され、実行主体として機能するブロックチェーンノードの内部機能モジュールおよび構造を示すものと解釈され得る。実行主体は、本質的に、電子デバイスであることが可能であり、電子デバイスは、以下、すなわち、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能な命令を記憶するように構成されたメモリとを含む。
本明細書において説明される技術は、1つまたは複数の技術的効果を生む。一部の実施形態において、説明される技術は、複数のノードが、暗号化鍵を用いてその他のコンピューティングデバイス上のトラステッド実行環境を認可し、構成するために分散型鍵管理センター(KMC)として機能することを可能にする。場合によっては、鍵は、ブロックチェーンに記憶され、たとえ要求された鍵が要求を受信するノードとは異なるノードによって構成され、記憶されたとしても複数のノードのいずれかがその他のコンピューティングデバイスから受信された暗号化鍵の要求に答えることを可能にする。一部の例において、技術は、(集中的な解決策とは異なり)複数のノードのうちの1つの障害が鍵管理サービスの中断を引き起こさないので、システムを停止させずに動作し続けるさらなる能力も提供する。一部の実施形態において、技術は、暗号化鍵をブロックチェーンに記憶することに関連する合意プロセスのおかげで、システムを侵害するために攻撃者がすべての鍵管理ノードの制御を掌握しなければならないので、向上したセキュリティを提供することができる。
対象の説明される実施形態は、1つまたは複数の特徴を単独でまたは組み合わせて含み得る。1つの実施形態は、クライアントから、スマートコントラクト動作を実行する暗号化された要求を、ブロックチェーンネットワークに参加するブロックチェーンノードによって受信する行為と、ブロックチェーンノードによってホストされるTEE内でブロックチェーンノードによって、要求されたスマートコントラクト動作を生成するためにTEEに関連する第1の秘密鍵を用いて暗号化された要求を復号する行為であって、第1の秘密鍵が、暗号化された要求を暗号化するために使用されたTEEに関連する公開鍵に対応する、復号する行為と、スマートコントラクトの結果を生成するために要求されたスマートコントラクト動作をTEE内でブロックチェーンノードによって実行する行為と、TEE内でブロックチェーンノードによって、暗号化された結果を生成するためにスマートコントラクトの結果をTEEに関連する対称鍵を用いて暗号化する行為と、TEE内でブロックチェーンノードによって、署名された暗号化された結果を生成するために暗号化された結果にTEEに関連する第2の秘密鍵を使用して署名する行為であって、第2の秘密鍵が、第1の秘密鍵と異なる、署名する行為と、ブロックチェーンノードによって、ブロックチェーンネットワークによって維持されるブロックチェーンに署名された暗号化された結果を記憶する行為とを含むコンピュータによって実施される方法を含む。
上述のおよびその他の説明される実施形態は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含み得る。
以下の特徴のいずれとも組み合わされ得る第1の特徴は、ブロックチェーンノードが、コンソーシアムブロックチェーンに暗号化鍵を記憶し、コンソーシアムブロックチェーンに記憶される暗号化鍵は、コンソーシアムブロックチェーンのすべてのノードによってアクセスされ得る暗号化鍵の合意バージョンを表すと規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第2の特徴は、KM TEEが、第1のKM TEEであり、信頼関係を確立することが、第1のKM TEEが複数のKM TEEの中の第2のKM TEEおよび第3のTEEとの相互アテステーションプロセスを実行することを含むと規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第3の特徴は、KM TEEおよび複数のKM TEEが、コンソーシアムブロックチェーンのKM TEEの組を形成し、信頼関係を確立することが、複数のKM TEEの任意の各々がKM TEEの組のうちの2つとの相互アテステーションプロセスを実行することをさらに含むと規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第4の特徴は、信頼関係を確立することが、KM TEEが複数のKM TEEの各々との相互アテステーションを実行することをさらに含むと規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第5の特徴は、KM TEEおよび複数のKM TEEが暗号化鍵に関する合意プロセスを成功裏に実行することに応じて暗号化鍵がコンソーシアムブロックチェーンに記憶されると規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第6の特徴は、合意プロセスが、実用的ビザンチン障害耐性(PBFT)プロセスであると規定する。
上述のまたは以下の特徴のいずれとも組み合わされ得る第7の特徴は、KM TEEが、第1のKM TEEであり、暗号化鍵が、サービスTEEに関連するTEE公開鍵およびTEE秘密鍵を含み、第1のKM TEEまたは第2のKM TEEが、コンソーシアムブロックチェーンからTEE公開鍵を取り出し、要求に応じてTEE公開鍵をクライアントに提供すると規定する。
本明細書に記載の対象の実施形態ならびに行為および動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータプログラム担体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。たとえば、コンピュータプログラム担体は、命令を符号化させ、または記憶している1つまたは複数のコンピュータ可読ストレージ媒体を含み得る。担体は、磁気、光磁気、もしくは光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、またはその他の種類の媒体などの有形の非一時的コンピュータ可読媒体である可能性がある。代替的にまたは追加的に、担体は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号である可能性がある。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであるかまたはその一部であることが可能である。コンピュータストレージ媒体は、伝播信号ではない。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードと呼ばれるまたは称される可能性もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境内での実行に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能であり、その環境は、1つまたは複数の場所のデータ通信ネットワークによって相互に接続された1つまたは複数のコンピュータを含む可能性がある。
コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語の文書に記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、プロセッサに結合された非一時的コンピュータ可読媒体から実行するためのコンピュータプログラムの命令およびデータを受信する。
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。データ処理装置は、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)、ASIC (特定用途向け集積回路)、またはGPU (グラフィックス処理装置)を含み得る。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって動作を実行するために1つまたは複数のコンピュータプログラムを1つまたは複数のコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA、ASIC、もしくはGPUによって、または専用の論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央演算処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。
また、概してコンピュータは、1つまたは複数のストレージデバイスを含むか、またはこれらのストレージデバイスからデータを受け取るかもしくはこれらのストレージデバイスにデータを転送するために動作可能なように結合される。ストレージデバイスは、たとえば、磁気、光磁気、もしくは光ディスク、ソリッドステートドライブ、または任意のその他の種類の非一時的コンピュータ可読媒体であることが可能である。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。したがって、コンピュータは、ローカルのおよび/またはリモートの1つまたは複数のメモリなどの1つまたは複数のストレージデバイスに結合される可能性がある。たとえば、コンピュータは、コンピュータの一体的な構成要素である1つもしくは複数のローカルのメモリを含むことが可能であり、またはコンピュータは、クラウドネットワーク内にある1つもしくは複数のリモートのメモリに結合されることが可能である。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
構成要素は、直接かまたは1つまたは複数の中間構成要素を介してかのどちらかで互いに電気的にまたは光学的になど通信可能なように接続されることによって互いに「結合される」ことが可能である。構成要素は、構成要素のうちの一方が他方に統合される場合も、互いに「結合される」ことが可能である。たとえば、プロセッサに統合されたストレージ構成要素(たとえば、L2キャッシュ構成要素)は、プロセッサに「結合される」。
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、LCD (液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることができる入力デバイス、たとえば、キーボードおよびポインティングデバイス、たとえば、マウス、トラックボール、またはタッチパッドとを有するコンピュータ上に実装され得るかまたはそのようなコンピュータと通信するように構成され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信すること、またはユーザデバイス、たとえば、スマートフォンもしくは電子タブレット上で実行されるアプリとインタラクションすることによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
本明細書は、用語「構成される」をシステム、装置、およびコンピュータプログラムの構成要素に関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行為を実行するように構成されることは、システムが、動作中にシステムに動作または行為を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行為を実行させる命令を含むことを意味する。専用の論理回路が特定の動作または行為を実行するように構成されることは、回路が動作または行為を実行する電子的な論理を有することを意味する。
本明細書は多くの特定の実施形態の詳細を含むが、これらは、請求項自体によって定義される特許請求されているものの範囲に対する限定と見なされるべきではなく、むしろ、特定の実施形態に固有である可能性がある特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実現されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実現されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上記で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張は、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
同様に、動作が特定の順序で図中に示され、請求項に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行為は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
100 環境
102 コンソーシアムブロックチェーンネットワーク
106 コンピューティングデバイス
108 コンピューティングデバイス
110 ネットワーク
200 概念的なアーキテクチャ
202 主体レイヤ
204 ホストされるサービスレイヤ
206 ブロックチェーンネットワークレイヤ
208 トランザクション管理システム
210 インターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
300 システム
302 ブロックチェーンネットワーク
304a〜d ブロックチェーンノード
306a〜d サービスTEE
308a〜d 鍵管理(KM) TEE
310 鍵管理センター
320 リモートアテステーションプロセス
330 スマートコントラクトサービス論理
400 システム
402 開封秘密鍵
404 ルート鍵
406 署名秘密鍵
408 一時的対称鍵
412 契約鍵
414 封印公開鍵
416 検証公開鍵
450 スマートコントラクト動作、契約動作
454 デジタル封筒
460 イーサリアム仮想マシン(VM)
466 署名された結果
480 クライアント
600 装置
602 確立モジュール
604 開始モジュール
606 判定モジュール
608 送信モジュール
700 MA論理
800 MA論理

Claims (10)

  1. トラステッド実行環境(TEE)の信憑性を検証するためのコンピュータによって実施される方法であって、
    鍵管理(KM)ノードのKM TEEによって、複数のKM TEEとの相互アテステーションを実行することに基づいて複数のKMノード内の前記複数のKM TEEとの信頼関係を確立するステップであって、前記KMノードおよび前記複数のKMノードが、コンソーシアムブロックチェーン内にある、ステップと、
    前記KMノードのサービスTEEに1つまたは複数の暗号化鍵を提供することに関する合意に達するために前記複数のKM TEEとの合意プロセスを前記KM TEEによって開始するステップと、
    前記複数のKM TEEと前記合意に達することに応じて、前記KMノードのサービスTEEによるローカルアテステーションプロセスを前記KM TEEによって開始するステップと、
    前記ローカルアテステーションプロセスが成功であると前記KM TEEによって判定するステップと、
    前記ローカルアテステーションプロセスが成功であるとの判定に応じて、前記KM TEEによって、コンピューティングデバイス上で実行される前記TEEに1つまたは複数の暗号化鍵を提供するステップと
    を含む、コンピュータによって実施される方法。
  2. 前記KMノードによって前記コンソーシアムブロックチェーンに前記暗号化鍵を記憶するステップであって、前記コンソーシアムブロックチェーンに記憶される前記暗号化鍵が、前記コンソーシアムブロックチェーンのすべてのノードによってアクセスされ得る前記暗号化鍵の合意バージョンを表す、ステップをさらに含む請求項1に記載のコンピュータによって実施される方法。
  3. 前記KM TEEが、第1のKM TEEであり、前記信頼関係を確立するステップが、前記第1のKM TEEが前記複数のKM TEEの中の第2のKM TEEおよび第3のTEEとの相互アテステーションプロセスを実行することを含む請求項1または2に記載のコンピュータによって実施される方法。
  4. 前記KM TEEおよび前記複数のKM TEEが、前記コンソーシアムブロックチェーンのKM TEEの組を形成し、前記信頼関係を確立するステップが、前記複数のKM TEEの任意の各々が前記KM TEEの前記組のうちの2つとの相互アテステーションプロセスを実行することをさらに含む請求項1から3のいずれか一項に記載のコンピュータによって実施される方法。
  5. 前記信頼関係を確立するステップが、前記KM TEEが前記複数のKM TEEの各々との相互アテステーションを実行することをさらに含む請求項1、2、または3のいずれか一項に記載のコンピュータによって実施される方法。
  6. 前記KM TEEおよび前記複数のKM TEEが前記暗号化鍵に関する合意プロセスを成功裏に実行することに応じて前記暗号化鍵が前記コンソーシアムブロックチェーンに記憶される請求項1から5のいずれか一項に記載のコンピュータによって実施される方法。
  7. 前記合意プロセスが、実用的ビザンチン障害耐性(PBFT)プロセスである請求項1から6のいずれか一項に記載のコンピュータによって実施される方法。
  8. 前記KM TEEが、第1のKM TEEであり、前記暗号化鍵が、前記サービスTEEに関連するTEE公開鍵およびTEE秘密鍵を含み、前記第1のKM TEEまたは第2のKM TEEが、前記コンソーシアムブロックチェーンから前記TEE公開鍵を取り出し、要求に応じて前記TEE公開鍵をクライアントに提供する請求項1から7のいずれか一項に記載のコンピュータによって実施される方法。
  9. トラステッド実行環境(TEE)の信憑性を検証するためのシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合され、請求項1から8のいずれか一項に記載の方法を実行するために前記1つまたは複数のプロセッサによって実行可能な命令を記憶した1つまたは複数のコンピュータ可読メモリと
    を含む、システム。
  10. トラステッド実行環境(TEE)の信憑性を検証するための装置であって、請求項1から8のいずれか一項に記載の方法を実行するための複数のモジュールを含む、装置。
JP2019559274A 2019-04-26 2019-04-26 トラステッド実行環境のための分散型鍵管理 Active JP6869374B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/084530 WO2019137565A2 (en) 2019-04-26 2019-04-26 Distributed key management for trusted execution environments

Publications (2)

Publication Number Publication Date
JP2020524421A true JP2020524421A (ja) 2020-08-13
JP6869374B2 JP6869374B2 (ja) 2021-05-12

Family

ID=67219326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559274A Active JP6869374B2 (ja) 2019-04-26 2019-04-26 トラステッド実行環境のための分散型鍵管理

Country Status (11)

Country Link
US (3) US10715339B1 (ja)
EP (1) EP3643041B1 (ja)
JP (1) JP6869374B2 (ja)
KR (1) KR102194077B1 (ja)
CN (1) CN111095899B (ja)
AU (1) AU2019207312B2 (ja)
CA (1) CA3061268C (ja)
ES (1) ES2872101T3 (ja)
PL (1) PL3643041T3 (ja)
SG (1) SG11201909855YA (ja)
WO (1) WO2019137565A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210117996A (ko) * 2020-10-28 2021-09-29 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 신뢰 환경 원격 검증 방법, 장치, 설비, 시스템 및 매체
WO2023223606A1 (ja) * 2022-05-16 2023-11-23 株式会社日立製作所 データ管理システム及びデータ管理方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11528258B2 (en) * 2018-11-02 2022-12-13 Intel Corporation System and apparatus for data confidentiality in distributed ledger
US11489672B2 (en) * 2018-11-06 2022-11-01 International Business Machines Corporation Verification of conditions of a blockchain transaction
WO2019137565A2 (en) 2019-04-26 2019-07-18 Alibaba Group Holding Limited Distributed key management for trusted execution environments
CN110971408A (zh) * 2019-12-25 2020-04-07 上海沄界信息科技有限公司 基于区块链网络的tee节点认证方法及认证系统
WO2021186754A1 (ja) * 2020-03-17 2021-09-23 株式会社モールサービス 情報処理システム、情報処理方法、情報処理プログラム、秘密分散システム、秘密分散方法、秘密分散プログラム、秘密計算システム、秘密計算方法、及び、秘密計算プログラム
CN111988141B (zh) * 2020-03-18 2022-08-02 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
CN111614686B (zh) * 2020-05-26 2023-01-17 牛津(海南)区块链研究院有限公司 一种密钥管理方法、控制器及系统
CN111885050B (zh) * 2020-07-21 2022-01-11 腾讯科技(深圳)有限公司 基于区块链网络的数据存储方法、装置、相关设备及介质
CN111881474B (zh) * 2020-07-24 2023-09-15 杭州弦冰科技有限公司 基于可信计算环境的私钥管理方法和装置
CN116340955A (zh) * 2020-07-31 2023-06-27 支付宝(杭州)信息技术有限公司 一种基于区块链的数据处理方法、装置及设备
US11601262B2 (en) * 2020-10-15 2023-03-07 Dell Products L.P. Distributed key management system
CN112448819A (zh) * 2020-11-06 2021-03-05 支付宝(杭州)信息技术有限公司 物联网设备的校验、签名文件的生成方法及装置
US20220198070A1 (en) * 2020-12-22 2022-06-23 International Business Machines Corporation Provisioning secure/encrypted virtual machines in a cloud infrastructure
US11849028B2 (en) * 2021-01-13 2023-12-19 Tata Consultancy Services Limited Method and system for secure IoT device onboarding using a blockchain network
CN113037499B (zh) * 2021-03-15 2024-01-05 杭州链网科技有限公司 一种区块链加密通讯方法及系统
US11416450B1 (en) 2021-03-16 2022-08-16 EMC IP Holding Company LLC Clustering data management entities distributed across a plurality of processing nodes
CN113688394B (zh) * 2021-06-07 2023-08-25 重庆大学 安全可信执行环境下的基于区块链的外包计算系统及方法
US11809607B2 (en) 2021-08-05 2023-11-07 International Business Machines Corporation Customization of multi-part metadata of a secure guest
US11829495B2 (en) 2021-08-05 2023-11-28 International Business Machines Corporation Confidential data provided to a secure guest via metadata
US20230070163A1 (en) * 2021-09-09 2023-03-09 International Business Machines Corporation Prevention of race conditions in a dual-server storage system for generation of encryption key
CN113869901B (zh) * 2021-12-02 2022-05-10 腾讯科技(深圳)有限公司 密钥生成方法、装置、计算机可读存储介质及计算机设备
WO2023099895A1 (en) * 2021-12-02 2023-06-08 Royal Holloway University Of London A method and system for securely sharing data
CN114553590B (zh) * 2022-03-17 2023-08-22 抖音视界有限公司 数据传输方法及相关设备
CN114615070B (zh) * 2022-03-21 2024-04-19 中国人民解放军国防科技大学 基于可信执行环境的网络安全事件捕获方法和装置
US20230353358A1 (en) * 2022-04-27 2023-11-02 Dell Products L.P. Disaggregated key management in a distributed system
CN114584307B (zh) * 2022-05-07 2022-09-02 腾讯科技(深圳)有限公司 一种可信密钥管理方法、装置、电子设备和存储介质
CN114978730B (zh) * 2022-05-27 2023-09-15 深圳铸泰科技有限公司 一种感知态势处物联网安全检测方法及存储介质
CN115134145B (zh) * 2022-06-28 2023-10-20 蚂蚁区块链科技(上海)有限公司 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质
CN115484031B (zh) * 2022-09-13 2024-03-08 山东大学 基于sgx的无可信第三方云存储密文去重方法及系统

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690941B2 (en) * 2011-05-17 2017-06-27 Microsoft Technology Licensing, Llc Policy bound key creation and re-wrap service
US9215249B2 (en) * 2012-09-29 2015-12-15 Intel Corporation Systems and methods for distributed trust computing and key management
US8924727B2 (en) * 2012-10-12 2014-12-30 Intel Corporation Technologies labeling diverse content
US9141769B1 (en) * 2013-02-08 2015-09-22 Amazon Technologies, Inc. Secure transfer and use of secret material in a shared environment
WO2014142858A1 (en) * 2013-03-14 2014-09-18 Intel Corporation Trusted data processing in the public cloud
WO2015026336A1 (en) * 2013-08-21 2015-02-26 Intel Corporation Processing data privately in the cloud
US9509502B2 (en) * 2014-03-13 2016-11-29 Intel Corporation Symmetric keying and chain of trust
US20160036826A1 (en) * 2014-07-29 2016-02-04 Mcafee, Inc. Secure content packaging using multiple trusted execution environments
US9467296B2 (en) * 2014-08-29 2016-10-11 Intel Corporation Virally distributable trusted messaging
US10531370B2 (en) * 2015-02-24 2020-01-07 Lg Electronics Inc. Method and apparatus for transmitting data in wireless communication system
US10304143B2 (en) * 2016-05-05 2019-05-28 Lance Timothy Kasper Consensus system for manipulation resistant digital record keeping
US9830480B2 (en) * 2015-05-27 2017-11-28 Google Llc Policies for secrets in trusted execution environments
US9842065B2 (en) * 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
CN106454528A (zh) * 2015-08-07 2017-02-22 阿里巴巴集团控股有限公司 基于可信执行环境的业务处理方法和客户端
CA3002034A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities
EP3438902B1 (en) * 2015-12-14 2021-04-28 Coinplug, Inc System for issuing public certificate on basis of block chain, and method for issuing public certificate on basis of block chain by using same
US10063529B2 (en) * 2016-03-28 2018-08-28 Accenture Global Solutions Limited Secure 3D model sharing using distributed ledger
US10521775B2 (en) * 2016-04-18 2019-12-31 R3 Ltd. Secure processing of electronic transactions by a decentralized, distributed ledger system
US11829998B2 (en) * 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
EP3337119B1 (en) * 2016-12-13 2019-09-11 Nxp B.V. Updating and distributing secret keys in a distributed network
US10341116B2 (en) * 2016-12-28 2019-07-02 Intel Corporation Remote attestation with hash-based signatures
US20180183586A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Assigning user identity awareness to a cryptographic key
US11438155B2 (en) * 2017-01-24 2022-09-06 Microsoft Technology Licensing, Llc Key vault enclave
US20180225661A1 (en) * 2017-02-07 2018-08-09 Microsoft Technology Licensing, Llc Consortium blockchain network with verified blockchain and consensus protocols
WO2018152519A1 (en) * 2017-02-20 2018-08-23 AlphaPoint Performance of distributed system functions using a trusted execution environment
CN106941487B (zh) * 2017-02-24 2021-01-05 创新先进技术有限公司 一种数据发送方法及装置
US10397005B2 (en) * 2017-03-31 2019-08-27 Intel Corporation Using a trusted execution environment as a trusted third party providing privacy for attestation
US11348095B2 (en) * 2017-04-11 2022-05-31 Nchain Licensing Ag Rapid distributed consensus on blockchain
US10742393B2 (en) 2017-04-25 2020-08-11 Microsoft Technology Licensing, Llc Confidentiality in a consortium blockchain network
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10671733B2 (en) * 2017-05-19 2020-06-02 International Business Machines Corporation Policy enforcement via peer devices using a blockchain
CN117640099A (zh) * 2017-06-14 2024-03-01 区块链控股有限公司 用于避免或减少区块链网络上的加密滞留资源的系统和方法
US10558812B2 (en) * 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
CN107342858B (zh) * 2017-07-05 2019-09-10 武汉凤链科技有限公司 一种基于可信环境的智能合约保护方法和系统
US10567359B2 (en) 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
CN107395349A (zh) * 2017-08-16 2017-11-24 深圳国微技术有限公司 一种基于自认证公钥体制的区块链网络密钥分发方法
US10554634B2 (en) * 2017-08-18 2020-02-04 Intel Corporation Techniques for shared private data objects in a trusted execution environment
US10541804B2 (en) * 2017-08-18 2020-01-21 Intel Corporation Techniques for key provisioning in a trusted execution environment
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
US10460283B2 (en) * 2017-09-13 2019-10-29 Vijay Madisetti Smart contract optimization for multiparty service or product ordering system
US20190095879A1 (en) * 2017-09-26 2019-03-28 Cornell University Blockchain payment channels with trusted execution environments
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
EP3729721A4 (en) * 2017-10-11 2021-10-13 Cambridge Blockchain, Inc. SYSTEMS AND PROCESSES FOR MANAGING RELATIONSHIPS BETWEEN DIGITAL IDENTITIES
CN107919954B (zh) * 2017-10-20 2019-05-14 浙江大学 一种基于sgx软件防护扩展指令的区块链用户密钥保护方法和装置
US11943368B2 (en) * 2017-11-03 2024-03-26 Microsoft Technology Licensing, Llc Provisioning trusted execution environment based on chain of trust including platform
US20190140846A1 (en) * 2017-11-03 2019-05-09 Microsoft Technology Licensing, Llc Provisioning trusted execution environment(s) based on chain of trust including platform
US20190158275A1 (en) * 2017-11-22 2019-05-23 Michael Beck Digital containers for smart contracts
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US10735450B2 (en) * 2017-11-30 2020-08-04 Intel Corporation Trust topology selection for distributed transaction processing in computing environments
US11288740B2 (en) * 2017-12-29 2022-03-29 Intel Corporation Securing distributed electronic wallet shares
US11126699B2 (en) * 2018-02-07 2021-09-21 Nec Corporation Replica trusted execution environment: enabling seamless replication of trusted execution environment (TEE)-based enclaves in the cloud
US11218324B2 (en) * 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
US11615060B2 (en) * 2018-04-12 2023-03-28 ISARA Corporation Constructing a multiple entity root of trust
US11169935B2 (en) * 2018-06-20 2021-11-09 Intel Corporation Technologies for low-latency cryptography for processor-accelerator communication
US11057366B2 (en) * 2018-08-21 2021-07-06 HYPR Corp. Federated identity management with decentralized computing platforms
US10270770B1 (en) * 2018-08-23 2019-04-23 Xage Security, Inc. Generic computing device attestation and enrollment
WO2020057757A1 (en) * 2018-09-21 2020-03-26 NEC Laboratories Europe GmbH Method for signing a new block in a decentralized blockchain consensus network
US10708247B2 (en) 2018-09-27 2020-07-07 Intel Corporation Technologies for providing secure utilization of tenant keys
GB201816837D0 (en) * 2018-10-16 2018-11-28 Microsoft Technology Licensing Llc Database management
MX2019004657A (es) 2018-11-07 2019-08-12 Alibaba Group Holding Ltd Agilizacion de consenso de cadena de bloques de tolerancia a faltas bizantinas practica y sincronizacion de nodo.
RU2733097C1 (ru) 2018-11-27 2020-09-29 Алибаба Груп Холдинг Лимитед Управление асимметричными ключами в консорциальных блокчейн сетях
AU2018347199B2 (en) * 2018-12-13 2021-07-01 Advanced New Technologies Co., Ltd. Off-chain smart contract service based on trusted execution environment
US10936723B2 (en) * 2019-03-27 2021-03-02 Intel Corporation Fast and secure protocol to bootstrap a blockchain by restoring the blockchain state using trusted execution environment
WO2019137565A2 (en) 2019-04-26 2019-07-18 Alibaba Group Holding Limited Distributed key management for trusted execution environments

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210117996A (ko) * 2020-10-28 2021-09-29 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 신뢰 환경 원격 검증 방법, 장치, 설비, 시스템 및 매체
KR102532057B1 (ko) * 2020-10-28 2023-05-15 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 신뢰 환경 원격 검증 방법, 장치, 설비, 시스템 및 매체
WO2023223606A1 (ja) * 2022-05-16 2023-11-23 株式会社日立製作所 データ管理システム及びデータ管理方法

Also Published As

Publication number Publication date
SG11201909855YA (en) 2019-11-28
KR20200126320A (ko) 2020-11-06
US11356285B2 (en) 2022-06-07
CA3061268A1 (en) 2019-07-18
CA3061268C (en) 2020-09-22
US20200304319A1 (en) 2020-09-24
CN111095899B (zh) 2021-12-24
EP3643041A2 (en) 2020-04-29
JP6869374B2 (ja) 2021-05-12
PL3643041T3 (pl) 2021-09-06
KR102194077B1 (ko) 2020-12-23
US20210306164A1 (en) 2021-09-30
EP3643041A4 (en) 2020-04-29
AU2019207312B2 (en) 2020-06-25
US10715339B1 (en) 2020-07-14
US11038700B2 (en) 2021-06-15
WO2019137565A3 (en) 2020-03-12
WO2019137565A2 (en) 2019-07-18
CN111095899A (zh) 2020-05-01
EP3643041B1 (en) 2021-03-10
ES2872101T3 (es) 2021-11-02

Similar Documents

Publication Publication Date Title
JP6869374B2 (ja) トラステッド実行環境のための分散型鍵管理
KR102263325B1 (ko) 신뢰 실행 환경에서 스마트 계약 동작을 안전하게 실행하는 방법
US11095629B2 (en) Retrieving access data for blockchain networks using highly available trusted execution environments
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191220

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210114

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210312

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210413

R150 Certificate of patent or registration of utility model

Ref document number: 6869374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150