要約

  • TCPは時間とともに進む成分を残し、接続の四つ組と秘密鍵に結び付いたオフセットを加えた。
  • この仕組みは経路外からの予測を難しくするが、相手の身元を認証するものではない。 サーバーが次に使う初期シーケンス番号を直前の観測値から予測できるなら、攻撃者は被害者の通信を見なくても接続を偽装し得る。RFC 1948が示した盲目的な攻撃では、まず対象の番号の進み方を測り、別の送信元アドレスを装ってSYNを送り、見えない応答を受理させるための確認番号を推測する。

対策は、古い接続と新しい接続を区別するための時間的な進行を捨てなかった。変えたのは、ある接続の観測から別の接続について何を推測できるかである。開始値は M + F(四つ組, 秘密) となる。公開された時間成分に規則性があっても、送信元・宛先のアドレスとポートのいずれかが変われば、秘密を知らない外部の観測者には予測困難なオフセットが選ばれる。

RFC 6528はこの考え方を標準化し、RFC 9293は現行TCP仕様に組み込んだ。新しいフィールドをネットワーク上に追加したわけではない。制御点は、端点がSYNへ書き込む32ビット値を内部でどう選ぶかにあった。