摘要
在完全分散的点对点系统中,安全性是一个常见的问题。尽管存在一些关于如何创建一个安全的基于密钥的路由协议的建议,但仍然没有一个切实可行的方法。在本文中,我们介绍了一种基于Kademlia的安全密钥的路由协议,该协议具有较高的抵御常见攻击的能力,通过使用多个互不相交的路径上使用并行查找,用密码谜题限制自由节点Id的生成,并引入可靠的兄弟广播,对常见攻击具有很高的弹性。后者是需要用来以安全复制的方式存储数据。我们以分析的方式评估了我们提出的对Kademlia协议的扩展的安全性,并在对抗性节点的影响下模拟了多个不相交路径对查询成功率的影响。
1.简介
长期以来,像Chord[18]或Pastry[14]这样的结构化点对点网络只引起了研究界的兴趣,但并没有广泛应用于实际网络。现在,随着分布式文件共享应用的成功,互联网的情况发生了很大变化。但是大规模多人在线游戏的新兴领域也引起了人们对使用结构化的点对点网络来建立可扩展的存储和通信服务的兴趣。
完全去中心化的点对点系统的一个主要问题是安全问题。已被确认为针对结构化对等网络的常见攻击[3, 16, 17]。虽然在理论上有许多建议来应对这些攻击,但在构建一个切实可行的安全对等网络方面的工作却很少。
今天在互联网上广泛部署的结构化覆盖网络(即BitTorrent、OverNet和eMule)都是基于Kademlia[11]协议的,并且容易受到多种攻击[5]。在本文中,我们分析了对Kademlia网络的攻击,并提出了一些切实可行的对策。
本文的其余部分组织如下。在第2节中我们提供了一些关于结构化点对点网络的背景,并介绍了Kademlia协议。在第3节中,我们对针对Kademlia的常见攻击进行了概述。第4节描述了我们对Kademlia安全扩展的详细设计。在第5节,我们通过模拟来评估我们的设计。最后,第6节涵盖了相关工作,第7节是结论。
2.背景
在这一节中,我们将介绍结构化点对点系统的背景知识,并描述了Kademlia协议的一些属性。所有结构化点对点网络提供的一个共同服务是基于密钥的路由层(KBR)[6]。该层提供有效的路由的标识符,称为大标识符空间中的密钥(通常是n位整数的modulo 2且n=128或160)。覆盖层中的每个参与节点都从相同的id空间中选择一个唯一的nodeId,并维护一个路由表,其中包括覆盖层拓扑节点ID和覆盖拓扑中的邻居的nodeld和IP地址。根据覆盖协议的,拓扑结构类似于环形、超立方体或de Bruijn图。每个节点负责标识符空间的一个特定范围,通常负责标识空间中靠近其nodeId的所有键。通过这种方式,KBR可用于通过将消息连续转发到具有更接近目标键的nodeId的覆盖邻居来有效地将消息路由到任意键。此KBR层可用作更复杂任务(如分布式存储服务)的构建块。
尽管像Chord、Pastry或Kademlia结构化的点对点系统提供了类似的KBR服务,但它们在路由表大小和平均查询路径长度等属性上有所不同。在下文中,我们重点讨论Kademlia [11]。协议,因为它已经不受几种常见攻击的影响,同时也很容易实现。

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

