随着网络规模的不断扩大,2020年IPFS的一个主要重点是改进内容路由。虽然我们对DHT上的请求速度进行了重大改进(https://blog.ipfs.io/2020-07-20-dht-deep-dive/),但我们的另一个关键重点是网络的安全性。在发布 go-ipfs 0.5 之前的工作中,A-SIT 和 Graz 科技大学的 Bernd Prünster 和 Alexander Marsalek 联系了我们,告知我们他们在针对 go-ipfs 0.4.23 的研究中发现的一种攻击,这种攻击可以让攻击者用最少的资源吃掉公共 DHT 上的任何节点。在过去3个小版本的go-ipfs(0.5、0.6和0.7)中,我们一直与Bernd和Alexander密切合作,这使得我们能够发布增量改进,减轻了他们的原始攻击,并将此类攻击的成本和难度提高了几个数量级。今天我们将深入研究该攻击和我们发布的各种缓解措施。如果你想阅读完整的论文,“全部的Eclipse病毒——扰乱“破坏IPFS系统”,你可以在TU Graz研究门户网站上找到它。
1.缓解攻击
Eclipse攻击指的是攻击者将对等体与网络其他部分隔离开来,使目标对等体只与攻击者控制的对等体通信的能力。这种攻击的目标是污染目标对等体的DHT路由表,使只有攻击者控制的对等体存在。在Bernd和Alexander发现的攻击中,他们利用libp2p和大量预先生成的Peer ID列表,创建了一个Sybil攻击,共计29TB的数据,以游戏libp2p中的信誉系统,从而接管路由表。
如果你对Sybil攻击(https://en.wikipedia.org/wiki/Sybil_attack)不熟悉的话,其原理是利用单个Peer的大量假名ID来颠覆信誉系统,以增加对网络的影响力。在这种攻击的背景下,假ID最终会在受影响对等体