SYN cookies

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 3. september 2021; checks kræver 2 redigeringer .

SYN-cookie  er en teknik til at modvirke SYN-oversvømmelsesangreb . Opfinderen af ​​teknikken, Daniel Bernstein definerede en SYN-cookie som "et særligt valg af initial TCP-sekvens på serversiden" Ved at bruge SYN-cookien kan serveren undgå at miste nye forbindelser, når TCP-forbindelseskøen er fuld. Serveren sender den korrekte SYN+ACK -sekvens tilbage til klienten , men gemmer ikke den nye forbindelse i køen. Hvis serveren derefter modtager et ACK-svar fra klienten, kan den gendanne sin SYN-sekvensværdi fra værdien modtaget fra klienten.

Implementering

For at oprette en TCP-forbindelse sender klienten en TCP-pakke med SYN-flaget og dets sekvensnummer til serveren. Som svar sender serveren en pakke med SYN+ACK-flag. kundeløbenummer og dit eget løbenummer. Hele TCP-strømmen opsamles af disse tal. TCP-specifikationen specificerer, at startværdien af ​​disse sekvensnumre bestemmes af klienten og serveren selv. SYN cookies er netop sådan et sekvensnummer, som omhyggeligt indsamles af serveren i henhold til følgende regler:

Derefter beregnes SYN-cookien som:

Når en klient sender en håndtryksende-ende pakke med et ACK-flag til serveren, sender den serverens originale sekvensnummer øget med én. For at kontrollere, om en SYN-cookie er korrekt, trækker serveren en fra den og udfører følgende kontroller:

Fra nu af fungerer forbindelsen som normalt.

Ulemper

Brug af en SYN-cookie bryder ikke TCP og andre protokoller. Denne teknik har dog to begrænsninger [1] :

  1. mulighed for kun at bruge 8 forskellige værdier til MSS;
  2. serveren bliver nødt til at ignorere alle TCP-indstillinger (forøget vinduesstørrelse, tidsstempler osv.), da de sendes i den indledende SYN-anmodning.

Selvom disse begrænsninger fører til suboptimal brug af TCP-protokollen, påvirker de negative effekter sjældent klienter, da SYN-cookies kun bør bruges i angreb mod serveren. At ignorere nogle funktioner i TCP-protokollen til fordel for servertilgængelighed er et rimeligt kompromis.

Men problemet øges, når den endelige ACK-pakke fra klienten går tabt, og applikationslagsprotokollen kræver, at serveren er initiativtager til yderligere kommunikation (f.eks. SMTP- og SSH-protokoller). I dette tilfælde antager klienten, at forbindelsen blev etableret med succes, og venter på et invitationsbanner fra serveren eller en gentransmission af SYN+ACK-pakken. Serveren sender dog ikke sådan en pakke, da den vil afvise sessionen. Til sidst vil klienten også nulstille sessionen, men det kan tage lang tid.

Linux-kerne 2.6.26 tilføjede begrænset understøttelse af nogle TCP-indstillinger, der er kodet til et tidsstempel.

Den nyere TCP Cookie Transactions (TCPCT) standard er designet til at undgå disse problemer og forbedrer nogle andre aspekter. Men det er en tilføjelse til TCP og skal derfor understøttes af begge parter.

Sikkerhedshensyn

Simple firewalls , der tillader al udgående trafik og kun tillader indgående trafik til bestemte porte, vil kun blokere SYN-anmodninger til lukkede porte. Hvis SYN-cookies er aktiveret, skal du være opmærksom på, at en angriber ikke kan omgå sådanne firewalls ved at sende ACK-pakker med et vilkårligt sekvensnummer, indtil han henter den rigtige. SYN-cookies bør kun aktiveres for offentligt tilgængelige porte.

Noter

  1. [1] Arkiveret 22. juli 2009 på Wayback Machine , cr.yp.til september 1996

Links