Windows Server上的TCP syn cookie计算

Windows Server使用TCP syn cookies来防止同步洪泛攻击。

是否知道操作系统(Windows Server 2008 R2和Windows Server 2012)如何计算syn cookie? 如果是这样,计算如何完成?

公式在维基百科上给出 – http://en.wikipedia.org/wiki/SYN_cookies

  • t是一个缓慢增加的时间戳(通常是time()逻辑右移6个位置,这就给出了64秒的分辨率)
  • m是服务器存储在SYN队列条目中的最大段大小(MSS)值
  • 让我们根据服务器IP地址和端口号,客户端IP地址和端口号以及值t计算encryption散列函数的结果。 返回的值必须是24位的值。

最初的TCP序列号,即SYN cookie,计算如下:

  • 前5位: t模32
  • 接下来的3位:表示m的编码值
  • 最后24位: s

只有微软知道Windows是如何实现SYN Cookie的,因为它是封闭的源码,但是为了与其他操作系统互操作,遵循这个公式是有意义的。

你可以在Linux的net / ipv4 / syncookies.c中看到一个SYN Cookies的实现 。