SYN-cookies är en metod genom vilken serveradministratörer kan förhindra en form av överbelastningsattack (DoS) mot en server genom en metod som kallas SYN flooding. Denna typ av attack använder den process genom vilken en anslutning mellan en klient och värd upprättas, känd som en trevägshandskakning, för att orsaka att värden får ett överdrivet antal klientförfrågningar, fryser eller kraschar systemet. Sådana attacker har dock till stor del blivit föråldrade genom metoder som användningen av SYN-cookies som kringgår dem. Dessa cookies utgör inget säkerhetshot eller risk för varken värden eller klienterna och orsakar inte anslutningsproblem eller problem.
Det sätt på vilket SYN-cookies fungerar bygger på det grundläggande sättet på vilket många servrar och användare, eller värd- och klientsystem, ansluter till varandra. Denna process är känd som en trevägshandskakning och börjar när klientsystemet skickar en begäran om att ansluta till värdsystemet. Begäran kallas ett synkroniseringsmeddelande eller SYN och tas emot av värdsystemet. Detta värdsystem bekräftar sedan att SYN har tagits emot genom att skicka en bekräftelse, eller SYN-ACK-meddelande, tillbaka till klienten.
När klientsystemet väl tar emot detta SYN-ACK-meddelande skickas ett sista ACK-meddelande tillbaka av klienten till värden. När värdsystemet tar emot denna slutliga ACK tillåter det klienten att komma åt systemet och kan sedan ta emot ytterligare SYN-förfrågningar från andra klienter. De flesta värdservrar har en ganska liten kö för SYN-förfrågningar, vanligtvis bara åtta åt gången.
Den form av DoS-attack som kallas SYN flooding använder detta för att överväldiga ett värdsystem. Detta görs genom att skicka ett SYN-meddelande, till vilket en SYN-ACK skickas av värden som svar, men det slutliga ACK-meddelandet skickas inte av klienten, vilket håller en position i kön öppen. Om detta görs korrekt under en SYN-översvämningsattack, blir hela kön upptagen av dessa obesvarade förfrågningar och kan inte acceptera nya förfrågningar från legitima kunder.
SYN-cookies hjälper till att kringgå denna typ av attack genom att tillåta en värd att agera som om den har en större kö än den verkligen har. I händelse av en SYN-översvämningsattack kan värden använda SYN-cookies för att skicka en SYN-ACK till en klient, men det eliminerar SYN-posten för den klienten. Detta tillåter i princip att värden fungerar som om ingen SYN någonsin tagits emot.
När denna SYN-ACK med SYN-cookies väl har tagits emot av klienten, innehåller dock motsvarande ACK som skickas tillbaka till värden data om den ursprungliga SYN-ACK. Värden kan sedan använda denna ACK och de inkluderade SYN-cookies för att rekonstruera den ursprungliga SYN-ACK och den lämpliga posten för den ursprungliga begäran. När detta är gjort kan klienten tillåtas att ansluta till värden, men hela processen kringgick effektivt kön som annars kan vara upptagen av en SYN-översvämningsattack.