要約

  • RFC 9897 は IETF Standards Track 仕様であり、DCCP を拡張して、一つの接続が異なる経路上で複数の DCCP サブフローを確立・利用できるようにする。
  • MP_ADDADDR は認証されたソフトステートのアドレス広告であって、経路の許可ではない。後続の MP_JOIN は元の接続識別子、送信側が生成した Address ID、新しい 32 ビット nonce を運び、結合と到達性の証明を完了しなければならない。
  • HMAC の検証成功は、そのアドレスが善意であること、グローバルに到達できること、または相手が所有することを証明しない。MP-DCCP 自体も完全な暗号学的セキュリティを提供しない。

最初のサブフローが MP_KEY によって正常に確立されると、後続参加に必要な鍵の文脈ができる。MP_JOIN は相手の接続識別子を持ち、新しいサブフローを無関係な DCCP 接続ではなく元の接続に向ける。Address ID は接続内で送信側の送信元アドレスに一意に対応しなければならない。中間装置によるアドレス書き換え後も MP_JOIN と MP_ADDADDR を関連付けられ、どちらかの端点が利用している間は再割り当てできない。

参加ハンドシェイクの乱数は 32 ビットで、単回使用の nonce である。安全な乱数性に関する要件に従う新鮮な値を交換することで、参加側を元の接続に結び付け、広告されたアドレスへの双方向到達性を検証する。MP_JOIN、MP_ADDADDR、MP_REMOVEADDR の MP_HMAC は HMAC-SHA256 を用い、左端 160 ビットに切り詰める。保護対象の各オプションには、それぞれ直後に専用の MP_HMAC が必要であり、一つの検証を他の制御状態へ拡張してはならない。

失敗処理は操作ごとに異なる。無効な MP_ADDADDR または MP_REMOVEADDR は黙って無視し、無効な MP_JOIN は試行中のサブフローを閉じる。MP_ADDADDR は破棄可能なソフトステートであり、ブロードキャストおよびマルチキャストアドレスは無視しなければならない。あるアドレスとポートの組合せが失敗した後は、更新されない限り繰り返し接続を試みないことが推奨される。

プライベートアドレスには特別な注意が必要だ。悪意ある参加者は、広告したアドレスを通じて他のホストへ不要なハンドシェイク通信を誘発し、DoS の影響を生じさせられる。RFC 9897 は送信側・受信側のヒューリスティックに言及するが、統一的な疑わしいアドレス判定、リトライ予算、テレメトリー閾値は定めない。一般インターネット向けの普遍的なスケジューラ、結合輻輳制御、並列経路の再順序化方式も範囲外である。展開普及率、性能向上、運用インシデント率についての数値もない。

MP_HMAC はエンドツーエンド暗号化ではなく、アプリケーションデータ全体の認証でもない。機密性、完全性、認証、アクセス制御が必要な場合、アプリケーションは IPsec や DTLS などのエンドツーエンド保護を検討する必要がある。Key Type 0 は相互運用試験には必要だが、鍵素材を平文で交換する。より強い要件に対する鍵種別とエンドツーエンド保護の選択は、展開側に残される。

出典