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:
- Leistungsoptimierung: Latenz beim TCP-Verbindungsaufbau reduzieren
- Rückwärtskompatibilität: Koexistenz mit bestehenden TCP-Implementierungen
- Sicherheit: TCP-Sicherheit nicht verschlechtern
Anwendungsszenarien:
- Unter normalen Netzwerkbedingungen
- Wenn Client und Server TFO unterstützen
- Latenzsensitive Anwendungen (Web, API)
TCP SYN Cookies
Hauptziele:
- SYN-Flood-Abwehr: DoS-Angriffe abwehren
- Zustandsloses Design: Keine Serverressourcen verbrauchen
- 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)
Cookie-Generierung
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)
| Merkmal | TFO | SYN Cookies | Erläuterung |
|---|---|---|---|
| Hauptziel | Leistungsoptimierung | Sicherheitsschutz | Unterschiedliche Designabsichten |
| SYN-Datenübertragung | ✓ Unterstützt | ✗ Nicht unterstützt | Kernmerkmal von TFO |
| Zustandstyp | Zustandsbehaftet | Zustandslos | Zustandslosigkeit ist Schlüssel bei SYN Cookies |
| Verbindungslatenz | 1 RTT reduziert | Standard 3-Way | TFO-Leistungsvorteil |
| Serverressourcen | Normaler Verbrauch | Sehr gering | SYN Cookies sparen Ressourcen |
| TCP-Optionen erhalten | Vollständig | Nur MSS | Einschränkung bei SYN Cookies |
| Fensterskalierung | ✓ Unterstützt | ✗ Eingeschränkt | SYN Cookies verlieren Optionen |
| SACK-Unterstützung | ✓ Unterstützt | ✗ Eingeschränkt | Wie oben |
| Zeitstempel-Option | ✓ Unterstützt | ✗ Eingeschränkt | Wie oben |
| ECN-Unterstützung | ✓ Unterstützt | ✗ Eingeschränkt | Wie oben |
| Cookie-Gültigkeitsdauer | Stunden–Tage | Minuten | TFO-Cookie persistent |
| Client-Caching | ✓ Erforderlich | ✗ Nicht erforderlich | TFO benötigt Client-Unterstützung |
| Angriffsschutz | Mittel | Sehr stark | SYN Cookies speziell für Abwehr |
| Bereitstellungskomplexität | Mittel | Gering | SYN 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: