当前位置: 首页 > news >正文

SYN Flood攻击原理,SYN Cookie算法

SYN Flood是一种非常危险而常见的Dos攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,SYN Cookie就是其中最著名的一种。

1. SYN Flood攻击原理

SYN Flood攻击是一种典型的拒绝服务(Denial of Service)攻击。所谓的拒绝服务攻击就是通过进行攻击,使受害主机或网络不能提供良好的服务,从而间接达到攻击的目的。SYN Flood攻击利用的是IPv4中TCP协议的三次握手(Three-Way Handshake)过程进行的攻击。

TCP服务器收到TCP SYN request包时,在发送TCP SYN + ACK包回客户机前,TCP服务器要先分配好一个数据区专门服务于这个即将形成的TCP连接。一般把收到SYN包而还未收到ACK包时的连接状态称为半打开连接(Half-open Connection)。在最常见的SYN Flood攻击中,攻击者在短时间内发送大量的TCP SYN包给受害者。受害者(服务器)为每个TCP SYN包分配一个特定的数据区,只要这些SYN包具有不同的源地址(攻击者很容易伪造)。这将给TCP服务器造成很大的系统负担,最终导致系统不能正常工作。

2. SYN Cookie

SYN Cookie是对TCP服务器端的三次握手做一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器接收到TCP SYN包并返回TCP SYN + ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。这个cookie作为将要返回的SYN ACK包的初始序列号。当客户端返回一个ACK包时,根据包头信息计算cookie,与返回的确认序列号(初始序列号 + 1)进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。实现的关键在于cookie的计算,cookie的计算应该包含本次连接的状态信息,使攻击者不能伪造。

3. SYN Cookie算法

服务器收到一个SYN包,计算一个消息摘要mac。

mac = MAC(A, k);

MAC是密码学中的一个消息认证码函数,也就是满足某种安全性质的带密钥的hash函数,它能够提供cookie计算中需要的安全性。

在Linux实现中,MAC函数为SHA1。

A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t || MSSIND

k为服务器独有的密钥,实际上是一组随机数。

t为系统启动时间,每60秒加1。

MSSIND为MSS对应的索引。

以上关于SYN FLOOD

http://www.lryc.cn/news/443449.html

相关文章:

  • 计组(蒋)期末速成笔记1
  • mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)
  • 【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?
  • 常用的图像增强的算法之间的联系和区别
  • SpringBoot+Vue考试系统免费分享
  • 音视频入门基础:FLV专题(1)——FLV官方文档下载
  • 使用c#制作一个小型桌面程序
  • Clip studio paint百度云下载:附安装包+教程
  • 从Yargs源码学习中间件的设计
  • 高级I/O知识分享【epoll || Reactor ET,LT模式】
  • Matlab 的.m 文件批量转成py文件
  • 【软考】传输层协议TCP与UDP
  • Arthas dashboard(当前系统的实时数据面板)
  • 微服务保护之熔断降级
  • TomCat乱码问题
  • 依赖库查看工具Dependencies
  • Kafka 下载安装及使用总结
  • python实现多个pdf文件合并
  • 2409js,学习js2
  • SpellBERT: A Lightweight Pretrained Model for Chinese Spelling Check(EMNLP2021)
  • 【机器学习】--- 决策树与随机森林
  • [SAP ABAP] 创建域
  • STM32 通过 SPI 驱动 W25Q128
  • C#进阶-基于雪花算法的订单号设计与实现
  • 低版本SqlSugar的where条件中使用可空类型报语法错误
  • 跨游戏引擎的H5渲染解决方案(腾讯)
  • docker构建java镜像,运行镜像出现日志 no main manifest attribute, in /xxx.jar
  • react + antDesignPro 企业微信扫码登录
  • Go-知识-定时器
  • 【alluxio编译报错】Some files do not have the expected license header