S/Kademlia2007 翻译

S/Kademlia:实现安全Key路由的可行方法node

 

摘要git

 

安全性是彻底分散式P2P系统中的常见问题。 尽管关于如何建立一个安全的基于Key的路由协议存在几点建议,但一个可行的方法仍然无人参与。 在本文中,咱们介绍一种基于Kademlia的安全Key路由协议,该协议经过在多条不相交的路径上使用并行查找来抵抗常见攻击,用隐式密码来限制自由节点ID生成,并引入可靠的兄弟广播。 后者须要以安全复制的方式存储数据。 咱们分析评估了咱们提出的Kademlia协议扩展的安全性,并模拟了对抗节点影响下多个不相交路径对查找成功的影响。github

1介绍

长期以来,像Chord [18]或Pastry [14]这样的结构化P2P网络只引发了研究界的兴趣,但并未普遍应用于实际网络。 如今,随着分布式文件共享应用程序的成功,Internet的状况发生了显著的变化。 并且大型多人在线游戏的新兴领域也引发了人们对使用结构化P2P网络构建可扩展存储和通讯服务的兴趣。算法

 

彻底分散的P2P系统的一个主要问题是安全问题。 已经发现了几起针对结构化P2P网络的常见攻击[3,16,17]。 虽然理论上存在不少如何处理此类攻击的建议,但在构建切实可行的安全P2P网络方面几乎没有实践。api

 

目前在互联网上使用的全部普遍部署的结构化覆盖网络(即BitTorrent,OverNet和eMule)都基于Kademlia [11]协议,容易受到多种攻击[5]的影响。 在本文中,咱们分析了对Kademlia网络的攻击并提出了几种可行的对策。缓存

 

本文的其他部分组织以下:在第2节中,咱们提供了一些关于结构化P2P网络的背景知识,并介绍了Kademlia协议。 在第3节中,咱们将概述对Kademlia的常见攻击。 咱们的Kademlia安全扩展的详细设计在第4节中介绍。在第5节中,咱们经过模拟来评估咱们的设计。 最后,第6节涵盖相关工做,第7节结束。安全

 

2背景

在本节中,咱们将提供关于结构化P2P系统的一些背景信息,并描述Kademlia协议的一些属性。全部结构化的P2P网络提供的通用服务是基于Key的路由层(KBR)[6]。该层为来自大标识符空间(称为Key的标识符)提供有效路由(典型地,n比特整数模 ,n = 128或160)。叠加层中的每一个参与节点都从相同的id空间中选择惟一的nodeId,并在覆盖拓扑中维护具备nodeIds和邻居IP地址的路由表。根据覆盖协议,拓扑结构相似于环,超立方体或Bruijn图。每一个节点都负责标识符空间的特定范围,一般用于ID空间中接近其nodeId的全部键。经过这种方式,经过将消息连续转发到具备更接近目的Key的节点ID的覆盖邻居,KBR可用于有效地将消息路由到任意key。这个KBR层能够用做分布式存储服务等更复杂任务的构建块。网络

 

尽管像Chord,Pastry或Kademlia这样的结构化P2P系统提供了相似的KBR服务,但它们在路由表大小和平均查找路径长度等属性方面有所不一样。 在下文中,咱们将重点放在Kademlia [11]协议上,由于它已经不易受几种常见攻击的影响,同时易于实现。app

 

 

图1. Kademlia中的路由表,其中nodeId前缀为0011的节点框架

 

2.1. Kademlia 

Kademlia [11]是一个结构化的点对点系统,与Chord [18]这样的协议相比,它具备几个优势,做为在标识符空间中使用新的XOR度量标准点间距的结果。 因为XOR是一种对称操做,Kademlia节点接收来自一样在本地路由表中的同一节点的查找查询。 这对于节点能从查找查询中学习有用的路由信息并更新其路由表很重要。 相比之下,因为覆盖拓扑的不对称特性,Chord须要专用的稳定协议。XOR度量也是单向的:对于任何常数x,存在刚好一个y,其距离为d(x,y)。 这确保了对相同Key的查找沿着相同的路径收敛,而不依赖于始发,这是缓存机制的重要属性。

 

在Kademlia中,每一个节点选择一个随机的160位nodeId并维护一个由多达160个k-buckets组成的路由表。 每一个k-buckets最多包含k个其余节点的三元组。 参数k是一个冗余因子,经过跨越覆盖节点之间的几条不相交路径,使路由更加健壮。 存储区按二叉树排列,根据节点标识符的最短惟一前缀将节点分配给存储区。 一个nodeId前缀为0011的节点的示例路由表如图1所示。最初,一个节点的路由表由一个覆盖整个ID空间的bucket组成。 当节点U得知新的联系人C时,节点U根据C的nodeId的前缀将C插入适当的bucket中。 若是这个bucket已经包含k个节点而且bucket的范围包括U本身的nodeId,则buckets被分红两个新的buckets。 不然,新联系人将被丢弃。

 

若是节点ID不均匀分布,则会出现问题。 在这种状况下,标准bucket拆分算法会致使节点不知道它们的完整k邻域。 图2给出了一个例子。该图显示了nodeId前缀为00的节点U的路由表。根据上面给出的拆分规则,对于前缀01,只有一个存储bucket有k个条目, 不会再分裂。 在这种状况下,与节点U最接近的节点前缀为010的节点可能会丢失,致使邻域不完整。 为了不这种状况,Kademlia的做者在这些状况下提出也将节点U的nodeId不包含在内的分裂bucket分裂,致使U的nodeIdbucket旁边出现不规则的子树。 bucket分裂算法的这个例外使协议更加复杂,所以咱们在4.2节中提出了一种替代方法。

 

 

 

图2.高度不平衡树中Kademlia路由表的不规则性

3. 攻击Kademlia

在这一节中,咱们描述了对Kademlia的基于Key的路由和数据存储的可能攻击的分类。此外,咱们提出了一个理论估计的查询成功率在一个Kademlia网络与对手节点的一小部分。

 

3.1. 攻击底层网络

咱们假设底层网络层不为覆盖层提供任何安全属性。 所以攻击者可能可以偷听或修改任意数据包。此外,咱们假设节点能够欺骗IP地址,而且底层中没有数据包的认证。 所以,对底层的攻击可能会致使对覆盖层的拒绝服务攻击。

3.2.攻击覆盖路由

 

除了底层攻击以外,还有许多攻击会影响覆盖层路由。 本节总结了目前已知的覆盖稳定性攻击。

 

日蚀攻击:这种攻击尝试在网络中放置敌对节点,从而将一个或多个节点与其隔离,即全部消息都经过至少一个敌对节点进行路由。 这使攻击者能够控制覆盖网络的一部分。 所以,日蚀攻击能够从覆盖网络“隐藏”一些节点。 首先,若是一个节点不能自由选择其节点ID,其次,当它很难影响其余节点的路由表时,能够避免这种状况。 因为Kademlia青睐K-BUCKETS中的长生命节点,而且只添加节点,若是一个bucket还没有满,只要网络启动,后者就很容易实现。

 

女巫攻击:在彻底分散的系统中,不存在控制攻击者能够获取的nodeIds数量的实例。 所以,攻击者能够用大量nodeIds加入网络,直到他控制网络中全部节点的一小部分为止。Douceur [8]证实,这种攻击是没法预防的,但只能阻止。 在集中式系统中,可让节点用金钱支付来加入网络,并将该节点绑定到特定的天然人。 在彻底分散的系统中,节点只能经过系统资源(带宽,CPU功率等)进行受权才能“付费”。

 

客户流失攻击:若是攻击者拥有一些节点,他可能会在网络中引起高流失,直到网络稳定失败。 因为建议Kademlia节点在其路由表中保留长期联系人,所以这种攻击对Kademlia覆盖拓扑没有太大影响。

 

敌对路由:当路由表既不响应路由信息也不路由任何分组时,简单地从路由表中删除节点,影响网络路由的惟一方式是返回敌对路由信息。 例如,敌对节点可能只是返回更接近查询Key的其余协做节点。 这样一种敌对节点将数据包路由到其协做者的子网中,而且查找到的和给定Key的最近节点都不会被找到。 这能够经过使用考虑多个不相交路径的查找算法来防止。 当一条路径没有敌对节点时,查找成功。 所以,假设m是对抗节点的分数,d是不相交路径的数量,(hi)路径长度分布,则查找成功的几率由下式给出:

 

这代表,特别是对于中等数量的敌对节点,查找算法能够显着受益于不相交路径以及低平均路径长度。

3.3. 其余攻击

