SYN cookie

✍ dations ◷ 2025-05-19 22:54:30 #计算机网络安全,TCP/IP

SYN cookie 是一种用于阻止 SYN flood 攻击的技术。这项技术的主要发明人 Daniel J. Bernstein 将 SYN cookies 定义为“TCP 服务器进行的对开始TCP数据包序列数字的特定选择”。举例来说,SYN Cookies 的应用允许服务器当 SYN 队列被填满时避免丢弃连接。相反,服务器会表现得像 SYN 队列扩大了一样。服务器会返回适当的 SYN+ACK 响应,但会丢弃 SYN 队列条目。如果服务器接收到客户端随后的ACK响应,服务器能够使用编码在 TCP 序号内的信息重构 SYN 队列条目。

发起一个 TCP 连接时,客户端将一个 TCP SYN 包发送给服务器。作为响应,服务器将 TCP SYN + ACK 包返回给客户端。此数据包中有一个序号(sequence number,TCP头中的第二个32 bit),它被 TCP 用来重新组装数据流。根据 TCP 规范,由端点发送的第一个序号可以是由该端点决定的任何值。SYN Cookies 是根据以下规则构造的初始序号:

初始 TCP 序号,也就是所谓的 ,按照如下算法得到:

注:由于 必须用 3 位进行编码,服务器在启用了 SYN Cookie 时只能为 发送八种不同的数值。

根据 TCP 规范,当客户端发回 TCP ACK 包给服务器以响应服务器的 SYN + ACK 包时,客户端必须使用由服务器发送的初始序号加1作为数据包中的确认号。服务器接着从确认号中减去 1 以便还原向客户端发送的原始 SYN Cookie。

接下来服务器进行以下检查:

SYN Cookies 的使用不与任何协议定义冲突,照理来说它该和所有的 TCP 实现兼容。然而,当 SYN Cookies 使用的时候,会发生两种值得注意的变化:首先,服务器只能编码八种 MSS 数值,因为只有 3 位二进制空间可用。其次,这个服务器必须拒绝所有的 TCP 选用项,例如大型窗口和时间戳,因为服务器会在信息被用其他方式存储时丢弃 SYN 队列条目。

尽管这些限制将不可避免地导致一个不如最佳的体验,它们的效果很少被客户端注意到——这些改变只在被攻击时值得注意。在这样的情况下,牺牲 TCP 选项来保护连接一般被认为是合乎情理的。

Linux内核 从 2.6.26 版本开始为 TCP 选用项加入了有限的支持,通过把它们编码在时间戳内实现。

较新的 TCP Cookie 传输(TCPCT)标准被设计用来克服 SYN Cookies 的这些问题,并且在各种方面改进这套机制。不像 SYN Cookies,TCPCT 是一个 TCP 拓展并且要求两端点都支持 TCPCT。

被设置为允许所有出站连接但对入站连接有限制(例如在 Web 服务器上只允许 80 端口)的简单防火墙一般是这样实现的:只阻断不必要端口的 SYN 请求。如果 SYN Cookies 被启动了,应当小心以保证攻击者不能使用伪造 ACK、尝试随机序列号的方式来绕过这样的防火墙。因此 SYN cookies 应该按照每个端口单独处理的方式来调节开关,这样的话一个公共端口上的 SYN Cookies 并不会在一个私有端口上被认可。

Daniel J. Bernstein 和 Eric Schenk 于 1996 年九月创造了这个技术。Jeff Weisberg 在一个月后发布了最早的实现(在 SunOS 上),Eric Schenk 随后在 1997 年二月发布了他的 Linux 实现(目前的实现使用,例如 net.ipv4.tcp_syncookies 页面存档备份,存于互联网档案馆)。

相关

  • 水神水神、海神、河川神、湖泊神都可以统称水神,其称呼广泛。
  • 零假设在推论统计学中,零假设(英语:null hypothesis,又译虚无假设、原假设,符号: H 0
  • 辛巴族辛巴族是生活在非洲纳米比亚北部为数不多的族群,人口约为2万左右,以游牧为生,至今还保持着自己民族的原始生活形态。辛巴妇女每天都要往身上涂红色石粉,这种石头产于当地,磨成粉
  • 第6周期元素第6周期元素是元素周期表第六行(即周期)的元素,包括镧系元素。该周期元素都具有一定毒性。有:第1周期元素 -第2周期元素 -第3周期元素 -第4周期元素 -第5周期元素 -第6周期元素
  • 米希格·索诺姆皮勒米希格·索诺姆皮勒(蒙古语:Мишигийн Сономпил,1965年-)蒙古族,蒙古乌布苏省人,蒙古国政治人物。索诺姆皮勒生于1965年。早年接受军事教育。后来成为“Zaluu mongo
  • 莱巴嫩 (俄勒冈州)莱巴嫩(Lebanon,发音),美国俄勒冈州林县的一个城市,位于该州西北部。该市总人口15,518(2010年)。根据美国统计局统计,该市总面积17.79平方公里,其中陆地面积17.28平方公里,水域面积0.5
  • 爱加亚由愛加あゆ(1987年10月18日,爱称Ayu(Rena))前宝冢歌剧团雪组主演娘役。公称身高161公分。生于富山县富山市、姐姐是前星组主演娘役梦咲宁宁。爱加あゆ御垣悦子(1930年退团) · ·
  • 王后的喜芭蕾《王后的喜芭蕾》又译为《王后喜剧芭蕾》,被称为“第一部真正的芭蕾”,1581年由诗歌音乐学院推出,首演于巴黎“小波旁宫”正厅。这部芭蕾是为了庆祝当时法国路易斯王后(英语:Loui
  • 1965-66球季英格兰足总杯1965/66球季英格兰足总杯(英语:FA Cup),是第85届英格兰足总杯,今届赛事的冠军是爱华顿,他们在决赛以3:2击败锡周三,夺得冠军。本届赛事继续在旧温布莱球场举行。爱华顿第三次赢得足
  • 周汤豪周汤豪(英语:Nick Chou,1988年8月2日-),台湾男歌手、演员与DJ,出身于演艺世家,父母亲皆为艺人。2010年正式发行首张同名个人专辑,2012年首次参演偶像剧《粉爱粉爱你》,2016年相隔四年