Назад | Перейти на главную страницу

Расчет TCP syn cookie на Windows Server

Windows Server использует файлы cookie синхронизации TCP для защиты от атак синхронного переполнения.

Известно ли, как операционная система (Windows Server 2008 R2 и Windows Server 2012) вычисляет файл cookie синхронизации? Если да, то как производится расчет?

Формула приведена в Википедии - http://en.wikipedia.org/wiki/SYN_cookies

  • позволять т быть медленно увеличивающейся отметкой времени (обычно time() 6 позиций с логическим смещением вправо, что дает разрешение 64 секунды)
  • позволять м - значение максимального размера сегмента (MSS), которое сервер сохранил бы в записи очереди SYN.
  • позволять s быть результатом криптографической хеш-функции, вычисленной по IP-адресу и номеру порта сервера, IP-адресу и номеру порта клиента, а также значению т. Возвращаемое значение s должно быть 24-битным значением.

Первоначальный порядковый номер TCP, то есть SYN cookie, вычисляется следующим образом:

  • Первые 5 бит: т мод 32
  • Следующие 3 бита: закодированное значение, представляющее м
  • Последние 24 бита: s

Только Microsoft знает наверняка, реализует ли Windows SYN Cookies таким образом, потому что это закрытый исходный код, но для взаимодействия с другими ОС имеет смысл следовать этой формуле.

Вы можете увидеть одну реализацию файлов cookie SYN в сеть / ipv4 / syncookies.c в Linux.