近日,IPFS官方发布博客,就如何强化公共DHT以抵抗eclipse攻击进行详细介绍,星球君帮大家翻译了一下,让我们来看看官方都说了什么吧:

IPFS 2020 年的一个主要焦点是随着网络规模的不断扩大而改进内容路由。虽然我们已经对 DHT 上的请求速度做出了重大改进,但我们的另一个关键关注点是网络的安全性。

在我们工作 go-ipfs 0.5 的发布,A-SIT 的 Bernd Prünster 和 Alexander Marsalek 和格拉茨科技大学联系了我们,告诉我们他们在研究 Go-IPFS 0.4.23 期间发现了一种攻击,可以让攻击者用最少的资源使公共分布式哈希表上的任何节点黯然失色。

在过去的 3 个 go-ipfs 小版本(0.5、0.6和0.7)中,我们一直与 Bernd 和 Alexander 密切合作,这使我们能够发布增量改进,减轻了他们最初的攻击,并将此类攻击的成本和难度提高了几个数量级。今天我们将深入探讨攻击和我们已经发布的各种缓解措施。如果你想阅读全文,“全蚀的心脏-扰乱星际文件系统”,你可以在 TU Graz 研究门户网站上找到它。

减轻攻击

Eclipse 攻击是指攻击者将对等设备与网络的其余部分隔离,以便目标对等设备仅与攻击者控制的对等设备通信的能力。此攻击的目标是污染目标对等点 DHT 路由表,以便只显示攻击者控制的对等点。

在 Bernd 和 Alexander 发现的攻击中,他们使用 libp2p 和大量预生成的 Peer id 列表(总计29TB数据)创建了 Sybil 攻击,在 libp2p 中对声誉系统进行博弈,以接管路由表。

如果您不熟悉 Sybil 攻击,其想法是您可以使用具有大量假名 ID 的单个对等点来颠覆信誉系统,以增加对网络的影响力。在此攻击的上下文中,虚假 ID 最终取代了受影响对等点的路由表中诚实对等点的位置。

为了使这次攻击成功,暴露了 libp2p 中的一些漏洞,这最终导致这次攻击在 go-ipfs 0.4.23 中非常有效。在此攻击被发现时,libp2p 的一个主要问题是 DHT 不支持长寿命的对等点,而且它没有保护其较低桶中的对等点(网络另一半上的对等点)。这个问题允许攻击者快速地从目标的路由表中驱逐诚实的对等点,以使其支持不诚实的对等点。作为对 go-ipfs 0.5 中 DHT 的彻底修改工作的一部分,我们改变了路由表中条目的管理方式。

影响此操作的主要变化之一是,我们将不再从仍可用的路由表中逐出对等点。再加上我们对 go-ipfs 0.5 中 DHT 所做的其他改进,使得攻击的执行难度增加了几个数量级。您可以在 IPFS 0.5 内容路由深入介绍中了解对 DHT 的详细更改。

除了 go-ipfs 0.5 中的变化之外,我们还解决了几个进一步增加攻击难度和成本的问题。这次攻击成功的部分原因是,一个 Sybil 节点通过滥用对作为中继的节点的评分的缺陷来欺骗有价值连接的信誉系统。该缺陷可能允许一个 Sybil 节点作为后续 Sybil 节点的中继,这将继续提高中继的分数。这可以通过使用嵌套 Sybils 为单个对等点完成,从而迅速获得大量不可靠的声誉。

为了解决这个问题,我们对继电器应用了一个不变的分数,这允许我们仍然重视他们,但避免他们能够夸大他们的声誉。通过提高内部信誉系统的完整性,我们已经降低了西比尔攻击的效力。

为了增加这类攻击的成本,我们所做的另一个重大改变是在路由表中引入 IP 多样性需求。最初对 go-ipfs 0.4.23 的攻击能够在一台机器上运行,而且成本相对较低,因为路由表可能只包含来自单个主机的对等点。IP 多样性要求现在限制了来自任何给定主机的对等点的数量,这使得从单台机器执行 eclipse 攻击变得不可行,进一步增加了 go-ipfs 0.5 攻击成本的两个数量级。

验证缓解措施

作为与 Bernd 和 Alexander 合作的一部分,我们希望确保能够适当地测试和验证我们的修复,我们采取了两种方法:

现场测试

在我们的允许下,他们对公共网络上的一个托管引导节点执行了一次受控攻击。这使我们能够收集实时度量和日志,从我们的可见性和它们的外部观察观察攻击的有效性。在从 go-ipfs 0.5 开始的 IPFS 发行版之前,在 IPFS 的每个版本上都执行了受控攻击,这使我们能够在生产环境中验证修复程序。

Testground 复制

多亏了 Testground 的开发和发布,Bernd 和 Alexander 共享了他们的攻击代码,我们能够创建测试计划来复制攻击的各个部分。这使我们能够在受控的测试环境中对变更进行大规模测试,以验证攻击是可能的,并验证我们的缓解措施。拥有这些测试计划的好处是,我们可以在 IPFS 和 libp2p 版本上继续运行它们,以确保不会引入回归。

此外,这确保了我们可以在受控的环境中更长时间地运行攻击,从而进一步分析攻击的效率和成本。

现处位置

在过去的一年里,我们对 IPFS 和 libp2p 的性能和安全性都有了显著的改进,协作是这项工作成功的重要因素。Bernd 和 Alexander 所做的研究以及他们与我们如此紧密合作的意愿对于帮助我们改善网络的稳定性具有不可估量的价值。我们很感激有机会一起工作。

随着今年 9 月 go-ipfs 0.7 的发布,我们将执行针对 IPFS 和 libp2p 的 eclipse 和 Sybil 攻击的难度和成本从它的 0.4.23 增加了几个数量级。

如果您还没有更新到 go-ipfs 0.7,我们建议您尽快更新,以便充分利用这些改进。查阅 go-ipfs 0.7 更新指南,了解如何更新的细节!

声明:本文文字图片来源于网络,仅供交流学习,如有侵权,请联系删除。

【Filestar专题】你应该知道的Filestar

Filecoin会涨到100美金吗

改造世界,物联网为什么需要IPFS/Filecoin

为什么我们要参与Filecoin数据存储生机勃勃,IPFS分布式存储迎来时代风口IPFS背后的故事是什么让Filecoin如此不同?Filecoin的证明系统第一任央行数字货币研究所所长谈IPFS/FIL,是未来重要发展方向

eclipse没有日志_强化公共DHT以抵抗eclipse攻击,ipfs官方还说了什么?相关推荐

  1. eclipse优化运行速度_IPFS:强化公共DHT以抵抗eclipse攻击

    原标题:IPFS:强化公共DHT以抵抗eclipse攻击 近日,IPFS官方发布博客,就如何强化公共DHT以抵抗eclipse攻击进行详细介绍,麦客存储为您整理编译,内容如下: IPFS 2020 年 ...

  2. eclipse没有日志_IPFS技术最新进展:抵抗eclipse攻击的能力

    点击上方蓝字关注我们! IPFS 2020 年的一个主要焦点是随着网络规模的不断扩大而改进内容路由.虽然我们已经对 DHT 上的请求速度做出了重大改进,但我们的另一个关键关注点是网络的安全性. 在我们 ...

  3. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!

    导语 随着网络规模的不断扩大,2020年IPFS的一个主要重点是改进内容路由.虽然我们已经对 DHT 上的请求速度做出了重大改进,但我们的另一个关键关注点是网络的安全性.在发布 go-ipfs 0.5 ...

  4. eclipse没有日志_「开源资讯」Jboot v3.3.6 发布,更强大的控制台请求日志

    Jboot 是一个基于 JFinal.JFinal-Undertow.Dubbo.Seata.Sentinel.ShardingSphere.Nacos 等开发的微服务框架,帮助开发者降低微服务开发门 ...

  5. eclipse java 测试_测试:LR中使用Eclipse来进行Java程序的测试方法

    LR中使用Eclipse来进行Java程序的测试方法: http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7 ...

  6. eclipse java敏捷_基于Spring+Hibernate+Eclipse进行敏捷Java开发(2)

    敏捷绘图 在继续下面的讨论前,请允许我简短地介绍一种新颖而相当简单的技术-敏捷绘图:我正是借助于它绘制了上面的图3-7.这一技术成为略显"笨重"的统一建模语言(UML)的一种替代, ...

  7. Unity学习日志_车轮碰撞器简介

    Unity学习日志_车轮碰撞器简介 1. 简介: 车轮碰撞器是一种针对地面车辆的特殊碰撞体.他有内置的碰撞检测.车轮物理系统和有滑胎摩擦的参考体.除了车轮,该碰撞体也可以用于其他游戏对象. 属性: M ...

  8. java中git使用教程_【教程】Git在Eclipse中的安装和基本使用

    一.安装 点击 Help->Install New Software->add 安装地址为:http://download.eclipse.org/egit/updates/ 选择插件 点 ...

  9. an初始java运行环境错误_【环境问题】STS(eclipse)启动出现错误提示:an error hava occured,see the log......

    [环境问题]STS(eclipse)启动出现错误提示:an error hava occured,see the log... 发布时间:2018-06-08 14:08, 浏览次数:562 , 标签 ...

最新文章

  1. Qt qCompress和qUncompress 压缩和解压文件
  2. 【20160924】GOCVHelper 图像处理部分(2)
  3. 谈一下对绩效和自身技能发展的理解
  4. Android 4.4(KitKat)表格管理子系统 - 骨架
  5. The Reflection And Amplification Attacks NTP Reply Flood Attack Based On NTP
  6. Python函数(1)
  7. 我用Python爬虫挣钱的那点事
  8. JavaScript学习——判断数据类型总结(转)
  9. virtualbox+vagrant快速创建虚拟机
  10. angular 居中_Angular Material design设计
  11. SQL Server高级查询之T-SQL编程(流程控制语句)
  12. JZOJ5775 农夫约的假期
  13. 雷达信号处理---线性调频信号脉冲压缩MATLAB实现
  14. 货币代码php,根据符号获取货币代码 - php
  15. ELK日志系统设计方案-Log4j日志直推Kafka
  16. android 键盘 码,Android键盘输出增加按键码
  17. 在用docker部署nginx时,出现curl: (6) Could not resolve host: localhsot; 未知的错误
  18. python 数字运算及格式化_Python基础教程(3)Python数据类型、运算与格式化
  19. WinEdt编译提示pdf文件打不开,Cannot Run pdf
  20. Unity 获取设备信息

热门文章

  1. jquery手写轮播图_15个超强的jQuery/HTML5图片轮播插件
  2. antd table排序 vue_商品品牌业务之Vue编写前端页面
  3. java实时记录在线人数
  4. oracle日志文件大小规则,修改oracle日志文件大小
  5. 【button】 按钮组件说明
  6. vue2.0移除或更改的一些东西
  7. 微信小程序 网络请求之设置合法域名
  8. h1、h2、h3标签及strong标签对页面seo的影响
  9. 课时105.边框属性下(掌握)
  10. 这是一次 docker 入门实践