AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

浅析 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:003341
用户头像

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

关注

评论

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

02.单一职责原则详解

杨充

DAPP项目的外包开发流程

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

商品管理:服装品牌的利润引擎与智能化升级

第七在线

低代码有多好操作?大概有手就行

秃头小帅oi

不懂代码的人也可以5分钟完成一个简单的支付页面(含使用教程)

CodeBuddy

云智慧ITSM:以技术创新引领行业智能化应用

云智慧AIOps社区

ITSM ITSM软件 IT服务管理 IT服务台

有了 BI 为什么还需要指标平台

Aloudata

数据分析 BI 指标管理 指标平台 指标开发

DAPP外包开发的安全性

北京木奇移动技术有限公司

dapp开发 软件外包公司 web3开发

SQL大宝剑-已燃尽所有SQL的理解

京东科技开发者

数据科学家成长路线图

俞凡

人工智能 算法

网页多模态建模思考

百度Geek说

RAG+Prompt,AI编程从需求到代码

CodeBuddy

你不知道的 7 项 CSS 新功能

伤感汤姆布利柏

「数据密集型应用系统设计」读后感与团队高并发高性能实践案例

京东科技开发者

京东图片搜索商品拍立淘接口(JD.item_search_img)

tbapi

京东API接口 京东图片搜索接口 京东拍立淘接口

web3项目外包的上线部署

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

LED广告显示屏:如何吸引眼球并提升商业价值

Dylan

商业 城市 LED LED display LED显示屏

当下热门火爆婚恋交友系统app软件源码,陌生人社交交友系统

DUOKE七七

php uniapp 婚恋交友相亲APP小程序

在线文档云平台(源码+文档+部署+讲解)

深圳亥时科技

营销场景中,如何让你的短信不被识别为垃圾短信

京东科技开发者

华为天气年度榜单出炉,带你了解2024中国城市天气情况

最新动态

揭秘2024年B站最火RAG视频是怎样炼成的

Zilliz

向量数据库 rag 鲁迅 文本分块

当今社会婚恋交友系统对人们的影响,搭建一款婚恋交友app需要准备什么东西?

DUOKE七七

php 开源 uniapp 交友系统

C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验

阿里巴巴云原生

阿里云 RocketMQ 云原生

人工智能与区块链的碰撞:双剑合璧的创新前景

天津汇柏科技有限公司

区块链 AI 人工智能

这个冬天,我们一起升级吧

最新动态

AI算力要变天了?一文搞懂ASIC和GPU

Finovy Cloud

gpu 算力 AI算力 ASIC

DApp外包开发的框架

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

主打一个“小巧灵动”:Vite + Svelte

vivo互联网技术

性能 vite Svelte 研发效率 轻量

平凯星辰亮相开放原子开发者大会,TiDB 荣获年度活跃开源项目奖项

PingCAP

开源 分布式 TiDB 数据库、

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