AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

浅析 TCP 握手欺骗

  • 2015-12-10
  • 本文字数:1230 字

    阅读完需:约 4 分钟

通常来说,TCP 握手就表示通讯双方互相验证了 IP 地址。事实却并非如此,TCP 握手欺骗是一种新型的攻击方式。

假设 A 是客户端,正在连接 B:

A: Hi B, I’m A, send number 5.
B: Hi A, I’m B, 5, send number 3.
A: Hi B, I’m A, 3, send number 6. I’d like example.net.
B: Hi A, I’m B, 6, send number 4. Here comes the data: …

在这之后,A 与 B 将会互发数据。同时为了保证所有数据都能被收到,即通信的可靠性,数字会不断增加。在 1981 年设计 TCP 协议时,安全性没有被优先考虑。ARPANET 给出了一个列表,他们需要一个协议来发送数据,并且不用担心数据重传错误、校验数据完整性、保持数据包序列等等,TCP 解决了这些问题。这些数字被称为序列号(Seq)和确认号(Ack),它们会引发两个问题:

  • 字段不够大(32 位)
  • 由于他们承担了双重责任,为了不破坏连接不正确的数字必须被丢弃。换句话说,你可以发送不正确的 Ack,但只要后续的数据包拥有正确的 Ack 将会被正常接收。

我们来演示一下利用者两个缺陷进行攻击,A 发送数据给 B:

A: Hi B, I’m C, send number 5.
B: Hi C, I’m B, 5, send number 3.
A: Hi B, I’m C, 1, send number 6. I’d like example.net.
B: Hi C, I’m B, that’s incorrect. Close the connection please.
A: Hi B, I’m C, 2, send number 6. I’d like example.net.
B: Hi C, I’m B, that’s incorrect. Close the connection please.
A: Hi B, I’m C, 3, send number 6. I’d like example.net.
B: Hi C, I’m B, 6, send number 4. Here comes the data: …

上面的情形中 B 根本无从知道自己在响应一个伪装的 IP 地址,真正的 C 也根本不知道发生了什么。平均需要花费 120GB 网络流量就能创建一个欺骗连接,这取决于你的运气,不好的话可能需要 200GB,但运气好时只需要 72GB。许多拥有 1gbps 带宽的 VPS 非常便宜,如果你充分利用它,每次攻击平均只要 17 分钟左右。通常如果你想要注入一个有效载荷,例如发送一个命令,它需要被放在现有数据后面,这会增加攻击所需的流量。例如发送“GET / HTTP/1.0\n\n”平均需要 152GB 或者 20 分钟,但这会使得你的连接在对方的 access logs 显示为一个正常的连接。

由于 TCP 协议自身的原因,这种攻击很难解决。虽然可以拒绝大量的不正确的 Ack,并可以以此为理由关闭连接,即便如此,还是会留下巨大的利用空间。如果要互相认证对方,那就需要额外的安全条件,例如使用 TSL。即使证书没有被认证过,由于客户端需要接收额外的数据,任何加密的 TSL 会话都会认证,这样欺骗就无法进行。总之,不要使用基于 IP 地址的认证,不要相信 IP 地址白名单,当你需要安全性的时候使用安全协议认证。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015-12-10 18:003328
用户头像

发布了 32 篇内容, 共 20.5 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

MindSpore强化学习:使用PPO配合环境HalfCheetah-v2进行训练

华为云开发者联盟

人工智能 华为云 强化学习 华为云开发者联盟 企业号2024年4月PK榜

CrossOver代替KeyGen Runner运行exe注册机的方法

Rose

ChatGPT Plus订阅用户对GPT-4使用次数限制的失望

蓉蓉

openai ChatGPT GPT-4

Slave SQL线程与PXB FTWRL死锁问题分析

GreatSQL

从零开始训练大语言模型的最佳实践

王玉川

训练 LLM 大语言模型

测试数据不再难,人工智能批量生成给你用!

霍格沃兹测试开发学社

Fantastical for mac让日程管理更加便捷!

Rose

最新版XMind for mac思维导图软件 v24.04.05171中文版

Rose

降本增效,火山引擎ByteHouse助力短剧广告投放效率提升5倍

极客天地

低代码技术在构建质量管理系统中的应用与优势

天津汇柏科技有限公司

质量管理 低代码 质量管理系统

Util 应用框架 UI 全新升级

何镇汐

建立成功平台工程的关键:自助式 IaC

SEAL安全

运维 IaC 平台工程

mac电脑如何导入ps笔刷 ,Adobe Photoshop笔刷导入安装教程详解

Rose

AirPods Pro 如何更换取下和安装耳塞?

Rose

Mac视觉特效处理包FxFactory 8 Pro安装卸载教程

Rose

Mac文本处理软件 FSNotes 中文破解版

Rose

Guitar Pro 8 Mac 吉他编曲学习软件 8.1.2-32 直装版

Rose

程序员都在用哪些神器提升工作效率

小魏写代码

用OpenAI的API实现基本的ChatGPT

王玉川

openai ChatGPT AI Agent

带你开发一个视频动态手势识别模型

华为云开发者联盟

人工智能 华为云 华为云ModelArts 华为云开发者联盟 企业号2024年4月PK榜

Mac电脑怎么设置动态桌面,heic动态桌面壁纸怎么使用

Rose

Serato DJ Pro Suite for Mac:专业DJ设备 支持M芯片

Rose

git客户端工具 Sublime Merge 注册版 mac软件 支持M芯片

Rose

一文读懂Partisia Blockchain 的互操作方案:Oracle 服务框架

西柚子

浅析TCP握手欺骗_安全_百占辉_InfoQ精选文章