- SYN-Cookie
-
Unter SYN-Cookies versteht man einen im Jahr 1996 von Daniel J. Bernstein entwickelten Mechanismus zum Schutz vor Denial-of-Service-Angriffen, genauer: SYN-Flood-Angriffen.
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 eine ACK-Nachricht an den Server und die Verbindung wird hergestellt.
Bei dem Prinzip der SYN-Cookies speichert der Server keine Informationen über die halboffene TCP-Verbindung (geht nicht in den Socket-Zustand SYN-Received) und muss somit keinen Speicher allozieren. Er schickt zwar daraufhin, wie im weiteren Verlauf des Drei-Wege-Handshakes üblich, ein SYN/ACK-Paket zurück. Dieses ist allerdings mit einer speziell generierten Sequenznummer versehen. Dieses SYN-Cookie ist eine MD5-Prüfsumme (bzw. MAC) über:
- Zeitstempel
- Sender- und Empfänger-IP-Adresse
- Ports
- Geheimnis
Im Normalfall antwortet der Client, was bei SYN-Flood-Angriffen nicht der Fall ist, und schickt den Cookie im ACK-Paket wieder zurück. Der Server prüft nun die Sequenznummer des ACK, dekrementiert diese um 1 und bildet erneut die MD5-Prüfsumme. Ist die Prüfung erfolgreich, so stellt er die Verbindung her. Ein Vorteil der SYN-Cookies ist, dass auf Client-Seite keine spezielle Implementation vorhanden sein muss, da das Cookie im üblichen SYN/ACK-Paket gesendet wird.
Weblinks
Wikimedia Foundation.