拒绝服务:敌对方可能试图欺骗受害者以消耗其全部资源,即内存,带宽,计算能力。 所以,协议须要有机制以安全的方式分配资源。 本文不考虑物理攻击,如干扰或边带攻击。

 

对数据存储的攻击: 基于Key的路由协议一般用做构建块以实现用于数据存储的分布式散列表(DHT)。 为了使对抗节点更难以修改存储的数据项,相同的数据项被复制到多个相邻节点上。 尽管本文不考虑对数据存储的攻击,但基于Key的路由层必须为给定的Key提供安全邻域。

4. 设计

在本节中,咱们提出一个切实可行的安全Kademlia协议。 在第4.1节中,咱们介绍一种以安全方式分配nodeIds的方法。 进一步提出了一种可靠的兄弟广播,其以安全的方式存储复制的数据。 最后咱们解释如何保护路由表维护。

4.1. 安全的nodeId分配

从3.2节可知,攻击者很难产生大量的nodeIds(Sybil攻击),也不能自由选择nodeId(Eclipse攻击)。此外,nodeId应该认证节点,即没有其余节点应该可以窃取或伪造nodeId。后者能够经过如下两种方法之一来实现:在IP地址和端口上使用散列值或经过散列公钥。第一种解决方案有一个明显的缺点,由于动态分配IP地址后,nodeId将会改变。若是您要支持具备多个节点彷佛具备相同公共IP地址的NAT的网络,那么也不适合限制生成的nodeIds的数量。最后,没有办法确保与那些节点标识符交换消息的完整性。这就是为何咱们提倡使用公钥上的哈希来生成nodeId。使用这个公钥能够签署节点交换的消息。因为计算开销,咱们区分了两种签名类型:

 

• 弱签名:弱签名不签署整个消息。 它仅限于IP地址,端口和时间戳。 时间戳指定签名有效的时间。 若是使用动态IP地址,这将防止重放攻击。 对于同步问题,时间戳可能以很是粗糙的方式选择。 弱签名主要用于FIND NODE和PING消息,其中整个消息的完整性是无关紧要的。

 

• 强有力的签名:强有力的签名在邮件的所有内容上签名。 这确保了消息的完整性和抵御中间人攻击的弹性。RPC消息内的随机数能够防止重放攻击。

 

这两种签名类型能够对节点进行身份验证并确保消息的完整性。 咱们如今须要阻止女巫攻击和日蚀攻击。这是经过使用加密谜题或来自中央证书颁发机构的签名完成的,所以咱们须要将上述签名类型与如下某个签名类型结合使用:

 

• 受监督签名:若是签名的公钥另外由可信的证书颁发机构签名,则该签名被称为受监督签名。这个签名是必要的,以阻止SybIL攻击在网络的引导阶段,其中只有少数节点存在于网络中。可使用网络大小估计来决定是否须要该签名。

 

• 加密拼图签名:在没有可信权威的状况下,咱们须要用加密拼图来阻止日蚀和女巫攻击。 在[3]中使用加密谜题来生成nodeId是由于它们不能被用来彻底阻止攻击。 可是,在咱们看来,它们是在彻底分散的环境中没有可信权威的分布式nodeId生成的最有效的方法,所以应该用于在这样的网络中尽量地进行攻击。

 

出于这个缘由,咱们引入了两个加密谜题,如图3所示。一个静态谜题阻碍了NodeId的自由选择和一个动态谜题,以确保生成大量nodeIds的复杂性。H表示密码安全散列函数,⊕是异或运算, 表示加密难题复杂度。 很明显,的增长减小了可能的公钥的空间,所以公钥的大小必须随后增长。被认为是一个常数。 一旦生成了nodeId,它就保持固定必定的值。 当计算资源变得更便宜时,能够随着时间的推移而被修改或扩展。

 

图3. 用于nodeId生成的静态(左)和动态(右)加密难题

 

若是一个节点收到一个签名的消息,它如今能够首先验证它的签名,而后检查密码拼图是否被解决。 两个操做对于恒定公钥大小都具备O(1) 复杂性,而加密难题建立具备O(2c1 + 2c2)复杂性。

4.2. 可靠兄弟广播

