要約

  • RFC 5296 は再認証を一往復に短縮するが、ER サーバーの受理、ピアによる Finish 検証、AAA の rMSK 配送、認証装置の設置、TSK 確立は独立した状態遷移である。
  • 監査証跡は SEQ の消費から最終アクセスまでを主体別に結び、秘密そのものを残さずにどこで処理が止まったかを示す必要がある。

短い交換ほど境界が見えにくい

ERP は新しい認証装置へ移る際、EAP メソッド全体の再実行を避ける。ピアが EAP-Initiate/Re-auth を送り、ER サーバーが EAP-Finish/Re-auth を返す。ホームまたは訪問先のサーバーを使える。

一往復でも、認証装置は中継し、サーバーは rIK の所持と鮮度を判定し、AAA は認証装置固有の rMSK を運び、ピアは同じ rMSK を導出する。その後に下位層が TSK を作り、パケットの通行を制御する。

速いことは、これらが一つのコミットになることを意味しない。

SEQ の受理はサーバーのコミットである

Initiate は 16 ビット SEQ、単一の keyName-NAI、暗号スイート、認証タグを持つ。新しい rRK では SEQ がゼロへ戻る。サーバーは期待値または未使用の許容窓に入るかを調べ、スイートと完全性を検証する。

受理すると rRK と SEQ から rMSK を導出する。Finish は同じ SEQ を返し、サーバーは次の期待値またはリプレイ窓を更新する。応答や AAA が後で失われても、その状態更新が自動的に巻き戻るとは限らない。

記録には受理前後の状態、窓、使用済み判定、ポリシー版と時刻が要る。正しいパケットだけでは永続状態を証明できない。

Identifier は再送と新規を分ける

再送時の EAP Identifier は同じで、新しい Initiate は別の値を使う。Finish は待機中 Initiate の Identifier と一致しなければ破棄される。

Identifier は未完了交換を対応付け、SEQ はリプレイを防ぎ rMSK 導出に入る。両者を一つの要求番号へ正規化すると、再送を二回の許可として数えたり、新規処理を古い再送として扱ったりする。

認証装置が 300 秒後に ERP 状態を消す推奨も、サーバーやピアの状態が同時に消える証拠ではない。

Finish はサーバーとピアの事実を確定する

ピアは keyName-NAI と SEQ の期待状態を調べ、Finish の完全性を検証し、rMSK を導出する。この時点で下位層関連付けプロトコルが「起動可能」になる。

したがって Finish は AAA 配送の完了通知ではない。認証装置が同じ世代を設置したこと、TSK 交換が終わったこと、アクセス制御が有効になったことも示さない。

Finish 作成・検証、AAA 送受信、設置確認、下位層開始・完了、アクセス判定は別イベントとして保存する。

rMSK の宛先は一台である

rMSK は固定ラベル、SEQ、長さから導出され、MSK と同じ目的で認証装置に使われる。一つの rMSK を複数認証装置で共有してはならず、寿命は rRK を超えない。

新 rRK 以後の rMSK は新しい根から作るが、配布済みの古い rMSK は期限まで使える。新根の生成は旧鍵の廃止証明ではない。

bootstrap では、以前の MSK で TSK が成立済みなら下位層が新 rMSK を無視する場合も、新しい TSK を作る場合もある。受信と採用は明確に異なる。

同時実行では次の値が窓になる

ピアは複数の認証装置を通じて同じ ER サーバーへ同時に ERP を実行でき、到着順は入れ替わる。サーバーは許容窓内の未使用 SEQ を受け入れられ、その管理はローカル実装に委ねられる。

証跡には窓の上下限と世代、使用済み集合、経由した認証装置、ポリシー版が必要だ。SEQ だけでは正当な順序入替と再送攻撃を区別できない。

窓幅の変更は鍵を変えずに受理範囲を変えるため、監視対象になる。

検証不能な失敗には二つの原因が残る

失敗時、サーバーは失敗 Finish を返す。有効な rIK があれば保護し、拒否した暗号スイートの代替候補を示せる。PRF が変わる候補を使うなら必要な根と rIK も再導出する。

リプレイまたは完全性検証に失敗した応答は攻撃者の偽造かもしれないが、共通スイートがない可能性もある。ピアは判断できないため、再送手順を続けてから失敗とする。

検証不能は攻撃確定ではない。運用上の分類にもこの不確実性を残す。

後継仕様は現在の所持を要求した

RFC 6696 は後方互換のまま RFC 5296 を置き換え、暗黙 bootstrap で認証装置またはローカル ER サーバーが有効な根材料を現在所持するか確認するよう明確化した。古いコンテキストを名前で発見しただけでは足りない。

現在所持は応答資格であり、最終結果ではない。根世代を SEQ、rMSK、宛先、下位層結果まで連結する必要がある。

一往復を分解する台帳

rRK 世代と期限、keyName-NAI とドメイン、Identifier、SEQ、窓と使用済み状態、スイート、Initiate 検証、サーバー受理と状態遷移、rMSK 世代と一認証装置への束縛、Finish、AAA 宛先、受信と設置、ピア検証、TSK で選ばれた鍵、下位層結果、アクセス結果、完全 EAP へのフォールバック、再送、チャネルバインディングを結ぶ。

秘密は保存しない。台帳は終了表示の後に残る未完了処理を見えるようにする。

Sources