SYN-Cookies

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Unter SYN-Cookies versteht man einen im Jahr 1996 von Daniel J. Bernstein entwickelten Mechanismus zum Schutz vor SYN-Flood-Angriffen. Bei diesen handelt es sich um eine Form des Denial-of-Service-Angriffs, bei der der anzugreifende Rechner durch massives Öffnen von Verbindungen dazu provoziert wird, die eigenen Ressourcen auf das Offenhalten der Verbindungen zu verwenden.

Verbindungsaufbau mit TCP[Bearbeiten]

Beim Herstellen einer herkömmlichen TCP-Verbindung, dem sogenannten Drei-Wege-Handshake, schickt ein Client zuerst ein SYN-Paket an den Server. Dieser speichert diese Nachricht und antwortet mit einem SYN/ACK-Paket. Schließlich sendet der Client ein ACK-Paket an den Server und die Verbindung ist hergestellt.

Erweiterung um SYN-Cookies[Bearbeiten]

Das Transmission Control Protocol (TCP) macht keine Vorgaben zum initialen Wert der Sequenznummer der SYN/ACK-Pakete. Also kann der Server sie nutzen, um Informationen zu kodieren, die er sonst in einer Tabelle halboffener TCP-Verbindungen speichern müsste. Da es somit keine solche Tabelle gibt, kann sie auch nicht überlaufen, womit ein SYN-Flood-Angriff nicht zu einem Denial of Service (DOS) führen kann.

Da der Client die Sequenznummer des TCP-SYN/ACK um 1 hochzählt, enthält sein TCP-ACK-Paket die vom Server generierte initiale Sequenznummer um 1 inkrementiert. Der Server dekrementiert diese also wieder um 1 und vergleicht sie anschließend mit dem Hashwert des Pakets. Stimmen die beiden Hashes nicht überein, muss die Verbindung neu aufgebaut werden, wozu der Server dem Client ein TCP RST-Paket sendet.

Weil die Überprüfung des Verbindungsaufbaus auf dem Server passiert, kann die Hashfunktion der Implementierung grundsätzlich beliebig definiert sein; sie sollte jedoch möglichst zufällig sein, um Sicherheitsrisiken zu vermeiden.[1] Dieses Verfahren läuft für den Client transparent ab, weswegen Verbindungen zwischen Gegenstellen unabhängig davon aufgebaut werden können, ob sie SYN-Cookies verwenden.

Inhalt der initialen Sequenznummer [2][3][Bearbeiten]

  • Zeitstempel mit einer Auflösung von 64 Sekunden
  • maximale Segmentgröße
  • Hashfunktion über:
    • Sender- und Empfänger-IP-Adresse
    • Ports
    • Zeitstempel mit einer Auflösung von 64 Sekunden
    • Ein nur dem Server bekannter geheimer Wert, der sich (wenn überhaupt) in großen Abständen ändert

Die Hashfunktion ist im zugehörigen RFC 4987 nicht spezifiziert und kann daher frei gewählt werden.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Steven M. Bellovin: RFC 1948 - Defending Against Sequence Number Attacks. In: Internet Engineering Task Force (IETF). AT&T Research, Mai 1996, S. 5, abgerufen am 20. Juni 2010 (englisch).
  2. SYN cookies. Website des SYN Cookies Entwicklers. Abgerufen am 18. Dezember 2009.
  3. RFC 4987. RFC 4987 Abschnitt SYN-Cookies. Abgerufen am 18. Dezember 2009.