兄弟是负责须要存储在DHT中的某个键值对的节点。 在Kademlia的状况下,这些键值对被复制到k个最接近的节点上(咱们记得:k是bucket大小)。 在本文中,咱们但愿独立于bucket大小k考虑这个数量的节点,并引入兄弟数量做为参数s。 这颇有意义,由于存储区大小一般定义了覆盖链接的冗余度,而不是DHT须要存储的副本数量。

 

一个常见的安全问题是兄弟信息的可靠性,当复制的信息须要存储在使用多数决定来补偿敌对节点的DHT中时产生。 因为Kademlia的原始协议收敛到兄弟列表中,分析和证实兄弟信息的一致性是很复杂的。 出于这个缘由,咱们引入一个大小为每一个节点η · s的兄弟列表,这确保了每一个节点至少在节点的兄弟范围内以高几率知道兄弟的一个ID。 咱们如今必须肯定η并证实约束具备很高的几率。Gai和Viennot在他们关于Broose DHT的论文中已经完成了这项工做[10],其中兄弟名单以相同的方式构建。 因为这个证实没必要要地使用了Chernoff边界,咱们在这里回顾证实:

 

 

表1.不完整的兄弟列表的几率

 

如前所述,XOR度量是单向的,这意味着对于一个固定的x和每一个,只有一个y存在。 考虑随机选择两个节点ID,则一个节点ID小于节点ID的几率由(n是节点ID的位数)给出。 令N为网络中节点的数量,则两个相邻节点之间XOR度量的平均距离为.。 如今考虑距离

  

两个节点与nodeId x和y,那么x和y之间的指望节点数N(x, y)为E[N(x, y)] = µ,节点放置在x和y之间的几率为由给出。 因为nodeIds是随机选择的,所以x和y之间的实际节点数量与指望值μ有所不一样。 所以,在距离(cs)处x和y之间少于s个节点的几率由下式给出:

 

对于小s> 0,这个几率是可计算的,由于如下是必须的:

 

 

 

因此使用Chernoff边界是没有必要的。 这使得该解更精确,而且能够如表1所示计算具备N =  的上限网络大小的依赖于c和s的如下几率。

 

其他的证实以下[10]。 有趣的事实是,显示η ≥ (2·c) ≥ 5的值足以知足咱们须要的约束w.h.p.

 

所以,在S/Kademlia中,路由表由包含具备距离d且具备≤d < ,  0≤i≤n的节点的k个bucket的列表组成,大小η · s。 因为新引入的同级列表,第2.1节中介绍的特殊子树处理能够省略。 因为Kademlia中的路由表经过传入的查找请求隐式刷新,而且咱们兄弟表中的许多节点必须存储在Kademlia的k-bucket中,所以维护兄弟表的额外通讯开销很小。

4.3. 路由表维护

Kademlia使用反应式方法来维护路由表。因为XOR度量确保全部迭代查找沿着同一路径收敛,Kademlia能够从传入的RPCs中了解新节点的存在。为了确保S/Kademlia中的路由表维护,咱们将信令消息分类为如下类:传入签名的RPC请求、响应或未签名消息。这些消息中的每个都包含发送者地址。若是消息弱或强签名,则此地址不能伪造或与另外一个nodeId关联(见第4.1节)。若是发送方地址有效而且来自RPC响应,则若是消息被签名并有效,则调用发送方地址有效。Kademlia使用那些发送者地址来维护他们的路由表。

 

当活动有效的发件人地址未满时,会当即将其添加到相应的存储区中。 若是nodeId前缀在适当的位数χ中不一样(例如,χ > 32),则有效的发件人地址只能添加到存储bucket中。 这是必要的,由于攻击者能够很容易地生成与受害者nodeId共享前缀并溢出他的bucket的nodeId,由于靠近本身的nodeId的bucket只在Kademlia中稀疏填充。 来自未签名消息的发件人地址将被忽略。 若是消息包含有关其余节点的更多信息,则能够经过调用它们上的ping RPC来添加每一个节点。 若是一个节点已经存在于路由表中,它将在bucket的尾部移动。

 

4.4. 经过不相交的路径进行查找

在3.2节中,咱们展现了使用多条不相交路径来查找具备对抗节点的网络中的Key的重要性。 原始的Kademlia查找迭代地查询具备FIND NODE RPC的α节点,以找到与目标Key最近的k个节点。α是系统范围的冗余参数,例如2.在每一个步骤中,未来自先前RPC的返回节点合并到排序列表中,从中选择下一个α节点。 这种方法的一个主要缺点是,只要查询单个敌对节点,查找就会失败。

 