图2.给出了高度不平衡树中的Kademlia路由表不规则性。
2.1. Kademlia
Kademlia[11]是一个结构化的点对点系统,与Chord[18]等协议相比,它有几个优势,因为它使用了一种新颖的XOR度量来表示标识符空间中各点之间的距离。因为XOR是一个对称的操作,所以Kademlia节点接收来自相同节点的查找查询,这些节点也在其本地的路由表中。这一点很重要,因为节点可以从查找查询中学习有用的路由信息,并更新其路由表。相比之下,由于重叠拓扑的不对称性,Chord需要专用的稳定协议,XOR度量也是单向的:对于任何常数x,都存在一个y,恰好存在一个距离为d(x, y)。这确保了对相同密钥的查询会沿着相同的路径收敛,而不受起点的影响,这对缓存机制来说是一个重要的属性。
在Kademlia中,每个节点选择一个随机的160位的nodeId,并维护一个其中包括多达160个k-buckets组成的路由表。每个k-buckets最多包含k个条目的<IP地址、UDP端口、NodeId>三元组的其他节点。参数k是一个冗余因子,通过在覆盖节点之间跨越几个不相交的路径使路由更加稳健。存储桶排列为二叉树,节点根据其nodeld的最短的唯一前缀分配给存储桶。图1显示了一个nodeId前缀为0011的节点的示例路由表。最初,一个节点的路由表由一个覆盖整个ID空间的桶组成。当一个节点U得知一个新的联系人C时,节点U根据C的nodeId的前缀,将C插入到适当的桶中。根据C的nodeId的前缀。如果这个桶已经包含k个节点,并且该桶的范围包括U自己的nodeId,则该桶被分成两个新桶。否则新联系人被简单地删除。
如果nodeIds分布不均,就会出现问题。在这种情况下,标准的分桶算法会导致节点不知道其完整的K邻域。图2.给出了高度不平衡树中的 Kademlia路由表的不规则性的示例。该图显示了节点U的路由表,其nodeId前缀为00。根据上面给出的拆分规则,只有01前缀的一个桶,其中包含有k个条目,不会被进一步拆分。在这种情况下,前缀为010的节点(离节点U最近的节点),可能会被丢弃,从而导致邻域不完整。为了避免这种情况,Kademlia的作者建议在这种情况下,也要对节点U的nodeId所在的桶进行拆分,从而在U的nodeId的桶旁边产生一个ir常规子树。这种对水桶分割算法的例外使得协议实现更加复杂,因此我们在第4.2节中提出了一个替代方法。
3. 对Kademlia的攻击
在这一节中,我们描述了对Kademlia的基于密钥的路由和数据存储的可能攻击分类。此外,我们还提出了一个具有一小部分对抗性节点的Kademlia网络中的查询成功率。
3.1. 对底层网络的攻击
我们假设,底层网络层不为覆盖层提供任何安全属性。因此,攻击者能够窃听或修改任意的数据包。此外,我们假定节点可以欺骗IP地址,并且在底层没有数据包的认证。因此,对底层的攻击会导致对覆盖层的拒绝服务攻击。
3.2. 对覆盖路由的攻击
除了在底层的攻击,还有许多解决对覆盖路由的影响的方法。本节总结了目前已知的对覆盖稳定性的攻击。
Eclipse攻击:这种攻击试图在网络中放置对抗性节点,以使一个或多个节点与网络断开。也就是说,所有的消息都要经过至少一个对抗性节点的路由。这使得攻击者可以控制覆盖网络的一部分。因此,Eclipse攻击可以从覆盖网络中“隐藏”一些节点。首先,如果一个节点不能自由地选择它的nodeId,就可以防止它。其次,当它很难影响其他节点的路由表。因为Kademlia在其k-buckets中更倾向于长寿的节点,所以如果一个bucket还没有满,一旦网络启动,后者很容易实现。
Sybil攻击:在完全去中心化的系统中,没有任何实例可以控制攻击者可以获得的nodeId的数量。因此,攻击者可以用大量的nodeId加入网络,直到他控制了网络中所有节点的一小部分m。Douceur[8]证明,这种攻击不能被预防,只能被阻止。在集中式系统中,我们可以让节点付费形式加入网络,并将该节点绑定到一个特定的自然人身上。在完全去中心化的系统中,一个节点唯一的方法是只能用系统资源(带宽、CPU功率等)进行“支付”授权。
Churn攻击:如果攻击者拥有一些节点,他可能会在网络中引发高流失率,直到网络稳定失败。由于Kademlia节点被建议在其路由表中保留长期联系,这种攻击对Kademlia覆盖拓扑结构的影响不大。
对抗路由:由于当一个节点既没有响应路由信息,也不路由任何数据包时被简单地从路由表中删除,影响网络路由的唯一方法就是返回对抗性路由信息。例如,一个对抗性节点可能只会返回更接近于查询密钥的其他合作节点。这样一来,对抗性节点就会将一个数据包路由到它的协作者子网中,而被查询的节点和最接近的节点都不会被发现。这种情况可以通过使用考虑多个不相干路径的查找算法来防止。当一条路径是没有对抗性节点的时候,查询就会成功。因此,假设m是对抗性节点的比例,d是不相交路径的数量。(hi)路径长度分布,那么一个查询成功的概率为
检索成功的概率由下式给出:

