女巫攻击(Sybil Attack)

解释

女巫攻击(Sybil Attack), 是一种在线网路安全系统威胁,是指个人试图通过创建多个帐户身份,多个节点或电脑坐标从而控制网络。生活中常见的就是利用多个ip地址刷量、刷赞。

区块链中本质上是一个只写不删的分布式数据库,通过多个节点的冗余数据达到网络的安全和不可篡改。女巫攻击,即为单一节点具有多个身份标识,通过控制系统的大部分节点来削弱冗余备份的作用。

女巫攻击(Sybil Attack)是指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络的大量正常节点的攻击方式

sybil-attach

来源

“Sybil”一词是来自于一位被诊治为“多重人格障碍”的女性名为Sybil Dorsett的个案而来。

Sybil攻击类型

直接通信

进行sybil攻击的一种形式是sybil结点直接与合法结点进行通信。当合法结点发送一个无线消息给sybil结点时,sybil结点中的一个会监听这个消息。同样地,从所有sybil结点发送出的消息事实上也是从同一个恶意设备发出的。

间接通信

在这个版本的攻击中,没有一个合法的结点能够直接与sybil结点进行通信。相反,一个或多个恶意的结点宣称他们能够到达sybil结点。因此,发送给sybil结点的消息都是通过其中的一个恶意结点进行路由转发的,这个恶意结点假装把这个消息发送给sybil结点,而事实上就是这个恶意结点自己接收或者拦截了这个消息。

伪造身份

在某些情况下,一个攻击者可以产生任意的sybil身份。比如说如果一个结点的身份是一个32-位的整数,那么攻击者完全可以直接为每一个sybil结点分配一个32-位的值作为它的身份。

盗用身份

如果给定一种机制来识别结点的身份,那么攻击者就不能伪造身份了。举个例子来说,命名空间,由于命名空间本身就是有限的,根本不允许插入一个新的身份。在这种情况下,攻击者需要分配一个合法的身份给sybil结点。这种身份盗用在攻击者把原有结点摧毁或者使之失效的情况下是不好检测的。

同时攻击

攻击者将其所有的sybil身份一次性的同时参与到一次网络通信中。如果规定一个结点只能使用它的身份一次,那么这个恶意结点就可以循环的使用它的多个sybil身份让人看起来是多个结点。这就是同时性。

非同时攻击

如果攻击者只在一个特定的时间周期里使用一部分sybil身份,而在另外一个时间段里是这些身份消失而以另外的sybil身份出现,这看起来就像网络中正常的结点撤销和加入。

Sybil攻击会导致什么问题?

如果攻击者创建了足够的虚假身份(或Sybil身份),他们能以多数票击退网络上真实的节点。

然后在这情况下,他们可以拒绝接收或传输区块,从而有效地阻止其他用户进入网络。

在比较大规模的Sybil攻击中,前提是当攻击者已控制大部分电脑网络或哈希率,他们可以进行覆盖51%的系统攻击。在这种情况下,他们可以轻易更改交易的顺序,并防止交易被确认。他们甚至可以接控和逆转交易,导双重支出问题。

多年来,计算机科学家们奉献大量的时间研究如何检测和预防Sybil攻击,各研究具备不同程度性的有效性,但是至今仍没有完善的预防方案保证。

所以区块链如何减轻Sybil攻击呢?

许多区块链使用不同的“共识演算法”来帮助扺抗Sybil攻击,例如工作证明,股权证明和委托证明。这些共识演算法实际上并并没有效扺抗Sybil攻击,它们只是使攻击者试图执行成功有困难性,从而变得不切实际。

举个例子说,比特币的区块链应用了一组特定的规则用于新区块的生成。

其中一条规则是如果想拥有创建区块的能力, 你的总机制处理能力必须与提交工作证明能力成比例。这意味着你必须是拥有创建新区块所需有的电脑计算机能力才能创建,对于攻击者而言这成本非常的高昴和困难去做的。

原文地址:https://cloud.tencent.com/developer/article/2137256

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340