メインコンテンツまでスキップ

2.21. Error Handling (エラー処理)

2.21. Error Handling (エラー処理)​

IKE 処理中に多様なエラーが起こり得る. 一般規則は, 形式が悪いかポリシー上受け入れられない要求 (一致する暗号アルゴリズムがないなど) を受け取った場合, 応答にエラーを示す Notify ペイロードを含めることである. その応答を送るかは認証済み IKE SA があるかによる.

応答パケットの解析または処理エラーでは, 応答が新しい要求を生成すべきでないため (新しい要求がエラーを返す唯一の手段となる), 一般にエラーを返さない. それでも受信者は IKE 状態をクリーンアップすべきである (悪い SA に Delete を送るなど).

認証失敗 (AUTHENTICATION_FAILED と EAP 失敗) と形式不正メッセージ (INVALID_SYNTAX) のみが, Delete ペイロードを伴う明示的 INFORMATIONAL 交換なしに IKE SA 削除につながる. 他のエラー条件はポリシーによりそのような交換が必要な場合がある. 交換が EAP Failure で終了した場合, AUTHENTICATION_FAILED 通知は送らない.

2.21.1. Error Handling in IKE_SA_INIT (IKE_SA_INIT のエラー処理)​

暗号保護 IKE SA 確立前のエラーは非常に注意深く扱う必要がある. ピアの診断を助けるため応答したいことと, 偽造メッセージに基づく DoS の一部になりたくないことのトレードオフである.

IKE_SA_INIT 交換では, 任意のエラー通知が交換を失敗させる. COOKIE, INVALID_KE_PAYLOAD, INVALID_MAJOR_VERSION など一部は後続の成功交換につながり得る. すべてのエラー通知は完全に未認証のため, 受信者は諦める前にしばらく再試行を続けるべきである. 本仕様で定義された是正措置 (COOKIE など) がない限り, エラー通知だけを根拠に即座に行動すべきでない.

2.21.2. Error Handling in IKE_AUTH (IKE_AUTH のエラー処理)​

IKE_AUTH 交換で認証が失敗するあらゆる理由のエラー (共有秘密が無効, ID が無効, 信頼できない CA, 失効または期限切れ証明書など) は AUTHENTICATION_FAILED 通知となるべきである. レスポンダ側のエラーなら保護された応答に含め, 通常その応答の唯一のペイロードである. IKE_AUTH は暗号化・完全性保護されているが, まだ相手を認証していないピアは情報を慎重に扱う必要がある.

イニシエータ側のエラーなら, 通常他ペイロードのない別 INFORMATIONAL 交換で返してよい. これは応答のエラーで新交換を始めないという一般規則の例外である.

ただし, サポートされないクリティカルペイロードを含む要求, または全体が形式不正 (ペイロード内容だけが悪いのではない) の場合は全体を拒否し, UNSUPPORTED_CRITICAL_PAYLOAD または INVALID_SYNTAX 通知のみを応答として送らなければならない. この場合受信者は認証関連ペイロードを検証すべきでない.

IKE_AUTH で認証に成功すれば IKE SA は確立するが, Child SA 確立や設定情報要求はまだ失敗し得る. その失敗が自動的に IKE SA 削除を意味しない. 具体的にレスポンダは認証関連 (IDr, CERT, AUTH) をすべて含めつつ, 付随交換に FAILED_CP_REQUIRED, NO_PROPOSAL_CHOSEN などのエラー通知を送ってもよく, イニシエータはこれだけで認証失敗としてはならない. ポリシーにより後で IKE SA を削除してもよい.

IKE_AUTH 交換または直後の INFORMATIONAL (IKE_AUTH 応答処理中のエラー時) では, UNSUPPORTED_CRITICAL_PAYLOAD, INVALID_SYNTAX, AUTHENTICATION_FAILED のみが Delete ペイロードなしで IKE SA を削除または未作成にする. 拡張文書は同じ意味の新通知を定義してもよいが, Vendor ID などでピアが理解すると示されるまで用いてはならない.

2.21.3. Error Handling after IKE SA is Authenticated (IKE SA 認証後のエラー処理)​

IKE SA 認証後, エラーのあるすべての要求は相手にエラーを通知する応答を生じなければならない.

通常, 一方の有効な応答が相手側でエラーになる状況はないはずなので, 応答以外でエラーメッセージを送る理由はないはずである. そのようなエラーを INFORMATIONAL で送るとさらなるエラーとループの原因になり得るため, 送るべきではない. ピア間で状態が一致しないエラーが見えたら, IKE SA を削除してやり直すのがよい場合がある.

要求を解析するピアが (MAC チェックとウィンドウチェック後に) 形式不正と判断し INVALID_SYNTAX を返した場合, その通知は両ピアで致命的とみなされ, 明示 Delete なしで IKE SA が削除される.

2.21.4. Error Handling Outside IKE SA (IKE SA 外のエラー処理)​

ノードは未保護メッセージへの応答送信レートを制限しなければならない.

UDP 500 または 4500 で, 既知の IKE SA の文脈外 (IKE SA 開始要求でもない) メッセージを受け取った場合, 最近クラッシュした結果かもしれない. 応答としてマークされていれば監査してよいが応答してはならない. 要求としてマークされていれば監査し, 応答を送ってもよい. 応答する場合, 同一 IKE SPI と Message ID をコピーし, 送信元 IP アドレスとポートへ送らなければならない. 応答は暗号保護してはならず INVALID_IKE_SPI Notify を含めなければならない. INVALID_IKE_SPI は認識されない目的 SPI の IKE メッセージを受け取ったことを示し, 通常は受信者が再起動して IKE SA を忘れたことを意味する.

そのような未保護 Notify を受け取ったピアは応答してはならず, 既存 SA の状態を変えてはならない. 偽造か, 正当な相手が騙されて送った応答かもしれない. ノードはそのようなメッセージ (および ICMP destination unreachable など) をその IP の SA に問題があるヒントとして扱い, 該当 IKE SA で生存確認を開始すべきである. 実装は DoS に巻き込まれないようテスト頻度を制限すべきである.

IKE 要求の文脈外のエラー (存在しない SPI で ESP を受信するなど) では, 問題を述べる Notify を含む INFORMATIONAL を開始すべきである.

IKE SA を持つ IP (NAT 使用時はポート) から疑わしいメッセージを受け取ったノードは, その SA 上の IKE INFORMATIONAL で IKE Notify を送るべきである. 受信者は SA 状態を変えてはならないが, 障害診断のため監査してもよい.