这表明,特别是对于中等数量的对抗性节点,查找算法可以从受益于不相交的路径以及较低的平均路径长度。
3.3. 其他攻击
Denial-of-Service:对抗者可能试图诱使受害者消耗其所有资源,即内存、带宽、计算能力。因此,该协议需要有安全的方式分配资源。本文不考虑物理攻击,如干扰或边带攻击。
对数据存储的攻击:基于密钥的路由协议,通常被用作构建模块来实现数据存储的分布式哈希表(DHT)。为了使对抗节点更难修改存储的数据项。同一数据项目被复制到一些相邻的节点上。尽管本文不考虑对数据存储的攻击,但基于密钥的路由层必须为给定的密钥提供一个安全邻域。
4. 设计
在本节中,我们提出了一个切实可行的安全Kademlia协议。在第4.1节中,我们介绍了一种以安全方式分配nodeId的安全方法。此外,我们还提出了一个可靠的兄弟广播,这是以安全的方式存储复制的数据所需要的。最后,我们解释了如何确保路由表的维护。
4.1. 安全的nodeId分配
从第3.2节可以看出,攻击者应该很难产生大量的nodeId(Sybil攻击),也不能随意选择节点Id(Eclipse攻击)。此外nodeId应该能够验证一个节点,即没有其他节点能够窃取或伪造nodeId。 后者可以通过以下两种方法之一来实现:在 IP 地址和端口上使用散列值或通过散列公钥。 第一种解决方案有一个明显的缺点,因为动态分配的IP地址,nodeId会随之改变。如果你想支持有NAT的网络,它也不适合限制生成的nodeId的数量,其中几个节点似乎有相同的公共IP地址。最后,没有办法确保用这种nodeId交换的信息的完整性。这就是为什么我们提倡使用公钥的哈希值来生成nodeId。有了这个公钥,就有可能对节点交换的信息进行签名。由于计算上的开销,我们区分了两种签名类型:
- Weak signature:Weak signature并不签署整个信息。它只限于IP地址、端口和时间戳。时间戳规定了签名的有效时间。如果使用动态IP地址,这可以防止重放攻击。对于同步问题,时间戳可以以非常粗略的方式选择。Weak signature主要用于查找节点和PING消息,其中整个消息的完整性是可有可无的。
- Strong signature:Strong signature对信息的全部内容进行签名。这确保了信息的完整性和对“中间人”攻击的抵抗力。使用RPC消息中的随机数可以防止重放攻击。
这两种签名类型可以验证节点和确保消息的完整性。我们现在需要阻止Sybil和Eclipse攻击。 这是通过使用加密谜题或来自中央证书权威机构的签名来完成的,因此我们需要将上述签名类型与以下之一结合起来:
- Supervised signature:如果签名的公钥另外是由值得信赖的证书机构签署的。这种签名被称为 Supervised signature。在网络中只有几个节点的情况下,需要这种sig来阻止Sybil攻击。网络规模的估计可以用来决定是否需要这个签名。
- Crypto puzzle signature:在没有值得信赖的权威机构的情况下,我们需要用密码谜题来阻止Eclipse和Sybil攻击。在[3]中,拒绝使用密码谜题来生成nodeId,因为它们不能用来完全防止攻击。但在我们看来,它们是在完全去中心化的情况下最有效的方法,在没有可信赖的权威的情况下,因此应该用于在此类网络中尽可能地进行攻击。
出于这个原因,我们引入了两个密码谜题,如图3所示。一个是静态谜题,它阻碍了一个是静态谜题,它阻碍了节点Id的自由选择;另一个是动态谜题,它确保了产生大量nodeId的复杂性。H表示一个加密安全的哈希函数,⊕是XOR操作,而ci表示加密谜题的复杂性。显而易见的是。c1的增加会减少可能的公钥的空间,因此公钥的大小必须随之增加。c1被认为是一个常数。一旦nodeId生成,它就会固定在某个值上,当计算资源变得更便宜时,c2可以被修改或扩展。

