blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

LitentryにおけるプライバシーⅡ:TEEの説明


LitentryにおけるプライバシーⅡ:TEEの説明

Mel Zhou

Litentryの各リンクをフォローして最新情報を入手しましょう!

*前編はこちらでご覧いただけます。

Trusted Execution Environment(TEE)とは、メインのオペレーティングシステム(OS)から分離されたCPU上の安全な領域で、「エンクレーブ」とも呼ばれています。データを保護し、データの保存、処理、安全性を確保するために設計されているものです。

TEEは、悪意のある攻撃や不正アクセスに耐性のある、分離された暗号化電子構造によって保護されています。ハードウェアメーカーは、システム管理者やオペレーティングシステムでさえも、誰もTEE内のキーにアクセスできないこと、またはTEE内に格納されたメモリを読み取ることができないことを保証しています。このため、プライベートなトークン転送、プライベートなスマートコントラクト、プライベートなステートチャネルなど、機密性の高いタスクの実行に最適です。

TEEは、システムの他の部分から隔離されたCPU内のブラックボックスと考えることができます。ブラックボックスと同じように、TEE内のデータは外部からは見えず、保護されており、正しいキーを持つ人だけがアクセスできます。

TEEの安全性とは?

TEE内の計算は、外部からは全く見えません。

TEEは独自の暗号鍵を管理し、システム管理者やオペレーティングシステムでさえも、誰もその鍵にアクセスできず、そのメモリを読み取ることができないことが設計上保証されます。これによって、ブロックチェーンバリデータや他のユーザーとデータを共有することなく、あらゆる状態の更新を実行することができるのです。

このようにして、プライベートなトークン転送、プライベートなスマートコントラクト、プライベートな状態チャネルを最小限の計算努力で実現することができるのです。これらの特性により、完全な機密性と改ざん防止を備えたソフトウェアの実行が可能になります。

全てのTEEは、コードが真正かつ安全なTEE上で実行されていることを保証するリモートアテステーションを備えています。

ハードウェアメーカーは、TEEレポートを検証した後、自社の有名な証明書で署名します。この証明書により確認されます。

エンクレーブは、ハードウェアメーカーの本物のTEEであることが確認されます。インテル® SGX ハードウェアの製造は、CPUを識別するために一意のキーペアを生成できます。CPUは、その秘密鍵を使用してエンクレーブ証明書に署名し、証明書が CPUによって発行されたことを確認します。これにより、エンクレーブがインテル® SGX ハードウェア上で実行されていることが確認されます。

CPUのマイクロコードのバージョンは、ハードウェアのセキュリティレベルを示しています。バージョンを最新に保つことで、最新の既知のセキュリティ脆弱性に対するパッチを確実に適用することができます。また、このバージョンは、CPUのセキュリティレベルを測定するのに役立ちます。

エンクレーブに格納されている特定のソフトウェアの実行とデータは、コードが変更されていないことを確認し、初期状態が決定されます。さらに、TEEで実行される各プログラムには、ISV証明書の公開鍵のハッシュが含まれており、そのプログラムがISV(Independent Software Vendor)から発行されたものであることが保証されています。

TEEの計算入出力は暗号化される

ユーザはShielding Keyを設定し、キーを使ってTEEに送信するメッセージ/データを暗号化します。TEEは、ユーザーからのメッセージ/データを復号化できる公開「シールドキー」を有しています。シールドキーにより、ユーザーとTEEまたはブロックチェーンとの通信は機密性を保つことができます。

なぜインテル® SGXなのか?

TEEテクノロジーはハードウェアへの依存度が高いため、より高いセキュリティレベルを持つハードウェアを選択することが不可欠です。SGXサービスに関しては、信頼性の高いリモート認証サービスを提供するIntel SGXが優れた選択肢となります。Intel SGXが最初に提案されたのは2015年にさかのぼるため、最も早い時期のTEEの1つであることがわかります。さらに、AMD SEVやARM CCAなどの他のTEEと比較して、Intel SGXはより堅牢なツールチェーンとサポート資料を持っており、より優れた選択肢となっています。さらに、Intel SGXは、より高いセキュリティ保証と信頼性の高いパフォーマンスをユーザーに提供します。したがって、TEEテクノロジーに関して言えば、Intel SGXは確かに検討すべき素晴らしい選択肢です。

なぜIntergriTEEなのか?

TEEは外部から見えないため、セキュリティの面では大きなメリットがありますが、万が一ハードウェアが侵害された場合、TEEに保存されている全てのデータが完全に失われ、回復不可能になるというデメリットもあります。この問題を解決するために、IntergriTEEは、レイヤー2TEEサイドチェーンとオラクルを開発しました。

このサイドチェーンによって、複数のTEEワーカーで並行して計算を実行し、複数のTEEの情報の同期と計算を可能にします。これにより、万が一、1つのTEEが侵害されたとしても、サイドチェーンの機能に悪影響が及ぶことはありません。さらに、複数のTEEで計算を分担するため、サイドチェーン内に保存されるデータの安全性は、単一のTEEに保存される場合よりもはるかに高くなります。

ゼロ知識証明ではなくなぜTEEなのか?

Zero-knowledge Proof (ZKP)は、基礎となるデータを明らかにすることなく、情報の安全な伝送や相互作用を可能にする技術として、近年注目されています。しかし、2つの技術の設計の複雑さ、拡張性、成熟度を考慮した結果、最終的にはZKPよりもTEEの方が優れたソリューションと言えます:

  • ZKPは情報の送信や相互作用を管理するだけで、情報の抽出・問合せ、保存、計算の保護は行いません。これに対し、TEEはデータのワークフロー全体にわたり、より包括的な保護を提供します。
  • ZKPシステムの設計は、TEEシステムよりもはるかに複雑であるため、開発者には多項式コミットメント設計など、より専門的な職業が必要とされる。つまり、ZKPシステムを扱う際には、TEEシステムに比べて、より高度な専門知識が開発者に要求されるのです。
  • ZKPは、幅広い問題に対応できるほどの拡張性はなく、通常、1つか2つの一般的な問題に対してのみ開発されます。これに対してTEEは、内部で実行するビジネスロジックを自由に指定でき、Intel SGXが7年ほど前から使用されている成熟したソリューションです。ZKPが多くのビジネスケースで十分なパフォーマンスを発揮できるようになるには、長い時間がかかると思われます。

結論として、TEEはデータの保存と処理に安全で信頼性の高い方法を提供し、Intel SGXはその技術の中で最も成熟した先進的な実装と言えます。IntergriTEEのサイドチェーンテクノロジーは、複数のTEEノードで計算を実行できるため、1つのTEEの故障がデータ損失につながらないように、セキュリティのレイヤーを追加することができます。ゼロ知識証明は、情報を安全に伝送する方法を提供しますが、設計が複雑で、TEEシステムほどスケーラブルで成熟していないため、すべてのユースケースに適しているわけではありません。

この記事は、Adegoke氏、Eric Zhang氏、Kailai Wang氏の協力のもと、作成されました。

Litentryのプライバシーソリューションにご興味のある方は、こちらの記事もご覧ください。

次回は、Litentry ParachainにおけるTEEの実装と、それがどのようにデータ保護とプライバシーを促進するのかを探ります。


Litentryについて

Litentryは、複数のネットワークにまたがるユーザーIDの連携を可能にする分散型IDアグリゲーターです。DIDインデックスプロトコルとSubstrateが構築した、分散型DID検証ブロックチェーンを特徴とします。分散型で相互運用可能なIDアグリゲーションサービスを提供し、DIDメカニズムの複雑さを軽減して利便性を向上させます。Litentryは、ユーザーが自身のIDを管理し、使用するdAppsが、異なるブロックチェーン間でユーザーのDIDデータをリアルタイムに取得するための安全な手段を提供します。

Litentryの各リンクをフォローして最新情報を入手しましょう!