JP2022546470A - トランスポート層セキュリティおよび他のコンテキストでのデータの検証のための非集中型技術 - Google Patents

トランスポート層セキュリティおよび他のコンテキストでのデータの検証のための非集中型技術 Download PDF

Info

Publication number
JP2022546470A
JP2022546470A JP2022513433A JP2022513433A JP2022546470A JP 2022546470 A JP2022546470 A JP 2022546470A JP 2022513433 A JP2022513433 A JP 2022513433A JP 2022513433 A JP2022513433 A JP 2022513433A JP 2022546470 A JP2022546470 A JP 2022546470A
Authority
JP
Japan
Prior art keywords
client device
verifier
server
secure session
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022513433A
Other languages
English (en)
Inventor
ツァン,ファン
クリシュナ ディーパク マラム,サイ
マルバイ,ハージャスリーン
ゴールドフェーダー,スティーブン
ジュエルズ,アリ
Original Assignee
コーネル ユニヴァーシティ
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 コーネル ユニヴァーシティ filed Critical コーネル ユニヴァーシティ
Publication of JP2022546470A publication Critical patent/JP2022546470A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key 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
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/3247Cryptographic 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 digital signatures
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • 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/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/045Network 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 wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

一実施形態での検証器デバイスは、1つ以上のネットワークを介して、クライアントデバイスおよびサーバデバイスと通信するように構成されている。検証器デバイスは、クライアントデバイスおよびサーバデバイスとの三者ハンドシェイクプロトコルに参加し、検証器デバイスおよびクライアントデバイスは、サーバデバイスとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する。検証器デバイスは、クライアントデバイスから、サーバデバイスとのセキュアなセッションに関連するコミットメントを受信し、コミットメントの受信に応答して、クライアントデバイスに対して以前はアクセス可能でなかった、セキュアなセッションに関連する追加の情報をクライアントデバイスに公開する。検証器デバイスは、コミットメントおよび追加の情報に少なくとも部分的に基づいて、セキュアなセッションの一部として、サーバデバイスからクライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証する。【選択図】図1

Description

