SYN-evästeet

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3.9.2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

SYN-eväste  on tekniikka SYN-tulvahyökkäyksen torjumiseksi . Tekniikan keksijä Daniel Bernstein SYN-evästeen "alkuperäisen TCP-sekvenssin erityiseksi valinnaksi palvelinpuolella" SYN-evästeen avulla palvelin voi välttää uusien yhteyksien katkeamisen, kun TCP-yhteysjono on täynnä. Palvelin lähettää oikean SYN+ACK -sekvenssin takaisin asiakkaalle , mutta ei tallenna uutta yhteyttä jonoon. Jos palvelin saa sitten ACK-vastauksen asiakkaalta, se voi palauttaa SYN-sekvenssiarvonsa asiakkaalta saadusta arvosta.

Toteutus

TCP-yhteyden luomiseksi asiakas lähettää palvelimelle TCP-paketin, jossa on SYN-lippu ja sen järjestysnumero. Vastauksena palvelin lähettää paketin SYN+ACK-lipuilla. asiakkaan järjestysnumero ja oma järjestysnumerosi. Nämä numerot keräävät koko TCP-virran. TCP-spesifikaatio määrittää, että asiakas ja palvelin määrittävät näiden järjestysnumeroiden alkuarvon. SYN-evästeet ovat juuri sellainen järjestysnumero, jonka palvelin kerää huolellisesti seuraavien sääntöjen mukaisesti:

Sitten SYN-eväste lasketaan seuraavasti:

Kun asiakas lähettää palvelimelle kättelyn lopettavan paketin ACK-lipulla, se lähettää palvelimen alkuperäisen järjestysnumeron yhdellä lisättynä. Tarkistaakseen, onko SYN-eväste oikea, palvelin vähentää siitä yhden ja suorittaa seuraavat tarkistukset:

Tästä eteenpäin yhteys toimii normaalisti.

Haitat

SYN-evästeen käyttö ei riko TCP :tä ja muita protokollia. Tällä tekniikalla on kuitenkin kaksi rajoitusta [1] :

  1. mahdollisuus käyttää vain 8 eri arvoa MSS:ssä;
  2. palvelimen on jätettävä huomioimatta kaikki TCP-asetukset (suurempi ikkunan koko, aikaleimat jne.), kun ne lähetetään alkuperäisessä SYN-pyynnössä.

Vaikka nämä rajoitukset johtavat TCP-protokollan epäoptimaaliseen käyttöön, negatiiviset vaikutukset vaikuttavat harvoin asiakkaisiin, koska SYN-evästeitä tulisi käyttää vain hyökkäyksissä palvelinta vastaan. Joidenkin TCP-protokollan ominaisuuksien huomiotta jättäminen palvelimen saatavuuden hyväksi on kohtuullinen kompromissi.

Ongelma kuitenkin kasvaa, kun viimeinen ACK-paketti asiakkaalta katoaa ja sovelluskerroksen protokolla edellyttää palvelimen olevan jatkoviestinnän aloittaja (esim. SMTP- ja SSH-protokollat). Tässä tapauksessa asiakas olettaa, että yhteys on muodostettu onnistuneesti, ja odottaa kutsua palvelimelta tai SYN+ACK-paketin uudelleenlähetystä. Palvelin ei kuitenkaan lähetä tällaista pakettia, koska se hylkää istunnon. Lopulta asiakas myös nollaa istunnon, mutta tämä voi kestää kauan.

Linux-ydin 2.6.26 lisäsi rajoitetun tuen joillekin TCP-vaihtoehdoille, jotka on koodattu aikaleimaan.

Uudempi TCP Cookie Transactions (TCPCT) -standardi on suunniteltu välttämään nämä ongelmat ja parantamaan joitakin muita näkökohtia. Mutta se on TCP:n lisäosa, ja siksi molempien osapuolten on tuettava sitä.

Turvallisuusnäkökohdat

Yksinkertaiset palomuurit , jotka sallivat kaiken lähtevän liikenteen ja sallivat vain saapuvan liikenteen tiettyihin portteihin, estävät vain SYN-pyynnöt suljettuihin portteihin. Jos SYN-evästeet ovat käytössä, sinun on kiinnitettävä huomiota siihen, että hyökkääjä ei voi ohittaa tällaisia ​​palomuureja lähettämällä ACK-paketteja mielivaltaisella järjestysnumerolla, kunnes hän poimii oikean. SYN-evästeet tulisi ottaa käyttöön vain julkisissa porteissa.

Muistiinpanot

  1. [1] Arkistoitu 22. heinäkuuta 2009 Wayback Machinessa , cr.yp.to September 1996

Linkit