TCP のバックアップ(No.1)


TCP

  • Transmission Control Protocol

TCP とは

TCPの仕組み

TCPコネクション

  • 通信の開始時に通信路を確立し、終了時に通信路を解放する
  • 3つのフェーズで行われる
    1. コネクション確立フェーズ
    2. 通信フェーズ
    3. コネクション切断フェーズ
  • コネクション確立フェーズ
    • 3wayハンドシェイク
      • 1. →(SYN)
      • 2. ←(ACK + SYN)
      • 3. →(ACK)
    • ※SYN:コネクション確立要求
    • ※ACK:肯定応答
  • コネクション切断フェーズ
    • 1. →(FIN + ACK)
    • 2. ←(ACK)
    • 3. ←(FIN + ACK)
    • 4. →(ACK)

TCP のヘッダ構成

  • 1〜32bit
    • 送信元ポート番号(16)
    • あて先ポート番号(16)
  • 33〜64bit
    • シーケンス番号(32)
  • 65〜96bit
    • 確認応答番号(32)
  • 97〜128bit
    • データオフセット(4)
    • 予約(6)
    • コントロールフラグ(コードビット)(6)
    • ウィンドウサイズ(16)
  • 129〜160bit
    • チェックサム(16)
    • 緊急ポインタ(16)
  • 161〜192bit
    • オプション(n)
    • パディング(32-n)

コントロールフラグ(コードビット)

ビット位置コードビット意味
1URGurgent
2ACKacknowledgement。SYNパケットの場合"0"、SYNパケット以外の場合"1"
3PSHpush
4RSTreset。TCP接続を強制終了する場合"1"
5SYNsynchronize。SYNパケットの場合"1"、SYNパケット以外の場合"0"
6FINfinish。TCP接続を終了する場合"1"

SYNクッキー

  • TCP通信の正当性を確認するために、SYN + ACKパケットのシーケンス番号に埋め込むデータのこと
  • TCPヘッダをハッシュ化した値などが使われる

TCPの脆弱性

  • 発信元IPアドレスの偽装が難しい
  • 発信元IPアドレスが偽装されていても、コネクションの確立が必要ない攻撃に対しては弱い
  • 接続要求(SYN)に対する応答(SYN/ACK)を攻撃に悪用される

関連用語