Upgrade to Pro — share decks privately, control downloads, hide ads and more …

(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール

1dfa2bb34977b1db41d0d46d4505183f?s=47 Osuke
January 21, 2021

(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール

1dfa2bb34977b1db41d0d46d4505183f?s=128

Osuke

January 21, 2021
Tweet

Transcript

  1. 1 ◎須藤欧佑, 恩田壮恭, 中村龍矢 株式会社LayerX

  2. 2 アジェンダ 1. 背景:状態遷移の秘匿性と透明性の両立 2. Anonifyプロトコルの概要 3. Anonifyのプロセス

  3. 3

  4. 4 データの秘匿性と透明性の両立 • データの秘匿性(プライバシー保護) ◦ パーソナルデータや業務データなど機密性の高いデータを処理するシステム自体 もそのようなデータに直接アクセスできないように秘匿化 • データの透明性(利活用) ◦

    そのデータに基づいた計算処理がされ、かつ利用者にとって意図した処理がされ ていることを検証可能に • 具体事例: インターネット投票 ◦ 投票内容と投票者の紐付けが運営者含めできてはならない ◦ 集計までの一連のプロセスが正しく処理されたことを投票者が検証可能
  5. 5 Trusted Execution Environment (TEE) の活用 特定のアプリケーションが他のソフトウェア(システムソフトウェア含め)から隔離保護さ れた領域 (Enclave)で実行されることをハードウェアレベルで保証するCPUのセキュリティ 機能

    特徴 • 一般の開発者がEnclaveの アプリケーションを実装可能 • 汎用CPU上で処理されるので高速 • Remote Attestationによる完全性 例 Intel SGX, OP-TEE (TrustZone), AMD SEV
  6. 6 Blockchainの活用 • 複数主体間で状態遷移命令を共有するストレージレイヤとして利用 • 状態遷移の自動検証・改ざん耐性・トランザクションの順序保証・ファイナリティ検 証

  7. 7

  8. 8 提案プロトコル:Anonify

  9. 9 Anonifyで満たすべきセキュリティプロパティ • Confidentiality ◦ 状態データは認証・認可されたユーザのみアクセスできる • Correct Execution ◦

    ブロックチェーンに記録されたトランザクションに基づき、各ノードで事前に合意された ルールに沿って状態遷移が実行される • Consistency ◦ ブロックチェーンに記録されたトランザクション列に基づき、各TEEノードにおいて同じ状態 データが最終的に記録される • Liveness ◦ ユーザはシステムが稼働している任意のタイミングで命令を実行でき、実行が完了したこと を検証できる • Data Recoverability ◦ TEEノードに記録されている状態データが全て消失しても、ブロックチェーンから全ての状態 データを復元できる
  10. 10 Anonifyで満たすべきセキュリティプロパティ • Confidentiality ◦ 状態データは認証・認可されたユーザのみアクセスできる • ◦ • Consistency

    ◦ ブロックチェーンに記録されたトランザクション列に基づき、各TEEノードにおいて同じ状態 データが最終的に記録される • Liveness ◦ ユーザはシステムが稼働している任意のタイミングで命令を実行でき、実行が完了したこと を検証できる • Data Recoverability ◦ TEEノードに記録されている状態データが全て消失しても、ブロックチェーンから全ての状態 データを復元できる
  11. 11

  12. 12 Anonifyにおけるフェーズ • セットアップフェーズ ◦ 参加するTEEノードが正しいバイナリを実行していることをRemote Attestation により証明(Correct Execution) ◦

    暗号化や署名に用いる一連の鍵をセットアップ • 状態遷移フェーズ ◦ 暗号化された状態遷移の命令がブロックチェーンに記録され、そのトランザク ション列に基づきTEEノードで状態遷移する • 鍵ローテーションフェーズ ◦ TEEノード間で共有しているグループ鍵(命令の暗号化に利用)をローテーショ ンするフェーズ
  13. 13 Anonifyにおけるフェーズ • セットアップフェーズ ◦ ◦ 暗号化や署名に用いる一連の鍵をセットアップ • 状態遷移フェーズ ◦

    暗号化された状態遷移の命令がブロックチェーンに記録され、そのトランザク ション列に基づきTEEノードで状態遷移する • 鍵ローテーションフェーズ ◦ TEEノード間で共有しているグループ鍵(命令の暗号化に利用)をローテーション するフェーズ
  14. 14 Remote Attestationに基づくセットアップの概要 • Attestation Serviceの公開鍵をスマートコントラクトに事前に登録 • Quote:SGXが生成するMRENCLAVEを含む構造体 ◦ MRENCLAVE:Enclave内実行バイナリや実行環境に依存したハッシュ値

    • オンチェーンで ◦ REPORTの署名を検証することでREPORTが改ざんされていないことを保証 ◦ MRENCLAVEが一致することの保証
  15. 15 Remote Attestationに基づくセットアップの概要 • QUOTEにEnclaveで生成した署名検証鍵・暗号鍵も含める • 状態遷移時は対応する署名鍵でトランザクションに署名し、オンチェーンで検証する ことでCorrect Executionを保証

  16. 16 Anonifyにおけるフェーズ • セットアップフェーズ ◦ 参加するTEEノードが正しいバイナリを実行していることをRemote Attestation により証明(Correct Execution) ◦

    暗号化や署名に用いる一連の鍵をセットアップ • ◦ • 鍵ローテーションフェーズ ◦ TEEノード間で共有しているグループ鍵(命令の暗号化に利用)をローテーション するフェーズ
  17. 17 状態遷移フェーズ ※ Consistencyを満たすための イベント検証と順序保証は省略

  18. 18 送金アプリケーション実験結果 • ソースコード:https://github.com/LayerXcom/anonify • Rust SGX SDKを利用 • Microsoft

    Azure で SGX が動作可能な VM 環境 Standard DC1s v2 (1 コア Intel XEON E-2288G 3.70 GHz CPU, 4GB RAM, Ubuntu 18.04.4 LTS) を用いて実施 • Ethereumのトークン規格であるERC20を 状態遷移ロジックとして実装し、 トランザクション生成に要する時間を測定
  19. 19 まとめ • 状態遷移を秘匿化しつつ、その検証可能性も保証するAnonifyの提案 ◦ TEEにより状態遷移を秘匿化 ◦ TEEのRemote Attestationにより完全性の保証 ◦

    ブロックチェーンにより複数ノード間でトランザクションの順序保証・状態デー タの改ざん耐性・ファイナリティ検証を可能に
  20. 20

  21. 21 REPORTのデータ構造

  22. 22 グループ鍵のセットアップ

  23. 23 グループ鍵セキュリティプロパティ

  24. 24 TreeKEM

  25. 25 TEE4が新たにグループに参加するセットアップ