多重人格的女巫攻击丨专栏_风闻
中科院之声-中国科学院官方账号-2020-01-11 15:20
【欢迎关注中科院之声公众号(ID:zkyzswx)或微博@中科院之声,看科学界的大事儿】
一、小剧场
小白:大东东,最近区块链貌似很火啊!
大东:是的。近年来,各地政府也纷纷出台相应的区块链创新扶持政策,各大互联网企业也向区块链项目投去目光。
小白:区块链的设计真厉害!去中心化让别有用心的人无法篡改数据,信息的正确性和真实性从此有保障啦~
大东:去中心化的设计确实相比之前更加安全,但这也无法保障这样的应用就不存在安全问题。
小白:诶?此话怎讲?
大东:女巫攻击就是一个典型例子。
小白:前排求科普~
女巫(图片来源于网络)
二、大话始末
大东:女巫攻击(Sybil Attack),是一种在线网路安全系统威胁,是指个人试图通过创建多个帐户身份、多个节点或电脑坐标从而控制网络。
小白:这是创建多个个人社交媒体账户的意思?
大东:可以这么简单地理解。
小白:那为什么叫女巫呀?
大东:“Sybil”一词是来自于一位被诊治为“多重人格障碍”的名叫Sybil Dorsett的女性。Sybil Dorsett被诊断为分离性身份认同障碍,兼具16种人格,这就和同一个个人拥有16个不同账户身份一样。
小白:高度精分呐?!
大东:这在加密货币领域里是件不妙的事。小白,你试想想,如果有人意图投放多个节点在区块链网络上会发生什么事情?
小白:嗯……那他一定很有钱~有钱到一个账户装不下~
大东:瞎想什么呢?!你看,如果网络中存在一个恶意节点,那么同一个恶意节点可以具有多重身份,就如电影《The Sybil Attack》里的女主角都可以分裂出16个身份,那么恶意节点比它还能分。这一分可好,原来需要备份到多个节点的数据被欺骗地备份到了同一个恶意节点,然后……
小白:欺骗地备份…造假吗?
大东:是的,如果攻击者创建了足够的虚假身份,那么他们存储的虚假信息能以多数票击退网络上真实的节点。
小白:好可怕!
大东:然后在这种情况下,他们可以拒绝接收或传输区块,从而有效地阻止其他用户进入网络。
小白:简直魔鬼!
大东:在比较大规模的Sybil攻击中,攻击者能控制大部分电脑网络或哈希率,可以进行覆盖51%的系统攻击。在这种情况下,他们可以轻易更改交易的顺序,并防止交易被确认。他们甚至可以接控和逆转交易,导致双重支出问题。
小白:我的银票啊!
大东:多年来,计算机科学家们奉献大量的时间研究如何检测和预防Sybil攻击,各个研究成果具备不同程度性的有效性。
小白:快讲讲怎么破解!
女巫攻击原理图(图片来源于网络)
三、应用案例
大东:其实,Sybil Attack的思想被广泛用于对抗P2P僵尸网络。
小白:哦?
大东:以知名P2P僵尸网络Strom为例,其采用了基于Kademlia的Overnet协议,正常节点的行为包括:
1、每个加入网络的节点会生成一个ID号用以标识自身;
2、节点通过预设的算法每天生成32个不同key来查询控制命令;
3、控制者会提前在网络中发布这32个key对应的命令<key,command>以供节点查询;
4、根据Overnet协议,<key,command>会存放在K个与该key相邻ID的节点中,并通过递归的方式进行查询。
小白:Sybil节点的行为会有所不同吗?
大东:Sybil节点行为包括:
1、根据待攻击的key空间生成相应的ID(接近key的哈希值),使得查询请求能有较高概率被路由到Sybil节点;
2、主动向网络中的其他节点广播自己的ID,使其出现在其他节点的路由表中;
3、当查询key的路径经过Sybil节点时,Sybil节点返回错误信息,或者重路由到其他Sybil节点,使得正常节点无法进行C&C通信获取控制命令。
小白:真假美猴王啊!
P2P网络中的女巫攻击(图片来源于网络)
大东:就像上面这张图,在僵尸网络中部署一个恶意实体A,同时伪造出多个Sybil节点B、C、D,查询路径经过他们中任意一个,其实都是由恶意实体节点A所控制。Sybil节点应该根据P2P协议的特点进行针对性的部署,以实现最大概率的出现在查询路径中。防御者通过部署Sybil节点不仅可以对P2P僵尸网络的活动进行干扰或阻断,还能实施索引污染、规模测量、活动监视等多种打击策略。
小白:这女巫还挺强的!
四、如何应对
大东:一种方法是工作量证明机制,即证明你是一个节点。这种方法要求节点别只说不练,而是要用计算能力证明,从而极大地增加攻击的成本。
小白:增加攻击成本!让坏人舍不得攻击!
大东:举个例子说,比特币的区块链应用了一组特定的规则用于新区块的生成。其中一条规则是如果想拥有创建区块的能力, 你的总机制处理能力必须与提交工作证明能力成比例。这意味着你必须是拥有创建新区块所需有的电脑计算能力才能创建。对于攻击者而言,这成本非常的高昴。
大东:另一种方法是身份认证。认证机制分为两类,一类是基于第三方的身份认证,每加入一个新的节点都需要与某一个可靠的第三方节点进行身份验证;另一类是纯分布式的身份认证,每加入一个新的节点都需要获得当前网络中所有可靠节点的认证,这种方法采用了随机密钥分发验证的公钥体制的认证方式,需要获得网络中大多数节点的认证才能加入该网络。
小白:从创建之前就开始限制它们的存在!保卫数据的安全!
来源:中国科学院计算技术研究所