SYN cookie-k

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. szeptember 3-án felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

A SYN cookie  egy technika a SYN árvíztámadások ellen. A technika feltalálója, Daniel Bernstein határozta meg a SYN cookie-t, mint "a kezdeti TCP-szekvencia speciális választása a szerver oldalon" A SYN cookie használata lehetővé teszi a szerver számára, hogy elkerülje az új kapcsolatok megszakítását, amikor a TCP-kapcsolati sor megtelt. A szerver visszaküldi a megfelelő SYN+ACK szekvenciát az ügyfélnek , de nem tárolja az új kapcsolatot a sorban. Ha a szerver ezután ACK választ kap az ügyféltől, akkor vissza tudja állítani a SYN sorozat értékét az ügyféltől kapott értékből.

Megvalósítás

A TCP-kapcsolat létrehozásához az ügyfél egy TCP-csomagot küld a kiszolgálónak a SYN jelzővel és annak sorszámával. Válaszul a szerver SYN+ACK jelzőkkel ellátott csomagot küld. ügyfél sorszámát és saját sorszámát. A teljes TCP adatfolyamot ezek a számok gyűjtik össze. A TCP specifikáció meghatározza, hogy ezeknek a sorszámoknak a kezdeti értékét maga a kliens és a szerver határozza meg. A SYN cookie-k csak egy sorszám, amelyet a szerver gondosan gyűjt a következő szabályok szerint:

Ezután a SYN cookie kiszámítása a következőképpen történik:

Amikor egy kliens kézfogás-végző csomagot küld ACK jelzővel a kiszolgálónak, elküldi a szerver eredeti sorszámát eggyel növelve. A SYN cookie helyességének ellenőrzéséhez a szerver levon belőle egyet, és elvégzi a következő ellenőrzéseket:

A kapcsolat mostantól a megszokott módon működik.

Hátrányok

A SYN cookie használata nem töri meg a TCP -t és más protokollokat. Ennek a technikának azonban két korlátja van [1] :

  1. lehetőség csak 8 különböző érték használatára az MSS-hez;
  2. a szervernek figyelmen kívül kell hagynia az összes TCP-beállítást (megnövelt ablakméret, időbélyegek stb.), amint azokat a kezdeti SYN kérésben elküldik.

Míg ezek a korlátozások a TCP protokoll szuboptimális használatához vezetnek, a negatív hatások ritkán érintik az ügyfeleket, mivel a SYN cookie-kat csak a szerver elleni támadásoknál szabad használni. A TCP protokoll egyes funkcióinak figyelmen kívül hagyása a szerver elérhetősége érdekében ésszerű kompromisszum.

A probléma azonban fokozódik, ha a kliens végső ACK-csomagja elveszik, és az alkalmazási réteg protokollja megköveteli, hogy a szerver legyen a további kommunikáció kezdeményezője (pl. SMTP és SSH protokollok). Ebben az esetben a kliens azt feltételezi, hogy a kapcsolat sikeresen létrejött, és vár egy meghívó szalaghirdetésre a szervertől vagy a SYN+ACK csomag újraküldésére. A szerver azonban nem küld ilyen csomagot, mivel elutasítja a munkamenetet. Végül az ügyfél is visszaállítja a munkamenetet, de ez sokáig tarthat.

A Linux kernel 2.6.26 korlátozott támogatást adott néhány időbélyegbe kódolt TCP-beállításhoz.

Az újabb TCP Cookie Transactions (TCPCT) szabványt úgy tervezték, hogy elkerülje ezeket a problémákat, és javítson néhány egyéb szempontot. De ez a TCP kiegészítője, ezért mindkét félnek támogatnia kell.

Biztonsági szempontok

Az egyszerű tűzfalak , amelyek engedélyezik az összes kimenő forgalmat, és csak bizonyos portokra engedik a bejövő forgalmat, csak a zárt portokra irányuló SYN kéréseket blokkolják. Ha a SYN cookie-k engedélyezve vannak, akkor ügyelni kell arra, hogy a támadó ne tudja megkerülni az ilyen tűzfalakat tetszőleges sorszámú ACK csomagok küldésével, amíg fel nem veszi a megfelelőt. A SYN cookie-kat csak a nyilvánosan elérhető portoknál szabad engedélyezni.

Jegyzetek

  1. [1] Archiválva : 2009. július 22. a Wayback Machine -nél, cr.yp.to 1996. szeptember

Linkek