要約

  • SPAKE は transcript に結び付けた鍵導出により、偽の KDC が一度の交換からパスワードをオフライン検証することを防ぐ。PA-SPAKE の提示だけでは、この検証完了を示さない。
  • 失敗後に暗号化タイムスタンプへ戻ると、盗聴者が入力値をオフライン攻撃できる場合がある。事前認証の成功も、アプリケーション権限の証明ではない。

新しい認証が失敗し、古い方式でログインだけは続いた。可用性の報告では「復旧」である。しかし RFC 9588 の境界では、その復旧が攻撃者に新しい証拠を渡すことがある。

SPAKE は、攻撃者が KDC を装ってパスワード候補をオフラインで確かめる経路を閉じる。ところが攻撃者はクライアントを暗号化タイムスタンプへ降格させられる。誤入力で SPAKE が失敗し、その値が旧方式に渡れば、受動的な観測者が後から試せる。誤字には正しい秘密の構造が残ることも多い。

安全なプロトコルが無効になったのではない。実行された経路が、その保証の外へ移動した。

広告と完了の間にあるもの

IANA は PA-SPAKE を事前認証タイプ 151 として登録する。KDC の対応通知、クライアントの群リスト、KDC の選択は交渉の記録であり、共有鍵の確認ではない。

初期メッセージにも限界がある。FAST がなければ factor リストは見え、応答を検証するまで完全性も確立しない。PA-SPAKE-HINT は transcript の外にあり、本交換を省略できない。

KDC が応答を復号し、必要な factor を検証し、双方が reply key を K'[0] に強化して初めて機構は完了する。KDC から最後の PA-SPAKE は来ない。KDC 自身の認証には暗号化された KDC 応答が引き続き必要だ。

フォールバックは脅威モデルを選ぶ

RFC 9588 は realm ごとに暗号化タイムスタンプを無効化できる設定を推奨する。SPAKE 対応率だけでは足りない。全クライアントが機能を表示しても、失敗処理が旧方式へ流せば、実効的な露出は残る。

オンライン推測も消えない。KDC は失敗を観測し、レート制限などを使う。成功した SPAKE だけを数える監視は、攻撃者が狙う降格、再試行、制限判断を落とす。

認証後にも別の判定が続く

成功は初期 reply key の知識と、実際に要求された factor の検証を示す。SF-NONE は第二要素なしを意味するので、SPAKE を一律に MFA と呼べない。

その後、KDC 応答の認証、サービスチケットの取得と提示、アプリケーション独自の認可が続く。Kerberos 要求が transcript に結び付いても、データベースの役割や資源の提供結果までは決まらない。

実装条件も証拠の一部である。群要素の検査、一様で再利用しないスカラー、既知の離散対数を持たない点、タイミング漏えいの抑制が必要だ。ステートレス KDC の PA-FX-COOKIE には機密性、完全性、短い再送窓、principal への束縛が要る。仕様は一般的な forward secrecy も約束していない。

情報源