Zum Hauptinhalt springen

Anhang A. Vergleich mit TCP Cookies (SYN Cookies)

Dieser Anhang vergleicht TCP Fast Open (TFO) und TCP SYN Cookies im Detail und hilft dabei, ihre unterschiedlichen Ziele und Anwendungsszenarien zu verstehen.

A.1. Übersicht (Overview)

Obwohl TFO und SYN Cookies beide das „Cookie"-Konzept verwenden, dienen sie völlig unterschiedlichen Zwecken:

TFO (TCP Fast Open):
Ziel: Verbindungslatenz reduzieren, Leistung verbessern
Mechanismus: Vorab zugewiesenes Cookie, erlaubt SYN-Daten
Zustand: Zustandsbehaftet (Cookie gecacht)

SYN Cookies:
Ziel: SYN-Flood-Angriffe abwehren, Server schützen
Mechanismus: Zustandslose Antwort, Informationen in ISN kodiert
Zustand: Zustandslos (kein SYN-RECEIVED-Zustand gespeichert)

A.2. Vergleich der Designziele (Design Goals Comparison)

TCP Fast Open (TFO)

Hauptziele:

  1. Leistungsoptimierung: Latenz beim TCP-Verbindungsaufbau reduzieren
  2. Rückwärtskompatibilität: Koexistenz mit bestehenden TCP-Implementierungen
  3. Sicherheit: TCP-Sicherheit nicht verschlechtern

Anwendungsszenarien:

  • Unter normalen Netzwerkbedingungen
  • Wenn Client und Server TFO unterstützen
  • Latenzsensitive Anwendungen (Web, API)

TCP SYN Cookies

Hauptziele:

  1. SYN-Flood-Abwehr: DoS-Angriffe abwehren
  2. Zustandsloses Design: Keine Serverressourcen verbrauchen
  3. Notfallmaßnahme: Bei Angriffen automatisch aktivieren

Anwendungsszenarien:

  • Während SYN-Flood-Angriffen
  • Wenn Serverressourcen knapp sind
  • Als letzte Verteidigungslinie

A.3. Vergleich der technischen Mechanismen (Technical Mechanisms)

TFO-Cookie:

# Vorab generiert, persistent gespeichert
TFO_Cookie = Encrypt(ServerSecret, ClientIP || Timestamp)

Eigenschaften:
- Server generiert aktiv und sendet an Client
- Client speichert Cookie für spätere Verbindungen im Cache
- Cookie hat eine explizite Ablaufzeit (Stunden bis Tage)
- Verwendet starken Verschlüsselungsalgorithmus (z. B. AES-128)

SYN-Cookie:

# Dynamisch in ISN kodiert, keine Speicherung erforderlich
SYN_Cookie = Hash(ServerIP, ServerPort, ClientIP, ClientPort,
Timestamp, ServerSecret) + MSS_encoding

Eigenschaften:
- Wird beim Empfang eines SYN sofort berechnet
- In der Initial Sequence Number (ISN) kodiert
- Sehr kurze Gültigkeitsdauer (Minutenbereich)
- Verwendet schnelle Hash-Funktion

Zustandsverwaltung

TFO-Zustandsverwaltung:

Client:
├─ Cookie für jeden Server cachen
├─ Cookie-Ablaufzeit verfolgen
└─ In persistentem Speicher ablegen (z. B. Festplatte)

Server:
├─ Normaler TCP-Verbindungszustand (TCB)
├─ Empfangenes Cookie validieren
└─ Optional: Cookie-Nutzungsstatistiken verfolgen

SYN-Cookies-Zustandsverwaltung:

Client:
└─ Keine besondere Behandlung erforderlich (Standard-TCP)

Server:
├─ Kein SYN-RECEIVED-Zustand erstellen
├─ Zurückgegebene Sequenznummer im ACK validieren
└─ ESTABLISHED-Zustand erst nach erfolgreicher Validierung erstellen

Verbindungsherstellungsablauf

TFO-Verbindungsherstellung:

Client                                Server
| |
| SYN + TFO Cookie + Daten |
|---------------------------------->|
| | (Cookie validieren, Daten akzeptieren)
| | (TCB erstellen, SYN-RECEIVED)
| SYN-ACK (+ optionale Daten) |
|<----------------------------------|
| |
| ACK |
|---------------------------------->|
| | (ESTABLISHED)

Vorteil: 1 RTT eingespart, Daten können während Handshake übertragen werden

SYN-Cookies-Verbindungsherstellung:

Client                                Server
| |
| SYN |
|---------------------------------->|
| | (SYN-Cookie berechnen)
| | (kein TCB erstellen)
| SYN-ACK (ISN = SYN-Cookie) |
|<----------------------------------|
| |
| ACK (ACK = ISN + 1) |
|---------------------------------->|
| | (SYN-Cookie validieren)
| | (TCB erstellen, ESTABLISHED)

Vorteil: Zustandslos, kein Speicherverbrauch, SYN-Flood-Abwehr

A.4. Vergleich der Funktionsmerkmale (Feature Comparison)

