SYN cookies

SYN Cookies es una técnica usada para defensa del ataque inundación SYN. Daniel J. Bernstein, inventor inicial de la técnica, 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. From Wikipedia, the free encyclopedia

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:

  • t = Un Timestamp con crecimiento retardado (típicamente time() desplazado a la derecha 6 posiciones, dando una resolución de 64 segundos)
  • m = El valor de tamaño máximo de segmento que el servidor podría haber grabado en la entrada SYN de la cola
  • s = El resultado de una función secreta de cifrado, calculada sobre la base de dirección IP del servidor, y su número de puerto, dirección IP del cliente y su número de puerto, y el valor t. El valor retornado s, debe ser de 24 bits de longitud.

El número de secuencia TCP inicial en SYN Cookie, se calcula como sigue:

  • Primeros 5 bits: t Módulo 32
  • Próximos 3 bits: un valor codificado representando m
  • Finales 24 bits: s

(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:

  • Chequea el valor t respecto del tiempo actual, para ver si la conexión ha expirado.
  • Recalcula s para determinar si este es un SYN cookie válido.
  • Decodifica el valor m de los 3 bits codificados en SYN Cookie, el cual puede usar para reconstruir la entrada en la cola SYN.

A partir de este punto en adelante, la conexión continúa normalmente.

Desventajas

Historia

Referencias

Related Articles

Wikiwand AI