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

f26fcf2f59f8424b981566dd8c4a5180.gif

近日,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 研究门户网站上找到它。

49dc2a48dc2d8b299099d65c1a0dc1aa.png

 减轻攻击 

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 的详细更改。

8f3f98c9abbb8b2eaa19fbd72bbddedd.png

除了 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 更新指南,了解如何更新的细节!

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

12245ada35b50500b898ae66b41de59e.png

569d6043b12fbe45d580dc0b50f09aaf.gif

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

Filecoin会涨到100美金吗

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongoDB简明教程-python(转)

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json的bjson格式,因此可以存储比较复杂的数据类型。官方网站:http://www.mo…

HTTP基础10--web(2)

因输出值转义不完全引发的安全漏洞 实施 Web 应用的安全对策可大致分为以下两部分。 客户端的验证Web 应用端(服务器端)的验证: 输入值验证 / 输出值转义客户端允许篡改数据或关闭 JavaScript,不适合将 JavaScript 验证作为安全的防范对策。保…

单一课和综合课的划分依据_武夷岩茶产地如何划分?

产地是指某种物品的生产、出产或加工制造的地点,日常含义是指某种物品的主要生产地。本文探讨的武夷岩茶种植产地,也就是当地茶人俗称的“山场”。武夷岩茶“山场”的俗称可能缘起于宋代的茶政。宋代官府设置“榷(qu)茶场”&#…

windows文件路径大于MAX_PATH

如果文件路径大于MAX_PATH,是无法直接用CreatFile、fopen等方法来打开文件 但是可以通过在路径前面加上“\\?\”来获取文件 比如想要打开下面的文件123.txt,但是文件路径是很长的(假设…是200个字符): C:\123...\1…

C# 枚举 字符串 转换

普通方法 这种方法尽管很SB但确实可以解决问题 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){string SelPath "";switch (comboBox1.SelectedIndex){case 0: SelPath System.Environment.GetFolderPath(System.Environment.SpecialFo…

arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...

MATLAB/Simulink:万物皆可仿真 MATLAB是由美国MathWorks公司出品的一款商业数学软件。它是一个多功能的科学计算平台,将算法开发、数据分析、矩阵计算等诸多强大功能集成在一个易于操作的视窗环境中。MATLAB下的Simulink更是被认为可以“仿真任何系统”。…

排序算法(1) 快速排序 C++实现

快速排序基本特性 时间复杂度:O(n*lgn)最坏:O(n^2)空间复杂度:最好情况下:O(lgn),最坏情况:O(n),平均情况:O(l…

boost 变量类型转换

如果vs版本比较低,会不支持一些std类型转换函数(vs2008就不支持),比如: std::to_string \\数字转字符串 std::stoll \\字符串转数字而且项目碰巧用boost库,可以考虑用下面的的方法来进行类型转换…

PB增删改

新建一个数据窗口----选择需要更新的表,或者直接写sql也可以如下图已经建立好的数据窗口,根据要求将需要更新的列、unigue key 还有需要更新的表设置好,【将需要更新列的taborder设置大于0 这样维护的时候可以编辑(等于0是不能编辑…

(五十六)iOS多线程之NSOperation

NSOpertation是一套OC的API,是对GCD进行的Cocoa抽象。 NSOperation有两种不同类型的队列,主队列和自定义队列。 主队列运行于主线程上,自定义队列在后台运行。 【NSBlockOperation】 通过Block创建任务,下面比较主队列和自定义队列…

android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?

点击上方“刘望舒”,选择“星标”多点在看,就是真爱!作者 : 刘望舒 | 来源 :刘望舒的博客地址:http://liuwangshu.cn/framework/aosp/3-compiling-aosp.html前言在上一篇文章是时候下载Android 9.0系统源码了中&…

boost 文件操作

如果要简单处理文件和文件夹的时候&#xff08;删除、重命名等&#xff09;&#xff0c;使用Windows的系统函数会十分麻烦&#xff0c;可以尝试一下使用Boost库来进行处理 头文件 #include <boost/filesystem.hpp>如果要获得每次处理的结果错误码&#xff0c;需要加上头…

让“是男人就下到100层”在Android平台上跑起来

原工程:https://github.com/jeekun/DownFloors 移植后的代码&#xff1a;HelloCpp.zip 移植后的APK&#xff1a;HelloCpp.apk 说明&#xff1a;&#xff08;cocos2d-x版本是“ 2.2&#xff09; 1.该工程是直接在HelloCpp上修改完成,所以包名也不修改了 2.原工程里面可能是采用g…

Codeforces Round #277 (Div. 2) 题解

Codeforces Round #277 (Div. 2)A. Calculating Functiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputFor a positive integer n lets define a function f: f(n)   - 1  2 - 3  ..  ( - 1)nn Your …

QT 边框圆角处理

平时的边框是平角的&#xff1a; 如果需要圆角的话&#xff0c;就要加stylesheet加上这个&#xff1a; border-radius:3px;比如&#xff1a; QPushButton{ border-radius:3px; }就变成圆角了&#xff1a; px前面的数字越大就越圆&#xff0c;比如5px比3px圆 假如只需要某一…

3级调度 fpga_Vivado HLS学习笔记——1.了解FPGA架构

本篇文章为本人学习Xilinx的Vivado HLS教程记录的学习笔记&#xff0c;仅供学习参考。Vivado HLS官方视频教程&#xff1a;优酷视频​v.youku.com目录&#xff1a; Vivado HLS课程简介FPGA与CPU、GPU、DSP的区别FPGA的优势Xilinx FPGA架构:逻辑单元、算术逻辑单元、存储单元使用…

[LeetCode]Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 思考&#xff1a;DFS。 /*** Definition for binary tree* struct TreeNode {* int val;* Tree…

BZOJ2435 [Noi2011]道路修建

这是NOI11年题&#xff0c;你在逗我&#xff1f; 直接dfs就可以了&#xff0c;Linux下貌似不会爆栈。。。 1 /**************************************************************2 Problem: 24353 User: rausen4 Language: C5 Result: Accepted6 Time:5184 …

Qt异常结束程序无法重新运行

有时候代码有问题会导致qt异常结束 修改完后重新运行又会出现 查看任务管理器又没有这个进程 可以使用资源管理器打开看看 也可以考虑使用process explorer查看 发现程序挂起来&#xff0c;结束掉它就可以重新运行了

hadooppythonsql_半小时搞定Hadoop+Mysql+Hive+Python

1. 说明搭建过Hadoop集群的小伙伴一定知道&#xff0c;如果不用docker&#xff0c;半小时配好HadoopMysqlHive(后简称Hive)肯定是胡吹&#xff0c;有了Docker镜像&#xff0c;没有说明文档&#xff0c;配好了也不一定会用。本文将介绍如何在半小时内&#xff0c;让Hive在你的Li…