咱们将该算法推广到使用D不相交路径,从而提升了具备对抗节点的网络中的查找成功率。发起方经过从本地路由表中获取K个最接近节点到目标Key并将其分配到与D无关的查找桶开始查找。从那里节点继续与传统的KMDELLA查找类似的D并行查找。查找是独立的,除了重要的事实,每一个节点只在整个查找过程当中使用一次,以确保所产生的路径真的不相交。经过使用来自第4.2节的兄弟列表,查找不会在单个节点上收敛,而是在邻居关闭的D上结束,全部邻居都知道目标Key的完整S兄弟。所以,即便k近邻的1是对立的,查找仍然是成功的。

  

图4.具备固定bucket大小k = 16的成功节点查找的分数

 

 

5. 评估

在本节中,咱们用OverSim [2]来评估S/Kademlia,这是一个用于叠加模拟的灵活框架。 咱们描述了仿真设置和程序,并最终描述了咱们的仿真结果。

5.1.  模拟假设 

咱们用如下假设模拟敌对节点:敌对节点在最坏状况下返回损害网络的数据。 所以,在FIND NODE RPC的状况下,最差的行为只会返回其余更接近目标nodeId的协做节点。 对手还会收获其余现有的有效nodeIds,以便将它们映射到虚假的传输地址。 这是最坏的状况,由于能够检测到诸如空结果或无效数据之类的其余反应,而且将该节点从网络中移除,即该节点将被视为陈旧联系人。

 

图5.具备自适应bucket大小k = 2d的成功节点查找的分数

 

另外一方面,咱们假设良好行为的节点以平均分布的方式返回对抗节点信息。 这个假设在第4节中获得证明,由于敌对节点几乎不可能影响其余节点的路由表。

 

经过这些假设,咱们预计若是没有对抗节点位于负责节点的一条路径上,则节点或兄弟节点的查找是成功的。 在多条路径上进行并行查找的状况下,咱们只需中止追踪遇到敌对节点的每条路径,而且只有一条路径没有任何敌对节点时,才会将查找视为成功。

 

5.2. 仿真程序

为了保持仿真效率,咱们首先建立一个静态Kademlia覆盖网络,其中包含N个彻底稳定的节点。 而后咱们继续处理N个节点查找并评估成功查询的比例。 随着对抗节点增长5%重复该过程,直到90%的节点是对抗的。 因为咱们不评估流失,全部仿真都是在α= 1的参数下完成的,而且咱们假定网络在引导阶段后保持稳定状态,可是在对抗节点的影响下。

5.3. 结果

咱们使用d ∈ {1, 2, 4, 8} 不相交的路径模拟了网络规模为N = 10000个节点,s = 16个兄弟的两个设置。 在图4中,咱们展现了取决于固定存储区大小k = 16的对抗节点数的成功查找部分。对于d = 1,查找过程与标准Kademlia查找类似。 该图清楚地代表,经过增长并行不相交路径的数量d,成功查找的比例能够大大提升。 在这种状况下,通讯开销随着d线性增长。 咱们还能够看到,当k = 16时,k-buckets中有足够的冗余来实际建立不相交的路径。

 

在第二种设置中,咱们将k = 2 · d调整为不相交路径的数量,以保持路由表中的最小冗余度,并所以减小通讯开销。 图5中的结果显示,与图4相比,较小的k致使成功查找的一小部分。其缘由是因为路径表中较小的路由表增长了平均路径长度,如路径长度分布图中所示。

 

咱们得出结论,d = 4..8,k = 8..16对S/Kademlia来讲是个不错的选择。 较高的d和k值彷佛不值得额外的通讯成本。 较大的k值也会增长很大一部分bucket长时间不满的几率。 这没必要要地使路由表更容易受到日蚀攻击。

 

因为咱们仅提供了N = 10000个节点的模拟,有人可能会认为这是一个至关少的节点,并不能与大型网络相媲美。 事实上,路径长度与成功查找的比例高度相关。 另外一方面,网络拓扑结构能够很容易地调整为具备较小的直径,所以较短的平均路径长度。 这一般经过在每一个步骤中考虑nodeId的多个位b来完成。 所以,能够将网络调整到不一样状况下所需的安全级别。

6. 相关工做

