SYN cookie

✍ dations ◷ 2025-09-11 18:23:00 #计算机网络安全,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 页面存档备份,存于互联网档案馆)。

相关

  • 滨松医科大学滨松医科大学(はままついかだいがく、Hamamatsu University School of Medicine)位于静冈县滨松市半田山的日本国立大学。在JR滨松站北出口汽车站13号上车口乘坐“磐田山手线
  • 微颚动物门微颚动物门(学名:Micrognathozoa)是1994年发现的一个动物门。目前只有一种动物淡水颚虫(Limnognathia maerski),由丹麦科学家在格陵兰北部的迪斯科岛地区的泉水里首次发现。它被归
  • 褐藻褐藻(学名:Phaeophyceae)是属较高等的多细胞藻类,属真核细胞生物,有1,500种左右,主要分布于大陆附近的水域,则淡水种罕见。褐藻纲外表从暗褐色的橄榄绿都有,其取决于褐藻素与叶绿素
  • 都匀都匀市位于中国贵州省南部,是黔南布依族苗族自治州的首府。距离贵州省省会贵阳146公里。都匀市总面积2274平方公里,总人口为50万,有布依族、苗族、水族、瑶等33个少数民族,占总
  • 计算机解放/梦想机器《计算机解放/梦想机器》(英语:Computer Lib/Dream Machines)是1974年由泰德·尼尔森出版的一本书,该书以双封面平装本的形式印刷以彰显其互文性(Intertwingularity)。此书最初由
  • 共振价键理论在凝聚体物理学中,共振价键理论(英语:resonating valence bond theory,简称RVB)是一种试图解释高温超导(尤其是铜氧化物超导体)的理论模型。1987年,美国物理学家菲利普·安德森和印
  • 勒尔锦勒尔锦(满语:ᠯᡝᡵᡤᡳᠶᡝᠨ,转写:;1652年1月29日(顺治八年十二月十九)-1706年9月7日(康熙四十五年八月初一)),满洲爱新觉罗氏。礼烈亲王代善曾孙、颖毅亲王萨哈璘孙、顺承恭惠郡王勒
  • 史学史史学史以研究历史学的发展过程为主。不同时代中的历史学,反映相异时代的历史观,呈现人类思想史的发展过程。人类历史上各个时代记录的历史,反映了当时人们的思想观念,作者的观察
  • 翦知湣翦知湣(1966年12月-),湖南常德人,维吾尔族,中国海洋地质学家。翦知湣于1987年毕业于北京大学地质系古生物与地层学专业。后赴同济大学海洋地质与地球物理系攻读研究生,1993年获博士
  • ProLiantProLiant为电脑系统设备厂商HP的服务器系列产品。ProLiant最初起源于公元1990年代,由当时的电脑大厂COMPAQ所开发出来,为使用在企业端的X86等级工业标准服务器。在2002年COMPA