簡易検証方法
必要環境
この検証プロセスは Linux または macOS システムでのみ動作します。以下のツールが最新版でローカルにインストール・設定されている必要があります:- Docker
- git
- make
PCR0 の特定
このページにブラウザまたは curl でアクセスしてください:https://waas.sequence.app/status。 後で使用するために、ver
と pcr0
の値を控えておいてください。
出力例は次のようになります:
チェックサムはファイルの整合性を検証するため、実行ごとに異なる場合があります。一方、同じコードに対する PCR0 は常に一定であることが、上記の例からも分かります。
出力例は次のようになります:
エンクレーブファイルのビルド
- リポジトリをローカルにクローンし、前のステップで取得した
ver
の値をv1.1.1
の部分に置き換えてください:
- 次のコマンドを実行します。バージョンは先ほどと同様に置き換えてください:
- コマンドの出力と、先ほど控えた 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
ヘッダーが含まれる場合もあり、その値が署名されアテステーションドキュメントに含まれます。
例えば、次のようにしてアテステーションドキュメントを取得できます: