エンクレーブ検証
WaaS エンクレーブのセキュリティは、検証済みエンクレーブによるコード整合性の検証に依存しています。
WaaS エンクレーブのセキュリティは、コードの整合性検証に基づいています。
リスク許容度や技術リソースに応じて、稼働中のエンクレーブに対して2つの検証方法から選択できます。
簡易検証方法
必要環境
この検証プロセスは Linux または macOS システムでのみ動作します。以下のツールが最新版でローカルにインストール・設定されている必要があります:
- Docker
- git
- make
PCR0 の特定
このページにブラウザまたは curl でアクセスしてください:https://waas.sequence.app/status。
後で使用するために、ver
と pcr0
の値を控えておいてください。
出力例は次のようになります:
チェックサムはファイルの整合性を検証するため、実行ごとに異なる場合があります。一方、同じコードに対する PCR0 は常に一定であることが、上記の例からも分かります。
出力例は次のようになります:
エンクレーブファイルのビルド
- リポジトリをローカルにクローンし、前のステップで取得した
ver
の値をv1.1.1
の部分に置き換えてください:
- 次のコマンドを実行します。バージョンは先ほどと同様に置き換えてください:
- コマンドの出力と、先ほど控えた PCR0 の値を比較してください。例:
チェックサムはファイルの整合性確認用のため、実行ごとに異なる場合があります。ただし、同じコードに対する PCR0 は常に同じ値になります。これは上記の例でも確認できます。
複雑な検証方法
簡易的な方法では、作成したエンクレーブファイルの PCR0 を「稼働中」のエンクレーブと比較しますが、これは完全な証明にはなりません。2つの値を比較するだけでは十分な証拠にならず、エンクレーブが改ざんされている可能性も否定できません。実際、各リリースの PCR0 値は公開されています(https://github.com/0xsequence/waas-authenticator/releases)。
ここで、暗号学的なアテステーションが必要となります。現時点では検証用ツールは公開していませんが、AWS のガイド(https://docs.aws.amazon.com/enclaves/latest/user/verify-root.html)を利用して検証できます。
すべてのエンクレーブリクエストはアテステーションドキュメントを返します。これは Base64 でエンコードされ、X-Attestation-Document
レスポンスヘッダーに含まれています。リクエストには X-Attestation-Nonce
ヘッダーが含まれる場合もあり、その値が署名されアテステーションドキュメントに含まれます。
例えば、次のようにしてアテステーションドキュメントを取得できます: