TLSNotary
TLSはweb serverとuser間のprotocolであるが、notary(公証人)を置くことでweb serverがどのような情報をuserに送ったか第三者がverify可能になる
応用
銀行口座の残高証明
SNSアカウントの所有証明
http oracle
etc..
概要
TLSを使用して暗号化された通信セッションの監査と証明を可能にする。
主な目的は、第三者(Notaryと呼ばれる)がウェブサーバーとクライアント間の暗号化されたセッションの内容を検証できるようにすることにある
その過程でMPCとzkpを用いてセッションの機密性を保持する
仕組み
TLSNotaryの動作原理は、TLSセッションの確立フェーズで特定の鍵材料をセッションの完全性や機密性を侵害しないようにNotaryと共有することに基づいている、
Notaryはこの鍵材料を使用して特定のTLSセッションからのデータが改ざんされていないことを検証できるが、その内容を解読することはできない。
ここでは、ユーザー(Prover)がサーバー(Server)と通信を行う際に、第三者(Verifier)へデータを与えることを想定する。
MPCに参加することで、VerifierはProverがServerから受信したデータの真正性を検証できる。
https://scrapbox.io/files/65b77dcd2391620024badc3c.png
TLSNotaryプロトコルは、ProverがVerifierに対してデータの任意の部分の真正性を選択的に証明することを可能にする。
この選択的開示フェーズでは、ProverはVerifierと共有する前に、データから機密情報を削除することができる。
この機能をゼロ知識証明と組み合わせて提供することで、データそのものを明らかにすることなく、冗長化されたデータの特性を証明することができる。
Verifierは、受け取ったproofを検証する。
信頼できる認証局(CA)を通してサーバー証明書を検査することで、データ の出所を検証できる。
Verifierは、トランスクリプトの非削除コンテンツについてアサーションを行うことが できる。
より具体的にはNotary(オラクル)を導入することで実現されている。
user側の公開鍵をnotaryからのものにすり替えてTLSを実行する
https://scrapbox.io/files/65b77e499a75b400244a81c5.png
TLS トラフィックの検証は TLS セッションの平文についてもサーバーについても何も明らかにしないので、MPC-TLS の検証①を汎用の TLS verifier(Notary)に委託することが可能である。
この公証人は②のデータに署名(notarize)することができる。Proverはこの署名されたデータを、アプリケーション固有のVerifierに③のセクションを選択的に開示し、Verifierはデータ④を検証する。
このセットアップでは、公証人がデータとサーバーのアイデンティティに対するコミットメントに暗号的に署名する。プローバはこの署名済みデータを保存したり、再編集したり、任意のベリファイアと共有したりすることができる。
検証者は、公証人を信頼する場合にのみ、署名付きデータを受け入れる。データ検証者は、検証者と公証人の癒着を排除するために、複数の公証人から署名されたデータを要求することもできます。
TLS1.3には未対応だし、選択的開示も現在はサポートされていないようなので、機密性は限定的?
https://scrapbox.io/files/65bf1d0208ffb600250ca28e.png
MPCにより、AliceとBobはTLS接続を共同で管理することができる。TLSNotaryを使うことで、AliceはBobに対してデータの任意の部分の真正性を選択的に証明することができる。BobはMPC-TLS通信に参加したので、データが本物であることが保証される
TLSNotaryプロトコルはサーバーにとって透過的である。サーバーから見ると、TLS接続は他の接続と同じように見えるので、TLSプロトコルに変更を加える必要はない。
https://scrapbox.io/files/65bf2abb55b75200250fcbf1.png
ciphertextに加えMACを作るために2PCでPMS key shareを作る
Encryption
https://scrapbox.io/files/65bf2d0ce3a7810025d92834.png
両パーティは出来上がった暗号文を見て、2PC MACプロトコルを実行し、暗号文のMACを計算する。
検証者は次に、暗号文とMACをサーバーに送信する。
Decryption
https://scrapbox.io/files/65bf2d556503a20024f062fe.png
verifierはNotaryを兼ねる?それともVerifierもNotaryもMPCの一部という意味?
参考文献
ycombinatorの掲示板
類似のスキーム?