PAKEプロトコルとその特性
OPAQUEやSPAKE2を含む、Password-Authenticated Key Exchangeプロトコルの系統を概観します。
「PAKEプロトコルとその特性」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
PAKEファミリー入門
Password Authenticated Key Exchange(PAKE)は、低エントロピーのパスワードだけを共有する2者が、相互認証を行いながら高エントロピーのセッション鍵を確立できるプロトコル群です。従来のパスワード認証とは異なり、PAKEはパスワードを送信せずに前方秘匿性とオフライン辞書攻撃への耐性を提供します。
Balanced PAKEとAugmented PAKE
Balanced PAKE(B-PAKE)では、双方を対称に扱います。クライアントとサーバーの両方が、同じ秘密情報(パスワード、またはパスワードから変換した対称な値)を保持します。Augmented PAKE(A-PAKE)は非対称で、サーバーが保持するのはパスワードから導出された公開検証値だけです。そのため、サーバーが侵害されてもクライアントのセキュリティに致命的な影響は及びません。
SPEKEプロトコル
Simple Password Exponential Key Exchange(SPEKE)は、パスワードからグループ生成元 g = H(password)を定義し、双方がそれを使用するBalanced PAKEです。続く交換では、このパスワードから導出された生成元を使ってDiffie-Hellman鍵交換を行うため、パスワードを知っている当事者だけが交換を完了できます。
J-PAKEプロトコル
Password Authenticated Key Exchange by Juggling(J-PAKE、RFC 8236)は、ゼロ知識証明を使い、共有パスワードから2者がセッション鍵を確立できるようにします。J-PAKEはThread(IoTネットワークプロトコル)で使用されており、OpenSSLにも実装されています。特許の制約がなく、Balanced PAKEの特性を提供します。
OPAQUE:非対称PAKE
OPAQUE(IETFドラフト draft-irtf-cfrg-opaque)は、強力なセキュリティ特性を持つAugmented PAKEです。登録時、クライアントはoblivious PRF(OPRF)を使ってパスワードから鍵を導出しますが、サーバーがパスワードを知ることはありません。サーバーは、クライアントの秘密鍵を含む暗号化エンベロープを保存します。
OPAQUEのログインフェーズ
OPAQUEのログイン時には、クライアントとサーバーがOPRFプロトコルを実行し、サーバーがパスワードを知ることなくクライアントの鍵を再構成します。次にクライアントはこの鍵を使ってエンベロープを復号し、鍵交換を完了するための認証情報を取得します。どの段階でも、サーバーがパスワードを目にすることはありません。
OPAQUEの事前計算攻撃への耐性
OPAQUEは事前計算攻撃への耐性を提供します。攻撃者がサーバーを侵害して保存データをすべて入手しても、推測するたびに新たなOPRFインタラクションをシミュレートしない限り、保存された値に対してオフライン辞書攻撃を実行できません。これはSRPよりも強力な保証です。
SPAKE2とSPAKE2+
SPAKE2(RFC 9382)は、パスワードで秘匿化した公開鍵を使う、Diffie-Hellmanベースの単純なBalanced PAKEです。SPAKE2+はそのAugmented版で、サーバーはクライアント用とサーバー用に分けられた値を保存します。AppleはHomeKitでデバイスのペアリングにSPAKE2+を使用しており、複数のIoTデバイスの初期設定プロトコルでも使われています。
CPace PAKE
CPace(RFC 9380のコンポーネント)は、HaaseとLabriqueが設計した合成可能なPAKEで、IETFの標準Balanced PAKEとして採用されています。CPaceは、後続の鍵確認手順と組み合わせて使えるように設計されており、Balanced PAKEを必要とする新しいプロトコルでの使用が推奨されています。これは、A-PAKEとしてのOPAQUEと並ぶ、CFRGが選定したB-PAKEです。
PAKEのセキュリティ特性の比較
すべてのPAKEは、認証と鍵確立を提供します。A-PAKEはさらに、サーバー侵害への耐性も提供します。OPAQUEは、サーバー侵害への耐性に加えて、事前計算攻撃への耐性も提供します。FIDO2はオリジンへの結び付きを提供し、フィッシングを防止します。選択は、パスワードベースの認証が必要か、それとも公開鍵認証情報に置き換えられるかによって決まります。
PAKEの導入に関する考慮事項
PAKEプロトコルは、単純なパスワードハッシュよりも正しく実装するのが難しいため、監査済みのライブラリを利用する必要があります。IETF CFRGは、CPace(B-PAKE)とOPAQUE(A-PAKE)を新しいプロトコルに推奨される選択肢として標準化しています。SRPは既存の導入環境で引き続き使用されていますが、新しい設計ではOPAQUEが推奨されます。
PAKEの特性チェック
Augmented PAKE(A-PAKE)とBalanced PAKE(B-PAKE)を区別するPAKEの特性はどれですか?
レッスンのまとめ:PAKEプロトコルの全体像
PAKEプロトコルは、パスワードベースの相互認証と鍵確立を可能にします。B-PAKE(CPace、SPAKE2、J-PAKE)は対称型です。A-PAKE(SRP、OPAQUE、SPAKE2+)は、サーバー側に検証値だけを保存します。OPAQUEは、事前計算攻撃への耐性を含む、最も強力な保証を提供します。IETFは、CPaceとOPAQUEを現代的に推奨される選択肢として標準化しています。
よくある質問
「PAKEプロトコルとその特性」レッスンは無料ですか?
はい。「PAKEプロトコルとその特性」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「PAKEプロトコルとその特性」で何を学びますか?
OPAQUEやSPAKE2を含む、Password-Authenticated Key Exchangeプロトコルの系統を概観します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「PAKEプロトコルとその特性」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。