2.4. State Synchronization and Connection Timeouts (状態同期と接続タイムアウト)
2.4. State Synchronization and Connection Timeouts (状態同期と接続タイムアウト)
IKE エンドポイントは, いつでも IKE SA と対応する Child SA 群に関連するすべての状態を忘れてもよい. これはエンドポイントのクラッシュと再起動時の想定動作である. 一方のエンドポイントが失敗または状態を再初期化したとき, 他方がそれを検知し, 破棄された SA 上でパケットを送り続けて帯域を浪費しブラックホールに落とさないことが重要である.
INITIAL_CONTACT 通知は, 認証されたアイデンティティ間で現在アクティブな IKE SA がこの SA のみであることを表明する. IKE SA がクラッシュ後に確立されたときに送ってもよく, 受信者はタイムアウトを待たずに同一認証アイデンティティへの他 IKE SA を削除する情報として使ってもよい. 複製されうるエンティティ (例: 2 台のリモートから同時に企業 FW に接続できるローミングユーザー資格情報) はこの通知を送ってはならない. INITIAL_CONTACT を送る場合, 最初の IKE_AUTH リクエストまたはレスポンスに含め, 後から別交換として送ってはならない. 受信者は他メッセージでは無視してもよい.
IKE はネットワークからの DoS 攻撃下でも動作するよう設計されているため, エンドポイントはルーティング情報 (例: ICMP) や暗号保護のない IKE メッセージ (例: 未知 SPI を訴える Notify) だけを根拠に他エンドポイントの失敗を結論してはならない. エンドポイントは, 繰り返しの連絡がタイムアウト期間応答なしとなったとき, または同一認証アイデンティティへの別 IKE SA で暗号保護された INITIAL_CONTACT を受信したときにのみ, 他エンドポイントの失敗と結論しなければならない. ルーティング情報で他端の失敗を疑う場合は, 生存確認のリクエストを開始すべきである. 相手の生存確認には, (すべての IKE リクエストと同様) 確認応答を要する空の INFORMATIONAL リクエストを IKE は規定する (IKE SA の文脈では "空" は IKE ヘッダにペイロードを含まない Encrypted ペイロードが続く). 最近相手から暗号保護された (新鮮で再送でない) メッセージを受信していれば, 保護されていない Notify は無視してもよい. 実装は保護されていないメッセージに基づく行動のレートを制限しなければならない.
再試行回数とタイムアウト長は相互運用性に影響しないため本仕様の対象外である. SA を諦める前に数分以上にわたり少なくとも十数回再送することが推奨されるが, 環境により異なるルールが必要になりうる. 良好なネットワーク市民のため, 再送間隔は指数バックオフで増やさなければならない. IKE SA に関連するすべての SA で外向きトラフィックのみの場合, ブラックホール回避のため他エンドポイントの生存確認が不可欠である. IKE SA またはその Child SA のいずれでも最近暗号保護メッセージを受信していなければ, 死んだピアへ送るのを防ぐ生存チェックが必要である (しばしば "DPD" と呼ばれるが, 実際には生存ピアの検出である). IKE SA またはその Child SA のいずれかで新鮮な暗号保護メッセージを受信すれば, その IKE SA とすべての Child SA の生存が保証される. これは IKE エンドポイントの故障モードに要件を課す. 関連するすべての SA で受信できない故障がある場合, その SA 上での送信を止めなければならない. Child SA が互いに独立して失敗し, 関連 IKE SA が削除メッセージを送れないなら, そのような Child SA は別々の IKE SA で交渉しなければならない.
IKE SA initiator への一種の DoS は, initiator が適切に対処すれば避けられる: SA セットアップの最初の 2 メッセージは暗号保護されないため, 攻撃者が本物の responder より先に応答してセットアップを汚染しうる. 防ぐため initiator は最初のメッセージへの複数レスポンスを受け入れ, それぞれを潜在的に正当とみなし応答し, いずれかへの有効な暗号保護レスポンスを受信したら無効な半開き接続をすべて破棄してもよい. 一度暗号的に有効なレスポンスを受信したら, 以降のレスポンスは暗号的に有効かどうかにかかわらず無視すべきである.
これらのルールでは SA 生存期間を交渉し合意する理由はない. IKE が IKE メッセージへの繰り返し未確認からパートナーを死亡とみなしたら, その IKE SA とそれで確立されたすべての Child SA を削除する.
IKE エンドポイントはいつでも非アクティブ Child SA を削除して状態保持リソースを回収してもよい. Child SA を削除する場合, 削除を通知する Delete ペイロードを送らなければならない. IKE SA を同様にタイムアウトしてもよい. IKE SA を閉じると関連 Child SA はすべて暗黙的に閉じる. この場合, 他エンドポイントがもう応答しないのでなければ, IKE SA を閉じたことを示す Delete ペイロードを送るべきである.