图3. nodeId生成的静态(左)和动态(右)加密谜题
如果节点收到签名的信息,它现在可以首先验证其签名,然后检查密码谜题是否解决了。在公钥大小不变的情况下,这两项操作的复杂度都是O(1)。而密码谜题的创建具有 复杂度。
4.2. 可靠的兄弟广播
兄弟节点是负责某个键值对,需要存储在DHT中。在Kademlia的情况下,这些键值对被复制在k最近的节点(我们记得:k是桶的大小)。在本文中,我们希望考虑独立于桶大小k的节点数,并将兄弟姐妹的数量作为一个参数s引入。这是有道理的,因为桶的大小通常定义了覆盖连接的冗余度,而不是DHT需要存储的副本数量。
一个常见的安全问题是兄弟姐妹的可靠性。当复制的信息需要被存储在DHT中时,该DHT使用多数决定来补偿对抗性节点。由于Kademlia的原始协议会收敛到同级列表,所以分析和证明同级信息一致性是很复杂的。
出于这个原因,我们引入了每个大小为 的兄弟列表,这确保每个节点以高概率知道节点的兄弟范围内的ID的至少s个兄弟。我们现在必须确定并证明这些约束条件大概率地成立。这一点已经被Gai和Viennot已经在他们关于Broose DHT[10]的论文中已经做到了这一点,兄弟关系列表是以同样的方式构建的。由于这个证明不必要地使用了Chernoff,在这里查看证明的界限:

表1. 不完整同级列表的概率
如前所述,XOR度量是单向的。这意味着对于一个固定的x和每一个d⊕(x,y)来说,恰好是存在一个y。考虑到随机选择的两个nodeId,那么一个节点Id y小于节点Id x的概率为的概率是由 (n是节点Id的比特数)。让N是网络中的节点数,那么在XOR度量下,网络中节点的平均距离为相邻两个节点之间的XOR度量的平均距离为 。现在考虑距离

具有nodeId为x和y的两个节点,那么x和y之间的预期节点数N(x, y)为E[N(x, y)]=µ,并且节点位在x和y之间的概率是由给出,由于nodeId是随机选择的,因此x和y之间的实际节点数量与预期值µ不同。因此,距离 (cs)的x和y之间的节点少于s个节点的概率由以下公式给出:

这个概率对于小的s > 0是可计算的,因为以下是必要的:

所以不需要使用切尔诺夫边界。这使该解决方案更准确,并且以下概率取决于c和s且与上限网络大小N= 的大小可以计算如表1所示。
证明的其余部分遵循[10]。有趣的事实表明,η≥ (2·c)≥5就足以满足我们所需的约束w.h.p.
因此,在S/Kademlia中,路由表由n k-buckets的列表组成,保存距离d的节点≤d< , 0 ≤i≤n和大小为η·s的兄弟的排序列表,由于新引入的兄弟列表。 可以省略2.1节介绍的特殊子树处理。因为Kademlia中的路由表被传入的查找请求隐式刷新,并且我们的兄弟表中的许多节点必须存储在Kadem lia的k-buckets中,所以维护兄弟表的额外的通信开销很低。
4.3.路由表维护
Kademlia使用反应式方法来维护路由表。由于XOR度量可确保所有迭代查找沿着相同的路径收敛,因此Kademlia 可以传入RPC的新节点的存在。为了保护S/Kademlia 中的安全路由表维护,我们将信令消息分为以下几类:传入的签名RPC请求、响应或未签名消息。这些消息中的每一个都包含发件人地址。如果消息是weakly或者strong signed,这个地址不能是伪造或与另一个nodeId关联(参见第 4.1 节)。如果消息已签名,我们称发件人地址有效,并且主动有效,如果发件人地址有效并且来自RPC响应。 Kademlia 使用这些发件人地址维护他们的路由表。
有效的发件人地址在未满时立即添加到他们对应的桶,仅当nodeId前缀在适当数量的位 χ 上有所不同(例如 χ > 32),才将有效的发送者地址添加到存储桶中。这是必要的,因为攻击者可以轻松生成与受害者nodeId共享前缀的nodeId并泛滥他的桶,因为靠近自己的nodeId的存储桶仅在Kademlia中稀疏填充。来自未签名邮件的发件人地址将被忽略。如果消息包含有关其他节点的更多信息,然后可以通过调用ping RPC添加它们中的每一个。如果一个节点已经存在于路由表中,它将被移动到桶的尾部。
4.4.查找不相交的路径
在第 3.2 节中,我们展示了使用多个不想交的路径在具有对抗节点的网络中查找键的重要性。原始的Kademlia迭代查找使用FIND NODE RPC查询α个节点以获得最近的k个节点到目标键。 α是系统范围的冗余参数,如2。在每一步中返回的节点来自之前的 RPC 被合并到一个排序列表中,选择下一个α个节点。这种方法的一个主要缺点也就是说,只要有一个对抗节点,查找就会失败。
我们将此算法扩展为使用 d 条不相交的路径,从而增加具有对抗节点的网络中的查找成功率。发起者通过获取从他的本地路由表中离目标键最近的k个节点,并将它们分配到d个独立的查找桶。从那里开始,节点继续使用类似于传统Kademlia查找的并行查找。查找是独立的,除了重要的事实,即每个节点在整个查找过程中只使用一次,以确保生成的路径确实不相交。经过使用第4.2节中的同级列表,查找不会在单个节点处收敛,但在d个附近的邻域终止,这些邻居都知道目标键的完整s个兄弟姐妹。 因此,即使k - 1个邻居是对抗性的,查找仍然成功。

图4. 固定桶大小k = 16的成功节点查找比例

