ScalarDL 認証ガイド
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDL の認証メカニズムとその適切な使用方法について説明します。
ScalarDL での認証
認証は ScalarDL の重要な役割の1つであり、プロトコルを期待どおりに動作させることができます。 ScalarDL は、次の3つの状況で認証を使用します。
- クライアント認証(Ledger と Auditor 用)
- Ledger と Auditor は、クライアントからのリクエストに添付されたクライアント生成の署名を使用してクライアントを認証します。
- Ledger 認証(Auditor 用)
- Auditor は、アセットプルーフに添付された Ledger 生成の署名を使用して Ledger を認証します。
- Auditor 認証(Ledger 用)
- Ledger は、クライアントのリクエストに添付された Auditor が生成した署名を使用して Auditor を認証します。
Ledger 認証と Auditor 認証は Auditor モードでのみ使用されることに注意してください。Auditor の詳細については、ScalarDL Ledger と Auditor を介して ScalarDL アプリケーションを実行するおよび ScalarDL の実装を参照してください。
また、ここでは認証に使用されるバイト配列を指定するために signature という用語を使用していることに注意してください。
認証方法
ScalarDL は、電子署名と HMAC という2つの認証方法をサポートしています。 以下に説明するように、これらの方法には両方とも長所と短所がありますが、どちらの方法でもビザンチン故障検出機能が犠牲になることはありません。
電子署名
- 利点
- クライアントのリクエスト、アセットレコード、およびアセットプルーフには否認防止特性があります。具体的には、クライアントのリクエストに添付された電子署名は、そのリクエストが生成する対応するアセットレコードとともに保存されるため、クライアントのリクエストと対応するレコードには否認防止の特性が備わります。つまり、リクエストに署名した秘密鍵の所有者がレコードを作成したことを保証できます。さらに、実行の結果としてクライアントに返されるアセットプルーフに添付された電子署名により、Ledger と Auditor がそれぞれ証明を作成したことが保証されます。クライアント(アプリケーション)がプルーフを保持しておけば、クライアントは必要に応じてプルーフを使用して結果を検証できます。
- 短所
- 電子署名は非常に遅いです。上記の利点と引き換えに、無視できないパフォーマンスのオーバーヘッドが追加されます。
HMAC
- 利点
- HMAC は電子署名よりもはるかに高速です。
- 短所
- クライアントのリクエスト、アセットレコード、およびアセットプルーフには否認防止特性がありません。