2. 女巫攻击
什么是女巫攻击
之前的文章在讲拜赞庭容错的时候,我们提到了女巫攻击Sybil Attack。那什么是女巫攻击呢?
女巫攻击这个词来源于Flora Rheta Schreiber 在1973年的小说《女巫》,这本小说写的是对兼具多种人格的Sybil Dorsett进行心理治疗的故事。一人化身为多人,这个就是女巫攻击的本质。
在一个单纯的分布式P2P网络中,任何节点可以随意的加入和退出P2P网络,没有任何限制。它只需要对外暴露其在P2P网络中的唯一标志即可,除此之外,其他的信息都是私有的。
鉴于P2P网络分布式的特性,这就意味着没有任何中心节点,或者说没有特权节点。这样即使大家发现了恶意的节点,也没有权利去回滚整个网络的操作。在P2P网络中,我们必须假设所有的节点都是不可靠的,跟所有其他节点的交互都是有风险的。
女巫攻击正是利用了P2P网络的分布式特性,将一个节点伪装成多个节点,并将这多个伪装节点(也叫做Sybil 节点)广播到整个P2P网络中,从而做一些莫可名状的事情,比如获得网络控制权,拒绝响应,干扰查询等事情。
考虑到之前我们提到的拜赞庭容错,如果发生了女巫攻击,一个节点可以伪装成多个有效节点,这样只要伪装的节点突破n/3的限制,就能控制整个网络。而实际上,恶意节点可能只有一个。
女巫攻击的防范
事实上,在某些P2P网络中,女巫攻击并不需要花费太多功夫即可完成。那么我们我们怎么去防范女巫攻击呢?