Castro等人[3]研究对结构化点对点覆盖中消息路由的攻击。 他们提出了一些防护措施来确保加入过程,路由表维护和消息转发。 将nodeIds的安全分配委托给中央信任的证书颁发机构。

 

Sit和Morris [16]在Chord,CAN和Pastry的基础上提出了针对点对点分布式哈希表的攻击分类。 他们表示,防护这些攻击的重要步骤是经过定义可验证的系统不变量进行检测。 例如,节点能够经过验证查找是否“接近”目标Key来检测不正确的查找路由。

 

Srivatsa和Liu [17]研究了基于DHT的P2P系统中的三种安全威胁。 首先,他们对路由方案提出攻击,其中单个敌对节点能够在没有备用路径的状况下阻止全部查找请求。 所以,他们强调了几种备选最佳路径的重要性,以及检测不正确查找结果的可行性。 此外,他们对数据放置方案提出了攻击,并代表单靠复制不足以容忍敌对节点的攻击,但必须与密码技术相结合才能有效。 最后,他们显示必须限制nodeId选择过程,以防止敌对节点破坏特定的数据项。

 

Awerbuch和Scheideler [1]提出了一种理论上的DHT,它能够抵抗对抗式加入假以及插入式查找攻击。DHT的设计是高层次的,它是一个开放的问题,将它们的想法转化为可行的协议是多么困难。 另外一个能够处理加入- 离开攻击的DHT是SChord [9],但它仅限于线性数量的对抗加入请求。

 

Cerri等人[4]重点关注无限选择nodeIds引发的攻击,并用Kademlia协议举例说明其发现。 他们建议经过散列函数将IP地址和端口耦合到nodeId来限制空闲的nodeId选择。 为了使敌对节点难以攻击特定的数据项,他们建议将数据项存储在一个临时Key中,该Key会按期轮换。 这是经过用一些暂时信息对数据项的Key进行散列来计算临时Key来完成的,

 

有几篇论文提出了针对女巫攻击的对策:在[13] Rowaihy 等。 为结构化的同行P2P系统提供准入控制系统。 这些系统构建了协做接纳控制节点的树状分层结构,从中加入节点必须得到接纳。 另外一种限制女巫攻击的方法是将参与节点的IP地址存储在安全的DHT中。 经过这种方式,每一个IP地址的nodeIds数量能够经过查询DHT来限制,若是新节点想要加入。

 

Singh等人[15]研究Eclipse攻击对结构化覆盖网络的影响,并提出经过让节点互相审计链接来抵御这种攻击。 这个想法是,一个挂载Eclipse攻击的节点的节点度高于平均值。

 

Nielson等人[12]认为理性攻击的类别。 他们认为P2P系统中很大一部分节点是自私的,并试图最大限度地消耗系统资源,同时尽可能减小本身的使用。

7. 结论

在本文中,咱们提出了一个基于Kademlia的基于安全Key的路由协议。 尽管优雅的路由表维护使得Kademlia已经不易受到某些攻击,但咱们已经代表,存在多个易受攻击节点控制网络的漏洞。

 

咱们提出几个切实可行的解决方案,使Kademlia更具弹性。 首先,咱们建议经过结合公钥密码术使用加密谜题来限制免费的nodeId生成。 此外,咱们经过兄弟列表扩展Kademlia路由表。 这下降了bucket分裂算法的复杂性,并容许DHT以安全复制的方式存储数据。 最后,咱们提出了一种查找算法,该算法使用多条不相交路径来提升查找成功率。

 

S/Kademlia在仿真框架OverSim中的评估代表,即便使用20%的对抗节点,若是使用不相交路径,全部查找的99%仍然是成功的。咱们相信,建议的Kademlia协议的扩展是实用的,能够用来方便地安全现有的Kademlia网络。

认可

这项研究获得了德国联邦教育与研究部的支持,做为ScaleNet项目01BU567的一部分,以及做为SpoVNet项目一部分的BW-FIT支持计划。

参考

 [1] B. Awerbuch and C. Scheideler. Towards a scalable and robust dht. In SPAA ’06: Proceedings of the eighteenth annual ACM symposium on Parallelism in algorithms and architectures, pages 318–327, New York, NY, USA, 2006. ACM Press. 