関連出願の相互参照
本出願は、2019年8月30日に出願された、“DECO:Decentralized Oracles for TLS”という名称の、米国仮特許出願第62/894,052号の優先権を主張し、その全体は、参照により本明細書に組み込まれる。
政府支援の声明
本発明は、国立科学財団(NSF)の助成番号CNS-1514163、CNS-1564102、CNS-1704615、およびCNS-1933655、ならびに陸軍研究局(ARO)の助成番号W911NF161-0145の下で、米国政府の支援を受けてなされた。米国政府は、本発明において特定の権利を有する。
本分野は、一般に、例えば、データが特定のソースからのものであることを証明するための、または別様には、トランスポート層セキュリティ(TLS)のコンテキストで、および他のコンテキストで取得されたデータの正確性を検証するための技術を含む、情報セキュリティに関する。
TLSの広範な展開のおかげで、ユーザは、エンドツーエンドの機密性および完全性を有するチャネルを介して非公開データにアクセスすることができる。しかしながら、ユーザが行うことができないことは、そのようなデータの起源、すなわち、それが特定のウェブサイトを真に出所とすることを第三者に対して証明することである。既存の手法は、望ましくない信頼の仮定を導入するか、またはサーバサイドの修正を必要とする。その結果、ユーザの非公開データの価値は、発信源に閉じ込められる。
例示的な実施形態は、データが特定のソースからのものであることを証明する必要があるか、または別様には望ましい、TLSのための、および多数の他のアプリケーションでの非集中型オラクルを提供する。
例えば、いくつかの実施形態は、ユーザが、TLSを介してアクセスされるデータの部分が特定のウェブサイトを出所とすることを証明することと、任意選択で、そのようなデータに関するステートメントをゼロ知識で証明して、データそのものを秘密に保持することと、を可能にする、本明細書では例示的にDECOと呼ばれる、非集中型オラクルを提供することによって、既存の手法の上述した欠点を克服する。したがって、DECOは、集中型ウェブサービスサイロからデータを解放し、広範なアプリケーションにとってこのデータをアクセス可能にすることができる。有利なことに、例示的な実施形態でのDECOは、信頼できるハードウェアまたはサーバサイドの修正なしに機能する。
一実施形態では、装置は、プロセッサ、およびプロセッサに結合されたメモリを含む検証器デバイスを備える。検証器デバイスは、1つ以上のネットワークを介して、クライアントデバイスおよびサーバデバイスと通信するように構成されている。検証器デバイスは、クライアントデバイスおよびサーバデバイスとの三者ハンドシェイクプロトコルに参加し、検証器デバイスおよびクライアントデバイスは、サーバデバイスとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する。検証器デバイスは、クライアントデバイスから、サーバデバイスとのセキュアなセッションに関連するコミットメントを受信し、コミットメントの受信に応答して、クライアントデバイスに対して以前はアクセス可能でなかった、セキュアなセッションに関連する追加の情報をクライアントデバイスに公開する。検証器デバイスは、コミットメントおよび追加の情報に少なくとも部分的に基づいて、セキュアなセッションの一部として、サーバデバイスからクライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証する。
前述の配置は単なる例であり、多数の代替構成が可能であることを理解されたい。
本発明のこれらのおよび他の実施形態は、限定されないが、システム、方法、装置、処理デバイス、集積回路、およびソフトウェアプログラムコードが内部で具現化されたプロセッサ可読記憶媒体を含む。
例示的な実施形態における、TLSのための非集中型オラクルを実装した情報処理システムを示す。 例示的な実施形態における、TLSのための非集中型オラクルを実装するためのプロセスのフロー図である。 例示的な実施形態における、非集中型オラクルの機能性の例を示す。 例示的な実施形態における、サーバデバイス、証明器デバイス、および検証器デバイスを備える非集中型オラクル実装態様でのデバイスインタラクションの複数の段階を例示している。 例示的な実施形態における、選択的開示およびコンテキスト完全性攻撃を実証するために使用される銀行ステートメント情報を含む例示的なデータを示す。 例示的な実施形態における、非集中型オラクルプロトコルの1つの可能な実装態様の詳細図を示す。 例示的な実施形態における、非集中型オラクルを実装する際に利用される三者ハンドシェイクプロトコルの詳細な例を示す。 例示的な実施形態における、鍵共有を確立する際に証明器デバイスと検証器デバイスとの間で実行されるプロトコルを示す。 例示的な実施形態における、分散化オラクルの実装態様と併せて利用されるプロトコルの追加の例を示す。 例示的な実施形態における、分散化オラクルの実装態様と併せて利用されるプロトコルの追加の例を示す。 パーティのうちの1つが非集中型オラクルを利用して、スマートコントラクトに提供される情報を取得する、2つのパーティを含むスマートコントラクトの実施形態を示す。 例示的な実施形態における、1つ以上の非集中型オラクルそれぞれの明示モードおよび黒塗りモードを使用して処理された例示的なデータを示す。 例示的な実施形態における、1つ以上の非集中型オラクルそれぞれの明示モードおよび黒塗りモードを使用して処理された例示的なデータを示す。 例示的な実施形態における、一意鍵文法の2段階の構文解析のための擬似コードを示す。
本発明の実施形態は、例えば、コンピュータネットワーク、またはネットワーク、クライアント、サーバ、処理デバイス、および他の構成要素の他の配置を含む、情報処理システムの形態で実装され得る。そのようなシステムの例示的な実施形態が、本明細書に詳細に記載される。しかしながら、本発明の実施形態は、より一般的に、多種多様な他のタイプの情報処理システム、および関連付けられたネットワーク、クライアント、サーバ、処理デバイス、または他の構成要素に適用可能であることを理解されたい。よって、本明細書で使用される「情報処理システム」という用語は、これらのおよび他の構成を包含するように広く解釈されることが意図されている。
図1は、例示的な実施形態での、TLSのための非集中型オラクルを実装した情報処理システム100を示す。システム100は、ネットワーク105を介して通信するように構成されている複数のクライアントデバイス102-1、102-2、...102-Nおよび検証器デバイス104を備える。クライアントデバイス102のうちの所与の1つは、例えば、ラップトップコンピュータ、タブレットコンピュータもしくはデスクトップパーソナルコンピュータ、携帯電話、または別のタイプのコンピュータもしくは処理デバイス、ならびに複数のそのようなデバイスの組み合わせを備えることができる。検証器デバイス104は、同様に、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合された少なくとも1つのメモリと、を各々が含む、様々なタイプの処理デバイスを備えることができる。
ネットワーク105は、例えば、インターネットなどのグローバルコンピュータネットワーク、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、衛星ネットワーク、電話もしくはケーブルネットワーク、3G、4G、もしくは5Gネットワークなどのセルラネットワーク、Bluetooth(登録商標)、WiFi(登録商標)もしくはWiMAX(登録商標)などの無線プロトコルを使用して実装された無線ネットワーク、またはこれらの、および他のタイプの通信ネットワークの様々な部分もしくは組み合わせを例示的に含むことができる。
システム100は、それぞれの保護されたデータソース108と関連付けられた複数のTLSサーバ106をさらに備える。TLSサーバ106は、これらのTLSサーバのそれぞれの保護されたデータソース108へのアクセスを制御するように例示的に構成されている。保護されたデータソース108の少なくともサブセットが、それぞれのHTTPS対応ウェブサイトを例示的に含み、HTTPSは、ハイパーテキスト転送プロトコル(HTTP)の拡張であるハイパーテキスト転送プロトコルセキュアの表記である。多種多様な追加のまたは代替のデータソースを他の実施形態で使用することができることを認識されたい。システム100の保護されたデータソース108は、これらのデータソースにTLSサーバ106のうちの少なくとも1つを通してHTTPSを介してセキュアにアクセスすることができるという意味で保護される。他のデータソースは、この特定の方法でアクセス可能である必要はなく、追加のまたは代替のアクセス制御機構を実装することができ、かつ/または他のタイプのセキュアプロトコルを使用して公的にアクセス可能であり得る。
また、本明細書の例示的な実施形態は、TLSサーバ106などの特定のタイプの1つ以上のサーバを利用するが、他のタイプのセキュアなプロトコルを他の実施形態で使用することができ、他のタイプのサーバデバイスに実装することができることを認識されたい。したがって、本明細書で使用される「サーバデバイス」という用語は、広く解釈されることが意図されており、TLSサーバにいかなるようにも限定されると見なされるものではない。
いくつかの実施形態でのクライアントデバイス102は、検証器デバイス104またはシステム100の他のゼロ知識証明(ZKP)オラクルノード110に対する、それぞれの証明器デバイスとして動作する。したがって、検証器デバイス104を、システム100のZKPオラクルノードと見なしてもよい。したがって、その用語が本明細書で広く使用される所与の「検証器デバイス」は、例えば、システム100などの非集中型オラクルシステムのオラクルノードのセットの特定のオラクルノードを含むことができる。
システム100のデバイスおよび他の構成要素の特定の数、タイプ、および配置は、例示的な例としてのみ提示され、他の実施形態では変わり得る。例えば、この実施形態では、単一の検証器デバイス104のみが示されるが、他の実施形態は、他のZKPオラクルノード110がそれぞれの検証器デバイスとして動作する配置でのように、複数の検証器デバイスを含むことができる。また、TLSサーバ106のうちの1つ以上が各々、保護されたデータソース108のうちの複数のものへのアクセスを制御するように構成され得る。多数の他の非集中型オラクル配置が可能である。
検証器デバイス104は、三者ハンドシェイクモジュール112、ポストハンドシェイクインタラクションモジュール114、および証明検証モジュール116を備える。これらのモジュールは、以下でより詳細に記載されるように、本明細書ではDECOプロトコルとも呼ばれる、非集中型オラクルプロトコルのそれぞれの個別のプロトコルを実装している。
本実施形態の検証器デバイス104は、プロセッサ120、メモリ122、およびネットワークインターフェース124をさらに備える。プロセッサ120は、図に示される簡略化された例示的相互接続を介してメモリ122に、およびネットワークインターフェース124に、動作可能に結合されるものする。
プロセッサ120は、例えば、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、算術論理ユニット(ALU)、デジタル信号プロセッサ(DSP)、または他の同様の処理デバイスコンポーネント、ならびに他のタイプおよび配置の処理回路機構を、任意の組み合わせで含んでもよい。本明細書に開示される所与の処理デバイスによって提供される非集中型オラクルの機能性の少なくとも一部分を、そのような回路機構を使用して実装することができる。
メモリ122は、処理デバイスの機能性の一部分を実装する際に、プロセッサ120による実行のためのソフトウェアプログラムコードを記憶する。例えば、モジュール112、114、および116の機能性の少なくとも一部分を、メモリ122に記憶されたプログラムコードを使用して実装することができる。
対応するプロセッサによる実行のためのそのようなプログラムコードを記憶する所与のそのようなメモリは、本明細書で、より一般に、プログラムコードが内部で具現化されたプロセッサ可読記憶媒体と呼ばれるものの例であり、例えば、SRAM、DRAM、もしくは他のタイプのランダムアクセスメモリ、読み取り専用メモリ(ROM)、フラッシュメモリ、磁気メモリ、光学メモリ、または他のタイプの記憶デバイスなどの電子メモリを、任意の組み合わせで含んでもよい。
そのようなプロセッサ可読記憶媒体を備える製造物品は、本発明の実施形態と見なされる。本明細書で使用される「製造品」という用語は、一過性の伝播信号を除外すると理解されるものである。
プロセッサ可読記憶媒体を備える他のタイプのコンピュータプログラム製品を、他の実施形態で実装することができる。
加えて、本発明の実施形態を、クライアントデバイス102、検証器デバイス104、TLSサーバ106、および他のZKPオラクルノード110のうちの1つ以上と関連付けられた処理動作を実施するように構成された処理回路機構を備える集積回路の形態で実施してもよい。
ネットワークインターフェース124は、検証器デバイス104がネットワーク105を介して他のシステム要素と通信することを可能にするように構成されており、1つ以上の従来の送受信機を備え得る。
動作において、例示的な実施形態における検証器デバイス104は、クライアントデバイス102-1などのクライアントデバイス102のうちの所与の1つ、およびTLSサーバ106のうちの所与の1つとともに、三者ハンドシェイクプロトコルに参加するように構成されている。そのような参加は、検証器デバイス104の三者ハンドシェイクモジュール112によって、例示的に制御される。三者ハンドシェイクプロトコルの実行と併せて、検証器デバイス104およびクライアントデバイス102-1は、所与のTLSサーバとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する。セキュアなセッションは、TLSセッションを例示的に含む。
検証器デバイス104は、クライアントデバイス102-1から、所与のTLSサーバとのセキュアなセッションに関連するコミットメントを受信する。コミットメントの受信に応答して、検証器デバイス104は、クライアントデバイス102-1に対して以前はアクセス可能でなかったセキュアなセッションに関連する追加の情報をクライアントデバイス102-1に公開する。コミットメントに関連するこれらの動作は、ポストハンドシェイクインタラクションモジュール114の制御下で例示的に実行される。
検証器デバイス104は、コミットメントおよび追加の情報に少なくとも部分的に基づいて、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータの少なくとも1つの特徴付けの正確性を検証する。そのような検証は、証明検証モジュール116の制御下で例示的に実行される。
いくつかの実施形態では、検証器デバイス104は、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータの少なくとも1つの特徴付けの正確性の検証に応答して、1つ以上の自動化されたアクションを開始するようにさらに構成されている。例えば、検証器デバイス104は、検証情報または他の関連情報をクライアントデバイス102-1に返すことができる。
例として、セキュアなセッションに関連するコミットメントは、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたクエリ応答データへのコミットメントを含んでもよい。
別の例として、セキュアなセッションに関連するコミットメントは、クライアントデバイス102-1によって、三者ハンドシェイクプロトコルと併せて確立されたが、検証器デバイス104に対して以前にアクセス可能でない証明器鍵へのコミットメントを含んでもよい。他のタイプのコミットメントを他の実施形態で使用することができる。
いくつかの実施形態での、コミットメントの受信に応答してクライアントデバイス102-1に公開された追加の情報は、三者ハンドシェイクプロトコルと併せて検証器デバイス104によって確立されたが、クライアントデバイス102-1に対して以前にアクセス可能でない検証鍵を含む。
他の実施形態では、検証器デバイス104は、クライアントデバイス102-1と所与のTLSサーバとの間のインタラクションと併せて、クライアントデバイス102-1に対するプロキシとして動作するようにさらに構成されており、これにより、検証器デバイス104は、プロキシとして動作する検証器デバイス104を介したセキュアなセッションの一部としてクライアントデバイス102-1と所与のTLSサーバとの間で交換される暗号文を自動的に取得する。そのような実施形態は、本明細書では「プロキシモード」配置と呼ばれる。
いくつかの実施形態での検証器デバイス104は、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータを特徴付ける1つ以上のステートメントをクライアントデバイス102-1から受信するようにさらに構成されている。
例えば、1つ以上のステートメントのうちの所与の1つは、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたクエリ応答データの選択的に明示されたサブストリングを例示的に含む。
別の例として、1つ以上のステートメントのうちの所与の1つは、多段階構文解析プロトコルの利用を通じてコンテキスト完全性を提供するように例示的に構成されており、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたクエリ応答データは、クライアントデバイス102-1によって前処理されて、クライアントデバイス102-1によって検証器デバイス104に送信される所与のステートメントの生成と併せて、クライアントデバイス102-1によって続いて解析される低減されたデータを生成する。
セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータを特徴付ける多種多様な他のタイプのステートメントを、他の実施形態で使用することができる。
いくつかの実施形態では、三者ハンドシェイクプロトコルと併せて、クライアントデバイス102-1および検証器デバイス104は、所与のTLSサーバとともに1つ以上の共有セッション鍵を合同で確立し、クライアントデバイス102-1は、1つ以上の共有セッション鍵のうちの所与の1つの第1のシェアを有し、検証器デバイス104は、所与の共有セッション鍵の第2のシェアを有し、所与のTLSサーバは、第1および第2のシェアを組み合わせる複合セッション鍵を有する。
追加的にまたは代替的に、三者ハンドシェイクプロトコルと併せて、クライアントデバイス102-1は、所与のTLSサーバから、検証器デバイス104に対してアクセス可能でない暗号鍵を受信する。
いくつかの実施形態では、検証器デバイス104およびクライアントデバイス102-1は、所与のTLSサーバとのセキュアなセッションのセッション鍵のそれらのそれぞれのシェアを使用して共同して、所与のTLSサーバがクライアントデバイス102-1にデータを送信することを要求するためにクライアントデバイス102-1によって所与のTLSサーバに提供されるクエリを生成する。
検証器デバイス104およびクライアントデバイス102-1は、同様に、所与のTLSサーバとのセキュアなセッションのセッション鍵のそれらのそれぞれのシェアを使用して共同して、クエリに応答して、所与のTLSサーバによってクライアントデバイス102-1に提供される応答を確証することができる。
いくつかの実施形態では、三者ハンドシェイクプロトコルと併せて、クライアントデバイス102-1および検証器デバイス104は、それぞれの証明器および検証器鍵を確立する。そのような実施形態では、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータの少なくとも1つの特徴付けの正確性を検証することは、クライアントデバイス102-1によって検証器デバイス104に提供された証明を検証することを例示的に含む。証明は、クライアントデバイス102-1によって、(i)三者ハンドシェイクプロトコルと併せてクライアントデバイス102-1によって確立された証明器鍵、(ii)三者ハンドシェイクプロトコルと併せて検証器デバイス104によって確立された検証器鍵、および(iii)パスワードまたはパスコードなどの、クライアントデバイス102-1の秘密情報に少なくとも部分的に基づいて、例示的に生成される。
いくつかの実施形態では、セキュアなセッションの一部として、所与のTLSサーバからクライアントデバイス102-1によって取得されたデータの少なくとも1つの特徴付けの正確性を検証することは、セキュアなセッションの少なくとも1つの暗号文の少なくとも一部分から導出されたデータを取得することと、クライアントデバイス102-1によって、そのデータの少なくとも1つの特徴付けの正確さを検証することと、を例示的に含む。本明細書のこの文脈および他の場所で使用される「暗号文」という用語は、広く解釈されることが意図されており、任意の特定の暗号プロトコルの使用を必要とすると見なされるものではない。
図1に示される構成要素および他のシステム要素の特定の配置、ならびに上述したそれらの関連付けられた処理動作は、例示的な例としてのみ提示され、多数の代替実施形態が可能であることを認識されたい。
例えば、システム100の検証器デバイス104は、メモリに結合されたプロセッサを備える単一の処理デバイスとして例示的に示されているが、他の実施形態での検証器デバイスは、検証器デバイス104の機能性が複数の個別の処理デバイスにわたって分散された分散型検証器デバイスを備えることができる。そのような実施形態では、本明細書に開示される様々なプロトコルにおける検証器の役割を、マルチパーティプロトコルを実行する複数の個別のパーティにわたって分散させ、各々のそのようなパーティを、分散型検証器デバイスの複数の処理デバイスのうちの異なる1つと関連付けることができる。したがって、本明細書で使用される「デバイス」という用語は、メモリに結合されたプロセッサを備える少なくとも1つの処理デバイス、したがって、分散型検証器デバイスの場合でのような複数のそのような処理デバイスを包含するように、広く解釈されることが意図されている。
図2は、検証器デバイス104がTLSサーバ106のうちの1つによって制御されるデータに関して証明器としてのクライアントデバイス102のうちの1つとインタラクトすることによって、少なくとも部分的に例示的に実装された、例示的なプロセスを示す。この特定のプロセスは単なる例であり、追加のまたは代替のプロセスを、他の実施形態で、証明器、検証器、およびサーバエンティティによって、少なくとも部分的に実行することができることを理解されたい。
この実施形態では、プロセスは、ステップ200~208を例示的に含む。上記に述べたように、これらのステップの少なくとも一部分は、検証器デバイス104が、クライアントデバイス102のうちの1つとインタラクトし、かつTLSサーバ106のうちの1つをさらに伴うことによって、少なくとも部分的に実行されるものとする。これらの構成要素は、図2プロセスのコンテキストでは、それぞれ検証器、証明器、およびサーバとも呼ばれる。
ステップ200では、検証器は、クライアントおよびサーバとの三者ハンドシェイクプロトコルに参加し、クライアントは証明器として機能する。
ステップ202では、三者ハンドシェイクプロトコルと併せて、検証器および証明器は、サーバとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する。
ステップ204では、検証器は、証明器から、サーバとのセキュアなセッションに関連するコミットメントを受信する。
ステップ206では、コミットメントの受信に応答して、検証器は、証明器に対して以前はアクセス可能でなかったセキュアなセッションに関連する追加の情報を証明器に公開する。
ステップ208では、検証器は、コミットメントおよび追加の情報に少なくとも部分的に基づいて、セキュアなセッションの一部として、サーバから証明器によって取得されたデータの少なくとも1つの特徴付けの正確性を検証する。
本明細書に開示されるような非集中型オラクルの実装態様と関連して、多数の他の技術を使用することができる。
よって、図2のフローチャートと併せて記載される特定の処理動作および他の機能性は、例示的な例としてのみ提示され、いかなるようにも本発明の範囲を限定すると解釈されるものではない。代替実施形態は、検証器デバイス、証明器デバイス、およびサーバデバイスを伴う他のタイプの処理動作を使用することができる。例えば、プロセスステップの順序を、他の実施形態で変えてもよく、または特定のステップを、連続的ではなく互いに同時に実行してもよい。また、プロセスの複数のインスタンスを、それぞれの証明器、検証器、およびサーバデバイスの異なるセットのために、システム100内で互いに並列に実行してもよい。よって、システム100は、本明細書に開示される技術を使用して、多数の非集中型オラクルを同時に実装することができる。
ここで、例示的な実施形態のさらなる態様を、図3~図14を参照して記載する。
TLSの広範な展開により、ユーザは、エンドツーエンドの機密性および完全性を有するチャネルを介して非公開データにアクセスすることができる。しかしながら、従来の慣行の下でユーザが容易に行うことができないことは、そのようなデータの起源、すなわち、それが特定のウェブサイトを真に出所とすることを第三者に対して証明することである。既存の手法は、望ましくない信頼の仮定を導入するか、またはサーバサイドの修正を必要とする。
その結果、ユーザの非公開データは、発信源に閉じ込められる。ユーザは、現在のデータ所有者からの助力および許可なしには、完全性が保護された方法でユーザのデータを他のアプリケーションにエクスポートすることができない。
本明細書における例示的な実施形態は、DECO(非集中型オラクルの略)と称される技術を提供して、これらのおよび他の問題に対処する。DECOは、TLSを介してアクセスされた一データが特定のウェブサイトを出所とすることをユーザが証明し、任意選択で、そのようなデータに関するステートメントをゼロ知識で証明して、データ自体を秘密に保持することを可能にする。有利なことに、例示的な実施形態でのDECOを、信頼できるハードウェアまたはサーバサイドの修正を必要とせずに実装することができる。
DECOは、集中型ウェブサービスサイロからデータを解放し、広範なアプリケーションに対してこのデータをアクセス可能にすることができる。DECOのパワーを実証するために、それなしには以下を達成することが厳しい3つのアプリケーションを実装する:スマートコントラクトを使用した非公開金融商品、レガシークレデンシャルの匿名のクレデンシャルへの変換、および価格差別に対する検証可能な請求。
本明細書におけるDECOへのこれらのおよび他の参照が例示的な実施形態を指し、それらの実施形態の特定の特徴、機能性、利点および他の詳細がいかなるようにも限定されると解釈されるものではないことを認識されたい。代替実施形態は、TLSおよび他のコンテキストにおけるデータソースを検証するための追加のまたは代替の技術を実装することができる。
上記に示したように、TLSは、ユーザが、機密の、完全性が保護されたチャネルを介してウェブデータにアクセスすることを可能にする、強力で広範囲に展開されたプロトコルである。しかし、TLSは、ユーザがアクセスした一データが特定のウェブサイトを真正に出所とすることを第三者に対して証明することができないという、深刻な制限を有する。その結果、データの使用は、しばしばその発信源に限られ、GDPRなどの最近の規制によって認められている権利であるユーザによるデータ可搬性を縮小する。
具体的には、ユーザがTLSを介してオンラインでデータにアクセスする場合、現在のデータ所有者からの助力(それゆえ許可)なしには、セキュアにデータをエクスポートすることができない。したがって、膨大な量の非公開データが、意図的に、または意図せずに、公にアクセス可能でないウェブの一部である、「ディープウェブ」に閉じ込められる。
この問題をよりよく認識するために、アリスが18歳以上であることをボブに対して証明したい例を考える。現在、年齢検証サービスは、ユーザがIDおよび詳細な個人情報をアップロードすることを必要とし、それにより、プライバシー問題が生じる。しかし、会社の給与記録またはDMVウェブサイトなどの、様々なウェブサイトは、原則として検証された生年月日を記憶し、提供する。アリスは、そのようなサイトから彼女の生年月日のスクリーンショットを送信し得るが、これは、容易に偽造される。スクリーンショットが本物であることが何らかの形で証明されたとしても、彼女が18歳以上であることだけでなく、彼女の正確な生年月日を明示する情報が漏洩するであろう。
オンラインデータの起源をスマートコントラクトに対して証明するために最初に提案されたオラクルは、TLSによって保護されたデータを起源および完全性の保証を有して他のシステムにエクスポートすることに向けたステップである。しかしながら、既存のスキームは、深刻な技術的制限を有する。これらの既存のスキームは、非推奨のTLSバージョンでのみ機能し、オラクル(例えば、TLSNotary)からプライバシーを提供しないか、または信頼できるハードウェア(例えば、Town Crier)に依存し、それらに対して、最近、様々な攻撃が現れている。別のクラスのオラクルスキームは、サーバサイドの協調を前提としており、サーバがTLS拡張機能をインストールするか、またはアプリケーション層ロジックを変更することを義務付ける。サーバによって推進されるオラクルスキームは、2つの基本的な問題に見舞われている。まず、これらのスキームは、レガシー互換性を破り、広い採用に重大な障壁を生じさせる。その上、ウェブサーバが、どのデータをエクスポートすることができるかを判定する唯一の決定権を有し、かつエクスポート試行を任意に検閲することができるため、そのようなソリューションは、条件付きエクスポート可能性を提供するに過ぎない。ユーザがアクセス権を有する任意のデータをエクスポートできるようにするメカニズムであれば、現在実現できないアプリケーションのホスト全体が可能になるであろう。
上記の問題に対処するために、本明細書に開示される例示的な実施形態は、TLSのための非集中型オラクルである、DECOと呼ばれる配置を提供する。ウェブサイトごとのサポートを必要とするオラクルスキームとは異なり、DECOは、例示的にソース非依存であり、標準のTLSを実行する任意のウェブサイトをサポートする。ウェブサイトの参加に依存するソリューションとは異なり、DECOは、サーバサイドの協調を必要としない。したがって、DECOの単独のインスタンスは、誰でも任意のウェブサイトのオラクルになることを可能にし得る。
DECOは、スマートコントラクトなどのインターネットにアクセスすることができないアプリケーションを含む幅広いアプリケーションに対して、豊富なインターネットデータを、真正性およびプライバシーを保証してアクセス可能にする。DECOは、非公開データデリバリに、第三者への転送または公開リリースのためのオプションを提供することによって、今日のウェブデータ拡散モデルを根本的にシフトさせ得る。この技術的能力は、将来の潜在的な法的および規制上の課題を際立たせるが、同時に、魅力的な新しいサービスの創出および提供を見込むものである。重要なことに、DECOは、いくつかの代替手法とは異なり、信頼できるハードウェアを必要としない。
いくつかの実施形態では、高レベルでは、証明器は、一データDにコミットし、検証器に、DがTLSサーバS、および任意選択でDに関するステートメントπを出所とすることを証明する。年齢を証明する例を再び参照すると、ステートメントπは、属性「D=y/m/dは、アリスの誕生日であり、現在の日付-Dは、少なくとも18年である」であり得る。
非公式に、DECOは、真正性を達成する-すなわち、検証器は、Dに関するアサートされたステートメントが真であり、かつDがTLSサーバSから実際に取得された場合にのみ確信する。DECOはまた、検証器がSから取得されたいくつかのDのためにステートメントπが持続することを学習するに過ぎない点で、プライバシーを提供する。
レガシーTLS互換プリミティブを使用しながら、必要とされるセキュリティおよび実用的な性能を有するDECOを設計することは、いくつかの重要な技術的課題を導入する。1つの課題は、TLSが、クライアント(例えば、DECOの証明器)およびウェブサーバによって共有される対称暗号鍵および認証鍵を生成するということから起こる。したがって、クライアントは、有効な認証鍵でデータに署名するという意味で、任意のTLSセッションデータを偽造することができる。
この課題に対処するために、DECOは、一TLSセッションデータDに検証器に対する証明器による非偽造可能なコミットメントを作成する、証明器、検証器、およびウェブサーバの間の新規な三者ハンドシェイクプロトコルを導入する。検証器は、DがTLSサーバを真正に出所とすることを確認することができる。証明器の観点から、三者ハンドシェイクは、悪意のある検証器の存在下で、TLSのセキュリティを維持する。
効率的な選択的開示。Dにコミットした後、証明器は、コミットメントに関するステートメントを証明する。任意のステートメントを理論的にサポートすることができるが、検証器への応答のサブストリングのみを明示することを、最も一般的なアプリケーションである可能性が高いものについて最適化する。そのようなステートメントを、選択的開示と呼ぶ。細粒状の選択的開示は、ユーザが機密情報を秘匿することを可能にし、後続の証明への入力長を低減する。
ナイーブソリューションであれば、包括的なゼロ知識証明(ZKP)を使用したTLSレコードの高価で検証可能な復号化を伴うであろうが、本明細書の例示的な実施形態は、TLSレコード構造を利用することによって、オーダオブマグニチュードの効率改善を達成する。例えば、TLSレコードの検証可能な復号化の直接的な実装態様であれば、1024 AES呼び出しの回路の正しい実行をゼロ知識で証明することを伴うであろう一方、CBC-HMACのMAC後暗号化(MAC-then-encrypt)構造を活用することによって、本明細書における例示的な実施形態は、3つのAES呼び出しのみで同じことを遂行することができる。
コンテキスト完全性。選択的開示は、証明器がサーバの応答DのサブストリングD’のみを明示することを可能にする。ただし、サブストリングは、このサブストリングが現れる時に応じた異なるものを意味し得、悪意のある証明器であれば、コンテキスト外の引用によって不正行為を行い得る。したがって、D’がDに現れるだけでなく、D’が想定されるコンテキストに現れる、すなわち、D’がDに関してコンテキスト完全性を有することを証明する必要がある(このことはプライバシー理論における「コンテキスト完全性」とは異なることに留意されたい)。
コンテキスト完全性攻撃を、セッションコンテンツが構造化されており、かつ構文解析できる場合に、阻止することができる。幸いなことに、ほとんどのウェブデータは、この形式を採用している(例えば、JavaScript(登録商標)オブジェクト表記(JSON)またはハイパーテキストマークアップ言語(HTML))。包括的なソリューションは、セッション全体を構文解析し、明示された部分が構文解析木の必要な分岐に属することを証明することである。しかし、ウェブデータが一般に満たす特定の制約の下では、セッション全体を解析することは、必須ではない。本明細書で開示されるいくつかの実施形態は、証明器がセッションコンテンツを前処理し、かつ通常はるかに小さい結果のみを構文解析する、新規な2段階構文解析スキームを提供する。プログラミング言語理論で使用されるように、プログラムの等価性の定義から、2段階構文解析スキームのセキュリティに関して推論するための正式なフレームワークを構築することが引き出される。本明細書に開示される例示的な実施形態は、特定の文法のためのいくつかの実用的な実現を提供する。当定義および構成は、他のオラクルにも一般化される。例えば、コンテンツ隠蔽攻撃の包括的バージョンを防止し得る。
例示的な実施形態の実装態様および評価に関して、DECOを完全なエンドツーエンドシステムとして設計し、実装した。システムのパワーを実証するために、次の3つのアプリケーションを実装した。1)スマートコントラクトを使用した機密性保存する金融商品、2)レガシークレデンシャルの匿名クレデンシャルへの変換、および3)価格差別に対する検証可能な請求。
これらのアプリケーションでの実験は、DECOが高度に効率的であることを示す。例えば、WAN設定でのTLS1.2について、三者ハンドシェイクを実行するためのオンライン時間は、2.85sであり、2PCクエリ実行については、2.52sである。上述したアプリケーションに対してゼロ知識証明を生成するには、約3秒~13秒かかる。より詳細な詳細は、本明細書の他の箇所で提供される。
以下に詳細に記載される例示的な実施形態と併せて開示されるDECOは、有利なことに、証明可能にセキュアな非集中型オラクルスキームを提供する。いくつかの実施形態でのDECOは、信頼できるハードウェアまたはサーバサイドの修正を必要としない最新のTLSバージョンのためのオラクルスキームを提供する。
また、以下では、DECOを使用してゼロ知識で効率的に証明できるTLSレコードの幅広いクラスのステートメントについて詳細に記載する。そのようなステートメントは、ユーザがセッションデータコミットのサブストリングのみをオープンすることを可能とする。最適化は、包括的なZKPよりも大幅な効率改善を達成する。
コンテキスト完全性攻撃および緩和に関して、プライバシー保存するオラクルに普遍的な新しいクラスのコンテキスト完全性攻撃を識別し、新規な効率的な2段階構文解析スキームを伴う当緩和アプローチについて記載する。
トランスポート層セキュリティ(TLS)
ここで、DECOが例示的な実施形態で構築されるTLSハンドシェイクおよびレコードプロトコルに関するいくつかの背景を提供する。
TLSは、2つの通信アプリケーション間のプライバシーおよびデータ完全性を提供するプロトコルのファミリーである。大まかに言えば、このファミリーは、2つのプロトコルで構成されている:非対称暗号を使用してセッションをセットアップし、次のプロトコルであるレコードプロトコルのための共有のクライアントおよびサーバ鍵を確立するハンドシェイクプロトコル、レコードプロトコルでは、対称暗号を使用して機密性および完全性保護を伴ってデータが送信される。
ハンドシェイク。ハンドシェイクプロトコルでは、サーバおよびクライアントは、暗号アルゴリズムのセット(暗号スイートとしても知られている)に最初に合意する。次いで、サーバおよびクライアントは、互いに認証し(クライアント認証は任意選択)、最後に、後続のレコードプロトコルに使用される共有シークレットをセキュアに計算する。
例示的な実施形態でのDECOは、一時的秘密(ECDHE)を用いる楕円曲線ディフィーヘルマン(DH)鍵交換を利用するが、これは限定ではなく一例である。
レコードプロトコル。TLSでアプリケーション層データ(例えば、HTTPメッセージ)を伝送するために、レコードプロトコルは、まず、アプリケーションデータ
Figure 2022546470000002
を、固定サイズの平文レコード
Figure 2022546470000003
に断片化する。各レコードは、通常、複数のブロック(例えば、128ビット)にパディングされる。次いで、レコードプロトコルは、任意選択で、データを圧縮し、MACを適用し、結果を暗号化し、伝送する。受信されたデータは、復号化され、検証され、展開され、再構成され、次いで、上位レベルのプロトコルにデリバリされる。特定の暗号化操作は、ネゴシエートされた暗号スイートに依存する。DECOは、一般的に使用される2つのモードで高度暗号化標準(AES)暗号をサポートする:CBC-HMACおよびGCMであって、CBC-HMACは、Cipher Block Chaining-Hash-based Message Authentication Codeの表記であり、GCMは、Galois/Counter Modeの表記である。TLSのこれらのおよび他の態様に関する追加の詳細は、例えば、T. Dierks and E. Rescorla,“The Transport Layer Security(TLS) Protocol Version 1.2,” RFC 5246,2008に見出すことができ、これは、参照により本明細書に組み込まれる。ここでも、他の実施形態で他のプロトコルを使用することができる。
TLS1.2と1.3との差異。本明細書におけるいくつかの実施形態では、TLS1.2に焦点を当て、後で、当技術をTLS1.3に一般化する方法について記載する。ここでは、これらの2つのTLSバージョン間の主な差異について簡単に書き記す。TLS1.3は、レガシー非AEAD暗号のサポートを除外する。また、ハンドシェイクフローが、再編されている。ここでは、ServerHello後のすべてのハンドシェイクメッセージが、暗号化される。最後に、異なる鍵導出関数が、使用される。追加の詳細を、E.Rescorla,“The Transport Layer Security(TLS)Protocol Version 1.3,” RFC 8446,2018に見出すことができ、これは、参照により本明細書に組み込まれる。
マルチパーティ計算
各々がいくつかの秘密sを保持する、パーティ
Figure 2022546470000004
のグループを考える。セキュアなマルチパーティ計算(MPC)は、これらのパーティが、fの出力以外のいかなる情報も漏洩することなく、すなわちPが、sj≠iについて何も知得せずに、
Figure 2022546470000005
を合同で計算することを可能とする。MPCプロトコルのセキュリティは、一般に、t個のプレイヤを損なわせ、かつ正直なプレイヤの非公開情報を知得しようとする敵を考慮する。2パーティ計算(2PC)は、n=2、かつt=1の特殊な場合を指す。
2PCプロトコルに対する2つの一般的な手法がある。ガーブル回路プロトコルは、ビット演算(例えば、SHA-256)に最も適した手法であるブール回路としてfを符号化する。他のプロトコルは、閾値秘密分散を活用し、算術演算に最適である。しかしながら、2PCを使用するいくつかの実施形態で計算する関数は、ビット演算と算術演算との両方を含む。これらの関数を2つのコンポーネントに分離し、ビット演算には最適化されたガーブル回路プロトコルを使用し、算術演算には秘密分散ベースのMtAプロトコルを使用する。例示的な実施形態で使用される例示的な最適化されたガーブル回路プロトコルに関する追加の詳細は、Xiao Wang,Samuel Ranellucci,and Jonathan Katz,“Authenticated Garbling and Efficient Maliciously Secure Two-Party Computation,” in ACM CCS,2017に見出すことができ、これは、参照により本明細書に組み込まれる。例示的な実施形態で使用される例示的な秘密分散ベースのMtAプロトコルに関する追加の詳細は、Rosario Gennaro and Steven Goldfeder,“Fast multiparty threshold ECDSA with fast trustless setup,” in ACM CCS,2018に見出すことができ、これは、参照により本明細書に組み込まれる。これらは単なる例であり、他の実施形態で他のタイプのプロトコルを使用することができる。
ここで、DECOの例示的な実施形態によって解決される問題を述べ、そのアーキテクチャの高レベルの概要を提示する。
問題のステートメント:非集中型オラクル
本明細書における例示的な実施形態は、「オラクル」、すなわちオンラインデータの起源および特性を証明することができるエンティティ、を構築するためのプロトコルを提供する。目標は、証明器Pが、一データが特定のウェブサイトSを出所とすることを検証器Vに対して証明し、任意選択で、そのようなデータに関するステートメントをゼロ知識で証明し、データ自体を秘密に保持することを可能にすることである。データにアクセスすることは、Pからの非公開入力(例えば、パスワード)を必要とし得、そのような非公開情報もまた、Vから秘密に保持する必要がある。
例示的な実施形態では、インターネット上の広くデプロイされたセキュリティプロトコルスイートであるTLSを実行するサーバに焦点を当てる。ただし、TLSは、単独ではデータ起源を証明しない。TLSは、認証に公開鍵署名を使用するが、各セッションの開始時に確立された共有セッション鍵を使用して、交換されたメッセージの完全性および機密性を保護するために、対称鍵プリミティブを使用する。それゆえ、この対称鍵を知っているPは、暗号で認証されたTLSデータに関するステートメントを第三者に対して証明することができない。
ウェブサーバ自体は、例えば単にデータに署名することによって、オラクルの役割を引き受け得る。ただし、サーバによって推進されるオラクルの場合、高い採用コストをもたらすだけでなく、ユーザを不利な状況に置き、ウェブサーバは、オラクルの能力に任意の制約を課し得る。データを提供するウェブサーバのような単一の中央制御点に依存する必要なく、誰でも自分がアクセスできるデータの起源を証明することができるスキームが興味の対象である。
例示的な実施形態では、信頼できるハードウェアまたはウェブサーバからの協調に依存しない「非集中型オラクル」と呼んでいるものを導入することによって、これらのおよび他の課題に対処する。この問題は、以前のオラクルよりもはるかに高度であり、それは、サーバがオラクルのコードを変更したり、新しいソフトウェアをデプロイしたりすること、または予測市場の使用を必要とするソリューションを排除すると同時に、データの任意の属性に対する証明をサポートすることによって、これらの以前の手法を超えているためである。
スマートコントラクトの認証済みデータフィード。本明細書で開示される例示的な実施形態の重要なアプリケーションは、スマートコントラクトのために、認証済みデータフィード(ADF)、すなわち検証可能な起源および正確性を有するデータ、を構築することにある。遊離にも、多種多様な他のアプリケーションが、本明細書に開示される技術によってサポートされる。
ADFのコンテキストでは、スマートコントラクトは、2PCプロトコルに参加することができないことから、スマートコントラクトは、オラクルノードに代わってVとして参加するオラクルノードに依存しなければならない。したがって、いくつかの実施形態では、非集中型オラクルネットワークでDECOをデプロイし、この場合に、独立して動作するオラクルのセットが、スマートコントラクトが使用するために利用可能である。DECOを実行するオラクルは、プライバシーのためではなく、完全性のためのみに信頼されることに留意されたい。スマートコントラクトは、複数のオラクルにクエリし、かつ例えば多数決の同意を必要とすることによって、完全性欠陥に対してさらにヘッジすることができる。DECOのプライバシーは、すべてのオラクルが危殆化されても維持されることを強調しておく。したがって、DECOは、オラクルから非公開データを秘匿しながら、非公開データから導出されたADFをスマートコントラクトに提供することを可能にする。
表記および定義
いくつかの実施形態では、Pを使用して証明器を、Vを使用して検証器を、またSを使用してTLSサーバを表す。太字の文字(例えば
Figure 2022546470000006
)を使用してベクトルを表し、Mを使用して
Figure 2022546470000007
のi番目の要素を表す。
図3に例示されるように、理想的な機能性FOracleを使用してオラクルの本質的な特性をモデル化する。FOracleの並列実行を分離するために、すべてのメッセージに、sidと表された一意のセッションidでタグ付けする。追加のまたは代替的のオラクル特性を、他の実施形態で使用することができる。
図3に示されるように、本実施形態でのFOracleは、Pからの秘密パラメータθ(例えば、パスワード)、クエリテンプレートQuery、およびVからのステートメントStmtを受け入れる。クエリテンプレートは、Pの秘密θを取得し、かつVによって指定された公開パラメータを含む完全なクエリを返す関数である。例示的なクエリテンプレートは、Query(θ)“stock price of GOOG on Jan. 1st,2020 with API key=θ”であろう。証明器Pは、秘密を明示することなく、サーバに送信されたクエリが、うまく形成されている、すなわちテンプレートから構築されている、ことを後で証明することができる。ステートメントStmtは、Vがサーバの応答時に評価したい関数である。前の例に従って、応答Rが数値であるため、以下のステートメントは、それを閾値と比較するであろう:Stmt(R)=“R>$1,000”。
Pがクエリテンプレートおよびステートメントを確認した(「ok」およびθを送信することによって)後、FOracleは、テンプレートから、構築されたクエリを使用してSからの応答Rを取り出す。正直なサーバを想定しているため、Rは、グランドトゥルースである。FOracleは、Stmt(R)およびデータソースをVに送信する。
サーバサイドの修正または協調を必要としない、すなわちSが未修正のTLSプロトコルに従う、非集中型のオラクルにおいて、この実施形態での興味の対象である。より具体的には、TLSの非集中型オラクルプロトコルは、場合によってはアプリケーション層プロトコルとともに、1)ProtがFOracleを実現し、かつ2)Protが標準のTLSであるような、三者プロトコル
Figure 2022546470000008
である。
敵対者モデルおよびセキュリティ特性。例示的な実施形態では、静的で悪意のあるネットワーク敵対者Aを考える。損なわれたパーティは、任意にプロトコルから逸脱し、これらのパーティの状態をAに明示し得る。ネットワーク敵対者として、Aは、TLSが長さを秘匿しないことから、FOracleからのメッセージ長を知得する。PおよびVは、Sによって実行されるアプリケーション層プロトコルに従って、適切なクエリ(例えば、このクエリは、ほとんどのアプリケーションに対して冪等性であるはずである)およびステートメントを選定し、これらに合意するものとする。
所与のクエリQについて、サーバの正直な応答をS(Q)によって表す。PまたはVのいずれかが損なわれている場合、セキュリティが持続することを必要とする。機能性FOracleは、以下のセキュリティ保証を反映する:
・証明器-完全性:悪意のあるPは、コンテンツの起源を偽造することができず、Sに無効なクエリを受け入れさせたり、有効なクエリに誤って応答させたりすることもできない。具体的には、検証器が(Query、Stmt)を入力し、かつ(b、S)を出力する場合には、Pは、TLSセッションでQ=Query(θ)をSに送信し、b=Stmt(R)のような応答R=S(Q)を受信しなければならない。
・検証器-完全性:悪意のあるVは、Pに誤った応答を受信させることができない。具体的には、Pが(Q、R)を出力する場合には、Rは、Pによって提出されたクエリQに対するサーバの応答でなければならない、すなわち、R=S(Q)である。
・プライバシー:悪意のあるVは、公開情報(Query、S)およびStmt(R)の評価のみを知得する。
すり替えプロトコル
例示的な実施形態では、2つの広く使用される代表的なTLS暗号スイートに焦点を当てる:CBC-HMACおよびAES-GCM。当技術は、他の暗号(例えば、Chacha20-Poly1305など)にも同様に一般化される。最初にCBC-HMACを使用して、特定の実施形態を例示し、後で、AES-GCMのための技術について記載する。
TLSは、通信の各方向に別個の鍵を使用する。明示的に指定されていない限り、2つを区別せずに、kEncおよびkMACを使用して両方向のセッション鍵を表記する。
DECOの例示的な実施形態を提示する際には、すり替えプロトコルから始めて、完全なプロトコルまで段階的に構築する。
(P,V)間でFOracleを実現するすり替えプロトコルは、以下の通りである。Pは、サーバSにクエリし、サーバに送信されたメッセージおよびサーバから受信されたメッセージをすべて、それぞれ、
Figure 2022546470000009
および
Figure 2022546470000010
に記録する。
Figure 2022546470000011
および
Figure 2022546470000012
をセッション鍵とする。
次いで、彼女は、ゼロ知識で、1)各
Figure 2022546470000013
が、
Figure 2022546470000014
平文レコードおよびMACタグに復号化されることと、2)Rについての各MACタグσが、kMACに対して検証されることと、3)所望のステートメントが、応答時にb、すなわち
Figure 2022546470000015
と評価されることを証明する。標準の表記を使用して、Pは、以下を計算する。
Figure 2022546470000016
彼女はまた、
Figure 2022546470000017
が、同様に証明p
Figure 2022546470000018
としてうまく形成されていることを証明し、
Figure 2022546470000019
をVに送信する。
Figure 2022546470000020
が、TLSセッションの真正なトランスクリプトであることを考えると、証明器-完全性特性は、持続するように見える。直感的には、CBC-HMAC暗号文は、基礎となる平文に対して拘束性があり、したがって、
Figure 2022546470000021
を、セッションデータに対するセキュアなコミットメントとして扱うことができる。すなわち、一意のメッセージに対してのみ、所与の
Figure 2022546470000022
をオープンする(すなわち、復号化し、MACチェックする)ことができる。拘束性は、サーバとの元のセッションとは異なるメッセージに対してPが
Figure 2022546470000023
をオープンすることを防止する。
残念ながら、この直感には欠陥がある。すり替えプロトコルは
Figure 2022546470000024
の真正性を保証できないため、完全に失敗する。証明器Pは、セッション鍵を有し、したがって、任意のメッセージの暗号化を
Figure 2022546470000025
に含めることができる。
その上、Pが構築する必要があるゼロ知識証明は、トランスクリプト全体を復号化し、ハッシュ化することを伴い、このことは、極めて高価であり得る。プロトコルを実用化するには、コストを大幅に低減する必要がある。
DECOの概要
上述のすり替え手法の重大な失敗は、Pが、Pがセッションにコミットする前にセッション鍵を知得することである。DECOの例示的な実施形態では、MAC鍵は、PがコミットするまでPに対して差し止められる。
PとサーバSとの間のTLSセッションは、機密性および完全性を提供しなければならない。その上、プロトコルは、TLSの要件を下回って性能を低下させ(例えば、タイムアウトをトリガーし)てはならない。
図4は、例示的な実施形態における、サーバデバイス、証明器デバイス、および検証器デバイスを備える例示的なDECO実装態様を示す。本実施形態でのDECOは、3フェーズプロトコルとして実装されている。第1のフェーズは、証明器P、検証器V、およびTLSサーバSが、PとVとの間で秘密分散されるセッション鍵を確立する、新規な三者ハンドシェイクプロトコルである。ハンドシェイクは、標準のTLSプロトコルに従ってPがサーバにアクセスするが、Vの助力を伴うクエリ実行フェーズである。Pがクエリおよび応答にコミットした後、Vは、彼女の鍵シェアを明示する。最後に、Pは、証明生成フェーズでの応答に関するステートメントを証明する。
三者ハンドシェイク。本質的に、PおよびVは、合同でTLSクライアントとして作用する。PおよびVは、秘密分散された形態でSと共有セッション鍵をネゴシエートする。このフェーズは、DECOの残りのものと同様に、Sに対して完全に透過的であり、サーバサイドの修正を必要としないことを強調しておく。
CBC-HMAC暗号スイートについて、三者ハンドシェイクの最後に、PおよびVは、それぞれ
Figure 2022546470000026
および
Figure 2022546470000027
を受信する一方、Sは、
Figure 2022546470000028
を受信する。標準のハンドシェイクと同様に、PとSとの両方が暗号鍵kEncを取得する。
三者ハンドシェイクは、前述のセッションデータのコミットメントを、以下のように非偽造可能にすることができる。セッションの最後に、Pは、最初に以前のように
Figure 2022546470000029
のセッションにコミットし、次いで、Vは、彼女のシェア
Figure 2022546470000030
を明示する。Vの観点から、三者ハンドシェイクプロトコルは、潜在的な悪意のある証明器の影響にも関わらず、あらゆるセッションに新鮮なMAC鍵(各方向に対して)が使用され、Pがコミットするまで鍵がPに知られていないことを保証する。MAC鍵の知識がなければ、Pは、セッションデータにコミットする前にセッションデータを偽造するか、または改ざんすることができない。したがって、DECOにおけるセッションデータのコミットメントの非偽造可能性は、TLSで使用されるMACスキームの非偽造可能性に低下する。
GCMなどの他の暗号スイートを、同様にサポートすることができる。GCMでは、暗号化とMACとの両方に(各方向に対して)単一の鍵が使用される。ハンドシェイクプロトコルは、同様に、PとVとの間の鍵を秘密分散する。GCMのためのハンドシェイクプロトコルは、本明細書の他の箇所でより詳細に記載される。
クエリ実行。述べたように、セッション鍵は秘密分散されることから、PおよびVは、対話型プロトコルを実行して、クエリを暗号化するTLSメッセージを構築する。次いで、Pは、標準のTLSクライアントとしてSにメッセージを送信する。CBC-HMACについて、PおよびVは、クエリのMACタグを計算する一方、GCMは、認証された暗号化を実行する。クエリは、Pに対して非公開であり、Vに漏洩されるべきではないことに留意されたい。包括的な2PCの場合、大きなクエリには高価であるため、代わりに、本明細書の他の箇所に記載されるように、包括的なソリューションよりも効率的なオーダオブマグニチュードであるカスタム2PCプロトコルを導入する。
前に説明したように、Pは、Vの鍵シェアを受け取る前に、セッションデータ
Figure 2022546470000031
にコミットし、コミットメントを非偽造可能にする。次いで、Pは、ここで記載するように、応答の完全性を検証し、そのことに関するステートメントを証明することができる。
証明生成。非偽造可能なコミットメントでは、Pがコミットメント
Figure 2022546470000032
を完全に開く(すなわち、暗号鍵を明示する)場合には、Vは、復号化時にMACをチェックすることによって、
Figure 2022546470000033
の真正性を容易に検証し得る。
ただし、
Figure 2022546470000034
に対する暗号鍵を明示すれば、プライバシーに違反するであろうし、このことにより、PとSとの間で交換されたすべてのセッションデータが明示されるであろう。理論的には、Pが、代わりに、
Figure 2022546470000035
全体にわたる任意のステートメントStmtをゼロ知識で(すなわち、暗号鍵を明示することなく)証明し得る。しかし、包括的なゼロ知識証明技術の場合、Stmtの多くの自然な選定にとって非常に高価であろう。
代わりに、DECOは、広範な一般的なクラスのステートメント、すなわち本明細書でTLSセッショントランスクリプトの「選択的開示」と呼ばれるもの、についての効率的な証明をサポートするための2つの技術を導入する。選択的開示は、サブストリングをVに明示するか、または黒塗りする、すなわち、サブストリングを削除し、それをVから隠すか、のいずれかを伴う。
図5は、例示的な例として、証明器として作用するユーザボブのための簡略化されたJSON銀行ステートメントを示す。この例を使用して、選択的開示およびコンテキスト完全性攻撃を実証する。ボブ(P)が自分のチェッキング口座残高をVに明示したいと仮定する。彼のTLSセッションの復号化鍵を明示するとすれば、望ましくないであろうし、その場合は、彼のトランザクションを含むステートメント全体も明示されるであろう。代わりに、本明細書で開示される技術を使用して、ボブは、5~7行目のサブストリングのみを効率的に明示することができる。代替的に、彼がセービング口座残高を明示しても構わない場合、彼は、7行目以降の彼のトランザクションを黒塗りしてもよい。
サブストリングを明示し、黒塗りする、2つの選択的開示モードは、有用なプライバシー保護メカニズムである。これらの選択的開示モードはまた、後続のゼロ知識証明の前処理としても機能することができる。例えば、ボブは、実際の残高を明示せずに、1000ドルを超える残高がある口座を有することを証明したい場合がある。その場合に、彼は、彼のチェッキング口座残高を含むサブストリング全体にわたる属性(「残高>1000ドル」)をゼロ知識で証明するであろう。
しかしながら、選択的開示単独では、多くの用途には不十分である。これは、サブストリングのコンテキストがこのサブストリングの意味に影響を与えるからである。コンテキスト完全性と呼ばれるものがなければ、Pは、不正行為を行い、Vへの請求を証明するように誤って見えるサブストリングを明示することができる。例えば、ボブは、1000ドルを上回る残高を有していない場合がある。しかし、銀行ステートメントを見た後、彼は、同じTLSセッションで「残高」:5000ドルというサブストリングでカスタマーサービスにメッセージを投稿し、次いで、彼の保留中のメッセージを(リフレクション攻撃の形態で)映示し得る。次いで、彼は、このサブストリングを愚か者Vに明示し得る。
証明器によって供給されたVへの入力に関する様々なサニタイズヒューリスティック、例えばセッショントランスクリプトの切り捨て、は、いくつかのそのような攻撃を潜在的に防止し得るが、他の形式のウェブアプリケーションの入力サニタイズと同様に、脆弱であり、攻撃されやすい。
代わりに、セッションデータを明示的に、しかも機密的に構文解析する厳密な技術を導入する。この技術を「ゼロ知識2段構文解析」と呼ぶ。この技術によれば、Pは、第1の段階で
Figure 2022546470000036
を局所的に構文解析し、次いで、結果として生じるサブストリングに対する制約に関するステートメントをゼロ知識でVに対して証明する。例えば、当銀行例では、銀行によって提供される鍵-値ストアを、識別される文字λとともに常に逸する場合には、ボブは、局所的な構文解析を介して、λが5000ドルに先行するサブストリング「残高」を抽出し、かつVに明示することによって、正しい残高を証明し得る。この2フェーズ手法は、非常に一般的なクラスのウェブAPI文法(一意の鍵)に対して、より包括的な技術よりもはるかに効率的な証明を生じさせることを示すことができる。
図6は、上記で紹介したDECOプロトコルのより詳細な例示的な実装態様示す。この実施形態では、DECOプロトコルは、三者ハンドシェイクフェーズ、続く、クエリ実行フェーズのための2PCプロトコル、および証明生成フェーズを含む。これらのフェーズの各々について、以下でより詳細に記載する。この実施形態の特定の詳細は、本明細書で開示される他の実施形態と同様に、例としてのみ提示され、いかなるようにも限定されるものと解釈されるものではないことを認識されたい。当業者は、追加的または代替的な技術が使用され得ることを認知するであろう。
三者ハンドシェイク
いくつかの実施形態では、三者ハンドシェイク(3P-HS)の目標は、サーバSに対して完全に透過的に、サーバSとのTLSセッションで使用されるセッション鍵を、証明器Pと検証器Vとの間で秘密分散することである。まず、説明のためにCBC-HMACに焦点を当て、次いで、GCMをサポートするようにプロトコルを適合させる。
図7は、例示的な実施形態における、三者ハンドシェイクプロトコルの正式な仕様を示す。
図8は、いくつかの実施形態における、三者ハンドシェイクプロトコルの一部である例示的なECtFプロトコルを示す。
ここでも、これらのプロトコルの特定の詳細は、例にすぎず、いかようにも限定するものではない。例えば、証明器、検証器、およびサーバを伴う多種多様な他のタイプの三者ハンドシェイクプロトコルを、他の実施形態で使用することができる。したがって、本明細書で使用される「三者ハンドシェイクプロトコル」という用語は、広く解釈されることが意図されている。
標準のTLSハンドシェイクと同様に、3P-HSは、2つのステップを含む:第一に、PおよびVは、TLS互換鍵交換プロトコルを通じてサーバと共有される秘密
Figure 2022546470000037
の加法的シェアを計算する。ここではECDHEが推奨され、これに焦点が当てられているが、他の技術を使用してシェアを計算することができ、第二に、PおよびVは、TLS-PRFを、入力としてのZのPおよびVのシェアでセキュアに評価することによって秘密分散されたセッション鍵を導出し、ここで、PRFは、擬似ランダム関数を表す。以下では、理解のために正式な仕様書を必要としないように、テキストの説明を与える。
ステップ1:鍵交換。
Figure 2022546470000038
で、ECDHEで使用されるEC群を表し、Gで、その生成子を表す。
証明器Pは、定期的なTLSハンドシェイク要求およびランダムなノンスrをSに(ClientHelloメッセージで)送信することによって、ハンドシェイクを開始する。証明書、サーバノンスr、およびSからの署名された一時的なDH公開鍵Y=s・Gを(Server-HelloおよびServerKeyExchangeメッセージで)受信すると、Pは、証明書および署名をチェックし、それらをVに転送する。同じチェックを実行した後、Vは、秘密sをサンプリングし、DH公開鍵Y=s・Gの彼女の部分をPに送信し、次いで、Pは、別の秘密sをサンプリングし、組み合わされたDH公開鍵Y=s・G+YをSに送信する。
サーバSは標準のTLSを実行することから、Sは、DH秘密を、Z=s・YP・P(およびV)がZのそのシェアをZ=s・Y(およびZ=s・Y)として計算するように計算する。なお、Z=Z+Zであり、+は、
Figure 2022546470000039
の群演算である。選定された群で離散対数問題が難しいと仮定すると、Zは、いずれのパーティにも知られていない。
ステップ2:鍵導出。PおよびVがZの加法的シェアを(ECポイントの形態で)確立したため、PおよびVは、先へ進んで、Zのx座標で鍵を付けたTLS-PRFを評価することによって、セッション鍵を導出する。
ここでの技術的課題は、算術演算(すなわち、
Figure 2022546470000040
の加算)を2PCでのビット演算(すなわち、TLS-PRF)と調和させることである。ブール回路が大きい体の算術にあまり適していないことは、周知である。具体的な推定として、x座標のみをもたらすEC点加算は、4つの減算、1つのモジュラー反転、および2つのモジュラー乗算を伴う。高度に最適化された回路に基づくAND複雑さの推定は、減算、乗算、およびモジュラー還元のためだけの900,000を超えるANDゲートをもたらし、回路内で拡張ユークリッドアルゴリズムを実行する必要がある反転さえ含まない。
ブール回路にECポイントを追加するという法外なコストに起因して、PおよびVは、図8に示されるECtFプロトコルを使用して、
Figure 2022546470000041
におけるECポイントの加法的シェアを、
Figure 2022546470000042
におけるこのECポイントのx座標の加法的シェアに変換する。次いで、ブール回路は、
Figure 2022546470000043
に2つの数字を追加することのみを伴い、このことを、約3|p|のANDゲート、すなわちpが256ビットである当実装態様では約768のANDゲート、のみで行うことができる。
ECtFを使用するシェア変換。ECtFプロトコルは、
Figure 2022546470000044
のシェアを
Figure 2022546470000045
のシェアに変換する。ECtFプロトコルへの入力は、P=(x)で表される2つのECポイント
Figure 2022546470000046
である。
Figure 2022546470000047
と仮定し、ここで、
Figure 2022546470000048
は、EC群演算であり、プロトコルの出力は、α+β=xのような
Figure 2022546470000049
である。具体的には、考えている曲線について、x-λ-x-xであり、式中、λ=(y-y)/(x-x)。yのシェアを同様に計算することができるが、TLSはxのみを使用することから、それを省略する。
ECtFは、乗法的-加法的(MtA)シェア変換プロトコルをビルドブロックとして使用する。α,β:=MtA(α,b)を使用して、アリスとボブとの間のMtAの実行を、それぞれ入力αおよびbで表す。実行の最後に、アリスおよびボブは、a・b=α+βのようなαおよびβを受け取る。このプロトコルを一般化して、通信の複雑さを増大させることなく、ベクトル入力を処理することができる。すなわち、ベクトル
Figure 2022546470000050
について、
Figure 2022546470000051
の場合には、
Figure 2022546470000052
ここで、ECtFのプロトコルについて記載する。ECtFは、2つの主な成分を有する。[α]で、αの2アウトオブ2共有を表す、すなわち、[α]=(α,α)で、i∈{1,2}について、パーティiがαを有すると同時に、α=α+αとなる。第1の成分は、シェア反転である:[α]が与えられると、[α-1]を計算する。これを以下のように行うことができる:パーティiは、ランダム値rをサンプリングし、MtAを実行して、δ,δ:=MtA((α,r),(r,α))を計算する。なお、δ+δ=α・r+α・r。パーティiは、v=δ+α・rを公開し、したがって、両パーティは、v=v+vを知得する。最後に、パーティiは、β=r・v-1を出力する。プロトコルは、β+β=α-1であるため、α-1の正しい共有を計算する。その上、MtAがセキュアであると仮定して、プロトコルは、αをどのパーティにも漏洩しない。実際、パーティiのビューは、(α+α)(r+r)からなり、rが一様にランダムであることから、これは、一様にランダムである。
第2の成分は、シェア乗算である:[α]、[b]が与えられると、[αb]を計算する。[αb]を、MtAを使用して次のように計算することができる:パーティは、MtAを実行して、α+α=α・b+α・bのような、α,αを計算する。次いで、パーティiは、m=α+α・yを出力する。プロトコルのセキュリティおよび正確性を、上記と同様に議論することができる。
TLS-PRFのセキュアな評価。Zのx座標のシェア、ECtFにおけるTLSのいわゆるプレマスタシークレットを計算すると、PおよびVは、2PCにおけるTLS-PRFを評価してセッション鍵を導出する。知られているSHA-256回路を使用して、TLSハンドシェイク回路を手動で最適化し、合計779,213のAND回路の複雑さをもたらす。
GCMをサポートするための適合。GCMでは、暗号化とMACとの両方に(各方向に対して)単一の鍵が使用される。上記のプロトコルをTLS1.2のGCMをサポートするように適合させることは、直截的である。GCM鍵がより短いため、第1のステップは、同一のままであろう一方、第2のステップの出力は、切り捨てる必要がある。
TLS1.3への適合。TLS1.3をサポートするためには、3P-HSプロトコルを、新しいハンドシェイクフローおよび異なる鍵導出回路に適合させなければならない。特に、ここでは、ServerHello後のすべてのハンドシェイクメッセージが、暗号化される。ナイーブ戦略の場合、それらを2PCにおいて復号化するであろうし、このことは、証明書が通常大きいため、コストがかかるであろう。しかしながら、TLS1.3の鍵独立性特性のおかげで、本明細書の他の箇所に記載されるように、TLS1.2の場合と同様の複雑さを有する3P-HSプロトコルを構築することができる。
クエリ実行
ハンドシェイク後、証明器Pは、標準のTLSクライアントとして彼女のクエリQをサーバSに送信するが、検証器Vの助力を伴う。具体的には、セッション鍵が秘密分散されることから、2つのパーティは、インタラクトし、2PCプロトコルを実行して、Qを暗号化するTLSレコードを構築する必要がある。包括的な2PCであれば、理論的には十分であろうが、大きなクエリには高価であろう。代わりに、より効率的なオーダオブマグニチュードであるカスタム2PCプロトコルを導入する。
まず、何らかの応答を受け取る前にPがSにすべてのクエリを送信するワンラウンドセッションに焦点を当てる。DECOのほとんどのアプリケーション、例えばHTTP GETを介して取得されたコンテンツの起源を証明すること、は、ワンラウンドである。DECOを拡張してマルチラウンドセッションをサポートすることは、本明細書の他の箇所に記載される。
CBC-HMAC。PおよびVがMAC鍵のシェアを保持する一方、Pは暗号鍵を保持することを思い起こされたい。Pに対して潜在的に非公開のQを暗号化するTLSレコードを構築するために、2つのパーティは、まず、2PCプロトコルを実行して、QのHMACタグτを計算し、次いで、Pは、Q||τをローカルで暗号化し、Sに暗号文を送信する。
HでSHA-256を表す。鍵kを用いたメッセージmのHMACが以下であることを思い起こされたい。
Figure 2022546470000053
ipadおよびopadという用語は、HMACアルゴリズムにおいて利用されるそれぞれの「内部」および「外部」の値を表す。2PCではクエリ全体をハッシュして内部ハッシュを計算する必要があるため、直接的な2PCの実装態様というのは、大規模なクエリには高価であろう。このことは、有利なことに、例示的な実施形態では、Pに対して局所的な(すなわち、2PCなしで)内部ハッシュの計算をすることによって、回避される。Pが
Figure 2022546470000054
を知っているとすれば、彼女は、内部ハッシュを計算することができる。しかし、単にPに
Figure 2022546470000055
を与えることは、彼女が次いでkを知得してMACを偽造し得るため、できない。
当最適化は、SHA-256のMerkle-Damgard構造を利用する。mおよびmが、2つの正しいサイズのブロックであると仮定する。次いで、
Figure 2022546470000056