图5. 自适应桶大小k = 2d的成功节点查找比例
5. 评估
在本节中,我们使用OverSim [2]评估S/Kademlia,这是一个用于叠加仿真的灵活框架。 我们描述了模拟设置和程序,最后描述了我们的模拟结果。
5.1模拟假设
我们使用以下假设来模拟对抗节点: 对抗节点返回的数据在最坏的情况下会破坏网络。 因此,在 FIND_NODE RPC 的情况下,最坏的行为只会返回更接近目标nodeId的其他协作节点。 对抗者还收集其他现有的有效节点ID,以便将它们映射到错误的传输地址。这是最坏的情况,因为其他反应如空,可以检测到结果或无效数据,并且该节点将从网络中删除,即该节点将被视为陈旧联系。
另一方面,我们假设表现良好的节点以均匀分布的方式返回对抗节点信息。 这一假设在第4节中得到证实,因为对抗节点几乎不可能影响其他节点的路由表。
有了这些假设,我们期望如果没有对抗节点在通往责任节点的一条路径上,则一个节点或兄弟节点的查找是成功的。 在多条路径上并行查找的情况下,我们只需停止追踪每条命中对抗节点的路径,并且只有在一条路径没有任何对抗节点时才认为查找成功。
5.2. 模拟过程
为了保持模拟的效率,我们首先创建一个具有N个完全稳定节点的静态 Kademlia 覆盖网络。 然后我们继续处理 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-bucket中有足够的冗余来实际创建d条不相交的路径。
在第二个设置中,我们将k=2 · d 调整为不相交路径的数量,以保持路由表中的最小冗余,从而减少通信开销。 图5中的结果表明,与图4相比,较小的k导致成功查找的比例更小。原因是由于路径长度分布图所示的路由表更小,平均路径长度增加。
我们得出结论,d=4..8 和 k=8..16 是 =S/Kademlia 的不错选择。 d和k的较高值似乎不值得额外的通信成本。k的较大值也会增加大部分桶长时间未满的可能性。这不必要地使路由表更容易受到 Eclipse 攻击。
由于我们仅提供N = 10000个节点的模拟,有人可能会认为这是一个相当少的节点,无法与大型网络相媲美。事实上,路径长度与成功查找的比例高度相关。另一方面,网络拓扑可以很容易地调整为具有更小的直径,因此可以缩短平均路径长度。这通常通过在每个步骤中考虑nodeId的多个位b来完成。 因此,可以将网络调整到不同场景所需的安全级别。
6. 相关工作
Castro等人 。[3]研究了对结构化对等覆盖中消息路由的攻击。 他们提出了几种防御措施来保护加入过程、路由表维护和消息转发。nodeId的安全分配被委托给中央可信证书颁发机构。
Sit和Morris[16]提出了基于Chord、CAN和Pastry的针对点对点分布式哈希表的攻击分类。他们指出,防御这些攻击的一个重要步骤是通过定义可验证的系统不变量来进行检测。例如,节点可以通过验证查找“更接近”目标键来检测不正确的查找路由。
Srivatsa和Liu[17] 调查了基于 DHT 的 P2P 系统中的三种安全威胁。 首先,他们提出了对路由方案的攻击,其中单个对抗节点可以在没有备用路径的情况下阻止所有查找请求。因此,他们强调了几种替代最佳路径的重要性以及检测错误查找结果的可行性 此外,他们提出了对数据放置方案的攻击,并表明仅靠复制不足以容忍敌对节点的攻击,必须与密码技术相结合才能有效。最后,他们表明必须限制nodeId选择过程,以防止敌对节点破坏特定数据项。
Awerbuch和Scheideler [1]提出了一种理论上的DHT,它被证明对对抗性加入离开和插入查找攻击具有鲁棒性。 DHT的设计是高级别的,将他们的想法转化为可行的协议有多难是一个悬而未决的问题。另一个可以证明可以处理加入离开攻击的DHT是S Chord [9],尽管它仅限于线性数量的对抗性加入请求。
Cerri等人。 [4] 关注 nodeId的无限选择引起的攻击,并用Kademlia协议举例说明他们的发现。他们建议通过散列函数将IP地址和端口与nodeId耦合来限制免费的nodeId选择。为了使对抗节点更难攻击特定数据项,他们建议数据项应存储在一个临时密钥中,该密钥定期轮换。
这是通过使用一些时间信息对数据项的密钥进行散列以计算临时密钥来完成的,有几篇论文提出了针对Sybil攻击的对策:在[13] Rowaihy等人提出了一种用于结构化对等系统的准入控制系统。该系统构建了一个树状的协作准入控制节点层次结构,加入节点必须从中获得准入。另一种限制Sybil攻击的方法[7]是将参与节点的IP地址存储在安全的DHT中。这样,如果有新节点想要加入,可以通过查询DHT来限制每个IP地址的nodeId数量。
Nielson等人。[12]关于理性攻击的类别。他们假设对等系统中的大部分节点都是自私的,并试图最大限度地消耗系统资源,同时尽量减少对自己资源的使用。
7. 结论
在本文中,我们提出了一种基于Kademlia的基于安全密钥的路由协议。 尽管优雅的路由表维护使Kademlia已经对某些攻击不敏感,但我们已经证明存在几个漏洞可以让敌对节点轻松获得网络控制权。
我们提出了几种切实可行的解决方案,以使Kademlia更具弹性。首先,我们建议通过结合使用密码谜题和公钥密码术来限制免费的 nodeId 生成。此外,我们通过兄弟列表扩展Kademlia路由表。 这降低了分桶算法的复杂性,并允许DHT以安全复制的方式存储数据。最后,我们提出了一种查找算法,该算法使用多个不相交的路径来提高查找成功率。
在OverSim仿真框架中对S/Kademlia的评估表明,即使使用20%的对抗节点,如果使用不相交的路径,所有查找仍有99%的成功。我们认为,Kademlia协议的提议扩展是实用的,可用于轻松保护现有 Kademlia 网络。
致谢
这项研究得到了德国联邦教育和研究部的支持,作为ScaleNet项目01BU567的一部分,并得到了BW-FIT支持计划的支持,作为SpoVNet项目。
参考文献
[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
---煤油灯科技victorlamp.com翻译整理---