[2] I. Baumgart, B. Heep, and S. Krause. OverSim: A flexible overlay network simulation framework. In Proceedings of 10th IEEE Global Internet Symposium (GI ’07) in conjunction with IEEE INFOCOM 2007, Anchorage, AK, USA, May 2007. 

[3] M. Castro, P. Druschel, A. Ganesh, A. Rowstron, and D. S. Wallach. Secure routing for structured peer-to-peer overlay networks. SIGOPS Oper. Syst. Rev., 36(SI):299–314, 2002.

[4] D. Cerri, A. Ghioni, S. Paraboschi, and S. Tiraboschi. Id mapping attacks in p2p networks. In Global Telecommunications Conference, GLOBECOM’05. IEEE, 2005. 

[5] S. A. Crosby and D. S. Wallach. An analysis of two bittorrent distributed trackers. Presentation at the South Central Information Security Symposium (SCISS ’06), 2006. 

[6] F. Dabek, B. Zhao, P. Druschel, J. Kubiatowicz, and I. Stoica. Towards a common api for structured peer-to-peer overlays. In Proceedings of the 2nd International Workshop on Peer-to-Peer Systems (IPTPS ’03), volume Volume 2735/2003, pages 33–44, 2003. 

[7] J. Dinger and H. Hartenstein. Defending the sybil attack in p2p networks: Taxonomy, challenges, and a proposal for self-registration. ares, 0:756–763, 2006. 

[8] J. R. Douceur. The sybil attack. In IPTPS ’02: Revised Papers from the First International Workshop on Peer-toPeer Systems, pages 251–260, London, UK, 2002. SpringerVerlag. 

[9] A. Fiat, J. Saia, and M. Young. Making chord robust to byzantine attacks. In ESA, Lecture Notes in Computer Science, pages 803–814. Springer, 2005. 

[10] A.-T. Gai and L. Viennot. Broose: a practical distributed hashtable based on the de-bruijn topology. In Fourth International Conference on Peer-to-Peer Computing, 2004, pages 167–174, aug 2004.

 [11] P. Maymounkov and D. Mazires. Kademlia: A peer-to-peer information system based on the xor metric. In Peer-to-Peer Systems: First InternationalWorkshop, IPTPS 2002 Cambridge, MA, USA, March 7-8, 2002. Revised Papers, volume Volume 2429/2002, pages 53–65, 2002. 

[12] S. Nielson, S. Crosby, and D. Wallach. A taxonomy of rational attacks. In 4th International Workshop on Peer-To-Peer Systems, Ithaca, New York, USA, February 2005.

[13] H. Rowaihy, W. Enck, P. Mcdaniel, and T. La-Porta. Limiting sybil attacks in structured peer-to-peer networks. Technical Report NAS-TR-0017-2005, Network and Security Research Center, Department of Computer Science and Engineering, Pennsylvania StateUniversity, University Park, PA, USA, 2005. 

[14] A. Rowstron and P. Druschel. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In Middleware 2001 : IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg, Germany, November 12-16, 2001. Proceedings, volume Volume 2218/2001, pages 329+, 2001. 

[15] A. Singh, T.-W. J. Ngan, P. Druschel, and D. Wallach. Eclipse attacks on overlay networks: Threats and defenses. In In Proceedings of INFOCOM 06, Barcelona, Spain. April 2006, 2006. 

[16] E. Sit and R. Morris. Security considerations for peer-topeer distributed hash tables. In IPTPS ’02: Revised Papers from the First International Workshop on Peer-to-Peer Systems, pages 261–269, London, UK, 2002. Springer-Verlag. 

[17] M. Srivatsa and L. Liu. Vulnerabilities and security threats in structured overlay networks: A quantitative analysis. In ACSAC ’04: Proceedings of the 20th Annual Computer Security Applications Conference (ACSAC’04), pages 252–261, Washington, DC, USA, 2004. IEEE Computer Society. 

[18] I. Stoica, R. Morris, D. Liben-Nowell, D. Karger, M. Kaashoek, F. Dabek, and H. Balakrishnan. Chord: a scalable peer-to-peer lookup protocol for internet applications. IEEE/ACM Transactions on Networking, 11(1):17–32, feb 2003.

 

若是有关于区块链学习的交流,能够经过下面的方式联系我:

 

 wechat:omnigeeker

telegram: @omnigeeker
twitter: @omnigeeker
zhihu:@Omnigeeker
相关文章
相关标签/搜索