Figure 2022546470000057
として計算し、ここで、fは、Hの一方向性圧縮関数を表し、IVは初期ベクトルを表す。
図9は、CBC-HMACのポストハンドシェイクプロトコルを示す。
三者ハンドシェイク後、PおよびVは、単純な2PCプロトコルを実行して、
Figure 2022546470000058
を計算し、それをPに明示する。メッセージmの内部ハッシュを計算するために、Pは、単にsをIVとして使用して、mのハッシュを計算する。fが一方向性であるものとしているため、sを明示することにより、kMACは明示されない。HMAC(k,m)を計算するために、次いで、内部ハッシュに対する2PCでの、はるかに短いメッセージである外部ハッシュを計算することを伴う。したがって、包括的な2PCを用いた各レコードの最大256のSHA-2ブロックとは対照的に、クエリ長に関わらず、2PCの計算量が、数ブロックにうまく低減される。
AES-GCM。GCMについて、PおよびVは、Qの認証された暗号化を実行する。2PC-AESは、最適化された回路では直截的であるが、大規模なクエリのためのタグを計算することは、各レコードについて大規模な体における長い多項式を評価することを伴うため、高価である。最適化された当プロトコルは、本明細書の他の箇所により詳細に記載されるように、事前計算により局所的な多項式評価を行う。2PC-GCMがタグ作成だけでなく、AES暗号化も伴うことから、そのことにより、CBC-HMACよりも高い計算コストおよびレイテンシが発生する。
本明細書に開示される他の実施形態は、追加の信頼仮定を有する、ポストハンドシェイク2PCプロトコルを完全に回避する、プロキシモードプロトコルと呼ばれる非常に効率的な代替プロトコルを利用する。
図6に示される完全なDECOプロトコルに例示されるように、サーバにクエリし、かつ応答を受信した後、Pは、Vに暗号文を送信することによってセッションにコミットし、VのMAC鍵シェアを受信する。次いで、Pは、応答の完全性を検証し、それに関するステートメントを証明することができる。図6は、CBC-HMACのための完全なDECOプロトコルを特定している。GCMのためのDECOプロトコルは、同様であり、本明細書の他の箇所に記載されている。
明確にするために、ゼロ知識証明の詳細を理想的な機能性FZKで抽象化する。xおよびwがそれぞれ非公開証人および公開証人であるPから受信する(「証明する」、x、w)と、FZKは、wおよび関係π(x,w)∈{0,1}(以下に定義される)をVに送信する。具体的には、CBC-HMACについて、x、w、πは、以下として定義される:
Figure 2022546470000059
および
Figure 2022546470000060
関係π(x,w)は、(1)
Figure 2022546470000061
(および
Figure 2022546470000062
)が鍵kEnc、kMACの下でQ(およびR)のCBC-HMAC暗号文であり、(2)Query(θ)=Q、かつ(3)Stmt(R)=bの場合にのみ、1を出力する。それ以外の場合は、0を出力する。
セキュアな2PCおよびZKPの機能性を前提にすると、図6に例示されるなProtDECOは、悪意のある敵対者に対して図3のFOracleをUCセキュアに実現することを示すことができる。
より具体的には、三者ハンドシェイクで使用されるグループでは個別的なログ問題が難しく、f(SHA-256の圧縮関数)がランダムなオラクルであるものとすると、ProtDECOは、中止を伴う静的な悪意のある敵対者に対して、(F2PC、FZK)ハイブリッド世界のFOracleをUCセキュアに実現する。
GCMのプロトコルは、同様のフローを有する。三者ハンドシェイクおよびクエリ構築プロトコルのGCM変形例について上述した。
図10は、タグを検証し、GCM変形例でのレコードを復号化するための2PCプロトコルを示す。これらは、GCMのポストハンドシェイクプロトコルとも呼ばれる。
CBC-HMACとは異なり、GCMは、コミットしていない:鍵kで暗号化された所与の暗号文Cについて、kを知っている者は、完全性チェックをパスしながら、Cを異なる平文に復号化するk’≠kを効率的に見つけることができる。そのような攻撃を防止するために、Pが、Vの鍵シェアを知得する前に、彼女の鍵シェアkに対してコミットすることを必要とする。証明生成フェーズでは、QおよびRに関するステートメントを証明することに加えて、Pは、
Figure 2022546470000063
および
Figure 2022546470000064
を復号化するために使用されるセッション鍵がkへのコミットメントに対して有効であることを証明する必要がある。GCM変形例のセキュリティの証明は、CBC-HMACの証明と同様である。
証明生成
証明器Pが、TLSセッションの暗号文
Figure 2022546470000065
に対してコミットし、平文
Figure 2022546470000066
が特定の特性を満たすことをVに対して証明することを思い起こされたい。一般性を失うことなく、
Figure 2022546470000067
および
Figure 2022546470000068
は、1つのTLSレコードのみを含むものとし、以後、それらを暗号文レコードおよび平文レコードと呼ぶ。マルチレコードセッションを、各レコードに対してプロトコルを繰り返すことによって、処理することができる。
Figure 2022546470000069
の起源のみを証明することは、容易である:暗号鍵を明示するだけである。しかし、このことは、プライバシーを犠牲にする。代替的に、Pは、一般のゼロ知識技術を使用すれば、
Figure 2022546470000070
に関する任意のステートメントを証明することができる。しかし、そのような証明は、多くの場合、高価である。
以下の説明では、例示的なアプリケーションに最適化された2つのクラスのステートメントを提示する:応答のサブストリングのみを、その起源を証明しながら明示すること(「選択的開示」)、または明示されたサブストリングがVによって想定されるコンテキストに現れることをさらに証明すること(「2段階構文解析によるコンテキスト完全性」)。
選択的開示。例示的な実施形態は、Pが平文内のサブストリングを効率的に明示するか、または黒塗りすることを可能にする、本明細書で「選択的開示」と呼ばれる技術を実装している。平文レコードがチャンク
Figure 2022546470000071
で構成されていると仮定する(チャンクの詳細については以下で議論される)。選択的開示は、Pが、
Figure 2022546470000072
の残りの部分を明示することなく、
Figure 2022546470000073
のi番目のチャンクがBであることを証明することを可能にする:これを明示モードと呼ぶ。
Figure 2022546470000074
は、
Figure 2022546470000075
と同じであるが、チャンクが除去されていることを証明することもできる。これを黒塗りモードと呼ぶ。両モードとも単純であるが、実用的なプライバシー目標に有用である。選択的開示の粒度は、ここで議論する暗号スイートに依存する。
CBC-HMAC。証明生成のために、Pは、暗号鍵kEncとMAC鍵kMACとの両方を保持する一方、Vは、MAC鍵kMACのみを保持することを思い起こされたい。当性能は、SHA-256およびAES-128を用いる暗号スイートを前提とし、この暗号スイートは、当実装態様と一致するが、これらの技術は、他のパラメータに適用可能である。MAC後暗号化が使用されることを思い起こされたい:平文レコード
Figure 2022546470000076
は、最大1024のAESブロックのデータと3ブロックのMACタグσを含み、このことを、
Figure 2022546470000077
として表し、式中、
Figure 2022546470000078
である。
Figure 2022546470000079
は、
Figure 2022546470000080
のCBC暗号化であり、同数のブロックからなる:
Figure 2022546470000081
の式中、
Figure 2022546470000082
である。
TLSレコードの明示。
Figure 2022546470000083
がkEncを明示することなく
Figure 2022546470000084
を暗号化することを証明するナイーブな方法は、ZKPで各AESブロックの正しい暗号化を証明することである。ただし、これには、ZKPで最大1027のAESの呼び出しが必要となり、実用的でない性能をもたらすであろう。
MAC後暗号化構造を活用して、ZKPでAESの3つの呼び出しのみを使用して同じことを行うことができる。このことは、
Figure 2022546470000085
の最後の数ブロックがタグσを暗号化することを証明することと、平文を直接明示することと、を例示的に伴う。具体的には、Pは、
Figure 2022546470000086
を計算し、
Figure 2022546470000087
をVに送信する。次いで、Vは、πを検証し、
Figure 2022546470000088
全体にわたってMACタグをチェックする(VはMAC鍵を知っていることに留意されたい)。そのセキュリティは、HMACの基礎となるハッシュ関数の衝突耐性に依存し、すなわち、Pは、同じタグσを有する
Figure 2022546470000089
を見つけることができない。
黒塗りされたブロックを有するレコードの明示。i番目のブロックが、Pが黒塗りしたい機密情報を含むと仮定する。直接的な戦略は、
Figure 2022546470000090
および
Figure 2022546470000091
が、以下を計算することによって、
Figure 2022546470000092
によって暗号化された平文のプレフィックスおよびサフィックスを形成することを証明することである。
Figure 2022546470000093
このことは、ZKPで3回のAESおよび256回のSHA-256圧縮を伴うことになるため、高価である。
SHA-256のMerkle-Damgard構造を活用すると、いくつかの最適化が可能である。fで、SHA-256の圧縮関数を表し、si-1で、
Figure 2022546470000094
にfを適用した後の状態を表す。まず、例えばBがAPI鍵などの高エントロピーデータを含む場合に、si-1とsとの両方を明示することができる場合、上記の目標を、ZKPでただ1回のSHA-256を使用して達成することができる。そするために、Pは、
Figure 2022546470000095
を計算し、
Figure 2022546470000096
をVに送信し、Vは、1)si-1を、
Figure 2022546470000097
から再計算することによってチェックし、2)πを検証し、3)MACタグσを、sおよび
Figure 2022546470000098
から再計算することによってチェックする。Bが高エントロピーであることを前提とし、fが一方向性であることから、siー1およびsは、Bから漏洩しないことを明示する。
一方、si-1とsとの両方をVに対して明示することができない場合(例えば、Bに対する総当たり攻撃が実行可能な場合)、ブロックBを含むレコードのプレフィックス(またはサフィックス)をPに黒塗りさせることによって、コストを依然として低減することができる。その後発生するコストは、ZKPでの256-i回のSHA-2ハッシュである。追加の詳細は、本明細書の他の箇所で提供される。一般に、ZKPコストは、レコードサイズに比例するため、TLSフラグメンテーションは、コストを一定の係数で低減することもできる。
サフィックスの黒塗り。サフィックス
Figure 2022546470000099
が黒塗りされる場合、Pは、
Figure 2022546470000100

