论文部分内容阅读
分布式哈希表(Distributed Hash Table,简称DHT)是结构化对等网络组网方式的核心,广泛应用于各种大规模的分布式系统,例如目前主流文件共享应用eMule和BT等。DHT提供了一种去中心化的结构化方法来组织P2P网络中的节点,使得整个网络能够高效地支持数据的分布式发布和搜索。由于DHT具有分布式和匿名性的特点,其在实际运行中面临着很多安全问题,其中一种最为典型和常见的攻击方式是Sybil攻击。Sybil攻击通过伪造节点身份,破坏节点的正常寻路过程。目前,已有的一些抵御Sybil攻击的方法包括权威验证中心、计算谜题、基于物理特性的验证等,这些方法给正常用户加入DHT网络带来了额外的代价;在NAT和IPv6等情况下,其中一些方法并不能解决Sybil攻击的问题。Sybil攻击利用了DHT网络中节点间没有身份验证的机制使得节点间关系并不具备可靠性这一特点,大量伪造攻击者可控的节点身份,从而达到对DHT网络的服务产生影响的目的。本文通过借助社交关系的伪造难度大以及相对更可信等特点,设计一种缓解DHT网络中Sybil攻击的方法。本文的主要工作包括: (1)提出一种基于社交关系的寻路方法(Social-DHT)。该方法采用基于社交关系的随机游走策略,在ID空间的各个子空间中寻找可信的节点并建立节点路由表;在寻路过程中,借助目标所在子空间的节点通过在ID空间的局部随机游走寻找目标节点。模拟实验表明该协议的搜索成功率能够达到99%。 (2)在引入社交关系的场景下,对基于社交关系的随机游走过程建立模型。在攻击者干扰情况下,该模型对随机游走的成功概率进行了形式化定义,同时对Social-DHT协议的搜索成功概率进行了理论分析。 (3)针对大量Sybil节点聚集分布在攻击目标邻近空间的情形,设计一种双层ID空间的策略,通过将节点的IP与ID相关联,保证攻击者不能同时控制Sybil节点在两层ID空间的位置,缓解Sybil节点的聚集攻击。 基于上述工作,实现了本文提出的Social-DHT方法的仿真系统,在节点规模为40000节点,节点平均社交关系数量为36.66个,攻击者控制的社交关系数量为10000条的情况下,搜索过程的成功率能够达到99%。