MerkmalTFOSYN CookiesErläuterung
HauptzielLeistungsoptimierungSicherheitsschutzUnterschiedliche Designabsichten
SYN-Datenübertragung✓ Unterstützt✗ Nicht unterstütztKernmerkmal von TFO
ZustandstypZustandsbehaftetZustandslosZustandslosigkeit ist Schlüssel bei SYN Cookies
Verbindungslatenz1 RTT reduziertStandard 3-WayTFO-Leistungsvorteil
ServerressourcenNormaler VerbrauchSehr geringSYN Cookies sparen Ressourcen
TCP-Optionen erhaltenVollständigNur MSSEinschränkung bei SYN Cookies
Fensterskalierung✓ Unterstützt✗ EingeschränktSYN Cookies verlieren Optionen
SACK-Unterstützung✓ Unterstützt✗ EingeschränktWie oben
Zeitstempel-Option✓ Unterstützt✗ EingeschränktWie oben
ECN-Unterstützung✓ Unterstützt✗ EingeschränktWie oben
Cookie-GültigkeitsdauerStunden–TageMinutenTFO-Cookie persistent
Client-Caching✓ Erforderlich✗ Nicht erforderlichTFO benötigt Client-Unterstützung
AngriffsschutzMittelSehr starkSYN Cookies speziell für Abwehr
BereitstellungskomplexitätMittelGeringSYN Cookies einfacher

A.5. Vergleich der Leistungsauswirkungen (Performance Impact)

Unter normalen Bedingungen

TFO:

Erstverbindung:
Latenz: 1,5 RTT (gleich wie Standard-TCP)

Folgeverbindungen:
Latenz: 0,5 RTT (1 RTT eingespart)
Leistungsverbesserung: 15–40 % (HTTP-Anfragen)

SYN Cookies:

Alle Verbindungen:
Latenz: 1,5 RTT (gleich wie Standard-TCP)

Nebeneffekte:
- TCP-Optionen verloren (Fensterskalierung, SACK usw.)
- Kann Leistung bei Langzeitverbindungen beeinträchtigen
- MSS-Kodierungsbeschränkung (nur begrenzte MSS-Werte darstellbar)

Unter Angriffsbedingungen

TFO:

Unter SYN-Flood:
Probleme:
- Cookie muss noch validiert werden (CPU-Verbrauch)
- Kann SYN-Daten akzeptieren (Speicherverbrauch)
- Angreifer kann Cookie-Mechanismus missbrauchen

Gegenmaßnahmen:
- SYN-Datengröße begrenzen
- Ratenbegrenzung
- TFO bei Bedarf deaktivieren

SYN Cookies:

Unter SYN-Flood:
Vorteile:
- Vollständig zustandslos, kein Speicherverbrauch
- Schnelle Berechnung, geringer CPU-Verbrauch
- Angriffe automatisch abwehren

Abwägung:
- Eingeschränkte Funktionalität (TCP-Optionen verloren)
- Aber Dienst bleibt verfügbar

A.6. Sicherheitsvergleich (Security Comparison)

TFO-Sicherheitsüberlegungen

Schutzmechanismen:

✓ Cookie an IP-Adresse gebunden
✓ Cookie-Verschlüsselung und -Ablauf
✓ SYN-Datengröße begrenzt
✓ SYN-ACK-Antwortgröße begrenzt
✓ Ratenbegrenzung

Bedrohungen:
✗ Kann für Amplifikationsangriffe verwendet werden
✗ Zusätzlicher Validierungsaufwand erforderlich
✗ Cookie kann wiedergegeben werden (Idempotenzanforderung)

Geeignete Szenarien:

  • Normale Netzwerkumgebung
  • Vertrauenswürdige Clients
  • Leistungsoptimierung erforderlich

SYN-Cookies-Sicherheitsüberlegungen

Schutzmechanismen:

✓ Vollständig zustandslos
✓ Schnelle Berechnung
✓ Automatische Aktivierung (Angriffserkennung)
✓ Keine Serverressourcen verbraucht

Einschränkungen:
✗ Eingeschränkte Funktionalität (TCP-Optionen verloren)
✗ MSS-Kodierung eingeschränkt
✗ TCP-Erweiterungen nicht unterstützt

Geeignete Szenarien:

  • Während SYN-Flood-Angriffen
  • Wenn Serverressourcen knapp sind
  • Als Notfallschutzmaßnahme

A.7. Kompatibilität und Bereitstellung (Compatibility and Deployment)

TFO-Bereitstellung

Anforderungen:

Client:
├─ Kernel- oder Anwendungsunterstützung erforderlich
├─ Cookie-Caching-Mechanismus erforderlich
└─ Rückfall auf Standard-TCP erforderlich

Server:
├─ Kernel- oder Anwendungsunterstützung erforderlich
├─ Cookie-Generierung und -Validierung erforderlich
└─ Konfiguration und Verwaltung erforderlich

Netzwerk:
└─ Middleboxen können TCP-Optionen entfernen

Bereitstellungsstatus:

  • Linux 3.6+ unterstützt
  • Mainstream-Betriebssysteme unterstützen schrittweise
  • Anwendungen müssen TFO aktivieren

SYN-Cookies-Bereitstellung

