SYN cookies
De Wikipedia, la enciclopedia libre
Remove ads
De Wikipedia, la enciclopedia libre
SYN Cookies es una técnica usada para defensa del ataque inundación SYN. Daniel J. Bernstein, inventor inicial de la técnica,[1] define a SYN Cookies como "una particular selección de números de secuencia para servidores TCP ". En particular, el uso de SYN Cookies, permite al servidor, evitar el rechazo de nuevas conexiones cuando la cola SYN se llena. En su lugar, el servidor se comporta como si la cola SYN hubiera sido extendida. El servidor responde el correspondiente paquete SYN+ACK al cliente, pero descartando la entrada SYN en su cola. El servidor entonces recibe el correspondiente ACK desde el cliente, estando en condiciones de reconstruir la entrada SYN en la cola, usando la información codificada en el número de secuencia TCP elegido.
Con el fin de iniciar una conexión TCP, el cliente envía un paquete TCP SYN, al servidor. En respuesta, el servidor responde un paquete TCP SYN+ACK al cliente. Uno de los valores en este paquete, es el número de secuencia, el cual es usado por el protocolo TCP, para reensamblar el flujo de datos. De acuerdo a la especificación TCP, ese primer número de secuencia enviado, puede ser decidido por cada parte.
La técnica SYN Cookie, elige un número de secuencia cuidadosamente construido, sobre la base de las siguientes reglas:
El número de secuencia TCP inicial en SYN Cookie, se calcula como sigue:
(Nota: debido a que m debe ser codificado usando 3 bits, el servidor está restringido a enviar hasta 8 posibles valores cuando SYN Cookies es usado.)
Cuando el cliente envía un paquete TCP ACK al servidor, en respuesta al paquete SYN+ACK, el cliente DEBE (acordando la especificación TCP), usar n+1 en el número de reconocimiento, donde n es el número de secuencia inicial enviado por el servidor. El servidor substrae 1 del número de reconocimiento para obtener el número enviado al cliente usando SYN Cookie.
El servidor entonces realiza las siguientes operaciones:
A partir de este punto en adelante, la conexión continúa normalmente.
El uso de SYN Cookies, no está en desacuerdo con la especificación de algún protocolo, por lo tanto debe ser compatible con todas las implementaciones de TCP. Hay sin embargo, 3 advertencias que deben ser consideradas cuando se implementa SYN Cookies.
Mientras estas restricciones necesariamente llevarían a una pobre implementación, sus efectos son raramente notados por los clientes. Además, estas restricciones necesitan sólo aplicarse cuando el servidor está bajo ataque, y la conexión podría de otro modo haber sido denegada. En tal situación la pérdida de algunas opciones con el fin de asegurar la conexión, suelen ser un compromiso razonable. La versión 2.6.26 del núcleo Linux, añade un soporte limitado de opciones de TCP, codificándolas en una estama de tiempo.[3]
El estándar TCPCT, (tcp cookie transaction) está diseñada para superar estas deficiencias de SYN cookies, y mejorarla en algunos otros aspectos. Diferente a SYN Cookies, TCPCT es una extensión TCP, y requiere que ambas puntas que integran la conexión, la soporten.[4]
La técnica fue creada por Daniel J. Bernstein y Eric Schenk en septiembre de 1996. La primera implementación para SunOS fue liberada por Jeff Weisberg un mes después, y Eric Schenk liberó su implementación Linux en febrero de 1997 (la actual implementación usa net.ipv4.tcp_syncookies).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.