を計算し、sは、
Figure 2022546470000101
にfを適用した後の状態である。Pは、Vに
Figure 2022546470000102
を送信する。次いで、検証器は、1)si-1を、
Figure 2022546470000103
にfを適用することによってチェックし、2)πを検証する。本質的に、このことのセキュリティは、fのプレイメージ耐性から得られる。その上、Vは、
Figure 2022546470000104
がVから秘密に保持されていることから、黒塗りされたサフィックスを知得しない。合計のコストは、ZKPでの3回のAESおよび256-i回のSHA-2ハッシュである。
プレフィックスの黒塗り。Pは、2つのZKPを計算する:1)
Figure 2022546470000105

Pは、Vに
Figure 2022546470000106
を送信する。検証器は、1)si-1がπを使用して正しいことをチェックし、次いで、
Figure 2022546470000107
を計算して内部ハッシュihを取得し、2)πは、計算されたihを使用して検証される。発生するコストは、ZKPでの3回のAESおよび256-i回のSHA-2ハッシュである。
プレフィックス/サフィックスの黒塗りは、明示された部分が非公開のユーザデータを含まない場合にのみ意味があることに留意されたい。それ以外の場合、Pは、すべてのセンシティブブロックを含む最小のサブストリングを見つけ、上記と同様のプレフィックス/サフィックスのいずれかを黒塗りする必要があるであろう。
GCM。CBC-HMACとは異なり、ブロックを明示することは、GCMでは非常に効率的である。第一に、Pは、ZKでの正しさの証明を伴うAES(k,IV)およびAES(k,0)を明示し、Vが暗号文の完全性を検証することを可能にする。次いで、i番目のブロックを明示するために、Pは、正確性の証明を伴うi番目のカウンタC=AES(k,inc(IV))の暗号化を明示するだけである。Vはi番目のブロックを
Figure 2022546470000108
として複合することができる。IVがセッションのパブリックな初期ベクトルであり、inc(IV)は、i回IVを増分することを表す(incの正確な形式は重要でない)。TLSレコードを明示するために、各ブロックに対して上記のプロトコルを繰り返す。ここでも、追加の詳細は、本明細書の他の箇所で提供される。
まとめると、CBC-HMACは、DECOのTLSレコードレベルでの効率的な選択的明示とブロックレベルでの黒塗りとを可能にする一方、GCMは、ブロックレベルでの効率的な明示を可能にする。選択的開示はまた、後続のゼロ知識証明のための入力長を低減するための前処理として機能することができる。
2段階構文解析によるコンテキスト完全性。多くのアプリケーションに対して、検証器Vは、明示されたサブストリングが正しいコンテキストで現れることを検証する必要があり得る。この特性を「コンテキスト完全性」と呼ぶ。以下では、Vがコンテキストを指定するための技術と、Pがコンテキスト完全性を効率的に証明するための秘術と、を提示する。
説明を容易にするために、以下の当説明では、最初に、明示モード、すなわち、Pが、Vへのサーバの応答のサブストリングを明示することに焦点を当てる。次いで、黒塗りモードについて記載する。
コンテキストの指定。コンテキストを指定するための当技術は、所与のサーバSとの間で送信されるTLS保護されたデータが、PとVとの両方に知られている、明確に定義されたコンテキストフリーの文法Gを有するものとしている。表記のわずかな濫用では、Gで、文法と文法が指定する言語との両方を表記する。したがって、R∈Gは、Gによって与えられた、この言語におけるストリングRを表す。Gは曖昧さがない、すなわちすべてのR∈Gが一意の関連付けられた構文解析木Tを有する、ものとする。JSONおよびHTMLは、これらの要件を満たす2つの広く使用される言語の例であり、ここでは当焦点である。
次いで、Pが、Sからのいくつかの応答RのサブストリングRopenを提示する場合、RopenがVによって想定される特定の方法で生成されるならば、Ropenはコンテキスト完全性を有すると言う。具体的には、Vは、彼女がRで有効なサブストリングRopenを見ることを想定し得る位置のセットSを指定する。当定義では、Sは、Gによって定義される構文解析木の根から内部ノードへの経路のセットである。したがって、許容経路と呼ぶs∈Sは、非終端のシーケンスである。ρで、T(GにおけるRの構文解析木)の根を表す。Tが、葉がストリングRopenを生じさせる(すなわち、連結してこれを形成する)部分木を有する場合、ストリングRopenは、(R,S)に関してコンテキスト完全性を有し、かつρから当該部分木の根までの経路s∈Sが存在する、という。
形式的には、属性CTXの観点からコンテキスト完全性を定義する。より具体的には、TLS応答時の文法G、R∈G、RのサブストリングRopen、許容経路のセットSが与えられると、
Figure 2022546470000109
から
Figure 2022546470000110
までの経路s∈Sを有するTの部分木
Figure 2022546470000111
が存在し、かつ
Figure 2022546470000112
がRopenを生じさせる場合にのみ、
Figure 2022546470000113
であるように、コンテキスト関数CTXをブール関数として定義し、
Figure 2022546470000114
の場合に、Ropenは、(R,S)に関してコンテキスト完全性を有すると言われる。
図5の例を再度参照して、その例に従ってJSONストリングJを考える。JSONは、(大まかに)以下のルールを含む。
Figure 2022546470000115
その例では、Vは、鍵「チェッキングa/c」を有するペアρcheckingの値によって与えられたオブジェクト内の、鍵「残高」を有するペアρbalanceの導出を知得することに興味があった。これらの非終端の各々は、解析木T内のノードのラベルである。Tのルート開始からρcheckingまでの経路は、開始→オブジェクト→ペアズ→ρcheckingという形式のノードのシーケンスをトラバースする必要があり、ここで、ペアズは、ゼロ以上のペアズのシーケンスを表す。そのため、Sは、そのようなシーケンスのセットであり、Ropenは、ストリング「チェッキングa/c」である。{「残高」:$2000}。
2段階構文解析。一般に、Rを直接明示することなく、Ropenがコンテキスト完全性を有すること、すなわち
Figure 2022546470000116
を証明することは、CTXを計算することが潜在的に長いストリングRに対してTを計算することを必要とし得ることから、高価である。しかしながら、TLS保護されたデータが一般に満たす特定の前提の下で、PおよびVによって合意された変換Transを適用することによって、PにRを前処理させることによって、オーバーヘッドの多くが、除去され得ること、およびRopenがR’(通常はるかに短いストリング)およびS’(SおよびTransに基づいてVによって指定される許容経路の集合)に関してコンテキスト完全性を有することを証明することが、観測された。
この観測に基づいて、Ropenを効率的に計算し、かつ
Figure 2022546470000117
を証明するための、2段階構文解析スキームを導入する。PおよびVが、ウェブサーバで使用されている文法であるGと、変換Transと、について合意したと仮定する。G’をすべてのR∈Gに対するストリングTrans(R)の文法とする。Transに基づいて、Vは、許容経路S’と制約チェック関数consG,G’を指定する。第1の段階では、P:(1)Rを構文解析することによって、(
Figure 2022546470000118
となるような)RのサブストリングRopenを計算する(2)別のストリングR’=Trans(R)を計算する。第2の段階では、Pは、(1)
Figure 2022546470000119
および(2)
Figure 2022546470000120
を、ゼロ知識でVに対して証明する。公開パラメータG、G’、S、S’、Trans、consG,G’に加えて、検証器は、Rに対するコミットメントのみを見、最後にRopenを見ることに留意されたい。
このプロトコルは、非検証可能な計算に対する実際の構文解析を延期することによって、ゼロ知識計算を大幅に非高価にする。言い換えると、
Figure 2022546470000121
および
Figure 2022546470000122
の計算は、
Figure 2022546470000123
の計算よりもはるかに効率的であり得る。
2段階構文解析の正確性条件を、以下に与えられる操作意味論のルールで形式化する。ここで、(f,σ)は、入力σに関数fを適用することを表す一方、
Figure 2022546470000124
は、前提Pが真である場合には結論Cが真であることを表す。
文法G、コンテキスト関数および許容経路CTX(S,・,・)、変換Trans、文法G’={R’:R’=Trans(R),R’∈G}、コンテキスト関数および許容経路CTXG’(S’,・,・)、および関数consG,G’が与えられると、R’∈Gのようなすべての(R,R’,Ropen)について、ブーリアンbが以下のルールを保持する場合、(consG,G’,S’)は、Sに関して正しいと言う。
Figure 2022546470000125
以下では、DECOアプリケーションでの使用に好適な例示的な文法に焦点を当て、2段階構文解析スキームの具体的な構築を提示する。
鍵-値文法。JSONなどの幅広いクラスのデータ形式は、鍵-値ペアという概念を有する。したがって、それらは、DECOのいくつかの実施形態での当焦点である。
鍵-値文法Gは、開始、中間、および終了が区切り記号である「ペア→開始鍵中間値終了」というルールに従って、鍵-値ペアを生成する。そのような文法について、最適化の配列は、コンテキストを証明するための複雑さを大幅に低減することができる。そのような最適化について、以下で、本明細書の他の箇所で他の詳細を提供して議論する。
グローバルに一意の鍵に対する明示。鍵-値文法Gについて、経路のセットSは、R∈Gについて、コンテキスト完全性を満たすサブストリングRopenが、Ropenが、グローバルに一意の鍵Kを有する鍵-値ペアとして構文解析されることを必要とする場合、Ropenは、単にRのサブストリングであり、かつペアとして正しく構文解析される必要がある。具体的には、Trans(R)は、所望の鍵を含むRのサブストリングR’、すなわち、形式「開始K中間値終了」のサブストリングを出力し、Pは、Ropen=R’を出力することができる。G’を、SG’がG’の生成ルールにおける開始記号である場合に、ルールSG’→ペアによって定義することができる。次いで、(1)consG,G’(R,R’)が、R’がRのサブストリングであることをチェックし、(2)S’={SG’}について、CTX’(S’,R’,Ropen)が、(a)R’∈G’および(b)Ropen=R’であることをチェックする。グローバルに一意の鍵は、年齢に対する応答を選択的開示する場合などの、本明細書におけるいくつかのアプリケーションで発生する。
鍵-値文法における黒塗り。したがって、ここまで、2段階構文解析の当説明は、PがRのサブストリングRopenをVに対して明示し、かつRopenがVによって指定された許容経路のセットに関してコンテキスト完全性を有することを証明する、明示モードを前提とする。黒塗りモードでは、プロセスは、同様であるが、Ropenをクリアで明示する代わりに、Pは、前述した技術を使用してRopenに対するコミットメントを生成し、例えばその位置をダミー文字に置き換えることによって、Ropenを除去して、Rを明示する。
アプリケーション
本明細書に開示されるDECOを、任意のオラクルベースアプリケーションに使用することができる。このDECOの汎用性を例示するために、その様々な能力を活用する3つの例示的なアプリケーションを実装し、評価した:1)スマートコントラクトによって実現される機密金融商品。2)レガシークレデンシャルの匿名クレデンシャルへの変換、3)プライバシー保存する価格差別報告。
機密金融商品。金融派生商品は、最も一般的に引用されるスマートコントラクトアプリケーションの一つであり、認証されたデータフィード(例えば、株価)の必要性を例示している。例えば、スマートコントラクトで実装するのが容易である人気のある金融商品は、バイナリオプションである。これは、指定された将来の時間、例えばD日の終わりに、いくつかの資産Nの価格Pが所定のターゲット価格Pに等しいか、またはそれを超える、すなわち、P≧Pかどうかを賭ける2つのパーティ間のコントラクトである。このバイナリオプションを実装するスマートコントラクトは、結果を決定するためにオラクルOを呼び出すことができる。
原理的に、Oは、チェーン上のバイナリオプションの基礎となる資産Nおよびターゲット価格Pを隠すことができる。Oは、単にオプションの詳細をオフチェーンで受け入れ、結果Stmt:=P≧?Pを指定するビットのみを報告する。この手法は、Mixicleと呼ばれる。
基本的なMixicle構築の制限は、O自身が金融商品の詳細を知得することである。DECOの前には、信頼できる実行環境(TEE)を使用するオラクルサービスのみがOからのクエリを隠すことができた。ここで、DECOが金融商品の詳細、すなわちNまたはPを知得することなく、バイナリオプションの実行をどのようにサポートできるかを示す。この点で、属性方向≧?または≦?がランダム化され得ることに留意されたい。また、勝者および敗者の識別情報および支払い金額を隠すことができる。他のメタデータ、例えば正確な決済時間、を隠すために追加のステップを取ることができる。
この例示的なアプリケーションでは、オプションの勝者は、Pの役割を果たし、Vの役割を果たすOからのStmtの署名された結果を取得する。ここで、プロトコルおよびその実装態様について記載する。
{sk,pk}で、オラクルの鍵ペアを表す。この実施形態では、バイナリオプションは、資産名N、閾値価格P、および決済日Dによって指定される。証拠rを伴うC=com(M、r)によって、メッセージMのコミットメントを表す。
図11は、機密性バイナリオプションを実行するアリスおよびボブの2つのパーティを例示している。アリスは、DECOを使用して株価APIにアクセスし、彼女が勝利したことをOに納得させる。要求および応答の例を右側に示し、図のこの部分の陰影付きテキストは、黒塗りされるべき機密情報である。
図11に例示されるバイナリオプションプロセスは、以下のステップを含む:
1)セットアップ:アリスおよびボブは、バイナリオプション{N,P,D}に合意し、識別子IDSCを有するスマートコントラクトSCを作成する。このコントラクトは、パーティの住所、および両パーティに知られている証拠を有する、オプション{C,C,C}に対するコミットメントを含む。彼らはまた、公開パラメータθ(例えば、資産価格を取り出すためのURL)についても合意する。
2)決済:アリスが賭けに勝つと仮定する。支払いを請求するために、彼女は、DECOを使用して、取り出された現在の資産価格が彼女のポジションと一致するZKPを生成する。アリスおよびOは、DECOプロトコルを(Oが検証器として機能して)実行して、θ(ターゲットURL)から資産価格を取り出す。応答は、(N,P,D)を含むものとする。起点θを証明するためのDECOにおけるZKPに加えて、アリスは、以下のステートメントを証明する:
Figure 2022546470000126
証明検証が成功すると、オラクルは、コントラクトID、
Figure 2022546470000127
を有する署名されたステートメントを返す。
3)支払い:アリスは、署名を検証し、かつ勝利パーティに支払う、署名されたステートメントSをコントラクトに提供する。
アリスおよびボブは、プライバシーのためではなく、完全性のためにOを信頼する必要がある。彼らは、本明細書の他の箇所で説明されるように、複数のオラクルを使用することによって、完全性欠陥に対してさらにヘッジすることができる。オラクルに対する信頼を非集中化することは、標準の、すでにデプロイされている技術である。DECOは、すべてのオラクルが悪意のあるものであっても、プライバシーを確保することを強調しておく。
上記に示したように、図11は、株価APIの要求および応答を示す。ユーザ(P)はまた、正しいAPIエンドポイントへのアクセスを納得させるために、オラクル(V)に対するHTTP GET要求の十分な部分を明示する必要がある。GET要求は、APIエンドポイントのような明示されるいくつかのパラメータと、ストック名のような機密詳細および非公開API鍵を有する他のパラメータと、を含む。Pは、本明細書に開示された技術を使用して機密パラメータを黒塗りし、残りをVに明示する。API鍵は、Vが機密パラメータを知得することを防止するのに十分なエントロピーを提供する。しかし、追加の注意を払うことなく、不正行為を行うPは、GET要求のセマンティクスを改変し、余分のパラメータを黒塗りすることによって不正行為を隠すことができる。これが起こらないことを補償するためには、Pは、区切り記号「&」および区切り記号「=」が、黒塗りされたテキストに現れないことを証明する必要がある。
Figure 2022546470000128
および
Figure 2022546470000129
で、それぞれ応答暗号文と平文を表す。オプションを決済するために、Pは、Rが、前述した2段階構文解析スキームを使用して、オプションを獲得したというエビデンスを含むことをVに対して証明する。第1の段階では、Pは、Rをローカルで構文解析し、Vを納得させることができるRの最小のサブストリングを識別する。株価を伴う図11の実施形態では、Rprice=「05.価格」:「1157.7500」で十分である。第2の段階では、Pは、1)Rprice
Figure 2022546470000130
の復号化のサブストリングであり、2)Rpriceが「05.価格」で始まり、3)後続の文字が、浮動小数点数Pを形成し、そのP≧P、かつ4)com(P,r)=Cのように、(Rprice,P,r)の知識をZKで証明する。
この2段階構文解析は、鍵が一意であり、かつ鍵「05.価格」に価格が続くことを前提としていて、セキュアであり、上述したように、この応答の文法は、一意の鍵を有する鍵-値文法になる。同様に、Pは、Rに含まれる株式名および日付がコミットメントと一致することを証明する。CBC-HMAC暗号スイートでは、ゼロ知識証明回路は、レコード全体(408バイト)の黒塗り、コミットメントの計算、およびストリング処理を伴う。
HTTP GET要求(およびHTML)は、特別な制限を有する:鍵と値との間の区切り(すなわち、中間)と、鍵-値ペアの開始(すなわち、開始)は、決して鍵または値のサブストリングではない。このことは、2つ以上の連続する鍵または値を黒塗りするためには、Pは、{中間,開始}の文字を黒塗りしなければならないことを意味する。そのため、consG,G’(R,R’)は、以下をチェックする:(1)
Figure 2022546470000131
かつ(2)
Figure 2022546470000132
Figure 2022546470000133
{中間,開始}または
Figure 2022546470000134
のいずれか(Dは、所定位置の黒塗りを行うために使用されるダミー文字)。次いで、CTXG’をチェックすることは、必須ではない。
レガシークレデンシャルから匿名クレデンシャルへ:年齢証明。ユーザクレデンシャルは、多くの場合、サービスプロバイダの環境外ではアクセス可能でない。いくつかのプロバイダは、OAuthトークンを介して第三者のAPIアクセスを提供するが、そのようなトークンはユーザ識別子を明示する。DECOは、既存のシステムにクレデンシャル(「レガシークレデンシャル」と呼ぶ)を保持しているユーザが、それらに関するステートメントを第三者(検証器)に対して匿名で証明することを可能にする。したがって、いくつかの実施形態でのDECOは、ユーザが、サーバサイドのサポートまたは信頼できるハードウェアなしで、任意のウェブベースのレガシークレデンシャルを匿名クレデンシャルに変換することを可能にする。
図12は、このアプリケーションの例を示し、ここでは、大学ウェブサイトに格納されているクレデンシャル(人口統計学的詳細)を使用して、彼女/彼の年齢が18歳以上であることを証明する。学生は、運転免許証を発行している州または医療検査の同意を求めている病院などの、任意の第三者に、この年齢の証明を提供することができる。この例を、AES-GCM暗号スイートと、一意の鍵に基づく最適化を用いる2段階構文解析を使用して、実装する。
図12の例では、大学ウェブサイトに格納された学生の人口統計学的詳細は、とりわけ、名前、生年月日、学生IDを含む。強調表示されたテキストは、学生の年齢を含む。明示モードは、2段構文解析とともに使用される。証明器は、生年月日を含む6~7個のAESブロックを構文解析し、彼女の年齢が18歳を超えていることをZKで検証器に対して証明する。他の例と同様に、生年月日を囲む一意のHTMLタグに起因して、これも、一意の鍵を有する鍵-値文法である。バイナリオプションアプリケーションと同様に、この例は、日付および計算時間を構文解析するための追加のストリング処理を必要とする。
価格差別。価格差別は、同じ製品またはサービスを、異なる購入者に異なる価格で販売することを指す。ユビキタスな消費者追跡は、オンラインショッピングおよび予約ウェブサイトが、精緻化された価格差別、例えば顧客の郵便番号に基づいて価格を調整すること、を使用することを可能にする。価格差別は、経済的効率につながり得るため、既存の法律下では広く許容されている。
ただし、米国では、FTCは、価格差別が競争上の傷害につながる場合、価格差別を禁止している一方、GDPRなどの、ヨーロッパの新しいプライバシー重視の法律は、この慣行の合法性に再び焦点を当てている。どのような場合でも、消費者は、一般に、価格差別を受けることを嫌う。しかしながら、現在のところ、ユーザがオンラインで価格差別を報告する信頼できる方法はない。
図13は、このアプリケーションの例を示し、ここでは、名前および住所などの機密情報を秘匿しながら、商品の広告価格が閾値よりも高いことを証明することによって、DECOが、認識された価格差別について購入者が検証可能な主張を行うことを可能にする。TLSセッションに好適なAES-GCM暗号スイートを使用してこの例を実装し、必要な注文の詳細および要求URLを含む24個のAESブロックを明示する。
図13に例示されるように、ショッピングサイト(例えば、アマゾン)のHTMLでの注文請求書ページの一部は、購入者の名前および住所などの個人詳細を含む。購入者は、特定の日付の特定の製品の請求価格について第三者(検証器)を説得したいと考えている。この例では、AES-GCM暗号化スイートおよび表示モードを使用して、注文請求書ページの上部に必要なテキストを明示するが、陰影付きの購入者の名前、住所、および都市を含む、下部部分の陰影付きの機密テキストは、秘匿される。応答から明示されたAESブロックの数は、20(長い製品名に起因する)である。加えて、要求からの4つのAESブロックを明示して、正しいエンドポイントにアクセスしていることを証明する。コンテキスト完全性は、周囲の固有のストリング、例えば商品価格の近くにあるストリング「<tr>注文合計:」、を明示することによって、保証され、応答全体で1回だけ現れる。
実装態様および評価
ここで、DECOおよび3つのアプリケーションの実装態様詳細および評価結果について記載する。
三者ハンドシェイクおよびクエリ実行。約4700行のC++コードで、TLS1.2の三者ハンドシェイクプロトコル(3P-HS)とクエリ実行プロトコル(2PC-HMACおよび2PC-GCM)と、を実装した。合計779,213のAND複雑さを有する、手動最適化されたTLS-PRF回路を構築した。また、知られているAES回路の変形例を使用した。当実装態様は、Paillier暗号システムにRelicを、また悪意に対してセキュアな2PCプロトコルにEMPツールキットを使用する。
エンドツーエンドのシステムを構築するために、三者ハンドシェイクプロトコルおよび2PC-HMACプロトコルを、ポピュラーなTLS実装態様であるmbedTLSと統合した。2PC-GCMは、より多くのエンジニアリング努力によるのと同様に、TLSに統合することができる。2PC-GCMの性能を別途評価した。統合の性能への影響は、無視できるはずである。TLS1.3用には3P-HSを実装しなかったが、回路の複雑さが同様であることから、性能は、TLS1.2用と同等であるはずであると考えられる。
LANとWANとの両方の設定でDECOの性能を評価した。証明器と検証器との両方は、8個のvCPUコアおよび16GBのRAMを有するc5.2xlarge AWSノード上で動作する。2つのノードをLAN設定のために同じ地域(ただし、異なる可用性ゾーン)に位置させたが、WAN設定では2つの個別のデータセンタ(OhioおよびOregon)に位置させた。LANおよびWANでの2つのノード間の往復時間は、それぞれ約1msおよび67msであり、帯域幅は約1Gbpsである。
以下の表1は、TLSセッション中のDECOプロトコルの実行時間をまとめたものである。50個のサンプルを使用して、平均および平均の標準誤差(括弧内)を計算した。使用したMPCプロトコルは、オフラインの前処理に依存して、性能を改善する。オフラインフェーズが入力およびターゲットに依存しないことから、オフラインフェーズをTLSセッションの前に行うことができる。オンラインフェーズのみが、枢要な経路上にある。
Figure 2022546470000135
表1に示されるように、DECOプロトコルは、LAN設定で非常に効率的である。三者ハンドシェイク終了させるのに、0.37秒かかる。クエリ実行について、2PC-HMACは、レコードサイズに関わらず、2PCで1つのSHA-2評価のみを伴うため、効率的である(レコードごとに0.13s)。2PC-GCMは、クエリ全体にわたって2PC-AESを伴うため、一般により高価であり、コストはクエリ長に依存する。HTTP GET要求に見られる典型的なサイズである256B~2KBの範囲のクエリで、2PC-GCMの性能を評価した。LAN設定では、性能は、効率的であり、2PC-HMACと同等である。
WAN設定では、MPCが多往復の通信を伴うため、実行時間は、ネットワークレイテンシによって支配される。それにもかかわらず、考慮するほとんどのアプリケーションでDECOが定期的に使用される可能性が高いことを考えると、性能は、依然として許容可能である。
証明生成。libsnarkの標準的な証明系で、ゼロ知識証明をインスタンス化した。効率的に証明可能なステートメントテンプレートを考案したが、DECOのユーザは、これらのテンプレートを特定のアプリケーションに適合させる必要がある。SNARKコンパイラは、高水準言語でそのような適合を可能にし、開発者から低レベルの詳細を隠す。xjsnarkおよびそのJava(登録商標)様高水準言語を使用して、ステートメントテンプレートおよびlibsnark互換回路を構築した。
libsnarkを選定する当理由は、その比較的成熟したツーリングサポートである。libsnarkによって生成された証明は、一定サイズであり、検証するのに非常に効率的であり、欠点は、回路ごとの信頼できるセットアップである。DECOを、信頼できるセットアップを必要としないが、大きな証明時間および検証時間を有する、例えばBulletproofを使用するように適合させることができる。
証明器時間(証明を生成するための時間)、検証器時間(証明を検証するための時間)、証明器サイズ、回路での算術制約の数、および証明生成中のピークメモリ使用量という、各例に対する5つの性能メトリックを測定する。
以下の表2は、その結果をまとめたものである。50個のサンプルを使用して、平均およびその標準誤差を計算した。効率的なステートメントテンプレートおよび2段階構文解析を使用することで、DECOは、非常に実用的な証明器性能を達成する。libsnarkが低検証オーバーヘッドに最適化されることから、検証器時間は、無視できる。余分なストリング構文解析ルーチンに起因して、制約の数(および証明器時間)は、バイナリオプションアプリケーションに対して最も多い。ピークメモリ使用量を低減するために、各アプリケーションで複数の証明を使用する。最も複雑なアプリケーションについて、メモリ使用量は、1.78GBである。libsnark証明は、一定サイズの287Bであるため、示される証明サイズは、それの倍数である。
Figure 2022546470000136
エンドツーエンド性能。DECOエンドツーエンド性能は、利用可能なTLS暗号スイート、非公開データのサイズ、およびアプリケーション固有の証明の複雑さに依存する。ここでは、バイナリオプションという、実装した3つのアプリケーションのうちで最も複雑なアプリケーションのエンドツーエンド性能を提示する。プロトコルを終了させるのに約13.77秒かかり、これには、非偽造可能なコミットメント(0.50秒)の生成、2段階構文解析の第1の段階の実行(0.30秒)、およびゼロ知識証明の生成(12.97秒)にかかる時間が含まれる。これらの数値は、LAN設定で計算されており、WAN設定では、MPCプロトコルは、より時間がかかり(5.37s)、エンドツーエンド時間を18.64sに押し上げる。
比較すると、Town Crierは、TEEを使用して同様のアプリケーションを約0.6秒で、すなわちDECOよりもおよそ20倍速く、実行するが、信頼仮定が追加される。DECOがほとんどのアプリケーションで定期的にのみ使用される可能性が高いことから、暗号強度セキュリティ保証を達成するためのDECOのオーバーヘッドは、合理的と思われる。
法的およびコンプライアンス問題
ユーザは、ウェブサイトから自分のデータを取り出し済みである可能性があるが、DECOは、ユーザが自分の明示的な承認またはさらには認識を伴わずに、完全性証明とともにデータをエクスポートすることを可能にする。ここで、結果として生じる法的およびコンプライアンス上の考慮事項について簡単に議論する。
ただし、肝心なことであるが、DECOユーザは、完全性保証とともにデータを一方的に第三者にエクスポートすることはできず、この目的で検証器としてのオラクルに依存する。DECOはユーザデータを非公開に保持するが、オラクルは、ユーザがアクセスするウェブサイトおよびデータ型を知得する。したがって、オラクルは、例えば著作権侵害をもたらす可能性があるトランザクションを拒否して、適切なデータ使用を強制することができる。
ユーザとオラクルとの両方は、それらがアクセスするデータについて法的責任を負う。しかしながら、最近のコンピュータ詐欺および濫用防止法(CFAA)に関する判例法は、ウェブスクラップの犯罪化からの転換を示しており、連邦裁判所はウェブサイトの利用規約に違反すること自体は犯罪行為ではないと判断している。ウェブサイトの利用規約(「クリックラップ」など)に違反するユーザおよびオラクルは、代わりに民事罰のリスクがある。DECOが所与のサイトの利用規約に準拠していることは、サイト固有の、およびアプリケーション固有の問題である。
オラクルは、スマートコントラクトおよび他のエコシステム内で信頼できるものとして確立するインセンティブを有する。評判の良いオラクルは、オラクルが発行する特定の証明書とオラクルが許可するターゲットウェブサイトとのメニューをユーザに提供するものであり、これらのオプションを精査して、セキュリティを最大化し、責任を最小限に抑え、場合によってはターゲットサーバに通知または協力することを想定している。
誤ったデータに基づく誤った証明の法的な、性能への、およびコンプライアンスへの影響もまた、重要である。しかし、現在のインターネットサービスは、複雑なマルチサイトデータ依存性があるため、これらの問題はDECO固有のものではない。オラクルサービスは、正確性を確保するのに役立つ複数のデータソースにすでに依存している。オラクルサービス全般は、オンラインでのチェッキングおよび失効能力、ならびに異なる階層のセキュリティを含む、証明書のためのインフラストラクチャのようなインフラストラクチャを最終的に生み出す可能性がある。
本明細書で開示される例示的な実施形態でのDECOは、信頼できるハードウェアまたはサーバサイドの修正を必要としない、最新のTLSバージョンのためのプライバシー保存する非集中型オラクルスキームである。DECOは、証明器がTLSセッションに対する非偽造可能なコミットメントを生成し、セッションコンテンツに関するステートメントを効率的に証明することを可能にする。いくつかの実施形態は、新規な2段階構文解析スキームを利用して、プライバシー保存するオラクルに普遍的であるコンテキスト完全性攻撃を軽減する。DECOは、集中型ウェブサービスサイロからデータを解放し、広範なアプリケーションに対してこのデータをアクセス可能にすることができる。DECOの実用性は、3つの例示的なアプリケーションとともに、完全に機能的な実装態様を通じて本明細書で実証される。
GCMのプロトコルの詳細
GCMは、追加のデータ(AEAD)暗号を用いる認証された暗号化である。暗号化するために、GCM暗号は、タプル
Figure 2022546470000137
:秘密鍵、初期ベクトル、複数のAESブロックの平文と、完全性保護に含まれる追加のデータと、を入力として取り、暗号文
Figure 2022546470000138
およびタグTを出力する。復号化は、プロセスを反転させる。復号化暗号は、入力(k,IV,C,A,T)として、まず、再計算されたタグをTと比較することによって暗号文の完全性をチェックし、次いで、平文を出力する。
暗号文は、カウンタモードで計算される:
Figure 2022546470000139
式中、incは、IVをi回増分することを表す(incの正確な形式は重要ではない)。
タグ
Figure 2022546470000140
は、以下のように計算される。ベクトル
Figure 2022546470000141
が与えられると、関連付けられたGHASH多項式
Figure 2022546470000142
は、
Figure 2022546470000143
で加算および乗算を行う
Figure 2022546470000144
として定義される。一般性を失うことなく、
Figure 2022546470000145
および
Figure 2022546470000146
が適切にパディングされると仮定する。lおよびlで、それらの長さを表す。GCMタグは、以下である。
Figure 2022546470000147
式中、h=AES(k,0)。
TLSでGCMを使用する場合、各平文レコードDは、以下のように暗号化される。一意のノンスnが選定され、追加のデータκは、シーケンス番号、バージョン、およびDの長さの連結として計算される。GCM暗号化は、M=n||GCM(k,n,D,κ)としてペイロードレコードを生成するために呼び出される。
GCMに関する追加の詳細を、例えば、Morris J Dworkin,SP 800-38d,“Recommendation for block cipher modes of operation:Galois/counter mode (GCM) and GMAC,”Technical Report,2007に見出すことができ、これは、参照により本明細書に組み込まれる。
クエリ実行
タグ作成/検証。GCMタグを計算すること、または検証することは、2PCにおける上記の式(1)を評価することを伴う。課題は、式(1)が、算術計算(例えば、
Figure 2022546470000148
における多項式評価)、ならびにバイナリ計算(例えば、AES)の両方を伴うことである。バイナリ回路で大きな体で乗算を実行することはコストがかかる一方、
Figure 2022546470000149
において(GF(2)で定義される)AESを計算することは、高いオーバーヘッドを発生させる。計算が何らかの形で2つの回路に分離できたとしても、各レコードに対して
Figure 2022546470000150
においておよそ1,000回の乗算を要する多項式だけを評価すると、過度に高価になる。
当プロトコルは、多項式評価の必要性を除去する。実際の2PCプロトコルは、バイナリ演算のみを伴い、したがって、単一の回路で行える。その上、レコードごとの計算は、2PC-AESの1回の呼び出しのみに低減される。
このことは、セッションの開始時に前処理フェーズで{h}のシェア(2PCプロトコルでの)を計算することによって達成される。前処理のオーバーヘッドは、続くすべてのレコードに同じhが使用されるため、セッション全体にわたって償却される。{h}のシェアがあれば、PおよびVは、多項式評価のシェア
Figure 2022546470000151
をローカルで計算することができる。彼らはまた、2PCでAES(k,IV)を計算し、
Figure 2022546470000152
のシェアを得る。合計で、各レコードのタグをチェックするために必要とされる際の2PC-AESの呼び出しは1回のみである。
Vが同じIVに複数回応答することは決してないことが枢要であり、そうでなければ、Pはhを知得するであろう。具体的には、各応答において、Vは、
Figure 2022546470000153
の形態で彼女のシェア{hV,i}の目隠しされた線形結合を明示する。{hV,i}の単一の目隠しされない線形結合であれば、Pがhを解くことを可能にするため、値がAES(k,IV)によって目隠しされることが重要である。したがって、Vが同じIVに2回応答する場合、2つの応答(
Figure 2022546470000154
での)を加算することによって、目隠しを除去することができる:
Figure 2022546470000155
このことは、GCMのノンス一意性要件に従う。
レコードの暗号化/復号化。タグが適切にチェックされると、レコードの復号化は、直截的である。PおよびVは、2PC-AESを用いたinc’(IV)のAES暗号化を単に計算する。細かい注意事項は、Vが、暗号化されるカウンタが以前にIVとして使用されていないことをチェックしなければならないことである。そうでなければ、Pは、上記に概説したような様式で、Pに対するhを知得するであろう。
証明生成
ブロックの明示。Pは、AESブロックBが、暗号化されたレコードrecのi番目のブロックであることをVに納得させたい。証明戦略は、以下の通りである:1)AESブロックBが暗号文ブロック
Figure 2022546470000156
に暗号化されていることを証明し、2)タグが正しいことを証明する。正しい暗号化を証明することは、ZKPで1回のみのAESを必要とする。ナイーブに行われると、正しいタグを証明することは、ZKPにおける次数512のGHASH多項式と、2回のAESブロック暗号化と、を評価することに陥る。
Pが2つの暗号化されたメッセージAES(k,IV)およびAES(k,0)をVに明示することを可能にし、したがって、Vがタグを検証することを可能にする(式(1)を参照)ことによって、はるかに効率的な証明をうまく達成する。Pは、暗号化の正確性をZKで証明し、使用される鍵がコミットメントに対応していることを証明するだけでよく、2回のAESおよび1回のSHA-2を必要とする(Pは、鍵のハッシュを明示することによってkに対してコミットする)。したがって、合計のコストは、ZKPでの3回のAESおよび1回のSHA-2である。
TLSレコードの明示。証明技術は、上記のケースからの単純な拡張である。Pは、レコードrec全体を明示し、すべてのAESブロックの正しいAES暗号化を証明し、ZKPでの合計514回のAESおよび1回のSHA-2をもたらす。
ブロックを除くTLSレコードの明示。上記の場合と同様に、Pは、1つを除くレコード内のすべてのブロックの暗号化を証明し、ZKPでの合計513回のAESおよび1回のSHA-2をもたらす。
プロトコル拡張
TLS1.3サポートへの適合。TLS1.3をサポートするためには、3P-HSプロトコルを、新しいハンドシェイクフローおよび異なる鍵導出回路に適合させなければならない。特に、ここでは、ServerHello後のすべてのハンドシェイクメッセージが、暗号化される。ナイーブ戦略の場合、それらを2PCにおいて復号化するであろうし、このことは、証明書が通常大きいため、コストがかかるであろう。ただし、TLS1.3の鍵独立性特性のおかげで、PおよびVは、最終セッション鍵の秘密性に影響を与えることなく、ハンドシェイク暗号鍵をセキュアに明示することができる。終了したメッセージは、さらに別の独立した鍵を使用してハンドシェイクを認証するため、ハンドシェイク完全性が保存される。
したがって、最適化された3P-HSは、以下のように機能する。PおよびVは、以前と同じECDHEを実行する。次いで、彼らは、2PC-HKDFを実行することによってハンドシェイク鍵とアプリケーション鍵を導出し、ハンドシェイク鍵をPに明示して、Pがローカルで(すなわち、2PCなしで)ハンドシェイクメッセージを復号化することを可能にする。2PC回路は、TLS1.2のものに匹敵する、合計およそ70kのANDゲートとなるSHA-256のおよそ30回の呼び出しを伴う。最後に、CBC-HMACがTLS1.3によってサポートされていないことから、DECOを、GCMモードでのみ使用することができる。
クエリ構築は任意選択である。クエリに対する応答を拘束するアプリケーションについて、例えば取引価格とともにストックティッカーを含める場合、2PCクエリ構築プロトコルを、完全に回避することができる。TLSが通信の各方向に対して別個の鍵を使用することから、クライアントからサーバへの鍵を、PがVとインタラクトすることなくサーバにクエリすることができるように、ハンドシェイク後にPに対して明示することができる。
マルチラウンドセッションのサポート。DECOを、以前の応答に応じてPがさらなるクエリを送信するマルチラウンドセッションをサポートするように拡張することができる。各ラウンド後、Pは、MAC検証および作成が対称であることから、上記と同様の2PCプロトコルを実行して、到来する応答のMACタグを検証する。ただし、PがMAC検証を悪用してタグを偽造することを防止するためには、追加のコミットメントが必要とされる。
TLSでは、サーバからクライアントへの通信と、クライアントからサーバへの通信とで、異なるMAC鍵が使用される。マルチラウンドセッションをサポートするために、PおよびVは、2PCを実行して、前者のタグを検証し、後者に対する新鮮なメッセージのタグを作成する。本明細書における前の説明は、プロトコルを指定して、MACタグを作成(および検証)した。ここで、マルチラウンドセッションの追加のセキュリティ考慮事項について議論する。
サーバからクライアントへのメッセージのタグをチェックする場合、Pがサーバから発せられたメッセージではないメッセージのタグを偽造することができないことを保証しなければならない。PがメッセージMのタグTを検証したいと仮定する。Pに、まずTに対してコミットさせ、次いで、PおよびVが2PCプロトコルを実行して、メッセージMのタグT’を計算する。Pは、Vに対するコミットメントをオープンするように要求され、T≠T’の場合、Vは、プロトコルを中止する。PがMAC鍵を知らないことから、Pは、サーバからではないメッセージのタグを計算し、これに対してコミットすることができない。
クライアントからサーバへのメッセージに対するタグを作成する場合、Vは、TLSによって要求される通りに、シーケンス番号が増加したメッセージにMACタグが作成されることを確認する。これにより、どのメッセージがサーバに送信されたかをVが区別する方法がないため、悪意のあるPが同じシーケンス番号の2つのメッセージを作成することを防止することもできる。
代替のDECOプロトコル:プロキシモード。表1に示されるように、DECOのHMACモードは、非常に効率的であり、2PCでHMACタグを作成し、検証する実行時間は、レコードサイズとは独立している。GCMモードは、前処理を用いる小さい要求には効率的であるが、大規模なレコードには高価であり得る。ここで、ポストハンドシェイク2PCプロトコルを完全に回避する、非常に効率的な代替形態を提示する。
この代替形態では、検証器Vは、証明器PとTLSサーバSとの間のプロキシとして機能し、すなわち、Pは、Vを通してSに/からのメッセージを送信/受信する。DECOプロトコルの修正されたフローは、以下の通りである:三者ハンドシェイク後、Pが、鍵シェアkに対してコミットし、次いで、Vが、kをPに対して明示する。したがって、Pは、ここで、セッション鍵k=k+k全体を有する。Pはkを使用してサーバとのセッションを続行するため、Vは、プロキシトラフィックを記録する。セッションが終了した後、Pは、録音されたセッションに関するステートメントが以前と同じであることを証明する。
そのような実施形態では、三者ハンドシェイクは、非偽造可能性を提供する。CBC-HMACとは異なり、GCMは、コミットしない:鍵kで暗号化された所与の暗号文およびタグ(C、T)について、GCM MACに衝突耐性がないため、同じタグを計算しながら、Cを異なる平文に復号化するk’≠kを見つけることができる。そのような攻撃を防止するために、上記のプロトコルは、Pが、セッション鍵を知得する前に、鍵シェアに対してコミットすることを必要とする。
ここで、プロキシモードプロトコルに関連するセキュリティ特性およびネットワーク前提について記載する。悪意のあるVがTLSの完全性およびプライバシーを破ることはできないため、検証器完全性およびプライバシー特性は、明確である。
しかし、証明器完全性について、プロキシがセッション全体を通じてSに確実に接続することができるものとする必要がある。まず、プロキシが、プロキシが確実にSと接続されていることを確認することができるものとする。その上、セッション鍵を知っており、したがって、セッションコンテンツを修正し得るPが、プロキシとSとの間で送信されるメッセーを改ざんすることはできないものとする。
三者ハンドシェイク中、Vは、(標準のTLSで)新鮮なノンスを介してサーバの署名をチェックすることによって、サーバの識別情報を確認することができる。ただし、ハンドシェイク後、Vは、IPアドレスなどのネットワーク層インジケータに依存しなければならない。したがって、実際には、Vは、正しい最新のDNSレコードを有していなければならず、Vとサーバとの間のネットワーク(例えば、それらのISPおよびバックボーンネットワーク)は、例えばボーダーゲートウェイプロトコル(BGP)攻撃を通した、トラフィック注入に対して適切に保護されなければならない。盗聴は、例示的な実施形態では、一般に、問題ではない。
これらの前提は、BGP攻撃が実際にマウントするのは困難であるため、同様のプロキシ設定で他のシステムによって受け入れられている。検証器ノードを地理的に分散することによって、トラフィック傍受に対する当プロトコルをさらに強化することができる。その上、様々な知られている検出技術を、検証器によってデプロイすることができる。多くの場合、BGP攻撃は、事実の後に文書化され、したがって、該当する場合、DECOのアプリケーションを強化して、影響を受けるセッションの失効をサポートすることができる(例えば、識別情報システムでDECOを使用してクレデンシャルを発行する場合)。
この代替プロトコルは、異なる性能セキュリティ間のトレードオフを表す。これは、ハンドシェイク後に集中的な暗号化が発生しないため、非常に効率的であるが、ネットワークに関する追加の前提を必要とし、したがって、より弱いネットワーク敵対者にしか耐えられない。
鍵-値文法および2段階構文解析
準備および表記。コンテキストフリー文法(CFG)をG=(V,Σ,P,S)と表し、ここで、Vは、非終端記号のセットであり、Σは、終端記号のセットであり、P:V→(V∪Σ)は、生成またはルールの集合であり、S∈Vは、開始記号である。CFGの生成ルールを、「-」を使用してマイナスのセットを表し、「..」を使用して範囲を表す、標準の表記で定義する。ストリングwについて、構文解析器は、wの構文解析木を構築することによってw∈Gかどうかを判定する。構文解析木は、セマンティクスを抽出するために後で使用できる一連の生成ルールを表す。
鍵-値文法。これらは、鍵-値ペアの概念を有する文法である。これらの文法は、ほとんどのAPIコールおよび応答が実際には鍵-値文法であることから、DECOにとって特に興味深い。
Gは、文法Hが存在する場合の鍵-値文法であると言われ、これにより、与えられた任意のs∈G、s∈H、およびHを、以下の規則によって定義することができる:
S→オブジェクト(S→object)
オブジェクト→ノーペアズストリング オープン ペア ペアズ クローズ(object→noPairsString open pair pairs close)
ペア→開始 鍵 中間 値 終了(pair→start key middle value end)
ペアズ→ペア ペアズ|“”(pairs→pair pairs|””)
鍵→文字列(key→chars)
値→文字列|オブジェクト(value→chars|object)
文字列→文字 文字列|“”(chars→char chars|””)
文字→Unicode-エスケープ化|エスケープ エスケープ化|追加文字列(char→Unicode - escaped|escape escaped|addedChars)
特別→開始特殊|中間特殊|終了特殊(special→startSpecial|middleSpecial|endSpecial)
開始→非エスケープ化 開始特殊(start→unescaped startSpecial)
中間→非エスケープ化 中間特殊(middle→unescaped middleSpecial)
終了→非エスケープ化 終了特殊(end→unescaped endSpecial)
エスケープ化→特殊|エスケープ|...(escaped→special|escape|...)
上記では、Sは、開始非端末(Hの文章を表す)であり、非端末開閉は、鍵-値ペアのセットの開閉を区切り、開始、中間、終了は、鍵-値ペアの開始、鍵と値との間の分離、およびペアの終了を区切る特殊なストリングである。
特殊な文字、すなわち文法を構文解析する際に特殊な意味を有する文字、構文解析する際に曖昧さを除去するために、特殊な非終端エスケープが使用される。例えば、JSONでは、鍵は、前に「空白の二重引用符」(“)が付いており、かつ後に二重引用符が付いている場合に、構文解析される。鍵または値の式自体が二重引用符を含まなければならない場合、それらは、前にバックスラッシュ(\)が付く、すなわちエスケープ化しなければならない。上記のルールでは、特殊文字の前で非エスケープ化した非終端は、それらを特殊文字として構文解析することができることを意味する。そのため、前進して、鍵-値ペアの生成には曖昧さがないことを前提とすることができる。そのため、鍵-値文法GにおけるストリングRのサブストリングR’がペアとして構文解析する場合、R’は、Rの構文解析木におけるペアに対応しなければならない。
上記の鍵-値文法では、中間は、空のストリングを導出することができず、すなわち、値から鍵を構文解析することを可能にするためには、空でないストリングが中間をマークしなければならない。ただし、開始および終了の一方は、一方のペアの値の間の分離を次のペアの鍵から区切るのみであることから、空の導出を行うことができる。最後に、いくつかの実施形態では、鍵-値文法のための2段階構文解析では、選択的開示されたストリング、Ropenがペアに対応するという要件を有する許容経路を考慮するに過ぎないことに留意されたい。
ローカルに一意の鍵の2段階構文解析。多くの鍵-値文法は、一定の範囲内で鍵の一意性を強制する。例えば、JSONでは、オブジェクト間で重複する鍵がある可能性があっても、鍵は、JSONオブジェクト内で一意であるものとすることができる。そのような文法のための2段階構文解析は、サブストリングを構文解析することに還元することができる。具体的には、Transは、R’内であってもペアの範囲を正しく判定することができるように、連続的なサブストリングR’をRから抽出する。例えば、JSONでは、R’がRのプレフィックスである場合に限ってconsG,G’(R,R’)が真を返す場合には、Ropenを生じさせる部分木を生成するまでR’をJSONとして構文解析するだけで、ストリングRopenがR中の正しいコンテキストに対応するかどうかを判定するのに十分である。
一意の鍵を用いる文法。鍵-値文法Gが与えられると、uと表される、鍵の一意性をチェックする関数を定義する。開始 k 中間として構文解析できるsのサブストリングが最大でも1つ存在する場合に限り、ストリングs∈Gおよび別のストリングk,u(s,k)=真が与えられる。s∈Gであることから、このことは、sの任意の構文解析木に、ノード鍵および導出kを有する最大で1つの分岐が存在することを意味する。Parserを、入力が文法G内にある場合に真を返す関数とする。文法Gは、すべての可能な鍵k,u(s,k)=真、すなわちすべてのストリングR,Cについて、以下の場合に、一意の鍵を有する鍵-値文法であると言う:
Figure 2022546470000157
一意の鍵文法の具体的な2段構文解析。Uを、上記に与えられる一意の鍵文法とする。Uは、LL(1)であるものとする。このことは、前述した興味のある例示的な文法に当てはまる。一般的なLL(1)構文解析アルゴリズムが、知られている。
TがUのストリングのペアへの許容経路を含むように、設定Tのためのコンテキスト関数CTXをインスタンス化する。加えて、CTXが補助的な制限として鍵k(Pの出力Ropenで指定された鍵)を取ることを可能にする。タプル(T,k)は、SおよびCTX(S,・,・)CTXU,Sと表される。
Pを、ルールS→ペアによって与えられた文法であるとし、ここで、ペアは、Uの生成ルールの非終端であり、Sは、Pの開始記号である。ParserP,kを、ストリングsがPにあるかどうか、およびもしそうである場合、sの鍵がkに等しいかどうかを決定する関数として定義する。入力R、Ropenがあると、CTXU,Sは、以下のことをチェックする:(a)Ropenは、ParserP,kを実行させることによる鍵kを有する有効な鍵-値ペアである(b)Ropenは、LL(1)構文解析アルゴリズムを実行してRを構文解析することによって、Rにおける鍵-値ペアとして構文解析する。
図14は、鍵-値文法UでのストリングRを解析し、かつ特定の鍵-値ペアRopenの生成を探索するための関数CTXU,Sに対する例示的な擬似コードを示す。ここで、UのLL(1)構文解析表であるPTableは、CTXU,Sにハードコード化されている。
長いストリングR上のCTXU、Sの高価な計算を回避するために、要件に従ってR’=Ropenであるような、RのサブストリングR’を抽出するために、変換Transを導入する。
また、ストリングs,tについて、tがsのサブストリングである場合に真を返す関数substring(s,t)と、s=tの場合に真を返すequal(s,t)と、を定義する。以下のルールを用いるconsU,P
Figure 2022546470000158
と、S’={S}と、を定義する。つまり、equal(R’,Ropen)およびルール
Figure 2022546470000159
が、すべてのストリングR’,Ropenに対して持続する場合にはいつでも、CTX(S,R’,Ropen=真。
Sに関して(consU,P,S’)が正しいことを示すことができる。より具体的には、R’がRのサブストリングである場合、鍵-値ペアRopenは、Parserによって解析され、次いで、同じペアがUのサブストリングになっていなければならない。Uにおける鍵のグローバルな一意性に起因して、そのようなペアRopenは1つのみ存在し、CTX(S,R,Ropen)は真でなければならない。
本明細書の他の箇所に記載されたものと同様に、上記の追加のプロトコルの詳細は、例示的な例としてのみ提示され、いかなるようにも限定することは意図されていない。他の実施形態は、本明細書に開示される非集中型オラクルを実装する際に、代替プロトコル取り決めを利用することができる。
上記に示したように、本明細書に開示される非集中型オラクルの例示的な実施形態を、多種多様な異なるアプリケーションに実装することができる。
例えば、DECOを使用して、ユーザが自分の個人データを管理し、販売する個人データ市場を実装することができる。ウェブサービスはユーザデータを収益化することで利益を得ていることは周知である。本明細書に開示される技術を使用して実装された個人データ市場は、ユーザがオープン市場でデータを販売することを可能にすることによって、このデータ独占を妨害する可能性がある。DECOは、例示的な実施形態では、個人データ市場の鍵となるイネーブラーであり、それは、DECOが、購入者がウェブサイトからのデータの起点および完全性を検証することを可能にするからである。DECOはまた、販売者が不正行為を行うことを防止しながら、プライバシー保護のために機密情報を黒塗りするなど、販売者がデータを前処理することを可能にする。いくつかの実装態様では、DECOを利用して価格差別に対する検証可能な請求を提供する。
別の例として、DECOを使用して、金銭的な支払能力の証明を提供することができる。このタイプの取り決めのより具体的な例示として、DECOを用いて、アリスは、ボブに対して、彼女の特定の銀行の残高が5000ドルを超えていることを証明することができる。この単純な証明は、アリスの金銭的な弁済能力だけでなく、口座開設の能力も示す(例えば、銀行がマネーローンダリング防止(AML)スクリーニングを実施する際に、アリスが制裁リスト上にないこと)。重要なことに、DECOは、彼女の残高が実際の残高または識別情報ではなく、5,000ドルを超えているという事実だけを明示することによって、アリスのプライバシーを保護する。
さらなる例として、DECOを使用して、アカウント所有権の証明を提供することができる。そのような取り決めの一例では、DECOを用いて、匿名でアカウント、例えば電子メールアカウント、ソーシャルメディアアカウント、の所有権を証明することができる。例えば、アリスは、アカウント名がどのようなものであるかを明示することなく、彼女が@example.orgで終わる電子メールアカウントを所有していることをボブに対して証明することができる。これにより、アリスが特定の組織に所属していることが証明され、例えば、内部告発、匿名の苦情などに有用である。
本明細書に開示される非集中型オラクルのアプリケーションの追加の例として、クレデンシャル回復および非集中化された識別情報が上げられる。前者の例示として、DECOは、OAUTHの使用を回避するプライバシー保存する様式で、ユーザが、彼女が特定のウェブリソース、例えばFacebookアカウントにアクセスできることを証明することを可能にすることができる。これにより、ユーザは、例えば鍵回復のために、既存のサービスを活用して、彼女の識別情報を証明することを可能にすることができる。後者の例示として、DECOはまた、ユーザが、第三者プロバイダによって主張されるような特定の特性を有する(例えば、彼女は18歳以上である)ことを、プライバシー保存する様式で証明することを可能にすることができる。これは、本明細書では匿名の年齢証明とも呼ばれるものの例である。そのような証明を使用して、非集中型識別情報システムにおけるクレデンシャルを構築することができる。
前述の非集中型オラクルアプリケーションは、単なる例であり、いかなるようにも制限するものと解釈されるものではない。本明細書に開示される非集中型オラクルのこれらのおよび他の例示的なアプリケーションの実装態様に関する追加の詳細は、本明細書の他の箇所に見出すことができる。
本明細書に開示される1つ以上の非集中型オラクルを実装するように構成された情報処理システムの様々な要素間の通信は、1つ以上のネットワークを介して行われるものとする。所与のそのようなネットワークは、例えば、インターネット、WAN、LAN、衛星ネットワーク、電話またはケーブルネットワーク、3G、4G、もしくは5Gネットワークなどのセルラネットワーク、Bluetooth、WiFi、もしくはWiMAXなどの無線プロトコルを使用して実装された無線ネットワーク、またはこれらのおよび他のタイプの通信ネットワークの様々な部分または組み合わせを例示的に含むことができる。
本明細書に開示される非集中型オラクルの機能性の少なくとも一部分を実装する所与の処理デバイスは、プロセッサ、メモリ、およびネットワークインターフェースなどのコンポーネントを含むことができる。プロセッサは、メモリに、およびネットワークインターフェースに動作可能に結合されているものとする。メモリは、処理デバイスの機能性の一部分を実装する際に、プロセッサによる実行のためのソフトウェアプログラムコードを記憶する。
本明細書に図1~図14と併せて示され、記載される特定の配置が単に例示的な例として提示され、多数の代替実施形態が可能であることを認識されたい。したがって、本明細書に開示される様々な実施形態は、いかなるようにも限定するものと解釈されるものではない。非集中型オラクルを実装するための多数の代替配置を、他の実施形態で利用することができる。例えば、当業者は、代替の処理動作および関連付けられたシステム実体構成を、他の実施形態で使用することができることを認知するであろう。したがって、他の実施形態は、例示的な実施形態のエンティティと比較して、追加のまたは代替のシステムエンティティを含み得ることが可能である。また、特定のシステムおよびデバイスの構成ならびに関連付けられた非集中型オラクルを、他の実施形態で変えることができる。
また、上述の情報処理システム配置は、例示的なものに過ぎず、他の実施形態では代替のシステム構成を使用することができることに留意されたい。
本明細書に記載される情報処理システムにおける所与のクライアント、サーバ、プロセッサ、または他のコンポーネントは、メモリに結合されたプロセッサを含む対応する処理デバイスを利用して例示的に構成されている。プロセッサは、処理動作および他の機能性の性能を制御するために、メモリに記憶されたソフトウェアプログラムコードを実行する。処理デバイスはまた、1つ以上のネットワークを介した通信をサポートするネットワークインターフェースを備える。
プロセッサは、例えば、マイクロプロセッサ、ASIC、FPGA、CPU、GPU、ALU、DSP、または他の同様の処理デバイスコンポーネント、ならびに他のタイプおよび配置の処理回路機構を、任意の組み合わせで備えてもよい。例えば、本明細書に開示される所与の処理デバイスによって提供される非集中型オラクルの機能性の少なくとも一部分を、そのような回路機構を使用して実装することができる。
メモリは、処理デバイスの機能性の一部分を実装する際に、プロセッサによる実行のためのソフトウェアプログラムコードを記憶する。対応するプロセッサによる実行のためのそのようなプログラムコードを記憶する所与のそのようなメモリは、本明細書で、より一般に、プログラムコードが内部で具現化されたプロセッサ可読記憶媒体と呼ばれるものの例であり、例えば、SRAM、DRAM、もしくは他のタイプのRAM、ROM、フラッシュメモリ、磁気メモリ、光学メモリ、または他のタイプの記憶デバイスなどの電子メモリを、任意の組み合わせで備えてもよい。
そのようなプロセッサ可読記憶媒体を備える製造物品は、本発明の実施形態と見なされる。本明細書で使用される「製造品」という用語は、一過性の伝播信号を除外すると理解されるものである。
プロセッサ可読記憶媒体を備える他のタイプのコンピュータプログラム製品を、他の実施形態で実装することができる。
加えて、本発明の実施形態は、非集中型オラクルと関連付けられた処理動作、ならびに他の関連する機能性を実装するように構成された処理回路機構を備える集積回路の形態で実装され得る。
所与の実施形態における処理デバイスは、例えば、ラップトップ、タブレットもしくはデスクトップパーソナルコンピュータ、携帯電話、または他のタイプのコンピュータもしくは通信デバイスを任意の組み合わせで含むことができる。例えば、コンピュータまたは携帯電話を、本明細書に開示される非集中型オラクルと関連付けられた機能性の少なくとも一部分を実装するための処理デバイスとして利用することができる。それぞれのシステムエンティティと関連付けられた処理デバイスを備える情報処理システムの様々な要素間のこれらのおよび他の通信は、1つ以上のネットワークを介して行われ得る。
本明細書に開示される情報処理システムは、1つ以上の処理プラットフォーム、またはその一部を使用して実装され得る。
例えば、情報処理システムの少なくとも一部分を実装するために使用され得る処理プラットフォームの例示的な一実施形態は、物理インフラストラクチャ上で動作するハイパーバイザを使用して実装される仮想マシンを含むクラウドインフラストラクチャを備える。そのような仮想マシンは、1つ以上のネットワークを介して互いに通信するそれぞれの処理デバイスを備えてもよい。
そのような実施形態におけるクラウドインフラストラクチャは、ハイパーバイザの制御下で仮想マシンのそれぞれの仮想マシンで動作するアプリケーションの1つ以上のセットをさらに備え得る。少なくとも1つの基礎となる物理マシンを使用して、各々が仮想マシンのセットを提供する複数のハイパーバイザを使用することも可能である。1つ以上のハイパーバイザによって提供される異なるセットの仮想マシンは、情報処理システムの様々な構成要素の複数のインスタンスを構成する際に利用されてもよい。
本明細書に開示される情報処理システムの少なくとも一部分を実装するために使用され得る処理プラットフォームの別の例示的な実施形態は、少なくとも1つのネットワークを介して互いに通信する複数の処理デバイスを備える。処理プラットフォームの各処理デバイスは、メモリに結合されたプロセッサを備えるものとする。
ここでも、これらの特定の処理プラットフォームは、単なる例として提示され、情報処理システムは、追加のまたは代替の処理プラットフォーム、ならびに任意の組み合わせでの多数の個別の処理プラットフォームを含み得、そのような各プラットフォームは、1つ以上のコンピュータ、サーバ、記憶デバイス、または他の処理デバイスを備える。
例えば、本発明の実施形態を実装するために使用される他の処理プラットフォームは、仮想マシンを備える仮想化インフラストラクチャの代わりに、またはそれに加えて、異なるタイプの仮想化インフラストラクチャを備え得る。したがって、いくつかの実施形態では、システムコンポーネントは、Dockerコンテナを利用する仮想化インフラストラクチャ、またはLinux(登録商標)制御グループもしくは他の同様のメカニズムに基づくオペレーティングシステムレベルの仮想化を使用して実装される他のタイプのLinuxコンテナを含む、クラウドインフラストラクチャもしくは他のタイプの仮想化インフラストラクチャで少なくとも部分的に動作することが可能である。
したがって、他の実施形態では、追加の要素または代替の要素の異なる配置が使用され得ることを理解されたい。少なくとも、これらの要素のサブセットは、共通の処理プラットフォーム上に集合的に実装されてもよいし、各々のそのような要素が、別個の処理プラットフォーム上に実装されてもよい。
また、コンピュータ、サーバ、記憶デバイス、または他の構成要素の多数の他の構成が、情報処理システムにおいて可能である。そのような構成要素は、任意のタイプのネットワークまたは他の通信媒体を介して、情報処理システムの他の要素と通信することができる。
前に示したように、本明細書に開示されるシステムの構成要素を、少なくとも部分的に、メモリに記憶され、かつ処理デバイスのプロセッサによって実行される1つ以上のソフトウェアプログラムの形態で、実装することができる。例えば、システムの非集中型オラクルエンティティまたは関連するコンポーネントと関連付けられた特定の機能性を、少なくとも部分的にソフトウェアの形態で実装することができる。
本明細書に記載される情報処理システムの特定の構成は、例示的なものに過ぎず、他の実施形態では所与のそのようなシステムは、そのようなシステムの従来の実装態様に一般的に見られるタイプの1つ以上の要素を含む、具体的に示されるものに加えて、またはそれらの代わりに他の要素を含み得る。
例えば、いくつかの実施形態では、情報処理システムは、開示された技術を利用して、他のコンテキストで追加のまたは代替の機能性を提供するように構成され得る。
したがって、本明細書のいくつかの実施形態において、TLSのための非集中型オラクルを提供するというコンテキストにおいて例示される技術を、他のコンテキストにおいて使用するために、直截的な様式で適合させることができる。したがって、本発明の例示的な実施形態は、TLSまたはその関連付けられた処理コンテキストに限定されると見なされるものではない。
本明細書に記載される実施形態で使用される特定のプロセスステップは、例示的なものに過ぎず、他の実施形態が異なるタイプおよび配置の処理動作を利用することができることも認識されたい。例えば、例示的な実施形態で連続して実行されるように示される特定のプロセスステップを、他の実施形態では、互いに少なくとも部分的に並行して実行することができる。
本明細書に記載される本発明の実施形態が、単に例示的であることは、ここでも強調されるものである。本発明の他の実施形態を、本明細書に記載される特定の例示的な実施形態において、および多数の代替処理コンテキストにおいて利用されるものよりも多種多様な異なるタイプおよび配置の情報処理システム、ネットワーク、およびデバイスを利用して実装することができる。加えて、特定の実施形態について記載するコンテキストにおいて本明細書で行われる特定の仮定は、他の実施形態に適用される必要はない。これらのおよび多数の他の代替実施形態は、当業者には容易に明らかであろう。

Claims (25)

  1. 装置であって、
    メモリに結合されたプロセッサを備える検証器デバイスを備え、
    前記検証器デバイスが、1つ以上のネットワークを介して、クライアントデバイスおよびサーバデバイスと通信するように構成されており、
    前記検証器デバイスが、
    前記クライアントデバイスおよび前記サーバデバイスとの三者ハンドシェイクプロトコルに参加することであって、前記検証器デバイスおよび前記クライアントデバイスが、前記サーバデバイスとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する、参加することと、
    前記クライアントデバイスから、前記サーバデバイスとの前記セキュアなセッションに関連するコミットメントを受信することと、
    前記コミットメントの受信に応答して、前記クライアントデバイスに対して以前はアクセス可能でなかった、前記セキュアなセッションに関連する追加の情報を、前記クライアントデバイスに公開することと、
    前記コミットメントおよび前記追加の情報に少なくとも部分的に基づいて、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することと、を行うようにさらに構成されている、装置。
  2. 前記検証器デバイスが、前記サーバデバイスから前記クライアントデバイスによって取得された前記データの前記少なくとも1つの特徴付けの前記正確性の前記検証に応答して、1つ以上の自動化されたアクションを開始するようにさらに構成されている、請求項1に記載の装置。
  3. 前記検証器デバイスが、非集中型オラクルシステムのオラクルノードのセットの特定のオラクルノードを備える、請求項1に記載の装置。
  4. 前記検証器デバイスが、前記検証器デバイスの機能性が複数の個別の処理デバイスにわたって分散される分散型検証器デバイスを備える、請求項1に記載の装置。
  5. 前記サーバデバイスが、トランスポート層セキュリティ(TLS)対応サーバデバイスを備え、前記セキュアなセッションが、TLSセッションを含む、請求項1に記載の装置。
  6. 前記セキュアなセッションに関連する前記コミットメントが、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたクエリ応答データに対するコミットメントを含む、請求項1に記載の装置。
  7. 前記セキュアなセッションに関連する前記コミットメントが、前記三者ハンドシェイクプロトコルと併せて、前記クライアントデバイスによって確立されたが、前記検証器デバイスに対して以前にアクセス可能でない、証明器鍵へのコミットメントを含む、請求項1に記載の装置。
  8. 前記コミットメントの受信に応答して前記クライアントデバイスに公開された前記追加の情報が、前記三者ハンドシェイクプロトコルと併せて、前記検証器デバイスによって確立されたが、前記クライアントデバイスに対して以前にアクセス可能でない、検証器鍵を含む、請求項1に記載の装置。
  9. 前記検証器デバイスが、前記クライアントデバイスと前記サーバデバイスとの間のインタラクションと併せて、前記クライアントデバイスに対するプロキシとして動作するようにさらに構成されており、これにより、前記検証器デバイスが、前記プロキシとして動作する前記検証器デバイスを介した前記セキュアなセッションの一部として、前記クライアントデバイスと前記サーバデバイスとの間で交換される暗号文を自動的に取得する、請求項1に記載の装置。
  10. 前記検証器デバイスが、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得された前記データを特徴付ける1つ以上のステートメントを、前記クライアントデバイスから受信するようにさらに構成されている、請求項1に記載の装置。
  11. 前記1つ以上のステートメントのうちの所与の1つが、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたクエリ応答データの選択的に明示されたサブストリングを含む、請求項10に記載の装置。
  12. 前記1つ以上のステートメントのうちの所与の1つが、多段階構文解析プロトコルの利用を通じて、コンテキスト完全性を提供するように構成されており、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたクエリ応答データが、前記クライアントデバイスによって前処理されて、前記クライアントデバイスによって前記検証器デバイスに送信される前記所与のステートメントの生成と併せて、前記クライアントデバイスによって続いて解析される低減されたデータを生成する、請求項10に記載の装置。
  13. 前記三者ハンドシェイクプロトコルと併せて、前記クライアントデバイスおよび前記検証器デバイスが、前記サーバデバイスとの1つ以上の共有セッション鍵を合同で確立し、前記クライアントデバイスが、前記1つ以上の共有セッション鍵のうちの所与の1つの第1のシェアを有し、前記検証器デバイスが、前記所与の共有セッション鍵の第2のシェアを有し、前記サーバデバイスが、前記第1および第2のシェアを組み合わせる複合セッション鍵を有する、請求項1に記載の装置。
  14. 前記三者ハンドシェイクプロトコルと併せて、前記クライアントデバイスが、前記サーバデバイスから、前記検証器デバイスに対してアクセス可能でない暗号鍵を受信する、請求項1に記載の装置。
  15. 前記検証器デバイスおよび前記クライアントデバイスが、前記サーバデバイスとの前記セキュアなセッションの前記セッション鍵のそれらのそれぞれのシェアを使用して共同して、前記サーバデバイスが前記クライアントデバイスに前記データを送信することを要求するために、前記クライアントデバイスによって前記サーバデバイスに提供されるクエリを生成する、請求項1に記載の装置。
  16. 前記検証器デバイスおよび前記クライアントデバイスが、前記サーバデバイスとの前記セキュアなセッションの前記セッション鍵のそれらのそれぞれのシェアを使用して共同して、前記クエリに応答して、前記サーバデバイスによって前記クライアントデバイスに提供される応答を確証する、請求項15に記載の装置。
  17. 前記三者ハンドシェイクプロトコルと併せて、前記クライアントデバイスおよび前記検証器デバイスが、それぞれの証明器鍵および検証器鍵を確立する、請求項1に記載の装置。
  18. 前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することが、前記クライアントデバイスによって前記検証器デバイスに提供された証明を検証することを含み、前記証明が、(i)前記三者ハンドシェイクプロトコルと併せて、前記クライアントデバイスによって確立された前記証明器鍵、(ii)前記三者ハンドシェイクプロトコルと併せて、前記検証器デバイスによって確立された前記検証器鍵、および(iii)前記クライアントデバイスの秘密情報に少なくとも部分的に基づいて、前記クライアントデバイスによって生成される、請求項17に記載の装置。
  19. 前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することが、
    前記セキュアなセッションの少なくとも1つの暗号文の少なくとも一部分から導出されたデータを取得することと、
    前記クライアントデバイスによって、そのデータの少なくとも1つの特徴付けの正確性を検証することと、を含む、請求項1に記載の装置。
  20. 1つ以上のネットワークを介して、クライアントデバイスおよびサーバデバイスと通信するように構成された検証器デバイスによって実行される方法であって、
    前記クライアントデバイスおよび前記サーバデバイスとの三者ハンドシェイクプロトコルに参加することであって、前記検証器デバイスおよび前記クライアントデバイスが、前記サーバデバイスとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する、参加することと、
    前記クライアントデバイスから、前記サーバデバイスとの前記セキュアなセッションに関連するコミットメントを受信することと、
    前記コミットメントの受信に応答して、前記クライアントデバイスに対して以前はアクセス可能でなかった、前記セキュアなセッションに関連する追加の情報を前記クライアントデバイスに公開することと、
    前記コミットメントおよび前記追加の情報に少なくとも部分的に基づいて、前記セキュアなセッションの一部として、前記サーバデバイスから記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することと、を含み、
    前記方法を実行する前記検証器デバイスが、メモリに結合されたプロセッサを備える、方法。
  21. 前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することが、
    前記セキュアなセッションの少なくとも1つの暗号文の少なくとも一部分から導出されたデータを取得することと、
    前記クライアントデバイスによって、そのデータの少なくとも1つの特徴付けの正確性を検証することと、を含む、請求項20に記載の方法。
  22. 前記検証器デバイスが、前記クライアントデバイスと前記サーバデバイスとの間のインタラクションと併せて前記クライアントデバイスに対するプロキシとして動作するようにさらに構成されており、これにより、前記検証器デバイスが、前記プロキシとして動作する前記検証器デバイスを介した前記セキュアなセッションの一部として前記クライアントデバイスと前記サーバデバイスとの間で交換される暗号文を自動的に取得する、請求項20に記載の方法。
  23. 1つ以上のソフトウェアプログラムのプログラムコードを内部に記憶した非一時的プロセッサ可読記憶媒体を備えるコンピュータプログラム製品であって、前記プログラムコードが、1つ以上のネットワークを介して、クライアントデバイスおよびサーバデバイスと通信するように構成された検証器デバイスであって、メモリに結合されたプロセッサを含む検証器デバイスによって実行されると、前記検証器デバイスに、
    前記クライアントデバイスおよび前記サーバデバイスとの三者ハンドシェイクプロトコルに参加することであって、前記検証器デバイスおよび前記クライアントデバイスが、前記サーバデバイスとのセキュアなセッションのセッション鍵のそれぞれのシェアを取得する、参加することと、
    前記クライアントデバイスから、前記サーバデバイスとの前記セキュアなセッションに関連するコミットメントを受信することと、
    前記コミットメントの受信に応答して、前記クライアントデバイスに対して以前はアクセス可能でなかった、前記セキュアなセッションに関連する追加の情報を前記クライアントデバイスに公開することと、
    前記コミットメントおよび前記追加の情報に少なくとも部分的に基づいて、前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することと、を行わせる、コンピュータプログラム製品。
  24. 前記セキュアなセッションの一部として、前記サーバデバイスから前記クライアントデバイスによって取得されたデータの少なくとも1つの特徴付けの正確性を検証することが、
    前記セキュアなセッションの少なくとも1つの暗号文の少なくとも一部分から導出されたデータを取得することと、
    前記クライアントデバイスによって、そのデータの少なくとも1つの特徴付けの正確性を検証することと、を含む、請求項23に記載のコンピュータプログラム製品。
  25. 前記検証器デバイスが、前記クライアントデバイスと前記サーバデバイスとの間のインタラクションと併せて前記クライアントデバイスに対するプロキシとして動作するようにさらに構成されており、これにより、前記検証器デバイスが、前記プロキシとして動作する前記検証器デバイスを介した前記セキュアなセッションの一部として前記クライアントデバイスと前記サーバデバイスとの間で交換される暗号文を自動的に取得する、請求項23に記載のコンピュータプログラム製品。
JP2022513433A 2019-08-30 2020-08-28 トランスポート層セキュリティおよび他のコンテキストでのデータの検証のための非集中型技術 Pending JP2022546470A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962894052P 2019-08-30 2019-08-30
US62/894,052 2019-08-30
PCT/US2020/048344 WO2021041771A1 (en) 2019-08-30 2020-08-28 Decentralized techniques for verification of data in transport layer security and other contexts

Publications (1)

Publication Number Publication Date
JP2022546470A true JP2022546470A (ja) 2022-11-04

Family

ID=74686039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022513433A Pending JP2022546470A (ja) 2019-08-30 2020-08-28 トランスポート層セキュリティおよび他のコンテキストでのデータの検証のための非集中型技術

Country Status (6)

Country Link
EP (1) EP4022840A4 (ja)
JP (1) JP2022546470A (ja)
KR (1) KR20220069020A (ja)
CN (1) CN114946152A (ja)
AU (1) AU2020336124A1 (ja)
WO (1) WO2021041771A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022158677A (ja) * 2021-04-02 2022-10-17 株式会社野村総合研究所 マルチパーティ計算で行われるゼロ知識証明のための装置およびシステム
CN115271719A (zh) * 2021-12-08 2022-11-01 黄义宝 一种基于大数据的攻击防护方法及存储介质
KR102429325B1 (ko) * 2022-05-02 2022-08-04 에스엠테크놀러지(주) 병렬형 인증서 검증 시스템 및 그 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784463A (en) * 1996-12-04 1998-07-21 V-One Corporation Token distribution, registration, and dynamic configuration of user entitlement for an application level security system and method
US7962413B2 (en) * 1998-08-13 2011-06-14 International Business Machines Corporation End-user system of preventing unauthorized rerecording of multimedia content
US7197639B1 (en) * 1999-02-05 2007-03-27 Rsa Security Inc. Cryptographic countermeasures against connection depletion attacks
US8214635B2 (en) * 2006-11-28 2012-07-03 Cisco Technology, Inc. Transparent proxy of encrypted sessions
US10425386B2 (en) * 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10574692B2 (en) * 2016-05-30 2020-02-25 Christopher Nathan Tyrwhitt Drake Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements

Also Published As

Publication number Publication date
AU2020336124A1 (en) 2022-04-07
US20220377084A1 (en) 2022-11-24
EP4022840A1 (en) 2022-07-06
EP4022840A4 (en) 2023-09-20
KR20220069020A (ko) 2022-05-26
WO2021041771A1 (en) 2021-03-04
CN114946152A (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
Zhang et al. Deco: Liberating web data using decentralized oracles for tls
TWI831760B (zh) 用以基於證明驗證認證鏈外資料之系統及方法
CN110914851B (zh) 提高区块链网络与外部数据源之间的通信的完整性
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
CN109922077B (zh) 一种基于区块链的身份认证方法及其系统
US20220318907A1 (en) Systems and methods for generating secure, encrypted communications across distributed computer networks for authorizing use of cryptography-based digital repositories in order to perform blockchain operations in decentralized applications
US11212102B2 (en) System and method for an electronic identity brokerage
Cervesato et al. Breaking and fixing public-key Kerberos
US10979403B1 (en) Cryptographic configuration enforcement
US20120054491A1 (en) Re-authentication in client-server communications
JP2022546470A (ja) トランスポート層セキュリティおよび他のコンテキストでのデータの検証のための非集中型技術
CN111431713A (zh) 一种私钥存储方法、装置和相关设备
Velliangiri et al. An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography
US10963593B1 (en) Secure data storage using multiple factors
Mishra et al. An anonymous and secure biometric‐based enterprise digital rights management system for mobile environment
Chen et al. Data privacy in trigger-action systems
KR20120091618A (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
Homoliak et al. An air-gapped 2-factor authentication for smart-contract wallets
US11997107B2 (en) Decentralized techniques for verification of data in transport layer security and other contexts
US10608997B1 (en) Context-based data access control
US11831792B2 (en) Mutual authentication of computer systems over an insecure network
Diaz et al. On securing online registration protocols: Formal verification of a new proposal
Maram Protocols for Bootstrapping and Secure Management of Decentralized Identities
Balfanz et al. Fido uaf protocol specification v1. 0

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230824