Anforderungen:

Client:
└─ Keine Änderungen erforderlich (transparent)

Server:
├─ Kernel-Level-Unterstützung
├─ Konfigurierbar aktivierbar/deaktivierbar
└─ Normalerweise standardmäßig aktiviert

Netzwerk:
└─ Vollständig transparent, keine Auswirkungen

Bereitstellungsstatus:

  • Alle Mainstream-Betriebssysteme unterstützen
  • Weit verbreitet, standardmäßig aktiviert
  • Ausgereifte und stabile Technologie

A.8. Koexistenz und Zusammenarbeit (Coexistence and Cooperation)

TFO und SYN Cookies können koexistieren

Empfohlene Konfiguration:

Normal:
├─ TFO: Aktiviert (Leistungsoptimierung)
└─ SYN Cookies: Aktiviert aber nicht ausgelöst (Backup)

Leichter Angriff:
├─ TFO: Weiter aktiv (mit Ratenbegrenzung)
└─ SYN Cookies: Beginnen zu aktivieren (für einige Verbindungen)

Schwerer Angriff:
├─ TFO: Deaktiviert oder streng begrenzt
└─ SYN Cookies: Vollständig aktiviert (Hauptschutz)

Nach Angriff:
├─ SYN Cookies: Schrittweise deaktivieren
└─ TFO: Wieder aktivieren

Kooperative Optimierung

Strategie:

def handle_syn(packet):
if is_under_attack():
# Bei Angriff SYN Cookies bevorzugen
if use_syn_cookies:
return handle_with_syn_cookies(packet)

if packet.has_tfo_option():
# Normal: TFO versuchen
if validate_tfo_cookie(packet):
return handle_tfo_connection(packet)
else:
# TFO fehlgeschlagen, auf Standard-TCP zurückfallen
return handle_standard_tcp(packet)

# Standard-TCP-Verarbeitung
return handle_standard_tcp(packet)

A.9. Verwendungsempfehlungen (Usage Recommendations)

Wann TFO verwenden

Empfohlene Szenarien:

✓ Anwendungen mit geringen Latenzanforderungen (Web, API)
✓ Szenarien mit häufigen Kurzzeitverbindungen
✓ Anfrage-Antwort-Muster
✓ Idempotente Operationen
✓ Vertrauenswürdige Netzwerkumgebung

Beispiele:
- HTTP-GET-Anfragen
- DNS-Abfragen
- RPC-Aufrufe
- Nur-Lese-APIs

Nicht empfohlene Szenarien:

✗ Nicht-idempotente Operationen
✗ Hohe Sicherheitsanforderungen (sensible Operationen)
✗ Langzeitverbindungen (geringer Nutzen)
✗ Nicht vertrauenswürdige Umgebungen

Beispiele:
- Finanztransaktionen
- Schreiboperationen (POST/PUT/DELETE)
- WebSocket-Langzeitverbindungen
- Datenbankverbindungen

Wann SYN Cookies verwenden

Empfohlene Szenarien:

✓ Alle öffentlich zugänglichen Server
✓ Websites mit hohem Datenverkehr
✓ Dienste, die DDoS-Angriffen ausgesetzt sein könnten
✓ Server mit begrenzten Ressourcen

Empfehlung: Standardmäßig aktivieren, als letzte Verteidigungslinie

Nicht empfohlene Szenarien:

✗ Interne Netzwerke (optional)
✗ Vollständig vertrauenswürdige Umgebungen

Hinweis: Aber selbst in diesen Szenarien schadet die Aktivierung nicht

A.10. Zusammenfassung (Summary)

Wesentliche Unterschiede

TFO (TCP Fast Open):
Positionierung: Leistungsoptimierungswerkzeug
Abwägung: Gewisse Sicherheit für Leistung opfern
Bereitstellung: Client- und Server-Unterstützung erforderlich
Wirkung: Latenz deutlich reduziert

SYN Cookies:
Positionierung: Sicherheitsschutzmechanismus
Abwägung: Einige Funktionen für Sicherheit opfern
Bereitstellung: Serverseitig transparent aktivierbar
Wirkung: SYN-Flood effektiv abgewehrt

Komplementäre Beziehung

TFO und SYN Cookies sind keine Konkurrenten, sondern ergänzen sich:

TFO:
„Das Schnelle noch schneller machen" – Leistung unter normalen Bedingungen optimieren

SYN Cookies:
„Das Langsame nutzbar halten" – Verfügbarkeit unter Angriffsbedingungen aufrechterhalten

Ideale Bereitstellung:
Beide gleichzeitig aktivieren, dynamisch je nach Netzwerkbedingungen umschalten

Ausblick

Protokollentwicklung:
├─ TFO kann standardisiert werden (von experimentell zu Standard)
├─ SYN Cookies werden kontinuierlich verbessert (mehr Informationen kodieren)
├─ Neue Protokolle (wie QUIC) unterstützen 0-RTT nativ
└─ Intelligentere adaptive Mechanismen

Dokumentende. Vielen Dank für das Lesen der technischen Dokumentation zu RFC 7413 – TCP Fast Open.

Weitere Informationen finden Sie unter: